Repository navigation
Conversation
|
@codex review |
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Why
ThomasK33 asked to fix and build the open issues of this repo and land them on main. For #587 (a path that is not valid UTF-8 comes back changed in JSON) this is the second of three PRs. It is stacked on #721 (its base is #721's branch) and must not merge before #721. #721 gave the file, diff, blame and grep responses an exact
<field>_base64sibling. This PR does the same for the merge conflict paths. It also ships four follow-ups that the clean-context review of #721 raised.What changes
Merge conflict responses (a path that is not valid UTF-8 gets a sibling, a valid path gets none, so a conflict on valid names answers the same bytes as before):
POST /repos/merge, 409 bodyconflict_paths_base64, same length and order asconflict_pathsGET /repos/merge/previewconflict_paths_base64, andpath_base64inconflicts[]andfiltered_conflicts[]Follow-ups from the review of #721:
TestRawPathSiblings/files_paged_and_flatnow checkspaths_base64on a flat listing, where a tree entry sits inentriesbut not inpaths. A reviewer's mutant, which encoded every entry instead of the blobs, survived the whole package before. It now fails this test.var. It accepts any field type, compares the sibling's type with the field's, and flags an untagged field with a path-like Go name in a struct that has json tags. A synthetic source in the test names each shape. The guard's exemptions shrink to the two request fields (the last PR).docs/reference/http-api.mdsays that a list sibling repeats the whole list, so an unpagedfileslisting with one invalid path grows by about the size ofpaths.docs/explanation/wire-compatibility.mdnames the siblings in the list of extensions that upstream's spec does not list.Verification
go build ./...,go vet ./internal/api/,golangci-lint2.15.0 on./internal/api/...: 0 issues. Doc link gate: 0 broken.go test ./internal/api/... ./cmd/openstorage/... -tags=openstorage_viewcheck -race -skip '/^pg$': ok (internal/api173 s,cmd/openstorage20 s). CI runs both backends.409 conflict_paths_base64 not setfailsTestRawPathMergeConflicts/merge_409, and a removedwmPreviewFiltered.PathBase64field fails the guard withwmPreviewFiltered.path has no path_base64 sibling.serveand real git: two branches that conflict ona<0xff>b,a<0xfe>b,plain.txtandbig<0xfa>.txt(one side above the 1 MiB inline limit). 409 and merge preview (with and without content) carry the siblings: 6 checks pass, and theourscontent of each conflict is read through the raw path.Refs #587
Generated with
xum• Model:anthropic:claude-sonnet-5-5• Thinking:xhigh