2

对于我的项目 PR 流程,我想添加代码格式检查。我正在使用 github 市场 linter Black ( https://github.com/marketplace/actions/black-code-formatter ) 来执行此操作。我从代码示例中得到了这个工作,但它为 repo 中的所有文件运行,而不仅仅是 PR 中的修改文件。有什么办法可以改变这个吗?

我已经从main.workflow文件中的市场页面运行了示例,它按预期工作

我认为问题与黑色呼叫有关,现在是: args = ". --check --fast"这会检查每个文件。我不确定如何将其更改为仅检查 PR 中修改文件的格式。

4

1 回答 1

4

我不认为你可以用那个特定的动作做你想做的事。为了将参数传递给动作,您需要使用文字或上下文表达式。但是,要查找文件列表,您需要使用 shell 管道,并且无法在上下文表达式中调用 shell。

如果您想将 Black 作为开发依赖项添加到您的项目中,您可以使用环境变量GITHUB_SHAGITHUB_BASE_REF 按照文档中的说明,然后运行类似以下内容来调用它:

git diff --name-only "$GITHUB_BASE_REF..$GITHUB_SHA" | xargs black --check --fast

这假设应用程序已命名black,并且可以在命令行上检查任意数量的文件;如果不是这种情况,您可能需要对其进行调整。如果检查失败,该命令将退出非零值,如果每次black调用成功退出,则返回零值。

于 2019-09-10T00:06:57.503 回答