Skip to content

lepisma/sarso

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sarso

https://img.shields.io/github/v/tag/lepisma/sarso.svg?style=flat-square https://img.shields.io/github/workflow/status/lepisma/sarso/CI.svg?style=flat-square

Sarso is not Jira.

Sarso does a local sync of Jira projects to provide better and faster offline workflows. This includes integration with Org-mode, faster find and create methods etc. Sarso is not a replacement for the Jira interface but covers what I need to do on regular basis, faster.

Installation

There are two programs here:

  • A CLI executable, sarso for syncing issues to an sqlite database.
  • An Emacs package for working with the database.

The CLI can be built and installed using the following:

make
sudo make install

The CLI itself can be used standalone to sync tickets. For this you need to setup following environment variables:

export JIRA_BASE="https://company.atlassian.net"
export JIRA_USER="username"
export JIRA_TOKEN="token/pass"

Though the recommended way is to interact with the Emacs package that handles environment variables and other things on its own. You can install the package using the usual methods. It’s not on melpa.

Here is an example config for the Emacs package.

(setq sarso-jira-root "https://vernacular-ai.atlassian.net"
      sarso-jira-user "abhinav@vernacular.ai"
      sarso-jira-token "<token>"
      sarso-self-email "abhinav@vernacular.ai"
      sarso-org-sink-files `((,(concat user-notes-dir "tasks/research.org") . ("RES"))
                             (,(concat user-notes-dir "tasks/ml-product.org") . ("PROD" "CORE")))
      sarso-sync-projects '("RES" "CORE" "PROD"))
(add-hook 'sarso-post-sync-hook #'sarso-self-issues-to-org)

Usage

Syncing tickets locally

Call sarso-sync. Or set on repeat: (run-with-timer 60 (* 60 30) #'sarso-sync).

Showing tickets in Org Agenda

Use sarso-self-issues-to-org. You can also set this in sarso-post-sync-hook so it runs automatically after each sync.