All Projects → rwstauner → jirazzz

rwstauner / jirazzz

Licence: EPL-1.0 license
A jira rest client for the command line, written in clojure as a babashka script.

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to jirazzz

jtb
Jira Tool Box, for speed up your workflow, easy browsing Jira ticket.
Stars: ✭ 15 (-42.31%)
Mutual labels:  jira
ticketutil
Python ticketing utility for working with tickets in popular tools
Stars: ✭ 58 (+123.08%)
Mutual labels:  jira
vira
Create and update your Jira issues while inside Vim!
Stars: ✭ 76 (+192.31%)
Mutual labels:  jira
jiraya
Jiraya - Simple Jira CLI
Stars: ✭ 14 (-46.15%)
Mutual labels:  jira
Confluence-and-Jira
Docker部署并破解Jira、Confluence及相关插件;若图片加载不出来可以访问我的博客原文查看
Stars: ✭ 60 (+130.77%)
Mutual labels:  jira
jira-sprint-reporting
Reporting in a Google Sheet on a Sprint level using JIRA REST API
Stars: ✭ 25 (-3.85%)
Mutual labels:  jira
jira-backup-py
python script to create, download and upload to s3 your Jira or Confluence cloud instance backup
Stars: ✭ 36 (+38.46%)
Mutual labels:  jira
CVE-2019-8449
CVE-2019-8449 Exploit for Jira v2.1 - v8.3.4
Stars: ✭ 66 (+153.85%)
Mutual labels:  jira
babashka-sql-pods
Babashka pods for SQL databases
Stars: ✭ 64 (+146.15%)
Mutual labels:  babashka
jira.sh
JIRA Client for Bash Scripts
Stars: ✭ 15 (-42.31%)
Mutual labels:  jira
jira scan
A simple remote scanner for Atlassian Jira
Stars: ✭ 89 (+242.31%)
Mutual labels:  jira
vscode-confluence-markup
Visual Studio Code extension for Confluence® markup
Stars: ✭ 21 (-19.23%)
Mutual labels:  jira
ticket-check-action
Verify that pull request titles start with a ticket ID
Stars: ✭ 29 (+11.54%)
Mutual labels:  jira
prepare-commit-msg
Automatically prefix commit messages with the current branch issue number
Stars: ✭ 28 (+7.69%)
Mutual labels:  jira
Jiraffe
One stop place for exploiting Jira instances in your proximity
Stars: ✭ 157 (+503.85%)
Mutual labels:  jira
tickety-tick
A browser extension that helps you name branches and write better commit messages
Stars: ✭ 55 (+111.54%)
Mutual labels:  jira
postee
Simple message routing system that receives input messages through a webhook interface and can enforce actions using predefined outputs via integrations.
Stars: ✭ 160 (+515.38%)
Mutual labels:  jira
git-mit
Minimalist set of hooks to aid pairing and link commits to issues
Stars: ✭ 44 (+69.23%)
Mutual labels:  jira
tempo-api-python-client
Python bindings for Tempo - https://apidocs.tempo.io/
Stars: ✭ 17 (-34.62%)
Mutual labels:  jira
jiraworklogtool
A simple Chrome Extension that allows adding worklog in Jira easily.
Stars: ✭ 38 (+46.15%)
Mutual labels:  jira

jirazzz

A jira rest client command line app written as a babashka script.

Designed for configurability, to be usable with any jira instance.

Authentication

OAuth token

Jira Cloud: Go to https://id.atlassian.com/manage/api-tokens and create a new token. Then put its base64-encoded value in the config (see below).

Cookie

Maybe you can't configure cli authentication, or don't want to use basic auth... Just visit jira in your browser and steal your own cookie (see "Example Config" below).

Installation

Install Babashka. Then, Inside a directory that is on your path, such as /usr/local/bin:

wget https://raw.githubusercontent.com/rwstauner/jirazzz/main/jirazzz
chmod u+x jirazzz
wget https://raw.githubusercontent.com/rwstauner/jirazzz/main/example-config.edn -O ~/.jirazzz.edn

Finally, adjust ~/.jirazzz.edn as necessary.

Usage

jirazzz --help
Usage: jirazzz command [options]

