An open API service indexing awesome lists of open source software.

https://github.com/veupathdb/redveu

Redmine interface for emacs
https://github.com/veupathdb/redveu

Last synced: 5 months ago
JSON representation

Redmine interface for emacs

Awesome Lists containing this project

README

          

#+title: RedVEu (Redmine for VEuPath in Emacs)
#+author: John Brestelli

* Getting started

** Requirements

=redveu= depends on the following emacs lisp packages, which are
available from MELPA. Install these packages as well.
- [[https://github.com/leoc/elmine][elmine]] --- Redmine API access
- [[https://github.com/magnars/s.el][s.el]] --- The long lost Emacs string manipulation library.

Confirmed working on:
- Ubuntu 18.04.4 with GNU Emacs 27.1 with Doom 21.12 alpha

** Installation
Add dependencies in ~/.doom.d/packages

#+begin_example
(package! elmine)
(package! s)
#+end_example

Git clone
#+begin_example
git clone https://github.com/VEuPathDB/redveu.git ~/.doom.d
#+end_example

A

** Edit your ~/.doom.d/config.el

#+begin_src emacs-lisp
;; Change these as appropriate
(add-to-list 'load-path "~/.doom.d/redveu")
(load "redveu")

(setq redveu/identity "John Doe");
(setq elmine/host "https://redmine.apidb.org")
(setq elmine/api-key "YOUR_API_KEY")
#+end_src

** Basics
1. Everything is run in "org-mode". Open a file with the extension ".org" or turn on the mode manually.
2. Project and issue queries must (for now) be created and saved using redmine's web interface
3. Changes you make to the text in the org file will not be reflected in redmine. To update tasks, you must run update commands
4. You can search for issues using a pre defined query
#+begin_src emacs-lisp
redveu/get-issues query_name
redveu/get-issues-by-id query_id
#+end_src
5. Search for projects using a pre defined query
#+begin_src emacs-lisp
redveu/get-projects query_id
#+end_src
6. When cursor is on a project, get all project-issues using a pre defined query
#+begin_src emacs-lisp
redveu/get-project-issues query_id
#+end_src
7. Link to create new issue for a project
8. Link to issue web page
9. Link to create subtask of an issue
10. Link to attachments
11. when cursor is on an issue, update issues using api (PUT)
#+begin_src emacs-lisp
redveu/update-assigned-to
redveu/update-status
redveu/update-version
redveu/update-tracker
redveu/update-priority
redveu/update-subject
redveu/update-veupathdb-team
redveu/add-comment
#+end_src
- uses tab complete
- fetches and caches available options (on first call)
- add a comment/note or change subject
12. when cursor is on a search, group the issues by property
#+begin_src emacs-lisp
redveu/group-issues
redveu/refresh-query
#+end_src
13. when cursor is on issue or project, create a new issue in the project (or issue's project)
#+begin_src emacs-lisp
redveu/create-issue
#+end_src
14. when cursor is on issue, create a new subtask for the issue
#+begin_src emacs-lisp
redveu/create-subtask
#+end_src

* TODOs
1. Need to set due_date to null when changing the version.
2. Check for "Choose" Tracker as this will cause problems with updates to status
- You cannot set any status you like. Each tracker has supported status options
- Choose is especially bad may apply to others as well