如何为BitBucket项目下所有仓库批量设置通知订阅?
BitBucket批量订阅项目下所有仓库通知的方法
BitBucket Cloud(云端版本)
1. API批量操作(最高效的批量方案)
- 先创建个人访问令牌,需勾选
repository:write和notification:write权限 - 获取项目下所有仓库:调用
GET https://api.bitbucket.org/2.0/repositories/{workspace}?q=project.key="{project_key}",替换{workspace}为你的工作区名称,{project_key}为项目的标识键 - 获取自己的用户UUID:调用
GET https://api.bitbucket.org/2.0/user,返回结果中的uuid字段即为你的用户标识 - 批量设置订阅:对每个仓库调用
PUT https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/notifications/subscriptions/{uuid},请求体包含所有通知事件:{ "type": "subscription", "subject": {"type": "repository", "full_name": "{workspace}/{repo_slug}"}, "reason": "manual", "enabled": true, "events": [ "repo:push", "repo:fork", "repo:updated", "pr:created", "pr:updated", "pr:approved", "pr:unapproved", "pr:merged", "pr:declined", "issue:created", "issue:updated", "comment:added", "comment:updated" ] } - 用Python或Shell脚本循环处理所有仓库,避免手动重复操作
2. 项目级订阅检查
进入项目页面→左侧「Notifications」,部分版本支持项目级订阅,勾选全部通知类型后,下属仓库会自动继承该设置(若此选项存在可直接使用)
BitBucket Server/Data Center(本地部署版本)
1. REST API批量操作
- 获取项目下所有仓库:
GET http://{bitbucket_server}/rest/api/1.0/projects/{project_key}/repos - 获取你的用户ID:
GET http://{bitbucket_server}/rest/api/1.0/users/{username} - 批量添加订阅:对每个仓库调用
POST http://{bitbucket_server}/rest/api/1.0/projects/{project_key}/repos/{repo_slug}/notifications/subscriptions,请求体:{ "userId": "{user_id}", "notificationTypes": [ "PUSH", "PULL_REQUEST_CREATED", "PULL_REQUEST_MERGED", "PULL_REQUEST_UPDATED", "ISSUE_CREATED", "ISSUE_UPDATED", "COMMENT_ADDED", "REPO_FORKED", "REPO_UPDATED" ] }
2. 管理员后台配置(仅管理员可用)
进入「Administration」→「Notifications」→「Global Settings」,设置默认通知订阅规则为全选,新仓库会自动应用该设置;已有仓库可手动触发同步(部分版本支持批量同步已有仓库的订阅配置)
内容的提问来源于stack exchange,提问作者jonJav
相关产品推荐
相关产品推荐

