Получение данных по указанному репозиториюBeta
Описание
Этот раздел документации описывает конечную точку для получения информации о конкретном репозитории, включая его метаданные, владельца, статистику и настройки.
Общие замечания
- Для версий API указывайте заголовок
Accept
с соответствующей версией:
Accept: application/vnd.gitverse+json;version=1
- Для работы с приватными ресурсами требуется авторизация через
Bearer
токен:
Authorization: Bearer \{user_token}
- Базовый URL для всех конечных точек:
https://api.gitverse.ru
4.Все даты возвращаются в формате ISO 8601.
- Если запрос завершается неудачно, 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
): дата изменения учетной записи владельца;
- id (
- 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
: внутренняя ошибка сервера.
Дополнительная информация
- Если репозиторий является приватным, доступ к нему возможен только при наличии соответствующих прав.
- Некоторые поля могут быть скрыты или возвращены пустыми в зависимости от настроек приватности владельца или репозитория.
- Для использования конечной точки может потребоваться авторизация через
Bearer
токен, особенно если запрашиваемый репозиторий является приватным.
Если у вас возникнут вопросы или потребуется дополнительная информация, пожалуйста, обратитесь к документации API или свяжитесь с поддержкой.