Есть ли способ переименовать репозиторий в 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, вы можете переименовать репо следующим образом:

  1. Перейти на страницу обзора репо, как правило, https://bitbucket.org/username/oldname/overview
  2. Нажмите на кнопку настройки в дальнем правом конце строки меню!
  3. Вместо 1. и 2. вы можете ввести 'r' затем 'a' для администрации.
  4. Измените имя в Name поле.
  5. Нажмите 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, а затем

  1. Нажмите Repository
  2. Нажмите Repository Settings...
  3. Выделите строку, содержащую удаленную ветвь. Обычно origin https://username@bitbucket.org/username/oldname.git
  4. Нажмите Edit
  5. Обновите URL/Path поле. Измените oldname.git на newname.git, оставьте остальные без изменений. Таким образом, полный путь должен быть https://username@bitbucket.org/username/newname.git
  6. Нажмите 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"}'
Другие вопросы по тегам