master
Replace blocking subprocess.run calls in run_git_command and get_commits_by_day with async subprocess execution using asyncio.create_subprocess_exec and proc.communicate. Update process_repo's git clone call to use the same async pattern, ensuring the entire git operations pipeline runs non-blocking in the event loop.
Zhurnal - Changelog Generator
Overview
Zhurnal is a web application designed to generate and manage changelogs for Git repositories. It supports both public and self-hosted platforms like Gitea and GitLab, including authenticated repositories using URL credentials.
Features
- Generate changelogs from repository URLs (http://, https://).
- Supports authenticated repositories (e.g.,
https://user:pass@domain/repo). - Updates existing repositories and tracks new commits.
- Real-time progress updates via WebSocket.
- Download changelogs in JSON or Markdown formats.
- Night/day theme toggle.
- Mobile and desktop compatible (min 320px width).
- Hourly automatic repository updates.
- Log rotation and system log access.
Installation
- Clone the repository:
git clone https://retoor.molodetz.nl/retoor/zhurnalweb cd zhurnalweb - Install dependencies (ensure Python and FastAPI are installed).
- Run the application:
python main.py
Usage
- Open
http://localhost:8000in your browser. - Enter a repository URL in the input field.
- View real-time updates and access the generated changelog.
Configuration
- Repositories are stored in
/repos/[hash-of-url]/. - Database:
zhurnal.dbusing AsyncDataSet. - Logs:
logs/app.logwith rotation (app.log.1 to app.log.5).
Development
- Backend:
main.py(FastAPI, AsyncDataSet). - Frontend:
index.html(self-contained). - Changelog Template:
changelog.html.
License
MIT License
Description
An change log generator based on your repository that you can provide by giving the URL. It supports git repositories of all providers, including self hosted or custom builds. It is made for efficiency and don't do double work.
62 KiB
Languages
Python
88.4%
HTML
11.6%