Github 操作:使用 pylint 结果向 PR 发表评论

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

我正在设置我的 github CI 管道,目前我正在尝试设置 pylint 以根据拉取请求自动运行。如何将 pylint 的结果写入 PR 评论?

这就是我所拥有的。我尝试在 mshick/add-pr-comment@v1 上使用 github 操作。但是,我不确定如何通过管道传输上一步的结果。是否可以只写最后的分数而不是整个结果,因为它很长。

name: Python Linting

on:
  pull_request:
    branches: [ main, dev ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.10
      uses: actions/setup-python@v2
      with:
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
    - name: Lint with pylint
      run: |
        pip install pylint
        pylint ./src --exit-zero
    - name: Post result to PR
    - uses: mshick/add-pr-comment@v1
      with:
        message: |
          **Hello**
        repo-token: ${{ secrets.GITHUB_TOKEN }}
        repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens
        allow-repeats: false # This is the default

这是我的 pylint 结果,至少是最后一行,完整的结果真的很长:

-----------------------------------
Your code has been rated at 3.31/10
pipe github-actions pylint
1个回答
2
投票

为了实现你想要的,你必须使用脚本或 shell 命令(我不知道,因为它取决于上下文)来提取你想要的命令输出部分(例如:你的代码有评分为 3.31/10),然后将其添加为环境变量(或输出)以在下一步中使用它。

我会在你的工作中做这样的事情:

    - name: Lint with pylint
      run: |
        pip install pylint
        OUTPUT=$(pylint ./src --exit-zero)
        #OUTPUT=$(shell command or script to extract the part your want)
        echo "MESSAGE=$OUTPUT" >> $GITHUB_ENV
    - name: Post result to PR
      uses: mshick/add-pr-comment@v1
      with:
        message: ${{ env.MESSAGE }}
        repo-token: ${{ secrets.GITHUB_TOKEN }}
        repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens
        allow-repeats: false # This is the default

其中

echo "MESSAGE=$OUTPUT" >> $GITHUB_ENV
会将MESSAGE添加到github上下文环境中,以便能够在下一步中与
${{ env.MESSAGE }}
一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.