{
"contract": "openagents.repositories.v1",
"version": 1,
"authentication": {
"type": "bearer",
"token_prefix": "oa_pat_",
"scope": "forge:write"
},
"idempotency": {
"header": "Idempotency-Key",
"required_for": [
"POST /api/v1/repos",
"POST /api/v1/user/repos",
"POST /api/v1/orgs/{org}/repos",
"POST /api/v1/user/repos/imports",
"POST /api/v1/orgs/{org}/repos/imports"
]
},
"endpoints": {
"get_authenticated_user": "GET /api/v1/user",
"create_repository": "POST /api/v1/repos",
"create_user_repository": "POST /api/v1/user/repos",
"create_organization_repository": "POST /api/v1/orgs/{org}/repos",
"import_user_repository": "POST /api/v1/user/repos/imports",
"import_organization_repository": "POST /api/v1/orgs/{org}/repos/imports",
"list_repositories": "GET /api/v1/user/repos",
"get_repository": "GET /api/v1/repos/{owner}/{repo}",
"delete_repository": "DELETE /api/v1/repos/{owner}/{repo}",
"get_repository_import": "GET /api/v1/repository-imports/{id}",
"create_device_authorization": "POST /api/v1/device/authorizations",
"poll_device_authorization": "POST /api/v1/device/authorizations/token"
},
"authenticated_user": {
"required": ["id", "login", "namespaces", "token_expires_at"],
"namespace_required": ["id", "login", "type"]
},
"repository": {
"required": [
"id",
"name",
"full_name",
"owner",
"private",
"visibility",
"default_branch",
"lifecycle_state",
"clone_url",
"html_url",
"permissions",
"created_at",
"updated_at"
],
"lifecycle_states": ["provisioning", "ready", "failed"],
"visibilities": ["private", "public"]
},
"repository_import": {
"required": [
"id",
"provider",
"source_full_name",
"source_default_branch",
"source_ref_digest",
"source_head_sha",
"state",
"lfs_warning",
"attempt_count"
],
"states": ["pending", "running", "completed", "failed"]
},
"pagination": {
"request_cursor": "after",
"namespace_filter": "namespace",
"response_cursor": "next_cursor",
"maximum_page_size": 100
},
"errors": {
"shape": ["code", "message", "request_id"],
"stable_codes": [
"access_denied",
"authorization_pending",
"authorization_unavailable",
"github_connection_required",
"github_scope_required",
"github_unavailable",
"idempotency_conflict",
"invalid_idempotency_key",
"invalid_import",
"invalid_pagination",
"invalid_repository",
"namespace_not_allowed",
"not_found",
"repository_quota_exceeded",
"repository_name_conflict",
"repository_busy",
"repository_delete_failed",
"slow_down",
"source_namespace_mismatch",
"source_repository_not_accessible"
]
}
}