Репозитории
Этот раздел 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}/branches
Возвращает список всех веток репозитория с информацией о последнем коммите и защите веток.
6. GET /repos/{owner}/{repo}/contents/{path}
Позволяет получить содержимое файла (в Base64) или список файлов внутри папки.
7. PUT /repos/{owner}/{repo}/contents/{filename}
Создает новый файл или обновляет существующий в указанной ветке.
8. DELETE /repos/{owner}/{repo}/contents/{filename}
Удаляет указанный файл из репозитория.
9. GET /repos/{owner}/{repo}/git/trees/{tree_sha}
Возвращает структуру файлов и папок, связанную с указанным деревом Git.
Работа с коммитами
10. GET /repos/{username}/{reponame}/commits
Возвращает список коммитов репозитория с возможностью фильтрации по ветке, пути, автору, дате и другим параметрам.
11. GET /repos/{username}/{reponame}/commits/{sha}
Возвращает полную информацию о конкретном коммите, включая автора, сообщение, статистику изменений и список затронутых файлов.
12. GET /repos/{username}/{reponame}/compare/{basehead}
Сравнивает две ветки, тега или коммита и возвращает разницу между ними (аналог git diff). Полезно для анализа изменений перед созданием запроса на слияние.
13. POST /repos/{username}/{reponame}/git/refs
Создает новую Git-ссылку (ветку, тег или кастомную ссылку) в репозитории.
14. GET /repos/{username}/{reponame}/git/matching-refs/{ref}
Возвращает git-ссылку (ветку, тег или кастомную ссылку) по префиксу.
15. GET /repos/{username}/{reponame}/git/ref/{ref}
Получает git-ссылку (ветку, тег или кастомную ссылку) по имени.
16. DELETE /repos/{username}/{reponame}/git/refs/{ref}
Удаляет git-ссылку (ветку, тег или кастомную ссылку).
Дополнительные методы
17. GET /repos/{owner}/{repo}/languages
Возвращает список языков, используемых в репозитории, с указанием количества строк кода на каждом.
18. POST /repos/{owner}/{repo}/forks
Создает форк репозитория для текущего пользователя.
19. PUT /repos/{owner}/{repo}/collaborators/{username}
Добавляет пользователя как соавтора репозитория или обновляет его уровень доступа.
20. GET /orgs/{org}/repos
Возвращает список репозиториев указанной организации с фильтрацией, сортировкой и пагинацией.
21. POST /orgs/{org}/repos\
Создает новый репозиторий в указанной организации от имени аутентифицированного пользователя
Возможные ошибки
| Код | Описание |
|---|---|
400 Bad Request | Некорректный формат данных |
401 Unauthorized | Необходима авторизация |
403 Forbidden | Недостаточно прав |
404 Not Found | Репозиторий не найден |
409 Conflict | Конфликт SHA (при удалении файла без указания sha) |
429 Too Many Requests | Превышен лимит запросов |
500 Internal Server Error | Внутренняя ошибка сервера |