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
isqais comes from merging the termissuesandquality 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
pip install --upgrade isqa
configuration section afterwardThis guide walks through setting up the project for local development using uv.
.venv directory and activates it.
uv venv
source .venv/bin/activate
call .venv/Scripts/activate.bat
-e) is the key to development. It links the isqa command in your environment directly to your source code.
uv pip install -e .
This tool requires access to your GitLab repository (scopes: api, read_api). It uses a .env file to securely load your API credentials.
.env file in the root of the project.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
.envfile to version control.
extra.env with email configs is required.
cp samples/sample.extra.env extra.env
nano extra.env
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:
isqa --help
Here is a list of examples, which demonstrate the core features of the utility:
isqa list-board-issues --board-name tasks
isqa list-board-issues --without-labels
test.env file
isqa --env-file test.env list-issues
isqa check-due-date --notify-admin
isqa check-missing-label --notify-admin
isqa check-missing-assignee --notify-admin
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
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
projects in descending order.
isqa sort-board-issues --label projects --descending

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.