Giter VIP home page Giter VIP logo

jira2org-story.py's Introduction

jira2org-story.py - Extract Jira Issues and Generate Org-mode Headings

This Python script fetches information of Jira issues and returns an Org-mode representation of those issues in Org-mode format. This Org-mode format is highly specific for my own purpose but you are able to modify this structure to meet your requirements. Therefore, this script works as a blueprint or template for you.

You can use one to many Jira issue numbers (for stories) as command line parameter. If you use Jira issues that are Epics, all corresponding stories are retrieved as well.

  • Author: Karl Voit
  • License: GPLv3 or higher
  • Coding was started in May 2016

Installation

  1. Install Python version 2.x
  2. Install Python Jira library via pip install jira or similar
  3. Invoke the script via python ./jira2org-story.py
  4. Generate the file jiraconfig.py
    • similar to the template from the previous script output
    • in the same directory as the other Python script
  5. Re-start the script via python ./jira2org-story.py 1234 and it should give you a similar output as stated below

Command Line Parameters

python ./jira2org-story.py --help
usage: jira2org-story.py [-h] [--version] IPD [IPD ...]

This tool retrieves a Jira issue and returns an Org-mode
representation according to the system of Karl Voit.

The output is highly specific for my personal usage. If you want to have
a similar functionality, you have to adapt it to your needs. This would
require at least a search&replace of "IPD" with the Jira project ID of
your choice, all Jira URLs, and the custom org-mode link "ipd:1234".

positional arguments:
  IPD         One or many IPD numbers of stories or epics (without "IPD-"
              prefix)

optional arguments:
  -h, --help  show this help message and exit
  --version   show program's version number and exit

autor:      Karl Voit <[email protected]>
license:    GPL v3 or any later version
URL:        https://github.com/novoid/jira2org-story.py/
bugreports: via GitHub
version:    Time-stamp: <2016-05-13 14:00:47 karl.voit>

Motivation and Similar Projects

I work as a Product Owner in an agile Scrum process. To simplify my digial life, I use Org-mode for almost everything there is.

For managing my scrum stories, I was using an Org-mode representation long before I extracted things from Jira via scripts. I did not want to change how I am using Org-mode for Jira stories.

This is why I do not use ready-to-use projects that mirror or synchronize Jira with Org-mode:

Example

Following headings are an example output when I call my script with the parameter “1234” (as of 2016-05-14).

Usually, I do use babel to execute the script:

#+BEGIN_SRC sh :results output raw :dir c:/Users/karl.voit/src/jira2org-story.py/
c:/Users/karl.voit/src/jira2org-story.py/jira2org-story.py 1234
#+END_SRC

Some remarks:

  • Please note that I make use of task dependencies using TRIGGER and BLOCKER properties according to org-depend.el.
  • I did create a customized link so that “IPD:1234” links to its Jira representative “https://product.infonova.at/jira/browse/IPD-1234”.
  • Usually, I manually do search&replace “i1234” with a human-readable short version of the story title.
  • You might wonder about the status “NEXT”. I am using “TODO” to define a task which will be of interest in future (but not now) and “NEXT” for a task that can be done now.

This structure is in constant change as I add and remove things or modify my Org-mode-related workflows.

*** TODO [[IPD:1234]] This Is The Title Of The Story [0/7]                   :US_i1234:
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-Story-i1234
:END:

| [[IPD:1234][1234]] | This Is The Title Of The Story | Joe.Assignee |

**** STARTED create Jira [[IPD:1234]]
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-i1234-create-jira-ipd
:BLOCKER:
:TRIGGER:  2016-05-14-i1234-define-champ(NEXT) 2016-05-14-i1234-estimation(NEXT)
:END:

- fill out:
  - [X] set reporter
  - [ ] set level red
  - [ ] fixVersion

**** NEXT create Confluence page with template
SCHEDULED: <2016-05-14>
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:ID:    2016-05-14-i1234-create-confluence-page
:BLOCKER:
:TRIGGER:  2016-05-14-i1234-write-acceptance-criteria(NEXT)
:END:

- fill out:
  - [ ] add Jira-Link [[IPD:1234]]
  - [ ] PO
  - [ ] Title
  - [ ] Business Value
- [ ] add Confluence-short-URL to story table above

**** TODO write Acceptance Criteria, Docu, Perms
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-i1234-write-acceptance-criteria
:BLOCKER: 2016-05-14-i1234-create-confluence-page
:TRIGGER: 2016-05-14-i1234-confidence-green(NEXT) 2016-05-14-i1234-hand-over-team(NEXT)
:END:

**** TODO add Champ to Confluence and Jira                                            :refinement:
:PROPERTIES:
:CATEGORY: refinement
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-i1234-define-champ
:BLOCKER:
:END:

**** TODO get Estimation on [[IPD:1234]]                                                  :refinement:
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:CATEGORY: refinement
:ID: 2016-05-14-i1234-estimation
:BLOCKER: 2016-05-14-i1234-create-jira-ipd
:TRIGGER:
:END:

- Estimation:

**** TODO get confidence-level green on [[IPD:1234]]                                      :refinement:
:PROPERTIES:
:CATEGORY: refinement
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-i1234-confidence-green
:BLOCKER: 2016-05-14-i1234-write-acceptance-criteria 2016-05-14-i1234-estimation
:TRIGGER:
:END:

**** TODO hand over to team
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:BLOCKER: 2016-05-14-i1234-write-acceptance-criteria 2016-05-14-i1234-estimation
:ID: 2016-05-14-i1234-hand-over-team
:TRIGGER:  2016-05-14-i1234-accept(WAITING) 2016-05-14-Story-i1234(TEAM)
:END:

**** acceptance + finish US
:PROPERTIES:
:CREATED:  [2016-05-14 Sat 19:14]
:ID: 2016-05-14-i1234-accept
:BLOCKER: 2016-05-14-i1234-hand-over-team
:TRIGGER: 2016-05-14-Story-i1234(DONE)
:END:

jira2org-story.py's People

Contributors

novoid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

zsoltika

jira2org-story.py's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.