All Projects → pawelrychlik → Jira Dependency Graph

pawelrychlik / Jira Dependency Graph

Licence: mit
Graph visualizer for JIRA tickets' dependencies

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects
python27
39 projects

Projects that are alternatives of or similar to Jira Dependency Graph

Clj Xchart
XChart wrapper for Clojure
Stars: ✭ 105 (-45.88%)
Mutual labels:  graph, chart
Coingraph
Coingraph is a real-time graph for cryptocurrencies.
Stars: ✭ 116 (-40.21%)
Mutual labels:  graph, chart
Workbase
Grakn Workbase (Knowledge IDE)
Stars: ✭ 106 (-45.36%)
Mutual labels:  graph, graph-visualization
V Chart Plugin
Easily bind a chart to the data stored in your Vue.js components.
Stars: ✭ 188 (-3.09%)
Mutual labels:  graph, chart
Npmcharts.com
Compare npm package downloads over time
Stars: ✭ 129 (-33.51%)
Mutual labels:  graph, chart
Highcharts Chart
Polymer Element wrapper for highcharts library. Seamlessly create various types of charts from one element.
Stars: ✭ 97 (-50%)
Mutual labels:  graph, chart
Android Ratingreviews
Simple star rating system bars, a view similar to the ones seen on Google Playstore. ⭐🌟✨
Stars: ✭ 110 (-43.3%)
Mutual labels:  graph, chart
Spark
A simple Android sparkline chart view.
Stars: ✭ 1,178 (+507.22%)
Mutual labels:  graph, chart
Asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Stars: ✭ 1,805 (+830.41%)
Mutual labels:  graph, chart
React D3 Components
D3 Components for React
Stars: ✭ 1,599 (+724.23%)
Mutual labels:  graph, chart
C3
📊 A D3-based reusable chart library
Stars: ✭ 9,163 (+4623.2%)
Mutual labels:  graph, chart
Neo4j 3d Force Graph
Experiments with Neo4j & 3d-force-graph https://github.com/vasturiano/3d-force-graph
Stars: ✭ 159 (-18.04%)
Mutual labels:  graph, graph-visualization
Diffract
A set of d3 based visualization components built for React
Stars: ✭ 87 (-55.15%)
Mutual labels:  graph, chart
Actionview
An issue tracking tool based on laravel+reactjs for small and medium-sized enterprises, open-source and free, similar to Jira.
Stars: ✭ 1,357 (+599.48%)
Mutual labels:  project-management, jira
Bitcoin Scraper
💲 bitcoin chart history scraper
Stars: ✭ 80 (-58.76%)
Mutual labels:  graph, chart
Py Ascii Graph
A simple python lib to print data as ascii histograms
Stars: ✭ 107 (-44.85%)
Mutual labels:  graph, chart
Rainbarf
it's like Rainmeter, but for CLI!
Stars: ✭ 1,087 (+460.31%)
Mutual labels:  graph, chart
Asciichart
Nice-looking lightweight console ASCII line charts ╭┈╯ for NodeJS, browsers and terminal, no dependencies
Stars: ✭ 1,107 (+470.62%)
Mutual labels:  graph, chart
X6
🚀 JavaScript diagramming library that uses SVG and HTML for rendering.
Stars: ✭ 2,686 (+1284.54%)
Mutual labels:  graph, chart
Aachartkit Swift
📈📊📱💻🖥️An elegant modern declarative data visualization chart framework for iOS, iPadOS and macOS. Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types. 极其精美而又强大的跨平台数据可视化图表框架,支持柱状图、条形图、…
Stars: ✭ 1,962 (+911.34%)
Mutual labels:  graph, chart

jira-dependency-graph

Graph visualizer for dependencies between JIRA tickets. Takes into account subtasks and issue links.

Uses JIRA rest API v2 for fetching information on issues. Uses Google Chart API for graphical presentation.

Example output

Example graph

Requirements:

Or

Usage:

$ git clone https://github.com/pawelrychlik/jira-dependency-graph.git
$ virtualenv .virtualenv && source .virtualenv/bin/activate # OPTIONAL
$ cd jira-dependency-graph
$ pip install -r requirements.txt
$ python jira-dependency-graph.py --user=your-jira-username --password=your-jira-password --jira=url-of-your-jira-site issue-key

Or if you prefer running in docker:

$ git clone https://github.com/pawelrychlik/jira-dependency-graph.git
$ cd jira-dependency-graph
$ docker build -t jira .
$ docker run -v $PWD/out:/out jira python jira-dependency-graph.py --user=your-jira-username --password=your-jira-password --jira=url-of-your-jira-site --file=/out/output.png issue-key
# e.g.:
$ python jira-dependency-graph.py --user=pawelrychlik --password=s3cr3t --jira=https://your-company.jira.com JIRATICKET-718

