CN111382988A - 一种针对开源项目的事件处理方法及装置 - Google Patents

一种针对开源项目的事件处理方法及装置 Download PDF

Info

Publication number
CN111382988A
CN111382988A CN201811618990.XA CN201811618990A CN111382988A CN 111382988 A CN111382988 A CN 111382988A CN 201811618990 A CN201811618990 A CN 201811618990A CN 111382988 A CN111382988 A CN 111382988A
Authority
CN
China
Prior art keywords
event
information
project
collaboration
comment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811618990.XA
Other languages
English (en)
Inventor
邹睿
才振功
孙宏亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201811618990.XA priority Critical patent/CN111382988A/zh
Publication of CN111382988A publication Critical patent/CN111382988A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开一种针对开源项目的事件处理方法,通过获得目标项目信息;根据所述目标项目信息,获得针对目标项目的持续集成事件信息;根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;向项目协作平台输出所述持续集成事件评论信息,及时通知项目开发人员。采用本申请的针对开源项目的事件处理方法,能够根据针对目标项目的不同事件生成对应的评论信息,数据化反馈项目情况,从而提高了项目开发的协作效率,避免了重复的操作。

Description

一种针对开源项目的事件处理方法及装置
技术领域
本申请涉及开源项目开发领域,具体涉及一种针对开源项目的事件处理方法、装置及机器人系统。另外涉及一种针对开源项目的事件处理的电子设备及存储设备。
背景技术
目前,基于项目协作平台Github上的开源项目在自动集成过程中往往面临着开发周期长、多人协作的特点。在传统的协作管理方式中,针对自动集成事件的处理工作往往是由人工来完成的,即使是完全相同的工作,也必须机械的反复执行,使得在重复的工作上耗费了大量的时间和精力,从而降低了工作效率。因此,现有的管理协作方式在效率、性能和业务上已经不能满足项目开发者的需求。
随着网络技术的发展,开源项目开发的周期和规模日趋加大,所带来的自动集成事件的处理工作的也越来越复杂性。在这种情况下,缺乏有效的协作工具无疑会给项目的推进带来障碍,严重降低项目开发的协作效率。
发明内容
本申请提供一种针对开源项目的事件处理方法,以解决现有技术中存在的项目开发协作方式效率低下,难以满足项目开发者需求的问题。本申请另外提供一种针对开源项目的事件处理装置、机器人系统、电子设备及存储设备。
本申请提供的针对开源项目的事件处理方法,包括:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
可选的,所述根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息,具体包括:
根据所述持续集成事件信息,判断所述持续集成事件的事件类型;
当所述持续集成事件为持续集成失败的事件时,生成表示所述目标项目持续集成失败的持续集成失败评论信息;
当所述持续集成事件为持续集成成功的事件时,生成表示所述目标项目持续集成成功的持续集成成功评论信息。
可选的,所述的针对开源项目的事件的处理方法,还包括:
根据所述目标项目信息,获得针对目标项目的协作事件信息;
根据所述协作事件信息,生成针对协作事件的协作事件评论信息;
向所述项目协作平台输出所述协作事件评论信息。
可选的,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为合并请求事件时,预测所述合并请求事件在所述目标项目上的预期运行结果,获得所述合并请求事件在所述目标项目上的预期运行结果;
判断所述预期运行结果是否满足所述目标项目需要,若是,则生成表示所述预期运行结果满足所述目标项目需要的评论信息,若否,则生成表示所述预期运行结果不满足所述目标项目需要的评论信息。
可选的,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为问题清单事件时,标识所述问题清单事件,获得针对所述问题清单事件的标识信息;
根据所述问题清单事件的标识信息,对所述问题清单事件进行分类,获得针对所述问题清单事件的分类信息;
根据所述针对问题清单事件的分类信息,生成表示所述问题清单事件的分类信息的评论信息。
可选的,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为审阅评论事件时,标识所述审阅评论事件,获得针对所述审阅评论事件的分类信息;
根据所述针对所述审阅评论事件的分类信息进行分类,生成表示所述审阅评论事件的分类信息的评论信息。
可选的,所述的针对开源项目的事件的处理方法,还包括:
根据所述表示所述审阅评论事件的分类信息的评论信息,判断是否重启持续集成服务,若是,则生成表示需要重启持续集成服务的评论信息。
可选的,所述的针对开源项目的事件的处理方法,还包括:
根据所述持续集成事件评论信息,生成针对持续集成事件评论信息的统计信息可视化文档。
可选的,所述的针对开源项目的事件的处理方法,还包括:
根据所述协作事件评论信息,生成针对协作事件评论信息的统计信息可视化文档。
可选的,所述的针对开源项目的事件的处理方法,还包括:
对所述预期运行结果进行检查分析,判断所述预期运行结果的异常信息;
根据所述预期运行结果的异常信息,生成表示所述合并请求事件在所述目标项目上的预期运行结果异常的评论信息。
可选的,所述的针对开源项目的事件的处理方法,还包括:
根据所述预期运行结果异常的评论信息,生成针对所述预期运行结果异常的评论信息的统计信息可视化文档。
相应的,本申请还提供一种针对开源项目的事件处理装置,包括:
应用层单元,用于获得目标项目信息;
第一持续集成事件处理单元,用于根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
第二持续集成事件处理单元,用于根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
第三持续集成事件处理单元,用于向项目协作平台输出所述持续集成事件评论信息。
可选的,所述第二持续集成事件处理单元具体用于:
根据所述持续集成事件信息,判断所述持续集成事件的事件类型;
当所述持续集成事件为持续集成失败的事件时,生成表示所述目标项目持续集成失败的持续集成失败评论信息;
当所述持续集成事件为持续集成成功的事件时,生成表示所述目标项目持续集成成功的持续集成成功评论信息。
可选的,所述的针对开源项目的事件的处理装置,还包括:
第一协作事件处理子单元,用于根据所述目标项目信息,获得针对目标项目的协作事件信息;
第二协作事件处理子单元,用于根据所述协作事件信息,生成针对协作事件的协作事件评论信息;
第三协作事件处理子单元,用于向所述项目协作平台输出所述协作事件评论信息。
可选的,所述第二协作事件处理子单元具体用于:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为合并请求事件时,预测所述合并请求事件在所述目标项目上的预期运行结果,获得所述合并请求事件在所述目标项目上的预期运行结果;
判断所述预期运行结果是否满足所述目标项目需要,若是,则生成表示所述预期运行结果满足所述目标项目需要的评论信息,若否,则生成表示所述预期运行结果不满足所述目标项目需要的评论信息。
可选的,所述第二协作事件处理子单元具体用于:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为问题清单事件时,标识所述问题清单事件,获得针对所述问题清单事件的标识信息;
根据所述问题清单事件的标识信息,对所述问题清单事件进行分类,获得针对所述问题清单事件的分类信息;
根据所述针对问题清单事件的分类信息,生成表示所述问题清单事件的分类信息的评论信息。
可选的,所述第二协作事件处理子单元具体用于:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为审阅评论事件时,标识所述审阅评论事件,获得针对所述审阅评论事件的分类信息;
根据所述针对所述审阅评论事件的分类信息进行分类,生成表示所述审阅评论事件的分类信息的评论信息。
可选的,所述第二协作事件处理子单元还用于,根据所述表示所述审阅评论事件的分类信息的评论信息,判断是否重启持续集成服务,若是,则生成表示需要重启持续集成服务的评论信息。
可选的,所述的针对开源项目的事件的处理装置,还包括:第一自动生成文档子单元;
所述第一自动生成文档子单元,用于根据所述持续集成事件评论信息,生成针对持续集成事件评论信息的统计信息可视化文档。
可选的,所述的针对开源项目的事件的处理装置,还包括:第二自动生成文档子单元;
所述第二自动生成文档子单元,用于根据所述协作事件评论信息,生成针对协作事件评论信息的统计信息可视化文档。
可选的,所述的针对开源项目的事件的处理装置,还包括:异常信息检查单元;
所述异常信息检查单元用于:
对所述预期运行结果进行检查分析,判断所述预期运行结果的异常信息;
根据所述预期运行结果的异常信息,生成表示所述合并请求事件在所述目标项目上的预期运行结果异常的评论信息。
可选的,所述异常信息检查单元还用于:第三自动生成文档子单元;
所述第三自动生成文档子单元,用于根据所述预期运行结果异常的评论信息,生成针对所述预期运行结果异常的评论信息的统计信息可视化文档。
相应的,本申请还提供一种针对开源项目的事件处理的机器人系统,其特征在于,包括:上述任意一项所述的针对开源项目的事件的处理装置。
相应的,本申请还提供一种电子设备,包括:
处理器;以及
存储器,用于存储针对开源项目的事件处理方法的程序,该设备通电并通过所述处理器运行该针对开源项目的事件处理方法的程序后,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
相应的,本申请还提供一种存储设备,存储有针对开源项目的事件处理方法的程序,该程序被处理器运行,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
与现有技术相比,本申请具有以下优点:
采用本申请的针对开源项目的事件处理方法,能够根据针对目标项目的不同事件生成对应的评论信息,数据化反馈项目情况,从而提高了项目开发的协作效率,避免了重复的操作。
附图说明
图1为本申请实施例提供的一种针对开源项目的事件处理方法的流程图;
图2为本申请实施例提供的一种针对开源项目的事件处理装置的示意图;
图3为本申请实施例提供的一种针对开源项目的事件处理的电子设备示意图;
图4为本申请实施例提供的一种针对开源项目的事件处理装置的运行流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
下面基于本申请提供的针对开源项目的事件处理方法,对其实施例进行详细描述。请参考图1所示,其为本申请实施例提供的一种针对开源项目的事件处理方法的流程图。
本申请实施例提供的针对开源项目的事件处理方法具体包括以下步骤:
步骤S101,获得目标项目信息。
本发明提供的针对开源项目的事件处理方法可以运行在远程服务器上,根据不同类型的事件调用相应的处理器执行对应的操作,进而帮助开发人员完成目标项目中部分功能的协作处理工作。
本发明所述的实施例中,所述的目标项目信息主要是指基于项目协作平台Github和持续集成平台CI的待处理的开源项目的信息。其中,项目协作平台Github是基于web开源的仓库,面向开源项目及私有项目的托管平台,为项目开发者提供了一个协作开发的环境。目标项目开发者可以通过项目协作平台Github实现社交化编程。在利用项目协作平台Github对目标项目进行开发时,首先需要在项目协作平台Github上创建相应的仓库,其他开发者可以通过项目协作平台Github关注或收藏该目标项目,并且可以克隆该目标项目到本地进行修改和更新,进而使得其他开发者能够在不同的时间和区域实现目标项目代码的协同合作。持续集成平台CI至少包括Travis CI和Circle CI两种。Travis CI和Circle CI是为项目协作平台Github量身打造的自动集成环境,可以用于进行编译、测试、发布和部署等一系列工作,从而实现目标项目持续自动集成的目的。如果我们的目标项目托管在项目协作平台Github上,可以使用Travis CI或Circle CI做自动集成,从而提高目标项目的开发的质量和效率。
步骤S102,根据所述目标项目信息,获得针对目标项目的持续集成事件信息。
基于持续集成平台CI的目标项目在持续集成过程中通常会发生不同的持续集成事件。在本发明实施例中,所述的持续集成事件是指持续集成平台CI只要检测到运行在项目协作平台Github上的目标项目有代码更新,就可以自动运行构建或测试并反馈运行结果的处理事件,从而不断集成目标项目代码中的改动信息。所述的针对目标项目的持续集成事件至少包括在持续集成过程中可能存在的持续集成失败的事件或持续集成成功的事件。
为了有效提高目标项目的开发效率,本发明公开的技术方案可以针对不同类型的持续集成事件在项目协作平台Github上生成相应的评论,并通过项目协作平台Github的邮件推送机制及时通知项目开发者。需要说明的是,持续集成平台CI通过绑定项目协作平台Github上的目标项目,只要检测到有新的代码就会自动抓取,将新的代码集成到目标项目中,从而完成持续集成服务。
步骤S103,根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息。
在本发明实施例中,可以根据获得的持续集成事件信息,在项目协作平台Github上生成针对持续集成事件的持续集成事件评论信息。当检测到目标项目下有评论信息生成时,通过项目协作平台Github自身存在的邮件推送机制,自动向该目标项目的开发者发送邮件进行通知。需要说明的是,在根据持续集成事件信息生成相应的持续集成事件评论信息之前,首先需要根据持续集成事件信息,判断持续集成事件的事件类型。当持续集成事件为持续集成失败的事件时,生成表示所述目标项目持续集成失败的持续集成失败评论信息。当持续集成事件为持续集成成功的事件时,生成表示目标项目持续集成成功的持续集成成功评论信息。
步骤S104,向项目协作平台输出所述持续集成事件评论信息。
在本发明实施例中,通过输出持续集成事件评论信息可以对目标项目的进展情况进行记录和总结,进而生成针对持续集成事件评论信息的可视化文档。所述可视化文档具体包括统计目标项目的代码改动信息以及其他分支信息。所述的其他分支信息分为两类:一是固定的信息包括目标项目仓库所有者的名称、目标项目仓库的名称、目标项目分支仓库的名称等;二是不固定的信息包括合并请求pull request信息的作者名称、合并请求信息pull request的状态和CI自动集成情况等。
需要说明的是,在本发明公开的技术方案不仅能够针对目标项目开发过程中的持续集成事件进行协作处理,还可以根据目标项目信息,获得针对目标项目的协作事件信息。该协作事件信息可以根据协作事件类型的不同,分为针对目标项目开发的问题清单issue事件信息、合并请求pull request事件信息和审阅评论comment事件信息三类。
当合并请求pull request事件发生的时候,预测合并请求事件在目标项目上的预期运行结果,获得合并请求事件在目标项目上的预期运行结果信息。判断预期运行结果是否满足项目开发人员对目标项目开发需要。若是,则在项目协作平台Github生成表示预期运行结果满足目标项目需要的评论信息,通过项目协作平台Github邮件推送机制,向项目开发者发送相应操作通知。若否,则在项目协作平台Github生成表示预期运行结果不满足目标项目需要的评论信息,通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。该项目开发者可以是指目标项目开发者,也可是发起合并请求pull request的项目开发者。在接收到通知后可以对合并请求pull request中的代码信息进行修改。
当问题清单issue事件发生的时候,可以触发贴标签和检查标题及内容的操作。具体的,当协作事件为问题清单事件时,可以根据预先设置的关键字信息,检测问题清单中是否有相应的关键字触及到上述预先设置的关键字。若是,标识该问题清单事件,获得针对问题清单事件的标识信息,根据问题清单事件的标识信息,对问题清单事件进行分类,获得针对问题清单事件的分类信息,从而方便目标项目开发者或用户通过过滤器filter查询相应的分类条目,获取问题清单信息。另外,可以根据针对问题清单事件的分类信息,在项目协作平台Github上生成表示问题清单事件的分类信息的评论信息。通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。同时,根据表示问题清单事件的分类信息的评论信息生成统计信息的可视化文档,提供给项目开发者追溯和查看。
当审阅评论comment事件发生的时候,可以触发更新标签和在特定情况下重启CI的操作。具体的,当协作事件为审阅评论事件时,可以根据预先设置的关键字信息,检测审阅评论中是否有相应的关键字触及到上述预先设置的关键字时。若是,则标识审阅评论事件,获得针对审阅评论事件的分类信息,根据获得的针对审阅评论事件的分类信息进行分类,在项目协作平台Github生成表示审阅评论事件的分类信息的评论信息。通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。另外,根据表示审阅评论事件的分类信息的评论信息生成统计信息的可视化文档,供项目开发者追溯和查看。还可以根据表示所述审阅评论事件的分类信息的评论信息,判断是否重启持续集成服务,若是,则生成表示需要重启持续集成服务的评论信息。具体的,通过预先设置关键字信息,当该评论信息中检测到存在相应的关键字时,就可以触发与目标项目绑定的自动集成平台CI进行重启。因为,有时目标项目开发过程中自动集成失败可能不是合并请求pull request事件中的代码存在问题,而是目标项目中的代码存在问题,一旦目标项目中的代码修复了,通过自动重启自动集成平台CI,来重新测试合并请求pull request事件中的代码,从而避免项目开发人员手动重启,节省了项目开发者的时间和精力。同时,通过项目协作平台Github邮件推送机制,根据表示需要重启持续集成服务的评论信息,向目标项目开发者发送邮件进行通知,告知目标项目开发者重启自动集成平台CI的事件。
需要说明的是,上述合并请求pull request事件,也会执行如问题清单issue事件和审阅评论comment事件相同的触发贴标签、检查标题及内容等操作。具体过程请参照问题清单issue事件和审阅评论comment事件的相关操作,在此不再赘述。
当协作事件是合并请求pull request事件时,可能存在合并请求pull request事件中包含的改动代码信息与目标项目中存在的代码信息之间存在冲突或滞后的异常情况。本发明可以对合并请求pull request事件中包含的改动代码在目标项目中的预期运行结果进行检查分析,判断预期运行结果的是否存在异常信息。若存在,则根据预期运行结果的异常信息,在项目协作平台Github生成表示所述合并请求事件在目标项目上的预期运行结果异常的评论信息。通过项目协作平台Github邮件推送机制,根据表示需要重启持续集成服务的评论信息,向项目开发者发送邮件进行通知。同时,根据预期运行结果的异常信息,生成针对所述合并请求事件在所述目标项目上的预期运行结果异常的可视化文档,提供给项目开发者进行查看或追溯问题。
采用本申请的针对开源项目的事件处理方法,能够根据针对目标项目的不同事件生成对应的统计文档,数据化反馈项目情况,从而提高了项目开发的协作效率,避免了重复的操作。
与上述提供的针对开源项目的事件处理方法相对应,本申请还提供一种针对开源项目的事件处理装置。由于本装置实施例相似于上述方法实施例,所以描述的比较简单,相关之处请参见上述方法实施例部分说明即可,下面描述装置实施例仅是示意性的。请参考图2和4所示,其分别为本申请实施例提供的一种针对开源项目的事件处理装置的示意图和运行流程图。
本申请实施例所述的针对开源项目的事件处理装置包括如下部分:
应用层单元201,用于获得目标项目信息。
第一持续集成事件处理子单元202,用于根据所述目标项目信息,获得针对目标项目的持续集成事件信息。
为了有效提高目标项目的开发效率,本发明公开的技术方案可以针对不同类型的持续集成事件在项目协作平台Github上生成相应的评论,并通过项目协作平台Github的邮件推送机制及时通知项目开发者。需要说明的是,持续集成平台CI通过绑定项目协作平台Github上的目标项目,只要检测到有新的代码就会自动抓取,将新的代码集成到目标项目中,从而完成持续集成服务。
第二持续集成事件处理子单元203,用于根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息。
在本发明实施例中,可以根据获得的持续集成事件信息,在项目协作平台Github上生成针对持续集成事件的持续集成事件评论信息。当检测到目标项目下有评论信息生成时,通过项目协作平台Github自身存在的邮件推送机制,自动向该目标项目的开发者发送邮件进行通知。需要说明的是,在根据持续集成事件信息生成相应的持续集成事件评论信息之前,首先需要根据持续集成事件信息,判断持续集成事件的事件类型。当持续集成事件为持续集成失败的事件时,生成表示所述目标项目持续集成失败的持续集成失败评论信息。当持续集成事件为持续集成成功的事件时,生成表示目标项目持续集成成功的持续集成成功评论信息。
第三持续集成事件处理子单元204,用于向项目协作平台输出所述持续集成事件评论信息。
在本发明实施例中,通过输出持续集成事件评论信息可以对目标项目的进展情况进行记录和总结,进而生成针对持续集成事件评论信息的可视化文档。所述可视化文档具体包括统计目标项目的代码改动信息以及其他分支信息。所述的其他分支信息分为两类:一是固定的信息包括目标项目仓库所有者的名称、目标项目仓库的名称、目标项目分支仓库的名称等;二是不固定的信息包括合并请求pull request信息的作者名称、合并请求信息pull request的状态和CI自动集成情况等。
需要说明的是,在本发明公开的技术方案不仅能够针对目标项目开发过程中的持续集成事件进行协作处理,还可以根据目标项目信息,获得针对目标项目的协作事件信息。该协作事件信息可以根据协作事件类型的不同,分为针对目标项目开发的问题清单issue事件信息、合并请求pull request事件信息和审阅评论comment事件信息三类。
当合并请求pull request事件发生的时候,预测合并请求事件在目标项目上的预期运行结果,获得合并请求事件在目标项目上的预期运行结果信息。判断预期运行结果是否满足项目开发人员对目标项目开发需要。若是,则在项目协作平台Github生成表示预期运行结果满足目标项目需要的评论信息,通过项目协作平台Github邮件推送机制,向项目开发者发送相应操作通知。若否,则在项目协作平台Github生成表示预期运行结果不满足目标项目需要的评论信息,通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。该项目开发者可以是指目标项目开发者,也可是发起合并请求pull request的项目开发者。在接收到通知后可以对合并请求pull request中的代码信息进行修改。
当问题清单issue事件发生的时候,可以触发贴标签和检查标题及内容的操作。具体的,当协作事件为问题清单事件时,可以根据预先设置的关键字信息,检测问题清单中是否有相应的关键字触及到上述预先设置的关键字。若是,标识该问题清单事件,获得针对问题清单事件的标识信息,根据问题清单事件的标识信息,对问题清单事件进行分类,获得针对问题清单事件的分类信息,从而方便目标项目开发者或用户通过过滤器filter查询相应的分类条目,获取问题清单信息。另外,可以根据针对问题清单事件的分类信息,在项目协作平台Github上生成表示问题清单事件的分类信息的评论信息。通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。同时,根据表示问题清单事件的分类信息的评论信息生成统计信息的可视化文档,提供给项目开发者追溯和查看。
当审阅评论comment事件发生的时候,可以触发更新标签和在特定情况下重启CI的操作。具体的,当协作事件为审阅评论事件时,可以根据预先设置的关键字信息,检测审阅评论中是否有相应的关键字触及到上述预先设置的关键字时。若是,则标识审阅评论事件,获得针对审阅评论事件的分类信息,根据获得的针对审阅评论事件的分类信息进行分类,在项目协作平台Github生成表示审阅评论事件的分类信息的评论信息。通过项目协作平台Github邮件推送机制,向项目开发者发送相应通知。另外,根据表示审阅评论事件的分类信息的评论信息生成统计信息的可视化文档,供项目开发者追溯和查看。还可以根据表示所述审阅评论事件的分类信息的评论信息,判断是否重启持续集成服务,若是,则生成表示需要重启持续集成服务的评论信息。具体的,通过预先设置关键字信息,当该评论信息中检测到存在相应的关键字时,就可以触发与目标项目绑定的自动集成平台CI进行重启。因为,有时目标项目开发过程中自动集成失败可能不是合并请求pull request事件中的代码存在问题,而是目标项目中的代码存在问题,一旦目标项目中的代码修复了,通过自动重启自动集成平台CI,来重新测试合并请求pull request事件中的代码,从而避免项目开发人员手动重启,节省了项目开发者的时间和精力。同时,通过项目协作平台Github邮件推送机制,根据表示需要重启持续集成服务的评论信息,向目标项目开发者发送邮件进行通知,告知目标项目开发者重启自动集成平台CI的事件。
需要说明的是,上述合并请求pull request事件,也会执行如问题清单issue事件和审阅评论comment事件相同的触发贴标签、检查标题及内容等操作。具体过程请参照问题清单issue事件和审阅评论comment事件的相关操作,在此不再赘述。
当协作事件是合并请求pull request事件时,可能存在合并请求pull request事件中包含的改动代码信息与目标项目中存在的代码信息之间存在冲突或滞后的异常情况。本发明可以对合并请求pull request事件中包含的改动代码在目标项目中的预期运行结果进行检查分析,判断预期运行结果的是否存在异常信息。若存在,则根据预期运行结果的异常信息,在项目协作平台Github生成表示所述合并请求事件在目标项目上的预期运行结果异常的评论信息。通过项目协作平台Github邮件推送机制,根据表示需要重启持续集成服务的评论信息,向项目开发者发送邮件进行通知。同时,根据预期运行结果的异常信息,生成针对所述合并请求事件在所述目标项目上的预期运行结果异常的可视化文档,提供给项目开发者进行查看或追溯问题。
采用本申请的针对开源项目的事件处理装置,能够根据针对目标项目的不同事件生成对应的统计文档,数据化反馈项目情况,从而提高了项目开发的协作效率,避免了重复的操作。
与上述提供的一种针对开源项目的事件处理方法相对应的,本申请实施例还提供一种针对开源项目的事件处理的电子设备,请参见图3,其为本申请实施例提供的一种针对开源项目的事件处理的电子设备示意图。
本申请实施例所述的针对开源项目的事件处理的电子设备包括如下部分:
处理器301;以及
存储器302,用于存储针对开源项目的事件处理方法的程序,该设备通电并通过所述处理器运行该针对开源项目的事件处理方法的程序后,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
需要说明的是,对于本申请实施例提供的一种针对开源项目的事件处理的电子设备的详细描述,可以参考对本申请实施例提供的一种针对开源项目的事件处理方法的相关描述,这里不再赘述。
与上述提供的一种针对开源项目的事件处理方法相对应的,本申请实施例还提供一种针对开源项目的事件处理的存储设备。
本申请实施例所述的针对开源项目的事件处理的存储设备包括如下部分:存储有针对开源项目的事件处理方法的程序,该程序被处理器运行,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
需要说明的是,对于本申请实施例提供的一种针对开源项目的事件处理的存储设备的详细描述,可以参考对本申请实施例提供的一种针对开源项目的事件处理方法实施例的相关描述,这里不再赘述。
与上述针对开源项目的事件处理装置相对应,本申请还提供一种针对开源项目的事件处理机器人系统。由于本系统实施例相似于上述针对开源项目的事件处理装置的实施例,在此描述的比较简单,相关之处请参见上述装置实施例部分说明即可。
在本发明提供的实施例中,所述的机器人系统可以运行在远程服务器上,针对目标项目开发过程中产生的不同事件调用不同的处理器来触发对于不同事件的协作处理操作。所述的机器人系统主要包括四个功能模块:对于合并请求pull request事件、问题清单issue事件和审阅评论comment事件的处理模块,对于自动集成平台CI上的持续自动集成事件的处理模块,检查pull request中的代码与目标项目中代码的冲突和滞后情况的处理模块以及自动生成每周的可视化项目统计文档的处理模块。
举例而言,首先在远程服务器上启动机器人系统,为机器人系统指定待协作的目标项目的名称,通过ping方法检测该项目是否在Github上存在,通过定时器实现对每周项目进展的总结,统计每周合并的提交中对feature的改动,并基于改动更新项目统计文档。通过轮询和在Github上设定webhook notification推送通知这两种方式,让机器人系统能接收到分支上新的事件的发生情况并执行一系列的协作任务。其中,webhooknotification是一种便捷的事件推送机制,能帮助远程服务器获取事件通知的服务形式。另外,通过在配置文件里指定好信息发送的目的地,接收通知不仅可以是服务器,也可以是邮箱等其它地址。其中,机器人系统通过Github提供的API获取代码改动信息和分支信息,可大致分为两类:一是固定的信息包括目标项目的仓库所有者的名称、目标项目的仓库的名称、目标项目的分支的名称等;二是不固定的信息包括合并请求pull request的作者名称、合并请求pull request的状态和自动集成平台CI上持续自动集成情况等。在接收通知前,预先建立相关的应用句柄,并且能够将通知分发到正确的应用句柄。分支上不同的事件被触发时,发送的事件通知会转发到部署机器人系统的服务器的对应用句柄。在协作项目的配置文件中,也会指定相应的服务器地址和端口号,这样就能确保数据从发出到接收的路径正确。另外,针对不同的事件,触发不同的处理器进行处理,以独立携程的形式独立执行,从而提高该机器人系统的工作效率。即使某个功能模块出现了故障,暂时停止工作,也不会影响其它模块的正常运行。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (15)

