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.1.tar.gz (17.6 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.1-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: isqa-0.6.1.tar.gz
  • Upload date:
  • Size: 17.6 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.1.tar.gz
Algorithm Hash digest
SHA256 3a78005c4c2b849f2e1894e230986ac9fa1e75be42d33084674513c2bd33fef0
MD5 72456bd494912f9fc7278c6a35d95244
BLAKE2b-256 16f3e3e331fcd68c85ca06e48366da9f32aa78b0c3bbf25060c5d09553ec87af

See more details on using hashes here.

Provenance

The following attestation bundles were made for isqa-0.6.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: isqa-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 18.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc3dce3a42ee87388e1b98132315ece673d5b352986e2af8a4d6c8af5652821e
MD5 2a2238da20e119968e8ef81cf64d42be
BLAKE2b-256 96039f779637f75df9e0046923d5c2664391cf32272e0967f217a9bee733300a

See more details on using hashes here.

Provenance

The following attestation bundles were made for isqa-0.6.1-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