chore(labels): restructure label taxonomy and wire advisory issues - #353
Merged
Merged
Conversation
- Rename the feature request template label to `type: feature` and add `status: triage` so both templates triage consistently - Replace the `javascript` Dependabot label with `area: agent-sdk` on both npm ecosystems, since the root package only ships the bridge - Label the Agent SDK monitor issues on creation with `type: dependencies` and `area: agent-sdk` instead of leaving them bare - Document the `type:`/`area:`/`status:` namespaces in CONTRIBUTING.md, including which labels automation depends on
- Apply `type: dependencies` and `area: agent-sdk` on the `gh issue edit` path too, so an issue opened before this change picks the labels up on its next weekly refresh
- Replace the log-only advisory step with a cargo-deny run that captures its report and opens or refreshes a `type: security` tracking issue - Close the tracking issue automatically once a later run reports no findings - Restore the advisory notifications lost when `audit.yml` and `actions-rust-lang/audit` were removed in #236, without that action's duplicate issues per run - Use one refreshed issue instead of one per advisory, and truncate the report so the body stays under the 65536 character limit - Note the security exception to the one-`type:`-label rule in CONTRIBUTING.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reworks the repository labels into three consistent namespaces, aligns every
.githubfile that depends on them, and restores the security-advisory notifications that were lost in #236.Label changes applied via
gh label(the repo now has 20 labels):type: fix,type: security,status: triage,status: needs-info,area: tui,area: core,area: agent-sdk,area: installtype: enhancement→type: feature,type: quality→type: refactor,type: documentation→type: docs,release→type: release,blocked→status: blocked,discussion→status: discussion,wontfix→status: wontfixdependencies(duplicate oftype: dependencies),duplicate(unused; GitHub has native duplicate marking),javascript(single-value outlier, replaced byarea:)type: enhancement/area: ciandtype: documentation/releasecollisionsFile changes in this PR:
feature_request.ymlnow appliestype: featureandstatus: triagedependabot.ymlusesarea: agent-sdkfor both npm ecosystems instead ofjavascriptdependency-monitor.ymllabels the Agent SDK issue on both the create and the refresh path, and its advisory job now opens a labeled tracking issueCONTRIBUTING.mddocuments the namespaces and which labels automation depends onWhy
The old set was issue-shaped and had no label for a fix. Every
fix(...)PR was taggedtype: bug, which reads as "this PR is a bug" rather than "this PR fixes one" — and #312 ended up carrying bothtype: bugandtype: enhancementbecause neither fit. Splittingtype: bug(a reported defect) fromtype: fix(the change that resolves it) removes that ambiguity, and thetype:values now mirror the conventional-commit typespr-title.ymlalready enforces.Auditing the label wiring surfaced three unrelated defects, all fixed here:
bug_report.ymlhas always appliedstatus: triage, but that label did not exist, so GitHub silently dropped it on every bug report. The label now exists.type: enhancementandarea: cishared a colour, as didtype: documentationandrelease, which defeated the point of the prefixes.Advisory notifications
Tracing who opened the RUSTSEC issues turned up a regression. They came from
actions-rust-lang/auditin.github/workflows/audit.yml, which #236 deleted on 2026-07-03 when advisory checking moved tocargo-deny. The replacement job runscontinue-on-error: trueand only writes to the job log, so nothing has surfaced an advisory since — the newest such issue is #218 from 2026-06-29.This PR closes that gap on the
cargo-denyside rather than restoringcargo-audit, becausedeny.tomlis now the single source of advisory policy (yanked = "deny",unmaintained = "workspace"); reintroducingcargo-auditwould report findings that policy deliberately scopes out.actions-rust-lang/auditalso cannot label the issues it creates, so it could not satisfy this requirement anyway.The job now installs
cargo-denydirectly instead of usingEmbarkStudios/cargo-deny-action, because that action runs in a container and its report only reaches the job log. The action is unchanged and still Dependabot-tracked through the twopr.ymlgates, so nothing loses pin coverage; the version pin here is manual and flagged in a comment, matching the existingcargo install mdbook --version 0.5.3 --lockedindocs.yml.Behaviour is one tracking issue that gets refreshed and self-closes, not one issue per advisory per run. The old action produced duplicates for the same advisory — #41/#56, #42/#57, #131/#132, #4/#5 are all pairs.
Closes #
Validation
js-yamlparsesdependabot.yml,dependency-monitor.yml, and both issue templates. Everyrun:block extracted fromdependency-monitor.ymlpassesbash -n. Repo-wide grep confirms no reference to a removed or renamed label remains outside generateddocs/book/output.ghacross all four paths — findings with no open issue (creates, labeledtype: security), findings with an open issue (edits, re-applies the label), clean with an open issue (closes with a comment), clean with none (no-op) — and confirmed the generated markdown renders with literal backticks and intact code fences. Verified the truncation guard caps a 60 KB report at a 50.5 KB body, under the 65536 character limit. Read all 15.githubfiles end to end;CODEOWNERS,config.yml,pull_request_template.md, and the 8 workflows other thandependency-monitor.ymlcontain no label references and are intentionally untouched. Re-labeled the 27 PRs that carriedjavascriptand the 2 that carrieddependenciesbefore deleting those labels, so no item lost its only classification.Notes
CONTRIBUTING.mdgains a Labels section.continue-on-error: true. Advisories themselves are handled by the issue, so a red job now means the workflow itself broke, which is worth seeing.cargo install cargo-deny --lockedadds a few minutes to this weekly job. That seemed a fair trade for a report in the issue instead of a log link that expires with the run.