jiav


Namejiav JSON
Version 0.3.2 PyPI version JSON
download
home_pagehttps://github.com/vkhitrin/jiav
SummaryJira Issues Auto Verification
upload_time2024-09-18 14:51:03
maintainerNone
docs_urlNone
authorVadim Khitrin
requires_python<4.0,>=3.8
licenseBSD-3-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://jira.atlassian.com/browse/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>

**J**ira **I**ssues **A**uto **V**erification.

`jiav` is a [Python](https://www.python.org) based auto verification
tool for [Jira](https://www.atlassian.com/software/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](docs/source/developing_backends.rst).

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`](https://github.com/vkhitrin/jiav-backend-ansible) - runs [Ansible](https://www.ansible.com) playbooks.  
  **This is a risky backend since it allows users to run arbitrary code. Be cautious when enabling it!**
- [`command`](https://github.com/vkhitrin/jiav-backend-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`](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html).

Cloud Jira instances require a username + API tokens.

## Documentation

Visit <https://jiav.readthedocs.io>.

## Installation

### Remote

Install from remote using `pip3`:

```bash
pip3 install jiav
```

Install from remote using `pipx`:

```bash
pipx install jiav
```

### Local

Clone the local repository:

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

Install using `pip3`:

```bash
pip3 install .
```

Install using `pipx`:

```bash
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"](docs/source/getting_started.rst) on setting up a demo environment.

## Contributing

**All contributions are welcome!**

To install in development mode, use `poetry`:

```bash
poetry install --with=main,dev,types
```

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

```bash
pytest
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/vkhitrin/jiav",
    "name": "jiav",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Vadim Khitrin",
    "author_email": "me@vkhitrin.com",
    "download_url": "https://files.pythonhosted.org/packages/e5/e4/e80b41f2930810509c8f3c1e04d4fe5f531bca2561fd09e15579693f3750/jiav-0.3.2.tar.gz",
    "platform": null,
    "description": "# jiav\n\n> [!NOTE]\n> This repository is a **Proof of Concept.**\n\n> [!WARNING]\n> Since this tool executes commands locally, we should avoid trusting public comments as much as possible.\n>\n> 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**.\n>\n> 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](https://jira.atlassian.com/browse/JRASERVER-3893). It is possible to attach the output **if you understand the potential risk, this might expose sensitive information**.\n\n<https://github.com/user-attachments/assets/1a9d5728-96e3-436a-9e0d-b31f74d5298b>\n\n**J**ira **I**ssues **A**uto **V**erification.\n\n`jiav` is a [Python](https://www.python.org) based auto verification\ntool for [Jira](https://www.atlassian.com/software/jira).\n\nThe primary goal is to provide a robust auto-verification\nworkflow while focusing on ease of use and simplicity.\nUsers provide a YAML-formatted comment in Jira issues, and the tool will execute it.  \nOn successful execution, the issue will move to the desired status.\n\nBoth self-hosted and cloud Jira instances are supported.\n\n## Backends\n\n`jiav` allows developers to build custom backends; refer to the [development guide](docs/source/developing_backends.rst).\n\nBuilt-in backends:\n\n- `lineinfile` - looks for a line in file.\n- `regexinfile` - looks for a regex in file.\n- `jira_issue` - queries a Jira issue's status.\n\nAn example of a backends shipped externally:\n\n- [`ansible`](https://github.com/vkhitrin/jiav-backend-ansible) - runs [Ansible](https://www.ansible.com) playbooks.  \n  **This is a risky backend since it allows users to run arbitrary code. Be cautious when enabling it!**\n- [`command`](https://github.com/vkhitrin/jiav-backend-command) - runs shell commands.  \n  **This is a risky backend since it allows users to run arbitrary code. Be cautious when enabling it!**\n\n## Requirements\n\n`jiav` requires Python `>= 3.8`.\n\nSelf-hosted Jira instances require \"Personal Access Tokens\" (PAT) which are available starting from\n[`>=8.14`](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html).\n\nCloud Jira instances require a username + API tokens.\n\n## Documentation\n\nVisit <https://jiav.readthedocs.io>.\n\n## Installation\n\n### Remote\n\nInstall from remote using `pip3`:\n\n```bash\npip3 install jiav\n```\n\nInstall from remote using `pipx`:\n\n```bash\npipx install jiav\n```\n\n### Local\n\nClone the local repository:\n\n```bash\ngit clone https://github.com/vkhitrin/jiav.git\ncd jiav\n```\n\nInstall using `pip3`:\n\n```bash\npip3 install .\n```\n\nInstall using `pipx`:\n\n```bash\npipx install .\n```\n\n## Usage\n\nPlease refer to the user guide:\n<https://jiav.readthedocs.io/en/latest/user_guide.html>\n\nIf you do not have access to a Jira instance or wish to attempt this tool in an isolated environment, refer to\na [\"Getting Started\"](docs/source/getting_started.rst) on setting up a demo environment.\n\n## Contributing\n\n**All contributions are welcome!**\n\nTo install in development mode, use `poetry`:\n\n```bash\npoetry install --with=main,dev,types\n```\n\nIf proposing new pull requests, please ensure that new/existing tests are passing:\n\n```bash\npytest\n```\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Jira Issues Auto Verification",
    "version": "0.3.2",
    "project_urls": {
        "Documentation": "https://jiav.readthedocs.io",
        "Homepage": "https://github.com/vkhitrin/jiav",
        "Repository": "https://github.com/vkhitrin/jiav"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e166fe093660279a8520908503b226d9d7fa7248c0daf00fcb97acd8521ab3a",
                "md5": "ff6b81b4958d3d55880d4b5cff0b41c4",
                "sha256": "e144454ee5a12daf05bdd31640661448550cc02e065a155a51049f8ed610bed0"
            },
            "downloads": -1,
            "filename": "jiav-0.3.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ff6b81b4958d3d55880d4b5cff0b41c4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 22085,
            "upload_time": "2024-09-18T14:51:01",
            "upload_time_iso_8601": "2024-09-18T14:51:01.918416Z",
            "url": "https://files.pythonhosted.org/packages/3e/16/6fe093660279a8520908503b226d9d7fa7248c0daf00fcb97acd8521ab3a/jiav-0.3.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e5e4e80b41f2930810509c8f3c1e04d4fe5f531bca2561fd09e15579693f3750",
                "md5": "2e77547abb450430d23175583b9702cb",
                "sha256": "fb09e497ddc017bb099b615ee382bae1743aea5ee37150b53df6da324607370c"
            },
            "downloads": -1,
            "filename": "jiav-0.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "2e77547abb450430d23175583b9702cb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 17336,
            "upload_time": "2024-09-18T14:51:03",
            "upload_time_iso_8601": "2024-09-18T14:51:03.064355Z",
            "url": "https://files.pythonhosted.org/packages/e5/e4/e80b41f2930810509c8f3c1e04d4fe5f531bca2561fd09e15579693f3750/jiav-0.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-18 14:51:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vkhitrin",
    "github_project": "jiav",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jiav"
}
        
Elapsed time: 0.34571s