Track your patches easily with Jira integration
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
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 |
Filename, size patch_issue-1.0.0.tar.gz (4.5 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for patch_issue-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7831fe12ae7c0b0df6b6d2899a0722a1a13bca90f43de6e556c93827d155822 |
|
MD5 | 2ec357dcf6f08f8d351d95fb8085d070 |
|
BLAKE2-256 | e2189e59a46f2db0bee9975fa8f2f9b3f0e13e09151fd4f26bcdb278ffd1018d |