tcmts.cli.announce

Server

announceAndTell (cb: Codebase, rel: Release, o: { sources: string[]; session: OAuthSession; }) => Promise<void>
Announce a release of this codebase as the signed-in account, fetched from `sources`, and say so: where the record is, and which sources don't have the release yet (it's announced anyway; a push sends it).
releaseRecord (cb: Codebase, r: Release, sources: string[]) => Promise<ReleaseRecord>
The record announcing a release of this codebase, fetched from `sources`.

Shared

ANNOUNCE_SCOPE "atproto repo:codes.tcm.release repo:codes.tcm.review repo:codes.tcm.advisory repo:codes.tcm.yank r…
What signing in for tcm asks to be allowed: writing its records (releases, reviews, advisories, yanks, listed codebases), and nothing else. One sign-in does for announcing, attesting and listing.
CODEBASE_SETTING "announce.codebase"
The setting keeping how this codebase was last listed (`tcm announce`): its name, URL and description, as JSON.
announceCodebase (s: OAuthSession, record: CodebaseRecord) => Promise<{ uri: string; was: "new" | "same" | "updated"…
List a codebase as the signed-in account: its record written to their repository, at its name. Listed again, it's left as it is when it says the same (but when), and replaced when its URL or description changed.
announceRelease (s: OAuthSession, record: ReleaseRecord) => Promise<{ uri: string; was: "new" | "same" | "updated";…
Write a release's record to the signed-in account's repository. A version is one record: announced again, it's left as it is when it says the same, has its sources replaced when only they differ, and is refused when it names something else.
announceSources (cb: Codebase, pkg: string, given: string[]) => string[]
Where a package's release is announced as fetched from: the `--source` URLs given (kept for next time), else the ones kept, else origin, if it's a server.
announcedReleases (id: Identity) => Promise<ReleaseRecord[]>
The releases an account has announced: its `codes.tcm.release` records, read from the PDS its DID document names. A record that isn't one, or isn't at its own key (`<package>:<version>`), is left out.
listedCodebase (s: OAuthSession, name: string) => Promise<{ cid: string; value: CodebaseRecord; } | undefined>
The record at the signed-in account's `codes.tcm.codebase/<name>`, if there's one.
resolveAnnounced (who: string, what: string) => Promise<{ id: Identity; record: ReleaseRecord; }>
An announced release: `what` (`geo@1.2.0`, or `geo` for its highest version) among those `who` (a handle, checked both ways, or a DID) has announced, as their repository signs it (`signedRecord`: what a PDS lists isn't taken on its word).
sourcesSetting (pkg: string) => string
The codebase setting keeping where a package's announced releases can be fetched from.
withdrawCodebase (s: OAuthSession, name: string) => Promise<boolean>
Stop listing a codebase: its record deleted from the signed-in account's repository. Returns whether it was there.