Получение данных по указанному репозиторию
Beta

Описание

Этот раздел документации описывает конечную точку для получения информации о конкретном репозитории, включая его метаданные, владельца, статистику и настройки.

Общие замечания

  1. Для версий API указывайте заголовок Accept с соответствующей версией:
Accept: application/vnd.gitverse+json;version=1
  1. Для работы с приватными ресурсами требуется авторизация через Bearer токен:
Authorization: Bearer \{user_token}
  1. Базовый URL для всех конечных точек:
https://api.gitverse.ru

4.Все даты возвращаются в формате ISO 8601.

  1. Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.

Описание метода

GET /repos/{owner}/{repo}

Параметры пути

  • {owner} — имя владельца репозитория (пользователя или организации);
  • {repo} — название репозитория.

Заголовки запроса

  • Content-Type: application/json: указывает, что тело ответа будет в формате JSON;
  • Accept: application/vnd.gitverse+json;version=1: указывает версию API. В данном случае используется версия 1;
  • Authorization: Bearer {user_token} (опционально): требуется для доступа к приватным репозиториям.

Параметры ответа

Ответ содержит следующие поля.

Общая информация

  • id (integer): уникальный идентификатор репозитория;
  • owner (object): информация о владельце репозитория:
    • id (integer): уникальный идентификатор владельца.
    • name (string): имя владельца.
    • login (string): логин владельца.
    • full_name (string): полное имя владельца.
    • type (string): тип владельца (User или Organization).
    • bio (string): биография владельца (если доступна).
    • email (string): электронная почта владельца (если доступна).
    • avatar_url (string): URL аватара владельца.
    • html_url (string): веб-ссылка на профиль владельца.
    • url (string): API-ссылка на профиль владельца.
    • followers_url (string): API-ссылка на список подписчиков владельца.
    • repos_url (string): API-ссылка на репозитории владельца.
    • organizations_url (string): API-ссылка на организации владельца.
    • site_admin (boolean): Есть ли права администратора у владельца.
    • location (string): местоположение владельца (если доступно).
    • is_verified (boolean): верифицирован ли владелец.
    • visibility (string): настройки приватности владельца (public, limited, private).
    • website (string): вебсайт владельца (если доступен).
    • followers (integer): количество подписчиков владельца.
    • following (integer): количество подписок владельца.
    • public_repos (integer): количество публичных репозиториев владельца.
    • stars_count (integer): количество звезд у репозиториев владельца.
    • created_at (string): дата создания учетной записи владельца.
    • updated_at (string): дата изменения учетной записи владельца;
  • name (string): название репозитория;
  • full_name (string): полное название репозитория в формате {owner}/{repo};
  • description (string): Описание репозитория (если доступно);
  • topics (array или null): список тем, связанных с репозиторием;
  • private (boolean): Является ли репозиторий приватным;
  • fork (boolean): Является ли репозиторий форком другого репозитория;
  • parent (object или null): информация о родительском репозитории (если это форк).

Метаданные

  • size (integer): размер репозитория в килобайтах;
  • language (string): Основной язык программирования, используемый в репозитории;
  • ssh_url (string): SSH-URL для клонирования репозитория;
  • clone_url (string): HTTPS-URL для клонирования репозитория;
  • html_url (string): веб-ссылка на репозиторий;
  • url (string): API-ссылка на репозиторий;
  • git_url (string): Git-URL для клонирования репозитория;
  • mirror_url (string): зеркало репозитория (если доступно);
  • website (string): ссылка на вебсайт проекта (если доступно);
  • homepage (string): Альтернативная ссылка на домашнюю страницу проекта.

