CIサーバーで、Githubで管理している構成ファイルを取得して、多くのジョブ間で共有できるようにします。私はこのファイルをcurl経由で取得しようとしていますが、これらのアプローチは両方とも失敗します(404を取得します):
# As advised by the oAuth docs
curl -H 'Authorization: token the_token' -L -o setup.sh https://raw.github.com/org/repo/file
# The url of the raw file after clicking to view it
curl -L https://raw.github.com/org/repo/file?login=username&token=the_token
前の回答は機能しません(または機能しません)。
V3 APIを使用して、次のような未加工ファイルを取得できます(OAuthトークンが必要です):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path
これらはすべて1行で実行する必要があります。 -O
オプションは、ファイルを現在のディレクトリに保存します。 -o filename
を使用して、異なるファイル名を指定できます。
OAuthトークンを取得するには、こちらの手順に従ってください: https://help.github.com/articles/creating-an-access-token-for-command-line-use
私もこれを要点として書きました: https://Gist.github.com/madrobby/94767
編集:ソリューションのAPIリファレンスは次のとおりです。
または、githubの「パーソナルアクセストークン」を使用できます( https://github.com/settings/tokens ):
TOKEN=...
curl -s https://[email protected]/<user or organization>/<repo name>/<branch>/<path to file>/<file_name>
例:
$ curl -s https://[email protected]/concourse/concourse/master/README.md
....
私はこれが古い質問であることを知っていますが、上で提案された解決策はどれも私にとってはうまくいきませんでした。それ以降、おそらくAPIが変更されました。
これはうまくいきました:
curl -H 'Authorization: token [insert your token here]' -o output.txt https://raw.githubusercontent.com/[organization]/[repo]/[branch]/[path to file]
または、トークンがない場合:
curl --user [your_user] 'https://raw.github.com/path/to/file.config' > file.config
アンパサンドをエスケープするためにURLを引用符で囲むだけで十分だと気付くまで、これに数分間苦労していました。
curl "https://raw.github.com/org/repo/file?login=username&token=the_token"
それは私個人のレポでうまくいきました。
URLがAmazon S3にリダイレクトされたときに、認証エラーが発生しました。
許可される認証メカニズムは1つのみです。
X-Amz-Algorithm
クエリパラメータのみ...
Authorization: token X
ヘッダーから?access_token=<token>
クエリパラメーターに変更すると、うまくいきました。
プライベートのGitHubリポジトリからファイルをかなり頻繁にダウンロードする必要があり、ハッキングされたシェルスクリプトでは十分にカットされなかったため、 fetch を作成しました。これは、ダウンロードしやすいオープンソースのクロスプラットフォームツールです。 gitタグ、コミット、またはパブリックおよびプライベートGitHubリポジトリのブランチからのソースファイルとリリースアセット。
たとえば、ファイルbaz
をプライベートGitHubリポジトリのバージョン0.1.3
から/tmp
にダウンロードするには、次のようにします。
GITHUB_OAUTH_TOKEN="your token"
fetch --repo="https://github.com/foo/bar" --tag="0.1.3" --source-path="/baz" /tmp
Github EnterpriseのURLを使用している場合は、受け入れられた答えに追加するだけです。
curl -H 'Authorization: token [your token]' \
-H 'Accept: application/vnd.github.v3.raw' \
-L https://[your domain]/api/v3/repos/[owner]/[repo-name]/contents/[path of file]
以下は正常に動作するはずです。ブランチ名の前の「生」(この場合はマスター)。
curl -L -O https://github.com/your/repo/raw/master/fetch_file.sh
file_name?token=ABAHQCAT6KG...
を持つリストを右クリックしますコピーを選択->リンクアドレスをコピー
urlの形式は次のとおりです。
https://raw.githubusercontent.com/<USERNAME>/<PATH>/<FILENAME>?token=ABAHQCAT6KGHYHMG2SLCDT243PH4I
ターミナル内:
wget -O myFilename https://raw.githubusercontent.com/<USERNAME>/<PATH>/<FILENAME>?token=ABAHQCAT6KGHYHMG2SLCDT243PH4I
リンクは限られた時間のみ有効であるか、トークンを作成できます: GitHub article