Add the most_recent_report_date_for_issue method
Context
Closes #84 (closed):
Have a method that, given a test health issue, would return the most recent report, with timestamp, for each kind of health check (slowness, flakiness, ...).
This method could then be used in triage-ops to be able to know which issue didn't receive a report in a certain amount of time.
What does this MR do and why?
Adds the most_recent_report_date_for_issue
method to FlakyTestIssue
, SlowTestIssue
and FailedTestIssue
.
The first two are comment-based, and the FailedTestIssue
is discussion-based. The logic handles both cases.
How to set up and validate locally
# Checkout this branch
bin/console
failed_test_issue = GitlabQuality::TestTooling::Report::FailedTestIssue.new(token: ENV['GITLAB_API_PRIVATE_TOKEN'], project: 'gitlab-org/gitlab')
flaky_test_issue = GitlabQuality::TestTooling::Report::FlakyTestIssue.new(token: ENV['GITLAB_API_PRIVATE_TOKEN'], project: 'gitlab-org/gitlab')
slow_test_issue = GitlabQuality::TestTooling::Report::SlowTestIssue.new(token: ENV['GITLAB_API_PRIVATE_TOKEN'], project: 'gitlab-org/gitlab')
failed_test_issue_id = 473313 # https://gitlab.com/gitlab-org/gitlab/-/issues/473313
flaky_test_issue_id = 444722 # https://gitlab.com/gitlab-org/gitlab/-/issues/444722
slow_test_issue_id = 479841 # https://gitlab.com/gitlab-org/gitlab/-/issues/479841
failed_test_issue.most_recent_report_date_for_issue(issue_iid: failed_test_issue_id)
=> "2024-07-19"
failed_test_issue.most_recent_report_date_for_issue(issue_iid: flaky_test_issue_id)
=> nil
failed_test_issue.most_recent_report_date_for_issue(issue_iid: slow_test_issue_id)
=> nil
flaky_test_issue.most_recent_report_date_for_issue(issue_iid: failed_test_issue_id)
=> nil
flaky_test_issue.most_recent_report_date_for_issue(issue_iid: flaky_test_issue_id)
=> "2024-05-14"
flaky_test_issue.most_recent_report_date_for_issue(issue_iid: slow_test_issue_id)
=> nil
slow_test_issue.most_recent_report_date_for_issue(issue_iid: failed_test_issue_id)
=> nil
slow_test_issue.most_recent_report_date_for_issue(issue_iid: flaky_test_issue_id)
=> nil
slow_test_issue.most_recent_report_date_for_issue(issue_iid: slow_test_issue_id)
=> "2024-08-19"
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by David Dieulivol