API Documentation
CodeVault REST API v1 — authenticate with a Personal Access Token.
Machine-readable spec
A complete OpenAPI 3.1 description of every /api/v1/* endpoint is served alongside this page. Codegen tools (openapi-generator, oapi-codegen), MCP servers, and AI agents can consume either format directly.
Authentication
Create a token at /settings/tokens, then use it in requests:
Authorization: Bearer YOUR_TOKEN
Or via HTTP Basic Auth with your username and token as the password:
curl -u username:TOKEN https://your-instance/api/v1/user
Endpoints
User
/api/v1/userAuthenticated user/api/v1/users/{username}User profile/api/v1/user/reposRepos you can accessRepositories
/api/v1/repos/{owner}/{repo}Repo details/api/v1/repos/{owner}/{repo}/contents?path=&ref=Raw file content/api/v1/repos/{owner}/{repo}/blame?path=&ref=Blame for a file/api/v1/repos/{owner}/{repo}/branchesList branches/api/v1/repos/{owner}/{repo}/branchesCreate branch/api/v1/repos/{owner}/{repo}/branches/{branch}Delete branchIssues
/api/v1/repos/{owner}/{repo}/issuesList issues/api/v1/repos/{owner}/{repo}/issuesCreate issue/api/v1/repos/{owner}/{repo}/issues/{number}Get issue/api/v1/repos/{owner}/{repo}/issues/{number}/commentsCommentPull Requests
/api/v1/repos/{owner}/{repo}/pullsList PRs/api/v1/repos/{owner}/{repo}/pullsCreate PR/api/v1/repos/{owner}/{repo}/pulls/{number}Get PR/api/v1/repos/{owner}/{repo}/pulls/{number}/filesChanged files/api/v1/repos/{owner}/{repo}/pulls/{number}/reviewsReview {event, body}/api/v1/repos/{owner}/{repo}/pulls/{number}/commentsReview comment (inline/general)/api/v1/repos/{owner}/{repo}/pulls/{number}/mergeMerge {strategy} (409 if protected)Commit Status (CI/CD)
/api/v1/repos/{owner}/{repo}/statuses/{sha}Set status/api/v1/repos/{owner}/{repo}/statuses/{sha}Get statusesPackages
/api/v1/repos/{owner}/{repo}/packages/{type}Upload package/api/v1/repos/{owner}/{repo}/packages/{type}/{name}/{version}/files/{file}DownloadRoadmap & Milestones
/api/v1/repos/{owner}/{repo}/roadmapRoadmap milestones/api/v1/repos/{owner}/{repo}/milestonesList milestones/api/v1/repos/{owner}/{repo}/milestonesCreate (write scope)/api/v1/repos/{owner}/{repo}/milestones/{id}Update state/release/order/api/v1/repos/{owner}/{repo}/releasesList releases/api/v1/orgs/{org}/roadmapOrg-wide roadmapFeature Requests (community)
/api/v1/repos/{owner}/{repo}/feature-requestsList (most-voted first)/api/v1/repos/{owner}/{repo}/feature-requestsSuggest {title, body} — needs suggest/api/v1/repos/{owner}/{repo}/feature-requests/{number}/voteToggle vote — needs votePolls (community)
/api/v1/repos/{owner}/{repo}/pollsList with tallies + your choices/api/v1/repos/{owner}/{repo}/polls/{id}/voteCast vote {options:[id]} — needs voteNotifications
/api/v1/notificationsList (?unread=1&limit=)/api/v1/notifications/{id}/readMark one read/api/v1/notifications/readMark all readReactions
/api/v1/reactionsToggle {target_type, target_id, emoji}Security & Supply-chain
/api/v1/repos/{owner}/{repo}/advisoriesDependency advisories/api/v1/repos/{owner}/{repo}/advisories/{id}/autofixOpen an autofix PR/api/v1/repos/{owner}/{repo}/dependenciesDependency inventory/api/v1/repos/{owner}/{repo}/provenanceBuild/commit provenance/api/v1/notary-keyCosign/notary public keyDeployments
/api/v1/repos/{owner}/{repo}/deploy-runsList deploy runs/api/v1/repos/{owner}/{repo}/deploy-runsTrigger a deploy/api/v1/repos/{owner}/{repo}/deploy-runs/{id}/advanceAdvance to next ring/api/v1/repos/{owner}/{repo}/deploy-runs/{id}/rollbackRoll backCommunity collaboration
Feature requests and polls honour the repository's community capability settings (maintainers grant suggest, discuss, vote, and create_poll per user and/or milestone). Reads follow repo visibility; a write you're not permitted returns 403.
# List feature requests (most-voted first)
curl -H "Authorization: Bearer TOKEN" \
https://your-instance/api/v1/repos/OWNER/REPO/feature-requests
# Suggest one (needs the 'suggest' capability)
curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \
-d '{"title":"Dark mode","body":"Please add a dark theme"}' \
https://your-instance/api/v1/repos/OWNER/REPO/feature-requests
# Upvote #12 (needs 'vote')
curl -X POST -H "Authorization: Bearer TOKEN" \
https://your-instance/api/v1/repos/OWNER/REPO/feature-requests/12/vote
# List polls with live tallies + your own choices
curl -H "Authorization: Bearer TOKEN" \
https://your-instance/api/v1/repos/OWNER/REPO/polls
# Cast a poll vote (needs 'vote'); single-choice keeps the first option
curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \
-d '{"options":[34]}' \
https://your-instance/api/v1/repos/OWNER/REPO/polls/5/vote
Pagination
List endpoints support pagination via query parameters:
GET /api/v1/repos/{owner}/{repo}/issues?page=1&per_page=20
Response headers include:
X-Total-Count— total number of itemsLink— next/prev page URLs
Git Operations
# Clone (HTTP)
git clone http://your-instance/owner/repo.git
# Clone (SSH, port 2222)
git clone ssh://git@your-instance:2222/owner/repo.git
# Push with token auth
git remote set-url origin http://username:TOKEN@your-instance/owner/repo.git
Docker Registry
Docker Registry v2 API is available at /v2/:
# Login
docker login your-instance
# Push
docker tag myimage your-instance/owner/repo:latest
docker push your-instance/owner/repo:latest
# Pull
docker pull your-instance/owner/repo:latest