Skip to main content

📢 About

![PyPI - Version][def] PyPI - License PyPI - Python Version

isqa is a CLI utility designed to help you manage issues of a GitLab repository.

This CLI utility could be used for quality assurance of GitLab issues. Name isqa is comes from merging the term issues and quality assurance .

The intended use is to use cron or a similar approach to run the CLI in the background with a time interval. For insstance, a version running in th docker can use the following docker job scheduler: mcuadros/ofelia

📦 Installation

  • Install using pip
    pip install --upgrade isqa
    
  • Check configuration section afterward

🧩 Development Setup

This guide walks through setting up the project for local development using uv.

  1. Create a new virtual environment in a .venv directory and activates it.

    uv venv
    
  2. Activate the environment (macOS/Linux):

    source .venv/bin/activate
    
  3. Activate the environment (Windows):

    call .venv/Scripts/activate.bat
    
  4. Install Package in Editable Mode Installing the package in editable mode (-e) is the key to development. It links the isqa command in your environment directly to your source code.

    uv pip install -e .
    

⚙️ Configuration

This tool requires access to your GitLab repository (scopes: api, read_api). It uses a .env file to securely load your API credentials.

  1. Create a .env file in the root of the project

  2. Add your GitLab URL and a Access Token to the .env file.

    GITLAB_URL=https://gitlab.your-company.com
    GITLAB_PROJECT_ID="Project_Name"
    GITLAB_PRIVATE_TOKEN=Your_Access_Token_Here
    

    Note: You can generate a Access Token (AT) from your GitLab repository under Settings > Access Tokens. Make sure to check upon creation the following scopes: api, read_api.

    Never commit your .env file to version control.

  3. To send notifications via email, a file extra.env with email configs is required.

    cp samples/sample.extra.env extra.env
    nano extra.env
    

🌟 Usage

Once installed, the isqa command is available directly in your terminal.

NOTE: In case you want to work with multiple repositories, then you need to create multiple .env files. Then each .env file could be explicitly passed/injected into CLI via parameter.

Because it's a typer application, you can explore all its commands and options by simply running:

  • Help
    isqa --help
    

Here is a list of examples, which demonstrate the core features of the utility:

  • List board issues
    isqa list-board-issues --board-name tasks
    
  • List board issues (without visible labels on the board)
    isqa list-board-issues --without-labels
    
  • Use a custom test.env file
    isqa --env-file test.env list-issues
    
  • Run a check of a due date property of the issues and notify admin via email, if some issues are due
    isqa check-due-date --notify-admin
    
  • Run a check of missing labels of the issues and notify admin via email, if some issues got no labels assigned
    isqa check-missing-label --notify-admin
    
  • Run a check of missing assignee for the issues and notify admin via email, if some issues got no assignee
    isqa check-missing-assignee --notify-admin
    
  • Migration issues from label In Progress to label administration when condition due-date met (issues have been due)
    isqa migrate-issues --from-label "In Progress" --to-label "administration" --check-condition due-date
    
  • Sorting the issues on a board within the label projects (NOTE: it make take a while, because after each sort pass, the script will be pause for 10 seconds in order not to overload server )
    isqa sort-board-issues --label projects
    
  • Sorting the issues on a board within the label projects in descending order.
    isqa sort-board-issues --label projects --descending
    

CLI UI

alt text

Note

In order to get emails notifications, each Gitlab user must set his/her email as public inside the personal Gitlab profile (this could be differ according to your Gitlab default configurations). Otherwise only configured in the .env file admin will receive notification emails.

Documentation

Documentation

License

MIT

Download files

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

Source Distribution

isqa-0.6.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

isqa-0.6.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file isqa-0.6.0.tar.gz.

File metadata

  • Download URL: isqa-0.6.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for isqa-0.6.0.tar.gz
Algorithm Hash digest
SHA256 7e787efeb422c01f5fee25d248d9fa14d875083694cff58624ccb6e2253c8d9c
MD5 2a78482bf530e6cc6cc765e2a6edf62f
BLAKE2b-256 3c8e52800782ca5d263f0bca03fcf830c5d223500bd3d16c32366794f63b6e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for isqa-0.6.0.tar.gz:

Publisher: publish-to-pypi.yml on vdmitriyev/isqa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file isqa-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: isqa-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for isqa-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b534c0f1ed2f5aac745d766e5a285145d199709f52799770eef4a7629a39c407
MD5 b1049c46078d89f825ffb2ee40e54ad1
BLAKE2b-256 f9e8ff1aabb8a5d11f67380f2050746ee1881467406f5f27a9b61de45ca5b18c

See more details on using hashes here.

Provenance

The following attestation bundles were made for isqa-0.6.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on vdmitriyev/isqa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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