承認された GitHub トークンを使用して、ローカルの変更を GitHub にプッシュするための GitHub アクション。
GitHub Actions ワークフローが正しく機能することを確認するには、各リポジトリに適切なアクセス権を使用してGITHUB_TOKEN
構成することが重要です。
次の手順に従って、必要な権限を設定します。
Settings
をクリックします。Actions
をクリックします。Actions
設定で、 General
を見つけてクリックします。Workflow permissions
セクションまで下にスクロールします。GITHUB_TOKEN
のデフォルトの権限設定が表示されます。 「 Read and write permissions
オプションをクリックします。設定ページを終了する前に、必ず変更を保存してください。
注記
Read and write permissions
を付与すると、ワークフローでファイルやコードの追加や更新など、リポジトリを変更できるようになります。これらの権限で有効にしたワークフローが信頼できることを常に確認してください。
GITHUB_TOKEN
権限は、ワークフロー内のすべてのジョブに対してグローバルに構成することも、ジョブごとに個別に構成することもできます。
この例では、ジョブ レベルでcontents
とpull-requests
スコープに必要な権限を設定する方法を示します。
jobs :
job1 :
runs-on : ubuntu-latest
permissions : # Job-level permissions configuration starts here
contents : write # 'write' access to repository contents
pull-requests : write # 'write' access to pull requests
steps :
- uses : actions/checkout@v4
ワークフロー内のすべてのジョブに影響を与えるアクセス許可をグローバルに適用するには、次のようにワークフロー ファイルのルート レベルでpermissions
キーを定義します。
permissions : # Global permissions configuration starts here
contents : read # 'read' access to repository contents
pull-requests : write # 'write' access to pull requests
jobs :
job1 :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
ワークフローの要件に応じて権限レベルとスコープを調整します。各権限レベルの詳細については、GitHub ドキュメントを参照してください。
GitHub プラットフォームで認証し、変更を指定された参照 (たとえば、すでに使用可能なブランチ) にプッシュするワークフローの例:
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
persist-credentials : false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token.
fetch-depth : 0 # otherwise, there would be errors pushing refs to the destination repository.
- name : Create local changes
run : |
...
- name : Commit files
run : |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
branch : ${{ github.ref }}
ブランチ パラメーターを使用して、指定されたブランチ (プル リクエスト ブランチなど) に変更をプッシュするワークフローの例:
name : Example
on : [pull_request, pull_request_target]
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
- name : Commit files
run : |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
branch : ${{ github.head_ref }}
Force-with-lease パラメータを使用してリポジトリに強制的にプッシュするワークフローの例:
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
- name : Commit files
run : |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
force_with_lease : true
チェックアウト アクション内で GitHub App Token をデフォルトのトークンとともに使用するワークフローの例。このトピックの詳細については、以下をご覧ください。
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
persist-credentials : false
- name : Generate Githup App Token
id : generate_token
uses : tibdex/github-app-token@v1
with :
app_id : ${{ secrets.APP_ID }}
installation_id : ${{ secrets.INSTALLATION_ID }}
private_key : ${{ secrets.APP_PRIVATE_KEY }}
- name : Commit files
run : |
git config --local user.email "[email protected]"
git config --local user.name "Test"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
github_token : ${{ env.TOKEN }}
デフォルト以外のトークンを使用して別のリポジトリにプッシュするワークフローの例。このような場合、force-with-lease フラグは使用できないことに注意してください。
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
token : ${{ secrets.PAT_TOKEN }}
- name : Commit files
run : |
git config --local user.email "[email protected]"
git config --local user.name "Test"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
github_token : ${{ secrets.PAT_TOKEN }}
repository : Test/test
force : true
既存のタグを更新/上書きするワークフローの例:
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
- name : Commit files
run : |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git tag -d $GITHUB_REF_NAME
git tag $GITHUB_REF_NAME
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
force : true
tags : true
デプロイキーまたは一般的な SSH を介して GitHub プラットフォームで認証するワークフローの例:
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ssh-key : ${{ secrets.SSH_PRIVATE_KEY }}
persist-credentials : true
- name : Create local changes
run : |
...
- name : Commit files
run : |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
ssh : true
branch : ${{ github.ref }}
リポジトリ内の保護されたブランチにプッシュするワークフローの例。個人用アクセス トークンを使用し、それをactions/checkout
アクション内で使用する必要があることに注意してください。同期エラーやプッシュ エラーが発生した場合に備えて、force-with-lease フラグを指定することをお勧めします。適切な個人アクセス トークンを生成したい場合は、次の手順に従ってください。
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v4
with :
ref : ${{ github.head_ref }}
fetch-depth : 0
token : ${{ secrets.PAT_TOKEN }}
- name : Commit files
run : |
git config --local user.email "[email protected]"
git config --local user.name "Test"
git commit -a -m "Add changes"
- name : Push changes
uses : ad-m/github-push-action@master
with :
github_token : ${{ secrets.PAT_TOKEN }}
repository : Test/test
force_with_lease : true
名前 | 価値 | デフォルト | 説明 |
---|---|---|---|
github_token | 弦 | ${{ github.token }} | GITHUB_TOKEN またはスコープ指定されたリポジトリ パーソナルアクセストークン。 |
ssh | ブール値 | 間違い | ssh/デプロイキーが使用されるかどうかを決定します。 |
支店 | 弦 | (デフォルト) | 変更をプッシュする宛先ブランチ。${{ github.ref }} を使用して渡すことができます。 |
力 | ブール値 | 間違い | 強制プッシュを使用するかどうかを決定します。 |
リース付きの力 | ブール値 | 間違い | リース付き強制プッシュを使用するかどうかを決定します。チェックアウトアクションのref セクション内に対応するブランチを指定してください (例: ref: ${{ github.head_ref }} 。ブランチと対応するタグを更新する場合は、 force_with_lease オプションの代わりにforce パラメーターを使用してください。 |
原子 | ブール値 | 真実 | アトミックプッシュを使用するかどうかを決定します。 |
サブモジュールへのプッシュ | 弦 | 'オンデマンド' | --recurse-submodules= を使用するかどうかを決定します。値は使用される戦略を定義します。 |
プッシュ専用タグ | ブール値 | 間違い | アクションがタグをプッシュするだけかどうかを決定します。デフォルトは false |
タグ | ブール値 | 間違い | --tags 使用するかどうかを決定します。 |
ディレクトリ | 弦 | 「。」 | プッシュする前に変更するディレクトリ。 |
リポジトリ | 弦 | 」 | リポジトリ名。 デフォルトまたは空のリポジトリ名は、 現在の github リポジトリ。 他のリポジトリにプッシュしたい場合は、 個人用アクセストークンを作成する必要があります それを github_token 入力として使用します。 |
ジョブの出力内に次のエラーが表示され、既存のタグを更新したい場合:
To https://github.com/Test/test_repository
! [rejected] 0.0.9 -> 0.0.9 (stale info)
error: failed to push some refs to 'https://github.com/Test/test_repository'
force_with_lease
パラメータの代わりにforce
使用してください。 --force-with-lease
パラメータを使用したタグの更新はできません。
このプロジェクトの Dockerfile と関連スクリプトおよびドキュメントは、MIT ライセンスに基づいてリリースされています。
GitHub は GitHub, Inc. の登録商標です。このプロジェクトで使用されている GitHub 名は識別目的のみに使用されています。このプロジェクトは GitHub Inc. とは一切関連しておらず、GitHub Inc. の公式ソリューションでもありません。このプロジェクトは、GitHub サイトの使用を容易にするために提供されました。