Tindakan GitHub untuk mendorong perubahan lokal ke GitHub menggunakan token GitHub resmi.
Untuk memastikan alur kerja GitHub Actions Anda berfungsi dengan benar, penting untuk mengonfigurasi GITHUB_TOKEN
dengan hak akses yang sesuai untuk setiap repositori.
Ikuti langkah-langkah berikut untuk menyiapkan izin yang diperlukan:
Settings
yang terletak di toolbar repositori.Actions
.Actions
, temukan dan klik General
.Workflow permissions
.GITHUB_TOKEN
. Klik pada opsi Read and write permissions
.Pastikan untuk menyimpan perubahan Anda sebelum keluar dari halaman pengaturan.
Catatan
Memberikan Read and write permissions
memungkinkan alur kerja untuk mengubah repositori Anda, termasuk menambahkan atau memperbarui file dan kode. Selalu pastikan bahwa Anda memercayai alur kerja yang Anda aktifkan dengan izin ini.
Izin GITHUB_TOKEN
juga dapat dikonfigurasi secara global untuk semua pekerjaan dalam alur kerja atau secara individual untuk setiap pekerjaan.
Contoh ini menunjukkan cara mengatur izin yang diperlukan untuk contents
dan cakupan pull-requests
pada tingkat pekerjaan:
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
Untuk menerapkan izin secara global, yang akan memengaruhi semua pekerjaan dalam alur kerja, Anda harus menentukan kunci permissions
di tingkat akar file alur kerja, seperti:
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
Sesuaikan tingkat izin dan cakupan sesuai dengan kebutuhan alur kerja Anda. Untuk detail lebih lanjut tentang setiap tingkat izin, lihat dokumentasi GitHub.
Contoh alur kerja untuk mengautentikasi dengan Platform GitHub dan untuk mendorong perubahan ke referensi tertentu, misalnya cabang yang sudah tersedia:
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 }}
Contoh alur kerja untuk menggunakan parameter cabang untuk mendorong perubahan ke cabang tertentu, misalnya cabang Permintaan Tarik:
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 }}
Contoh alur kerja untuk menggunakan parameter force-with-lease untuk memaksa push ke repositori:
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
Contoh alur kerja untuk menggunakan Token Aplikasi GitHub bersama dengan token default di dalam tindakan checkout. Anda dapat menemukan informasi lebih lanjut tentang topik ini di sini:
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 }}
Contoh alur kerja untuk menggunakan token non default push ke repositori lain. Ketahuilah bahwa bendera paksa dengan sewa dalam kasus seperti ini tidak dimungkinkan:
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
Contoh alur kerja untuk memperbarui/menimpa tag yang ada:
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
Contoh alur kerja untuk mengautentikasi dengan Platform GitHub melalui Deploy Keys atau SSH secara umum:
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 }}
Contoh alur kerja untuk dikirim ke cabang yang dilindungi di dalam repositori Anda. Sadarilah bahwa perlu menggunakan token akses pribadi dan menggunakannya di dalam actions/checkout
. Mungkin ada baiknya untuk menentukan tanda force-with-lease jika terjadi kesalahan sinkronisasi dan push. Jika Anda ingin membuat token akses pribadi yang memadai, Anda dapat mengikuti petunjuk berikut:
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
nama | nilai | bawaan | keterangan |
---|---|---|---|
github_token | rangkaian | ${{ github.token }} | GITHUB_TOKEN atau cakupan repo Token Akses Pribadi. |
ssh | boolean | PALSU | Menentukan apakah ssh/ Deploy Keys digunakan. |
cabang | rangkaian | (bawaan) | Cabang tujuan untuk mendorong perubahan. Dapat diteruskan menggunakan ${{ github.ref }} . |
memaksa | boolean | PALSU | Menentukan apakah dorongan gaya digunakan. |
force_with_lease | boolean | PALSU | Menentukan apakah dorongan paksa dengan sewa digunakan. Silakan tentukan cabang yang sesuai di dalam bagian ref dari tindakan checkout misalnya ref: ${{ github.head_ref }} . Hati-hati, jika Anda ingin memperbarui cabang dan tag yang sesuai, harap gunakan parameter force alih-alih opsi force_with_lease . |
atom | boolean | BENAR | Menentukan apakah dorongan atom digunakan. |
push_to_submodules | rangkaian | 'sesuai permintaan' | Menentukan apakah --recurse-submodules= digunakan. Nilai menentukan strategi yang digunakan. |
push_only_tags | boolean | PALSU | Menentukan apakah tindakan hanya boleh mendorong tag, defaultnya salah |
tag | boolean | PALSU | Menentukan apakah --tags digunakan. |
direktori | rangkaian | '.' | Direktori untuk diubah sebelum mendorong. |
gudang | rangkaian | '' | Nama repositori. Nama repositori default atau kosong mewakili repositori github saat ini. Jika Anda ingin mendorong ke repositori lain, Anda harus membuat token akses pribadi dan menggunakannya sebagai masukan github_token . |
Jika Anda melihat kesalahan berikut di dalam output pekerjaan, dan Anda ingin memperbarui Tag yang ada:
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'
Silakan gunakan force
sebagai ganti parameter force_with_lease
. Pembaruan tag dengan parameter --force-with-lease
tidak dimungkinkan.
Dockerfile dan skrip serta dokumentasi terkait dalam proyek ini dirilis di bawah Lisensi MIT.
GitHub adalah merek dagang terdaftar dari GitHub, Inc. Nama GitHub yang digunakan dalam proyek ini hanya untuk tujuan identifikasi. Proyek ini tidak terkait dengan GitHub Inc. dan bukan merupakan solusi resmi dari GitHub Inc. Proyek ini disediakan untuk memfasilitasi penggunaan situs GitHub.