Как автоматически обновлять зависимости в репозитории с помощью Dependabot на Github

Вы когда-нибудь страдали от ошибок при установке зависимостей вашего проекта с помощью NPM? Или, используя Dependabot, вы позволяли накапливаться куче предупреждений о зависимостях, которые не обновлялись месяцами?

Думаю, это небольшое руководство поможет вам!

Но сначала…

Что такое Dependabot?

Согласно собственному описанию, Dependabot — это бот, который помогает вам поддерживать ваши зависимости в актуальном состоянии. Каждый день он проверяет ваши файлы зависимостей на наличие устаревших требований и открывает отдельные PR для всех найденных. Вы просматриваете их, объединяете и приступаете к работе над последними, наиболее безопасными релизами.

Как установить dependabots в моем репозитории

Внутри вашего репозитория Github перейдите в:
Настройки > [ Безопасность ] > _Безопасность и анализ кода
_ и затем активируйте «Обновления версий Dependabot».
Нажмите кнопку Configure, и код, который вы увидите, будет выглядеть следующим образом:

version: 2
updates:
  - package-ecosystem: npm
    directory: '/'
    schedule:
      interval: daily
      time: '02:00'
    open-pull-requests-limit: 10
Вход в полноэкранный режим Выход из полноэкранного режима

В этом первом коде настроено то, что он будет запускаться ежедневно в 2:00 утра.

Здесь есть БОНУС, если вы хотите изменить ветку, он откроет 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 мы смогли автоматизировать процесс слияния PR, созданных Dependabot.

Перейдите в Actions внутри вашего репозитория Github, а затем в New Workflow.
Там уже есть несколько готовых Actions. Вы можете выбрать любой шаблон, а затем удалить все содержимое и вставить этот код:

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/github-action-wait-for-status@v1.2.0
        with:
          ignoreActions: worker,WIP
          checkInterval: 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 'Automerge'
        uses: pascalgn/automerge-action@v0.11.0
        if: steps.waitforstatuschecks.outputs.status == 'success'
        env:
          MERGE_LABELS: 'update'
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MERGE_DELETE_BRANCH: true
Вход в полноэкранный режим Выйти из полноэкранного режима

С его помощью каждый раз, когда Dependabot будет открывать pull request, он будет проверять, не было ли конфликта с обновлением зависимостей, и объединять их, если все в порядке.

Таким образом, ваш репозиторий будет выглядеть следующим образом:

Теперь ваш проект обновляет свои зависимости автоматически!

Оцените статью
devanswers.ru
Добавить комментарий