Статистика

  • stargazers_count (integer): количество звезд у репозитория;
  • forks (integer): количество форков репозитория;
  • forks_count (integer): количество форков репозитория (дублирует поле forks);
  • watchers (integer): количество наблюдателей за репозиторием;
  • watchers_count (integer): количество наблюдателей за репозиторием (дублирует поле watchers);
  • network_count (integer): количество репозиториев в сети (форков и оригинала);
  • subscribers_count (integer): количество подписчиков на уведомления о репозитории;
  • open_issues (integer): количество открытых задач (issues) в репозитории;
  • open_issues_count (integer): количество открытых задач (issues) в репозитории (дублирует поле open_issues);
  • open_pr_counter (integer): количество открытых pull requests.

Настройки

  • default_branch (string): Основная ветка репозитория;
  • archived (boolean): Архивирован ли репозиторий;
  • has_issues (boolean): разрешено ли создание задач (issues);
  • has_projects (boolean): разрешено ли использование проектов;
  • has_discussions (boolean): разрешено ли использование обсуждений;
  • has_wiki (boolean): разрешено ли использование wiki;
  • has_pages (boolean): разрешено ли использование GitHub Pages;
  • disabled (boolean): Отключен ли репозиторий;
  • visibility (string): настройки приватности репозитория (public, private);
  • is_template (boolean): Является ли репозиторий шаблоном;
  • template_repository (object или null): информация о шаблоне репозитория (если доступно);
  • allow_merge_commits (boolean): разрешены ли слияния через merge commits;
  • allow_squash_merge (boolean): разрешены ли слияния через squash commits;
  • default_delete_branch_after_merge (boolean): удалять ли ветку после слияния по умолчанию.

Даты

  • created_at (string): дата создания репозитория;
  • updated_at (string): дата последнего обновления репозитория;
  • pushed_at (string): дата последнего push-события в репозиторий.

Пример запроса

GET https://api.gitverse.ru/repos/exmaple_user2/russia_template_fork
Content-Type: application/json
Accept: application/vnd.gitverse+json;version=1
Authorization: Bearer YOUR_ACCESS_TOKEN

Пример ответа