1.一种针对开源项目的事件处理方法,其特征在于,包括:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
2.根据权利要求1所述的针对开源项目的事件处理方法,其特征在于,所述根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息,具体包括:
根据所述持续集成事件信息,判断所述持续集成事件的事件类型;
当所述持续集成事件为持续集成失败的事件时,生成表示所述目标项目持续集成失败的持续集成失败评论信息;
当所述持续集成事件为持续集成成功的事件时,生成表示所述目标项目持续集成成功的持续集成成功评论信息。
3.根据权利要求1所述的针对开源项目的事件处理方法,其特征在于,还包括:
根据所述目标项目信息,获得针对目标项目的协作事件信息;
根据所述协作事件信息,生成针对协作事件的协作事件评论信息;
向所述项目协作平台输出所述协作事件评论信息。
4.根据权利要求3所述的针对开源项目的事件处理方法,其特征在于,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为合并请求事件时,预测所述合并请求事件在所述目标项目上的预期运行结果,获得所述合并请求事件在所述目标项目上的预期运行结果;
判断所述预期运行结果是否满足所述目标项目需要,若是,则生成表示所述预期运行结果满足所述目标项目需要的评论信息,若否,则生成表示所述预期运行结果不满足所述目标项目需要的评论信息。
5.根据权利要求3所述的针对开源项目的事件处理方法,其特征在于,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为问题清单事件时,标识所述问题清单事件,获得针对所述问题清单事件的标识信息;
根据所述问题清单事件的标识信息,对所述问题清单事件进行分类,获得针对所述问题清单事件的分类信息;
根据所述针对问题清单事件的分类信息,生成表示所述问题清单事件的分类信息的评论信息。
6.根据权利要求3所述的针对开源项目的事件处理方法,其特征在于,所述根据所述协作事件信息,生成针对协作事件的协作事件评论信息,具体包括:
根据所述协作事件信息,判断所述协作事件的事件类型;
当所述协作事件为审阅评论事件时,标识所述审阅评论事件,获得针对所述审阅评论事件的分类信息;
根据所述针对所述审阅评论事件的分类信息进行分类,生成表示所述审阅评论事件的分类信息的评论信息。
7.根据权利要求6所述的针对开源项目的事件处理方法,其特征在于,还包括:
根据所述表示所述审阅评论事件的分类信息的评论信息,判断是否重启持续集成服务,若是,则生成表示需要重启持续集成服务的评论信息。
8.根据权利要求1所述的针对开源项目的事件处理方法,其特征在于,还包括:
根据所述持续集成事件评论信息,生成针对持续集成事件评论信息的统计信息可视化文档。
9.根据权利要求3所述的针对开源项目的事件处理方法,其特征在于,还包括:
根据所述协作事件评论信息,生成针对协作事件评论信息的统计信息可视化文档。
10.根据权利要求4所述的针对开源项目的事件处理方法,其特征在于,还包括:
对所述预期运行结果进行检查分析,判断所述预期运行结果的异常信息;
根据所述预期运行结果的异常信息,生成表示所述合并请求事件在所述目标项目上的预期运行结果异常的评论信息。
11.根据权利要求10所述的针对开源项目的事件处理方法,其特征在于,还包括:
根据所述预期运行结果异常的评论信息,生成针对所述预期运行结果异常的评论信息的统计信息可视化文档。
12.一种针对开源项目的事件处理装置,其特征在于,包括:
应用层单元,用于获得目标项目信息;
第一持续集成事件处理子单元,用于根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
第二持续集成事件处理子单元,用于根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
第三持续集成事件处理子单元,用于向项目协作平台输出所述持续集成事件评论信息。
13.一种针对开源项目的事件处理的机器人系统,其特征在于,包括:上述权利要求12所述的针对开源项目的事件处理装置。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储针对开源项目的事件处理方法的程序,该设备通电并通过所述处理器运行该针对开源项目的事件处理方法的程序后,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
15.一种存储设备,其特征在于,存储有针对开源项目的事件处理方法的程序,该程序被处理器运行,执行下述步骤:
获得目标项目信息;
根据所述目标项目信息,获得针对目标项目的持续集成事件信息;
根据所述持续集成事件信息,生成针对持续集成事件的持续集成事件评论信息;
向项目协作平台输出所述持续集成事件评论信息。
CN201811618990.XA 2018-12-28 2018-12-28 一种针对开源项目的事件处理方法及装置 Pending CN111382988A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811618990.XA CN111382988A (zh) 2018-12-28 2018-12-28 一种针对开源项目的事件处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811618990.XA CN111382988A (zh) 2018-12-28 2018-12-28 一种针对开源项目的事件处理方法及装置

