- GitLabClient: REST Events API z paginacją, pobieranie członków grupy - Aggregator: zliczanie commitów, MR, komentarzy per użytkownik - Exporter: generowanie pliku Excel (openpyxl) ze stylami - main.py: CLI (click) + .env support - README, .env.example, requirements.txt, .gitignore
1.3 KiB
1.3 KiB
gitlab-contribution
Narzędzie do eksportu statystyk aktywności użytkowników z GitLab do pliku Excel.
Co robi
- Pobiera dane z GitLab GraphQL API (Events) dla zadanej grupy i zakresu dat
- Agreguje: contributions, commity, merge requesty, komentarze
- Generuje plik
.xlsxz podsumowaniem per użytkownik
Wymagania
pip install -r requirements.txt
Konfiguracja
Skopiuj .env.example do .env i uzupełnij:
GITLAB_URL=https://gitlab.com
GITLAB_TOKEN=your_personal_access_token
GITLAB_GROUP=your-group-path
DATE_FROM=2024-01-01
DATE_TO=2024-12-31
OUTPUT_FILE=raport.xlsx
Użycie
python main.py
Lub z parametrami CLI:
python main.py --group my-group --from 2024-01-01 --to 2024-12-31 --output raport.xlsx
Struktura pliku Excel
| Użytkownik | Username | Contributions | Commity | Merge Requesty | Komentarze |
|---|---|---|---|---|---|
| Jan Kowalski | jkowalski | 142 | 89 | 23 | 30 |
Jak działa
gitlab_client.py— klient GraphQL, pobiera events z GitLab APIaggregator.py— agreguje dane per użytkownikexporter.py— generuje plik Excel (openpyxl)main.py— punkt wejścia, CLI
Limity GitLab API
GitLab Events API zwraca max 100 eventów na stronę. Klient automatycznie obsługuje paginację.