Skip to content

Keep a private project board in sync with the triaged advisories - #26

Merged
alexandre-daubois merged 23 commits into
mainfrom
board/sync
Oct 30, 2026
Merged

alexandre-daubois merged 23 commits into
mainfrom
board/sync

Conversation

@alexandre-daubois

Copy link
Copy Markdown
Member

With project set, each triaged advisory gets a draft item on a private organisation project, with its priority, the severity the model estimates, the oldest exact duplicate and the advisory state. Advisories commented before the board existed are triaged again for it without a new comment, and every run mirrors the advisory states and recounts the duplicates without calling the model.

@alexandre-daubois
alexandre-daubois force-pushed the board/sync branch 2 times, most recently from a1580ab to 35ab24a Compare October 29, 2026 10:13
With `project` set, each triaged advisory gets a draft item on a private organisation project, with its priority, the severity the model estimates, the oldest exact duplicate and the advisory state. Advisories commented before the board existed are triaged again for it without a new comment, and every run mirrors the advisory states and recounts the duplicates without calling the model.
The draft body now holds the advisory link then the triage comment, updated through GraphQL since the REST API cannot edit a draft. Items record whether a policy exclusion applies and whether the faulty statement was located, so every sync ranks each triage again and a new priority rule needs no model run. Analysis statuses replace the manual triage priority: pending while a backfill runs, failed with or without a retry to come, each explained in the draft body.
…private issues from App tokens, and use made-up identifiers in the tests
Only issues of the configured repository count as board issues, so a missing issues token no longer panics and unrelated issues are left alone. The last marker of an issue body wins over one quoted from model text, the installation listing refuses a token reaching more repositories than one page shows, a backfill whose final write fails is marked failed, a state change reaches the issue, and a duplicate group keeps the spelling of its original.
Without comments, an item left at Analysis pending counts as a failed attempt and is retried, up to the attempt limit. A retrying item is no longer taken for a finished triage, a duplicate is nested under its original once that one has an issue, an issue outside the issues repository never gets its body written as a draft, and a component of "." is refused. A board triage keeps its private report before the board write, and a severity without a vector is dropped.
@alexandre-daubois
alexandre-daubois merged commit 951e1df into main Oct 30, 2026
2 of 6 checks passed
@alexandre-daubois
alexandre-daubois deleted the board/sync branch October 30, 2026 11:21
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.

1 participant