Publications (1)

Publication Number Publication Date
CN111382988A true CN111382988A (zh) 2020-07-07

Family

ID=71218081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811618990.XA Pending CN111382988A (zh) 2018-12-28 2018-12-28 一种针对开源项目的事件处理方法及装置

Country Status (1)

Country Link
CN (1) CN111382988A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114693482A (zh) * 2022-04-14 2022-07-01 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423960A (zh) * 2013-09-10 2015-03-18 阿里巴巴集团控股有限公司 一种项目持续集成的方法及系统
CN105739968A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 基于分布式版本控制系统Git的更新内容的评审方法和装置
CN105955749A (zh) * 2016-05-10 2016-09-21 北京启明星辰信息安全技术有限公司 软件项目的持续集成方法和装置
CN106897226A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种持续集成测试的方法以及装置
CN107291902A (zh) * 2017-06-23 2017-10-24 中国人民解放军国防科学技术大学 一种基于混合分类技术的大众贡献审阅自动标注方法
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423960A (zh) * 2013-09-10 2015-03-18 阿里巴巴集团控股有限公司 一种项目持续集成的方法及系统
CN105739968A (zh) * 2016-01-20 2016-07-06 北京京东尚科信息技术有限公司 基于分布式版本控制系统Git的更新内容的评审方法和装置
CN105955749A (zh) * 2016-05-10 2016-09-21 北京启明星辰信息安全技术有限公司 软件项目的持续集成方法和装置
CN106897226A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种持续集成测试的方法以及装置
CN107291902A (zh) * 2017-06-23 2017-10-24 中国人民解放军国防科学技术大学 一种基于混合分类技术的大众贡献审阅自动标注方法
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114693482A (zh) * 2022-04-14 2022-07-01 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置
CN114693482B (zh) * 2022-04-14 2024-04-16 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置

