Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Track your patches easily with Jira integration

Project description

https://travis-ci.org/yakobu/patch-issue.svg?branch=master https://coveralls.io/repos/github/yakobu/patch-issue/badge.svg?branch=master https://badge.fury.io/py/patch-issue.svg Packagist

Patch manager for easy tracking with integration in jira.

Concept

We’ve all put patches over patches in our code, for various reasons:

  • Hot fixing a currently released version
  • Temporary place-holder
  • Or just because we felt like it - so we wouldn’t have to design some complex structure.

This is where patch-issue comes into play. We wanted to have a way of notifying the programmer that the current code segment is a part of a patch - using Jira issue tracking system and some kind of a logger. Then, later on, patch-issue will notify the programmer (in runtime) that the issue is closed and the programmer can remove the patch easily.

Important Note

We do not encourge the usage of patches in a code segment. This tool main purpose is to help programmers track their patches, so they won’t forget the patch in their code (long term wise).

How to install?

Simply run:

$ pip install patch-issue

And try to import:

import patch_issue

Ok, So how do I start?

First, you need to make a connection to Jira in your code, and just for that there is an awesome library called - yeah you guessed right - jira - [jira pypi link](https://pypi.org/project/jira/).

Here is how to make a simple connection: connection.py

from jira import JIRA
jira_connection = JIRA(server="http://jira/", basic_auth=("username", "password"))

Now you can make a new patch class (patches.py):

import logging

from patch_issue import JiraPatchIssue

from connection import jira_connection  # from previously made connection


class FixDBConnection(JiraPatchIssue):
   ISSUE_KEY = "APP-1"  # a must have class attribute
   DESCRIPTION = "Fixes db connection using a mocked password."
   WAY_TO_SOLVE = "Configure the right password."

fix_connection = FixDBConnection(jira=jira_connection,
    logger=logging)  # there is also a default logger

Now you can use your patch freely in your code:

import .config
from .db import DB

from patches import fix_connection  # import your patch instance

##################################################################

@fix_connection.patch_function  # use patch as a function decorator
def new_connection():
    return DB.make_connection("user", "password")

new_connection()

##################################################################

usename = "someuser"
password = config.get_password()

with fix_connection.patch:  # use patch as a context manager
   password = "1234"

db = DB.make_connection(username, password)

Now, when your code reaches to the patches, a message will be logged in your logger! You will never miss your patches again!

Project details


Download files

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

Files for patch-issue, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size patch_issue-1.0.0-py2.py3-none-any.whl (5.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size patch_issue-1.0.0.tar.gz (4.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page