Bitbucket REST API получение файла по имени тега.

Задача:
Получить файл из Bitbucket с версией определяемой тегом.
Адрес файла: https://BITBUCKET_ADR/projects/PROJECT_NAME/repos/configs/browse/FILE_NAME.yaml

Общая информация о Bitbucket REST API
Структура REST выглядит следующим образом :
http://host:port/context/rest/api-name/api-version/path/to/resource
Ответ приходит в виде json со следующей структурой

Примечание
Файл не всегда передается полностью. Он разбивается на страницы, для получения полного файла необходимо сделать несколько запросов, пока не достигнем последней страницы "isLastPage":true .

В запросе можно указать дополнительные параметры start и limit
limit - количество строк на одной странице;
start - номер считываемой страницы.

Запрос для получения файла из задачи(Файл небольшой, 2000 строк хватит для того, чтобы получить его полностью).

https://BITBUCKET_ADR/rest/api/1.0/projects/PROJECT_NAME/repos/configs/browse/FILE_NAME.yaml?limit=2000

Файл получаем, это уже неплохо. Теперь добавим условие с версией по тегу.

Для начала посмотрим какие теги существуют. Для этого составим запрос следующего вида:

http://host:port/context/rest/api-name/api-version/path/to/resource/tags

Применительно к требуемому репозиторию:

https://BITBUCKET_ADR/rest/api/1.0/projects/PROJECT_NAME/repos/configs/tags
Ответ:

Также можно получить информацию по конкретному тегу, ели знаем его ID(Для примера возьмем тег 20221031)
https://BITBUCKET_ADR/rest/api/1.0/projects/PROJECT_NAME/repos/configs/tags/refs/tags/20221031
Ответ:

В ответе нас интересует код коммита. Для получения данных по этому коммиту добавим это значение в исходный запрос в атирбуте at
https://BITBUCKET_ADR/rest/api/1.0/projects/PROJECT_NAME/repos/configs/browse/FILE_NAME.yaml?limit=2000&at=3043c49e07434d33r3

Дополнительная информация

Добавить комментарий

Ваш адрес email не будет опубликован.