Similar Documents

Publication Publication Date Title
CN109284269B (zh) 异常日志分析方法、装置、存储介质及服务器
US8762929B2 (en) System and method for exclusion of inconsistent objects from lifecycle management processes
CN106844136B (zh) 一种程序崩溃信息的收集方法及系统
US8365185B2 (en) Preventing execution of processes responsive to changes in the environment
US20120159443A1 (en) System and method for reducing test effort by object risk analysis
US8954579B2 (en) Transaction-level health monitoring of online services
US20130227590A1 (en) Managing and optimizing workflows among computer applications
US20080301486A1 (en) Customization conflict detection and resolution
US20160274997A1 (en) End user monitoring to automate issue tracking
US11061669B2 (en) Software development tool integration and monitoring
US20190116178A1 (en) Application error fingerprinting
CN111610989A (zh) 一种面向离线容器云环境的应用发布/更新方法及系统
US11294746B2 (en) Extracting moving image data from an error log included in an operational log of a terminal
CN110063042A (zh) 一种数据库故障的响应方法及其终端
US8489938B2 (en) Diagnostic data capture in a computing environment
CN102929732B (zh) 应用程序调用文件的方法和装置及客户端设备
CN102929733B (zh) 一种错误文件处理方法、装置和客户端设备
JP6238221B2 (ja) ソフトウェアの実行を監視する装置、方法およびプログラム
CN111382988A (zh) 一种针对开源项目的事件处理方法及装置
CN112416762B (zh) Api测试方法及装置、设备、计算机可读存储介质
CN107451056B (zh) 监听接口测试结果的方法及装置
US20060271771A1 (en) Exception tagging
US20150378799A1 (en) Automatic memory leak detection
CN115525568A (zh) 代码覆盖率的巡检方法、装置、计算机设备及存储介质
JP2016057658A (ja) 障害情報管理システムおよび障害情報管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination