{"meta":{"title":"Устранение неполадок зависимостей от действий GitHub","intro":"В этой статье приведена информация о устранении проблем, с которыми вы можете столкнуться при работе Dependabot с GitHub Actions.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/reference","title":"Reference"},{"href":"/ru/code-security/reference/supply-chain-security","title":"Безопасность цепочки поставок"},{"href":"/ru/code-security/reference/supply-chain-security/troubleshoot-dependabot","title":"Устранение неполадок Dependabot"},{"href":"/ru/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions","title":"Dependabot от действий"}],"documentType":"article"},"body":"# Устранение неполадок зависимостей от действий GitHub\n\nВ этой статье приведена информация о устранении проблем, с которыми вы можете столкнуться при работе Dependabot с GitHub Actions.\n\n## Устранение неисправностей при Dependabot активации существующих рабочих процессов\n\nПосле настройки Dependabot обновлений GitHub.comмогут возникнуть сбои, когда существующие рабочие процессы активируются событиями Dependabot .\n\nПо умолчанию рабочие процессы запускаются GitHub Actions из Dependabot, `push``pull_request`или `pull_request_review` события обрабатываются так, `pull_request_review_comment` как если бы они были открыты из вилки репозитория. Это означает, что в отличие от рабочих процессов, активированных другими субъектами, они получают `GITHUB_TOKEN` только для чтения и не имеют доступа к секретам, которые обычно доступны. Это приведет к сбою всех рабочих процессов, которые пытаются записать в репозиторий при их активации Dependabot.\n\nСуществует три способа решения этой проблемы.\n\n1. Вы можете обновить рабочие процессы таким образом, чтобы они больше не активировались Dependabot с помощью выражения, например: `if: github.actor != 'dependabot[bot]'` Дополнительные сведения см. в разделе [Оценка выражений в рабочих процессах и действиях](/ru/actions/reference/workflows-and-actions/expressions).\n2. Вы можете изменить рабочие процессы так, чтобы использовался двухэтапный процесс с событием `pull_request_target`, которое не имеет таких ограничений. Дополнительные сведения см. в разделе [Устранение неполадок зависимостей от действий GitHub](/ru/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions).\n3. Вы можете предоставить рабочие процессы, Dependabot активированные доступом к секретам, и разрешить `permissions` термину увеличить область `GITHUB_TOKEN`по умолчанию.\n\nНекоторые рекомендации по устранению неполадок приведены в этой статье. Вы также можете увидеть [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions).\n\n### Доступ к секретам\n\nКогда Dependabot событие запускает рабочий процесс, единственные секреты, доступные для этого процесса, — Dependabot это секреты.\nGitHub Actions Секреты **недоступны**. Поэтому вы должны хранить все секреты, используемые рабочим процессом, запускаемым Dependabot событиями, как Dependabot секреты. Дополнительные сведения см. в разделе [Настройка доступа к частным реестрам для Dependabot](/ru/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-access-to-private-registries#storing-credentials-for-dependabot-to-use).\n\nDependabot Секреты добавляются в `secrets` контекст и ссылаются с использованием точно того же синтаксиса, что и секреты для GitHub Actions. Дополнительные сведения см. в разделе [Использование секретов в GitHub Actions](/ru/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#using-secrets-in-a-workflow).\n\nЕсли у вас есть рабочий процесс, который будет запускаться Dependabot и другими акторами, самое простое решение — хранить токен с необходимыми разрешениями действия и в Dependabot секрете с идентичными именами. Затем рабочий процесс может включать один вызов этих секретов. Если секрет для Dependabot имеет другое имя, используйте условия, чтобы указать правильные секреты для разных акторов.\n\nПримеры использования условий см. в разделе [Автоматизация Dependabot с помощью GitHub Actions](/ru/code-security/tutorials/secure-your-dependencies/automate-dependabot-with-actions).\n\nЧтобы получить доступ к частному реестру контейнеров в AWS с именем пользователя и паролем, рабочий процесс должен содержать секрет для `username` и `password`.\n\nВ этом примере, когда Dependabot запускается рабочий процесс, Dependabot используются секреты с именами `READONLY_AWS_ACCESS_KEY_ID` и `READONLY_AWS_ACCESS_KEY` именами. Если другой субъект активирует рабочий процесс, используются секреты действий с этими именами.\n\n```yaml copy\n# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.\n# Они предоставляются сторонним поставщиком, и на них распространяются\n# отдельные условия обслуживания, политика конфиденциальности и поддержка\n# документации.\nname: CI\non:\n  pull_request:\n    branches: [ main ]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Login to private container registry for dependencies\n        uses: docker/login-action@3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c\n        with:\n          registry: https://1234567890.dkr.ecr.us-east-1.amazonaws.com\n          username: ${{ secrets.READONLY_AWS_ACCESS_KEY_ID }}\n          password: ${{ secrets.READONLY_AWS_ACCESS_KEY }}\n\n      - name: Build the Docker image\n        run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)\n```\n\n### Изменение разрешений `GITHUB_TOKEN`\n\nПо умолчанию GitHub Actions рабочие процессы, запускаемые Dependabot`GITHUB_TOKEN` с помощью A с разрешениями только для чтения. В рабочем процессе можно использовать ключ `permissions` для увеличения доступа к маркеру:\n\n```yaml copy\nname: CI\non: pull_request\n\n# Set the access for individual scopes, or use permissions: write-all\npermissions:\n  pull-requests: write\n  issues: write\n  ...\n\njobs:\n  ...\n```\n\nДополнительные сведения см. в разделе [Использование GITHUB\\_TOKEN для проверки подлинности в рабочих процессах](/ru/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token).\n\n## Повторный запуск рабочего процесса вручную\n\nКогда вы вручную запускаете Dependabot рабочий процесс, он будет работать с теми же правами, что и раньше, даже если у пользователя, инициировавшего повтор, есть другие права. Дополнительные сведения см. в разделе [Повторный запуск рабочих процессов и заданий](/ru/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs)."}