alpha
Login
or
Join now
solpbc.org
/
aerie
Star
22
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
cloudflare-native port of the tangled knot server
Star
22
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
aerie
/
knotserver
/
git
/
at
main
1 folder
19 files
Jer Miller
Merge upstream master into aerie
10d ago
51a92414
service
Merge upstream master into aerie Patch category: aerie-distribution
1 week ago
branch.go
knotserver/git: move git.Branch into branch.go makes more sense imo. Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
branch_test.go
knotserver/git: fix pagination in git.Branches Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
cmd.go
knotserver/{git,xrpc}: thread sandbox backend through git/xrpc operations Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
diff.go
knotserver/git: compute changed files between commits and wire into workflow compiler Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
4 months ago
fork.go
knotserver/{git,xrpc}: thread sandbox backend through git/xrpc operations Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
git.go
knotserver/{git,xrpc}: thread sandbox backend through git/xrpc operations Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
2 months ago
language.go
knotserver/git: improve language detection performance - early exit on vendored dirs, dotfiles, docs, and config files - avoid using FileContentN, directly use object.GetBlob instead - avoid calling parent.Size() and directly access blob.Size instead Signed-off-by: oppiliappan <me@oppi.li>
2 months ago
language_test.go
knotserver/git: regression test language percentage skips unknown files
2 months ago
last_commit.go
knotserver/git: improve lastCommit calculations for dirs and files bigger portions of the logic for directories and files are now shared. Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
merge.go
knotserver/git: log stderr from failing git subprocesses Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
1 month ago
merge_test.go
appview: fix vet nits somehow missed this. Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
post_receive.go
knotserver/git: fix pagination in git.Branches Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
receive_pack_parse.go
knotserver/git: recognize report-status-v2 and bound receive-pack response memory Two defects in the aerie-only authenticated HTTPS receive-pack handler: 1. The capability parser only recognized "report-status", so modern git clients advertising "report-status-v2" were treated as advertising no report-status. The handler then took its no-report-status branch and marked every requested ref successful, firing post-receive side effects even for refs git actually rejected (ng). Recognize "report-status-v2" as the same HasReportStatus signal; the existing report parser already ignores ng/option lines, so v2 reports filter correctly. 2. The handler buffered git receive-pack's entire stdout into an unbounded bytes.Buffer before parsing report-status, letting an authenticated client grow handler memory via large sideband progress. Stream git stdout to the client while parsing the report-status side-channel inline through an io.Pipe, reusing ParseReceivePackReportStatus (which discards band-2 progress as it reads and retains only the small band-1 report). Output to the client stays byte-identical. Adds regression coverage: v2 capability detection, v2 all-ok and mixed ok/ng emission filtering, byte-identical client output, and a response-path memory bound that fails if full-stdout buffering returns. Patch category: aerie-distribution Signed-off-by: Jer Miller <jer@solpbc.org>
1 month ago
receive_pack_parse_test.go
knotserver/git: recognize report-status-v2 and bound receive-pack response memory Two defects in the aerie-only authenticated HTTPS receive-pack handler: 1. The capability parser only recognized "report-status", so modern git clients advertising "report-status-v2" were treated as advertising no report-status. The handler then took its no-report-status branch and marked every requested ref successful, firing post-receive side effects even for refs git actually rejected (ng). Recognize "report-status-v2" as the same HasReportStatus signal; the existing report parser already ignores ng/option lines, so v2 reports filter correctly. 2. The handler buffered git receive-pack's entire stdout into an unbounded bytes.Buffer before parsing report-status, letting an authenticated client grow handler memory via large sideband progress. Stream git stdout to the client while parsing the report-status side-channel inline through an io.Pipe, reusing ParseReceivePackReportStatus (which discards band-2 progress as it reads and retains only the small band-1 report). Output to the client stays byte-identical. Adds regression coverage: v2 capability detection, v2 all-ok and mixed ok/ng emission filtering, byte-identical client output, and a response-path memory bound that fails if full-stdout buffering returns. Patch category: aerie-distribution Signed-off-by: Jer Miller <jer@solpbc.org>
1 month ago
repo.go
knotserver: converge pack bitmap + commit-graph after every push git-upload-pack was doing a full object-graph walk over the slow FUSE read path on clone because repos carried no pack bitmap, timing out. After a successful HTTPS receive-pack (events fire first), synchronously run the maintenance recipe so the repo converges to a current bitmap and commit-graph; new repos are created bitmap-ready. - repoMaintainer seam on the long-lived Knot struct; production gitMaintainer runs `git repack -a -d --write-bitmap-index` then `git commit-graph write --reachable`. It runs on a context detached from the request (context.WithoutCancel) so a client disconnecting the moment it has the push result cannot SIGKILL the repack mid-flight. - Per-repo TryLock+skip serialization via a module-scope registry stops concurrent maintenance from racing `repack -d`; sequential pushes never contend and whichever run wins repacks current on-disk state, so a skipped run never strands a stale bitmap. - Best-effort: a maintenance failure is logged, never returned to the client, and cannot unwind event emission. A failed receive-pack returns before the seam, so maintenance never runs on a rejected push. - CreateRepo sets repack.writeBitmaps, pack.writeBitmapHashCache, gc.writeCommitGraph and fetch.writeCommitGraph on both init and fork. Patch category: aerie-distribution Signed-off-by: Jer Miller <jer@solpbc.org> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
tag.go
knotserver/git: extract parseTagRecord helper from Tags Signed-off-by: Matías Insaurralde <matias@insaurral.de>
3 months ago
tag_test.go
knotserver/git: add comprehensive tag tests, improve parseTagRecord coverage Signed-off-by: Matías Insaurralde <matias@insaurral.de>
3 months ago
test_common.go
knotserver/git: add common test utilities makes it easier to setup and teardown git repos for tests Signed-off-by: oppiliappan <me@oppi.li>
5 months ago
tree.go
knotserver/git: fix double allocation in lastCommit calculation Signed-off-by: oppiliappan <me@oppi.li>
2 months ago