Something went wrong. Try again.
atproto git client
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677atgc {version}: instructions for agentsThe hosting model atgc is a client for interacting with Tangled, a git forge on ATProto. Code is stored on a "knot", a small repository server. Other records, such as pull requests and issues, are stored in the author's own Personal Data Server (PDS).Identity atgc supports multiple simultaneous logged in accounts. Push access to the knot is authorized via SSH. You can ignore messages about tokens or scopes until they actually prevent work; at that point, ask the user to login again with `atgc auth login`. atgc auth status # display current login atgc key add # register an account-wide push SSH key atgc repo configure # write atproto info into .git/configPull requests PRs are created with "rounds" based on submitted patches. Pushing a branch never appends a round on its own: `pr resubmit` is what does that, and then `pr edit` for the body. `pr create` pushes the branch for you and takes the patch from the knot; `--patch-only` skips the push and records no source branch, which is what to use when you have no push access on the target. `pr resubmit` follows the shape the PR already has: it re-pushes the branch and re-takes the patch when the PR records a source, and formats locally when it does not, so there is no --patch-only on it. Its push carries a lease on the head the last round recorded, so a rewritten branch lands and one somebody else moved refuses: never push by hand first, and never --force past that refusal blind. Check out the branch the PR names before appending a round. atgc pr create # push the branch, then open the PR atgc pr create --patch-only # the patch alone, no branch pushed atgc pr resubmit 23 # append a round (a patch revision) atgc pr edit 23 # title and body only atgc pr diff 23 --interdiff # what changed between roundsChange-ids Stacking matches pulls to commits by a Change-Id trailer. `atgc repo configure` sets up a commit-msg hook that writes one, and `atgc doctor local` says whether commits here will carry one. Without it, commits already made need `stack create --add-change-ids`, which rewrites them.Stacked pull requests One PR holds as many commits as its change needs, so a branch of ten commits that is one change is one `pr create`. Stack only when the branch holds separate changes that must be reviewed apart and land in order. A stacked PR is not one commit either: mark where each one ends and it holds as many commits as it needs. Unmarked, a stack is one PR per commit; unmarked and over three commits, `create` asks first. `stack create` pushes the branch first: every member records it as the source, which is how `stack view/resubmit/sync/merge` find the chain again; those republish it the same way, leased. No --patch-only. Never run `git rebase` on a stack: it strands the marks. Pulls opened one at a time can be made into a stack with `stack link` instead of being reopened, which keeps their numbers and review. atgc stack mark HEAD~3 # cut here; no args lists the marks atgc stack create # push, then a PR per mark atgc stack sync # rebase onto main, then reconcile atgc stack rebase # just the replay, carrying the marks atgc stack resubmit # after any rebase, amend or reorder atgc stack merge # lands it bottom-up atgc stack up / down # stand on another (top/bottom/checkout)Image previews Commands that create or edit PRs and issues accept Markdown bodies; local image paths are uploaded and rendered in web view, 1 MB max.Reporting problems atgc is pre-1.0 and the services it talks to are alpha, so defects are expected. Filing one is welcome and needs no permission; always pass --agent, which marks the issue as an agent's in its title and body so a human reading the tracker knows who filed it. `atgc report bug` opens it on atgc's own repo, with the version, platform, git and PDS host attached. Feature requests and questions go to the board. atgc report bug --agent --title '...' --body 'what you ran and saw'