トークンを使用してGitHubで認証する 質問する

トークンを使用してGitHubで認証する 質問する

個人アクセストークンを使用してGitHubで認証しようとしています。GitHubのヘルプファイルには、cURLメソッドを使用して認証するように記載されています(個人アクセストークンの作成)。これを試してみましたが、まだGitHubにプッシュできません。認証されていないサーバーからプッシュしようとしていることに注意してください(トラビスCI)。

cd $HOME
git config --global user.email "[email protected]"
git config --global user.name "username"

curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages

cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf

git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages

このコードによりエラーが発生します:

リモート: scuzzlebuzzle/ol3-1.git への匿名アクセスが拒否されました。

致命的: 'https://github.com/scuzzlebuzzle/ol3-1.git/' の認証に失敗しました"

ベストアンサー1

あなたのcurlコマンドは完全に間違っています。次のものを使用する必要があります。

curl -H 'Authorization: token <MYTOKEN>' ...

それはさておき、リポジトリが実際にプライベートである場合、コンピュータがリポジトリをクローンする権限が付与されるわけではありません。(ただし、調べてみると、そうではないことがわかります。) 通常、次の操作を行います。

git clone https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git --branch=gh-pages gh-pages

これにより、リポジトリのクローン作成時に作成されたリモートに資格情報が追加されます。ただし、残念ながら、Travis がリポジトリをクローンする方法は制御できないため、次のようにリモートを編集する必要があります。

# After cloning
cd gh-pages
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git

これにより、資格情報が組み込まれたリモートを使用するようにプロジェクトが修正されます。

警告: トークンには読み取り/書き込みアクセス権があり、パスワードのように扱う必要があります。クローン作成時またはリモートの追加時にトークンをクローンURLに入力すると、Git writes it to your .git/config file in plain text, which is a security risk.

おすすめ記事