git clone するとき、URL の中にパスワードとかアクセストークンを埋め込んで認証できる。自動化処理の中で使うのに便利。
URL の user/password の部分の書式にバリエーションがあって何が正解かはっきりしないが、おおむね以下のような形。
git clone https://x-access-token:$TOKEN@github.com/owner/repo
GitHub Actions ワークフローの中で実行すると、$TOKEN という環境変数にアクセストークンが入ってるにも関わらず、
fatal: could not read Username for 'https://github.com': No such device or address
みたいなエラーで git clone できないことがある。
git clone の実行前に git credential helper をセットしてやるとうまくいく。
git config --global credential.helper cache
全体像
name: clone
on:
workflow_dispatch:
jobs:
clone:
runs-on: ubuntu-latest
steps:
- run: |
git config --global credential.helper cache
git clone https://x-access-token:$GITHUB_ENTERPRISE_TOKEN@github.com/owner/repo
env:
TOKEN: ${{secrets.MY_TOKEN}}