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

# git.repo.read · OpenVibe.Services

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

# `git.repo.read`

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

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

- Owner: git (token audience `openvibe.git`)
- Version: 1.0
- Status: active
- Visibility: first-party
- Resource constraints: owner
- Quota class: standard
- Permissions: git:read
- Input: [git.access-request@1](/docs/contracts/git.access-request)
- Output: git.access-result@1
- Events: —
- Implemented by: - `GET /api/v1/repos`
- `GET /api/v1/repos/:owner/:name`
- `GET /api/v1/repos/:owner/:name/tree`
- `GET /api/v1/repos/:owner/:name/blob`
- `GET /api/v1/repos/:owner/:name/raw`
- `GET /api/v1/repos/:owner/:name/commits`
- `GET /api/v1/repos/:owner/:name/commit/:sha`
- `GET /api/v1/repos/:owner/:name/branches`
- `GET /api/v1/repos/:owner/:name/tags`
- `GET /api/v1/repos/:owner/:name/releases`
- `GET /api/v1/repos/:owner/:name/contributors`
- `GET /api/v1/repos/:owner/:name/insights`
- `GET /api/v1/profile/:username`
- `GET /api/v1/repos/:owner/:name/compare/:base...:head`
- `GET /api/v1/repos/:owner/:name/changes`
- `GET /api/v1/repos/:owner/:name/changes/:number`
- `GET /api/v1/repos/:owner/:name/issues`
- `GET /api/v1/repos/:owner/:name/issues/:number`
- `GET /api/v1/repos/:owner/:name/blame`
- `GET /api/v1/repos/:owner/:name/search`

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