1-1 issue generator
What is the 1-1 issue generator
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.
The source code for it is located here.
How does the 1-1 issue generator work
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 scripts within the project.
Test stage
This stage runs the ./bin/test
file within the repo. That file tests for the
following:
- Is the YAML file able to be parsed?
- Do comment YAML files contain the ticket_review boolean?
- Do comment YAML files contain the comments array?
- Are the template files readable by an ERB renderer?
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.
Gather stage
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:
- Zendesk Global
- Zendesk US Federal
- Pagerduty
- GitLab.com
It combines all this data into an artifact file.
Report stage
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.
Create stage
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:
- weekly_report: This creates 1-1 issues for weekly use
- monthly_report: This creates an issue covering a month’s worth of data
- quarterly_report: This creates an issue covering the current quarter’s worth of data
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.
When does 1-1 issue generator run
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 |
Change management
As these are maintained via sync repositories, our standard change management process applies to all 1-1 issue generator changes. See standard change management for more information.
Labels to use
For all issues and MRs involving 1-1 issue generator, the label
Support-Ops-Category::GitLab Projects
should be used.
Change criticality
As this is an internal tool with no direct impact, all issues/MRs related to 1-1 issue generator will be classified as criticality 4
4e6ac4e3
)