【发布时间】:2020-03-16 21:52:37
【问题描述】:
我目前有一个 shell 脚本,我想将它用作 Jenkins/Docker 作业的一部分,该作业会克隆我的组织中使用特定语言标记的所有存储库。
curl -s -H "Authorization: token "$token"" https://github.[company].com/api/v3/orgs/$org/repos\?page\=$i\&per_page\=100 |
jq '.[] | select(.language != null) | select(.language | contains("'$lang'")).ssh_url' | xargs -n 1 git clone
在大多数情况下它可以正常工作,但我意识到我需要在 Docker 容器中配置 SSH 才能正常工作。我发现我仍然可以使用带有 user:token 组合的 HTTPS 进行克隆,而不是尝试进行设置。
git clone https://user:token@github.[company].com/organization/repo.git
我的问题是我正在获取所有目标存储库的列表并克隆它们,因此我需要以某种方式为每个存储库传递 user:token。我知道我可以获得 clone_url 而不是 ssh_url 但我不知道如何插入凭据。我环顾四周,但没有发现任何可以帮助我解决这个问题的东西。有谁知道我是否以及如何格式化脚本,以便在 URL 中传递凭据?
谢谢
【问题讨论】: