Репозитории
Этот раздел API позволяет работать с репозиториями GitVerse.
Получение/обновление информации о репозитории
1. GET /repos/{owner}/{repo}
Возвращает основные данные о репозитории: название, владельца, настройки, права пользователя и т.д.
2. PATCH /repos/{owner}/{repo}
Позволяет изменять ключевые параметры репозитория, такие как название, описание, приватность и поведение при слиянии веток.
Управление содержимым
3. GET /repos/{owner}/{repo}/contents/{path}
Позволяет получить содержимое файла (в Base64) или список файлов внутри папки.
4. PUT /repos/{owner}/{repo}/contents/{filename}
Создает новый файл или обновляет существующий в указанной ветке.
5. DELETE /repos/{owner}/{repo}/contents/{filename}
Удаляет указанный файл из репозитория.
6. GET /repos/{owner}/{repo}/git/trees/{tree_sha}
Возвращает структуру файлов и папок, связанную с указанным деревом Git.
Работа с коммитами
7. GET /repos/{username}/{reponame}/commits
Возвращает список коммитов репозитория с возможностью фильтрации по ветке, пути, автору, дате и другим параметрам.
8. GET /repos/{username}/{reponame}/commits/{sha}
Возвращает полную информацию о конкретном коммите, включая автора, сообщение, статистику изменений и список затронутых файлов.
9. GET /repos/{username}/{reponame}/compare/{basehead}
Сравнивает две ветки, тега или коммита и возвращает разницу между ними (аналог git diff
). Полезно для анализа изменений перед созданием Pull Request.
10. POST /repos/{username}/{reponame}/git/refs
Создает новую Git-ссылку (ветку, тег или кастомную ссылку) в репозитории.
Работа с Pull Request’ами
11. GET /repos/{owner}/{repo}/branches
Возвращает список всех веток репозитория с информацией о последнем коммите и защите веток.
12. POST /repos/{owner}/{repo}/pulls
Создает новый запрос на слияние из указанной ветки в целевую.
Работа с релизами
13. GET /repos/{username}/{reponame}/releases
Возвращает список релизов в указанном репозитории с поддержкой пагинации и фильтрации по статусу (черновики, предварительные релизы).
14. POST /repos/{username}/{reponame}/releases
Создает новый релиз на основе тега.
15. GET /repos/{username}/{reponame}/releases/{release_id}
Возвращает информацию о релизе по его идентификатору.
16. DELETE /repos/{username}/{reponame}/releases/{release_id}
Удаляет релиз по его идентификатору.
17. PATCH /repos/{username}/{reponame}/releases/{release_id}
Редактирует информацию о релизе по его идентификатору.
Дополнительные методы
18. GET /repos/{owner}/{repo}/issues
Возвращает список задач (issues) репозитория. На данный момент содержит только запросы на слияние (Pull Requests).
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 | Внутренняя ошибка сервера |