{"id":26257108,"url":"https://github.com/baarsgaard/jig","last_synced_at":"2025-10-28T03:02:04.536Z","repository":{"id":185543210,"uuid":"655374102","full_name":"Baarsgaard/jig","owner":"Baarsgaard","description":"Jira integration with Git","archived":false,"fork":false,"pushed_at":"2025-04-05T14:17:44.000Z","size":392,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-28T15:15:21.925Z","etag":null,"topics":["cli","commit-msg","git","git-hook","jira","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Baarsgaard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-18T17:44:15.000Z","updated_at":"2025-04-05T14:07:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"49456067-63c6-47e2-9375-7368682afcdd","html_url":"https://github.com/Baarsgaard/jig","commit_stats":null,"previous_names":["raunow/jig","baarsgaard/jig"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baarsgaard%2Fjig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baarsgaard%2Fjig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baarsgaard%2Fjig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baarsgaard%2Fjig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Baarsgaard","download_url":"https://codeload.github.com/Baarsgaard/jig/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251336389,"owners_count":21573188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","commit-msg","git","git-hook","jira","rust"],"created_at":"2025-03-13T20:28:23.332Z","updated_at":"2025-10-28T03:02:04.530Z","avatar_url":"https://github.com/Baarsgaard.png","language":"Rust","readme":"[![Build Status](https://github.com/baarsgaard/jig/actions/workflows/integration.yml/badge.svg)](https://github.com/baarsgaard/jig/actions)\n\n# Jig\n\nJira Integration with Git CLI.\n\nJig is an attempt at making it easier for me and my colleagues to collaborate on jira issues.  \nSpecifically:\n- Making it simpler to create branches with descriptive names.\n- Automatically include issue key in commits.\n- Simplifying issue administration and workflow\n  - Creating Worklogs.\n  - Transitioning issues.\n  - Assigning to others.\n  - Bonus: [Scripting](./scripts/weekly_worklogs.sh) Jira interactions.\n\n\n## Usage\n\n```bash\n$ jig help\n\nA Jira CLI integration with Git\n\nUsage: jig \u003cCOMMAND\u003e\n\nCommands:\n  assign      Assign user to issue\n  branch      Create and checkout branch using issue key with(out) summary as branch name\n  comment     Create comment on a Jira Issue\n  completion  Generate completion script\n  configs     List config file locations\n  hook        Install git commit-msg hook\n  init        Initialise config file(s)\n  worklog     Create a work log entry on a Jira issue\n  transition  Move ticket through transitions\n  open        Open issue in your browser\n  query       Interactively send JQL queries to Jira when tab is pressed\n  upgrade     Download and install latest version\n  help        Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n```bash\n# Create or checkout branch named after an issue.\njig branch\n# Work on that branch and commit as usual. git add/commit/push.\n\n# Make comments as you progress with your work.\njig comment \"Note: Changed impl due to X\"\n\n# Create worklogs as you finish up a session or at the end of the day.\njig log 1h --comment \"Bug squashed\"\n\n# Transition issue according to your workflow.\njig move\n```\n\n[![asciicast](https://asciinema.org/a/609019.svg)](https://asciinema.org/a/609019)\n\n\n## installation\n\n### Linux\n\nwget\n\n```bash\nmkdir -p ~/.local/bin || true\n\nwget -O ~/.local/bin/jig \"https://github.com/baarsgaard/jig/releases/latest/download/jig-x86_64-unknown-linux-gnu\"\n\nchmod +x ~/.local/bin/jig\n\n# A musl variant is available be replacing gnu with musl\n```\n\nUsing [eget](https://github.com/zyedidia/eget)\n```bash\neget baarsgaard/jig --to ~/.local/bin/jig -a gnu\n```\n\n### Compile from source\n\nCompile from source with [Rust](https://www.rust-lang.org/tools/install)\n\n```bash\ncargo install --locked --git https://github.com/baarsgaard/jig\n```\n\n### Windows\n\nUntested, mileage will vary\n```posh\nInvoke-WebRequest -Uri \"https://github.com/baarsgaard/jig/releases/download/latest/jig-$INSTANCE-x86_64-pc-windows-msvc.exe\" -OutFile \"C:\\\u003cSomewhere in PATH\u003e\"\n```\n\n\n## Configuration\n\nSupports Global and Local config files.  \n`~/.config/jig/config.toml` and `.jig.toml` respectively ([XDG](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html)).  \nIf both exist, they are merged with the Local config taking priority.\n\nThis is useful when working across repositories with varying contribution workflows or issue queries tailored to creating branches or worklogs from the current location.\n\nSee [example_config.toml](./example_config.toml)\n\nGenerate your configuration using:\n```bash\njig init [--all]\n```\n\n\n\u003cdetails\u003e\n\u003csummary\u003eWhy?\u003c/summary\u003e\n\nI personally love a strict Git workflow with well designed PRs and every commit being attributed to an issue.  \nBut convincing others to adopt this can be a challenge without obvious benefits.\n\nAn obvious use case being my own workflow:  \nMost if not all my work at $day_job is coordinated through and logged in Jira.  \nadditionally I'm not a fan of doing simple tasks in the Jira UI..\n\nI always know the issue I am currently working on, I am on the branch already.  \nWhy could I not log my time or comment more easily? Maybe directly from the terminal even?\n\nLooking at the existing CLI tools that interacted with Jira, none solved my exact problem.  \nHence, **[Jig](https://www.youtube.com/watch?v=3JcmQONgXJM)!**\n\nJig is designed to simplify working with a \"Per issue\" branching model.  \nIt therefore includes options and features I needed to support that.\n\nPrimarily:  \n- Creating or checking out branches from existing Jira issues with(out) summaries.\n- Quickly logging time and Commenting on the issue found in the branch name.\n- Moving issues from one status to the next.\n- [Scripting](./scripts/weekly_worklogs.sh), I live for automation.\n\n\u003c/details\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaarsgaard%2Fjig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaarsgaard%2Fjig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaarsgaard%2Fjig/lists"}