Skip to main content

Create a Coverage report comment on Github PR

Project description

python-coverage-comment

Create a Coverage report comment on Github PR

To generate the pytest coverage report

pipenv run pytest tests  --cov-branch --cov=codecov --cov-report=json:/tmp/report.json

Permissions needed for the Github Token:

Contents:read Pull requests:read Pull requests:write

If you have given ANNOTATIONS_DATA_BRANCH branch then Github Token also requires content write permissions. Read more on how to use this here.

Contents:write

install:

pip install python-coverage-comment

run:

GITHUB_REPOSITORY=<repository_name> \
COVERAGE_PATH=<path_to_coverage_report> \
GITHUB_TOKEN=<github_token> \
GITHUB_PR_NUMBER=<pull_request_number> \
codecov

Setting up Local Environment using Pipenv

To get started, follow these steps:

  1. Clone the repository:

    git clone <repository_url>
    
  2. Navigate to the cloned repository:

    cd <repository_directory>
    
  3. Build the project:

    make all
    
  4. Export the required environment variables:

    export GITHUB_REPOSITORY=<repository_name>
    export COVERAGE_PATH=<path_to_coverage_report>
    export GITHUB_TOKEN=<github_token>
    export GITHUB_PR_NUMBER=<pull_request_number>
    
  5. Run the action:

    make run
    

Required Environment Variables

  • GITHUB_REPOSITORY: The name of the GitHub repository where the action is running.
  • COVERAGE_PATH: The path to the coverage report file. (JSON format)
  • GITHUB_TOKEN: The GitHub token used for authentication.
  • GITHUB_PR_NUMBER: The number of the pull request where the action is running. (Optional)
  • GITHUB_REF: The branch to run the action on. If not provided, it will be used to get the PR number. (Optional)

Note: Either GITHUB_PR_NUMBER or GITHUB_REF is required.

Optional Environment Variables

  • GITHUB_BASE_REF: The base branch for the pull request. Default is main.
  • SUBPROJECT_ID: The ID or URL of the subproject or report.
  • MINIMUM_GREEN: The minimum coverage percentage for green status. Default is 100.
  • MINIMUM_ORANGE: The minimum coverage percentage for orange status. Default is 70.
  • BRANCH_COVERAGE: Show branch coverage in the report. Default is False.
  • SKIP_COVERAGE: Skip coverage reporting as github comment and generate only annotaions. Default is False.
  • ANNOTATIONS_DATA_BRANCH: The branch to store the annotations. Read more about this here.
  • ANNOTATIONS_OUTPUT_PATH: The path where the annotaions should be stored. Should be a .json file.
  • ANNOTATE_MISSING_LINES: Whether to annotate missing lines in the coverage report. Default is False.
  • ANNOTATION_TYPE: The type of annotation to use for missing lines. Default is 'warning'.
  • MAX_FILES_IN_COMMENT: The maximum number of files to include in the coverage report comment. Default is 25.
  • COMPLETE_PROJECT_REPORT: Whether to include the complete project coverage report in the comment. Default is False.
  • COVERAGE_REPORT_URL: URL of the full coverage report to mention in the comment.
  • DEBUG: Whether to enable debug mode. Default is False.

That's it! You have successfully cloned the repository and built the project.

Custom Installation

  1. Install Python: Make sure you have Python installed on your system. You can download and install Python from the official Python website.

  2. Install Pipenv: Pipenv is a package manager that combines pip and virtualenv. You can install Pipenv using pip, the Python package installer. Open your terminal or command prompt and run the following command:

    pip install pipenv
    
  3. Install project dependencies: To install the project dependencies specified in the Pipfile, run the following command:

    pipenv install --dev
    
  4. Activate the virtual environment: To activate the virtual environment created by Pipenv, run the following command:

    pipenv shell
    
  5. Run your project: You can now run your project using the activated virtual environment. For example, if your project has a run.py file, you can run it using the following command:

    python run.py
    
  6. Install pre-commit hooks: To set up pre-commit hooks for your project, run the following command:

    pipenv run pre-commit install
    

    This will install and configure pre-commit hooks that will run before each commit to enforce code quality and style standards.

That's it! You have successfully set up your local environment using Pipenv.

This project is almost copy of [py-cov-action/python-coverage-comment-action] (https://github.com/py-cov-action/python-coverage-comment-action.git) with few modifications.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_coverage_comment-2.1.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

python_coverage_comment-2.1-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file python_coverage_comment-2.1.tar.gz.

File metadata

  • Download URL: python_coverage_comment-2.1.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for python_coverage_comment-2.1.tar.gz
Algorithm Hash digest
SHA256 09390506f134b7438bbffd49a26aa03a188fa217f5a77976e54f9e10f070dbe1
MD5 90f19438cda3ecb9af5afd6a58f5acb7
BLAKE2b-256 8071cbdcd02e31ee056736cd47f7911b306554e2d3014fe11213819a236b7ef7

See more details on using hashes here.

File details

Details for the file python_coverage_comment-2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for python_coverage_comment-2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 439a06a4cf9e6567e74adab2c24bf45db94ddf8bc4576174af59c10d0bad5f8e
MD5 a790bded08cd9c6b4933a76cdb7c5023
BLAKE2b-256 1209a8de2fb20fe97f87fa96d5f204f3fad70082613bc494003cd124eb36e693

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page