grahamalama / jira-bugzilla-integration

Jira Bugzilla Integration (JBI) - system to sync bugs and issues

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Status Sustain Build Docker image Run tests pre-commit

Jira Bugzilla Integration (JBI)

System to sync Bugzilla bugs to Jira issues.

Caveats

  • The system accepts webhook events from Bugzilla
  • Bugs' whiteboard tags are used to determine if they should be synchronized or ignored
  • The events are transformed into Jira issues
  • The system sets the see_also field of the Bugzilla bug with the URL to the Jira issue

Diagram Overview

graph TD
    subgraph bugzilla services
        A[Bugzilla] -.-|bugzilla event| B[(Webhook Queue)]
        B --- C[Webhook Push Service]
    end
    D --> |create/update/delete issue| E[Jira]
    D<-->|read bug| A
    D -->|update see_also| A
    subgraph jira-bugzilla-integration
        C -.->|post /bugzilla_webhook| D{JBI}
        F["config.{ENV}.yaml"] ---| read actions config| D
    end
Loading

Documentation

Usage

How to onboard a new project?

  1. Add an entry for your whiteboard tag (eg. famous-product) in the actions configuration files. See actions documentation)
  2. Open a pull-request with your action configuration changes
  3. Open a ticket to request the appropriate permissions to be given to the bot account (Jira Automation) on the Jira project (example ticket)

Development

  • make start: run the application locally (http://localhost:8000)
  • make test: run the unit tests suites
  • make lint: static analysis of the code base
  • make format: automatically format code to align to linting standards

In order to pass arguments to pytest:

poetry run pytest -vv -k test_bugzilla_list_webhooks

You may consider:

  • Tweaking the application settings in the .env file (See jbi/environment.py for details)
  • Installing a pre-commit hook to lint your changes with pre-commit install

About

Jira Bugzilla Integration (JBI) - system to sync bugs and issues

License:Mozilla Public License 2.0


Languages

Language:Python 94.6%Language:Makefile 1.4%Language:Shell 1.4%Language:HTML 1.3%Language:Dockerfile 0.9%Language:CSS 0.6%