Получить список репозиториев пользователя
GET /users/{username}/repos
Описание
Возвращает список публичных репозиториев указанного пользователя с поддержкой фильтрации, сортировки и пагинации.
Требования
Убедитесь, что ключ API указан корректно и обладает необходимыми правами.
Токен
Требуется токен с правами на Чтение для Репозитория.
Параметры URL
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
username | string | Да | Логин пользователя |
Параметры запроса
| Параметр | Тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|---|
type | string | Нет | Тип репозиториев: all, owner, member | owner |
sort | string | Нет | Поле сортировки: created, updated, pushed, full_name | full_name |
direction | string | Нет | Направление сортировки: asc или desc. Для full_name по умолчанию используется asc, для остальных полей — desc | Зависит от sort |
per_page | integer | Нет | Количество репозиториев на странице, максимум — 100 | 30 |
page | integer | Нет | Номер страницы результатов | 1 |
Тело запроса
Данный метод не требует тела запроса.
Пример запроса
curl -X GET "https://api.gitverse.ru/users/user1/repos?type=owner&sort=updated&direction=desc&page=1&per_page=20" \
-H "Authorization: Bearer <TOKEN>" \
-H "Accept: application/vnd.gitverse.object+json;version=latest"Ответ (200 OK)
Пример JSON-ответа:
[
{
"id": 12345,
"name": "user",
"full_name": "user1/user",
"owner": {
"login": "user1",
"id": 100000,
"avatar_url": "https://api.gitverse.ru/sc/avatars/example-hash-1",
"url": "https://api.gitverse.ru/users/user1",
"html_url": "https://gitverse.ru/user1",
"followers_url": "https://api.gitverse.ru/users/user1/followers",
"following_url": "https://api.gitverse.ru/users/user1/following{/other_user}",
"organizations_url": "https://api.gitverse.ru/users/user1/orgs",
"repos_url": "https://api.gitverse.ru/users/user1/repos",
"type": "User",
"site_admin": false
},
"private": false,
"description": "Project description",
"fork": false,
"forks": 2,
"forks_count": 2,
"language": "Go",
"stargazers_count": 5,
"watchers": 3,
"watchers_count": 3,
"size": 1024,
"default_branch": "main",
"open_issues": 1,
"open_issues_count": 1,
"is_template": false,
"topics": null,
"archived": false,
"disabled": false,
"visibility": "public",
"pushed_at": "2025-12-01T10:00:00Z",
"has_issues": true,
"has_wiki": true,
"created_at": "2025-01-15T08:30:00Z",
"updated_at": "2025-12-01T10:00:00Z",
"allow_merge_commit": true,
"allow_squash_merge": true,
"allow_rebase_merge": false,
"delete_branch_on_merge": false,
"html_url": "https://gitverse.ru/user1/user",
"clone_url": "https://gitverse.ru/user1/user.git",
"ssh_url": "git@gitverse.ru:user1/user.git",
"mirror_url": "https://gitverse.ru/user1/user.git",
"url": "https://api.gitverse.ru/repos/user1/user",
"contents_url": "https://api.gitverse.ru/repos/user1/user/contents/{+path}",
"forks_url": "https://api.gitverse.ru/repos/user1/user/forks",
"issue_comment_url": "https://api.gitverse.ru/repos/user1/user/issues/comments{/number}",
"issues_url": "https://api.gitverse.ru/repos/user1/user/issues{/number}",
"languages_url": "https://api.gitverse.ru/repos/user1/user/languages",
"pulls_url": "https://api.gitverse.ru/repos/user1/user/pulls{/number}",
"permissions": {
"pull": true,
"push": true,
"admin": true
},
"template_repository": null,
"parent": null
}
]Формат ответа
application/vnd.gitverse.object+json;version=latest
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор репозитория |
name | string | Имя репозитория |
full_name | string | Полное имя репозитория в формате owner/name |
owner | object | Информация о владельце |
private | boolean | Является ли репозиторий приватным |
description | string или null | Описание репозитория |
fork | boolean | Является ли репозиторий форком |
html_url | string | Ссылка на репозиторий в веб-интерфейсе |
url | string | API-ссылка на репозиторий |
clone_url | string | Ссылка для клонирования по HTTPS |
ssh_url | string | Ссылка для клонирования по SSH |
default_branch | string | Ветка по умолчанию |
language | string или null | Основной язык программирования |
created_at | string | Дата создания репозитория |
updated_at | string | Дата последнего обновления |
pushed_at | string или null | Дата последнего push |
stargazers_count | integer | Количество звезд |
watchers_count | integer | Количество наблюдателей |
forks_count | integer | Количество форков |
open_issues_count | integer | Количество открытых задач и запросов на слияние |
permissions | object | Права текущего пользователя |
Объект owner
| Поле | Тип | Описание |
|---|---|---|
login | string | Логин владельца |
id | integer | Уникальный идентификатор владельца |
avatar_url | string | URL аватара |
url | string | API URL пользователя |
html_url | string | URL профиля владельца |
followers_url | string | API URL подписчиков |
following_url | string | API URL подписок |
organizations_url | string | API URL организаций |
repos_url | string | API URL репозиториев |
type | string | Тип владельца: User или Organization |
site_admin | boolean | Является ли владелец администратором платформы |
Объект permissions
| Поле | Тип | Описание |
|---|---|---|
pull | boolean | Права на чтение |
push | boolean | Права на запись |
admin | boolean | Права администратора |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
200 | OK | Список репозиториев успешно получен |
400 | Bad Request | Некорректные параметры запроса |
401 | Unauthorized | Токен отсутствует или недействителен |
403 | Forbidden | Доступ запрещен |
404 | Not Found | Пользователь не найден |
429 | Too Many Requests | Превышен лимит запросов |
500 | Internal Server Error | Внутренняя ошибка сервера |