Skip to content

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.

Edited by David Dieulivol

Merge request reports

Loading