This training material will cover the following topics:
The 1-1 issue generator is a project created in house to assist in the creation of GitLab issues for use in 1 on 1 meetings. This uses a customizable formatting and various APIs to gather details and present it in a way that is useful to both manager and report.
This all works utilizing ruby scripting and GitLab CI/CD. The CI/CD component of this is straight forward, in that it has 4 stages and they run the ruby scipts within the project.
This stage runs the ./bin/test
file within the repo. That file tests for the
following:
If any of the above answers are no, then the test stage will fail, preventing the CI/CD from running further. This is used to prevent merging bad files into the repo.
This stage runs the ./bin/gather
file within the repo. That file runs the
gather
function within the Generator::Client
class.
The Generator::Client.gather
function obtains various data points spanning
from:
It combines all this data into an artifact file.
This stage runs the ./bin/daily_report
file within the repo. That file takes
the artifact made in the Gather stage and commits it to the
Daily reports repo.
Note: While previous stages ran for multiple people, some jobs in this stage will only run for a single person at a time.
This stage will run one of three different jobs:
All of the jobs that run will call to a file in the repo that will link to various functions relating to the job itself. While there is some variance in how the three run, overall they all gather data from the Daily reports repo and then pass it into an ERB template file. This is then compiled into a gitlab.com issue via the GitLab API.
By using GitLab CI/CD schedules, we have the following set to run at various intervals:
Name | What it does | When it runs |
---|---|---|
Gather metrics | Runs the Gather stage | Daily at 0100 UTC |
Create 1-1 Issues | Runs the Create stage | Daily at 0300 UTC |