plans: C2-03a askpass ruling (megavolt-0060 to -0063, dewey-0765, gosalyn-0068): fixed argv with followRedirects=false and credential.helper reset, LC_ALL=C, exact-prompt helper with row 199's HOST/NAME checks, no userinfo; tests and four mutants
This commit is contained in:
@@ -616,9 +616,14 @@ and tests in `packages/library/tests` and `packages/bus/tests`. If the helper si
|
||||
### What ships
|
||||
|
||||
Design 7.2's slice:
|
||||
- `syncCommand(kind, url)`: its argv is `SAFE`, exactly one `-c protocol.https.allow=always`, `-C
|
||||
<mirror>`, then the command. Its env is `gitEnv()` plus `GIT_ASKPASS` naming a helper outside the
|
||||
mirror, which reads the `library-gitea` slot.
|
||||
- `syncCommand(kind, url)`: argv is `SAFE`, then `-c protocol.https.allow=always`, `-c
|
||||
http.followRedirects=false`, `-c credential.helper=`, then `-C <mirror>`, then the command. Its env is
|
||||
`gitEnv()` plus `LC_ALL=C` and `GIT_ASKPASS` naming a helper outside the mirror, which reads the
|
||||
`library-gitea` slot. The helper answers only the exact Username and Password prompts for the configured
|
||||
host and user, checked with row 199's HOST and NAME patterns, and exits 1 on anything else. The URL
|
||||
carries no userinfo. (Sage, 2026-10-20, ruling the askpass departure: megavolt-0060 to -0063, dewey-0765,
|
||||
gosalyn-0068. It closes the redirect, host-check and username gaps that row 199's helper closes, and keeps
|
||||
`GIT_ASKPASS` with the slot path, never the value, per sage-1487.)
|
||||
- An `https://` URL only.
|
||||
- The served ref `refs/heads/served`, and `library-diverged`, held until a human `library.sync --accept
|
||||
<commit>`.
|
||||
@@ -626,7 +631,10 @@ Design 7.2's slice:
|
||||
- `library.sync`, human only. A test reaches a local bare repo only through the module parameter that
|
||||
replaces `syncCommand`.
|
||||
|
||||
Tests: the C2-03a tests in design 7.2. A mutant that sets `protocol.allow=always` fails the argv test.
|
||||
Tests: the C2-03a tests in design 7.2, with the argv test checking the fixed sequence above rather than
|
||||
"exactly one `-c`". Also dewey-0765's tests: the username prompt, a wrong host, a wrong port, another user, a
|
||||
302, and the slot path against the value. Also gosalyn-0068's test that the env holds `LC_ALL=C`. A mutant
|
||||
that sets `protocol.allow=always` fails the argv test, and dewey-0765's four mutants are killed.
|
||||
|
||||
### Out of scope
|
||||
|
||||
@@ -635,7 +643,7 @@ Push and every bus write (C2-03b, C2-02). Creating the token slot, which is desi
|
||||
### Gate
|
||||
|
||||
Dewey approves the manifest. The library and bus suites are green on Sage's gate, along with every
|
||||
`scripts/test-*.sh`, and the mutant is killed. A search of the test run's output for the fixture token
|
||||
`scripts/test-*.sh`, and the mutants are killed. A search of the test run's output for the fixture token
|
||||
finds nothing.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user