Репозитории
Этот раздел API позволяет работать с репозиториями GitVerse.
Получение/обновление информации о репозитории
1. GET /repos/{owner}/{repo}
Возвращает основные данные о репозитории: название, владельца, настройки, права пользователя и т.д.
2. PATCH /repos/{owner}/{repo}
Позволяет изменять ключевые параметры репозитория, такие как название, описание, приватность и поведение при слиянии веток.
3. POST /user/repos
Создает новый репозиторий для пользователя.
4. DELETE /repos/{owner}/{repo}
Удаляет указанный репозиторий.
Управление содержимым
5. GET /repos/{owner}/{repo}/contents/{path}
Позволяет получить содержимое файла (в Base64) или список файлов внутри папки.
6. PUT /repos/{owner}/{repo}/contents/{filename}
Создает новый файл или обновляет существующий в указанной ветке.
7. DELETE /repos/{owner}/{repo}/contents/{filename}
Удаляет указанный файл из репозитория.
8. GET /repos/{owner}/{repo}/git/trees/{tree_sha}
Возвращает структуру файлов и папок, связанную с указанным деревом Git.
Работа с коммитами
9. GET /repos/{username}/{reponame}/commits
Возвращает список коммитов репозитория с возможностью фильтрации по ветке, пути, автору, дате и другим параметрам.
10. GET /repos/{username}/{reponame}/commits/{sha}
Возвращает полную информацию о конкретном коммите, включая автора, сообщение, статистику изменений и список затронутых файлов.
11. GET /repos/{username}/{reponame}/compare/{basehead}
Сравнивает две ветки, тега или коммита и возвращает разницу между ними (аналог git diff). Полезно для анализа изменений перед созданием Pull Request.
12. POST /repos/{username}/{reponame}/git/refs
Создает новую Git-ссылку (ветку, тег или кастомную ссылку) в репозитории.
Дополнительные методы
13. GET /repos/{owner}/{repo}/issues
Возвращает список задач (issues) репозитория. На данный момент содержит только запросы на слияние (Pull Requests).
14. GET /repos/{owner}/{repo}/issues/comments/{id}
Возвращает детали отдельного комментария по его уникальному идентификатору (id).
15. GET /repos/{owner}/{repo}/issues/{index}
Возвращает подробную информацию о задаче (issue) или запросе на слияние (pull request) по его индексу в репозитории.
16. GET /repos/{owner}/{repo}/issues/{index}/comments
Возвращает список всех комментариев, оставленных к задаче (issue) или пул-реквесту (pull request) с указанным индексом.
17. GET /repos/{owner}/{repo}/issues/{index}/labels
Возвращает список меток (labels), назначенных на задачу (issue) или на запрос на слияние (pull request) с указанным индексом.
18. GET /repos/{owner}/{repo}/issues/{index}/timeline
Возвращает хронологию всех событий и комментариев, связанных с задачей (issue) или с запросом на слияние (pull request).
19. GET /repos/{owner}/{repo}/languages
Возвращает список языков, используемых в репозитории, с указанием количества строк кода на каждом.
20. POST /repos/{owner}/{repo}/forks
Создает форк репозитория для текущего пользователя.
21. PUT /repos/{owner}/{repo}/collaborators/{username}
Добавляет пользователя как соавтора репозитория или обновляет его уровень доступа.
Возможные ошибки
| Код | Описание |
|---|---|
400 Bad Request | Некорректный формат данных |
401 Unauthorized | Необходима авторизация |
403 Forbidden | Недостаточно прав |
404 Not Found | Репозиторий не найден |
409 Conflict | Конфликт SHA (при удалении файла без указания sha) |
500 Internal Server Error | Внутренняя ошибка сервера |