punchout

punchout takes the suck out of logging time on JIRA.

Usage

Install

homebrew:

brew install dhth/tap/punchout

go:

go install github.com/dhth/punchout@latest

⚡️ Usage

punchout can receive its configuration via command line flags, or a config file.

Using a config file

Create a toml file that looks like the following. The default location for this file is ~/.config/punchout/punchout.toml.

db_path = "/path/to/punchout/db/file.db"

[jira]
jira_url = "https://jira.company.com"
jira_token = "XXX"
# put whatever JQL you want to query for
jql = "assignee = currentUser() AND updatedDate >= -14d ORDER BY updatedDate DESC"
# I don't know how many people will find use for this.
# I need this, since the JIRA server I use runs 5 hours behind
# the actual time, for whatever reason 🤷
jira_time_delta_mins = 300

Note: punchout only supports [on-premise] installations of JIRA for now. I might add support for cloud installations in the future.

Using command line flags

Use punchout -h for help.

punchout \
    db-path='/path/to/punchout/db/file.db' \
    jira-url='https://jira.company.com' \
    jira-token='XXX' \
    jql='assignee = currentUser() AND updatedDate >= -14d ORDER BY updatedDate DESC' \
    jira-time-delta-mins='300' \

Both the config file and the command line flags can be used in conjunction, but the latter will take precedence over the former.

punchout \
    config-file-path='/path/to/punchout/config/file.toml' \
    jira-token='XXX' \
    jql='assignee = currentUser() AND updatedDate >= -14d ORDER BY updatedDate DESC'

Screenshots

Screen 1

Screen 2

Screen 3

Screen 4

Reference Manual

punchout Reference Manual

punchout has 2 sections:
- Issues List View
- Worklog List View

Keyboard Shortcuts:

General
    1           Switch to Issues List View
    2           Switch to Worklog List View
    <tab>       Go to next view
    <shift+tab> Go to previous view

General List Controls
    h/<Up>      Move cursor up
    k/<Down>    Move cursor down
    h<Left>     Go to previous page
    l<Right>    Go to next page
    /           Start filtering

Issue List View
    s           Toggle recording time on the currently selected issue,
                will open up a form to record a comment on the second
                "s" keypress
    <ctrl+s>    Add manual worklog entry

Worklog List View
    <ctrl+d>    Delete worklog entry
    s           Sync all visible entries to JIRA
    <ctrl+r>    Refresh list

Acknowledgements

punchout is built using the awesome TUI framework bubbletea.