GitHub Actions를 사용하여 GitHub에 대한 일일 기여를 자동화한 방법

May 04 2023
GitHub 기여도 그래프는 개발자의 일일 기여도를 추적하는 필수 기능입니다. 이 기능은 개발자가 오픈 소스 프로젝트에 정기적으로 기여하도록 동기를 부여합니다.

GitHub 기여도 그래프는 개발자의 일일 기여도를 추적하는 필수 기능입니다. 이 기능은 개발자가 오픈 소스 프로젝트에 정기적으로 기여하도록 동기를 부여합니다. 그러나 개발자가 일일 기여를 할 수 없는 몇 가지 이유가 있습니다.

  • 대부분의 코딩은 GitLab 또는 Bitbucket과 같은 다른 버전 제어 호스트에서 발생할 수 있습니다.
  • 회사에서 GitHub Enterprise를 사용하지만 통합 기여를 활성화하지 않았을 수 있습니다 .
  • 아마도 당신은 새로운 소프트웨어 개발 직업을 찾고 있고 채용 담당자가 당신의 기여도 그래프로 당신을 미리 판단할까봐 걱정할 수 있습니다.
  • 아니면 다른 이유가 있을 수도 있습니다 .

GitHub 리포지토리에 폴더를 생성합니다. .github/workflow여기에서 워크플로에 대한 작업을 생성합니다.job.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 }}

코드 조각의 첫 번째 줄은 GitHub Actions 워크플로의 이름입니다. 이 경우 작업 흐름을 "Daily Contributions"라고 합니다. 다음 섹션에서는 워크플로를 실행해야 하는 시기를 정의합니다. 이 경우 cron 구문을 사용하여 일정에 따라 실행되도록 설정됩니다. cron 구문을 사용하면 하루 또는 한 주의 특정 시간에 실행되도록 워크플로를 설정할 수 있습니다. 월요일-금요일 자정(UTC)에 실행되도록 설정했습니다.

"작업" 섹션에는 "기여"라고 하는 작업이 하나만 정의되어 있습니다. 이 작업은 최신 버전의 Ubuntu가 설치된 Ubuntu 시스템에서 실행되도록 설정됩니다.

"단계" 섹션에는 작업이 실행할 작업이 포함되어 있습니다. 첫 번째 단계는 actions/ checkout@v2 작업을 사용하여 GitHub 리포지토리에서 코드를 체크아웃하는 것입니다 . 이 조치는 저장소에서 코드를 가져오고 후속 단계를 위한 환경을 설정합니다.

두 번째 단계는 매일 기부하는 것입니다. 여기에서 고유한 명령이나 스크립트를 추가하여 코드를 변경할 수 있습니다. 이 경우 스크립트는 단순히 현재 날짜를 README.md 파일에 추가합니다.

세 번째 단계는 변경 사항을 저장소에 커밋하는 것입니다. 이 단계에서는 EndBug/ add-and-commit@v7 작업을 사용하여 변경 사항을 커밋합니다. 작성자 이름과 이메일은 “GitHub Actions”로, “ [email protected] ”으로 설정했는데 저는 각각 GitHub 이름과 이메일로 설정했습니다.

커밋할 파일은 "add" 매개변수를 사용하여 지정됩니다. 이 경우 "README.md"로 설정됩니다.

네 번째 단계는 ad-m/ github-push-action@master 작업 을 사용하여 저장소에 변경 사항을 푸시하는 것입니다 . 브랜치 이름은 "daily-contribution"으로 설정하고 Git 자격 증명은 secrets.GITHUB_TOKEN환경 변수를 사용하여 설정합니다.

마지막으로 다섯 번째 단계는 peter-evans/ create-pull-request@v3 작업을 사용하여 풀 요청을 여는 것입니다 . 제목과 커밋 메시지는 "일일 기여"로 설정되고 풀 요청 본문은 "이 풀 요청은 일일 기여를 위해 GitHub Actions 워크플로에서 자동으로 생성되었습니다."로 설정됩니다. 분기 및 기본 매개 변수는 각각 "일일 기여" 및 "주요"로 설정됩니다. Git 자격 증명은 secrets.GITHUB_TOKEN환경 변수를 사용하여 다시 설정됩니다.

403 오류가 발생하면 토큰에 해당 범위 에 대한 쓰기 권한이 있는지 확인하십시오 .contents

Settings또는 다음 에서 이것을 리포지토리 수준 기본값으로 설정할 수 있습니다 Actions.

요약하자면, GitHub Actions를 사용하면 매일 리포지토리에 기여하는 프로세스를 자동화할 수 있으므로 기여도 그래프를 최신 상태로 유지하는 데 도움이 됩니다. 제공된 워크플로 파일을 사용하여 변경하는 명령이나 스크립트를 수정하여 필요에 맞게 프로세스를 쉽게 사용자 지정할 수 있습니다.