Skip to main content

Generator bloga z historii Git używający Ollama LLM

Project description

git2blog

Generator bloga z historii Git używający lokalnego modelu Ollama LLM.

Funkcje

  • AI-powered: Używa Ollama do generowania interesujących postów z commitów Git
  • Automatyczna konwersja: Przekształca suche commity w angażujące posty blogowe
  • Gotowe szablony: Generuje kompletny blog HTML gotowy do publikacji
  • Konfigurowalne: Pełna personalizacja przez plik YAML
  • Inteligentne filtrowanie: Pomija merge commity i spam
  • Polski interface: Wszystko po polsku

Wymagania

  1. Python 3.7+
  2. Git - repozytorium z historią commitów
  3. Ollama - lokalny serwer LLM
    # Instalacja Ollama (Linux/macOS)
    curl -fsSL https://ollama.ai/install.sh | sh
    
    # Uruchom model (np. llama3.2)
    ollama run llama3.2
    

Instalacja

  1. Sklonuj/pobierz projekt:

    mkdir git2blog && cd git2blog
    # Skopiuj git2blog.py do tego katalogu
    
  2. Zainstaluj zależności:

    pip install -r requirements.txt
    
  3. Utwórz konfigurację:

    python git2blog.py --init
    

Użycie

  1. Przejdź do swojego repozytorium Git:

    cd /ścieżka/do/twojego/projektu
    
  2. Uruchom generator:

    python /ścieżka/do/git2blog.py
    
  3. Otwórz wygenerowany blog:

    open blog/index.html
    

Konfiguracja

Edytuj git2blog.yaml aby dostosować:

# Ollama settings
ollama_url: 'http://localhost:11434'
model: 'llama3.2'  # lub codellama, mistral, itp.
timeout: 120  # (opcjonalnie) czas oczekiwania na odpowiedź Ollama w sekundach

# Blog settings
blog_title: 'Mój Blog Projektowy'
blog_description: 'Blog generowany automatycznie z historii Git'
author: 'Twoje Imię'
output_dir: 'blog'

# Linki do projektu (opcjonalnie)
repo_url: 'https://github.com/uzytkownik/projekt'   # link do repozytorium (GitHub/GitLab)
issues_url: 'https://github.com/uzytkownik/projekt/issues'  # link do issues (opcjonalnie)
pages_url: 'https://uzytkownik.github.io/projekt'   # link do GitHub Pages/GitLab Pages (opcjonalnie)

# Generation settings
commit_limit: 50              # Ile commitów przetworzyć
posts_per_page: 10           # Posty na stronę (przyszła funkcja)
ignore_merge_commits: true   # Pomijaj merge commity

Nowości

  • Domyślny timeout zapytań do Ollama został zwiększony do 120 sekund (wcześniej 30s). Jeśli generacja posta trwa dłużej, nie przerywaj procesu od razu – większe modele mogą potrzebować więcej czasu.
  • Dodano obsługę linków do profilu autora (GitHub/GitLab), historii commitów (po dacie), commita, repozytorium, issues i GitHub Pages/GitLab Pages w wygenerowanych stronach HTML (na podstawie konfiguracji repo_url/issues_url/pages_url).

Przykładowe użycie

# W katalogu z twoim projektem Git
cd ~/moje-projekty/awesome-app

# Wygeneruj blog (domyślna konfiguracja)
python ~/git2blog/git2blog.py

# Użyj własnej konfiguracji
python ~/git2blog/git2blog.py --config custom-config.yaml

# Blog zostanie utworzony w katalogu ./blog/
ls blog/
# index.html  post_1.html  post_2.html  ...

Struktura wyjściowa

blog/
├── index.html      # Strona główna z listą postów
├── post_1.html     # Najnowszy commit jako post
├── post_2.html     # Drugi commit
└── ...

Dostępne modele Ollama

Popularne modele do wyboru:

  • llama3.2 - Szybki i dobry (domyślny)
  • codellama - Specjalizuje się w kodzie
  • mistral - Mały i efektywny
  • gemma - Od Google

Zmień model w git2blog.yaml:

model: 'codellama'

Troubleshooting

"Nie można połączyć się z Ollama"

# Sprawdź czy Ollama działa
curl http://localhost:11434/api/tags

# Jeśli nie, uruchom:
ollama serve

"Nie znajdujesz się w repozytorium Git"

# Upewnij się że jesteś w katalogu z .git
ls -la | grep .git

"Nie znaleziono żadnych commitów"

# Sprawdź historię Git
git log --oneline -10

"Timeout podczas generowania posta lub długi czas oczekiwania"

Zwiększono domyślny timeout do 120 sekund. Jeśli nadal pojawia się timeout, sprawdź czy Twój model Ollama nie wymaga jeszcze więcej czasu lub zasobów.

Możesz też ustawić własny timeout (w pliku konfiguracyjnym lub przez zmienną środowiskową, jeśli obsługiwane):

timeout: 180

lub:

export OLLAMA_TIMEOUT=180

Planowane funkcje

  • Obsługa markdown zamiast HTML
  • Paginacja dla dużych blogów
  • Kategorie i tagi na podstawie ścieżek plików
  • RSS feed
  • Ciemny motyw
  • Export do platform blogowych

Licencja

Licencja: Apache 2.0

Autor

Tom Sapletta — DevOps Engineer & Systems Architect

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git2blog-1.0.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git2blog-1.0.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file git2blog-1.0.0.tar.gz.

File metadata

  • Download URL: git2blog-1.0.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for git2blog-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dfe39f36000a9e3b19313f14a54e704c4e37ecf00d443e30d96a9ab9d4af835c
MD5 cba1e9a8b23d15a8c362648829f13cb3
BLAKE2b-256 ee7298f412b63e68b8f963fca075ee59f758ff7ea913f81de4467bb5219be2e2

See more details on using hashes here.

File details

Details for the file git2blog-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: git2blog-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for git2blog-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6927adb4259a77a28887c2c66b2dca1a8cd8f9176ab500769fd95547d552aa5
MD5 5d8c179340b9b101403969abfa0377c6
BLAKE2b-256 fdc42d2d5b85423c55ca5ad839603daa906143bbac89d64ff73df64489dc75fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page