{
	"id": 5,
	"owner": {
		"id": 2,
		"name": "exmaple_user2",
		"login": "",
		"full_name": "",
		"type": "User",
		"bio": "",
		"email": "",
		"avatar_url": "https://secure.gravatar.com/avatar/dfec3a5b8194f11c6812639cced291e1?d=identicon",
		"html_url": "exmaple_user2",
		"url": "public/api/users/exmaple_user2",
		"followers_url": "public/api/users/exmaple_user2/followers",
		"repos_url": "public/api/users/exmaple_user2/repos",
		"organizations_url": "public/api/users/exmaple_user2/orgs",
		"site_admin": false,
		"location": "",
		"is_verified": false,
		"visibility": "public",
		"website": "",
		"followers": 0,
		"following": 0,
		"public_repos": 1,
		"stars_count": 0,
		"created_at": "2025-04-01T14:46:35+03:00",
		"updated_at": "2025-04-01T14:46:55+03:00"
	},
	"name": "russia_template_fork",
	"full_name": "exmaple_user2/russia_template_fork",
	"description": "",
	"topics": null,
	"private": false,
	"fork": true,
	"parent": {
		"id": 4,
		"owner": {
			"id": 1,
			"name": "exmaple_user1",
			"login": "",
			"full_name": "",
			"type": "User",
			"bio": "",
			"email": "",
			"avatar_url": "https://secure.gravatar.com/avatar/4cd22c90d4643ede3516ee4578157f7c?d=identicon",
			"html_url": "exmaple_user1",
			"url": "public/api/users/exmaple_user1",
			"followers_url": "public/api/users/exmaple_user1/followers",
			"repos_url": "public/api/users/exmaple_user1/repos",
			"organizations_url": "public/api/users/exmaple_user1/orgs",
			"site_admin": false,
			"location": "",
			"is_verified": false,
			"visibility": "public",
			"website": "",
			"followers": 0,
			"following": 0,
			"public_repos": 3,
			"stars_count": 3,
			"created_at": "2025-03-10T23:24:42+03:00",
			"updated_at": "2025-04-04T10:04:14+03:00"
		},
		"name": "russia_template",
		"full_name": "exmaple_user1/russia_template",
		"description": "",
		"topics": [],
		"private": false,
		"fork": false,
		"parent": null,
		"size": 37,
		"language": "",
		"ssh_url": "parshentsev.v.p@localhost:exmaple_user1/russia_template.git",
		"clone_url": "exmaple_user1/russia_template.git",
		"html_url": "http://localhost:3000/exmaple_user1/russia_template",
		"url": "",
		"git_url": "exmaple_user1/russia_template.git",
		"mirror_url": "exmaple_user1/russia_template.git",
		"website": "",
		"homepage": "",
		"stargazers_count": 1,
		"forks": 1,
		"forks_count": 1,
		"watchers": 1,
		"watchers_count": 1,
		"network_count": 0,
		"subscribers_count": 0,
		"open_issues": 0,
		"open_issues_count": 0,
		"open_pr_counter": 0,
		"default_branch": "main",
		"archived": false,
		"created_at": "2025-04-01T11:07:12+03:00",
		"updated_at": "2025-04-01T11:07:15+03:00",
		"pushed_at": "2025-04-01T11:07:15+03:00",
		"has_issues": true,
		"has_projects": true,
		"has_discussions": false,
		"has_wiki": true,
		"has_pages": false,
		"disabled": false,
		"visibility": "public",
		"is_template": false,
		"template_repository": null,
		"allow_merge_commits": true,
		"allow_squash_merge": true,
		"default_delete_branch_after_merge": false
	},
	"size": 37,
	"language": "Go",
	"ssh_url": "parshentsev.v.p@localhost:exmaple_user2/russia_template_fork.git",
	"clone_url": "exmaple_user2/russia_template_fork.git",
	"html_url": "http://localhost:3000/exmaple_user2/russia_template_fork",
	"url": "",
	"git_url": "exmaple_user2/russia_template_fork.git",
	"mirror_url": "exmaple_user2/russia_template_fork.git",
	"website": "",
	"homepage": "",
	"stargazers_count": 1,
	"forks": 0,
	"forks_count": 0,
	"watchers": 1,
	"watchers_count": 1,
	"network_count": 0,
	"subscribers_count": 0,
	"open_issues": 0,
	"open_issues_count": 0,
	"open_pr_counter": 0,
	"default_branch": "main",
	"archived": false,
	"created_at": "2025-04-01T14:46:55+03:00",
	"updated_at": "2025-04-01T14:46:55+03:00",
	"pushed_at": "2025-04-01T14:46:55+03:00",
	"has_issues": true,
	"has_projects": true,
	"has_discussions": false,
	"has_wiki": true,
	"has_pages": false,
	"disabled": false,
	"visibility": "public",
	"is_template": false,
	"template_repository": null,
	"allow_merge_commits": true,
	"allow_squash_merge": true,
	"default_delete_branch_after_merge": false
}

Обработка ошибок

Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.

Пример ошибки

{
	"error": "Repository not found",
	"message": "The requested repository does not exist or you do not have access to it.",
	"status": 404
}

Возможные коды ошибок

  • 400 Bad Request: неверный запрос (например, отсутствие обязательных параметров);
  • 401 Unauthorized: необходима авторизация;
  • 403 Forbidden: у пользователя нет прав на выполнение действия;
  • 404 Not Found: репозиторий не найден;
  • 500 Internal Server Error: внутренняя ошибка сервера.

Дополнительная информация

  1. Если репозиторий является приватным, доступ к нему возможен только при наличии соответствующих прав.
  2. Некоторые поля могут быть скрыты или возвращены пустыми в зависимости от настроек приватности владельца или репозитория.
  3. Для использования конечной точки может потребоваться авторизация через Bearer токен, особенно если запрашиваемый репозиторий является приватным.

Если у вас возникнут вопросы или потребуется дополнительная информация, пожалуйста, обратитесь к документации API или свяжитесь с поддержкой.