使用GitHub Actions集成Coveralls时遭遇422错误
Coveralls与GitHub Actions集成报错422问题排查
配置Python项目的Coveralls与GitHub Actions集成时,出现以下422错误:
Bad Response 422 {"message": "Couldn't find a repository matching this job", "error": true}
使用的GitHub Actions YAML配置精简版本如下:
name: coveralls on: pull_request: branches: - main jobs: tests: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v3 - name: setup python uses: actions/setup-python@v4 with: python-version: '3.9' - name: install requirements run: | pip install --upgrade pip pip install pytest pip install pytest-cov pip install -r app/requirements.txt - name: run tests run: | pytest --cov=app coverage report -m coverage lcov - name: upload coveralls uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GH_TOKEN }} path-to-lcov: coverage.lcov
解决办法
- 验证GitHub Token的有效性
确保GH_TOKEN是具备仓库读写权限的Personal Access Token(PAT),且已正确添加到仓库的Secrets中。不要使用默认的GITHUB_TOKEN,它的权限范围不足以让Coveralls识别仓库关联关系。 - 确认Coveralls的仓库关联状态
登录Coveralls后台,检查当前项目是否已正确关联到对应的GitHub仓库,仓库的所有者、名称必须与GitHub上完全一致。未关联的话手动完成绑定。 - 调整Action参数配置
在upload coveralls步骤中,可尝试添加Coveralls提供的repo-token参数;或者临时替换github-token为${{ secrets.GITHUB_TOKEN }}测试。另外,在上传前加一步ls -la命令,确认coverage.lcov文件已生成在工作目录中。 - 扩展触发事件范围
当前配置仅在pull_request时触发,可添加push事件验证推送代码时的上传情况,排除触发逻辑问题:on: pull_request: branches: - main push: branches: - main - 使用稳定版Coveralls Action
避免使用master分支的开发版Action,替换为稳定版本如v2:uses: coverallsapp/github-action@v2
内容的提问来源于stack exchange,提问作者Tamar Gogoladze
相关产品推荐
相关产品推荐

