Simple drag-and-drop organizer for Jira issues.
Note: it's recommended to use a Python virtual environment. (python -m venv .venv
)
- Install required libraries with
pip install -r requirements.txt
. - Copy
.env-sample-local
to.env
and update with your configuration. - Copy
jira_organizer/config/sample.py
tojira_organizer/config/settings.py
and update, if needed. - Run with
flask --app jira_organizer:app run
- Access from http://localhost:5000.
- Copy
.env-sample-docker
to.env
and update with your configuration. - Bring up the stack with
make docker_run
ordocker-compose up -d
. - Access from http://localhost:5000.
If you want to use your own config file and not rely on environment variables, you can add a bind mount to the Compose file directly to your config file and set the CONFIG_MODULE
environment variable.
To run make
commands on Windows, install Chocolatey and run choco install make
.
make docker_run
: Starts the Docker stackmake docker_stop
: Stops the Docker stackmake docker_build
: Builds the Docker stackmake docker_rebuild
: Runsdocker_stop
,docker_build
, anddocker_run
-- this is needed when the repo is updated
make run
: Starts the Flask servermake debug
: Starts the Flask server in debug mode
Configuration is done through a Python module or environment variables.
The Python module can be set by CONFIG_MODULE
and defaults to jira_organizer.config.config
. (Any config modules should include from config.base import *
.)
Environment variables are the same as their names below. dict
or list
configurations are processed as JSON.
Other environment variables available:
DATA_DIR
: directory for data to be stored (defaults to./data
)DATA_FILE
: data storage file (defaults todata.json
)CACHE_DIR
: directory for the cache data (defaults to./data/cache
)CACHE_TIMEOUT
: TTL for cache (defaults to300
seconds)
Number of seconds between auto refresh. Set to 0
to disable.
Defaults to 60
.
The subdomain of your organizations Jira site.
For example acmeinc
is the subdomain for https://acmeinc.atlassian.net/
.
Your Atlassian account username -- usually your e-mail.
A Personal Access Token (PAT) created from here.
API endpoint for Jira. Automatically set if not defined.
Settings for GitHub integration.
jira_custom_field
: Name of the custom field for GitHub integration
These settings are the defaults for how the organizer displays issues. This same dictionary format is used for defining a view's display
settings.
See Display Settings.
Dictionary of views where the key is the name of the view (no spaces) and the value is a dictionary of the options below.
jql
: JQL for the viewtitle
: Title to be showndisplay
: See Display Settingsallow_sorting
: Allows for sorting of issues (defaults toTrue
)
If no default view is specified, a view will be added for open issues of the current user.
Name of the default view.
Defaults to default
.
For each issue, the following metadata is extracted:
status
: Statusissue_type
: Issue typegithub
: GitHub pull request and build statusesreporter
: Name of the reporterproject
: Project nameassignee
: Name of the assigneepriority
: Prioritylabels
: Comma separated list of labelsparent
: Parent Jira information
List of flags for displaying components in the issue. Right now, these dictate the metadata shown in the issue template with the show_<metadata>
flags.
List of sluggified status names to be shown in the Other column.
The following are available metadata from the Jira issue. Each item has its own key and can be independently configured.
The keys in the item's configuration is the sluggified value. The following keys are allowed:
color
: Bootstrap color classicon
: Font Awesome 5 Free icon class
There are two special keys:
_
for item configuration and defaults:
singular_name
: Display name in singular formplural_name
: Display name in plural form (defaults tosingular_name
)color
: Bootstrap color classicon
: Font Awesome 5 Free icon classshow_in_small
: Show in the hidden and other columns
_displays
for overriding the displays with the key is the value as it comes from Jira and the value is the overridden display.
CachingMove issue to top/bottomExport issues (for pasting into Slack)- Expanded view modal
Expand display configurationDockerize
0.10
- Better Docker and local support; fixed bugs0.9
- Expanded display settings; moved config into its own module; made the sample config use environment variables; Dockerized; fixed bugs0.8
- Refactor of display settings and display; UI tweaks0.7
- Added new component displays; refactored display settings; minor UI tweaks0.6
- Added auto refresh0.5
- Added caching; refactored main view to use APIs0.4
- Added multiple views; various cosmetic changes0.3
- Added ability to hide issues; fixed issue withData
object; added priority display0.2
- Added export view and ability to move issue to top/bottom0.1
- Initial release