About

youtrack-api is a fluent, object-oriented Java API for YouTrack, tested against version 2017.3.35488. It has just one dependency: Apache’s HttpClient version 4.5.x.

View the usage and the javadoc resources for additional details.

For bugs or enhancements, please use our issue tracker.


Snippet

final YouTrack youtrack = new DefaultYouTrack(
    new PermanentToken(new URL("http://youtrack"), "your_token")   //login
);

youtrack.projects()
    .stream()                                        //stream of all projects
    .filter(p -> p.id().equals("project_id"))
    .get()
    .issues()                                 
    .create("summary", "description") //create issue for the selected project
    .comments()
    .post("This is my first comment!");              //posts a comment to the newly created issue


Dependencies

Goals

The goals of this project include:

  • Provide a complete API in Java centered on the user (eg. the developer). This means that admin features are out of scope.
  • Faithfully follow YouTrack’s model and paradigms.
  • Provide a fluent interface to access YouTrack’s features.
  • Implement the best OOP design practices.
  • High quality by providing extensive test coverage and documentation.
  • Give back to the community by open-sourcing this project (we’ve applied the Apache License 2.0).

It is worth noting that performance is not a goal of this project.


Why another Java YouTrack API?

Of the few other Java API projects for YouTrack that seem anywhere remotely “complete”, all are lacking several of the following aspects:

  • Fluency
  • OOP (DTO is the backbone of their design philosophy)
  • Incorrect modeling
  • Immutability
  • Documentation (including licensing)
  • Tests (unit + integration)
  • Project activity


Include in maven projects

<dependency>
  <groupId>org.llorllale</groupId>
  <artifactId>youtrack-api</artifactId>
  <version>1.1.0-rc23</version>
</dependency>


Icon made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Back to top

Reflow Maven skin by Andrius Velykis.