在管理GitHub仓库时,可能会遇到需要批量删除多个仓库的情况。本文档将指导您如何使用GitHub CLI和Shell脚本来实现使用本地脚本批量删除GitHub仓库操作。
客户端脚本工具:git bash 和 Windows PowerShell
image.png
image.png
前提条件
-
安装GitHub CLI:
-
Windows:使用
winget
或choco
安装。
或winget install --id GitHub.cli
choco install gh
-
macOS:使用Homebrew安装。
brew install gh
-
Linux:使用包管理器安装。
sudo apt install gh # 适用于Debian/Ubuntu sudo dnf install gh # 适用于Fedora
-
Windows:使用
生成GitHub个人访问令牌(token):
1. **登录 GitHub**:进入你的账户。
2. **打开设置**:点击头像,选择“Settings”。
3. **开发者设置**:在左侧菜单,点击“Developer settings”。
4. **访问令牌**:选择“Personal access tokens”。
5. **生成新令牌**:点击“Generate new token”。
6. **设置权限**:输入令牌名称,勾选`repo`权限。
7. **创建令牌**:点击“Generate token”,并**立即保存**令牌。
> **提示**:妥善保管令牌,它具有管理你仓库的权限。
操作步骤
1. 登录GitHub CLI
在命令提示符中输入以下命令以登录到GitHub:
gh auth login
登录成功
说明:依据提示选择打开浏览器授权登录或者SSH key登录都可以,这里选择的是SSH key登录。
2. 编写批量删除脚本
while read repo; do
# 去除行末的回车符
repo=$(echo "$repo" | tr -d '\r')
# 删除仓库
gh repo delete "your-username/$repo" --yes
done < repos.txt
说明:如果在Windows环境下编辑文本文件,可能会遇到行尾包含\r\n(回车和换行)的问题
而不是Unix/Linux系统中的单纯\n(换行)。parse "https://api.github.com/repos/*******\r": net/url: invalid control character in URL
这可能导致在某些脚本或工具中出现\r字符的解析错误,所以我们加上这行代码:repo=$(echo "$repo" | tr -d '\r')
去除该回车符。
3. 运行脚本
确保repos.txt文件与脚本在同一目录下,然后在git bash终端中执行以上批量删除仓库的脚本命令。该脚本将逐行读取repos.txt中的仓库名称,并使用GitHub CLI删除每个仓库。
执行结果
注意事项
备份数据:在删除仓库之前,请确保已经备份了所有重要数据,因为删除操作是不可逆的。
确认仓库名称:确保repos.txt中的仓库名称是正确的,以避免误删。
处理换行符:在Windows环境下,确保去除每行末尾的\r字符,以避免解析错误。
通过以上步骤,您可以高效地批量删除GitHub仓库。请务必小心操作,确保数据安全。