Repository navigation
Conversation
…and root (D-0595)
… source failures (D-0560)
…r own file (D-0560)
Collaborator
Author
|
Fixed in 9d701de: a permission-denied stat of root's per-user cli.ini is now returned from the certbot hook scan, so refuseCertbotHooks refuses with E151 instead of skipping a file that may hold the root-scheduler copy hook. Added TestCertbotHooksRootConfigDenied; it fails on the previous code (nil error) and passes now. |
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.
Fixes four open debt rows; D-0215 is left open (reason below).
Per row
D-0541 (deploy rollback ignored the record save error)
rollbackRemoteV15(now incmd/commands/deploy_lifecycle_rollback.go) returns an error after a successful rollback when.nself/state/deploy.jsoncannot be saved. The message says the hosts were rolled back but the record was not saved. New testTestRollbackReportsUnsavedRecordmakes the state dir read-only; it fails on main (exit nil) and passes now (skipped when run as root).D-0560 (update --plan/--yes generic E400, status read from text)
fetchReleaseFromURLreturns a typed*releaseStatusError{Status}(message text unchanged).sourceFailureand the 404 check ingatherPlanread the status witherrors.As. Text parsing remains only as a fallback for the plugin registry fetch, which still words its status as text (internal/plugin/registry.go, not changed here).internal/errs/codes_lock.go(E456/E457 sit in the existing P7-LIVE-09 range): E456 "Update source unavailable", E457 "Update source rate limited" (HTTP 429). Rows added to.github/wiki/error-codes.mdwithgo run ./tools/wikigen.cmd/commands/update_source_failure.goto keepupdate_plan.gounder the 300-line cap.TestUpdatePlanSourceFailureCodes(typed, wrapped, wording that mentions 429 but is a 403, no status); the two existing 429 tests now expect E457.D-0595 (certbot hook scan skipped the per-user config)
certbotHooksalso scans$XDG_CONFIG_HOME/letsencrypt/cli.ini,~/.config/letsencrypt/cli.iniof the caller, and the same file under root's home. Absence is tolerated; so is a permission denial on root's home when the caller is not root (they cannot have written there); any other read error still refuses.certbotUserConfigsis a variable; the test init stubs it so tests never read the real home. New testTestCertbotHooksPerUserConfigfails when the per-user scan is removed.D-1154 (hasura pin order trusted tag before digest)
hasuraPinOrdernow checks the digest against the lock entries first (the digest is what the daemon runs); the tag decides only when the digest is absent or unknown. Added three table cases toTestUpdatePlanHasuraRow; the two mismatched tag@digest cases fail on main.D-0215 (scaffold Dockerfile base images outside the lock): NOT fixed
Rendering
golang,node,python,rust,nginx, distroless and alpine bases from the lock needs new lock entries. Each entry gets adocker.io/nself/<name>mirror (registry publishing), changes which base versions every scaffolded service pins (node 20 and Go 1.23 are today's literals), and feeds the project lock pins and the bump policy. Those are product decisions plus a registry write, so this is left for the owner. Extending the scan alone would need an allowlist of about ten lines, against the ratchet (maxAllowlist = 1).Commands run
go build ./...,go vet ./cmd/... ./internal/errs/...,gofmt -l cmd internal tools(clean)go test ./cmd/commands ./cmd/nself ./internal/errs ./tools/wikigen ./internal/deploy ./internal/composeall ok (fullcmd/commandsrun was before the pure-move refactor commit)go test ./cmd/commands -run 'Update|Certbot|Rollback|Hasura|Retire|ACME|Acme',go test ./internal/repoqa ./cmd/nself ./internal/errsall ok