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

Приходилось ли вам сталкиваться с ошибками устаревших зависимостей после установки проекта?
Или, используя Dependabot, вы позволяете уведомлениям об обновлениях накапливаться месяцами?

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

Но сначала…

Что такое Dependabot?

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

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

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

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

Объясняя, что это значит, можно сказать, что он будет проверять зависимости ежедневно в 2 часа 00 минут (UTC 0).

Вот БОНУС настройки, если вы хотите изменить ветку, в которой будет открываться PR, и/или изменить метки этих 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, он сначала проверит, не было ли конфликта в проекте с обновлением этой зависимости, и даст merge, если все в порядке.

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

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

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