Репозитории

Репозитории

Этот раздел API позволяет работать с репозиториями GitVerse.

Получение информации о репозитории

1. GET /repos/{owner}/{repo}

Возвращает основные данные о репозитории: название, владельца, настройки, права пользователя и т.д.

Управление содержимым

2. GET /repos/{owner}/{repo}/contents/{path}

Позволяет получить содержимое файла (в Base64) или список файлов внутри папки.

3. PUT /repos/{owner}/{repo}/contents/{filename}

Создаёт новый файл или обновляет существующий в указанной ветке.

4. DELETE /repos/{owner}/{repo}/contents/{filename}

Удаляет указанный файл из репозитория.

5. GET /repos/{owner}/{repo}/git/trees/{tree_sha}

Возвращает структуру файлов и папок, связанную с указанным деревом Git.

Работа с коммитами

6. GET /repos/{username}/{reponame}/commits

Возвращает список коммитов репозитория с возможностью фильтрации по ветке, пути, автору, дате и другим параметрам.

7. GET /repos/{username}/{reponame}/commits/{sha}

Возвращает полную информацию о конкретном коммите, включая автора, сообщение, статистику изменений и список затронутых файлов.

8. GET /repos/{username}/{reponame}/compare/{basehead}

Сравнивает две ветки, тега или коммита и возвращает разницу между ними (аналог git diff). Полезно для анализа изменений перед созданием Pull Request.

9. POST /repos/{username}/{reponame}/git/refs

Создаёт новую Git-ссылку (ветку, тег или кастомную ссылку) в репозитории.

Работа с Pull Request'ами

10. GET /repos/{owner}/{repo}/branches

Возвращает список всех веток репозитория с информацией о последнем коммите и защите веток.

11. POST /repos/{owner}/{repo}/pulls

Создаёт новый запрос на слияние из указанной ветки в целевую.

Дополнительные методы

12. GET /repos/{owner}/{repo}/issues

Возвращает список задач (issues) репозитория. На данный момент содержит только запросы на слияние (Pull Requests).

13. GET /repos/{owner}/{repo}/languages

Возвращает список языков, используемых в репозитории, с указанием количества строк кода на каждом.

14. POST /repos/{owner}/{repo}/forks

Создаёт форк репозитория для текущего пользователя.

15. PUT /repos/{owner}/{repo}/collaborators/{username}

Добавляет пользователя как соавтора репозитория или обновляет его уровень доступа.

Возможные ошибки

КодОписание
400 Bad RequestНекорректный формат данных
401 UnauthorizedНеобходима авторизация
403 ForbiddenНедостаточно прав
404 Not FoundРепозиторий не найден
409 ConflictКонфликт SHA (при удалении файла без указания sha)
500 Internal Server ErrorВнутренняя ошибка сервера