Github에서 Dependabot으로 리포지토리 종속성을 자동 업데이트하는 방법

NPM으로 프로젝트의 종속성을 설치할 때 오류가 발생한 적이 있습니까? 또는 Dependabot을 사용하여 몇 달 동안 업데이트된 많은 종속성 경고가 누적되도록 했습니까?

그래서 이 짧은 튜토리얼이 도움이 될 것이라고 생각합니다!

하지만 먼저…

디펜다봇이란?



자체 설명에 따르면 Dependabot은 종속성을 최신 상태로 유지하는 데 도움이 되는 봇입니다. 매일 종속성 파일에서 오래된 요구 사항을 확인하고 발견한 개별 PR을 엽니다. 가장 안전한 최신 릴리스를 검토, 병합 및 작업합니다.

내 저장소에 dependsabot를 설치하는 방법



Github 리포지토리 내에서 다음으로 이동합니다.
설정 > [ 보안 ] > _코드 보안 및 분석
_ 그런 다음 "Dependabot 버전 업데이트"를 활성화합니다.
구성을 클릭하면 표시되는 코드는 다음과 같습니다.

version: 2
updates:
  - package-ecosystem: npm
    directory: '/'
    schedule:
      interval: daily
      time: '02:00'
    open-pull-requests-limit: 10


이 첫 번째 코드에서 구성된 것은 매일 오전 2시에 실행된다는 것입니다.

여기에서 분기를 변경하려는 경우 BONUS 설정은 변경하려는 경우 PR 및 레이블을 엽니다. 위 코드 끝에 수동으로 추가할 수 있습니다.

    # BONUS
    # Raise pull requests for version updates
    # to pip against the `develop` branch
      target-branch: "dev"
    # Labels on pull requests for version updates only
          labels:
          - "dependecies"


다음과 같이 저장소의 루트에 있습니다.



좋아, 리포지토리는 이미 Dependabot으로 구성되어 있습니다. 따라서 매일 이 프로젝트의 종속성이 오래된 것인지 확인합니다.

단 하나의 문제가 있습니다. 병합하지 않으면 계속해서 PR만 남게 됩니다.

Dependabot 병합을 자동화하는 방법



Github Actions를 사용하여 Dependabot에서 생성한 PR을 병합하는 프로세스를 자동화할 수 있었습니다.

Github 리포지토리 내의 작업으로 이동한 다음 새 워크플로로 이동합니다.
이미 여러 작업이 준비되어 있습니다. 템플릿을 선택한 다음 모든 콘텐츠를 삭제하고 다음 코드를 붙여넣을 수 있습니다.

name: 'Dependabot Automerge - Action'

on:
  pull_request:

permissions:
  pull-requests: write
  issues: write

jobs:
  worker:
    runs-on: ubuntu-latest

    if: github.actor == 'dependabot[bot]'
    steps:
      - name: 'Wait for status checks'
        id: waitforstatuschecks
        uses: WyriHaximus/[email protected]
        with:
          ignoreActions: worker,WIP
          checkInterval: 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'Automerge'
        uses: pascalgn/[email protected]
        if: steps.waitforstatuschecks.outputs.status == 'success'
        env:
          MERGE_LABELS: ''
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_DELETE_BRANCH: true


이를 통해 Dependabot이 풀 요청을 열 때마다 종속성 업데이트와 충돌이 없는지 확인하고 모든 것이 정상이면 병합합니다.

따라서 저장소는 다음과 같이 표시됩니다.



이제 프로젝트가 종속성을 자동으로 업데이트합니다!

참조:

좋은 웹페이지 즐겨찾기