Skip to content

IHJ: Instant High-speed Jira... - #4

Merged
mikecsmith merged 4 commits into
mainfrom
mikecsmith/jira-refactor
Mar 19, 2026
Merged

mikecsmith merged 4 commits into
mainfrom
mikecsmith/jira-refactor

Conversation

@mikecsmith

Copy link
Copy Markdown
Owner

Full refactor of the j bash scripts to a python utility - changes:

  • Completely removes the dependency on the jira CLI
  • Integrates with fzf for UI
  • Does require yq (the Go version)
  • Updates stow.sh
  • ADF parsers
  • Full ANSI colouring in fzf - including hierarchy
  • Edit, Comment, New all handled via direct Jira API calls
  • Open handled natively
  • CLI mode and FZF integration for new, edit, comment - with console notifications for cli and toast messages in fzf
  • New more robust branch handling

@mikecsmith
mikecsmith requested a review from Copilot March 19, 2026 14:01
@mikecsmith
mikecsmith merged commit 6929565 into main Mar 19, 2026
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the dotfiles Jira helper from the legacy apps/jira bash + jira CLI workflow into a new Python-based apps/ihj utility that talks directly to the Jira API and drives an fzf-based TUI.

Changes:

  • Added a new apps/ihj Python utility (config loading/validation, Jira API client/payloads, ADF⇄Markdown formatting, and fzf TUI rendering/bindings).
  • Updated installation/stowing to introduce an ihj executable entrypoint.
  • Removed the previous apps/jira bash subcommands, utils, schemas, and templates.

Reviewed changes

Copilot reviewed 33 out of 36 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
stow.sh Updates stow/link behavior to introduce the ihj command.
apps/jira/utils/jira/validate_with_schema.sh Removes legacy bash YAML/schema validation helper.
apps/jira/utils/jira/validate_param.sh Removes legacy bash param validation helper.
apps/jira/utils/jira/get_filter.sh Removes legacy bash JQL filter builder using jira me.
apps/jira/utils/jira/get_active_sprint.sh Removes legacy bash sprint lookup via curl/jq.
apps/jira/utils/jira/build_frontmatter.sh Removes legacy bash frontmatter builder.
apps/jira/utils/jira/append_template.sh Removes legacy bash template appender.
apps/jira/utils/fzf/pipe_to_fzf.sh Removes legacy fzf pipeline and bindings built around jira CLI.
apps/jira/templates/task.md Removes legacy issue template.
apps/jira/templates/story.md Removes legacy issue template.
apps/jira/templates/epic.md Removes legacy issue template.
apps/jira/templates/bug.md Removes legacy issue template.
apps/jira/subcommands/show.sh Removes legacy show subcommand implementation.
apps/jira/subcommands/create.sh Removes legacy create subcommand implementation.
apps/jira/schemas/frontmatter.json Removes static legacy frontmatter schema.
apps/jira/j Removes legacy bash entrypoint for j.
apps/ihj/ihj Adds the new Python entrypoint orchestrating config, cache, API calls, export, and fzf UX.
apps/ihj/constants.py Adds ANSI styling constants shared across the TUI.
apps/ihj/config/io.py Adds config file/YAML parsing via yq.
apps/ihj/config/processor.py Adds config validation + derived maps (type order, formatted custom fields).
apps/ihj/config/__init__.py Initializes config package.
apps/ihj/jira/client.py Adds Jira REST/Agile API calls (search, transitions, issue updates, sprint ops).
apps/ihj/jira/payloads.py Adds request/response payload builders and helpers.
apps/ihj/jira/jql_builder.py Adds safe JQL construction and safety checks.
apps/ihj/jira/markdown.py Adds ADF⇄Markdown conversion + frontmatter/body splitting.
apps/ihj/jira/hierarchy.py Adds export hierarchy building and hashing.
apps/ihj/jira/idempotency.py Adds deterministic hashing for change detection.
apps/ihj/jira/persistence.py Adds export metadata/state persistence helpers.
apps/ihj/jira/__init__.py Initializes jira package.
apps/ihj/tui/formatters.py Adds ANSI formatting helpers + status/priority styling.
apps/ihj/tui/view_builders.py Adds registry/preview builders for fzf list + preview panes.
apps/ihj/tui/terminal.py Adds fzf launcher, raw-mode numeric menu, editor integration, and notifications.
apps/ihj/tui/__init__.py Initializes tui package.
apps/ihj/commands/upsert.py Adds edit/create (“upsert”) workflow including schema generation and transitions/sprint ops.
apps/ihj/commands/comment.py Adds comment workflow using the Jira API.
apps/ihj/.gitignore Adds Python-specific ignores for the new app directory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread stow.sh
Comment thread apps/ihj/tui/terminal.py
Comment thread apps/ihj/tui/terminal.py
Comment on lines +104 to +106
cmd = [editor_cmd]

if any(v in editor_cmd.lower() for v in ["vim", "nvim", "vi"]):
Comment thread apps/ihj/tui/formatters.py
Comment thread apps/ihj/tui/view_builders.py
Comment thread apps/ihj/commands/comment.py
Comment thread apps/ihj/tui/view_builders.py
Comment thread apps/ihj/commands/upsert.py
Comment thread apps/ihj/tui/terminal.py
Comment thread apps/ihj/tui/terminal.py
@mikecsmith mikecsmith changed the title IHJ: I HATE JIRA IHJ: Instant High-speed Jira... Mar 19, 2026
mikecsmith added a commit that referenced this pull request Apr 1, 2026
* feat: full python tui refactor

feat: partial refactor to ihj

* chore: remove legacy jira app

* fix: imports and help menu fixes

* chore: update stow for ihj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants