Skip to main content

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.

Source Distribution

patch_issue-1.0.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

patch_issue-1.0.0-py2.py3-none-any.whl (5.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file patch_issue-1.0.0.tar.gz.

File metadata

  • Download URL: patch_issue-1.0.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.14

File hashes

Hashes for patch_issue-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c454e94348dfee1bbb7d4ee179597ed6a37297c8bcbe57521d92cb38bb06aae7
MD5 a2718efb26d5340b4d130135d005bb6f
BLAKE2b-256 7614e928666e5fd124b0550608d791bf643f5ec1170b39a070b5bf8da2ff95fb

See more details on using hashes here.

File details

Details for the file patch_issue-1.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: patch_issue-1.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.14

File hashes

Hashes for patch_issue-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a7831fe12ae7c0b0df6b6d2899a0722a1a13bca90f43de6e556c93827d155822
MD5 2ec357dcf6f08f8d351d95fb8085d070
BLAKE2b-256 e2189e59a46f2db0bee9975fa8f2f9b3f0e13e09151fd4f26bcdb278ffd1018d

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