JetBrains的YouTrack团队在这里。我们有个好消息-从YouTrack 2020.3开始,任务不仅显示与任务相关的提交,而且还显示拉取请求。在今天的帖子中,我们将告诉您它的含义,原因以及它如何使开发过程更高效,更易理解,并在最新版的YouTrack中展示其余的创新。

有关详细信息,欢迎访问该帖子。
什么是拉取请求?
在许多开发模型模型中,在项目上进行协作的过程是这样的:您从源代码管理复制项目,在本地进行更改,然后向项目所有者发送请求以批准您的更改并将它们包含在公共项目代码库中。这样的请求称为拉取请求(或合并请求,具体取决于版本控制系统)。
粗略地说,拉取请求是一种告诉存储库所有者或您的团队您在项目上所做的事情并建议您将所做的更改包括在一个常规开发分支中的方法。存储库所有者(或将进行代码审查的人员)可以接受更改(合并拉取请求),也可以拒绝它-例如,如果更改与项目作者的愿景相矛盾,或者在代码审查过程中他们决定需要改进代码。
在开源项目中,通常存在对拉取请求的要求,没有这些要求,拉取请求将不被接受:例如,我们来自Kotlin团队的同事请开发人员确保拉取请求的描述包含指向YouTrack中相应任务的链接,以便拉取请求中的更改仅特定于指定的任务,并且新代码正在运行,正确执行并受测试覆盖。
为什么要在跟踪器中拉出请求?
创建和接受/拒绝请求请求与更改状态或链接相应的提交一样,是任务生命周期中的重要步骤。所有这些步骤都向所有感兴趣的观察者(例如,一个开源项目的社区或团队的项目经理)显示了任务的进度。例如,如果由于拒绝某个拉取请求而导致任务未关闭,则此信息必须反映在任务历史记录中-包括用于追溯目的,当您需要了解为何将任务长时间保持打开状态时。这种机制使开发过程更加透明,并允许您逐步跟踪任务的生命周期,而不会遗漏重要事件。
查看问题中的拉取请求
回到YouTrack,从YouTrack 2020.3开始,开发人员将能够在提交旁边的任务中看到来自GitHub,GitLab,BitBucket,Gogs和Gitea的拉取请求。为了使拉取请求及其描述,更新的文件数和有关作者的信息出现在任务中,您需要在拉取请求的名称中提及相应的任务(所有内容与提交完全相同)。
此外,在接受或拒绝请求请求之后,YouTrack会将事件与事件作者和请求请求的状态一起包括在任务的活动流中。事实证明,任务更改源将显示拉取请求的整个生命周期-创建请求和最终决定(拒绝或包含在代码库中)。

自动化
我们热爱并积极使用自动化,因此我们不能错过在自动化脚本中使用来自版本控制系统的事件的机会。现在,您可以在添加拉取请求或提交时启动YouTrack工作流程。此外,工作流现在可以访问提交和提取请求的属性,例如作者姓名,描述或注释。
这是什么意思?例如,您可以根据拉取请求的状态自动更改任务的状态,或者在创建拉取请求时将代码审查请求发送给同事。
这样的简单脚本将在合并拉取请求时自动将任务转移到“固定”状态,然后将其分配给质量检查线索,并显示一条消息,表明该任务已准备好进行测试:
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var QA_LEAD = 'qa_superman';
exports.rule = entities.Issue.onChange({
title: 'Set_to_fixed_when_pull_request_is_merged_and_notify',
guard: function(ctx) {
return ctx.issue.pullRequests.isNotEmpty() &&
ctx.issue.pullRequests.last().previousState &&
ctx.issue.pullRequests.last().state.name !== ctx.issue.pullRequests.last().previousState.name &&
ctx.issue.pullRequests.last().state.name === "MERGED";
},
action: function(ctx) {
var issue = ctx.issue;
issue.State = ctx.State.Fixed;
issue.Assignee = entities.User.findByLogin(QA_LEAD);
issue.addComment("The issue is ready to be tested");
},
requirements: {
State: {
type: entities.State.fieldType,
Fixed: {
name: "Fixed"
}
},
}
});
和以前一样,脚本可以按计划运行,也可以按特定事件运行,具体取决于您的过程。有关工作流程及其编写方式的详细信息,请参见此处。
还有什么有趣的?
当然,我们不仅限于查看请求请求。在其他创新中,还有一个用于仪表板(仪表板)的新的时间跟踪小部件,因此可以更加方便地监视生产力,并且不会因隔离检疫而超时。

为了方便使用任务列表,我们添加了一次单击即可仅显示未完成任务并按注释数量对任务进行排序的功能。知识库可以通过自动检测编程语言来突出显示代码块的语法,对于Markdown爱好者,我们可以调整任务和文章中嵌入式图像,视频和其他媒体文件的大小。
对于那些使用LDAP服务器来管理用户凭据的人来说,这是一个新闻。 YouTrack过去允许您使用LDAP服务器中的凭据进行身份验证,现在,它已将用户组和属性的预定同步添加到LDAP服务器中。这将使凭据和LDAP组成员信息保持最新-例如,如果用户不是LDAP服务器上组的成员,但仍可以在跟踪器中获得相应的访问权限,则将有助于避免对跟踪器中的数据进行未经授权的访问。由于LDAP服务器和YouTrack之间的同步延迟。
所有更改的详细信息都可以在我们的网站上找到。
并且,如果您是YouTrack的新手或刚入门,请访问我们免费的YouTrack基础演示。