Kaban allows to track GitLab issue status transitions (defined by lists/labels) and collect kanban metrics. For example, you may create labels such as 'In progress', 'Awaiting review', 'Staging' and track time issue spent in each status. Up to date, there is no other way to get that time from GitLab API :)
Tools used: PostgreSQL, Airflow
- Create some directories for Airflow:
mkdir -p ./logs ./plugins
- Add variable for Airflow:
echo -e "AIRFLOW_UID=$(id -u)" >> .env
- Add variable with your gitlab instance URL:
echo -e "GITLAB_URL=https://gitlab.yourdomain.com" >> .env
- Add variable with your gitlab API read token:
echo -e "GITLAB_API_TOKEN=yourgitlabapireadtoken" >> .env
- Run all services (make sure ports 5433 and 8081 are available, otherwise change the mapping):
docker compose up -d
- Setup postgres connection in Airflow:
- Connection Id: KabanPostgres
- Host: gitlab-postgres
- Schema: kaban_db
- Login: kaban
- Password: kaban
- Port: 5433
- Add
GITLAB_URL
andGITLAB_API_TOKEN
variables to Airflow - Enable dag to start collecting info about issues statuses (like your manager usually does)
- TODO: connect kaban_db to some BI tool and build some fancy project management dashboard
SQL queries for each graph are available in analytics/scripts