---
title: "OpenVibe.Git API · OpenVibe.Services"
canonical: "https://openvibe.services/docs/api/git"
updated: null
---

# OpenVibe.Git API · OpenVibe.Services

HTML: [OpenVibe.Git API · OpenVibe.Services](https://openvibe.services/docs/api/git)

# OpenVibe.Git API

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

Server `https://git.openvibe.codes`. 36 routes performing 3 capabilities. [OpenAPI 3.1 document](/docs/api/git.json).

  only routes apps can be granted (public, partner)  

### GET `/api/v1/profile/{username}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `username` (path, required)
- `owner` (query, required) — The repository owner's lower-case OpenVibe username.
- `name` (query, required) — The repository name, lower-case and never ending in .git.
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (query, required) — The repository owner's lower-case OpenVibe username.
- `name` (query, required) — The repository name, lower-case and never ending in .git.
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/blame`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/blob`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/branches`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/changes`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/changes`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/changes/{number}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/changes/{number}/approve`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/changes/{number}/close`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/changes/{number}/comments`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/changes/{number}/merge`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/changes/{number}/summary`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/commit/{sha}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `sha` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/commits`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/commits`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/commits/{sha}/statuses`

Report commit statuses (checks) on OpenVibe.Git (git.openvibe.codes): POST /api/v1/repos/:owner/:name/commits/:sha/statuses with {context, state: pending|success|failure|error, description?, target\_ur

- Capabilities: [git.checks.write](/docs/capabilities/git.checks.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `sha` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.checks.write</strong> (first-party): Report commit statuses (checks) on OpenVibe.Git (git.openvibe.codes): POST /api/v1/repos/:owner/:name/commits/:sha/statuses with {context, state: pending|success|failure|error, description?, target\_url?}. A first-party CI service (Run first) holds this capability for the audience openvibe.git and reports any repository it builds; the owner may report their own. Reads (GET, the latest per context) need no capability on a public repository and git.repo.read on a private one. A change is mergeable only when its required contexts are green.</p>

### GET `/api/v1/repos/{owner}/{name}/compare/{base}...{head}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `base` (path, required)
- `head` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/contributors`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/insights`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/issues`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/issues`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/issues/{number}`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/issues/{number}/close`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/issues/{number}/labels`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `number` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/raw`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/releases`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/releases`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### POST `/api/v1/repos/{owner}/{name}/review-model`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/search`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/repos/{owner}/{name}/star`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>

### GET `/api/v1/repos/{owner}/{name}/tags`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### GET `/api/v1/repos/{owner}/{name}/tree`

Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights.

- Capabilities: [git.repo.read](/docs/capabilities/git.repo.read)
- Visibility: first-party
- Parameters: - `owner` (path, required)
- `name` (path, required)
- `ref` (query) — A branch or tag to read at; the default branch when absent.
- `path` (query) — A path inside the tree or a blob's path.
- `branch` (query) — The branch a contents write goes on.
- `message` (query) — The commit message of a contents write.
- `files` (query) — The files a contents write changes, by path and full content.
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.read</strong> (first-party): Read a repository on OpenVibe.Git (git.openvibe.codes): its row, tree, blob, raw file, commits, one commit with its diff, branches, tags, releases, contributors and insights. A public repository is read without a token. A private one needs its owner&#39;s session, a Git token made on the repository page, or a first-party service token (Codes, Run, Link) that holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A private repository answers 404 to anyone who may not see it, never 403.</p>

### POST `/api/v1/tokens`

Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person's name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone

- Capabilities: [git.repo.write](/docs/capabilities/git.repo.write)
- Visibility: first-party
- Request body: `application/json` [git.access-request@1](/docs/contracts/git.access-request)
- Response: `application/json` [git.access-result@1](/docs/contracts/git.access-result)
- Errors: [errors.problem@1](/docs/contracts/errors.problem) (application/problem+json)

 Description<p><strong>git.repo.write</strong> (first-party): Write on OpenVibe.Git (git.openvibe.codes): make a repository in a person&#39;s name, mint their short-lived Git token for clone and push, push a branch over HTTPS, write files on a branch without a clone, and set a release. The owner acts with their session; a first-party service token (Codes first) holds this capability for the audience openvibe.git and names the person in X-OV-Subject. A service may also write an official repository. Never another person&#39;s repository.</p>
