📢 About
![PyPI - Version][def]
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
📦 Installation
- Install using pip
pip install --upgrade isqa - Check
configurationsection afterward
🧩 Development Setup
This guide walks through setting up the project for local development using uv.
-
Create a new virtual environment in a
.venvdirectory and activates it.uv venv -
Activate the environment (macOS/Linux):
source .venv/bin/activate -
Activate the environment (Windows):
call .venv/Scripts/activate.bat -
Install Package in Editable Mode Installing the package in editable mode (
-e) is the key to development. It links theisqacommand 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.
-
Create a
.envfile in the root of the project -
Add your GitLab URL and a Access Token to the
.envfile.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. -
To send notifications via email, a file
extra.envwith 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.envfileisqa --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 Progressto labeladministrationwhen conditiondue-datemet (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 eachsortpass, the script will be pause for10seconds in order not to overload server )isqa sort-board-issues --label projects - Sorting the issues on a board within the label
projectsin descending order.isqa sort-board-issues --label projects --descending
CLI UI
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
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a78005c4c2b849f2e1894e230986ac9fa1e75be42d33084674513c2bd33fef0
|
|
| MD5 |
72456bd494912f9fc7278c6a35d95244
|
|
| BLAKE2b-256 |
16f3e3e331fcd68c85ca06e48366da9f32aa78b0c3bbf25060c5d09553ec87af
|
Provenance
The following attestation bundles were made for isqa-0.6.1.tar.gz:
Publisher:
publish-to-pypi.yml on vdmitriyev/isqa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isqa-0.6.1.tar.gz -
Subject digest:
3a78005c4c2b849f2e1894e230986ac9fa1e75be42d33084674513c2bd33fef0 - Sigstore transparency entry: 2374234389
- Sigstore integration time:
-
Permalink:
vdmitriyev/isqa@0071bcbec782bace6181a08cb4831396545d6dfe -
Branch / Tag:
refs/tags/0.6.1 - Owner: https://github.com/vdmitriyev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@0071bcbec782bace6181a08cb4831396545d6dfe -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc3dce3a42ee87388e1b98132315ece673d5b352986e2af8a4d6c8af5652821e
|
|
| MD5 |
2a2238da20e119968e8ef81cf64d42be
|
|
| BLAKE2b-256 |
96039f779637f75df9e0046923d5c2664391cf32272e0967f217a9bee733300a
|
Provenance
The following attestation bundles were made for isqa-0.6.1-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on vdmitriyev/isqa
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isqa-0.6.1-py3-none-any.whl -
Subject digest:
bc3dce3a42ee87388e1b98132315ece673d5b352986e2af8a4d6c8af5652821e - Sigstore transparency entry: 2374234579
- Sigstore integration time:
-
Permalink:
vdmitriyev/isqa@0071bcbec782bace6181a08cb4831396545d6dfe -
Branch / Tag:
refs/tags/0.6.1 - Owner: https://github.com/vdmitriyev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@0071bcbec782bace6181a08cb4831396545d6dfe -
Trigger Event:
push
-
Statement type: