Bagaimana saya mengotomatiskan kontribusi harian ke GitHub dengan GitHub Actions

May 04 2023
Grafik kontribusi GitHub adalah fitur penting yang melacak kontribusi harian pengembang. Fitur ini memotivasi developer untuk terus berkontribusi secara rutin pada proyek open-source mereka.

Grafik kontribusi GitHub adalah fitur penting yang melacak kontribusi harian pengembang. Fitur ini memotivasi developer untuk terus berkontribusi secara rutin pada proyek open-source mereka. Namun, ada beberapa alasan mengapa developer mungkin tidak dapat memberikan kontribusi harian

  • Mungkin sebagian besar pengkodean Anda terjadi di host kontrol versi lain, seperti GitLab atau Bitbucket.
  • Mungkin perusahaan Anda menggunakan GitHub Enterprise tetapi belum mengaktifkan kontribusi terpadu .
  • Mungkin Anda sedang mencari pekerjaan pengembangan perangkat lunak baru dan khawatir perekrut akan menilai Anda dengan grafik kontribusi Anda yang langka.
  • Atau mungkin Anda punya alasan lain .

Buat folder di repositori GitHub Anda .github/workflowdi sinilah kami akan membuat pekerjaan untuk alur kerjajob.yaml

name: Daily Contributions

on:
  schedule:
    - cron: '0 0 * * 1-5'

jobs:
  make-contribution:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          # Checkout with full commit history
          fetch-depth: 0
      - name: Make daily contribution
        run: |
          # Replace this command with your own command or script that makes the changes
          echo "Making daily contribution"
          echo "$(date)" >> README.md
      - name: Commit changes
        uses: EndBug/add-and-commit@v7
        with:
          author_name: "GitHub Actions"
          author_email: "[email protected]"
          message: "Daily contribution"
          # Set the files to commit - replace this with your own file paths
          add: "README.md"
      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          branch: daily-contribution
          # Set the Git credentials - replace this with your own secrets
          github_token: ${{ secrets.GITHUB_TOKEN }}
      - name: Open pull request
        uses: peter-evans/create-pull-request@v3
        with:
          title: "Daily Contribution"
          commit-message: "Daily contribution"
          branch: daily-contribution
          base: main
          # Set the pull request body - replace this with your own content
          body: "This pull request was created automatically by a GitHub Actions workflow to make a daily contribution."
          # Set the Git credentials - replace this with your own secrets
          token: ${{ secrets.GITHUB_TOKEN }}

Baris pertama cuplikan kode adalah nama alur kerja GitHub Actions. Dalam hal ini, alur kerja disebut "Kontribusi Harian". Bagian selanjutnya menentukan kapan alur kerja harus berjalan. Dalam hal ini, diatur untuk berjalan sesuai jadwal menggunakan sintaks cron. Sintaks cron memungkinkan Anda untuk mengatur alur kerja agar berjalan pada waktu tertentu dalam sehari atau seminggu. Saya menetapkan milik saya untuk dijalankan Senin - Jumat pada tengah malam UTC.

Di bawah bagian “pekerjaan”, hanya ada satu pekerjaan yang ditentukan, yang disebut “berkontribusi”. Pekerjaan ini diatur untuk dijalankan pada mesin Ubuntu dengan versi terbaru Ubuntu terinstal.

Bagian "langkah" berisi tugas yang akan dijalankan oleh pekerjaan. Langkah pertama adalah memeriksa kode dari repositori GitHub menggunakan tindakan actions/ checkout@v2 . Tindakan ini mengambil kode dari repositori dan menyiapkan lingkungan untuk langkah selanjutnya.

Langkah kedua adalah memberikan kontribusi harian. Di sinilah Anda dapat menambahkan perintah atau skrip Anda sendiri untuk membuat perubahan pada kode. Dalam hal ini, skrip hanya menambahkan tanggal saat ini ke file README.md.

Langkah ketiga adalah melakukan perubahan pada repositori. Langkah ini menggunakan tindakan EndBug/ add-and-commit@v7 untuk melakukan perubahan. Nama penulis dan email diatur ke "Tindakan GitHub", dan " [email protected] ", yang saya atur masing-masing ke nama dan email GitHub saya.

File yang akan dikomit ditentukan menggunakan parameter "tambah". Dalam hal ini, disetel ke "README.md".

Langkah keempat adalah mendorong perubahan ke repositori menggunakan tindakan ad-m/ github-push-action@master . Nama cabang diatur ke "daily-contribution", dan kredensial Git diatur menggunakan secrets.GITHUB_TOKENvariabel lingkungan.

Terakhir, langkah kelima adalah membuka pull request menggunakan peter-evans/ create-pull-request@v3 action . Judul dan pesan komit disetel ke "Kontribusi Harian", dan badan permintaan tarik disetel ke "Permintaan tarik ini dibuat secara otomatis oleh alur kerja GitHub Actions untuk memberikan kontribusi harian." Parameter cabang dan basis diatur masing-masing ke "harian - kontribusi" dan "utama". Kredensial Git disetel lagi menggunakan secrets.GITHUB_TOKENvariabel lingkungan.

Jika Anda mendapatkan error 403 pastikan token Anda memiliki izin menulis untuk contentsruang lingkup .

Anda juga dapat mengatur ini sebagai default level repo, di Settingsbawah Actions:

Singkatnya, dengan menggunakan Tindakan GitHub, kami dapat mengotomatiskan proses memberikan kontribusi harian ke repositori kami, yang dapat membantu kami menjaga grafik kontribusi kami tetap mutakhir. Dengan file alur kerja yang disediakan, kita dapat dengan mudah menyesuaikan proses sesuai kebutuhan kita dengan memodifikasi perintah atau skrip yang membuat perubahan.