在Bitbucket的仓库管理中,将私有仓库调整为公开仓库是常见需求,手动操作适合少量仓库调整,而借助Bitbucket REST API可以高效完成单个或批量仓库的权限变更。

操作前准备
在使用API之前,需要先完成两项基础准备工作,否则请求会直接返回权限错误。
1. 获取API访问令牌
登录Bitbucket账号后,进入个人设置页面的访问管理模块,创建一个具有仓库管理权限的访问令牌,令牌需要勾选repository:admin权限,后续所有API请求都需要携带这个令牌作为认证凭证。
2. 确认仓库基本信息
需要提前记录目标仓库的两个核心信息:所属工作区名称(workspace_slug)和仓库名称(repo_slug),这两个参数会作为API请求路径的必要组成部分。
API调用核心说明
Bitbucket修改仓库配置的API端点为PUT /2.0/repositories/{workspace}/{repo_slug},我们只需要修改请求体中的is_private参数为false,就可以将私有仓库转为公开仓库。
请求参数说明
该接口的核心请求参数如下:
- is_private:布尔类型,设置为false表示将仓库设为公开,设置为true表示设为私有,本次操作需要传false
- Authorization:请求头参数,格式为
Bearer 你的访问令牌,用于验证操作权限 - Content-Type:请求头参数,固定设置为
application/json
具体实现示例
下面分别提供Python和curl两种常见的调用方式示例,你可以根据自己的使用习惯选择。
Python实现示例
import requests
import json
# 配置参数
workspace = "你的工作区名称"
repo_slug = "你的仓库名称"
access_token = "你的Bitbucket访问令牌"
api_url = f"https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}"
# 请求头配置
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
# 请求体配置,将is_private设为false
payload = {
"is_private": False
}
# 发送PUT请求
response = requests.put(api_url, headers=headers, data=json.dumps(payload))
# 处理响应结果
if response.status_code == 200:
print("仓库已成功转为公开仓库")
print("仓库信息:", response.json())
else:
print(f"操作失败,状态码: {response.status_code}")
print("错误信息:", response.json())
curl命令示例
curl -X PUT "https://api.bitbucket.org/2.0/repositories/你的工作区名称/你的仓库名称"
-H "Authorization: Bearer 你的访问令牌"
-H "Content-Type: application/json"
-d '{"is_private": false}'
常见错误排查
如果调用API后返回错误,可以根据以下常见情况进行排查:
| 状态码 | 错误原因 | 解决方法 |
|---|---|---|
| 401 | 访问令牌无效或权限不足 | 检查令牌是否正确,确认令牌是否包含repository:admin权限 |
| 404 | 工作区或仓库名称不存在 | 核对workspace和repo_slug参数是否填写正确,注意名称区分大小写 |
| 400 | 请求参数格式错误 | 检查请求体中is_private参数是否为布尔类型,不要传字符串格式的false |
注意事项
将私有仓库转为公开仓库后,所有用户都可以查看仓库的代码、提交记录等内容,操作前请确认仓库内没有敏感信息,比如数据库密码、内部接口地址等。如果是批量操作多个仓库,建议在操作前先备份仓库数据,避免误操作造成数据泄露。
Bitbucket_REST_API私有仓库转公开仓库权限管理API请求配置修改时间:2026-06-23 01:54:30