Есть ли способ переименовать репозиторий в Bitbucket, используя их API
Можно ли переименовать существующий репозиторий в Bitbucket, используя их REST API? Я прочитал всю документацию по API Bitbucket, но не смог найти ничего, даже отдаленно связанного. Я спрашиваю, возможно, я что-то пропустил. Спасибо!
5 ответов
Согласно https://confluence.atlassian.com/display/BITBUCKET/repository+Resource+1.0:
PUT https://api.bitbucket.org/1.0/repositories/{accountname}/{repo_slug} --data "name=new name"
Это позволяет обновить видимое имя репозитория.
Используя сайт Bitbucket, вы можете переименовать репо следующим образом:
- Перейти на страницу обзора репо, как правило,
https://bitbucket.org/username/oldname/overview
- Нажмите на кнопку настройки в дальнем правом конце строки меню!
- Вместо 1. и 2. вы можете ввести
'r'
затем'a'
для администрации. - Измените имя в
Name
поле. - Нажмите
Save repository details.
Имейте в виду, что изменение имени репо также изменит доступ к его URL. Ранее доступ был https://username@bitbucket.org/username/oldname.git
Теперь, однако, URL/ Путь репо будет https://username@bitbucket.org/username/newname.git
Вы можете проверить это, вернувшись на страницу обзора и наведя курсор на большую синюю кнопку HTTPS. Нижняя часть вашего браузера покажет, что теперь он указывает на https://username@bitbucket.org/username/newname.git
Если вы используете SourceTree, вы можете обновить URL-адрес пульта, выделив локальное хранилище в SourceTree, а затем
- Нажмите
Repository
- Нажмите
Repository Settings...
- Выделите строку, содержащую удаленную ветвь. Обычно
origin https://username@bitbucket.org/username/oldname.git
- Нажмите
Edit
- Обновите
URL/Path
поле. Измените oldname.git на newname.git, оставьте остальные без изменений. Таким образом, полный путь должен бытьhttps://username@bitbucket.org/username/newname.git
- Нажмите
OK
В оболочке Unix вы можете использовать cURL;
curl https://api.bitbucket.org/1.0/repositories/{accountname}/{old_repo_name} --data "name=new_repo_name" -X PUT
Может ли пользователь проходить аутентификацию в частных репозиториях, но при этом могут выполнять только администраторы:
curl https://USER:PASS@api.bitbucket.org/1.0/repositories/{accountname}/{old_repo_name} --data "name=new_repo_name" -X PUT
В соответствии с последним API вот правильная команда curl:
curl -X PUT --user username:password https://bitbucket.org/api/1.0/repositories/{accountname}/{repo_slug} --data "name=newRepoName"
Обратите внимание, что repo_slug - это имя хранилища IN LOWER CASE. Если вы не введете все это в нижнем регистре, вы получите не очень выразительный ответ "Не найдено".
Если вы не уверены, что такое слаг репозитория, выполните следующую команду, которая покажет вам информацию о пользователе, включая текущие репозитории, и найдите поле "слаг"
curl --user username:password https://bitbucket.org/api/1.0/user
На всякий случай, если кто-то столкнется с этим, ища решение для старой версии API битбакета (в моем случае 5.14.0), чтобы сказать, что документация по этой версии отсутствует, довольно вежливо.
curl --location --request PUT 'https://git.local.install/rest/api/1.0/projects/aa/repos/my-repo' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic .....' \
--data-raw '{"name":"my-new-name"}'