Commands:

  assign        Set assignee on issue: jirazzz assign --issue ABC-123 username
  comment       Add comment to issue: jirazzz comment --issue ABC-123 --comment 'Something to say'
  commit-msg    Create issue from commit msg if no reference exists
  create        Create issue: jirazzz create --summary … --description …
  example-alias Custom alias command
  issue         Get issue: jirazzz issue KEY
  mine          List open issues assigned to me
  parse-log     Parse commit log and transition referenced issues
  search        Search issues: jirazzz search "some jql fragment"
  transition    Transition issue: jirazzz transition --issue ABC-123 --transition 'done'
  get           Send GET    request: jirazzz get    /rest/api/x/y/z …
  post          Send POST   request: jirazzz post   /rest/api/x/y/z …
  put           Send PUT    request: jirazzz put    /rest/api/x/y/z …
  delete        Send DELETE request: jirazzz delete /rest/api/x/y/z …

Options can be specified on the command line or in example-config.edn
Any aliases defined in {:custom-fields {:your-name :customfield_00000}}
can also be set in the config file or on the command line (see below).

Options:
  -h, --help                      Show usage
      --assignee USERNAME         Assign issue to username (-1 for unassigned)
      --backlog                   Put isue in backlog instead of current sprint
      --comment BODY              Comment body to add to issue
      --commit-template TEMPLATE  Selmer template for adding issue to commit message
      --description DESC          Issue description
  -i, --issue KEY                 Issue Key
      --issue-pattern PATTERN     Regular Expression to find issue in commit message
      --issue-type TYPE           Issue Type
      --jql SEARCH                JQL fragment used for search
  -p, --project PROJECT           Project for issue creation
      --rapid-view ID             RapidView id
      --sprint-pattern PATTERN    Regular Expression to find current sprint
      --summary SUMMARY           Issue summary
      --transition NAME           Transition issue to this state
      --unassigned                Set issue as Unassigned
      --url URL                   Jira URL
      --input-format FORMAT       Set input format (can be 'json', default is 'edn')
      --output-format FORMAT      Set output format (can be 'json', default is 'edn')
      --sprint-id VALUE           Set custom field for sprint-id (customfield_12345)
      --storypoints VALUE         Set custom field for storypoints (customfield_10001)

Configuration

The default file is ~/.jirazzz.edn. An alternate can be specified with env var JIRAZZZ_CONFIG_FILE.

{
 ; URL prefix of your jira instance.
 :url "https://jira.example.com"
 ; Any headers you want to add to requests (useful for auth).
 :headers {"Cookie" #file ".cookie.txt"}
 ; or, with an oauth token:
 ;:headers {"Authorization" "Basic <base64-encoded-token-value>"}
 ; The rapid-view / sprint board id.
 :rapid-view 123
 ; Project key.
 :project "ABC"
 ; Jira username (might be something like "flastname").
 :assignee #env USER
 ; Type of issue to create.
 :issue-type "Task"
 ; Pattern to look for in commit messages.  Should have single capture group.
 :issue-pattern "\\[([A-Z]+-[0-9]+)\\]"
 ; A selmer template for how to add issue to commit messages.
 :commit-template "[{{issue}}] {{summary}}\n\n{{description}}"
 ; Transition issue to this state.
 :transition "ready for review"
 ; Pattern to match against sprint names when looking for current (first ACTIVE) sprint.
 :sprint-pattern "."
 ; Values for defined custom fields.
 :storypoints 1
 ; Aliases for custom fields so they are recognized by config/arguments.
 :custom-fields
 {
  ; Sprint-id will be filled in with "current sprint".
  :sprint-id   :customfield_12345
  ; Other fields can be specified on the command line or in config.
  :storypoints :customfield_10001
 }
 :aliases
 {example-alias {:doc "Custom alias command"
                 :args ["search" "--jql" "project = ABC AND statusCategory IN (…)"]}}
}

Most fields in the config file can be overridden via command line arguments (see usage output).

Available readers:

  • #env - Substitute an environment variable
  • #file - Read file (relative to config file directory)

Need to figure out your custom fields?

Look at the json output for an existing issue by inspecting the response in your browser, or use jirazzz:

jirazzz issue ABC-123

Pronunciation

It's a combination of "jira" and "💤" (it's a "rest" client). I call it "jira Z's".

Development

Try bb tasks to see a list of babashka tasks useful for development:

The following tasks are available:

docs        Regenerate docs
lint
nrepl       Start nrepl server for editor integration
pre-commit  A git pre-commit hook to check docs, style, etc
server      Run fake http server for manual testing
style:check
style:fix
test        Run test suite with fake http server

License

Copyright © 2021 Randy Stauner

Distributed under the Eclipse Public License version 1.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].