1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/panda26-gitlab

Клонировать/Скачать
repository_files.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.05.2025 02:09 64486eb

API для файлов репозитория

CRUD для файлов репозитория

Создание, чтение, обновление и удаление файлов репозитория с помощью этой API

Получение файла из репозитория

Позволяет получить информацию о файле в репозитории, такую как имя, размер, содержимое. Обратите внимание, что содержимое файла закодировано в Base64. Этот конечный пункт может быть доступен без аутентификации, если репозиторий является общедоступным.

GET /projects/:id/repository/files/:file_path
curl --request GET --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb?ref=master'

Пример ответа:

{
  "file_name": "key.rb",
  "file_path": "app/models/key.rb",
  "size": 1476,
  "encoding": "base64",
  "content": "IyA9PSBTY2hlbWEgSW5mb3...",
  "ref": "master",
  "blob_id": "79f7bbd25901e8334750839545a9bd021f0e4c83",
  "commit_id": "d5a3ff139356ce33e37e73add446f16869741b50",
  "last_commit_id": "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"
}

Параметры:

  • file_path (обязательный) - Полный путь к файлу, закодированный в URL. Например, lib%2Fclass%2Erb
  • ref (обязательный) - Имя ветки, тега или коммита

Получение необработанного файла из репозитория

GET /projects/:id/repository/files/:file_path/raw
curl --request GET --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fmodels%2Fkey%2Erb/raw?ref=master'

Параметры:

  • file_path (обязательный) - Полный путь к файлу, закодированный в URL. Например, lib%2Fclass%2Erb
  • ref (обязательный) - Имя ветки, тега или коммита## Создание нового файла в репозитории
POST /projects/:id/repository/files/:file_path
curl --request POST --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fprojectrb%2E?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20content&commit_message=create%20a%20new%20file'

Пример ответа:

{
  "file_name": "app/project.rb",
  "branch": "master"
}

Параметры:

  • file_path (обязательный) - Полный путь к файлу, закодированный в URL. Например, lib%2Fclass%2Erb
  • branch (обязательный) - Имя ветки
  • encoding (необязательный) - Изменение кодировки на 'base64'. По умолчанию используется текст.
  • author_email (необязательный) - Указание адреса электронной почты автора коммита
  • author_name (необязательный) - Указание имени автора коммита
  • content (обязательный) - Содержимое файла
  • commit_message (обязательный) - Сообщение коммита

Обновление существующего файла в репозитории

PUT /projects/:id/repository/files/:file_path
curl --request PUT --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&content=some%20other%20content&commit_message=update%20file'

Пример ответа:

{
  "file_name": "app/project.rb",
  "branch": "master"
}

Параметры:- file_path (обязательный) - URL-кодированный полный путь к файлу. Например, lib%2Fclass%2Erb

  • branch (обязательный) - Название ветки
  • encoding (необязательный) - Изменение кодировки на 'base64'. По умолчанию используется текст.
  • author_email (необязательный) - Указание адреса электронной почты автора коммита
  • author_name (необязательный) - Указание имени автора коммита
  • content (обязательный) - Новый контент файла
  • commit_message (обязательный) - Сообщение коммита
  • last_commit_id (необязательный) - Последний известный идентификатор коммита файлаЕсли коммит не удался по какой-либо причине, мы возвращаем ошибку 400 с неспецифичным сообщением об ошибке. Возможные причины неудачного коммита включают:
  • file_path содержал /../ (попытка перехода по директории);
  • новый контент файла был идентичен текущему контенту файла, то есть пользователь попытался сделать пустой коммит;
  • ветка была обновлена Git-ом при выполнении редактирования файла.

В настоящее время gitlab-shell имеет булевый код возврата, что не позволяет GitLab указывать ошибку.

Удаление существующего файла из репозитория

DELETE /projects/:id/repository/files/:file_path
curl --request DELETE --header 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' 'https://gitlab.example.com/api/v4/projects/13083/repository/files/app%2Fproject%2Erb?branch=master&author_email=author%40example.com&author_name=Firstname%20Lastname&commit_message=delete%20file'

Пример ответа:

{
  "file_name": "app/project.rb",
  "branch": "master"
}

Параметры:

  • file_path (обязательный) - URL-кодированный полный путь к файлу. Например, lib%2Fclass%2Erb
  • branch (обязательный) - Название ветки
  • author_email (необязательный) - Указание адреса электронной почты автора коммита
  • author_name (необязательный) - Указание имени автора коммита
  • commit_message (обязательный) - Сообщение коммита

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/panda26-gitlab.git
git@api.gitlife.ru:oschina-mirror/panda26-gitlab.git
oschina-mirror
panda26-gitlab
panda26-gitlab
master