🔥 [WIP] Interactive Jira Command Line

JiraCLI

Build GO Report-card

Interactive Jira CLI

TusPHP Demo

🚧 This project is still a work in progress 🚧


This tool mostly focuses on issue search and navigation at the moment. However, it also includes features like issue creation, updating a ticket status, and so on. Note that the tool is only tested with the latest Jira cloud.

Installation

Install the runnable binary to your $GOPATH/bin.

$ go get github.com/ankitpokhrel/jira-cli/cmd/jira

Releases and other installation options will be available later.

Getting started

  1. Get a Jira API token and export it to your shell as a JIRA_API_TOKEN variable. Add it to your shell configuration file, for instance, $HOME/.bashrc, so that the variable is always available.
  2. Run jira init to generate a config file required for the tool.

Shell completion

Check jira completion --help for more info on setting up a bash/zsh shell completion.

Usage

The tool currently comes with an issue, epic, and sprint explorer. The flags are POSIX-compliant. You can combine available flags in any order to create a unique query. For example, the command below will give you high priority issues created this month with status To Do that are assigned to you and has a label backend.

$ jira issue list -yHigh -s"To Do" --created month -lbackend -a$(jira me)
Navigation

The lists are displayed in an interactive UI by default.

  • Use arrow keys or j, k, h, l characters to navigate through the list.
  • Use g and SHIFT+G to quickly navigate to the top and bottom respectively.
  • Press v to view selected issue details.
  • Hit ENTER to open the selected issue in the browser.
  • Press c to copy issue URL to the system clipboard. This requires xclip / xsel in linux.
  • Press CTRL+K to copy issue key to the system clipboard.
  • In an explorer view, press w to toggle focus between the sidebar and the contents screen.
  • Press q / ESC / CTRL+C to quit.

Issue

Issues are displayed in an interactive table view by default. You can output the results in a plain view using the --plain flag.

List

The list command lets you search and navigate the issues.

# List recent issues
$ jira issue list

# List issues created in last 7 days
$ jira issue list --created -7d

# List issues in status "To Do"
$ jira issue list -s"To Do"

# List recent issues in plain mode 
$ jira issue list --plain

Check some more examples/use-cases below.

List issues that I am watching
$ jira issue list -w
List issues assigned to me
$ jira issue list -a$(jira me)
List issues assigned to a user and are reported by another user
$ jira issue list -a"User A" -r"User B"
List issues assigned to me is of high priority and is open
$ jira issue list -a$(jira me) -yHigh -sopen
List issues assigned to no one and are created this week
$ jira issue list -ax --created week
List issues with resolution won't do
$ jira issue list -R"Won't do"
List issues whose status is not done and is created before 6 months and is assigned to someone
# Tilde (~) acts as a not operator
$ jira issue list -s~Done --created-before -24w -a~x
List issues created within an hour and updated in the last 30 minutes ⏱️
$ jira issue list --created -1h --updated -30m
Give me issues that are of high priority, is in progress, was created this month, and has given labels 🔥
$ jira issue list -yHigh -s"In Progress" --created month -lbackend -l"high prio"
Wait, what was that ticket I opened earlier today? 😫
$ jira issue list --history
What was the first issue I ever reported on the current board? 🤔
$ jira issue list -r$(jira me) --reverse
What was the first bug I ever fixed in the current board? 🐞
$ jira issue list -a$(jira me) -tBug sDone -rFixed --reverse
What issues did I report this week? 🤷‍♂️
$ jira issue list -r$(jira me) --created week
Am I watching any tickets in project XYZ? 🧐
$ jira issue list -w -pXYZ

Create

The create command lets you create an issue.

# Create an issue using interactive prompt
$ jira issue create

# Pass required parameters to skip prompt or use --no-input option
$ jira issue create -tBug -s"New Bug" -yHigh -lbug -lurgent -b"Bug description"

Create an issue

Assign

The assign command lets you assign user to an issue.

# Assign user to an issue using interactive prompt
$ jira issue assign

# Pass required parameters to skip prompt
$ jira issue assign ISSUE-1 "Jon Doe"

