posts:harvest: Add a post on Harvest and hcl
authorW. Trevor King <wking@tremily.us>
Fri, 21 Mar 2014 18:22:14 +0000 (11:22 -0700)
committerW. Trevor King <wking@tremily.us>
Fri, 21 Mar 2014 18:22:14 +0000 (11:22 -0700)
posts/Harvest.mdwn [new file with mode: 0644]

diff --git a/posts/Harvest.mdwn b/posts/Harvest.mdwn
new file mode 100644 (file)
index 0000000..1389385
--- /dev/null
@@ -0,0 +1,79 @@
+[Harvest][] is a time-tracking service (although I prefer the local
+[timebook][], for which I maintain an ebuild in my
+[[overlay|Gentoo_overlay]]).  There is an [hcl][] command line app
+(distributed as a Ruby gem) that you can use to clock in and out via
+the command line.  Harvest sorts folks into [subdomains][], and you'll
+need to know your subdomain to configure `hcl`:
+
+    $ hcl 
+    Please specify your Harvest credentials.
+    Email Address: you@example.net
+    Password: 
+    Subdomain: example
+    Use SSL? (y/n): y
+    Writing configuration to /home/you/.hcl/config.yml.
+            -------------
+            0:00    total (as of 05:28 pm)
+
+You can also get help with the usual `hcl --help`.
+
+Harvest tracks [projects][] and [tasks][], each with numeric ids.  You
+can find prject ids (via the web UI) by browsing to a [specific
+project][project].  You can use the web UI to add yourself to
+projects, but that probably takes admin powers.  Once you're added, to
+a project, hcl will list its tasks (with numeric project and task
+identifiers):
+
+    $ hcl tasks
+    1234 5678 Example Co. - [MP] My Project - Feature Development
+    1234 1357 Example Co. - [MP] My Project - Maintenance / Debugging
+    1234 2468 Example Co. - [MP] My Project - Project Managment
+    1234 9090 Example Co. - [MP] My Project - System Administration
+
+You can refer to tasks by their project and task numbers, or assign
+aliases:
+
+    $ hcl alias dev 1234 5678
+    $ hcl alias maint 1234 1357
+    $ hcl alias proj 1234 2468
+    $ hcl alias sysadmin 1234 9090
+    $ hcl aliases
+    @dev, @maint, @proj, @sysadmin
+
+Then start tasks by their alias:
+
+    $ hcl @proj
+
+You can optionally backdate your start time and provide an additional
+message:
+
+    $ hcl @proj +0:20 Harvest time-tracking
+
+See what you're currently doing:
+
+    $ hcl
+            0:22    (running) Beehive: Harvest time-tracking
+            -------------
+            0:22    total (as of 09:42 am)
+
+Add notes about your activity:
+
+    $ hcl note Documenting basic hcl usage
+
+And clock out when you're done:
+
+    $ hcl stop Coffee break
+
+The Harvest folks publish the [API][] in a Git repository, so it's
+easy to track changes or grep for keywords.
+
+[Harvest]: http://www.getharvest.com/
+[timebook]: https://bitbucket.org/trevor/timebook/overview
+[hcl]: https://github.com/zenhob/hcl
+[subdomains]: https://example.harvestapp.com/
+[projects]: https://example.harvestapp.com/projects
+[tasks]: https://example.harvestapp.com/tasks
+[project]: https://example.harvestapp.com/projects/1234/edit
+[API]: https://github.com/harvesthq/api
+
+[[!tag tags/tools]]