{"id":29315202,"url":"https://github.com/py-lama/git2blog","last_synced_at":"2026-03-09T13:38:37.951Z","repository":{"id":295987103,"uuid":"991930037","full_name":"py-lama/git2blog","owner":"py-lama","description":"Generator bloga z historii Git używający lokalnego modelu Ollama LLM.","archived":false,"fork":false,"pushed_at":"2025-05-28T14:44:36.000Z","size":94,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-28T00:14:02.209Z","etag":null,"topics":["chat","commit","git","git2blog","git2post","llm","ollama","post","wordpress"],"latest_commit_sha":null,"homepage":"https://py-lama.github.io/git2blog/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/py-lama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-28T11:09:58.000Z","updated_at":"2025-05-28T14:44:39.000Z","dependencies_parsed_at":"2025-05-28T12:32:37.154Z","dependency_job_id":"7ba22147-5ed6-4318-85a8-1b01c0ae1cff","html_url":"https://github.com/py-lama/git2blog","commit_stats":null,"previous_names":["py-lama/git2blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/py-lama/git2blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-lama%2Fgit2blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-lama%2Fgit2blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-lama%2Fgit2blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-lama%2Fgit2blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/py-lama","download_url":"https://codeload.github.com/py-lama/git2blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/py-lama%2Fgit2blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30297234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","commit","git","git2blog","git2post","llm","ollama","post","wordpress"],"created_at":"2025-07-07T11:20:18.534Z","updated_at":"2026-03-09T13:38:37.918Z","avatar_url":"https://github.com/py-lama.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git2blog\n\nGenerator bloga z historii Git używający lokalnego modelu Ollama LLM.\n\n## Funkcje\n\n- **AI-powered**: Używa Ollama do generowania interesujących postów z commitów Git\n- **Automatyczna konwersja**: Przekształca suche commity w angażujące posty blogowe\n- **Gotowe szablony**: Generuje kompletny blog HTML gotowy do publikacji\n- **Konfigurowalne**: Pełna personalizacja przez plik YAML\n- **Inteligentne filtrowanie**: Pomija merge commity i spam\n- **Polski interface**: Wszystko po polsku\n\n## Wymagania\n\n1. **Python 3.7+**\n2. **Git** - repozytorium z historią commitów\n3. **Ollama** - lokalny serwer LLM\n   ```bash\n   # Instalacja Ollama (Linux/macOS)\n   curl -fsSL https://ollama.ai/install.sh | sh\n   \n   # Uruchom model (np. llama3.2)\n   ollama run llama3.2\n   ```\n\n## Szybki start\n\n1. Zainstaluj zależności:\n   ```bash\n   pip install -r requirements.txt\n   ```\n2. (Opcjonalnie) Zainstaluj narzędzia deweloperskie:\n   ```bash\n   make install-dev\n   ```\n3. Skonfiguruj projekt:\n   ```bash\n   python git2blog.py init\n   # lub przez menu:\n   python git2blog.py menu\n   ```\n4. Wygeneruj bloga:\n   ```bash\n   python git2blog.py run\n   # lub przez Makefile:\n   make run\n   ```\n\n## Instalacja\n\n1. **Sklonuj/pobierz projekt**:\n   ```bash\n   mkdir git2blog \u0026\u0026 cd git2blog\n   # Skopiuj git2blog.py do tego katalogu\n   ```\n\n2. **Zainstaluj zależności**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. **Utwórz konfigurację**:\n   ```bash\n   python git2blog.py --init\n   ```\n\n## Użycie\n\n1. **Przejdź do swojego repozytorium Git**:\n   ```bash\n   cd /ścieżka/do/twojego/projektu\n   ```\n\n2. **Uruchom generator**:\n   ```bash\n   python /ścieżka/do/git2blog.py\n   ```\n\n3. **Otwórz wygenerowany blog**:\n   ```bash\n   open blog/index.html\n   ```\n\n## Testowanie\n\nAby uruchomić testy:\n```bash\nmake test\n# lub bezpośrednio:\npytest\n```\n\n## Najważniejsze cele Makefile\n\n- `make install` – instalacja zależności\n- `make install-dev` – instalacja narzędzi deweloperskich\n- `make run` – generowanie bloga\n- `make test` – uruchomienie testów\n- `make clean` – usunięcie plików tymczasowych\n\n## Konfiguracja\n\nEdytuj `git2blog.yaml` aby dostosować:\n\n```yaml\n# Ollama settings\nollama_url: 'http://localhost:11434'\nmodel: 'llama3.2'  # lub codellama, mistral, itp.\ntimeout: 120  # (opcjonalnie) czas oczekiwania na odpowiedź Ollama w sekundach\n\n# Blog settings\nblog_title: 'Mój Blog Projektowy'\nblog_description: 'Blog generowany automatycznie z historii Git'\nauthor: 'Twoje Imię'\noutput_dir: 'blog'\n\n# Linki do projektu (opcjonalnie)\nrepo_url: 'https://github.com/uzytkownik/projekt'   # link do repozytorium (GitHub/GitLab)\nissues_url: 'https://github.com/uzytkownik/projekt/issues'  # link do issues (opcjonalnie)\npages_url: 'https://uzytkownik.github.io/projekt'   # link do GitHub Pages/GitLab Pages (opcjonalnie)\n\n# Generation settings\ncommit_limit: 50              # Ile commitów przetworzyć\nposts_per_page: 10           # Posty na stronę (przyszła funkcja)\nignore_merge_commits: true   # Pomijaj merge commity\n```\n\n## Nowości\n\n- 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.\n- 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).\n\n## Przykładowe użycie\n\n```bash\n# W katalogu z twoim projektem Git\ncd ~/moje-projekty/awesome-app\n\n# Wygeneruj blog (domyślna konfiguracja)\npython ~/git2blog/git2blog.py\n\n# Użyj własnej konfiguracji\npython ~/git2blog/git2blog.py --config custom-config.yaml\n\n# Blog zostanie utworzony w katalogu ./blog/\nls blog/\n# index.html  post_1.html  post_2.html  ...\n```\n\n## Struktura wyjściowa\n\n```\nblog/\n├── index.html      # Strona główna z listą postów\n├── post_1.html     # Najnowszy commit jako post\n├── post_2.html     # Drugi commit\n└── ...\n```\n\n## Dostępne modele Ollama\n\nPopularne modele do wyboru:\n- `llama3.2` - Szybki i dobry (domyślny)\n- `codellama` - Specjalizuje się w kodzie\n- `mistral` - Mały i efektywny\n- `gemma` - Od Google\n\nZmień model w `git2blog.yaml`:\n```yaml\nmodel: 'codellama'\n```\n\n## Troubleshooting\n\n### \"Nie można połączyć się z Ollama\"\n```bash\n# Sprawdź czy Ollama działa\ncurl http://localhost:11434/api/tags\n\n# Jeśli nie, uruchom:\nollama serve\n```\n\n### \"Nie znajdujesz się w repozytorium Git\"\n```bash\n# Upewnij się że jesteś w katalogu z .git\nls -la | grep .git\n```\n\n### \"Nie znaleziono żadnych commitów\"\n```bash\n# Sprawdź historię Git\ngit log --oneline -10\n```\n\n### \"Timeout podczas generowania posta lub długi czas oczekiwania\"\nZwię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.\n\nMożesz też ustawić własny timeout (w pliku konfiguracyjnym lub przez zmienną środowiskową, jeśli obsługiwane):\n```yaml\ntimeout: 180\n```\nlub:\n```bash\nexport OLLAMA_TIMEOUT=180\n```\n\n## Planowane funkcje\n\n- [ ] Obsługa markdown zamiast HTML\n- [ ] Paginacja dla dużych blogów  \n- [ ] Kategorie i tagi na podstawie ścieżek plików\n- [ ] RSS feed\n- [ ] Ciemny motyw\n- [ ] Export do platform blogowych\n\n## Licencja\n\nLicencja: [Apache 2.0](LICENSE)\n\n## Autor\n\nTom Sapletta — DevOps Engineer \u0026 Systems Architect","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpy-lama%2Fgit2blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpy-lama%2Fgit2blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpy-lama%2Fgit2blog/lists"}