配置GitHub Action在Push时用Black格式化指定文件夹失败,疑问路径设置
问题解答
你把要格式化的文件路径填写在src:行里的想法并没有错误——src正是psf/black这个GitHub Action用来指定需要格式化的目标文件或目录的官方参数。
你的Action没成功格式化文件,大概率是其他原因导致的,常见问题及解决方向如下:
- 路径准确性问题:Ubuntu系统是大小写敏感的,确认
./folder_of_files_to_reformat/是仓库中真实存在的相对路径,拼写、大小写完全匹配。如果目录不存在,Black不会执行任何格式化操作。 - 缺少自动提交步骤:
psf/blackAction只会在 runner 环境中完成代码格式化,但不会自动把修改后的代码推回仓库。如果需要自动提交格式化结果,得添加额外的Git提交推送步骤。 - 权限不足:默认情况下GitHub Action的权限不足以推送代码,需要在job中配置
permissions: contents: write来赋予写入权限。 - Action版本或配置问题:
actions/checkout@v2版本较旧,建议升级到v4;同时stable标签对应的Black版本可能偏旧,也可以尝试指定具体版本(比如psf/black@v23.10.0)。
以下是补充了自动提交逻辑的修正版配置示例:
name: Format code on push with Black on: [push] jobs: lint: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: psf/black@stable with: src: './folder_of_files_to_reformat/' - name: Commit formatted code run: | git config --local user.name "github-actions[bot]" git config --local user.email "github-actions[bot]@users.noreply.github.com" git add ./folder_of_files_to_reformat/ git diff --quiet || git commit -m "Format code with Black" git push
内容的提问来源于stack exchange,提问作者user11846775
相关产品推荐
相关产品推荐