# Assign to self
$ jira issue assign ISSUE-1 $(jira me)

# Will prompt for selection if keyword suffix returns multiple entries
$ jira issue assign ISSUE-1 suffix

# Assign to default assignee
$ jira issue assign ISSUE-1 default

# Unassign
$ jira issue assign ISSUE-1 x

Assign issue to a user

Move/Transition

The move command lets you transition issue from one state to another.

# Move an issue using interactive prompt
$ jira issue move

# Pass required parameters to skip prompt
$ jira issue move ISSUE-1 "In Progress"

Move an issue

View

The view command lets you see issue details in a terminal. Atlassian document is roughly converted to a markdown and is nicely displayed in the terminal.

$ jira issue view ISSUE-1

View an issue

Epic

Epics are displayed in an explorer view by default. You can output the results in a table view using the --table flag. When viewing epic issues, you can use all filters available for the issue command.

See usage to learn more about UI interaction.

List

You can use all flags supported by issue list command here except for the issue type.

# List epics
$ jira epic list

# List epics in a table view
$ jira epic list --table

# List epics reported by me and are open
$ jira epic list -r$(jira me) -sOpen

# List issues in an epic
$ jira epic list KEY-1

# List all issue in an epic KEY-1 that is unassigned and has a high priority
$ jira epic list KEY-1 -ax -yHigh

# List high priority epics
$ jira epic list KEY-1 -yHigh

Create

Creating an epic is same as creating the issue except you also need to provide an epic name.

# Create an issue using interactive prompt
$ jira epic create

# Pass required parameters to skip prompt or use --no-input flag to skip prompt for non-mandatory params
$ jira epic create -n"Epic epic" -s"Everything" -yHigh -lbug -lurgent -b"Epic description"

Add

Add command allows you to add issues to the epic. You can add up to 50 issues to the epic at once.

# Add issues to the epic using interactive prompt
$ jira epic add

# Pass required parameters to skip prompt
$ jira epic add EPIC_KEY ISSUE_1 ISSUE_2

Sprint

Sprints are displayed in an explorer view by default. You can output the results in a table view using the --table flag. When viewing sprint issues, you can use all filters available for the issue command. The tool only shows 25 recent sprints.

See usage to learn more about UI interaction.

# List sprints in an explorer view
$ jira sprint list

# List sprints in a table view
$ jira sprint list --table

# List issues in current active sprint
$ jira sprint list --current

# List issues in current active sprint that are assigned to me
$ jira sprint list --current -a$(jira me)

# List issues in previous sprint
$ jira sprint list --prev

# List issues in next planned sprint
$ jira sprint list --next

# List future and active sprints
$ jira sprint list --state future,active

# List issues in a particular sprint. You can use all flags supported by issue list command here. 
# To get sprint id use `jira sprint list` or `jira sprint list --table`
$ jira sprint list SPRINT_ID

# List high priority issues in a sprint are assigned to me
$ jira sprint list SPRINT_ID -yHigh -a$(jira me)

Other commands

Navigate to the project
# Navigate to the project
$ jira open

# Navigate to the issue
$ jira open KEY-1
List all projects you have access to
$ jira project
List all boards in a project
$ jira board

Scripts

Often times, you may want to use the output of the command to do something cool. However, the default interactive UI might not allow you to do that. The tool comes with the --plain flag that displays results in a simple layout that can then be manipulated from the shell script.

Some example scripts are listed below.

Tickets created per day this month
#!/usr/bin/env bash

tickets=$(jira issue list --created month --plain --columns created --no-headers | awk '{print $1}' | awk -F'-' '{print $3}' | sort -n | uniq -c)

echo "${tickets}" | while IFS=$'\t' read -r line; do
  day=$(echo "${line}" | awk '{print $2}')
  count=$(echo "${line}" | awk '{print $1}')

  printf "Day #%s: %s\n" "${day}" "${count}"
done

# Output
Day #01: 19
Day #02: 10
Day #03: 21
...
Number of tickets per sprint
#!/usr/bin/env bash

sprints=$(jira sprint list --table --plain --columns id,name --no-headers)

