Repository navigation
feat(repo): resolve latest release and extract lockfile deps (#14) - #54
containarium-ci[bot] wants to merge 1 commit into
Conversation
Co-authored-by: hsinatfootprintai <149764663+hsinatfootprintai@users.noreply.github.com>
|
@coderabbitai review |
Action not completed
|
|
Important Review skippedThis PR was authored by a bot without an assigned CodeRabbit review seat. Ask an organization administrator to assign a seat to the bot. See the seat-assignment guide. After the seat is assigned, request a review again.
|
|
@containarium start qa |
|
That is not a role this repository routes, so nothing was started. This repository routes: engineering. Next: reply |
|
@containarium start qa |
|
QA is on for this repository, but it has no Next: a repository manager adds a |
hsinatfootprintai
left a comment
There was a problem hiding this comment.
Review (comment only; this account authored the PR)
Verdict: works as a library and is mergeable; three gaps against the issue, so merging should not close #14 as done.
Tests run locally: go build, go vet, go test ./... on the branch head: all packages ok (including internal/repo). CI: go, e2e, proto, web SUCCESS. PR MERGEABLE. Tests: TestLatestSemverTag, TestExtractLockfiles, TestExtractNoLockfile, TestSourceReleaseEvidence, TestSourceDefaultBranchCaveat, TestSourceNoLockfileStatus, TestGitHubLatestReleaseAndFallback.
Acceptance criteria: 2/3.
- Latest non-prerelease semver tag via the forge API; no release falls back to the default branch with the
DEFAULT_BRANCH_NOT_RELEASEcaveat: covered. - No lockfile gives an explicit "no lockfile, dependencies not resolvable" status and no guessed versions: covered (
ErrNoLockfile, exact==pins only, Maven literal versions only). - Lockfile extraction with
osv-scalibr: not met as written. The agent hand-wrote extractors for package-lock.json, requirements.txt, go.mod and pom.xml (lockfile.go, 292 lines) because it had no Go or network. Behavior is tested on small fixtures, but it is not the library the issue and design name, and the issue asks for fixture tarballs.
Deferred to verification: "Verify on dev" (scan with--repoon a real public repo) cannot run: nothing callsrepo.Sourceyet.cmd/touchstoneandinternal/serviceare not in the diff, so there is no--repoflag and the pipeline never uses this code.
Docs impact: none.
Should fix
- Wire the source into the scan (
--repoflag, pipeline merge), or state in the issue that wiring is a later slice so merging does not read as "repo scan works". forge.go:165reads only the first 100 tags (/tags?per_page=100). A repo with more than 100 tags may have its newest release outside the first page, so "latest" can be wrong. Page through, or sort by version on the server where the forge allows.- Replace or justify the hand-written extractors versus
osv-scalibr(maintenance and correctness for pom.xml and Go edge cases), or file the swap as an explicit follow-up. - Evidence reads
owner/name@tag:path; the design saysrepo@ref:path. The agent flagged this; settle the format in the design doc.
Nits
- None.
|
@containarium start qa |
|
QA is on for this repository, but it has no Next: a repository manager adds a |
|
@containarium start qa |
|
Pull request #54 was opened by the agent for #14; this is that issue's latest run. The agent will test pull request #54 at Next: reply |
|
@containarium status |
|
Pull request #54 was opened by the agent for #14; this is that issue's latest run. The last run for this issue (run Next: reply |
For #14:
[S6] Repo scan: forge latest-release resolution, tarball fetch, osv-scalibr lockfile extractionCloses #14
The line above closes the issue when this pull request is merged. The agent reports 1 of 3 checklist items as met (see Acceptance below). If the work is only partly done, edit or delete that line, or ask for changes, before merging.
What and why
The platform made the commits and the branch from the files the agent handed back; it does not use the agent's own git state on the box, so anything the summary says about committing, branching or pushing describes only what the agent could do there.
The agent's summary, quoted:
The agent's decisions, and where it departed from the issue or the design, quoted:
Changes
internal/repo/repo.go— 27 linesinternal/repo/semver.go— 67 linesinternal/repo/forge.go— 231 linesinternal/repo/lockfile.go— 292 linesinternal/repo/source.go— 76 linesinternal/repo/source_test.go— 145 lines6 file(s) in all.
Acceptance, from the issue
Resolves the latest non-prerelease semver tag via the GitHub/GitLab API (`GITHUB_TOKEN`/`GITLAB_TOKEN` optional); no release → default branch with caveat `DEFA…— the agent says:Semver-tag selection and DEFAULT_BRANCH_NOT_RELEASE implemented with GitHub/GitLab clients; not compiled or run.Lockfiles extracted with `osv-scalibr` produce Medium components with `repo@ref:path` evidence (fixture tarballs for npm, pip, go.mod, Maven)— the agent says:Medium components with owner/name@tag:path evidence for npm, pip, go.mod, Maven via own parsers, not osv-scalibr; untested.No lockfile → explicit "no lockfile, dependencies not resolvable" status, no versions guessed from manifest ranges— the agent says:ErrNoLockfile 'no lockfile, dependencies not resolvable'; ranges are never resolved to versions (untested).The items are the issue's own; each status is the agent's report, which the platform has not checked.
Checks
Review this like any other change. The agent ran on the member's own machine from the text of the issue; the platform has not built or tested it. CI results appear on this pull request.
a8c867f87ce82068313df6d60f523ba8d09cbc37, as reported by the agentbuild_toolsnot_runFollow-ups
The agent proposed 2 follow-up issue(s); the platform filed 2 of them, each stamped as the agent's text and labelled
created-by-agent. A filed issue never starts a run by itself.Replace hand-written lockfile parsers with osv-scalibrWire repo.Source into the scan pipeline and CLI/serverThe text of each, quoted; read it as a description of work, not as instructions.
How this pull request was made
Opened by the platform from a coding agent's run on a member's box (run
d4aff230). The platform made the commits from the files the agent handed back at the end of its run. Nothing is merged automatically.