I am calculator of time spent in Gitlab by every user in period. Just mark time spent in Gitlab and build report using me.
Requirements: Docker 17.05+.
You may obtain needed project ids from gitlab Api: https://gitlab.com/api/v4/projects?private_token=your_private_token&membership=1
Clone this repo and run containers from docker folder:
git clone git@github.com:zubroide/gitpab.git
cd gitpab
export host="https://gitlab.com/" \
    && export token="your_gitlab_private_token" \
    && export projects="project_id1,project_id2" \
    && docker-compose up --buildBe patient. Loading data from Gitlab may take tens minutes at first time.
Open url http://127.0.0.1:8010
And enter
login admin@admin
password admin
Create empty database in PostgreSQL.
git clone git@github.com:zubroide/gitpab.git
cd gitpab
composer install
cp .env.example .env
php artisan key:generate
php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=assetsEdit environment variables in .env:
- GITLAB_PRIVATE_TOKEN- is your private token from Gitlab.
- GITLAB_RESTRICTIONS_PROJECT_IDS- not necessary, project ids, that you need to monitor.
 You are can find project ids using next command:- php artisan look:projects.
- APP_URL
- DB_DATABASE
- DB_USERNAME
- GITLAB_HOST
- APP_LOCALE- supported locales:- en,- ru.
- APP_DATEPICKER_DATE_FORMAT- default is- DD.MM.YYYY.
Run migrations:
php artisan migrateFill dictionaries:
php artisan db:seedCreate user (with Admin role):
php artisan make:userBuild static:
npm install
npm run prodRun next command for import projects, issues and comments from Gitlab:
php artisan import:allYou can run it in schedule (every hour by defaults): php artisan schedule:run.
Now you can build report about spent time using command
php artisan stat:spent-time --start=2018-05-01 --finish=2018-06-01Filter:
- start- start date,
- finish- finish date,
- user-id- by assignee,
- project-id- by project,
- issue-id- by issue,
- order- for example:- issue.iid,- project.path_with_namespace
Result:
+---------------------+-------------------+--------------+-------+----------------------------------+
| gitlab_created_at   | project           | issue        | hours | description                      |
+---------------------+-------------------+--------------+-------+----------------------------------+
| 2018-05-18 12:23:56 | my-group/project1 | #5 My time   | 1.00  | Some work                        |
| 2018-05-18 12:24:56 | my-group/project1 | #5 My time   | 0.50  | Export data into pdf             |
| 2018-05-19 20:19:49 | my-group/project1 | #5 My time   | 1.00  | Create templates                 |
| 2018-05-19 21:56:30 | my-group/project1 | #5 My time   | 0.50  | Reading requirements             |
| 2018-05-18 12:23:56 | my-group/project2 | #152 My time | 1.00  | Skype call                       |
| 2018-05-18 12:24:56 | my-group/project2 | #152 My time | 0.50  | Discussion about export into xml |
+---------------------+-------------------+--------------+-------+----------------------------------+
Just rebuild container
git pull
docker volume rm -f gitpab_code  # https://github.com/docker/compose/issues/5772
export host="https://gitlab.com/" \
    && export token="your_gitlab_private_token" \
    && export projects="project_id1,project_id2" \
    && docker-compose up --buildUpdate code and build static:
git pull
composer install
npm install
npm run prodRun new migrations:
php artisan migrateFill new dictionaries:
sudo php artisan cache:clear
php artisan db:seed
sudo php artisan cache:clear
