Как передать свойства 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.
надеюсь, это поможет