TFS策略 - 在代码不符合自定义准则时阻止签入

问题描述 投票:1回答:2

在我们的组织中,我们使用TFS 2018和Visual Studio 2017 Enterprise。

据我所知,有一种方法是“客户端”,从Visual Studio配置,选择Team \ Team Project Settings \ Source Control \ Check-in Policy \ Code Analysis,我应该定义自定义规则集。 enter image description here

我需要两件事:

  1. 设置自定义指南,其中包含默认Microsoft指南和其他工具指南,如Roslynator或StyleCop。
  2. 如果代码不符合这些准则,则创建自定义策略服务器端以防止从Visual Studio(或我们能够想到的任何客户端)签入。

首先,我将举一个简单明了的例子。 enter image description here Visual Studio中嵌入了指南。但它们并不完整,我想扩展它们,在这里和那里采取措施或从头开始定义新的东西。

我想使用例如:

  • CA1500:变量名称不应与字段名称匹配(来自默认的Visual Studio托管二进制分析)
  • RCS1145:删除冗余的“as”运算符(来自Roslynator)
  • RCS1204使用EventArgs.Empty(来自Roslynator)
  • SA1302:InterfaceNamesMustBeginWithI(StyleCop)
  • SA1305:FieldNamesMustNotUseHungarianNotation(StyleCop)

我该怎么做?我是否可以在没有让我在项目级别定义它的情况下(例如为每个.csprj合并stylecop文件),但至少在解决方案或团队项目级别更多?

对于第二点,我已经定义了附加的强制性评论和强制性工作项目。我甚至可以定义新政策,这是真的,但它们都可以被客户端覆盖。

是否有可能阻止这种情况?

tfs visual-studio-2017 commit policy
2个回答
1
投票

对此最好的解决方案是两部分:

  1. 教育您的用户配置正确的策略和编辑器设置。创建自定义项目模板并分发这些模板可以提供帮助(或者将自定义构建目标部署到执行良好默认设置的计算机上。拥有良好的本地策略将帮助人们做正确的事情,并且支持做正确事情的人可能不会试着解决这个问题。
  2. 为您的项目设置CI构建。 VSTS和TFS有一个很好的功能,只要代码更改,它就会运行构建。您甚至可以将其设置为Gated Checkin构建,它将在签入之前检查源。此检查在服务器上发生并且更难绕过。您还可以将构建配置为始终覆盖代码分析设置,即使它们未在项目中配置。我的MsBuild Helper tasks将帮助您设置正确的MsBuild属性来做到这一点。

至于你更具体的问题:

  • 如果不为所有Visual Studio项目配置规则集,则无法在Team Project级别设置代码分析规则。否则,签入策略将导致签入失败,但开发人员仍然必须使用正确的规则集更新解决方案中的所有项目。
  • 您无法阻止人们绕过本地签到政策。您可以做的最好的事情是使用Reporting Services和警报来检测违反策略并采取纠正措施。

0
投票
  1. 您可以将规则集添加到TFS源代码管理中,然后从代码分析策略编辑器中选择它。查看下面的截图:

enter image description here

  1. 签入策略已应用于团队项目,而不是单个项目。
  2. 要编辑签入策略,您必须具有“编辑项目级别信息”权限。您可以拒绝用户的此权限,以防止他们编辑签入策略。
© www.soinside.com 2019 - 2024. All rights reserved.