Base URL: http://localhost:7777/api/v1
All list endpoints support pagination via offset and limit query parameters.
Default page size: 20, max: 100.
Health check. Returns {"status":"ok"}.
Returns node status: version, uptime, identity DID, peer/repo/agent counts.
List all repositories.
Response: { "repos": [...], "total": N, "offset": N, "limit": N }
Create a repository. Auth required.
Body:
{
"name": "my-project",
"description": "Optional description",
"private": false
}Get repository details.
Delete a repository. Auth required.
Fork a repository. Auth required.
Body: { "name": "fork-name" }
Star a repository. Auth required.
Unstar a repository. Auth required.
Get star count and list of stargazers.
List all references (branches, tags).
Create a branch. Auth required.
Body: { "name": "feature-x", "commit": "<hash>" }
Push objects (JSON format). Auth required.
Body:
{
"objects": [
{ "hash": "...", "type": "commit", "content": "<base64>" }
],
"ref_updates": [
{ "name": "refs/heads/main", "new_hash": "..." }
]
}Push using a git packfile (more efficient). Auth required.
Body:
{
"packfile": "<base64-encoded-packfile>",
"ref_updates": [
{ "name": "refs/heads/main", "new_hash": "..." }
]
}Clone repository (git smart-HTTP).
Git smart-HTTP info/refs endpoint.
Git smart-HTTP upload-pack.
Git smart-HTTP receive-pack (accepts packfile).
List files in repository tree.
Query: path (subdirectory), ref (branch/tag), offset, limit
Get file contents.
Query: ref (branch/tag)
Search code in repository.
Query: q (required), ref, offset, limit
Response:
{
"query": "function",
"results": [
{ "file": "src/main.go", "line": 42, "context": "src/main.go:42: func main() {" }
],
"total": N,
"offset": N,
"limit": N
}Get commit history.
Query: ref (starting point), offset, limit
Diff two commits.
Query: from (hash), to (hash)
Get diffs against all parent commits.
List issues. Query: offset, limit
Create an issue. Auth required.
Body:
{
"title": "Bug report",
"body": "Description of the issue",
"labels": ["bug"]
}Get issue details.
Comment on an issue. Auth required.
Body: { "body": "Comment text" }
Close an issue. Auth required.
List issue comments. Query: offset, limit
List pull requests. Query: offset, limit
Open a pull request. Auth required.
Body:
{
"title": "Add feature",
"body": "Description",
"source_branch": "feature",
"target_branch": "main"
}Get PR details.
Review a PR. Auth required.
Body: { "verdict": "approve|reject", "body": "Comments" }
Merge a PR. Auth required.
List PR comments. Query: offset, limit
List labels. Query: offset, limit
Create a label. Auth required.
Body: { "name": "bug", "color": "#ff0000" }
Delete a label. Auth required.
List tasks. Query: status (open|claimed|completed|failed), offset, limit
Create a task. Auth required.
Body: { "title": "Fix bug", "description": "Details" }
Claim a task. Auth required.
Complete a task. Auth required.
Body: { "result": "Optional result description" }
List all protection rules. Query: offset, limit
Get protection rule for a branch.
Set protection rule. Auth required.
Body:
{
"require_pr": true,
"require_approval": true,
"no_force_push": true
}Remove protection rule. Auth required.
Get unified activity feed across all repos.
Query: offset, limit
List known agents. Query: offset, limit
Get agent details.
Generate a new DID:key identity. Auth required.
Resolve a DID to a DID document.
Delegate capabilities to another DID. Auth required.
Body:
{
"audience": "did:key:z...",
"resource": "repo:my-project",
"actions": ["read", "write"]
}Verify a UCAN token. Auth required.
Body: { "ucan": "<token>" }
List registered webhooks. Query: offset, limit
Register a webhook. Auth required.
Body:
{
"url": "https://example.com/webhook",
"events": ["push", "issue.created", "pr.merged"],
"secret": "optional-secret"
}Delete a webhook. Auth required.
Revoke a UCAN by nonce. Auth required.
Body: { "nonce": "...", "reason": "optional" }
List all revoked UCANs. Query: offset, limit
| Event | Description |
|---|---|
push |
Code pushed to repository |
issue.created |
New issue created |
issue.closed |
Issue closed |
issue.commented |
Comment on issue |
pr.opened |
Pull request opened |
pr.merged |
Pull request merged |
pr.reviewed |
Pull request reviewed |
repo.created |
Repository created |
repo.deleted |
Repository deleted |