> For the complete documentation index, see [llms.txt](https://stackpi-intelligent.gitbook.io/stackpi-intelligent/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stackpi-intelligent.gitbook.io/stackpi-intelligent/stackpi-intelligent-cover/setup/github-action.md).

# GitHub Action

Automatically enhance test coverage as part of your CI pipelines using StackPi Intelligent Cover's GitHub Action.

1. Run StackPi Intelligent Cover to extend existing test suites throughout the repository, in order to increase overall test coverage.
2. Trigger StackPi Intelligent Cover on a code change, to ensure the new code is properly tested with good coverage.

Once StackPi Intelligent Cover is added to your repository as a Github Action, it can be triggered in various scenarios: when a new PR is opened, on a scheduled basis, manually and more.

**Setup GitHub Action**

**Example Usage**

Use StackPi Intelligent's example repository to help you set up StackPi Intelligent Cover GitHub Action

Add the following to your workflow:

Copy

Copy

```
name: Run StackPiIntelligent-Cover

on:
  pull_request:
    branches:
      - main
    types:
      - opened # Trigger only when a pull request is opened

permissions:
  pull-requests: write # Allows commenting on pull requests
  contents: write # Allows reading and writing files

jobs:
  run-StackPiIntelligent-cover:
    runs-on: ubuntu-22.04
    steps:
      
      ... # Set up your python test environment

      - name: StackPiIntelligent-cover
        uses: StackPiIntelligent-ai/StackPiIntelligent-ci/.github/actions/StackPiIntelligent-cover@v0.1.1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          project_language: python
          project_root: <path/to/your/python/project>
          code_coverage_report_path: <path/to/your/coverage.xml>
          test_command: "pytest --cov=. --cov-report=xml --cov-report=term"
          model: gpt-4o

        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
```

**Inputs**

Variable NameDescriptionRequired?Default

`github_token`

GitHub token for authentication

Yes

N/A

`project_language`

Programming language of the project

No

`python`

`project_root`

Root directory of the project

No

`.`

`code_coverage_report_path`

Path to the coverage.xml file

No

`./coverage.xml`

`test_command`

Command to run tests (must generate coverage.xml)

Yes

N/A

`model`

LLM model name

No

`gpt-4o`

`max_iterations`

Maximum test generation attempts per file

No

`3`

`desired_coverage`

Target coverage percentage

No

`100`

**Repository secret**

Add `OPENAI_API_KEY` to your [repository secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository).

**Note:** This requirement is temporary. We will enable users to issue access tokens from their StackPi Intelligent Portal in a future release.

**Workflow permissions**

For this action to work you must explicitly allow GitHub Actions to create pull requests. This setting can be found in a repository's settings under Actions > General > Workflow permissions.

**Outputs**

If the StackPi Intelligent Cover agent succeeds in improving coverage it will comment on your PR with a link to a patch PR containing the new tests.
