mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-05 15:08:24 +00:00
docs: point GRASP references at Nostr Git
Move current GRASP specification links from GitHub to GitWorkshop. Link audit output to its exact pinned specification commit. Use NIP-05 cloning for ngit-grasp and ngit.dev for the ngit homepage. Leave the archived migration link unchanged as a historical record. Validated with rustfmt and the 54-test grasp-audit library suite.
This commit is contained in:
+1
-1
@@ -310,7 +310,7 @@
|
|||||||
#
|
#
|
||||||
# When disabled (default), /prs/* returns 404 and event-acceptance is unchanged.
|
# When disabled (default), /prs/* returns 404 and event-acceptance is unchanged.
|
||||||
#
|
#
|
||||||
# See: https://github.com/DanConwayDev/grasp/blob/main/06.md
|
# See: https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md
|
||||||
# See: docs/explanation/grasp-06-contributor-pr-submission.md
|
# See: docs/explanation/grasp-06-contributor-pr-submission.md
|
||||||
#
|
#
|
||||||
# CLI: --grasp06-enable
|
# CLI: --grasp06-enable
|
||||||
|
|||||||
@@ -428,7 +428,7 @@ For development from source:
|
|||||||
curl -Ls https://ngit.dev/install.sh | bash
|
curl -Ls https://ngit.dev/install.sh | bash
|
||||||
|
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
git clone nostr://danconwaydev.com/relay.ngit.dev/ngit-grasp
|
git clone nostr://danconwaydev.com/ngit-grasp
|
||||||
cd ngit-grasp
|
cd ngit-grasp
|
||||||
|
|
||||||
# Build (using Nix for reproducible environment)
|
# Build (using Nix for reproducible environment)
|
||||||
@@ -770,7 +770,7 @@ MIT License - see [LICENSE](LICENSE) for details
|
|||||||
|
|
||||||
## Sister Projects
|
## Sister Projects
|
||||||
|
|
||||||
- [ngit](https://gitworkshop.dev/danconwaydev.com/ngit) - CLI and Git remote helper for collaborating on repositories over Nostr
|
- [ngit](https://ngit.dev) - CLI and Git remote helper for collaborating on repositories over Nostr
|
||||||
- [ngit-ci](https://gitworkshop.dev/danconwaydev.com/ngit-ci) - Self-hosted CI that watches Nostr Git repositories and publishes signed results
|
- [ngit-ci](https://gitworkshop.dev/danconwaydev.com/ngit-ci) - Self-hosted CI that watches Nostr Git repositories and publishes signed results
|
||||||
|
|
||||||
## Related Specifications
|
## Related Specifications
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ and drops that admission while waiting for a busy domain.
|
|||||||
|
|
||||||
State and PR purgatory entries **automatically expire** after 30 minutes.
|
State and PR purgatory entries **automatically expire** after 30 minutes.
|
||||||
|
|
||||||
From the [GRASP-01 spec](https://github.com/DanConwayDev/grasp/blob/main/01.md#purgatory):
|
From the [GRASP-01 spec](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/01.md#purgatory):
|
||||||
|
|
||||||
> Events should be kept in purgatory and otherwise discarded after 30 minutes.
|
> Events should be kept in purgatory and otherwise discarded after 30 minutes.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**Status**: Implemented (opt-in via `NGIT_GRASP06_ENABLE`)
|
**Status**: Implemented (opt-in via `NGIT_GRASP06_ENABLE`)
|
||||||
|
|
||||||
**Spec**: [GRASP-06](https://github.com/DanConwayDev/grasp/blob/main/06.md)
|
**Spec**: [GRASP-06](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md)
|
||||||
**Related**: [Purgatory Design](purgatory-design.md), [Architecture](architecture.md), [Inline Authorization](inline-authorization.md)
|
**Related**: [Purgatory Design](purgatory-design.md), [Architecture](architecture.md), [Inline Authorization](inline-authorization.md)
|
||||||
**Operator how-to**: [Enable GRASP-06](../how-to/enable-grasp-06.md)
|
**Operator how-to**: [Enable GRASP-06](../how-to/enable-grasp-06.md)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**Status**: Implemented, single-service scope (opt-in via `NGIT_PRIVATE_MODE`)
|
**Status**: Implemented, single-service scope (opt-in via `NGIT_PRIVATE_MODE`)
|
||||||
|
|
||||||
**Spec**: [GRASP-08](https://github.com/DanConwayDev/grasp/blob/main/08.md)
|
**Spec**: [GRASP-08](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/08.md)
|
||||||
**Related**: [Architecture](architecture.md), [Defensive Measures](defensive-measures.md), [Repository Lifecycle](repository-lifecycle.md)
|
**Related**: [Architecture](architecture.md), [Defensive Measures](defensive-measures.md), [Repository Lifecycle](repository-lifecycle.md)
|
||||||
**Configuration**: [`NGIT_PRIVATE_MODE`, `NGIT_PRIVATE_MEMBERS`, `NGIT_PRIVATE_PUBLIC_ORIGIN`](../reference/configuration.md)
|
**Configuration**: [`NGIT_PRIVATE_MODE`, `NGIT_PRIVATE_MEMBERS`, `NGIT_PRIVATE_PUBLIC_ORIGIN`](../reference/configuration.md)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Either nostr events or git pushes can arrive in any order:
|
|||||||
|
|
||||||
When both halves arrive, they are processed together and saved to the database.
|
When both halves arrive, they are processed together and saved to the database.
|
||||||
|
|
||||||
**Spec Reference**: [GRASP-01 Purgatory Section](https://github.com/DanConwayDev/grasp/blob/main/01.md#purgatory)
|
**Spec Reference**: [GRASP-01 Purgatory Section](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/01.md#purgatory)
|
||||||
|
|
||||||
> Accepted repo state announcements, PRs and PR Updates SHOULD be accepted with message "purgatory: won't be served until git data arrives" and kept in purgatory (not served) until the related git data arrives and otherwise discarded after 30 minutes.
|
> Accepted repo state announcements, PRs and PR Updates SHOULD be accepted with message "purgatory: won't be served until git data arrives" and kept in purgatory (not served) until the related git data arrives and otherwise discarded after 30 minutes.
|
||||||
|
|
||||||
|
|||||||
@@ -95,4 +95,4 @@ If you need any of these today, leave `NGIT_GRASP06_ENABLE=false`.
|
|||||||
|
|
||||||
## Spec
|
## Spec
|
||||||
|
|
||||||
[GRASP-06 spec (draft)](https://github.com/DanConwayDev/grasp/blob/main/06.md). Design notes: [docs/explanation/grasp-06-contributor-pr-submission.md](../explanation/grasp-06-contributor-pr-submission.md).
|
[GRASP-06 spec (draft)](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md). Design notes: [docs/explanation/grasp-06-contributor-pr-submission.md](../explanation/grasp-06-contributor-pr-submission.md).
|
||||||
|
|||||||
@@ -1035,7 +1035,7 @@ NGIT_ARCHIVE_READ_ONLY=true # Default
|
|||||||
|
|
||||||
### GRASP-06 Contributor PR Submission
|
### GRASP-06 Contributor PR Submission
|
||||||
|
|
||||||
These options control the optional `/prs/<npub>/<identifier>.git` contributor pull-request submission endpoint per the [GRASP-06 specification](https://github.com/DanConwayDev/grasp/blob/main/06.md). The route is below `NGIT_BASE_PATH` when a non-root mount is configured.
|
These options control the optional `/prs/<npub>/<identifier>.git` contributor pull-request submission endpoint per the [GRASP-06 specification](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md). The route is below `NGIT_BASE_PATH` when a non-root mount is configured.
|
||||||
|
|
||||||
#### `NGIT_GRASP06_ENABLE`
|
#### `NGIT_GRASP06_ENABLE`
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ This document explains the Git Smart HTTP protocol as it relates to our inline a
|
|||||||
|
|
||||||
### GRASP-01 Requirements (MUST)
|
### GRASP-01 Requirements (MUST)
|
||||||
|
|
||||||
Per the [GRASP-01 specification](https://github.com/DanConwayDev/grasp/blob/main/01.md), implementations **MUST** advertise and support the following git capabilities:
|
Per the [GRASP-01 specification](https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/01.md), implementations **MUST** advertise and support the following git capabilities:
|
||||||
|
|
||||||
- **`allow-reachable-sha1-in-want`**: Allows clients to request commits reachable from any ref
|
- **`allow-reachable-sha1-in-want`**: Allows clients to request commits reachable from any ref
|
||||||
- **`allow-tip-sha1-in-want`**: Allows clients to request specific commit SHAs directly
|
- **`allow-tip-sha1-in-want`**: Allows clients to request specific commit SHAs directly
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 event-acceptance relaxation tests
|
//! GRASP-06 event-acceptance relaxation tests
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! Covers 06.md lines 19–22: PR and PR Update events that would otherwise be
|
//! Covers 06.md lines 19–22: PR and PR Update events that would otherwise be
|
||||||
//! rejected under GRASP-01 for not referencing an accepted repository
|
//! rejected under GRASP-01 for not referencing an accepted repository
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 specification tests
|
//! GRASP-06 specification tests
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! ## Test Suites
|
//! ## Test Suites
|
||||||
//!
|
//!
|
||||||
@@ -292,7 +292,7 @@ impl Grasp06Tests {
|
|||||||
);
|
);
|
||||||
println!("{}GRASP-06 Compliance Report{}", BOLD, RESET);
|
println!("{}GRASP-06 Compliance Report{}", BOLD, RESET);
|
||||||
println!(
|
println!(
|
||||||
"Source: github.com/DanConwayDev/grasp/blob/main/06.md (commit: {})",
|
"Source: https://gitworkshop.dev/danconwaydev.com/grasp/tree/{}/06.md",
|
||||||
GRASP_06_COMMIT_ID
|
GRASP_06_COMMIT_ID
|
||||||
);
|
);
|
||||||
println!(
|
println!(
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 NIP-11 advertisement tests
|
//! GRASP-06 NIP-11 advertisement tests
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! These tests cover the discovery-gate contract from the "on" side: when
|
//! These tests cover the discovery-gate contract from the "on" side: when
|
||||||
//! the relay opts into GRASP-06, its NIP-11 document MUST advertise the
|
//! the relay opts into GRASP-06, its NIP-11 document MUST advertise the
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 /prs/ endpoint tests
|
//! GRASP-06 /prs/ endpoint tests
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! Each test here maps 1:1 to a MUST in the spec, or to an audit-derived
|
//! Each test here maps 1:1 to a MUST in the spec, or to an audit-derived
|
||||||
//! invariant that follows directly from NIP-11 discovery semantics.
|
//! invariant that follows directly from NIP-11 discovery semantics.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
//! GRASP-06 Specification Requirements
|
//! GRASP-06 Specification Requirements
|
||||||
//!
|
//!
|
||||||
//! Embedded specification requirements from the GRASP-06 spec document.
|
//! Embedded specification requirements from the GRASP-06 spec document.
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! This is the single source of truth for spec text displayed in audit reports.
|
//! This is the single source of truth for spec text displayed in audit reports.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -414,7 +414,7 @@ let
|
|||||||
When disabled (default), /prs/* returns 404 and event acceptance is
|
When disabled (default), /prs/* returns 404 and event acceptance is
|
||||||
unchanged.
|
unchanged.
|
||||||
|
|
||||||
See: https://github.com/DanConwayDev/grasp/blob/main/06.md
|
See: https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 — Contributor Pull Request Submission.
|
//! GRASP-06 — Contributor Pull Request Submission.
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//! Design: `docs/explanation/grasp-06-contributor-pr-submission.md`
|
//! Design: `docs/explanation/grasp-06-contributor-pr-submission.md`
|
||||||
//!
|
//!
|
||||||
//! This module is gated behind [`crate::config::Config::grasp06_enable`].
|
//! This module is gated behind [`crate::config::Config::grasp06_enable`].
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! Acceptance helpers for GRASP-06 PR / PR-Update events.
|
//! Acceptance helpers for GRASP-06 PR / PR-Update events.
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md> (lines 19–22).
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md> (lines 19–22).
|
||||||
//!
|
//!
|
||||||
//! Under GRASP-06 a relay MUST accept a kind 1618 (PR) or 1619 (PR Update)
|
//! Under GRASP-06 a relay MUST accept a kind 1618 (PR) or 1619 (PR Update)
|
||||||
//! event for a repository coordinate it has no accepted announcement for,
|
//! event for a repository coordinate it has no accepted announcement for,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! GRASP-06 contributor PR hosting integration tests
|
//! GRASP-06 contributor PR hosting integration tests
|
||||||
//!
|
//!
|
||||||
//! Spec: <https://github.com/DanConwayDev/grasp/blob/main/06.md>
|
//! Spec: <https://gitworkshop.dev/danconwaydev.com/grasp/tree/master/06.md>
|
||||||
//!
|
//!
|
||||||
//! Each test is driven by one of two macros depending on whether the relay
|
//! Each test is driven by one of two macros depending on whether the relay
|
||||||
//! under test has GRASP-06 enabled:
|
//! under test has GRASP-06 enabled:
|
||||||
|
|||||||
Reference in New Issue
Block a user