---
title: "git.repo.write · OpenVibe.Services"
canonical: "https://openvibe.services/docs/capabilities/git.repo.write"
updated: null
---

# git.repo.write · OpenVibe.Services

HTML: [git.repo.write · OpenVibe.Services](https://openvibe.services/docs/capabilities/git.repo.write)

# `git.repo.write`

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).

Not grantable to apps (active, first-party).

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, 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's repository.

- Owner: git (token audience `openvibe.git`)
- Version: 1.0
- Status: active
- Visibility: first-party
- Resource constraints: owner
- Quota class: standard
- Permissions: git:write
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Output: git.access-result@1
- Events: —
- Implemented by: - `POST /api/v1/repos`
- `POST /api/v1/tokens`
- `POST /api/v1/repos/:owner/:name/commits`
- `POST /api/v1/repos/:owner/:name/releases`
- `POST /api/v1/repos/:owner/:name/star`
- `POST /api/v1/repos/:owner/:name/changes`
- `POST /api/v1/repos/:owner/:name/changes/:number/comments`
- `POST /api/v1/repos/:owner/:name/changes/:number/approve`
- `POST /api/v1/repos/:owner/:name/changes/:number/merge`
- `POST /api/v1/repos/:owner/:name/changes/:number/close`
- `POST /api/v1/repos/:owner/:name/changes/:number/summary`
- `POST /api/v1/repos/:owner/:name/review-model`
- `POST /api/v1/repos/:owner/:name/issues`
- `POST /api/v1/repos/:owner/:name/issues/:number/labels`
- `POST /api/v1/repos/:owner/:name/issues/:number/close`

[These routes in the API explorer](/docs/api/git#cap-git.repo.write)
