这篇博客将介绍 GSoC 项目 GitHub Checks API Plugin 在一阶段的相关进展。

简单来说,GitHub Checks API 就是一套可高度定制化接受 CI 报告的接口。CI 工具可以通过该接口反馈信息给特定的 Pull Request,随后,用户便可以直接在 GitHub 的 UI 界面上直观的浏览 CI 报告。

更激动人心的是,它可以针对指定的代码行进行注释,这类似于开发者平时在代码审查时留下的评论。

同时,在 Jenkins 这边,Warnings Next Generation Plugin 能通过源代码视图实现类似的功能。

因此,通过使用 GitHub Checks API 将这些信息直接反馈给 GitHub 能使 Jenkins 对 GitHub 用户更加友好。

阶段一实现的相关特性

在过去的一个月里,我们团队的工作主要集中在 General Checks API 和 GitHub Checks API 的实现上。

1   General Checks API 

Part  one

尽管 General Checks API 是基于 GitHub Checks API 的语义实现的,我们仍然希望能提供这样的泛化接口为其他平台的相关概念做好准备,例如:GitLab 上的 Commit Status API。在今后,我们欢迎所有人贡献针对这些平台的相关实现。

2   GitHub Checks API 实现

Part  two

目前,我们对 GitHub Checks API 的支持工作已基本完成。除此以外,我们还实现了一个用于表明当前 Jenkins 构建状况的功能。在发布之后,通过调用我们的 API,Jenkins 的开发者们(特别是插件开发者们)能够为 GitHub Branch SCM 项目创建属于他们自己的 GitHub Checks。

例子:要创建一个如下图所示的 check run:

用户需要如下地调用我们的接口:

ChecksDetails details = new ChecksDetailsBuilder().withName("Jenkins").withStatus(ChecksStatus.COMPLETED).withDetailsURL("https://ci.jenkins.io").withStartedAt(LocalDateTime.now(ZoneOffset.UTC)).withCompletedAt(LocalDateTime.now(ZoneOffset.UTC)).withConclusion(ChecksConclusion.SUCCESS).withOutput(new ChecksOutputBuilder().withTitle("Jenkins Check").withSummary("# A Successful Build").withText("## 0 Failures").withAnnotations(Arrays.asList(new ChecksAnnotationBuilder().withPath("Jenkinsfile").withLine(1).withAnnotationLevel(ChecksAnnotationLevel.NOTICE).withMessage("say hello to Jenkins").withStartColumn(0).withEndColumn(20).withTitle("Hello Jenkins").withRawDetails("a simple echo command").build(),new ChecksAnnotationBuilder().withPath("Jenkinsfile").withLine(2).withAnnotationLevel(ChecksAnnotationLevel.WARNING).withMessage("say hello to GitHub Checks API").withStartColumn(0).withEndColumn(30).withTitle("Hello GitHub Checks API").withRawDetails("a simple echo command").build())).build()).withActions(Collections.singletonList(new ChecksAction("formatting", "format code", "#0"))).build();ChecksPublisher publisher = ChecksPublisherFactory.fromRun(run);
publisher.publish(details);

3  未来的工作

Part  three

我们的下一步计划是将该接口集成到 Warnings Next General Plugin 和 Code Coverage API Plugin 当中。在此之后,我们还会添加对流水线的支持:在创建 check run 时,用户可以直接在流水线中调用我们的接口而无需依赖其他插件的实现。

CI/CD 哪家强 - 主流开源 CI 工具对比

Jenkins CLI 命令行 v0.0.30

征集用户故事- Jenkins is the Way

Tekton 流水线发布首个官方 Beta 版本

Jenkins流水线与k8s的持续集成落地分享

使用 Prometheus 和 Grafana 监控 Linux 进程