echo "${sprints}" | while IFS=$'\t' read -r id name; do
  count=$(jira sprint list "${id}" --table --plain --no-headers 2>/dev/null | wc -l)

  printf "%10s: %3d\n" "${name}" $((count))
done

# Output
Sprint 3:   55
Sprint 2:   40
Sprint 1:   30
...
Number of unique assignee per sprint
#!/usr/bin/env bash

sprints=$(jira sprint list --table --plain --columns id,name --no-headers)

echo "${sprints}" | while IFS=$'\t' read -r id name; do
  count=$(jira sprint list "${id}" --table --plain --columns assignee --no-headers 2>/dev/null | sort -n | uniq | wc -l)

  printf "%10s: %3d\n" "${name}" $((count))
done

# Output
Sprint 3:   5
Sprint 2:   4
Sprint 1:   3

Future improvements

  • Issue creation.
  • Ability to view issue details.
  • Possibility to change issue status.
  • Possibility to assign issue to a user.
  • Comments management.
  • Historical data can be cached locally for faster execution.

Development

  1. Clone the repo.

    $ git clone [email protected]:ankitpokhrel/jira-cli.git
  2. Make changes, build the binary, and test your changes.

    $ make deps
    $ make install
  3. Run linter and tests before submitting a PR.

    $ make ci
