Jak zautomatyzowałem codzienny wkład w GitHub za pomocą GitHub Actions
Wykres wkładów GitHub to podstawowa funkcja, która śledzi dzienny wkład programistów. Ta funkcja motywuje programistów do regularnego wnoszenia wkładu w projekty open source. Istnieje jednak kilka powodów, dla których programiści mogą nie być w stanie wnosić codziennych wkładów
- Być może większość twojego kodowania dzieje się na innym hoście kontroli wersji, takim jak GitLab lub Bitbucket.
- Być może Twoja firma korzysta z GitHub Enterprise, ale nie włączyła ujednoliconego wkładu .
- Być może szukasz nowej pracy jako programista i martwisz się, że rekruterzy będą Cię przesądzać na podstawie wykresu niskiego wkładu.
- A może masz inne powody .

Utwórz folder w swoim repozytorium GitHub, .github/workflow
w którym utworzymy zadanie dla przepływu pracyjob.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 }}
Pierwszy wiersz fragmentu kodu to nazwa przepływu pracy GitHub Actions. W tym przypadku przepływ pracy nosi nazwę „Dzienny wkład”. Następna sekcja określa, kiedy przepływ pracy powinien zostać uruchomiony. W tym przypadku jest ustawiony na uruchamianie zgodnie z harmonogramem przy użyciu składni cron. Składnia crona umożliwia skonfigurowanie przepływu pracy w określonych porach dnia lub tygodnia. Ustawiłem mój na działanie od poniedziałku do piątku o północy UTC.
W sekcji „prace” zdefiniowano tylko jedną pracę, zwaną „make-contribution”. To zadanie jest uruchamiane na komputerze z systemem Ubuntu z zainstalowaną najnowszą wersją systemu Ubuntu.
Sekcja „kroki” zawiera zadania, które zadanie wykona. Pierwszym krokiem jest pobranie kodu z repozytorium GitHub za pomocą akcjiactions/ checkout@v2 . Ta akcja pobiera kod z repozytorium i konfiguruje środowisko dla kolejnych kroków.
Drugim krokiem jest codzienna wpłata. Tutaj możesz dodać własne polecenie lub skrypt, aby wprowadzić zmiany w kodzie. W takim przypadku skrypt po prostu dodaje bieżącą datę do pliku README.md.
Trzecim krokiem jest zatwierdzenie zmian w repozytorium. Ten krok wykorzystuje akcję EndBug/ add-and-commit@v7 w celu zatwierdzenia zmian. Nazwa i adres e-mail autora są ustawione na „GitHub Actions” i „ [email protected] ”, które ustawiłem odpowiednio na moją nazwę i adres e-mail GitHub.
Pliki do zatwierdzenia są określane za pomocą parametru „add”. W tym przypadku jest ustawiony na „README.md”.
Czwartym krokiem jest przekazanie zmian do repozytorium za pomocą akcji ad-m/ github-push-action@master . Nazwa oddziału jest ustawiona na „codzienny wkład”, a poświadczenia Git są ustawiane za pomocą secrets.GITHUB_TOKEN
zmiennej środowiskowej.
Na koniec piątym krokiem jest otwarcie żądania ściągnięcia za pomocą akcji peter-evans/ create-pull-request@v3 . Tytuł i komunikat o zatwierdzeniu są ustawione na „Codzienny wkład”, a treść żądania ściągnięcia jest ustawiona na „To żądanie ściągnięcia zostało utworzone automatycznie przez przepływ pracy GitHub Actions, aby wnieść codzienny wkład”. Parametry oddziału i podstawowe są ustawione odpowiednio na „dzienny - wkład” i „główny”. Poświadczenia Git są ponownie ustawiane przy użyciu secrets.GITHUB_TOKEN
zmiennej środowiskowej.

Jeśli wystąpią błędy 403, upewnij się, że token ma uprawnienia do zapisu w contents
zakresie .
Możesz alternatywnie ustawić to jako wartość domyślną na poziomie repo, w Settings
ramach Actions
:

Podsumowując, używając GitHub Actions, możemy zautomatyzować proces codziennego dodawania wkładów do naszego repozytorium, co może pomóc nam w aktualizowaniu wykresu wkładów. Dzięki dostarczonemu plikowi przepływu pracy możemy łatwo dostosować proces do naszych potrzeb, modyfikując polecenia lub skrypt, który wprowadza zmiany.