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.
fix: unify on.permissions schema with shared github_actions_permissions ref #40064
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: unify on.permissions schema with shared github_actions_permissions ref #40064
Changes from all commits
64f52be3ef3ec5File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[/improve-codebase-architecture] The scope slice for
/on/permissionsis byte-for-byte identical to the/permissionsslice, and both comments now say they mirror the same$ref. When a new scope is added togithub_actions_permissions, there are four co-ordinated edits needed: two entries inknownFieldValidValuesand two inknownFieldScopes.Since the schema consolidation is the whole point of this PR, this is a good moment to consolidate the Go side too.
💡 Suggested refactor
Similarly, the long string in
knownFieldValidValuescould be built from this slice withstrings.Join.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[/tdd] The acceptance test pins
vulnerability-alerts(the scope from the bug report), which is the right regression anchor. However,attestations,copilot-requests,id-token,metadata,models, andorganization-projectswere also blocked by the old inline schema and are now valid through the shared$ref— none of them have acceptance coverage.Adding one or two to the acceptance test (e.g.,
attestations: write) would turn this into a broader schema-drift guard rather than a single-scope pin.💡 Suggested addition
Or use a short table-driven loop over
[]string{"vulnerability-alerts", "attestations", "copilot-requests"}inside the test to keep it compact.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[/tdd] The rejection test confirms that
err != nil, but does not verify that the error message actually contains the "Did you mean?" hints or docs URL added inschema_errors.gofor/on/permissions.If path detection is broken — e.g., the JSON schema path surfaced for an
on.permissionsviolation is not exactly/on/permissions— the newknownFieldScopesandknownFieldDocsentries would be dead code, yet this test would still pass.💡 Suggested assertion
Consider asserting the error message text, for example:
Or at minimum use
assert.ErrorContains(t, err, "Valid permission scopes")to confirm the hint path fires.Uh oh!
There was an error while loading. Please reload this page.