Owner
Ankit Pokhrel
Backend @hellofresh previous Lazada/Alibaba
Ankit Pokhrel
Comments
  • Assigning issue to self doesn't assign it

    Assigning issue to self doesn't assign it

    Describe the bug

    Running the following command doesn't assign the issue to me, instead the user search opens up, in which I'm unfindable as well.

    jira issue assign "TICKET-CODE" "$(jira me)"
    

    Please provide following details

    1. JiraCLI Version:
      (Version="0.1.1", GitCommit="6663763b44a2e5d328b551ae7d2f1a37d1e232ae", GoVersion="go1.17.2", BuildDate="2021-11-03"", Compiler="gc", Platform="darwin/amd64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
      Jira Server v8.20.0
      
    3. What operating system are you using? Also mention version.
      macOS 12.0.1
      
    4. What terminal are you using? Also mention version.
      alacritty 0.9.0 (fed349a)
      

    To Reproduce

    Steps to reproduce the behavior:

    1. Run jira issue assign "TICKET-CODE" "$(jira me)"
    2. Issue isn't assigned to you, user search is opened up
    3. Probably a separate issue but no names past the initial cropped list are findable

    Expected behavior

    The issue would be assigned to me.

    Additional context

    Not that it's relevant here but I'm using the line in the following function:

    # Move an issue back to progress
    jmbk() {
      jira issue transition "$1" "Back To Progress"
      jira issue assign "$1" "$(jira me)"
    }
    
  • jira init - 401 Unauthorized

    jira init - 401 Unauthorized

    Describe the bug

    jira init failing with 401 Unauthorized response. but worked with curl requests using the same API token.

    image

    Please provide following details

    1. JiraCLI Version:
      (Version="v1.1.1-0.20220814163226-d993757c939c", GitCommit="", CommitDate="", GoVersion="go1.19", Compiler="gc", Platform="linux/amd64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
      Cloud
      
    3. What operating system are you using? Also mention version.
      Void Linux
      
    4. What terminal are you using? Also mention version.
      foot
      

    To Reproduce

    Steps to reproduce the behavior:

    1. jira init

    Expected behavior

    should create config file. Screenshots

    Additional context

  • jira sprint list only shows issues from one board

    jira sprint list only shows issues from one board

    jira version 1.0.0

    For stories/bugs that are in the sprint but are set as Open status, jira sprint list or jira sprint list --current doesn't list those Open/Closed/PENDING/IMPLEMENTED/etc... Status, only listing only In Progress.

    This shouldn't be the case, if we are performing jira spring list it should list all spring regardless of its' statuses and if they need to custom search the status a command such as jira sprint list -sOpen or jira sprint list --status Closed should be supported instead.

  • feat: Support custom fields on issue create

    feat: Support custom fields on issue create

    This PR adds initial support for custom fields on the issue creation. Relates to https://github.com/ankitpokhrel/jira-cli/discussions/222. Fixes #340.

    Jira supports a wide variety of datatypes when creating a custom field. Out of all formats mentioned in the Jira doc, the implementation right now doesn't support Cascading select custom field, Single-user picker custom field and Multi-user picker custom field. Support for these missing types will be added based on the request and the usecase.

    Implementation Details

    Since we are already using the createmeta endpoint to save metadata during jira init process, this step is modified to save custom field details. The initialization process will now add a new section issue.fields.custom to save required details about configured custom fields.

    Screen Shot 2022-03-05 at 12 34 27 PM

    Next, a new flag --custom is added on create command that accepts a key-value pair. The key is derived from the name you see in the configuration. This is the same name that you see in the UI making it easy to guess. Dash/hyphen (-) separated lowercase name is used as a key. The value depends on the datatype of the field. For some datatypes like string, datetime, date, option, the value is a plain string (eg: --custom note="An example note"). For array types, its a comma separated value (eg: --custom platform=iOS,Android).

    Example

    Given some custom fields as below: | Custom Field | Field Type | Comment | |--------------|-----------|------------| | Due Date | Datetime | ISO 8601 ('YYYY-MM-DDThh:mm:ss.sTZD') format | | Note | Paragraph | A single or multiline text input | | Platform | Checkbox | Array of strings | | Quarter | Radio button | Single value string data | | Tags | Labels | Array of strings |

    You can use --custom flag to pass data for custom fields

    $ jira issue create -tStory --custom story-points=3 --custom due-date="2022-03-10T14:39:00.000+1100" \
     --custom note="A custom note" --custom platform=Windows,Linux --custom quarter=Q3 --custom tags=p1,q3,y2022
    
    # Or, alternatively
    
    $ jira issue create -tStory --custom=story-points=3 --custom=due-date="2022-03-10T14:39:00.000+1100" \
     --custom=note="A custom note" --custom=platform=Windows,Linux --custom=quarter=Q3 --custom=tags=p1,q3,y2022
    

    The example command above creates a story with defined custom fields of different types as seen in the screenshot below.

    Screen Shot 2022-03-05 at 11 30 42 AM

    Caveats

    The Jira API returns invalid types for some locked custom fields. For instance, for the sprint field the returned datatype is an array of strings or JSON depending on the Jira version used. However, that is not true since the create API expects a single numeric value for a sprint field.

    In such cases, the config needs to be modified manually to make the field work.

    # Details returned by the Jira API for sprint field
    - name: Sprint
      key: customfield_10020
      schema:
         datatype: array
         items: json
    
    # Manual change needed to make it work
    - name: Sprint
      key: customfield_10020
      schema:
         datatype: number
    

    Testing

    To try out this change, you can either build the app locally or install it using the following command.

    go install github.com/ankitpokhrel/jira-cli/cmd/jira@request-222
    

    Note that you will have to regenerate the config with jira init.

  • Trailing slash in Cloud server url causes

    Trailing slash in Cloud server url causes " Unable to generate configuration" error

    Describe the bug

    Doing jira init then going with "Cloud" and a URL with a trailing slash (ie https://company.atlassian.net/) causes an error:

    $ jira init
    ? Installation type: Cloud
    ? Link to Jira server: https://fpstudio.atlassian.net/
    ? Login email: [email protected]
    ? Default project: PP
    ? Default board: Pipeline Board
    ⠋ Creating new configuration...
    ✗ Unable to generate configuration: Config File "config" Not Found in "[]"
    

    then if I do the same but no trailing slash, it works:

    $ jira init
    ? Config already exist. Do you want to overwrite? Yes
    ? Installation type: Cloud
    ? Link to Jira server: https://<redacted>.atlassian.net
    ? Login email: alan@<redacted>.com
    ? Default project: PP
    ? Default board: Pipeline Board
    ⠼ Configuring metadata. Please wait...
    ✓ Configuration generated: /home/alan/.config/.jira/.config.yml
    

    Please provide following details

    1. JiraCLI Version:
      (Version="v0.3.0", GitCommit="", CommitDate="", GoVersion="go1.17.5", Compiler="gc", Platform="linux/amd64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
      Jira Cloud -- no idea where to see the version.
      
    3. What operating system are you using? Also mention version.
      Ubuntu 20.04 LTS
      
    4. What terminal are you using? Also mention version.
      Windows Terminal Preview
      Version: 1.12.3472.0
      

    To Reproduce

    Steps to reproduce the behavior:

    1. export your JIRA_API_TOKEN env var then jira init
    2. Pick Cloud
    3. Enter server URL with a slash at the end and continue with your email.
    4. Pick project and board.
    5. See error.

    Expected behavior I expect URLs with slashes not to fail.

    Screenshots

    image

    Additional context

    Seems similar bug to #255 (which was closed so I made a new ticket.)

  • reproducible builds

    reproducible builds

    The benefits associated with reproducible builds (and the costs associated with non-reproducible builds) are better explained here: https://reproducible-builds.org/

    tldr; reproducible builds are good and jira-cli would be improved by having reproducible builds.

  • 401 Unauthorized when accessing account on Ubuntu 20.04 with ssh

    401 Unauthorized when accessing account on Ubuntu 20.04 with ssh

    Hi! I love this project, it's the solution I never knew I needed.

    The CLI isn't working for me, and I suspect because it's because my company account only allows us to sign in with Okta.

    Steps I followed:

    • Installed the binary on my dev environment using the go get option
    • Created a JIRA API key and set it as an environment variable
    • Ran jira init
      • Typed in the URL of my company's (cloud) JIRA server
      • Typed in my login email

    After I hit enter on my login email, I got this output:

    ⠋ Verifying login details...
    ✗ Received unexpected response '401 Unauthorized' from jira. Please try again.
    

    I'm assuming that this problem is happening because I use Okta to login to Jira. Is there anything I can do to get around this? Thanks!

  • `jira board list` hangs.

    `jira board list` hangs.

    Describe the bug jira board list hangs.

    Please provide following details

    1. JiraCLI Version:
      $ jira version
      (Version="v1.1.1-0.20220902194847-5e31a9ae2803", GitCommit="", CommitDate="", GoVersion="go1.19", Compiler="gc", Platform="linux/amd64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation. cloud
    3. What operating system are you using? Also mention version.
      Ubuntu 20.04.
      
    4. What terminal are you using? Also mention version.
      $ gnome-terminal --version
      # GNOME Terminal 3.36.2 using VTE 0.60.3 +BIDI +GNUTLS +ICU +SYSTEMD    
      

    To Reproduce

    Steps to reproduce the behavior:

    $ unset PAGER && TERM=dumb LC_ALL=C jira board list
    -  (press RETURN)
    

    The command hangs, awaiting interactive prompt.

    Expected behavior The command should execute, printing the board list, and then exit.

    Screenshots N/A.

    Additional context N/A.

  • Not working with Red Hat's jira instance

    Not working with Red Hat's jira instance

    Been trying to use this with issues.redhat.com but get a 403 response. Red Hat is using Jira more and more, we are even migrating from bugzilla to Jira now so any help would be appreciated as many people in the open source community use this Jira instance

    https://lists.centos.org/pipermail/centos-devel/2022-March/120269.html

  • JIRA_API_TOKEN and Authorization: Bearer

    JIRA_API_TOKEN and Authorization: Bearer

    Hi, my curl works ok with Authorization: Bearer header. Example: curl -X GET -H "Authorization: Bearer xxx" \ -H "Content-Type: application/json" \ "https://jira.url.com/rest/api/2/user/properties?username=some_user"

    But when I do jira init I get 401.

    My JIRA_API_TOKEN is stored in .zshrc with: export JIRA_API_TOKEN=xxx

  • `v` (view) when viewing list prints in background?

    `v` (view) when viewing list prints in background?

    After running jira issue list I am presented with a list of issue. If I type v to view one, a box flashes that says processing... please wait and then I'm returned to the list. Later, when I hit q I see the issue I tried to view printed to the terminal. Is this the expected behavior?

    Please provide following details

    1. JiraCLI Version:
    $ jira version
    (Version="1.1.0", GitCommit="3b93e147eac468ad985bdece27469153b4bb2814", CommitDate="2022-08-14T08:10:40+00:00", GoVersion="go1.18.3", Compiler="gc", Platform="linux/amd64")
    
    1. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
    On-premise
    
    1. What operating system are you using? Also mention version.
    Linux
    
    1. What terminal are you using? Also mention version.
    • Konsole (KDE)
    • xterm
  • Feature request: Creating a git branch from a jira issue

    Feature request: Creating a git branch from a jira issue

    I love how the Jira CLI enables me to quickly create an issue. Invariably, after I've created an issue I want to create a git branch based on the issue and check that out.

    It would be very smooth if that functionality was built into jira-cli, perhaps as a flag to jira issue create.

    I do know that I can use the --web flag and in that in the web GUI it is easy to generate a git command to create the git branch. But if I wanted to use the web GUI, I wouldn't be using jira-cli ;)

    I did find the https://github.com/shaharkazaz/jiranch tool, but it seems quite buggy.

  • 302 Redirects Not Followed

    302 Redirects Not Followed

    Describe the bug jira-cli doesn't follow redirect's when presented with 302's.

    Please provide following details

    1. JiraCLI Version:
      (Version="1.2.0", GitCommit="9d8a0afd75b68aa519367f93c240429117cc4090", CommitDate="2022-12-16T10:53:08+00:00", GoVersion="go1.18.3", Compiler="gc", Platform="darwin/arm64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
      On prem. JiraVersion value=8.20.14
      
    3. What operating system are you using? Also mention version.
      macOS 13.1
      
    4. What terminal are you using? Also mention version.
      iTerm2 Build 3.5.0beta8
      

    To Reproduce

    Steps to reproduce the behavior:

    1. jira ... (e.g. jira serverinfo --debug)
    2. Get 302
    3. Curl equivalent command (e.g. `curl --request GET -H "Authorization: Bearer $JIRA_API_TOKEN" --url 'https://ad.astra.com/do/secure/rest/api/2/search?jql=project%3D%%22+ORDER+BY+created+DESC&startAt=0&maxResults=100')
    4. Get 302
    5. Curl with -L to follow forwarding requests (e.g. curl -L --request GET -H "Authorization: Bearer $JIRA_API_TOKEN" --url 'https://ad.astra.com/do/secure/rest/api/2/search?jql=project%3D%<redacted>%22+ORDER+BY+created+DESC&startAt=0&maxResults=100)
    6. Get requested data

    Expected behavior 302's and 301's should be followed.

  • Cannot assign reporter when creating a ticket

    Cannot assign reporter when creating a ticket

    when doing a "jira issue create", you cannot use the option: -r "email"

    Please provide following details

    1. JiraCLI Version:
      (Version="v1.1.0", GitCommit="a88eb61e142a6e604dc1f9f30884fff618277d22", CommitDate="2022-08-14T08:43:18+00:00", GoVersion="go1.17.11", Compiler="gc", Platform="linux/amd64")
      
    2. Are you using Jira cloud or on-premise jira server? Also mention the version for on-premise installation.
      cloud
      
    3. What operating system are you using? Also mention version.
      docker
      
    4. What terminal are you using? Also mention version.
      macOS terminal
      

    To Reproduce

    Steps to reproduce the behavior:

    1. jira issue create -r "email"

    Expected behavior I would like to assign a reporter thats not the default user thats logged in.

    Additional context I am using a bot user in jira that is creating the tickets. We have multiple users using the command line tool, but use the same linux user. For that case, I created a bot user that creats all the tickets. We would like to use the "-r" flag to change the reporter instead of going into jira manually.

  • feat: Raise an error when invalid custom field is specified.

    feat: Raise an error when invalid custom field is specified.

    Raise an error when an invalid custom field is specified.

    Currently, the invalid custom field is silently ignored which creates a wrong impressing that everything is OK.

  • feat: allow custom key mappings for the list of issues

    feat: allow custom key mappings for the list of issues

    With this, you can define custom keys and actions in the list of issues.

    Example configuration (~/.config/.jira/.config.yml):

    ...
    login: rhn-engineering-mpovolny
    project:
      key: OSDEV
      type: ""
    server: https://issues.redhat.com
    custom_keys:
      issues:
        w: "jira issue view %KEY%"
        t: "&jira issue move %KEY% 'In Progress'; jira issue assign %KEY% rhn-engineering-mpovolny"
        s: '&jira sprint add $(jira sprint list --table --plain --no-headers --columns ID | head -1) %KEY%'
    
    • The "w" key is an example of a foreground running command mapped to the "w" key. It has no use, but a demo.
    • The "t" key implements a "take" action -- the issue is moved to "In Progress" and then assigned to me. This is run in a separate goroutine (because of the & at the beginning of the command line).
    • The "s" key puts the issue into the latest sprint.

    This is just an example, this feature allows everyone to set his/her own mapping.

    ~~This MR needs rebasing, but I'd like to open a discussion about the feature and the implementation~~

Submit timesheets to Jira from the command line
Submit timesheets to Jira from the command line

JiraTime jiratime makes it easy to submit worklog records to Jira quickly from the command line. It accepts timesheets on standard input so works well

Dec 5, 2022
A tiny cli command/daemon for syncing toggl time entries with Jira

toggl-sync A tiny cli command/daemon for syncing toggl time entries with Jira Installation Install the app via brew package manager. brew tap timemate

Nov 30, 2021
Interactive prompt for command-line applications
Interactive prompt for command-line applications

promptui Interactive prompt for command-line applications. We built Promptui because we wanted to make it easy and fun to explore cloud services with

Jan 8, 2023
An interactive command-line tool to manage your environments
An interactive command-line tool to manage your environments

goto An interactive command-line tool to manage your environments Overview You always need to login to some Linux machine or connect to a MySQL instan

Jul 11, 2022
jt is a CLI tool for viewing and manipulating JIRA issues.

jt - jira-tool jt is a CLI tool for viewing and manipulating JIRA issues. One common example usage to transition an issue to a new status: jt "In Prog

Aug 9, 2022
Helper tool to create and assign fix versions in Jira

Jira Helper Helper tool to interact with Jira from CI/CD scripts. Its main purpose is to create and assign version based on GitHub releases to Jira ti

Oct 22, 2022
An open-source GitLab command line tool bringing GitLab's cool features to your command line
An open-source GitLab command line tool bringing GitLab's cool features to your command line

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching

Dec 30, 2022
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Dec 22, 2021
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.

asciigraph Go package to make lightweight ASCII line graphs ╭┈╯. Installation go get github.com/guptarohit/asciigraph Usage Basic graph package main

Jan 8, 2023
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Dec 31, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Feb 5, 2022
Package command provide simple API to create modern command-line interface

Package command Package command provide simple API to create modern command-line interface, mainly for lightweight usage, inspired by cobra Usage pack

Jan 16, 2022
A command line tool for simplified docker volume command built with go

dockervol A command line tool for simplified docker volume command built with go. Features: Remove anonymous volume (beta) Remove volume by matching n

Dec 18, 2021
Watcher - A simple command line app to watch files in a directory for changes and run a command when files change!

Watcher - Develop your programs easily Watcher watches all the files present in the directory it is run from of the directory that is specified while

Mar 27, 2022
Abacus is a simple interactive calculator CLI

Abacus is a simple interactive calculator CLI with support for variables, comparison checks, and math functions abacus -

Sep 15, 2022
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.

go-prompt A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line

Jan 3, 2023
Simplistic interactive filtering tool
Simplistic interactive filtering tool

peco Simplistic interactive filtering tool NOTE: If you are viewing this on GitHub, this document refers to the state of peco in whatever current bran

Dec 30, 2022
Terminal UI library with rich, interactive widgets — written in Golang
Terminal UI library with rich, interactive widgets — written in Golang

Rich Interactive Widgets for Terminal UIs This Go package provides commonly needed components for terminal based user interfaces. Among these componen

Jan 7, 2023