【问题标题】:Is there a way to rename a repository on Bitbucket using their API有没有办法使用他们的 API 重命名 Bitbucket 上的存储库
【发布时间】:2013-02-05 06:35:49
【问题描述】:

我什至在文档中都找不到任何相关的东西。

【问题讨论】:

    标签: bitbucket bitbucket-api


    【解决方案1】:

    使用 Bitbucket 网站,您可以按如下方式重命名存储库:

    1. 转到repo的概述页面,通常是https://bitbucket.org/username/oldname/overview
    2. 点击菜单行最右端的设置齿轮!
    3. 您可以输入'r',然后输入'a',而不是1. 和2. 进行管理。
    4. Name 字段中更改名称。
    5. 点击Save repository details.

    请注意,更改存储库的名称也会更改其 URL 访问权限。以前访问权限是https://username@bitbucket.org/username/oldname.git,但是现在,repo 的 URL/路径将是 https://username@bitbucket.org/username/newname.git

    您可以通过返回“概览”页面并将鼠标悬停在蓝色的大 HTTPS 按钮上进行检查。你的浏览器底部会显示它现在指向https://username@bitbucket.org/username/newname.git

    如果您使用的是 SourceTree,您可以通过在 SourceTree 中突出显示本地 repo 来更新远程 URL,然后

    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

    【讨论】:

    • 如果找不到设置按钮,目前它在左下角“隐藏”。
    • 这个问题是关于 API 的,所以虽然这个答案包含有用的信息,但它没有回答这个问题
    【解决方案2】:

    对于 1.0 版的 API:

    根据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"
    

    这允许更新存储库的可见名称。

    对于 API 的第 2 版:

    根据https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D#put

    PUT https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}
    

    使用 PUT 方法可以重命名存储库。

    【讨论】:

    • 谢谢!我不知道我是怎么错过的。
    • 发生在我们最好的人身上:)
    • 回答问题,为什么这不是最高投票的答案?
    【解决方案3】:

    在 unix shell 中,您可以使用 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
    

    【讨论】:

      【解决方案4】:

      根据最新的 API,这里是正确的 curl 命令:

      curl -X PUT --user username:password https://bitbucket.org/api/1.0/repositories/{accountname}/{repo_slug}  --data "name=newRepoName"
      

      请注意,repo_slug 是小写的存储库名称。如果你不把它全部用小写,你会得到不那么有表现力的答案“未找到”。

      如果您不确定什么是存储库 slug,请执行以下命令,该命令会显示用户信息,包括当前存储库,并查找字段“slug”

      curl --user username:password https://bitbucket.org/api/1.0/user
      

      【讨论】:

        【解决方案5】:

        以防万一有人在寻找旧版本的 bitbucket 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"}'
        

        【讨论】:

          猜你喜欢
          • 2014-07-29
          • 1970-01-01
          • 1970-01-01
          • 2018-03-19
          • 1970-01-01
          • 2020-11-15
          • 2015-10-19
          • 2013-08-10
          • 1970-01-01
          相关资源
          最近更新 更多