Skip to main content

Jira Issues Auto Verification

Project description

jiav

[!NOTE] This repository is a Proof of Concept.

[!WARNING] Since this tool executes commands locally, we should avoid trusting public comments as much as possible.

It will default to scanning only private comments (regardless of the visibility group). It is possible to read from public comments if you understand the potential risk, this might cause to your systems.

The output of verification steps is also not uploaded as attachments by default because it is impossible to limit attachments' visibility, refer to JRASERVER-3893. It is possible to attach the output if you understand the potential risk, this might expose sensitive information.

https://github.com/user-attachments/assets/1a9d5728-96e3-436a-9e0d-b31f74d5298b

Jira Issues Auto Verification.

jiav is a Python based auto verification tool for Jira.

The primary goal is to provide a robust auto-verification workflow while focusing on ease of use and simplicity. Users provide a YAML-formatted comment in Jira issues, and the tool will execute it.
On successful execution, the issue will move to the desired status.

Both self-hosted and cloud Jira instances are supported.

Backends

jiav allows developers to build custom backends; refer to the development guide.

Built-in backends:

  • lineinfile - looks for a line in file.
  • regexinfile - looks for a regex in file.
  • jira_issue - queries a Jira issue's status.

An example of a backends shipped externally:

  • ansible - runs Ansible playbooks.
    This is a risky backend since it allows users to run arbitrary code. Be cautious when enabling it!
  • command - runs shell commands.
    This is a risky backend since it allows users to run arbitrary code. Be cautious when enabling it!

Requirements

jiav requires Python >= 3.8.

Self-hosted Jira instances require "Personal Access Tokens" (PAT) which are available starting from >=8.14.

Cloud Jira instances require a username + API tokens.

Documentation

Visit https://jiav.readthedocs.io.

Installation

Remote

Install from remote using pip3:

pip3 install jiav

Install from remote using pipx:

pipx install jiav

Local

Clone the local repository:

git clone https://github.com/vkhitrin/jiav.git
cd jiav

Install using pip3:

pip3 install .

Install using pipx:

pipx install .

Usage

Please refer to the user guide: https://jiav.readthedocs.io/en/latest/user_guide.html

If you do not have access to a Jira instance or wish to attempt this tool in an isolated environment, refer to a "Getting Started" on setting up a demo environment.

Contributing

All contributions are welcome!

To install in development mode, use poetry:

poetry install --with=main,dev,types

If proposing new pull requests, please ensure that new/existing tests are passing:

pytest

Project details


Download files

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

Source Distribution

jiav-0.3.2.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

jiav-0.3.2-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file jiav-0.3.2.tar.gz.

File metadata

  • Download URL: jiav-0.3.2.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.8.18 Darwin/24.1.0

File hashes

Hashes for jiav-0.3.2.tar.gz
Algorithm Hash digest
SHA256 fb09e497ddc017bb099b615ee382bae1743aea5ee37150b53df6da324607370c
MD5 2e77547abb450430d23175583b9702cb
BLAKE2b-256 e5e4e80b41f2930810509c8f3c1e04d4fe5f531bca2561fd09e15579693f3750

See more details on using hashes here.

File details

Details for the file jiav-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: jiav-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.8.18 Darwin/24.1.0

File hashes

Hashes for jiav-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e144454ee5a12daf05bdd31640661448550cc02e065a155a51049f8ed610bed0
MD5 ff6b81b4958d3d55880d4b5cff0b41c4
BLAKE2b-256 3e166fe093660279a8520908503b226d9d7fa7248c0daf00fcb97acd8521ab3a

See more details on using hashes here.

Supported by

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