diff --git a/bobbin/crates/xrpc/src/lib.rs b/bobbin/crates/xrpc/src/lib.rs index 50b585c9f..a1082e671 100644 --- a/bobbin/crates/xrpc/src/lib.rs +++ b/bobbin/crates/xrpc/src/lib.rs @@ -618,6 +618,7 @@ impl OnFailure for LatencyFreeTrace { const REPO_PROXIED_NSIDS: &[&str] = &[ "sh.tangled.repo.archive", + "sh.tangled.repo.blame", "sh.tangled.repo.blob", "sh.tangled.repo.branch", "sh.tangled.repo.branches", @@ -641,6 +642,7 @@ const KNOT_PROXIED_NSIDS: &[&str] = &[ const MIRROR_V2_PROXIED_NSIDS: &[&str] = &[ "sh.tangled.git.temp2.listCommits", + "sh.tangled.git.temp2.getBlame", "sh.tangled.git.temp2.getDiff", "sh.tangled.git.temp2.getInterdiff", "sh.tangled.git.temp2.mergeCheck", diff --git a/bobbin/crates/xrpc/tests/mirror_proxy.rs b/bobbin/crates/xrpc/tests/mirror_proxy.rs index fd21ea614..a9d74d485 100644 --- a/bobbin/crates/xrpc/tests/mirror_proxy.rs +++ b/bobbin/crates/xrpc/tests/mirror_proxy.rs @@ -243,6 +243,7 @@ async fn every_shape_compatible_request_reads_the_mirror() { async fn every_request_the_mirror_answers_in_another_shape_reads_the_knot() { #[rustfmt::skip] let refused = [ + ("sh.tangled.repo.blame", "ref=main&path=x", "outside the routing table"), ("sh.tangled.repo.blob", "ref=main&path=x", "the mirror serves content types the knot answers with 403"), ("sh.tangled.repo.blob", "ref=main&path=x&raw=true", "raw doesn't exempt the blob"), ("sh.tangled.repo.archive", "ref=main", "a resume would splice knot bytes onto a mirror tarball"),