О настройке частных реестров для Dependabot
В этой статье содержатся рекомендации и рекомендации по настройке Dependabot для доступа к частному реестру, а также:
- Подробные
dependabot.ymlфрагменты файла конфигурации для каждого диспетчера пакетов. - Важные ограничения или предостережения.
- Действия, объясняющие, как проверить, работает ли конфигурация.
- Дополнительные параметры конфигурации, где угодно (например, npm имеет файл конфигурации, который необходимо задать).
- Советы по настройке узлов реестра.
Вы найдете подробные рекомендации по настройке следующих диспетчеров пакетов:
Вы также найдете рекомендации по настройке следующих узлов реестра:
Настройка диспетчеров пакетов
Булочка
Bun соответствует тем же рекомендациям по настройке, что и npm. Обратите внимание, что .npmrc файл не является обязательным, но его можно предоставить для настройки конфигурации. Подробные инструкции см. в разделе npm.
Средство увязки программ в пакеты
Поддерживается Artifactory, Artifacts, Cloudsmith, GitHub Packages реестра, Nexus и ProGet.
Вы можете пройти проверку подлинности с помощью имени пользователя и пароля или маркера. Дополнительные сведения см rubygems-server . в autoTITLE.
dependabot.yml Фрагмент файла с использованием имени пользователя и пароля.
registries:
ruby-example:
type: rubygems-server
url: https://rubygems.example.com
username: octocat@example.com
password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
registries:
ruby-example:
type: rubygems-server
url: https://rubygems.example.com
username: octocat@example.com
password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
В приведенном dependabot.yml ниже фрагменте файла используется маркер. Для этого типа реестра с помощью реестра GitHub Packages (xyz.pkg.github.com), маркер фактически является GitHub personal access token (PAT).
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
Примечания.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
Груз
Cargo поддерживает проверку подлинности на основе имени пользователя, пароля и маркера. Дополнительные сведения см cargo-registry . в autoTITLE.
В приведенном ниже фрагменте показана dependabot.yml конфигурация файла, использующая маркер.
registries:
cargo-example:
type: cargo-registry
registry: "name-of-your-registry"
url: https://cargo.cloudsmith.io/foobaruser/test/
token: "Token ${{secrets.CARGO_TOKEN}}"
Мы проверили эту конфигурацию в частном реестре https://cargo.cloudsmith.io .
Docker
Docker поддерживает использование имени пользователя и пароля для реестров. Дополнительные сведения см docker-registry . в autoTITLE.
Фрагмент dependabot.yml файла с использованием имени пользователя и пароля.
registries:
dockerhub:
type: docker-registry
url: https://registry.hub.docker.com
username: octocat
password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
registries:
dockerhub:
type: docker-registry
url: https://registry.hub.docker.com
username: octocat
password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
docker-registry также можно использовать для извлечения из частного ECR Amazon с помощью статических учетных данных AWS.
registries:
ecr-docker:
type: docker-registry
url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}
registries:
ecr-docker:
type: docker-registry
url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}
Примечания.
Dependabot работает с любыми реестрами контейнеров, реализующими спецификацию распространения Open Container Initiative (OCI). Дополнительные сведения см. в разделе https://github.com/opencontainers/distribution-spec/blob/main/spec.md.
Dependabot поддерживает проверку подлинности в частных реестрах через центральную службу маркеров или обычную проверку подлинности HTTP. Дополнительные сведения см . в описании спецификации проверки подлинности токенов в документации По Docker и проверке подлинности "Базовый доступ" в Википедии.
Ограничения и методы обхода
- Имена изображений не всегда могут быть обнаружены в файлах Containerfiles, Helm или yaml-файлах.
- Dockerfiles может получать только обновление версии до первой
FROMдирективы. - Dockerfiles не получают обновления для образов, указанных в директиве
ARG. Существует обходное решение для директивыCOPY. Дополнительные сведения см. в статье Dependabot игнорирует ссылки на изображения в инструкции COPY Dockerfile в репозиторииdependabot/dependabot-core. - Dependabot не поддерживает многоэтапные сборки Docker. Дополнительные сведения см. в разделе "Поддержка многоэтапных сборок Docker" в репозитории
dependabot/dependabot-core.
Docker Compose
Docker Compose соответствует тем же рекомендациям по настройке, что и Docker. Дополнительные сведения см. в разделе Docker.
Диаграммы Helm
Helm поддерживает использование имени пользователя и пароля для реестров. Дополнительные сведения см. в разделе Настройка доступа к частным реестрам для Dependabot.
Фрагмент dependabot.yml файла с использованием имени пользователя и пароля.
registries:
helm_registry:
type: helm-registry
url: https://registry.example.com
username: octocat
password: ${{secrets.MY_REGISTRY_PASSWORD}}
registries:
helm_registry:
type: helm-registry
url: https://registry.example.com
username: octocat
password: ${{secrets.MY_REGISTRY_PASSWORD}}
Примечания.
Dependabot работает с любыми реестрами, совместимыми с OCI, которые реализуют спецификацию распространения Open Container Initiative (OCI). Дополнительные сведения см. в статье "Вход в реестр Helm" в документации Helm.
Dependabot поддерживает проверку подлинности в частных реестрах через центральную службу маркеров или обычную проверку подлинности HTTP. Дополнительные сведения см . в описании спецификации проверки подлинности токенов в документации По Docker и проверке подлинности "Базовый доступ" в Википедии.
При настройке зависимостей для диаграмм Helm он также автоматически обновляет образы Docker, на которые ссылается эта диаграмма, обеспечивая актуальность версий диаграмм и их содержащихся изображений.
Ограничения и методы обхода
- Dependabot обновляет зависимости только в
Chart.yamlфайлах. - Изображения в
values.yamlфайлах иChart.yamlфайлах обновляются. - Обновления зависимостей Helm сначала пытаются выполнить с помощью интерфейса командной строки Helm с резервным вариантом поиска
index.yaml. - Образы, имеющие массив версий в YAML, не могут быть обновлены.
- Имена изображений не всегда могут быть обнаружены в файлах Helm или YAML-файлах.
- Для обновлений Helm версии 2 используйте экосистему Docker.
Gradle
Dependabot не запускает Gradle, но поддерживает обновления для определенных файлов Gradle. Дополнительные сведения см. в разделе "Gradle" в Поддерживаемые экосистемы и репозитории Dependabot.
Gradle поддерживает maven-repository тип реестра. Дополнительные сведения см maven-repository . в autoTITLE.
Тип maven-repository поддерживает имя пользователя и пароль. Если учетная запись является учетной записью GitHub, вместо пароля можно использовать GitHub personal access token вместо пароля.
registries:
gradle-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-gradle-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
- package-ecosystem: "gradle"
directory: "/"
registries:
- gradle-artifactory
schedule:
interval: "monthly"
registries:
gradle-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-gradle-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
- package-ecosystem: "gradle"
directory: "/"
registries:
- gradle-artifactory
schedule:
interval: "monthly"
Примечания.
Вы можете не видеть все зависимости, представленные в граф зависимостей, особенно если некоторые зависимости являются зависимостями во время сборки. Вы можете использовать API отправки зависимостей для информирования GitHub о других зависимостях и получения обновлений системы безопасности для них. Дополнительные сведения см. в разделе Использование API отправки зависимостей.
Go
Поддерживается Jfrog Artifactory и Nexus.
Go поддерживает использование имени пользователя и пароля для частных реестров.
Настройте частный dependabot.yml реестр с помощью файла с типом goproxy-server :
registries:
my-private-registry:
type: goproxy-server
url: https://acme.jfrog.io/artifactory/api/go/my-repo
username: octocat
password: ${{secrets.MY_GO_REGISTRY_TOKEN}}
registries:
my-private-registry:
type: goproxy-server
url: https://acme.jfrog.io/artifactory/api/go/my-repo
username: octocat
password: ${{secrets.MY_GO_REGISTRY_TOKEN}}
Кроме того, можно настроить, как цепочка инструментов Go обращается к прокси-серверу, создав файл в корневом go.env каталоге репозитория. Этот файл позволяет задать такие переменные среды, как GOPROXY, GONOSUMDB``GOPRIVATEи GOSUMDB управлять разрешением модулей Go:
GOPROXY=https://acme.jfrog.io/artifactory/api/go/my-repo GOPRIVATE=my-company.com/* GONOSUMDB=my-company.com/*
GOPROXY=https://acme.jfrog.io/artifactory/api/go/my-repo
GOPRIVATE=my-company.com/*
GONOSUMDB=my-company.com/*
Примечания.
Эта функция обеспечивает единое управление зависимостями для общедоступных и частных модулей Go в рамках одного рабочего процесса Dependabot, что делает его идеальным для организаций с использованием корпоративных систем управления артефактами, таких как JFrog Artifactory или Nexus.
Частный прокси-сервер, обслуживающий все модули: все запросы модуля сначала проходят через прокси-сервер. Для общедоступных модулей получение сбоев прокси-сервера возвращает 404/410, и Go возвращается к прямому доступу системы управления версиями (VCS). Для частных модулей, таких как опубликованные только в частном репозитории, например JFrog Artifactory, откат VCS не будет работать, так как они доступны только через прокси-сервер.
Частные модули для обслуживания частных прокси-серверов: добавьте go.env в корневой каталог репозитория и настройте GONOSUMDB, соответствующий шаблону частных модулей (например, GONOSUMDB=my-company.com/* для всех частных модулей, начиная с my-company.com/). Это приведет к отключению проверки общедоступной контрольной суммы частных модулей, так как в базе данных общедоступной контрольной суммы нет этих частных модулей.
Прямой доступ к частным модулям: установите GOPRIVATE=my-company.com/* для обхода прокси-серверов и получения непосредственно из VCS. Этот параметр работает только в том случае, если частные модули правильно публикуются с тегами семантической версии в системе управления версиями.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
Maven
Maven поддерживает проверку подлинности имени пользователя и пароля. Дополнительные сведения см maven-repository . в autoTITLE.
registries:
maven-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-maven-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
registries:
maven-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-maven-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
Если учетная запись является учетной записью GitHub, вместо пароля можно использовать GitHub personal access token вместо пароля.
version: 2
registries:
maven-github:
type: maven-repository
url: https://maven.pkg.github.com/octocat
username: octocat
password: ${{secrets.OCTOCAT_GITHUB_PAT}}
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-github
schedule:
interval: "monthly"
version: 2
registries:
maven-github:
type: maven-repository
url: https://maven.pkg.github.com/octocat
username: octocat
password: ${{secrets.OCTOCAT_GITHUB_PAT}}
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-github
schedule:
interval: "monthly"
Примечания.
Вы можете не видеть все зависимости, представленные в граф зависимостей, особенно если некоторые зависимости являются зависимостями во время сборки. Вы можете использовать API отправки зависимостей для информирования GitHub о других зависимостях и получения обновлений системы безопасности для них. Дополнительные сведения см. в разделе Использование API отправки зависимостей.
npm
Конфигурацию в dependabot.yml файле можно определить с помощью npm-registry типа или настроить Dependabot для отправки всех запросов реестра по указанному базовому URL-адресу.
npm-registry Использование типа в файле конфигурации
Вы можете определить конфигурацию частного dependabot.yml реестра в файле с помощью npm-registry типа. Дополнительные сведения см. в разделе Настройка доступа к частным реестрам для Dependabot.
В приведенном ниже фрагменте dependabot.yml файла используется маркер. Для этого типа реестра с помощью реестра GitHub Packages (xyz.pkg.github.com), маркер фактически является GitHub personal access token (PAT).
registries:
npm-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
registries:
npm-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
Экосистема npm требует, чтобы файл с URL-адресом .npmrc частного реестра был проверен в репозитории.
Пример содержимого .npmrc файла:
registry=https://<private-registry-url>
Кроме того, можно добавить URL-адрес частного реестра в существующий .npmrc файл с помощью следующей команды.
npm config set registry <url>
Дополнительные сведения см. в реестре в документации npm.
Вы также можете ограничить конфигурацию только одной зависимостью или организацией, в этом случае маркер будет допустимым только для организации, а разные маркеры можно использовать для разных организаций для одного репозитория.
npm config set @<org-name>:registry <url>
Это приведет к созданию реестра npmrc:
@<org-name>:registry=https://<private-registry-url>
npm можно настроить для использования URL-адреса частного реестра в файлах блокировки.replace-registry-host Дополнительные сведения см. в документации по npm.
npm config set replace-registry-host "never"
При использовании replace-registry-hostнеобходимо выполнить локально, npm install чтобы повторно создать файл блокировки для использования URL-адреса частного реестра. Dependabot будет использовать тот же URL-адрес при предоставлении обновлений.
После настройки реестра можно также выполнить npm login проверку правильности и допустимости конфигурации. Файл блокировки также можно повторно создать для использования нового частного реестра, выполнив повторное выполнение npm install .
Необходимо убедиться, что .npmrc файл проверяется в том же каталоге, что и проект package.json , и что файл не включает переменные среды или секреты.
Если используется monorepo, .npmrc файл должен находиться в корневом каталоге проекта.
Настройка Dependabot для отправки запросов реестра по указанному базовому URL-адресу
Можно настроить Dependabot для отправки всех запросов реестра по указанному базовому URL-адресу. Чтобы Dependabot получить доступ к общедоступной зависимости, реестр должен иметь клонированную копию зависимости с запрошенной версией или разрешить трафик получать из общедоступного реестра, если зависимость недоступна.
Если в файле отсутствует глобальный .npmrc реестр, его можно задать replaces-base true в dependabot.yml файле. Дополнительные сведения см. в разделе "replaces-base" в ключе верхнего уровняregistries.
Примечания.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
Для зависимостей в области (@my-org/my-dep), Dependabot требует, чтобы частный реестр был определен в файле проекта .npmrc . Чтобы определить частные реестры для отдельных областей, используйте @myscope:registry=https://private_registry_url.
Реестры должны быть настроены с помощью https протокола.
NuGet
Поддерживается Artifactory, Artifacts, Cloudsmith, GitHub Packages реестра, Nexus и ProGet.
Тип nuget-feed поддерживает имя пользователя и пароль или маркер безопасности. Дополнительные сведения см nuget-feed . в autoTITLE.
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
Примечания.
Вы также можете использовать маркер в dependabot.yml файле. Для этого типа реестра с помощью реестра GitHub Packages (xyz.pkg.github.com), маркер фактически является GitHub personal access token (PAT).
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
паб
Вы можете определить конфигурацию частного dependabot.yml реестра в файле с помощью pub-repository типа. Дополнительные сведения см. в разделе Настройка доступа к частным реестрам для Dependabot.
registries:
my-pub-registry:
type: pub-repository
url: https://example-private-pub-repo.dev/optional-path
token: ${{secrets.MY_PUB_TOKEN}}
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "weekly"
registries:
- my-pub-registry
registries:
my-pub-registry:
type: pub-repository
url: https://example-private-pub-repo.dev/optional-path
token: ${{secrets.MY_PUB_TOKEN}}
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "weekly"
registries:
- my-pub-registry
Примечания.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
pub поддерживает проверку подлинности URL-адреса и маркера. URL-адрес, используемый для реестра, должен совпадать с URL-адресом, размещенным в пабе. Дополнительные сведения см. в разделе "Спецификация репозитория размещенного паба" версии 2 в репозитории github/dart-lang/pub .
Dependabot не поддерживает переопределение реестра пакетов по умолчанию. Дополнительные сведения о переопределениях и о том, почему некоторые пользователи могут реализовать их, см . в разделе "Переопределение репозитория пакетов по умолчанию" в документации по Dart.
Python
Поддерживается Artifactory, Артефакты Azure, Cloudsmith, Nexus и ProGet. Реестр GitHub Packages не поддерживается.
Тип python-index поддерживает имя пользователя и пароль или маркер безопасности. Дополнительные сведения см python-index . в autoTITLE.
registries:
python-example:
type: python-index
url: https://example.com/_packaging/my-feed/pypi/example
username: octocat
password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
registries:
python-example:
type: python-index
url: https://example.com/_packaging/my-feed/pypi/example
username: octocat
password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
registries:
python-azure:
type: python-index
url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
registries:
python-azure:
type: python-index
url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
registries:
python-gemfury:
type: python-index
url: https://pypi.fury.io/my_org
token: ${{secrets.MY_GEMFURY_TOKEN}}
registries:
python-gemfury:
type: python-index
url: https://pypi.fury.io/my_org
token: ${{secrets.MY_GEMFURY_TOKEN}}
Примечания.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
url должен содержать URL-адрес, организацию и "веб-канал" или репозиторий.
Yarn
Реестр Yarn использует конфигурацию, аналогичную конфигурации реестра npm. Дополнительные сведения см. в разделе "npm-registry" в Настройка доступа к частным реестрам для Dependabot.
registries:
yarn-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
registries:
yarn-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
- Для частных реестров необходимо проверить
.yarnrc.ymlфайл (для Yarn 3) или.yarnrcфайл (для Yarn Classic). - Файлы конфигурации yarn не должны содержать переменные среды.
- Следует настроить частные реестры, перечисленные
dependabot.ymlв файле, с помощьюhttps.
Yarn Classic
Вы можете указать конфигурацию частного реестра в dependabot.yml файле или настроить Yarn Classic в соответствии со стандартными инструкциями диспетчера пакетов.
Определение конфигурации частного реестра в dependabot.yml файле
Вы можете определить конфигурацию частного реестра в dependabot.yml файле. Дополнительные сведения см. в разделе "Ключ верхнего уровняregistries".
Чтобы закрытый реестр был указан в качестве источника зависимостей в файле проекта yarn.lock , необходимо запустить yarn install на компьютере с частным доступом к реестру. Yarn должен обновить разрешенное поле, чтобы включить URL-адрес частного реестра.
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
Следуя стандартным инструкциям диспетчера пакетов
yarn.lock Если файл не перечисляет частный реестр в качестве источника зависимостей, можно настроить Yarn Classic в соответствии с инструкциями по диспетчеру пакетов уровня "Стандартный".
-
Определите конфигурацию частного
dependabot.ymlреестра в файле. -
Затем можно выполнить следующие действия:
- Вручную задайте для файла частный реестр
.yarnrc, добавив реестр.yarnrc.ymlв файл в корневой каталог проекта с реестром разделов или - Выполните то же действие, выполнив в
yarn config set registry <private registry URL>терминале.
.yarnrcПример с определенным частным реестром:registry https://nexus.example.com/repository/yarn-all - Вручную задайте для файла частный реестр
Yarn Berry (v3)
Сведения о конфигурации см. в разделе "Параметры" (.yarnrc.yml) в документации Yarn.
Как и в случае с Yarn Classic, можно указать конфигурацию частного dependabot.yml реестра в файле или настроить Yarn Berry в соответствии с инструкциями диспетчера пакетов.
Определение конфигурации частного реестра в dependabot.yml файле
Вы можете определить конфигурацию частного реестра в dependabot.yml файле. Дополнительные сведения см. в разделе "Ключ верхнего уровняregistries".
Чтобы частный реестр был указан в качестве источника зависимостей в файле проекта yarn.lock , запустите yarn install на компьютере с закрытым доступом к реестру. Yarn должен обновить разрешенное поле, чтобы включить URL-адрес частного реестра.
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
Вы также можете настроить частные реестры с npmAuthIdent помощью или npmAuthToken. Дополнительные сведения см. в разделе "npmAuthIdent" и npmAuthToken в документации Yarn.
yarn config set registry <url>
Вы можете ограничить конфигурацию только одной зависимостью или организацией.
yarn config set @<SCOPE>:registry <url>
Наконец, мы рекомендуем выполнить запуск yarn login , чтобы убедиться, что конфигурация правильна и действительна. Файл блокировки также можно повторно создать для использования нового частного реестра, выполнив повторное выполнение yarn install .
Следуя стандартным инструкциям диспетчера пакетов
yarn.lock Если файл не перечисляет частный реестр в качестве источника зависимостей, можно настроить Yarn Berry в соответствии со стандартными инструкциями диспетчера пакетов.
-
Определите конфигурацию частного
dependabot.ymlреестра в файле. -
Затем можно выполнить следующие действия:
- Вручную задайте для файла частный реестр
.yarnrc, добавив реестр.yarnrc.ymlв файл в корневой каталог проекта с ключомnpmRegistryServerили - Выполните то же действие, выполнив в
yarn config set npmRegistryServer <private registry URL>терминале.
.yarnrc.ymlПример файла с настроенным частным реестром:npmRegistryServer: "https://nexus.example.com/repository/yarn-all"Дополнительные сведения см. в документации по Yarn в npmRegistryServer .
- Вручную задайте для файла частный реестр
Примечания.
Зависимости, полученные непосредственно от репозитория GitHub предоставляют доступ Dependabot к репозиторию через пользовательский интерфейс GitHub. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub, см. в статье "Разрешение Dependabot для доступа к частным зависимостям.
Для зависимостей в области (@my-org/my-dep), Dependabot требует, чтобы частный реестр был определен в проекте .yarnrc file. Чтобы определить частные реестры для отдельных областей, используйте @myscope:registry" "https://private_registry_url".
Настройка узлов частного реестра
Artifactory
Сведения о настройке Artifactory см . в документации по JFrog Artifactory .
Удаленные репозитории
Удаленные репозитории служат кэшем для артефактов сборки и зависимостей. Вместо того чтобы обратиться к глобальному репозиторию зависимостей, средство сборки может использовать кэш artifactory, который ускорит время сборки. Дополнительные сведения см. в документации по JFrog Artifactory.
Если вы используете replace-base этот параметр, необходимо также настроить удаленный репозиторий для Artifactory, если требуется Dependabot для доступа к другому реестру, когда зависимость не найдена в частном реестре.
Виртуальный реестр
Виртуальный реестр можно использовать для группировки всех частных и общедоступных зависимостей в одном домене. Дополнительные сведения см . в разделе реестра npm в документации по JFrog Artifactory.
Azure Artifacts
Сведения о артефактах Azure и инструкциях по настройке Dependabot для работы с Azure Artifacts см . в документации по Azure DevOps и использовании Dependabot в GitHub с артефактами Azure соответственно.
Пример реестра артефактов Azure:
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/my_org/_packaging/public/nuget/v3/index.json
token: ${{secrets.AZURE_DEVOPS_TOKEN}}
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/my_org/_packaging/public/nuget/v3/index.json
token: ${{secrets.AZURE_DEVOPS_TOKEN}}
Пароль Azure Artifacts должен быть незакодированный маркер и должен содержать : после маркера. Кроме того, пароль не может быть закодирован в кодировке Base64.
Вы можете проверить успешность доступа к частному реестру, просмотрев журналы Dependabot .
Cloudsmith
Сведения о Cloudsmith и инструкции по настройке Dependabot для работы с Cloudsmith см. в статье ["Начало работы с Cloudsmith" и интеграция GitHub Dependabot с Cloudsmith в документации Cloudsmith](https://help.cloudsmith.io/docs/dependabot).
Реестр GitHub Packages
Сведения о реестрах GitHub Packages см. в разделе Работа с реестром GitHub Packages. Из этой статьи вы можете получить доступ к страницам, описывающим настройку следующих реестров.
- Упаковщик (rubygems)
- Docker (контейнеры)
- GitHub Actions
- Gradle
- Maven
- Npm
- NuGet
- Yarn
registries:
github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{ secrets.<token> }}
registries:
github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{ secrets.<token> }}
Примечания.
Реестр контейнеров Python отсутствует.
Для частных реестров, которые относятся к определенной организации, Dependabot ожидает, что URL-адрес будет включать имя организации в dependabot.yml файл.
Связь
Сведения о настройке Nexus см . в документации по Диспетчеру репозитория 3 .
Примечания.
С помощью Nexus Repository Pro можно включить маркеры пользователей. Дополнительные сведения см. в документации по Sonatype.
Пример реестра Nexus:
registries:
npm-nexus:
type: npm-registry
url: https://registry.example.com/repository/npm-internal/
token: ${{secrets.NEXUS_NPM_TOKEN}}
registries:
npm-nexus:
type: npm-registry
url: https://registry.example.com/repository/npm-internal/
token: ${{secrets.NEXUS_NPM_TOKEN}}
Если вы используете Nexus за обратным прокси-сервером, необходимо убедиться, что сервер доступен с помощью маркера проверки подлинности.curl -v -H 'Authorization: Bearer <token>' 'https://<nexus-repo-url>/repository/<repo-name>/@<scope>%2<package>' Дополнительные сведения см. в разделе "Запуск за обратным прокси-сервером " в документации по Sonatype.
Если вы ограничиваете доступ к узлу Nexus, необходимо добавить ip-адреса Dependabot в список разрешений.
- IP-адреса Dependabot используются для доступа к реестру в конечной точке мета API под ключом зависимостей. Дополнительные сведения см. в разделе Конечные точки REST API для метаданных.
- Это текущие IP-адреса:
- "18.213.123.130/32"
- "3.217.79.163/32"
- "3.217.93.44/32" Дополнительные сведения см. в разделе "Защита диспетчера репозитория Nexus" в документации по Sonatype.
Реестры можно связаться с общедоступным реестром, если зависимость недоступна в частном реестре. Однако может потребоваться, чтобы Dependabot доступ только к частному реестру и не доступ к общедоступному реестру вообще. Дополнительные сведения см . в кратком руководстве по использованию прокси-сервера Maven и NPM в документации по Sonatype и Удаление доступа Dependabot к общедоступным реестрам.
ProGet
Сведения о ProGet и инструкции по настройке Dependabot для работы с веб-каналами в ProGet см . в документации по ProGet.
Пример конфигурации реестра ProGet для веб-канала NuGet:
registries:
proget-nuget-feed:
type: nuget-feed
url: https://proget.corp.local/nuget/MyNuGetFeed/v3/index.json
token: ${{secrets.PROGET_APK_KEY}}
registries:
proget-nuget-feed:
type: nuget-feed
url: https://proget.corp.local/nuget/MyNuGetFeed/v3/index.json
token: ${{secrets.PROGET_APK_KEY}}
Пример конфигурации реестра ProGet для bundler (rubygems):
registries:
proget-gems-feed:
type: rubygems-server
url: https://proget.corp.local/rubygems/MyRubygemsFeed
token: ${{secrets.PROGET_APK_KEY}}
registries:
proget-gems-feed:
type: rubygems-server
url: https://proget.corp.local/rubygems/MyRubygemsFeed
token: ${{secrets.PROGET_APK_KEY}}
Пример конфигурации реестра ProGet для Python (PyPI):
registries:
proget-python-feed:
type: python-index
url: https://proget.corp.local/pypi/MyPythonFeed
token: ${{secrets.PROGET_APK_KEY}}
registries:
proget-python-feed:
type: python-index
url: https://proget.corp.local/pypi/MyPythonFeed
token: ${{secrets.PROGET_APK_KEY}}
Примечания.
Ключ token API должен быть ключом API с доступом к просмотру пакетов. Дополнительные сведения см. в разделе "Доступ к API" и "Ключи API" в документации по ProGet.
Вы можете проверить успешность доступа к частному реестру, просмотрев журналы Dependabot .