#parent #api-token #solve #jirun

bin+lib jirun

A Cli Generating JIRA sub-tasks from a template with a specified parent

18 breaking releases

new 0.22.0 Apr 22, 2025
0.20.0 Apr 22, 2025

#55 in Template engine

Download history 1370/week @ 2025-04-15

1,370 downloads per month

MIT/Apache

42KB
980 lines

πŸ› οΈ Jirun

A CLI tool that generates JIRA sub-task(s) with pre-populated field values.

Table of Contents


πŸ’‘ What Problem Does It Solve?

Tired of the repetitive JIRA sub-task creating dance? You know β€” clicking "new", selecting "Sub-task", give a descriptive name, assigning yourself, adding the "teamX" label, clicking "create"... and 10+ sub tasks in the queue...

jirun eliminates this tedium by generating sub-tasks with pre-filled fieldsβ€”saving you time and keeping your workflow smooth.

πŸš€ Quick Start

  1. Initialize Configuration:
jirun init --global

This creates .jirun.toml and .env files in OS preferred directory.

  1. Edit Configuration:
  • In .env set your JIRA user bearer token: the authentication to create sub-tasks.
  • In .jirun.toml define server url, templated subtask field and value(s), and subtasks to be created when running jirun template and jirn new commands.
  1. Dry Run
jirun template --parent PROJ-123 --dry-run # then without `--dry-run` for the real action.

When you are not sure, this command prints out the raw payloads without sending the real request.

  1. Create new Sub-tasks
jirun new --parent PROJ-123

This command creates JIRA sub-tasks defined in [sub_tasks.new_tasks]. Each subtask per line.

✨ Other Features

  • 🌍 Support generating global (jirun init --global) or local (jirun init) config files.
  • πŸ” Detect and skip subtasks that are already existing.

πŸš€ Usage

Usage: jirun <COMMAND>

Commands:
  init      Create .jirun.toml and .env (defaults to the local directory)
  new       Create sub-tasks from [sub_tasks.new_tasks] in .jirun.toml
  template  Create sub-tasks from [sub_tasks.template_tasks]
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

πŸ“˜ Examples:
  1. jirun help init
     Help menu on initializing jirun's configuration files.

  2. jirun init --global
     Create config files in the global directory.

  3. jirun template --parent PROJ-123
     Use [sub_tasks.template_tasks] to create sub-tasks under PROJ-123

  4. jirun new --parent PROJ-123 --assignee alice
     Use [sub_tasks.new_tasks], overriding assignee with 'alice'

  5. jirun template -p PROJ-123 --dry-run
     Show request payloads without sending to JIRA

πŸ“₯ Installation

1. Script Install

For Linux/MacOS

curl -sL https://raw.githubusercontent.com/xixiaofinland/jirun/main/scripts/install-jirun.sh | bash

For Windows (PowerShell)

iwr -useb https://raw.githubusercontent.com/xixiaofinland/jirun/main/scripts/install-jirun.ps1 | iex

Note

If you see an error like "This script contains malicious content and has been blocked by your antivirus software", it means Microsoft Defender flagged it for downloading and executing content from the internet. To proceed, either lower Defender’s protection or break the script into smaller steps:

# Step 1: Review the script manually
Invoke-WebRequest -Uri https://raw.githubusercontent.com/xixiaofinland/jirun/main/scripts/install-jirun.ps1 -OutFile install-jirun.ps1
notepad install-jirun.ps1  # Inspect the content

# Step 2: Run after trust
powershell -ExecutionPolicy Bypass -File install-jirun.ps1

2. Cargo Install

jirun is published in creates.io here. Run cmd below if you have the Cargo tool.

cargo install jirun

3. Manual Download

Visit the release page and download the appropriate binary for your operating system (Linux, macOS, or Windows).

🧰 Configuration

Run .jirun init --global to generate the config template files.

.jirun.toml:

[server]
url = "https://yourcompany.atlassian.net"

[prefill]
labels = ["cli", "auto"]
assignee = "john.doe"

[sub_tasks]
template_tasks = """
Design API schema
Implement service logic
Write integration tests
"""

new_tasks = """
Fix login bug
Improve error messages
Document usage
"""

.env:

JIRA_TOKEN=your-api-token-here

❓ FAQ

What's the difference between putting sub-tasks under template_tasks or new_tasks section in .jirun.toml?

template_tasks:

  • Executed by jirun template command
  • Store sub-tasks you repeat frequently across different tickets
  • Reusable workflow patterns

new_tasks:

  • Executed by jirun new command
  • For ad-hoc, ticket-specific sub-tasks
  • One-off task sequences

Both commands share the same underlying logic - the separation simply helps organize your brain between standard templates and custom task lists.

πŸ“„ License

MIT

Dependencies

~5–17MB
~219K SLoC