完成拉取请求时自动删除分支

时间:2016-11-11 20:35:14

标签: git azure-devops git-branch pull-request

我的公司使用带有git的VSTS。当我在VSTS中的开发分支中完成拉取请求时,会自动检查删除功能分支的复选框,但除非我更改功能分支上的权限以允许管理员用户组我是重写和摧毁历史的成员(强制推动)。

每次完成拉取请求时都这样做很乏味,但我并不是想让这个管理员用户组的所有成员始终能够删除功能分支。似乎可能会有意外删除。当我正在完成已经过审核和批准的拉取请求时,我确实对删除开发分支感到非常自在。就权限而言,还有第三种选择吗?如果能够删除功能分支,贵公司如何设置策略?

3 个答案:

答案 0 :(得分:1)

相应分支删除源分支需要重写和销毁历史(强制推送)权限。

默认情况下,分支所有者具有删除分支(新分支)的权限。对于其他分支,您可以为特定用户指定权限以指定分支,不需要为整个组指定该权限,之后您不需要每次都指定权限。 (选择一个分支,单击添加=>添加用户)

enter image description here

总而言之,有两种方法可以做到这一点,1:通过pull request reviewer创建分支。 2:为拉取请求审阅者授予重写和销毁历史(强制推送)权限。

答案 1 :(得分:0)

我自己没有和VSTS合作过,但是在其他git主机(gitlab和github)中,有一个名为"受保护的Brances"。

对于这些受保护的分支机构(' master'和#39;在我的工作流程中)我覆盖了权限,不允许开发人员删除这些分支(他们可以删除其他分支)等)

编辑1: 我的记忆错了。无法删除受保护的分支(使用git;仍然可以使用gitlab网页删除它们)。可以设置允许接受合并请求和推送到分支的权限(参见屏幕截图)。Gitlab protected branches screenshot

答案 2 :(得分:0)

恕我直言,我认为您应该将责任推给分支机构所有者/ PR创建者完成。您可能已经知道,可以将PR上的某些人员(阅读:Lead devs)设置为“必需”,甚至可以根据要更改的回购中的目录或区域来过滤这些自动添加的人员(我们使用人员组)。

这将使您和您的其他受信任的开发人员可以查看所做的代码更改,并防止PR创建者在未经授权机构批准更改的情况下将任何代码获取到您的developmaster分支中。 PR的实际完成实际上只是一个令牌操作。真正有用的信息是知道谁批准了该请求。

授予分支机构和PR所有者对其功能分支的责任,PR将减轻您更改分支权限的问题,以便您(不是分支所有者)可以删除其他人分支。所有者还应该知道该功能何时完成,这也将减轻误删除的问题。

恕我直言,如果功能未完成,请完成,它也不会获得PR。

也请注意,在AzDO中删除源分支不会在本地影响存储库,除非执行git remote prune origin或让选择的IDE定期为它们执行此操作,所以如果错误删除了功能分支,在开发人员工作站的某处应该至少有一个副本。我们不使用“定期修剪我的遥控器”选项,这部分是原因。