Add Gerrit client wrapper - #27
Merged
Merged
Conversation
Path-scoped agent rule for Go files: golib/e structured errors with sentinels-as-objects and field-carried context, golib/must boundaries, testify-only testing with black-box naming, godoc and Run/Start conventions.
Sentinels become e.New objects; dynamic context moves from message interpolation into structured fields per the Go conventions rule. go.mod gains golib (used here) and go-gerrit (used by the following commit). Refs: #3
Authenticated go-gerrit client with startup credential validation via the self account. apiError recovers Gerrit error response bodies the library discards - on non-2xx go-gerrit returns the response unread and unclosed, a contract pinned by a learning test - and attaches status and message as structured fields. All Gerrit traffic flows through this package; scoping restrictions hook in here later. Refs: #4
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 single seam all Gerrit traffic flows through: authenticated go-gerrit client with startup credential validation (self-account fetch) and error-body recovery — go-gerrit's errors carry only the status line while the response body holds Gerrit's actual message;
apiErrorreads it (capped, XSSI-stripped) into structured fields. A learning test pins the library contract this rests on (non-2xx responses returned unread/unclosed).Also carried here:
.claude/rules/golang.md— path-scoped Go conventions rule (golib/e mandatory, golib/must boundaries, testify/black-box testing)Dependencies (latest):
andygrunwald/go-gerritv1.1.1,dev.gaijin.team/go/golibv0.8.1.Closes #4