【问题标题】:Configure Codacy to review all branches of a monitored branch?配置 Codacy 以查看受监控分支的所有分支?
【发布时间】:2019-11-16 03:32:19
【问题描述】:

现在我们让 Codacy 监控 DEV 分支,根据推荐的做法,每当我们做某事时,我们都会创建一个 DEV 的个人分支,处理它,然后重新合并。问题是,如果 Codacy 发现问题,我们必须从 DEV 分支出来,修改,然后重新合并。同时,DEV 有这个有缺陷的代码,所以我们必须撤消那个合并,等等等等。如果你因为海外的家伙即将上线而感到恐慌,那么有很大的错误空间!

想到了三个可接受的解决方案,可能更多:

  • 配置 Codacy 以在提交后审查受监控分支的所有分支
  • 我们倾向于一致地命名我们的分支,因此可以指定正则表达式
  • 配置 GitHub 和/或 Codacy 以防止在存在待处理的 Codacy 问题时拉取受监控的分支

这些都有可能吗?

【问题讨论】:

  • 您应该限制对DEV 的任何直接推送,并且仅通过拉取请求获取它们,只有在密码检查通过时才允许。
  • @TarunLalwani 有没有办法配置 GitHub 和/或 Codacy 以防止在 Codacy 存在未决问题时拉取?
  • 是的,这就是我们在我们的组织中使用的,我将发布设置详细信息

标签: github configuration codacy


【解决方案1】:

在 /settings/branches 下,您可以为 DEV 定义“分支保护规则”并根据需要设置 Codacy 状态。在您处理好问题之前,您将无法合并 PR。

【讨论】:

  • 但是如果出现 Codacy 问题,开发者还能从 DEV 中撤出吗?
  • 如果你遵循@TarunLalwani 的建议,并为 DEV 做 PR,你可以毫无问题地拥有 DEV,而且你不必担心任何人将 DEV 拉到糟糕的状态
【解决方案2】:

按照以下方法进行讨论

您应该通过将其设为受保护分支来限制对DEV 的任何推送。不允许直接提交,只能通过拉取请求提交才能合并。同样,您可以强制通过密码检查以允许合并

请参阅下面的示例设置

7 月 12 日更新:

很多点都在cmet上澄清了,所以添加这些解释来回答

开发人员 1 -> 提交到 DEV_1 分支 -> 提出拉取请求 #1 以将 DEV_1 合并到 DEV 开发人员 2 -> 提交到 DEV_2 分支 -> 提出拉取请求 #2 以将 DEV_2 合并到 DEV

PR #1 和 PR#2 不能合并,因为我们已经指定 codacy 状态检查必​​须通过。

来自 Codacy 的此状态检查将执行您想要执行的所有测试。一旦 Codacy 测试通过,它将更新 PR,并根据 Codacy 结果的状态启用合并

Codacy 测试不过是提交后检查。 Github 不允许预提交挂钩。 Gitlab 确实允许您使用 pre-commit 钩子,但最好在使用 Github 时在 PR 上使用 post-commit 钩子

【讨论】:

  • Codacy 直到提交后才会扫描,所以 DEV 中不需要首先出现坏代码吗?关于“合并前要求分支是最新的”,这意味着每个分支都需要手动启用 Codacy?还是会自动执行?我们希望通过 Codacy 减少“乱搞”的次数,即设置它并忘记它。
  • Require branches to be up to date before meeting,表示如果创建了两个拉取请求与您的分支合并,则在其中一个被批准后,另一个将使用最新代码重新测试一次
  • 对于预提交扫描,您需要使用机器本地的 prehook,因此像 codacy 这样的工具只能在提交后工作。这就是为什么你希望 DEV 成为受保护的分支,其余的都合并到 DEV
  • 对不起,我不明白你在写什么。使用此设置,是否需要为 Codacy 手动启用工作分支?
  • @Buddy,您需要启用DEV 分支才能在 Codacy 中进行分析。因此,当提出 PR 以与 DEV 合并时,将执行测试。您不需要启用开发人员将在 Codacy 中创建的每个分支,您只需启用他们想要合并到的分支
猜你喜欢
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多