自从去年用上了 Jenkins 进行 CI/CD 之后,工作效率高了不少,摸鱼的时间更多了。不过 Jenkins 好是好,但在功夫网的影响下,插件就是经常更新不成功的,就像下面这样子:
查了不少资料,绝大部分都说把升级站点改了就行
然而并没有什么卵用,只是获取插件列表从这个地方获取而已,安装/更新插件的时候该炸还是得炸。
作为一个有代码洁癖的人,看着有插件更新不了那感觉就像有屎拉不出的难受。于是乎这几个月以来一直是通过上面图中的手动上传插件来进行更新的。可是效率实在是低,一两个插件还好,有时候一堆插件有更新,那一个个上传是真的烦。
最近几天又相对闲了点,察觉到 Jenkins 是有个 REST API 的,那么能不能通过程序化来解决问题呢。尝试了下,算是有个比较满意的解决方案了。
首先,要用 Jenkins REST API 是需要权限的,并不是说随便来个人都可以调用。Jenkins REST API 是通过 token 进行验证的。默认是没有 token 的,需要手动添加。
登录 Jenkins 管理面板,进入管理用户
然后选择一个用户,点击左侧设置,然后添加 token 并且用你的小本本记录下来
这样就为这个用户添加了一个 REST API 的 token 了,后续调用 REST API 带上这个 token 就是了
以 C# 的 HttpClient 为例:
var httpClient = new HttpClient(); httpClient.SetBasicAuthentication("username", "apiToken");