Публичный APIРепозитории

Репозитории

Этот раздел 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Внутренняя ошибка сервера