Deduplicate canonical guard-policy missing-key error message#7046
Merged
Conversation
5 tasks
Copilot
AI
changed the title
[WIP] Refactor hardcoded error string into a constant
Deduplicate canonical guard-policy missing-key error message
Jun 5, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR centralizes the guard-policy “missing key” error message into a single constant so the parsing (UnmarshalJSON) and validation/normalization paths can’t drift on wording.
Changes:
- Added
errMsgPolicyMissingKeyconstant ininternal/config/guard_policy_validation.go. - Replaced duplicated missing-key error literals in
GuardPolicy.UnmarshalJSON,ValidateGuardPolicy, andNormalizeGuardPolicywitherrors.New(errMsgPolicyMissingKey). - Updated select tests to reference the canonical constant instead of duplicating the string.
Show a summary per file
| File | Description |
|---|---|
| internal/config/guard_policy.go | Switches the missing-key JSON unmarshal error to use the canonical constant. |
| internal/config/guard_policy_validation.go | Introduces the canonical error message constant and updates validation/normalization callsites to use it. |
| internal/config/guard_policy_test.go | Aligns some test assertions with the canonical missing-key constant. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 2
| @@ -626,7 +626,7 @@ func TestGuardPolicyUnmarshalJSON(t *testing.T) { | |||
| { | |||
| name: "missing allow-only field", | |||
| "strings" | ||
| ) | ||
|
|
||
| const errMsgPolicyMissingKey = "policy must include allow-only or write-sink" |
Collaborator
|
@copilot address review feedback |
Contributor
Author
Addressed in a786d1a.
|
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.
The guard-policy validation path duplicated the same missing-key error string in three places (
UnmarshalJSON,ValidateGuardPolicy,NormalizeGuardPolicy). This centralizes that message into one canonical constant to prevent drift across validation and parsing paths.Error message canonicalization
errMsgPolicyMissingKeyininternal/config/guard_policy_validation.goas the single source of truth for:"policy must include allow-only or write-sink"Callsite updates
internal/config/guard_policy.go(GuardPolicy.UnmarshalJSON)internal/config/guard_policy_validation.go(ValidateGuardPolicy,NormalizeGuardPolicy)errors.New(errMsgPolicyMissingKey)for direct constant-backed errors.Test alignment
internal/config/guard_policy_test.goto reference the canonical constant for the missing-key path, reducing brittle string duplication in tests.