Sow
A Harvest Command Line Application
Sow is a command-line application for use with the Harvest Time Tracking API. It relies on the Python Harvest API by the folks over at Lionheart. It also takes direct inspiration (and possibly some code snippets) from the Reap command line application for Harvest, also written in Python.
Sow is currently based on Python 2.7, but in the future will be ported to 3.4
Installation
pip install --user git+https://github.com/mekhami/Sow
That's it. (Note: This will eventually be redistributed via PyPi)
Add a Timesheet Entry
There are two ways to add an entry to Harvest. The first, before you make your first entry and are able to save an alias, is:
sow add
You can specify the date that you wish to add an entry for with -d or --date .
Simple as that, the application will guide you through the few steps required to make your timesheet entry. At the end of this process, it will prompt you to save an alias (more on that later).
Delete a Timesheet Entry
You can either delete all entries for the selected date, or select an entry from a list.
sow delete --all --date 2/10/15
or
sow delete --date 2/10/15
The former will confirm that you want to delete all the listed entries. The latter, you will select the number next to which entry you wish to delete.
Show your Timesheet Entries
To display an entry for today, type:
sow show today
For yesterday's entries:
sow show yesterday
For all of this week's entries:
sow show week
And finally, to see the entries on a specific date:
sow show --date <date>
(Dates should be entered in MM/DD/YYYY format.)
Aliases
When you make an entry, you are prompted to save an alias for easily adding future entries. The alias name becomes part of your command line arguments. This saves the Client and Task ID values to a configfile, which the application reads later.
sow add <alias> <hours> <note>
For example:
sow add myclient 8 'i worked for myclient today!'
In Development:
-
Deleting Entries(Done) -
Submitting Timesheets for Verification(Harvest API not supporting this in the near future.) - Using Timers for entries.
- Administration tasks (managing clients, projects, etc)
Questions? Concerns? Want to Contribute?
Feel free to open an issue for any questions, concerns, ideas, or suggestions. Contribution is as easy as opening a pull request. Make sure you explain your changes and provide documentation in your code.