You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多个BitBucket仓库批量创建CODEOWNER文件?

批量给BitBucket仓库添加通用CODEOWNER文件的方法

方法1:BitBucket API + 脚本批量处理

这是最直接高效的方式,通过BitBucket的REST API结合脚本遍历所有仓库,自动上传通用CODEOWNERS模板。

步骤如下:

  • 生成BitBucket个人访问令牌(需包含仓库读写权限)
  • 准备好本地的CODEOWNERS模板文件
  • 编写脚本遍历工作区下所有仓库,调用API上传文件

示例Python脚本(需先安装requests库):

import requests
import os

# 替换为你的实际信息
BITBUCKET_WORKSPACE = "your-workspace-id"
BITBUCKET_TOKEN = "your-personal-access-token"
CODEOWNER_TEMPLATE_PATH = "./CODEOWNERS"
DEFAULT_BRANCH = "main"  # 根据你的仓库分支调整,比如master

# 读取模板内容
with open(CODEOWNER_TEMPLATE_PATH, "r", encoding="utf-8") as f:
    codeowner_content = f.read()

# 分页获取所有仓库
repos_url = f"https://api.bitbucket.org/2.0/repositories/{BITBUCKET_WORKSPACE}?pagelen=100"
headers = {"Authorization": f"Bearer {BITBUCKET_TOKEN}", "Content-Type": "application/json"}

while repos_url:
    response = requests.get(repos_url, headers=headers)
    if response.status_code != 200:
        print(f"Failed to fetch repos: {response.text}")
        break

    repos_data = response.json()
    for repo in repos_data["values"]:
        repo_slug = repo["slug"]
        # 上传CODEOWNERS到默认分支
        upload_url = f"https://api.bitbucket.org/2.0/repositories/{BITBUCKET_WORKSPACE}/{repo_slug}/src"
        payload = {
            "message": "Add universal CODEOWNERS file",
            "branch": DEFAULT_BRANCH,
            "files": {
                "CODEOWNERS": {"content": codeowner_content}
            }
        }

        upload_response = requests.post(upload_url, json=payload, headers=headers)
        if upload_response.status_code in [200, 201]:
            print(f"✅ Successfully added CODEOWNERS to {repo_slug}")
        else:
            print(f"❌ Failed for {repo_slug}: {upload_response.text}")

    # 处理下一页仓库
    repos_url = repos_data.get("next")

注意事项:

  • 如果需要覆盖已有CODEOWNERS文件,可将请求方法改为PUT,并指定文件路径的完整API端点
  • 确保令牌权限足够,避免因权限不足导致上传失败
  • 先在少量测试仓库验证脚本,再批量执行

方法2:项目级仓库模板(适配新建仓库)

如果你的仓库都归属于同一个BitBucket项目,可以设置项目仓库模板:

  1. 创建一个模板仓库,将通用CODEOWNERS文件放入其中
  2. 在项目设置中,将该仓库设为项目的默认模板
  3. 后续新建仓库时会自动继承模板中的CODEOWNERS文件

此方法仅适用于未来新建的仓库,已存在的仓库仍需用脚本处理。

方法3:利用BitBucket Pipelines批量执行(适合已有CI/CD体系)

如果你的团队已经在用BitBucket Pipelines,可以创建一个专门的流水线仓库,编写流水线脚本遍历所有仓库完成文件上传。需要:

  • 配置工作区级别的访问令牌,确保流水线有权限操作所有仓库
  • 编写流水线步骤,调用API完成批量操作

这种方式适合已经有成熟CI/CD流程的团队,无需额外在本地运行脚本。


内容的提问来源于stack exchange,提问作者idanso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 23:41:18