如何只从Github PROTECTED存储库获取文件

Gab*_*vay 5 curl wget github download

我正在尝试下载Github受保护仓库中项目的安装脚本.

userrepo下面是由正确的信息替换.

我试过卷曲:

curl -u gabipetrovay -L -o install.sh "https://raw.github.com/user/repo/master/admin/scripts/install.sh"
Run Code Online (Sandbox Code Playgroud)

Curl会提示输入密码,但是当我输入第一个字符时它会更进一步并下载一些内容(很多JS可能来自Github)

我也试过wget:

wget --user=gabipetrovay --ask-password "https://raw.github.com/user/repo/master/admin/scripts/install.sh"
Run Code Online (Sandbox Code Playgroud)

使用wget我可以输入我的完整密码,但后来我收到503错误:

Resolving raw.github.com (raw.github.com)... 199.27.73.133
Connecting to raw.github.com (raw.github.com)|199.27.73.133|:443... connected.
HTTP request sent, awaiting response... 503 Connection timed out
2013-10-14 10:18:45 ERROR 503: Connection timed out.
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得install.sh文件?(我从Ubuntu服务器13.04运行它)

Gab*_*vay 6

Github的官方回应是:

感谢您的联系!对于这种情况,您需要使用我们的API下载单个文件:

http://developer.github.com/v3/repos/contents/#get-contents

使用此端点,您可以获得如下特定文件:

curl -u gabipetrovay -H "Accept: application/vnd.github.raw" "https://api.github.com/repos/user/repo/contents/filename"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,系统会提示您输入GitHub帐户密码,或者也可以使用OAuth令牌.作为参考,我们的API入门指南有一个关于身份验证的很好的部分:

http://developer.github.com/guides/getting-started/#authentication

这就像一个魅力!

谢谢Robert @ Github


小智 -1

您需要创建一个 oauth 令牌,如下所述:Github basic authentication

那么你可以使用以下命令,curl 获取一个临时 url,因此你需要在curl 中使用“-L”来遵循重定向:

curl -L -u <your token>:x-oauth-basic https://raw.github.com/user/repo/master/admin/scripts/install.sh
Run Code Online (Sandbox Code Playgroud)

您还可以使用 -o "filename" 将其保存在磁盘上