Skip to content

Relax CVE triage and open thresholds for distributed team#53

Open
abstractj wants to merge 1 commit into
mainfrom
relaxed-rules
Open

Relax CVE triage and open thresholds for distributed team#53
abstractj wants to merge 1 commit into
mainfrom
relaxed-rules

Conversation

@abstractj

Copy link
Copy Markdown
Contributor

Exclude blocked-external and missing-information CVEs from all triage
and open counts — these represent work blocked on external factors, not
team inaction.

Raise thresholds to reduce alert fatigue:

  • PrivateTriage: warn/error 1/5 → 3/8
  • PrivateTriageOverdue: warn/error 1/1 → 1/4
  • CveOpen: warn/error 1/5 → 3/5
  • CveOpenOverdue: warn/error 1/1 → 1/4

Widen triage deadline windows:

  • Important: 2 → 3 business days
  • Moderate: 7 → 10 business days
  • Low: 15 → 21 calendar days

Fix timezone bug in DateUtil.minusBusinessDays() — was using system
default timezone instead of UTC, producing inconsistent results
depending on which GitHub Action runner executed the job.

Fix NPE in Bugs.convertToTeamCount() when a flaky test references a team
not present in the teams map.

Update GitHubLoader.sanitize() to preserve status/blocked-external and
status/missing-information labels for private issues.

Signed-off-by: Bruno Oliveira da Silva bruno@abstractj.com

@abstractj abstractj requested a review from stianst June 10, 2026 20:46

@stianst stianst left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocked external can not just be hidden on the dashboard; it is also the teams responsibility to chase this to make sure they are resolved in a timely manner.

For bugs we move blocked external to a separate column, which we can do for CVEs as well.

For missing information that can be moved from the team table, but should be visible on the dashboard.

* Fix timezone bug in DateUtil.minusBusinessDays() — was using system
default timezone instead of UTC, producing inconsistent results
depending on which GitHub Action runner executed the job.

* Fix NPE in Bugs.convertToTeamCount() when a flaky test references a team
not present in the teams map.

* Update GitHubLoader.sanitize() to preserve status/blocked-external and
status/missing-information labels for private issues.

Avoid penalizing teams when there's an approved pull-request
* Added label status/ready for issues with pull-requests reviewed and approved by teams, but not merged yet

Separate blocked-external into its own CVE column and show missing-information globally
* Blocked-external CVEs are now shown in a dedicated column in both public
and private CVE team tables (with -1/-1 thresholds, visible but not
color-coded).

* CVE Missing Information is shown as a global stat in the Bugs section,
sourced from keycloak-private. The row always appears, even when there
are no private issues (shows 0).

* Also fixes: severity/ labels are now preserved in sanitize() so
SeverityTriageOverdueFilter works correctly for private CVEs.

Signed-off-by: Bruno Oliveira da Silva <bruno@abstractj.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants