Как передать свойства Dependabot OPTIONS в файл dependabot-script в Azure DevOps Pipeline

После выполнения руководств, подобных этому, я могу успешно запустить Dependabot в моем репозитории Azure DevOps, и он автоматически создает PR. Проблема в том, что у меня есть некоторые настройки, которые мне нужно сделать, например, игнорирование определенных пакетов, как говорится в документации по зависимостям, которые можно сделать здесь , не работают.

Не уверен, что это то, как я составляю объект параметров или что-то еще, но, похоже, никакие значения не учитываются.

Вот как выглядит мой Azure DevOps Pipeline:

      trigger:
- main

jobs:
- job: dependabot
  displayName: Dependabot Execution
  pool:
   vmImage: 'ubuntu-latest'

  variables:
    - name: DIRECTORY_PATH
      value: /MyApp/
    - name: PACKAGE_MANAGER
      value: nuget
    - name: PROJECT_PATH   
      value: someDomain/someProject/_git/my-app
    - name: OPTIONS
      value: |
        {"ignore":[{"dependency-name":"NLog*"}]}
        # {"ignore_conditions":[{"dependency-name":"NLog*"}]} # also tried and did not work

  steps:
    - script: git clone https://github.com/dependabot/dependabot-script.git
      displayName: Clone Dependabot config repo

    - script: |
        cd dependabot-script
        docker build -t "dependabot/dependabot-script" -f Dockerfile .
      displayName: Build Dependabot Image

    - script: |
        docker run --rm -e AZURE_ACCESS_TOKEN='$(PAT)' \
                        -e GUTHUB_ACCESS_TOKEN='$(GHPAT)' \
                        -e PACKAGE_MANAGER='$(PACKAGE_MANAGER)' \
                        -e PROJECT_PATH='$(PROJECT_PATH)' \
                        -e DIRECTORY_PATH='$(DIRECTORY_PATH)' \
                        -e OPTIONS='$(OPTIONS)' \
                        dependabot/dependabot-script
      displayName: Run Dependabot

И вот вывод, когда конвейер работает:

      Running with options: {:ignore=>[{:"dependency-name"=>"NLog*"}]}
Fetching nuget dependency files for someDomain/someProject/_git/my-app
Parsing dependencies information
  - Updating NLog (from 5.1.0)… submitted
  - Updating System.Data.SqlClient (from 4.8.4)… submitted
Done
Finishing: Run Dependabot

Как видите, создаются 2 PR, и это здорово, за исключением того, что один NLog должен быть проигнорирован/пропущен. Я также пробовал другие варианты, такие как префикс сообщения фиксации, и он тоже не работал.

Любая помощь приветствуется!

1 ответ

Другой способ — использовать изображение, созданное с помощью tinglesoftware (https://github.com/tinglesoftware/dependentabot-azure-devops). Просто добавьте переменную среды DEPENDABOT_IGNORE_CONDITIONS при запуске образа Docker, например:

      - script: |
    docker pull ghcr.io/tinglesoftware/dependabot-updater
  displayName: Pull docker image
- script: |
    docker run --rm -i -e GITHUB_ACCESS_TOKEN='$(GHPAT)' \
                    -e DEPENDABOT_OPEN_PULL_REQUESTS_LIMIT=10 \
                    -e AZURE_ACCESS_TOKEN='$(PAT)' \
                    -e AZURE_ORGANIZATION='$(AZURE_ORGANIZATION)' \
                    -e AZURE_PROJECT='$(AZURE_PROJECT)' \
                    -e AZURE_REPOSITORY='$(AZURE_REPOSITORY)' \
                    -e DEPENDABOT_PACKAGE_MANAGER='$(PACKAGE_MANAGER)' \
                    -e DEPENDABOT_DIRECTORY='$(DIRECTORY_PATH)' \
                    -e DEPENDABOT_TARGET_BRANCH='$(BRANCH)' \
                    -e DEPENDABOT_IGNORE_CONDITIONS='[{"dependency-name":"dotnet/sdk","versions":[">= 7"]}]' \
                    ghcr.io/tinglesoftware/dependabot-updater
  displayName: Run Dependabot

Вам потребуется изменить переменную PROJECT_PATH, чтобы определить переменные AZURE_ORGANIZATION, AZURE_PROJECT и AZURE_REPOSITORY.

надеюсь, это поможет

Другие вопросы по тегам