一旦有新版本,Renovate 就会更新软件包。但 renovate 还会为每次更新创建一个单独的 PR/分支。因此,如果为我的 5 个包 renovate 发布的新版本将创建 5 个分支。\n这会导致 5 个管道,其中 1 个 PR 被合并,其他 4 个将重新设置基础并再次运行管道。因此,每次合并时将运行 15 个 PR 管道 + 分支管道main
。
\n因此总共将运行 19 个管道。
是否可以将 \xe2\x80\x93 假设所有次要更新和补丁更新 \xe2\x80\x93 合并到一个分支和 PR 中,以避免出现大量 PR?
\n我发现的唯一的事情是prConcurrentLimit
它避免了每次合并时 PR 管道的变基和重新运行。但这也会触发 10 个管道。
如果我可以将所有内容组合在一起,则只有 1 个 PR 管道和 1 个main
分支管道。所以总共有2条管道。那将是真棒。
我有一个 Maven 项目,它依赖于com.thoughtworks.xstream:xstream:1.4.11.1
.
Renovate 打开了一个拉取请求,com.thoughtworks.xstream:xstream:1.4.12-java7
但我更希望看到一个拉取请求,com.thoughtworks.xstream:xstream:1.4.12
因为我使用的是 Java 8。
如何配置 renovate.json 文件以指定,对于 groupIdcom.thoughtworks.xstream
和 artifactId xstream
,我不想在版本以 结尾时接收 PR -java7
?
我正在运行一个自托管的 Renovate 实例,我需要使用 GPG 密钥签署对 GitLab 的提交。
为此,我使用我的 GitLab 用户的 PGP 私钥块设置环境变量 RENOVATE_GIT_PRIVATE_KEY,并且该变量会自动导入。
但当我尝试这样做时,出现以下错误:
gpg: directory '/home/ubuntu/.gnupg' created
gpg: keybox '/home/ubuntu/.gnupg/pubring.kbx' created
gpg: /home/ubuntu/.gnupg/trustdb.gpg: trustdb created
gpg: key 72A96C0D4FA8543C: public key "Dummy User <dummyuser@company.com>" imported
gpg: key 72A96C0D4FA8543C/72A96C0D4FA8543C: error sending to agent: Inappropriate ioctl for device
gpg: error building skey array: Inappropriate ioctl for device
gpg: error reading '/tmp/git-private.key': Inappropriate ioctl for device
gpg: import from '/tmp/git-private.key' failed: Inappropriate ioctl for device
gpg: Total number processed: 0
gpg: imported: 1 …
Run Code Online (Sandbox Code Playgroud) 在我的 GitHub 存储库中,我想将更新机器人配置为自动合并所有次要(和较小)更新,并仅为主要更新创建 PR。如果我正确理解该文档,我的包规则应该配置该行为:
{
"extends": [
"config:base",
":disableDependencyDashboard"
],
"ignorePaths": [
"Dockerfile",
"package.json",
"pnpm-lock.yaml"
],
"assignees": [
"McPringle"
],
"reviewers": [
"McPringle"
],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch", "pin", "digest"],
"automerge": true
},
{
"matchDepTypes": ["devDependencies"],
"automerge": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
但翻新机器人不会合并次要更新。尽管如此,所有内容都以 PR 的形式出现,我必须手动合并。这是一个例子:
- <version>2.6.1</version>
+ <version>2.6.2</version>
Run Code Online (Sandbox Code Playgroud)
此补丁更新应该会自动合并。有人可以解释一下我的理解和做错了什么吗?在这里你可以找到我正在谈论的 GitHub 存储库,包括更新配置文件和 PR,我现在还没有合并它们: https: //github.com/komunumo/komunumo-server
我刚刚配置了翻新,它似乎有效。除了我一直收到以下消息。有没有一种方法可以管理 renovate 以自行运行 npm install ?那么我应该将哪个命令添加到我的renovate.json
文件中?
我尝试过"postUpdateOptions": ["npmDedupe"]
,postUpgradeTasks
但都没有成功。
npm 错误!
npm ci
仅当 package.json 和 package-lock.json 或 npm-shrinkwrap.json 同步时才能安装包。请先更新您的锁定文件,npm install
然后再继续。
现在要解决此错误,我必须签出我的 renovate 分支并手动运行 npm install。
我想阻止Renovate对某些依赖项进行重大升级,但仍允许对这些依赖项进行次要升级和补丁升级。使用ignoreDeps
完全排除它们,这不是最佳的。我还需要在一个 Gitlab 合并请求中获得每次运行的所有建议升级,因此使用单独的matchUpdateTypes
组不适合我的用例。
有没有办法实现我正在寻找的东西?
使用 Angular 14 的项目中的具体示例,Renovate 不应尝试升级到 15,但仍为我提供最新的 14.x 升级:
"@angular/router": "14.2.7", // what I have now
"@angular/router": "14.2.10", // what should be suggested
"@angular/router": "15.0.0", // what should be avoided
Run Code Online (Sandbox Code Playgroud)
我在所有存储库中的一般包规则如下所示:
"packageRules": [
{
"groupName": "all dependencies",
"groupSlug": "all",
"matchPackagePatterns": [
"*"
],
"matchUpdateTypes": [
"major",
"minor",
"patch"
]
}
],
Run Code Online (Sandbox Code Playgroud)
我在renovate.json
每个存储库的文件中指定要忽略的特定依赖项,如下所示:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
"ignoreDeps": [
"@angular/router"
]
}
Run Code Online (Sandbox Code Playgroud)
但这会阻止所有更新。我尝试过使用该架构,但这完全忽略了配置:
// BROKEN
{
"$schema": …
Run Code Online (Sandbox Code Playgroud) 我有一个存储库,可以在其中管理多个环境的 Terraformcode。例如我会有这些文件:
/terraform/dev/superapp/main.tf
/terraform/prod/superapp/main.tf
Run Code Online (Sandbox Code Playgroud)
在这些文件中,我定义了使用的提供程序、模块等。这些组件的版本在开发和生产上是相同的。
我在该存储库上启用了翻新,它几乎完美地工作。
但 renovate 将打开一个 PR,仅在一个 PR 中更新 dev 和 prod 中的 aws 提供程序或 eks-module 的版本。
但我希望为每个模块、提供者等提供单独的 PR,然后为开发和产品提供单独的 PR。
因此,我最终会得到四个关于 aws-provider 和 eks-module 的 PR。每个环境中的每个依赖项都有一个。我检查了 Renovate 的文档,但我无法真正找出哪个参数会触发这种行为,但我确信这必须是可能的。
任何帮助深表感谢。