如何批量重命名GitHub仓库?将hdx-scraper前缀改为hdx-pipeline
批量重命名GitHub仓库方案
可用工具情况
GitHub官方UI没有批量重命名仓库的功能,也没有官方推出的专门批量重命名工具。你可以通过GitHub API结合脚本实现批量操作,以下是具体的Python示例。
使用GitHub API批量重命名的示例
前置准备
- 生成GitHub个人访问令牌(PAT),需勾选
repo权限,确保能读写仓库信息。 - 安装
requests库:pip install requests
脚本示例
import requests # 配置信息 GITHUB_TOKEN = "你的GitHub个人访问令牌" USERNAME = "你的GitHub用户名" OLD_PREFIX = "hdx-scraper-" NEW_PREFIX = "hdx-pipeline-" # 请求头 headers = { "Authorization": f"token {GITHUB_TOKEN}", "Accept": "application/vnd.github.v3+json" } def get_repos_with_prefix(): """获取所有以指定前缀开头的仓库""" repos = [] page = 1 while True: url = f"https://api.github.com/user/repos?page={page}&per_page=100" response = requests.get(url, headers=headers) response.raise_for_status() page_repos = response.json() if not page_repos: break # 筛选符合前缀的仓库 for repo in page_repos: if repo["name"].startswith(OLD_PREFIX): repos.append(repo) page += 1 return repos def rename_repo(repo): """重命名单个仓库""" old_name = repo["name"] # 替换前缀生成新名称 new_name = old_name.replace(OLD_PREFIX, NEW_PREFIX, 1) if old_name == new_name: print(f"仓库 {old_name} 无需重命名") return # 构造重命名请求URL url = f"https://api.github.com/repos/{USERNAME}/{old_name}" payload = {"name": new_name} response = requests.patch(url, json=payload, headers=headers) if response.status_code == 200: print(f"成功将 {old_name} 重命名为 {new_name}") else: print(f"重命名 {old_name} 失败: {response.json().get('message')}") if __name__ == "__main__": target_repos = get_repos_with_prefix() if not target_repos: print(f"未找到以 {OLD_PREFIX} 开头的仓库") else: print(f"找到 {len(target_repos)} 个需要重命名的仓库") for repo in target_repos: rename_repo(repo)
注意事项
- 运行脚本前建议先测试:注释掉
rename_repo的调用,只打印找到的仓库列表,确认无误后再执行重命名。 - 仓库重命名后,原Git远程地址会自动跳转,但需通知协作成员更新本地仓库的远程URL。
- 不要将个人访问令牌硬编码在脚本中,可通过环境变量管理,避免令牌泄露。
内容的提问来源于stack exchange,提问作者mcarans
相关产品推荐
相关产品推荐

