Added vault audit workflows#22893
Draft
russell-stern wants to merge 2 commits into
Draft
Conversation
Contributor
|
✅ No conflicts with other open PRs targeting |
chainchad
reviewed
Jun 18, 2026
| run-audit: | ||
| needs: handle-command | ||
| if: needs.handle-command.outputs.run_audit == 'true' | ||
| uses: smartcontractkit/cre-docs/.github/workflows/vault-audit.yml@main |
Collaborator
There was a problem hiding this comment.
Since this repo isn't public, you won't be able to this resuable workflow.
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.
Vault Audit Integration
Adds automated vault security auditing to PRs that touch vault files. The audit is powered by a Claude-based skill in a private repo and surfaces findings as inline review comments with a merge-blocking commit status.
How it works
Triggering the audit
The audit does not run automatically on every PR. An authorized reviewer (anyone with write or admin access to this repo) triggers it by commenting
/vault-auditon the PR. This keeps costs down and avoids noise on PRs that don't actually change vault files.What the audit checks
The skill diffs the vault files between the PR's base and head SHA, then runs a set of security specialists against the changed files. Each finding is classified as either blocking (CRITICAL / MUST FIX) or informational. The full report is posted as a PR comment; each individual finding also appears as an inline review comment on the relevant line.
Merge gate
A
vault-auditcommit status is set tofailurewhen there are blocking findings andsuccesswhen there are none (or all have been addressed). You can add this as a required status check in branch protection to enforce it.Resolving findings
Each blocking finding thread has the instruction: reply
/resolved <reason>directly on this thread to address it. When an authorized reviewer does so, the workflow checks whether all other blocking threads also have a/resolvedreply. If yes, the commit status flips tosuccess. If not, it posts a summary showing how many remain.This means each finding must be individually acknowledged with a reason — there is no single "approve all" shortcut. The reasons are preserved in the thread history for audit purposes.
Skipping the audit
If the changes are intentional and an audit is not needed, an authorized reviewer can comment
/vault-audit skip <reason>on the PR. This sets the commit status tosuccessimmediately and records the reason in a PR comment. The skip only applies to the current HEAD SHA — pushing new vault file changes will require a fresh audit.Re-running
Commenting
/vault-auditagain re-runs the full audit. The previous set of inline comments and the summary comment are automatically deleted before the new results are posted, so there is always exactly one active set of findings on the PR.Files added
.github/workflows/vault-audit-gate.ymlvault-auditstatus is absent or failing.github/workflows/vault-audit-commands.yml/vault-auditand/vault-audit skip <reason>PR comments.github/workflows/vault-audit-thread-commands.yml/resolved <reason>replies on individual finding threadsThe audit itself runs in the private repo as a reusable workflow and is called from
vault-audit-commands.yml.