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

从TFS迁移至Git:Bitbucket自动创建项目与仓库技术问询

自动创建Bitbucket项目与仓库的解决方案

一、使用Bitbucket REST API编写自动创建脚本

当然可以通过脚本自动搭建你需要的项目和仓库结构,Bitbucket提供了完整的REST API来完成这些操作,下面给你一个Python脚本示例,你可以根据实际情况调整细节:

首先,你需要准备Bitbucket的个人访问令牌(Personal Access Token),权限要包含project:write和repository:write。

import requests
from requests.auth import HTTPBasicAuth

# 基础配置信息
BITBUCKET_BASE_URL = "https://api.bitbucket.org/2.0"
USERNAME = "你的Bitbucket用户名"
TOKEN = "你的个人访问令牌"
AUTH = HTTPBasicAuth(USERNAME, TOKEN)
WORKSPACE_ID = "你的Bitbucket工作区ID"

# 定义你的项目与仓库结构
PROJECT_STRUCTURE = {
    "Project 1": [f"Repository{i}" for i in range(1, 11)],
    "Project 2": [f"Repository{i}" for i in range(1, 21)]
}

def create_project(project_name):
    """创建Bitbucket项目"""
    # 项目key不能有空格,这里做简单转换,你可以按Bitbucket规则自定义
    project_key = project_name.replace(" ", "").upper()
    url = f"{BITBUCKET_BASE_URL}/workspaces/{WORKSPACE_ID}/projects"
    payload = {
        "key": project_key,
        "name": project_name
    }
    response = requests.post(url, json=payload, auth=AUTH)
    if response.status_code == 201:
        print(f"✅ 项目 {project_name} 创建成功")
        return project_key
    elif response.status_code == 409:
        print(f"⚠️ 项目 {project_name} 已存在,跳过创建")
        return project_key
    else:
        print(f"❌ 创建项目 {project_name} 失败: {response.text}")
        return None

def create_repository(project_key, repo_name):
    """在指定项目下创建Git仓库"""
    # 仓库slug需要小写且无空格,这里做转换
    repo_slug = repo_name.lower().replace(" ", "-")
    url = f"{BITBUCKET_BASE_URL}/repositories/{WORKSPACE_ID}/{repo_slug}"
    payload = {
        "project": {"key": project_key},
        "name": repo_name,
        "scm": "git",
        "is_private": True  # 根据需求设置公开/私有
    }
    response = requests.post(url, json=payload, auth=AUTH)
    if response.status_code == 201:
        print(f"  ✅ 仓库 {repo_name} 创建成功")
    elif response.status_code == 409:
        print(f"  ⚠️ 仓库 {repo_name} 已存在,跳过创建")
    else:
        print(f"  ❌ 创建仓库 {repo_name} 失败: {response.text}")

# 执行批量创建流程
for project_name, repos in PROJECT_STRUCTURE.items():
    project_key = create_project(project_name)
    if project_key:
        for repo in repos:
            create_repository(project_key, repo)

记得替换脚本中的你的Bitbucket用户名、你的个人访问令牌和你的Bitbucket工作区ID,项目key和仓库slug的规则可以根据Bitbucket的要求进一步调整。

二、关于教程所需工具的说明

你提到的那篇教程是基于Bob Swift的Bitbucket CLI工具实现的,必须安装对应的Bitbucket CLI才能使用教程里的命令,普通系统命令行没有直接操作Bitbucket项目和仓库的内置指令。这个CLI是对Bitbucket REST API的封装,提供了更简洁的命令行语法来完成批量操作,安装后才能执行教程中的模板创建项目等功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:04:01