Репозитории

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