A Harvest Command Line App
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



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


``` 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 ``` (Dates should be entered in MM/DD/YYYY format.)


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 ``` For example: ``` sow add myclient 8 'i worked for myclient today!' ```

In Development:

1. ~~Deleting Entries~~ (Done) 2. ~~Submitting Timesheets for Verification~~ (Harvest API not supporting this in the near future.) 3. Using Timers for entries. 4. 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.