https://github.com/singer-io/tap-harvest
A Singer tap for extracting data from the Harvest API
https://github.com/singer-io/tap-harvest
singer tap
Last synced: about 6 hours ago
JSON representation
A Singer tap for extracting data from the Harvest API
- Host: GitHub
- URL: https://github.com/singer-io/tap-harvest
- Owner: singer-io
- License: agpl-3.0
- Created: 2017-03-22T15:11:09.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-04-14T06:29:12.000Z (14 days ago)
- Last Synced: 2025-04-14T07:25:06.152Z (14 days ago)
- Topics: singer, tap
- Language: Python
- Homepage:
- Size: 364 KB
- Stars: 8
- Watchers: 15
- Forks: 13
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# tap-harvest
A singer.io tap for extracting data from the Harvest REST API, written in python 3.
API V1 Author: Jordan Ryan ([email protected])
API V2 Author: Steven Hernandez ([email protected])## Quick start
1. Install
Clone this repository, and then install using setup.py. We recommend using a virtualenv:
```bash
> virtualenv -p python3 venv
> source venv/bin/activate
> python setup.py install
```2. Create your tap's config file which should look like the following:
```json
{
"client_id": "OAUTH_CLIENT_ID",
"client_secret": "OAUTH_CLIENT_SECRET",
"refresh_token": "YOUR_OAUTH_REFRESH_TOKEN",
"start_date": "2017-04-19T13:37:30Z",
"user_agent": "MyApp ([email protected])",
"request_timeout": 300
}
```3. [Optional] Create the initial state file
```json
{
"clients": "2000-01-01T00:00:00Z",
"contacts": "2000-01-01T00:00:00Z",
"estimate_item_categories": "2000-01-01T00:00:00Z",
"estimate_messages": "2000-01-01T00:00:00Z",
"estimates": "2000-01-01T00:00:00Z",
"expense_categories": "2000-01-01T00:00:00Z",
"expenses": "2000-01-01T00:00:00Z",
"invoice_item_categories": "2000-01-01T00:00:00Z",
"invoice_messages": "2000-01-01T00:00:00Z",
"invoice_payments": "2000-01-01T00:00:00Z",
"invoices": "2000-01-01T00:00:00Z",
"project_tasks": "2000-01-01T00:00:00Z",
"project_users": "2000-01-01T00:00:00Z",
"projects": "2000-01-01T00:00:00Z",
"roles": "2000-01-01T00:00:00Z",
"tasks": "2000-01-01T00:00:00Z",
"time_entries": "2000-01-01T00:00:00Z",
"user_projects": "2000-01-01T00:00:00Z",
"users": "2000-01-01T00:00:00Z"
}
```4. Run the application
`tap-harvest` can be run with:
```bash
tap-harvest --config config.json [--state state.json]
```---
Copyright © 2017 Stitch