You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 73fd747
Browse filesBrowse the repository at this point in the historyBrowse files
|`GITLAWB_BOOTSTRAP_DISABLE_SEEDS`| Disable embedded seed peers for isolated dev/test networks. |
395
-
|`GITLAWB_REQUIRE_SIGNED_PEER_WRITES`| Require signed peer announce/sync writes. |
395
+
|`GITLAWB_REQUIRE_SIGNED_PEER_WRITES`| Require signed peer announce/sync writes. Defaults to `false` during the staged rollout below. |
396
+
|`GITLAWB_ENFORCE_OWNER_PUSH`| Require the authenticated pusher to be the repo owner on `git-receive-pack`. **Defaults to `true`.** A `did:key` signature is authentication, not authorization — anyone can mint a key and sign — so with this off every signed caller may push to every repository, private ones included. Delegated and CI keys count as non-owners: a UCAN `git/push` capability is verified but not yet honored for authorization, so they cannot push while this is on. Set `false` only for a rolling upgrade; see [`docs/RUN-A-NODE.md`](docs/RUN-A-NODE.md). |
396
397
|`GITLAWB_AUTO_SYNC`| Enable automatic sync from known peers. |
397
398
|`GITLAWB_MAX_PACK_BYTES`| Max git pack body size for smart-HTTP routes. |
398
399
|`GITLAWB_GIT_SERVICE_TIMEOUT_SECS`| Max seconds a served git upload-pack, receive-pack, or `info/refs` advertisement may run before it is aborted (504). Default 600. Also bounds the withheld-blob classification walk (on both the upload-pack serve and receive-pack replication paths) and the push-side pin-candidate discovery (`rev-list` / `cat-file`), each reaped via process-group teardown at the deadline. On the path-scoped upload-pack path the classification walk and the pack serve share ONE deadline, so this value bounds their combined duration rather than granting each stage a full budget: a walk that consumes it leaves the serve nothing and the clone gets a 504. Serving large path-scoped repos may therefore need a higher value than they did when each stage was budgeted separately. Accepted range is 1 to 3153600000 (100 years), since the node derives deadlines from this value and a larger one cannot be represented. |
Copy file name to clipboardExpand all lines: docs/OSS-READINESS-AUDIT.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,7 +93,7 @@ Fixed or staged in this pass:
93
93
Live-network blockers to prioritize:
94
94
95
95
- GraphQL POST is still open for compatibility; GraphQL mutations should get mutation-aware auth before it becomes a public write API surface.
96
-
- Push authorization is still not capability-complete. A valid DID signature is authentication, not authorization; unprotected repo branches do not yet enforce owner/UCAN capability checks.
96
+
- Push authorization is still not capability-complete. A valid DID signature is authentication, not authorization. Owner checks are now enforced on every branch, protected or not (`GITLAWB_ENFORCE_OWNER_PUSH`, on by default); what remains is that a UCAN `git/push`capability is not yet honored, so a delegated or CI key cannot push.
97
97
- UCAN chain validation is incomplete and UCAN revocation/blocklisting is not implemented as an operator feature.
98
98
- Private repository reads are not enforced. `is_public` and `GITLAWB_PUBLIC_READ` exist, but per-repository private-read behavior is not wired.
99
99
- Peer URLs are self-asserted by DIDs. Signatures prove control of the DID key when present, not ownership/safety of the announced URL.
0 commit comments