Add 'users/glittershark/org-clubhouse/' from commit '8838454236cd448afa2c752c4a6dc6f4bb7a3bf4'
git-subtree-dir: users/glittershark/org-clubhouse git-subtree-mainline:81564185e9
git-subtree-split:8838454236
This commit is contained in:
commit
04d3fb675b
5 changed files with 1494 additions and 0 deletions
3
users/glittershark/org-clubhouse/.gitignore
vendored
Normal file
3
users/glittershark/org-clubhouse/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Spacemacs
|
||||
org-clubhouse-autoloads.el
|
||||
org-clubhouse-pkg.el
|
101
users/glittershark/org-clubhouse/CODE_OF_CONDUCT.org
Normal file
101
users/glittershark/org-clubhouse/CODE_OF_CONDUCT.org
Normal file
|
@ -0,0 +1,101 @@
|
|||
* Contributor Covenant Code of Conduct
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: contributor-covenant-code-of-conduct
|
||||
:END:
|
||||
|
||||
** Our Pledge
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: our-pledge
|
||||
:END:
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our
|
||||
project and our community a harassment-free experience for everyone,
|
||||
regardless of age, body size, disability, ethnicity, sex
|
||||
characteristics, gender identity and expression, level of experience,
|
||||
education, socio-economic status, nationality, personal appearance,
|
||||
race, religion, or sexual identity and orientation.
|
||||
|
||||
** Our Standards
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: our-standards
|
||||
:END:
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
- Using welcoming and inclusive language
|
||||
- Being respectful of differing viewpoints and experiences
|
||||
- Gracefully accepting constructive criticism
|
||||
- Focusing on what is best for the community
|
||||
- Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
- The use of sexualized language or imagery and unwelcome sexual
|
||||
attention or advances
|
||||
- Trolling, insulting/derogatory comments, and personal or political
|
||||
attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or
|
||||
electronic address, without explicit permission
|
||||
- Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
** Our Responsibilities
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: our-responsibilities
|
||||
:END:
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of
|
||||
acceptable behavior and are expected to take appropriate and fair
|
||||
corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit,
|
||||
or reject comments, commits, code, wiki edits, issues, and other
|
||||
contributions that are not aligned to this Code of Conduct, or to ban
|
||||
temporarily or permanently any contributor for other behaviors that they
|
||||
deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
** Scope
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: scope
|
||||
:END:
|
||||
|
||||
This Code of Conduct applies within all project spaces, and it also
|
||||
applies when an individual is representing the project or its community
|
||||
in public spaces. Examples of representing a project or community
|
||||
include using an official project e-mail address, posting via an
|
||||
official social media account, or acting as an appointed representative
|
||||
at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
** Enforcement
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: enforcement
|
||||
:END:
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may
|
||||
be reported by contacting the project team at root@gws.fyi. All
|
||||
complaints will be reviewed and investigated and will result in a
|
||||
response that is deemed necessary and appropriate to the circumstances.
|
||||
The project team is obligated to maintain confidentiality with regard to
|
||||
the reporter of an incident. Further details of specific enforcement
|
||||
policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in
|
||||
good faith may face temporary or permanent repercussions as determined
|
||||
by other members of the project's leadership.
|
||||
|
||||
** Attribution
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: attribution
|
||||
:END:
|
||||
|
||||
This Code of Conduct is adapted from the
|
||||
[[https://www.contributor-covenant.org][Contributor Covenant]], version
|
||||
1.4, available at
|
||||
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
7
users/glittershark/org-clubhouse/LICENSE
Normal file
7
users/glittershark/org-clubhouse/LICENSE
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (C) 2018 Off Market Data, Inc. DBA Urbint
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
142
users/glittershark/org-clubhouse/README.org
Normal file
142
users/glittershark/org-clubhouse/README.org
Normal file
|
@ -0,0 +1,142 @@
|
|||
#+TITLE:Org-Clubhouse
|
||||
|
||||
Simple, unopinionated integration between Emacs's [[https://orgmode.org/][org-mode]] and the [[https://clubhouse.io/][Clubhouse]]
|
||||
issue tracker
|
||||
|
||||
(This used to be at urbint/org-clubhouse, by the way, but moved here as it's
|
||||
more of a personal project than a company one)
|
||||
|
||||
* Installation
|
||||
|
||||
** [[https://github.com/quelpa/quelpa][Quelpa]]
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(quelpa '(org-clubhouse
|
||||
:fetcher github
|
||||
:repo "glittershark/org-clubhouse"))
|
||||
#+END_SRC
|
||||
|
||||
** [[https://github.com/hlissner/doom-emacs/][DOOM Emacs]]
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; in packages.el
|
||||
(package! org-clubhouse
|
||||
:recipe (:fetcher github
|
||||
:repo "glittershark/org-clubhouse"
|
||||
:files ("*")))
|
||||
|
||||
;; in config.el
|
||||
(def-package! org-clubhouse)
|
||||
#+END_SRC
|
||||
|
||||
** [[http://spacemacs.org/][Spacemacs]]
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; in .spacemacs (SPC+fed)
|
||||
dotspacemacs-additional-packages
|
||||
'((org-clubhouse :location (recipe :fetcher github :repo "glittershark/org-clubhouse")))
|
||||
#+END_SRC
|
||||
|
||||
|
||||
* Setup
|
||||
|
||||
Once installed, you'll need to set three global config vars:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq org-clubhouse-auth-token "<your-token>"
|
||||
org-clubhouse-team-name "<your-team-name>"
|
||||
org-clubhouse-username "<your-username>")
|
||||
#+END_SRC
|
||||
|
||||
You can generate a new personal API token by going to the "API Tokens" tab on
|
||||
the "Settings" page in the clubhouse UI.
|
||||
|
||||
Note that ~org-clubhouse-username~ needs to be set to your *mention name*, not
|
||||
your username, as currently there's no way to get the ID of a user given their
|
||||
username in the clubhouse API
|
||||
|
||||
* Usage
|
||||
|
||||
** Reading from clubhouse
|
||||
|
||||
- ~org-clubhouse-headlines-from-query~
|
||||
Create org-mode headlines from a [[https://help.clubhouse.io/hc/en-us/articles/360000046646-Searching-in-Clubhouse-Story-Search][clubhouse query]] at the cursor's current
|
||||
position, prompting for the headline indentation level and clubhouse query
|
||||
text
|
||||
- ~org-clubhouse-headline-from-story~
|
||||
Prompts for headline indentation level and the title of a story (which will
|
||||
complete using the titles of all stories in your Clubhouse workspace) and
|
||||
creates an org-mode headline from that story
|
||||
- ~org-clubhouse-headline-from-story-id~
|
||||
Creates an org-mode headline directly from the ID of a clubhouse story
|
||||
|
||||
** Writing to clubhouse
|
||||
|
||||
- ~org-clubhouse-create-story~
|
||||
Creates a new Clubhouse story from the current headline, or if a region of
|
||||
headlines is selected bulk-creates stories with all those headlines
|
||||
- ~org-clubhouse-create-epic~
|
||||
Creates a new Clubhouse epic from the current headline, or if a region of
|
||||
headlines is selected bulk-creates epics with all those headlines
|
||||
- ~org-clubhouse-create-story-with-task-list~
|
||||
Creates a Clubhouse story from the current headline, making all direct
|
||||
children of the headline into tasks in the task list of the story
|
||||
- ~org-clubhouse-push-task-list~
|
||||
Writes each child element of the current clubhouse element as a task list
|
||||
item of the associated clubhouse ID.
|
||||
- ~org-clubhouse-update-story-title~
|
||||
Updates the title of the Clubhouse story linked to the current headline with
|
||||
the text of the headline
|
||||
- ~org-clubhouse-update-description~
|
||||
Update the status of the Clubhouse story linked to the current element with
|
||||
the contents of a drawer inside the element called DESCRIPTION, if any exists
|
||||
- ~org-clubhouse-claim~
|
||||
Adds the user configured in ~org-clubhouse-username~ as the owner of the
|
||||
clubhouse story associated with the headline at point
|
||||
|
||||
*** Automatically updating Clubhouse story statuses
|
||||
|
||||
Org-clubhouse can be configured to update the status of stories as you update
|
||||
their todo-keyword in org-mode. To opt-into this behavior, set the
|
||||
~org-clubhouse-mode~ minor-mode:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook 'org-mode-hook #'org-clubhouse-mode nil nil)
|
||||
#+END_SRC
|
||||
|
||||
The mapping from org-mode todo-keywords is configured via the
|
||||
~org-clubhouse-state-alist~ variable, which should be an [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Association-Lists.html][alist]] mapping (string)
|
||||
[[https://orgmode.org/manual/Workflow-states.html][org-mode todo-keywords]] to the (string) names of their corresponding workflow
|
||||
state. You can have todo-keywords that don't map to a workflow state (I use this
|
||||
in my workflow extensively) and org-clubhouse will just preserve the previous
|
||||
state of the story when moving to that state.
|
||||
|
||||
An example config:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq org-clubhouse-state-alist
|
||||
'(("TODO" . "To Do")
|
||||
("ACTIVE" . "In Progress")
|
||||
("DONE" . "Done")))
|
||||
#+END_SRC
|
||||
|
||||
* Philosophy
|
||||
|
||||
I use org-mode every single day to manage tasks, notes, literate programming,
|
||||
etc. Part of what that means for me is that I already have a system for the
|
||||
structure of my .org files, and I don't want to sacrifice that system for any
|
||||
external tool. Updating statuses, ~org-clubhouse-create-story~, and
|
||||
~org-clubhouse-headline-from-story~ are my bread and butter for that reason -
|
||||
rather than having some sort of bidirectional sync that pulls down full lists of
|
||||
all the stories in Clubhouse (or whatever issue tracker / project management
|
||||
tool I'm using at the time). I can be in a mode where I'm taking meeting notes,
|
||||
think of something that I need to do, make it a TODO headline, and make that
|
||||
TODO headline a clubhouse story. That's the same reason for the DESCRIPTION
|
||||
drawers rather than just sending the entire contents of a headline to
|
||||
Clubhouse - I almost always want to write things like personal notes, literate
|
||||
code, etc inside of the tasks I'm working on, and don't always want to share
|
||||
that with Clubhouse.
|
||||
|
||||
* Configuration
|
||||
|
||||
Refer to the beginning of the [[https://github.com/urbint/org-clubhouse/blob/master/org-clubhouse.el][org-clubhouse.el]] file in this repository for
|
||||
documentation on all supported configuration variables
|
1241
users/glittershark/org-clubhouse/org-clubhouse.el
Normal file
1241
users/glittershark/org-clubhouse/org-clubhouse.el
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue