{"id":13592848,"url":"https://github.com/baohaojun/org-jira","last_synced_at":"2025-04-09T02:31:29.475Z","repository":{"id":2138843,"uuid":"3082758","full_name":"baohaojun/org-jira","owner":"baohaojun","description":"Bring Jira and OrgMode together","archived":true,"fork":false,"pushed_at":"2021-03-06T14:58:13.000Z","size":593,"stargazers_count":212,"open_issues_count":29,"forks_count":51,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-11-06T14:40:03.749Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baohaojun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-01T14:24:01.000Z","updated_at":"2024-06-26T00:01:06.000Z","dependencies_parsed_at":"2022-08-06T12:01:01.504Z","dependency_job_id":null,"html_url":"https://github.com/baohaojun/org-jira","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baohaojun%2Forg-jira","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baohaojun%2Forg-jira/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baohaojun%2Forg-jira/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baohaojun%2Forg-jira/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baohaojun","download_url":"https://codeload.github.com/baohaojun/org-jira/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247965513,"owners_count":21025393,"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":[],"created_at":"2024-08-01T16:01:13.892Z","updated_at":"2025-04-09T02:31:24.439Z","avatar_url":"https://github.com/baohaojun.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"# org-jira mode\n\n[![Join the chat at https://gitter.im/org-jira/Lobby](https://badges.gitter.im/org-jira/Lobby.svg)](https://gitter.im/org-jira/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![MELPA](http://melpa.org/packages/org-jira-badge.svg)](http://melpa.org/#/org-jira)\n\nUse Jira in Emacs org-mode.\n\n## TOC\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [org-jira mode](#org-jira-mode)\n    - [TOC](#toc)\n    - [Setup](#setup)\n        - [Installation](#installation)\n        - [Configuration](#configuration)\n    - [Usage](#usage)\n        - [Getting Started](#getting-started)\n        - [Keybinds](#keybinds)\n        - [Customization](#customization)\n            - [Authorization workaround (NOT secure)](#authorization-workaround-not-secure)\n        - [Optimizations](#optimizations)\n            - [Optimizing available actions for status changes](#optimizing-available-actions-for-status-changes)\n    - [About](#about)\n        - [Maintainer](#maintainer)\n        - [License](#license)\n\n\u003c!-- markdown-toc end --\u003e\n\n\n## Setup\n### Installation\nTo install, just grab it off of MELPA (ensure your ~/.emacs already\nhas MELPA set up):\n\n```lisp\n(require 'package)\n(add-to-list 'package-archives '(\"melpa\" . \"http://melpa.milkbox.net/packages/\") t)\n(package-initialize)\n```\n\nThen run `M-x package-install RET org-jira RET` and you're done!\n### Configuration\nIn your ~/.emacs, you should set the variable as such:\n\n```conf\n(setq jiralib-url \"https://your-site.atlassian.net\")\n```\n\nIf you don't want to enter your credentials (login/password) each time\nyou go to connect, you can add to your ~/.authinfo.gpg or ~/.authinfo\nfile, in a format similar to:\n\n```conf\nmachine your-site.atlassian.net login you@example.com password yourPassword port 80\n```\n_Please note that in the authinfo file, port 443 should be specified\nif your jiralib-url is https._\n\n## Usage\n### Getting Started\norg-jira mode is easy to use, to get started (after installing this\nlibrary) try running `M-x org-jira-get-issues`.  You should see that\nit pulls in all issues that are assigned to you.\n\nFollowing that, you can try out some of the org-jira mode commands by\nvisiting one of the files (they're named after your Jira project code,\nfor example, 'EX.org' for a project named 'EX').\n### Keybinds\nSome of the important keybindings:\n\n```lisp\n(define-key org-jira-map (kbd \"C-c pg\") 'org-jira-get-projects)\n(define-key org-jira-map (kbd \"C-c ib\") 'org-jira-browse-issue)\n(define-key org-jira-map (kbd \"C-c ig\") 'org-jira-get-issues)\n(define-key org-jira-map (kbd \"C-c ih\") 'org-jira-get-issues-headonly)\n(define-key org-jira-map (kbd \"C-c iu\") 'org-jira-update-issue)\n(define-key org-jira-map (kbd \"C-c iw\") 'org-jira-progress-issue)\n(define-key org-jira-map (kbd \"C-c in\") 'org-jira-progress-issue-next)\n(define-key org-jira-map (kbd \"C-c ia\") 'org-jira-assign-issue)\n(define-key org-jira-map (kbd \"C-c ir\") 'org-jira-refresh-issue)\n(define-key org-jira-map (kbd \"C-c iR\") 'org-jira-refresh-issues-in-buffer)\n(define-key org-jira-map (kbd \"C-c ic\") 'org-jira-create-issue)\n(define-key org-jira-map (kbd \"C-c ik\") 'org-jira-copy-current-issue-key)\n(define-key org-jira-map (kbd \"C-c sc\") 'org-jira-create-subtask)\n(define-key org-jira-map (kbd \"C-c sg\") 'org-jira-get-subtasks)\n(define-key org-jira-map (kbd \"C-c cc\") 'org-jira-add-comment)\n(define-key org-jira-map (kbd \"C-c cu\") 'org-jira-update-comment)\n(define-key org-jira-map (kbd \"C-c wu\") 'org-jira-update-worklogs-from-org-clocks)\n(define-key org-jira-map (kbd \"C-c tj\") 'org-jira-todo-to-jira)\n(define-key org-jira-map (kbd \"C-c if\") 'org-jira-get-issues-by-fixversion)\n```\n\n### Customization\nYou can define your own streamlined issue progress flow as such:\n\n```lisp\n(defconst org-jira-progress-issue-flow\n  '((\"To Do\" . \"In Progress\"\n    (\"In Progress\" . \"Done\"))))\n```\nor using typical Emacs customize options, as its a defcustom.\n\nThis will allow you to quickly progress an issue based on its current\nstatus, and what the next status should be.\n\nIf your Jira is set up to display a status in the issue differently\nthan what is shown in the button on Jira, your alist may look like\nthis (use the labels shown in the org-jira Status when setting it up,\nor manually work out the workflows being used through\nstandard `C-c iw` options/usage):\n\n```lisp\n(defconst org-jira-progress-issue-flow\n  '((\"To Do\" . \"Start Progress\")\n    (\"In Development\" . \"Ready For Review\")\n    (\"Code Review\" . \"Done\")\n    (\"Done\" . \"Reopen\")))\n```\n\n#### Authorization workaround (NOT secure)\nIf your Jira instance has disabled basic auth, you can still get in\nby copying your web browser's cookie (open up developer console, and\nright click and 'Copy request as cURL', then copy/paste the cookie\ninto the jiralib-token variable):\n\n```lisp\n(defconst jiralib-token\n   (cons \"Cookie\" . \"eyJ\u003cyour giant long cookie copied from browser\"))\n```\n\n### Optimizations\nIt's possible some things in your Jira instance rarely if ever change - while org-jira\nwill dynamically query everything as needed, it makes use of some\nvariables/caching per-run of Emacs.  If you ever notice something was\nchanged on the Jira setup level, you may have to restart your Emacs\n(or manually unset these variables).  By the same token, that makes it\npossible to hardcode some of these values yourself, so org-jira never\nneeds to look them up.\n\nSome samples may be:\n\n#### Optimizing available actions for status changes\nTake time inspecting jiralib-available-actions-cache variable as you\nuse org-jira, when you see the type of data it stores, you can then\njust define it yourself, as such, so repeated usage will not need to\nre-query the endpoints to get these lists:\n\n```lisp\n(defconst jiralib-available-actions-cache\n  '((\"To Do\"\n     (\"71\" . \"Business Question\")\n     (\"11\" . \"Start Progress\"))\n    (\"Code Review\"\n     (\"71\" . \"Business Question\")\n     (\"91\" . \"Reject\")\n     (\"171\" . \"Failed Peer Review\")\n     (\"221\" . \"Done\"))\n    (\"In Development\"\n     (\"71\" . \"Business Question\")\n     (\"21\" . \"Ready For Review\")\n     (\"81\" . \"Reject\")\n     (\"161\" . \"Stop Progress\"))\n    (\"Done\"\n     (\"71\" . \"Business Question\")\n     (\"141\" . \"Re-open\"))))\n```\n\n## About\n### Maintainer\n\nYou can reach me directly: Matthew Carter \u003cm@ahungry.com\u003e, or file an\nissue here on https://github.com/ahungry/org-jira.\n\n### License\n\nGPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaohaojun%2Forg-jira","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaohaojun%2Forg-jira","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaohaojun%2Forg-jira/lists"}