GSoC: GitHub Checks API 项目第一阶段总结相关推荐

  1. GSoC: GitHub Checks API 项目第三阶段总结

    这篇文章将介绍 GitHub Checks API 项目在谷歌编程之夏第三阶段的相关工作. 在这个夏天的尾声,GitHub Checks API 项目迎来了它在 GSoC 的最后一段旅程.在这篇文章当 ...

  2. GitHub Checks API帮助应用实现进一步的持续集成

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ GitHub Checks API意在实现向持续集成工作流中添加代码检查,诸如对源代码文件做 ...

  3. (1-10总结)微信点餐项目-第一阶段总结

    1.该项目完成了第一阶段,对所有的API进行了分析和实现. 2.项目开始时说的技术只实现了springboot+jpa的数据库连接实现和resultFul风格接口实现前后端的数据连通. 3.此阶段项目 ...

  4. 团队项目第一阶段冲刺站立会议08

    一.站立会议信息 这几天很紧张,感觉不能按时完工了,但是,还是要一步一步往前走.站立会议照常进行,今天的会议内容依旧是最近最头疼的那块,貌似在前进的路上遇到了瓶颈,慢慢来吧.周四上课前争取完成第一阶段 ...

  5. 需求分析课程项目——第一阶段

    第一阶段 第一阶段要求 第一阶段成果 T-15 WT业务登记问题 (1)小组成员信息,爱好.特长 此处内容略 (2)综合实验的理解和期望的收获 综合实践活动课程是在教师指导下,学生自主进行的综合性学习 ...

  6. 团队项目第一阶段冲刺站立会议1(4月18日)

    今天是我们团队站立会议的第一天 昨天:上一次会议我们完成了燃尽图,索引卡,交代了任务的分工. 今天:到下次站立会议要完成的任务 ①准备搭建搭建了云服务器,对将来数据的上传和下载做准备. ②计划了每周的 ...

  7. 团队项目第一阶段冲刺站立会议11(4月28日)

    今天是冲刺的第十一天. 昨天: ①已经实现了下载功能与云服务器的对接工作. 今天: ①初步的模型已经具体完成,该有的功能也都有了,剩下的UI设计,美化界面做了个计划,有时间就继续美化. 期间遇到的问题 ...

  8. 团队项目第一阶段冲刺站立会议4(4月21日)

    今天是我们团队站立会议的第四天,但是和往常不一样,今天早上没有跑操,但是我们还是早起开展站立会议. 昨天: ①实现了登录页面,注册页面的跳转. ②找到一个可以讨论,可以连接网络的组队编程开会讨论的地方 ...

  9. 团队项目第一阶段冲刺站立会议04

    一.站立会议信息 今早利用前两节没课的时间匆匆的开了一个简短的站立会议,大致确定了今天的任务:重新确定软件的功能,重新设计软件的组成模块,再去图书馆找老师询问. 第四天了,计划并没有我们想象中的那么顺 ...

最新文章

  1. NAR:查询未培养病毒基因组的综合生态和进化框架IMG/VR v3
  2. 每个网页设计师应该知道的10条CSS规则
  3. ctrl+Enter 自动加上 .com 而不是 .com.cn
  4. µC/OS-II和µC/OS-III比较
  5. pytorch 常见报错
  6. MYSQL 如果把数据文件保存到其他磁盘里
  7. Oral certificate at 7TH INTERNATIONAL CONFERENCE ON CONTROL, AUTOMATION AND ROBOTICS (ICCAR)
  8. linux知识(一) 程序、进程与线程
  9. php 基类 是什么,PHP Model基类
  10. 【转】Linux C动态内存泄漏追踪方法
  11. ERP系统和CRM系统
  12. 【Pygame小游戏】确实会玩—教你如何在”吃豆豆“上完美躺赢……(收藏起来偷偷学)
  13. 32 任意项级数敛散性的判别法
  14. C语言阶段小项目(火车购票系统)
  15. 华为畅享10与10s有什么区别?哪个更好
  16. 连通块(信息学奥赛一本通 - T1335)
  17. 跳跃游戏 (动态规划剪枝/前缀和/滑动窗口/BFS剪枝)
  18. 遥感图像预处理与土地利用动态监测
  19. Ubuntu使用自带的Liboffice Draw去除PDF水印
  20. RGB和YCbCr颜色空间的转换及优化算法

热门文章

  1. 无穷小量究竟是否为零
  2. 工业机器人的自由度是什么?
  3. 品牌笔记本电脑启动BIOS按键
  4. Easyui datagrid detailview使用简介
  5. 计算机组成原理经典复习题集锦(附答案)
  6. 一个int类型到底占多少个字节?
  7. 视觉里程计4(SLAM十四讲ch7)-ICP
  8. Vue3的reactive函数
  9. 快速安装visual studio 2005 sp1补丁(转载)
  10. 欧拉公式推导(e^iπ+1=0)