GitHub:将一个组织中的每个存储库批量复制到另一个组织

时间:2018-02-03 12:19:58

标签: git github

假设我想创建一个新组织“B”,它应该包含组织“A”中每个存储库的副本。

那么,我如何自动将组织“A”中的每个存储库复制到组织“B”(而不是fork;它们应该显示为常规存储库)?

1 个答案:

答案 0 :(得分:0)

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