Gantt chart generator from Jira to Confluence
Project description
Jira to Confluence gantt chart generator
Table of Contents
Overview
This module has the objective to create a gantt chart from Jira data and publish and publish the resulting chart and status on Confluence. It provides different render engines, but it is easy to add its own custom engine :
Installation
From PyPI (Recommended)
You can install the exporter easily with the following command or insert into your requirements file :
pip install jira2confluence-gantt
From sources
It is recommended to use a virtual environment :
python -m venv venv
To install the module and the main script, simply do :
pip install .
For the developers, it is useful to install extra tools like :
These tools can be installed with the following command :
pip install .[dev]
The Git hooks can be installed with :
pre-commit install
The hooks can be run manually at any time :
pre-commit run --all-file
Usage
The script with required argument can be started by executing the following command :
./jira2confluence-gantt my_config.yaml
The full list of arguments supported can be displayed with the following helper :
./jira2confluence-gantt.exe -h
usage: jira2confluence-gantt [-h] [-v] [config.yaml]
positional arguments:
config.yaml Configuration file
options:
-h, --help show this help message and exit
-v, --verbose Verbose mode
Configuration
The configuration file support 2 formats :
- YAML format (Recommended format)
- JSON format
In the configuration file, there are 2 main sections required :
- Server
- Projects
Server configuration
The Server node will configure the URL of the Jira and Confluence server.
For the moment, only the username/token authentication is supported.
The credentials could be defined with environment variables or .env
file.
ATLASSIAN_USER=<your login>
ATLASSIAN_TOKEN=<your token>
In Yaml :
Server:
Jira: "https://my.jira.server.com"
Confluence: "https://my.confluence.server.com"
In Json :
{
"Server": {
"Jira": "https://my.jira.server.com",
"Confluence": "https://my.confluence.server.com"
}
}
Server
Main configuration node for server.
It is a mandatory field.
Jira
Define the Jira server URL to retrieve tickets information to construct Gantt
chart.
It is a mandatory field.
Confluence
Define the Confluence server URL to publish the report.
It is an optional field. If the confluence server isn't set, only the gantt
chart will be generated if the engine permit it.
Project configuration
The Projects
node will provide the configuration for each project.
In Yaml :
Projects:
<Project name>:
JQL: "project = TEST"
Report:
Engine: "PlantUML" # Confluence
Model: "report.jinja2"
Fields:
Start date: "Start date (WBSGantt)"
End date: "Finish date (WBSGantt)"
Progress: "Progress (WBSGantt)"
In Json :
{
"Projects": {
"<Project name>": {
"JQL": "project = TEST",
"Report": {
"Engine": "PlantUML",
"Model": "report.jinja2"
},
"Fields": {
"Start date": "Start date (WBSGantt)",
"End date": "Finish date (WBSGantt)",
"Progress": "Progress (WBSGantt)"
}
}
}
}
Projects
Main configuration node for all projects.
It is a mandatory field.
<Project name>
Must be replaced by the name of the project. It is a mandatory field. This name will be used as a title in the Gantt chart and also as a name in Snake case format for the output gantt file.
For example, the following configuration could produce an output file My_important_project.svg :
In Yaml :
Projects:
My important project:
JQL: "project = TEST"
# ...
In Json :
{
"Projects": {
"My important project": {
"JQL": "project = TEST"
}
}
}
JQL
In order to retrieve the list of tickets to construct the Gantt chart, Jira
provides a convenient syntax the JQL.
It is a mandatory field.
Some fields could use double quotes to preserve space in their names. The YAML syntax provides a solution by replacing with simple quote or escaping like JSON :
In Yaml :
JQL: 'project = "MY TEST"'
In Json :
{
"JQL": "project = \"MY TEST\""
}
Report
For each project, the Report
node must be defined to defined how it is
generated.
It is a mandatory field.
Engine
There are several engines available to produce Gantt chart :
Confluence
chart macro : Produce a chart with a builtin macro. The graph will not include the dependency link.PlantUML
macro : Produce a PlantUML graph which will be included in the Confluence page with the PlantUML macro.
It is an optional field. The Confluence
engine will be used by default.
In Yaml :
Report:
Engine: "PlantUML"
In Json :
{
"Report": {
"Engine": "PlantUML"
}
}
Space
The Space
attribute is used to defined the Confluence destination space.
It is a mandatory field.
In Yaml :
Report:
Space: "SPACE"
In Json :
{
"Report": {
"Space": "SPACE"
}
}
Parent page
The Parent page
attribute is used to define the Confluence parent page of the
report page.
It is a mandatory field.
In Yaml :
Report:
Parent page: "My Parent Page"
In Json :
{
"Report": {
"Parent page": "My Parent Page"
}
}
Legend
The Legend
attribute is used to define if a legend is added in the gantt
chart.
It is a mandatory field, by default the legend is not added.
In Yaml :
Report:
Legend: true
In Json :
{
"Report": {
"Legend": true
}
}
Model (Not implemented yet)
The Model
template is a filename written with Jinja2.
It will define how the Confluence page will be rendered.
The template uses Confluence Wiki Markup.
It is an optional field. the template contains only the Gantt chart.
In Yaml :
Report:
Engine: "PlantUML"
Model: "report.jinja2"
In Json :
{
"Report": {
"Engine": "PlantUML",
"Model": "report.jinja2"
}
}
Fields
Configuration node for all Jira fields used to construct Gantt chart.
It is a mandatory field.
In Yaml :
These fields are most of the time the same for all projects and like all others
fields they could be aliased to avoid redefinition.
In the following example, we define an anchor WbsFields
:
Server:
# ...
Fields: &WbsFields
Start date: "Start date (WBSGantt)"
End date: "Finish date (WBSGantt)"
Progress: "Progress (WBSGantt)"
Projects:
Project name:
JQL: "project = TEST"
Fields: *WbsFields
Second project name:
JQL: "project = TEST2"
Fields: *WbsFields
In Json :
{
"Projects": {
"Project name": {
"Fields": {
"Start date": "Start date (WBSGantt)",
"End date": "Finish date (WBSGantt)",
"Progress": "Progress (WBSGantt)",
}
}
}
}
Start date
Define the Jira field to use as a start date for task in Gantt chart.
It is a mandatory field.
End date
Define the Jira field to use as a start date for task in Gantt chart.
It is a mandatory field.
Progress
Define the Jira field to use as a percent of work done for task in Gantt chart.
It is an optional field.
Link
Define the Jira inward link to use in order to define how the tasks could be
blocked by others tasks task in Gantt chart.
It is an optional field. By default, the link used is "is blocked by"
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
Built Distribution
File details
Details for the file jira2confluence-gantt-0.3.0.tar.gz
.
File metadata
- Download URL: jira2confluence-gantt-0.3.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4bfcd8d61911636e31b0d148b986d04ec57fbe49401d768270c758e6065106a |
|
MD5 | a5556db95b26697c88137ab502f4a07b |
|
BLAKE2b-256 | 9093aebe2150a017a2c91d44a7c8821a3b337b39afac2c02c46b060b38d492c3 |
Provenance
File details
Details for the file jira2confluence_gantt-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: jira2confluence_gantt-0.3.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd40e1769ea96629a55c588d0e7880a23ef1ffd868a1119e7bd3028e65bca98a |
|
MD5 | 2d581bbe782f7565a937a97dc99dfae1 |
|
BLAKE2b-256 | fc60cdf1540e25a7bf2558e7c697c17402cb47962b352550a7a6b259edb91189 |