Fetching JIRATICKET-2451
JIRATICKET-2451 <= is blocked by <= JIRATICKET-3853
JIRATICKET-2451 <= is blocked by <= JIRATICKET-3968
JIRATICKET-2451 <= is blocked by <= JIRATICKET-3126
JIRATICKET-2451 <= is blocked by <= JIRATICKET-2977
Fetching JIRATICKET-3853
JIRATICKET-3853 => blocks => JIRATICKET-2451
JIRATICKET-3853 <= relates to <= JIRATICKET-3968
Fetching JIRATICKET-3968
JIRATICKET-3968 => blocks => JIRATICKET-2451
JIRATICKET-3968 => relates to => JIRATICKET-3853
Fetching JIRATICKET-3126
JIRATICKET-3126 => blocks => JIRATICKET-2451
JIRATICKET-3126 => testing discovered => JIRATICKET-3571
Fetching JIRATICKET-3571
JIRATICKET-3571 <= discovered while testing <= JIRATICKET-3126
Fetching JIRATICKET-2977
JIRATICKET-2977 => blocks => JIRATICKET-2451

Writing to issue_graph.png

Result: Example result

Advanced Usage:

List of all configuration options with descriptions:

python jira-dependency-graph.py --help

Excluding Links

In case you have specific issue links you don't want to see in your graph, you can exclude them:

$ python jira-dependency-graph.py --user=your-jira-username --password=your-jira-password --jira=url-of-your-jira-site --exclude-link 'is required by' --exclude-link 'duplicates' issue-key

The grapher will still walk the link, just exclude the edge. This especially useful for bidirectional links and you only want to see one of them, e.g. depends on and is required by.

Excluding Epics

In case you want to exclude walking into issues of an Epic, you can ignore them:

$ python jira-dependency-graph.py --user=your-jira-username --password=your-jira-password --jira=url-of-your-jira-site --ignore-epic issue-key

Including Issues

In order to only specify issues with a certain prefix pass in --issue-include <XXX> and all tickets will be checked that they match the prefix XXX.

Excluding Issues

By passing in --issue-exclude, or -xi the system will explicitly ignore the ticket. It can be repeated multiple times, e.g. -xi MYPR-456 -x MYPR-999 to ignore both issues. Use it as a last-resort only, when other means of exclusion do not suit your case, e.g. to omit a part of the graph for better readability.

Authentication

It is possible to either use the username/password combination or to login via the browser passing in --cookie <JSESSIONID>. This logins via the browser and is useful in scenarios where Kerberos authentication is required.

If you are using Atlassian Cloud, use your API token instead of your account password. You can generate one with the following steps:

  1. Access https://id.atlassian.com/manage-profile/security/api-tokens.
  2. Click "Create API token".
  3. Copy the token and store it in a safe place.

More details about API authentication is available in the official documentation.

Closed Issues

By passing in --ignore-closed the system will ignore any ticket that is closed.

Multiple Issues

Multiple issue-keys can be passed in via space separated format e.g.

$ python jira-dependency-graph.py --cookie <JSESSIONID> issue-key1 issue-key2

JQL Query

Instead of passing issue-keys, a Jira Query Language command can be passed with --jql e.g.

$ python jira-dependency-graph.py --cookie <JSESSIONID> --jql 'project = JRADEV'

Usage without Google Graphviz API:

If you have issues with the Google Graphviz API limitations you can use your local graphviz installation like this:

$ git clone https://github.com/pawelrychlik/jira-dependency-graph.git
$ cd jira-dependency-graph
$ python jira-dependency-graph.py --user=your-jira-username --password=your-jira-password --jira=url-of-your-jira-site --local issue-key | dot -Tpng > issue_graph.png

Note: Its possible that the graph produced is too wide if you have a number of issues. In this case, it is better to firstly pipe the graph to a 'dot' text file e.g.

$ python jira-dependency-graph.py --jira=url-of-your-jira-site --local issue-key > graph.dot

and then process it using unflatten:

unflatten -f -l 4 -c 16 graph.dot  | dot | gvpack -array_t6 | neato -s -n2 -Tpng -o graph.png

For a slightly cleaner layout (that preserves the ranks), or if your system doesn't have unflatten, you can use sed to insert rankdir=LR; into the dot file before processing it:

sed -i 's/digraph{/digraph{ rankdir=LR;/g' graph.dot | dot -o graph.png -Tpng

Notes:

Based on: draw-chart.py and Atlassian JIRA development documentation, which seemingly was no longer compatible with JIRA REST API Version 2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].