external-issue-checker


Nameexternal-issue-checker JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryLists commits in a Git repository that refer to external issues and reports their status.
upload_time2025-07-23 17:18:17
maintainerNone
docs_urlNone
authorMatthieu Viry
requires_python<4.0,>=3.10
licenseMIT
keywords git issue-tracker external-issues commit-checker issue-status
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # external-issue-checker

[![License MIT](https://img.shields.io/badge/Licence-MIT-green)](./LICENSE)
[![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![tests](https://github.com/mthh/external-issue-checker/actions/workflows/ci-tests.yml/badge.svg)](https://github.com/mthh/external-issue-checker/actions/workflows/ci-tests.yml)
[![Python Version](https://img.shields.io/pypi/pyversions/external-issue-checker.svg)](https://pypi.org/project/external-issue-checker/)
[![PyPI](https://img.shields.io/pypi/v/external-issue-checker.svg)](https://pypi.org/project/external-issue-checker/)

**Lists commits in a Git repository that refer to external issues / pull requests and reports their status.**

This tool is useful for tracking issues and pull requests (that are not managed within
the repository itself and for which a workaround may have been implemented in the
codebase) and reporting their status (*open* or *closed*).

For example sometimes you refer to an issue of another package in a commit
(e.g. *“Apply some workaround while waiting for https://github.com/orga/repository/issues/12 to be fixed”*).
In the meantime, maybe the issue has been resolved (and maybe you've redone a commit
like *"Remove the workaround now that https://github.com/orga/repository/issues/12 is fixed"*, or not).

It's time to check with `external-issue-checker`!

Currently, it supports GitHub and GitLab issues and pull (or merge) requests, but it
might be extended to support other platforms (such as Bitbucket, Codeberg, etc.) in
the future.

## Demo

![Demo showing terminal being recorded](./misc/demo.svg)

## Usage instructions

To use the tool, you need to have Python 3.10 or later installed on your system.

One of the easiest ways to install and run global Python CLI tools is either to use:

- [`pipx`](https://github.com/pypa/pipx)

```bash
# Install external-issue-checker globally
pipx install external-issue-checker

# Run the CLI tool
external-issue-checker --help
```

- or [`uv`](https://github.com/astral-sh/uv?tab=readme-ov-file#tools)

```bash
# Install external-issue-checker globally if you don't have it yet
# and run the CLI tool (uvx is an alias for uv tool run)
uvx external-issue-checker --help
```

Otherwise, you can install it in a virtual environment using either:

- `pip`

```bash
mkdir some-directory
cd some-directory
python3 -m venv .venv
source .venv/bin/activate  # On Windows use `.venv\Scripts\activate`
pip install external-issue-checker

external-issue-checker --help
```

- or [`poetry`](https://python-poetry.org/)

```bash
poetry new --src some-directory
cd some-directory
poetry add external-issue-checker

poetry run external-issue-checker --help
```

## Instructions for developers

Clone the repository:

```bash
git clone https://github.com/mthh/external-issue-checker
cd external-issue-checker
```

Install the dependencies:

```bash
poetry install
```

Activate the virtual environment:

```bash
poetry env activate
```

Run the test suite:

```bash
poetry run pytest
```

Install pre-commit hooks:

```bash
poetry run pre-commit install
```

Run the CLI tool:

```bash
poetry run external-issue-checker --help
```

## Motivation

This tool was created to help developers keep track of external issues and pull requests
that may affect their codebase. It allows you to quickly identify commits that reference
external issues, making it easier to manage dependencies and workarounds.

From a personal point of view, this is an opportunity to:

- play with [`poetry`](https://python-poetry.org/) to stay up to date with how it works and how to store project metadata in the `pyproject.toml` file,
- see how great [`rich`](https://github.com/Textualize/rich) and [`typer`](https://github.com/fastapi/typer) are for creating CLI tools.

## License

This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "external-issue-checker",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "git, issue-tracker, external-issues, commit-checker, issue-status",
    "author": "Matthieu Viry",
    "author_email": "matthieu.viry@cnrs.fr",
    "download_url": "https://files.pythonhosted.org/packages/b8/0e/7082e5bed662b5a88d6b621ecf7e66510b034414058ea79cd8991037d593/external_issue_checker-0.1.0.tar.gz",
    "platform": null,
    "description": "# external-issue-checker\n\n[![License MIT](https://img.shields.io/badge/Licence-MIT-green)](./LICENSE)\n[![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![tests](https://github.com/mthh/external-issue-checker/actions/workflows/ci-tests.yml/badge.svg)](https://github.com/mthh/external-issue-checker/actions/workflows/ci-tests.yml)\n[![Python Version](https://img.shields.io/pypi/pyversions/external-issue-checker.svg)](https://pypi.org/project/external-issue-checker/)\n[![PyPI](https://img.shields.io/pypi/v/external-issue-checker.svg)](https://pypi.org/project/external-issue-checker/)\n\n**Lists commits in a Git repository that refer to external issues / pull requests and reports their status.**\n\nThis tool is useful for tracking issues and pull requests (that are not managed within\nthe repository itself and for which a workaround may have been implemented in the\ncodebase) and reporting their status (*open* or *closed*).\n\nFor example sometimes you refer to an issue of another package in a commit\n(e.g. *\u201cApply some workaround while waiting for https://github.com/orga/repository/issues/12 to be fixed\u201d*).\nIn the meantime, maybe the issue has been resolved (and maybe you've redone a commit\nlike *\"Remove the workaround now that https://github.com/orga/repository/issues/12 is fixed\"*, or not).\n\nIt's time to check with `external-issue-checker`!\n\nCurrently, it supports GitHub and GitLab issues and pull (or merge) requests, but it\nmight be extended to support other platforms (such as Bitbucket, Codeberg, etc.) in\nthe future.\n\n## Demo\n\n![Demo showing terminal being recorded](./misc/demo.svg)\n\n## Usage instructions\n\nTo use the tool, you need to have Python 3.10 or later installed on your system.\n\nOne of the easiest ways to install and run global Python CLI tools is either to use:\n\n- [`pipx`](https://github.com/pypa/pipx)\n\n```bash\n# Install external-issue-checker globally\npipx install external-issue-checker\n\n# Run the CLI tool\nexternal-issue-checker --help\n```\n\n- or [`uv`](https://github.com/astral-sh/uv?tab=readme-ov-file#tools)\n\n```bash\n# Install external-issue-checker globally if you don't have it yet\n# and run the CLI tool (uvx is an alias for uv tool run)\nuvx external-issue-checker --help\n```\n\nOtherwise, you can install it in a virtual environment using either:\n\n- `pip`\n\n```bash\nmkdir some-directory\ncd some-directory\npython3 -m venv .venv\nsource .venv/bin/activate  # On Windows use `.venv\\Scripts\\activate`\npip install external-issue-checker\n\nexternal-issue-checker --help\n```\n\n- or [`poetry`](https://python-poetry.org/)\n\n```bash\npoetry new --src some-directory\ncd some-directory\npoetry add external-issue-checker\n\npoetry run external-issue-checker --help\n```\n\n## Instructions for developers\n\nClone the repository:\n\n```bash\ngit clone https://github.com/mthh/external-issue-checker\ncd external-issue-checker\n```\n\nInstall the dependencies:\n\n```bash\npoetry install\n```\n\nActivate the virtual environment:\n\n```bash\npoetry env activate\n```\n\nRun the test suite:\n\n```bash\npoetry run pytest\n```\n\nInstall pre-commit hooks:\n\n```bash\npoetry run pre-commit install\n```\n\nRun the CLI tool:\n\n```bash\npoetry run external-issue-checker --help\n```\n\n## Motivation\n\nThis tool was created to help developers keep track of external issues and pull requests\nthat may affect their codebase. It allows you to quickly identify commits that reference\nexternal issues, making it easier to manage dependencies and workarounds.\n\nFrom a personal point of view, this is an opportunity to:\n\n- play with [`poetry`](https://python-poetry.org/) to stay up to date with how it works and how to store project metadata in the `pyproject.toml` file,\n- see how great [`rich`](https://github.com/Textualize/rich) and [`typer`](https://github.com/fastapi/typer) are for creating CLI tools.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Lists commits in a Git repository that refer to external issues and reports their status.",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/mthh/external-issue-checker",
        "Homepage": "https://github.com/mthh/external-issue-checker",
        "Repository": "https://github.com/mthh/external-issue-checker"
    },
    "split_keywords": [
        "git",
        " issue-tracker",
        " external-issues",
        " commit-checker",
        " issue-status"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7482de736c384186d09be1b8f68b2c7f99f20736e94788f64eb33e508d731c91",
                "md5": "391dfd1717151c05e91854be1288b6dd",
                "sha256": "b1c6b02d2ea2fd7912c6dcf382a74214bfa38d103a41422a97dfee81eae9fae5"
            },
            "downloads": -1,
            "filename": "external_issue_checker-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "391dfd1717151c05e91854be1288b6dd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 8758,
            "upload_time": "2025-07-23T17:18:16",
            "upload_time_iso_8601": "2025-07-23T17:18:16.315015Z",
            "url": "https://files.pythonhosted.org/packages/74/82/de736c384186d09be1b8f68b2c7f99f20736e94788f64eb33e508d731c91/external_issue_checker-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b80e7082e5bed662b5a88d6b621ecf7e66510b034414058ea79cd8991037d593",
                "md5": "a506055858a6ec2322c97a7d6d42e185",
                "sha256": "aad7771ef9a68d7019c9e13b1be26fccb6fe5b743d374e975e14d45dcb3cabb1"
            },
            "downloads": -1,
            "filename": "external_issue_checker-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a506055858a6ec2322c97a7d6d42e185",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 5892,
            "upload_time": "2025-07-23T17:18:17",
            "upload_time_iso_8601": "2025-07-23T17:18:17.306969Z",
            "url": "https://files.pythonhosted.org/packages/b8/0e/7082e5bed662b5a88d6b621ecf7e66510b034414058ea79cd8991037d593/external_issue_checker-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 17:18:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mthh",
    "github_project": "external-issue-checker",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "external-issue-checker"
}
        
Elapsed time: 1.45334s