将所有GitHub存储库从一个用户转移到另一个用户

时间:2019-03-18 17:08:59

标签: github github-repository-ownership

是否可以将一个用户拥有的所有GitHub存储库转移到另一用户?管理员是否可以使用此功能(例如,如果用户无法再访问GitHub,则在Enterprise上)?

1 个答案:

答案 0 :(得分:1)

GitHub有一个方便的命令行工具:hub位于https://hub.github.com

我已经写了一个示例,将您所有组织中的所有存储库移至my_new_organisation_name

#!/usr/bin/env bash

orgs="$(hub api '/user/orgs' | jq -r '.[] | .login')";
repos="$(for org in $orgs; do hub api '/orgs/'"$org"'/repos' | jq -r '.[] | .name';
         done)"

for org in $orgs; do
    for repo in $repos; do
        ( hub api '/repos/'"$org"'/'"$repo"'/transfer'
                  -F 'new_owner'='my_new_organisation_name' | jq . ) &
    done
done

对于用户而不是组织,请将my_new_organisation_name设置为替换用户名,删除外部循环,然后将repos=行替换为:

repos="$(hub api /users/SamuelMarks/repos | jq -r '.[] | .name')"

编辑:如果您喜欢GUI,则找到了https://stackoverflow.com/a/54549899