2016-10-02 65 views
1

我正在研究一個腳本來自動完成獲取git集線器URL的所有存儲庫然後將它們克隆到本地的任務(如果克隆已經存在,那麼我們必須更新最新的變化。腳本自動克隆所有回購本地與git帳戶相關

我一直在尋找到

  1. Git的bash的,但我不能想出一個辦法,就如何讓所有的回購的,並鏈接克隆它們與帳戶相關聯。

  2. 我已經看過c#的octokit,但我不確定這是否適合這項任務。

回答

1

Git的慶典,但我無法弄清楚關於如何讓所有的回購的,並鏈接克隆它們與賬戶相關聯的方式。

這是一個簡單的捲曲,使用GitHub API。例如,見this gist

#!/bin/bash 

# Set the user: 
user="rd2b" 

# Lists github repositories: 
curl -s https://api.github.com/users/$user/repos | sed -n 's/.*clone_url.*"\(.*\)".*/\1/ p' 

# Clone all repositories: 
for i in `curl -s https://api.github.com/users/$user/repos | sed -n 's/.*clone_url.*"\(.*\)".*/\1/ p'` 
do 
    git clone "$i" "github-$(basename $i)" 
done 

您將需要適應這個腳本,以便:

  • 測試的本地文件夾的存在,對於一個給定的回購
  • 如果該文件夾存在,cd進去並做一個git pull(或至少一個git fetch)。

如果你有一個大或GitHub的倉庫,你可能要考慮到pagination
參見this gist as an example

+0

在API調用中返回多少個回購沒有限制? IIRC分頁是必需的。 –

+0

@ThorbjørnRavnAndersen我相信你每頁最多可達100頁。因此,我在我的回答中提到的第二個要點鏈接:https://gist.github.com/michfield/4525251 – VonC

+0

對不起,錯過了那部分。謝謝。 Github認爲「鏡像所有回購」功能可以輕鬆編寫腳本。 –