We're a software development business using JetBrains' YouTrack , the popular web-based issue tracking software which allows our engineers to log their work against estimates. Separately, we also use the time-tracking web-app Harvest for recording the business's billable hours, and recording employee time to determine how much we can bill. There's a bit of an overlap, and we'd love to have a tool that allows time recorded in YouTrack to automatically populate Harvest.
We'd like a piece of code that connects the two, using the published APIs. It'll need to do the following:
- Any time entered for a user against a project in YouTrack, will add time for that user and project in Harvest.
- The system should have some tolerance for amendments. It must either therefore:
-- Update Harvest as a batch, at a daily time that can be amended (thus allowing developers time to change their data in YouTrack any time before this), OR
-- Individual amendments and deletions made in YouTrack must carry through to Harvest.
- It should use the published APIs for both systems
- It should be built as a plugin to YouTrack (or Harvest if there is a way), rather than a standalone component.
There are a few knowns you can assume, and some unknowns you will need to solve as part of the project:
- Assume that all times should be stored in Harvest as hours, with a “day” in YouTrack being translated to 7 hours in Harvest.
- Assume that you can uniquely identify a user by the same email address being recorded against them in both systems.
- Should any part of your solution require a server to run on directly (as opposed to being an installed plugin), assume a Linux environment.
- As part of the solution, you will need to propose how a given YouTrack project can be uniquely linked to both a client and project in Harvest. An acceptable solution would be to ensure the project ID code in YouTrack matches the project code in Harvest, although a more flexible approach that allows us to match them in a custom fashion would be preferred.