由于公司的依赖升级总是等着一段时间直接全量扫描依赖,每次都是一大堆依赖让我们手动升级,工作量都特别很大,而且很容易升漏。所以这里考虑引入 Renovate 主动出击,自动化依赖的升级。
常用链接:
配置
安装很简单,我是使用的 docker-compose 的方式安装的,这里主要讲一下配置。
使用 SSH 克隆
要使用 ssh, 需要把 gitUrl 设置为 ssh,换成环境变量就是 RENOVATE_GIT_URL。换完后需要配置 ssh,这里直接用网上的教程就可以了,需要额外注意的是需要把用户的 .ssh 目录映射到容器里面,以 root 用户为例:
volumes:
- /root/.ssh:/root/.ssh:ro
yaml
实际在使用时会有一个问题: Renovate 在克隆时会使用 root@your.gitlab.com,这里的用户使用的是 root 用户,很显然这样是克隆不了的,我们需要换成 git 用户才行。
这里需要修改启动命令:
/bin/sh -c 'git config --global url."ssh://git".insteadOf "ssh://root" && ./node_opts_exec.sh node_default src/community.js'
bash
这里前面的 git 命令可以将 ssh://root 替换为 ssh://git,这样我们就可以克隆项目了。
关于后面的命令,是从 docker inspect 查看镜像的启动命令查到的,照着填上去就可以了。
过滤指定项目
要想过滤指定的项目,例如只使用 myApp 组下的仓库,需要将环境变量 MEND_RNV_AUTODISCOVER_FILTER 的值设置为 myApp/*.
为什么会说这个呢?是因为在官方的文档中没有写这个!这个是在 Github 的文档中找到的:configuration-options.md。
通过 API 触发任务
要想开启 API 功能,需要提供如下的配置:
MEND_RNV_ADMIN_API_ENABLED=true MEND_RNV_SERVER_API_SECRET=<your secret>env
之后在认证时,带上请求头即可:
Authorization: <your secret>plaintext
这里调用 POST /api/job/add 接口就可以手动触发同步任务,调用时需要提供具体的仓库。