Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions 34.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,16 @@ The `r` tag annotated with the `"euc"` marker should be the commit ID of the ear

Except `d`, all tags are optional.

### Multiple Maintainers

Clients SHOULD recursively fetch repository announcements with the same `d` tag from pubkeys listed in the `maintainers` tag, starting from a 'selected maintainer'. A pubkey that doesn't mutually list back at every link in the chain SHOULD be treated as 'requested' to prevent reputation-harvesting attacks.

When merging announcements and state across maintainers, standard addressable event rules apply (greatest created_at, lowest event id as tie-break); except for `relays` and `clone` tags which SHOULD be unioned across all maintainers, as each maintainer provides their own infrastructure.

When tagging a repository, clients SHOULD include all known co-maintainers repository annoucements so that during ownership transitions, in-flight PRs/Issues likely already tag the new owner.

If one maintainer is the lead, co-maintainers MAY only list them so the lead can remove co-maintainers unilaterally.

### Nostr Clone URL format

A `nostr://` URL can be used to reference a repository announcement in a way that is compatible with `git clone` when a [git-remote-nostr](https://git-scm.com/docs/gitremote-helpers) helper is installed:
Expand Down