GithubHelp home page GithubHelp logo

magicxiaobao / java-client-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jenkinsci/java-client-api

0.0 0.0 0.0 1.82 MB

A Jenkins API client for Java

License: MIT License

Shell 0.12% Java 99.82% Dockerfile 0.05%

java-client-api's Introduction

A Jenkins API Client for Java

MIT Licence Maven Central Build Status Javadocs

Important Note

The Jenkins API Client For Java has now moved under the umbrella of the Jenkins GitHub Organization.

What is the "Jenkins API Client for Java"?

This library is just a piece of java code which uses the REST API of jenkins. This means you can trigger builds, extract informations about jobs or builds etc. The information you can extract will be represented in java objects which you can reuse for other purposes or integrate this library into other parts for a higher level of integration.

Getting Started

If you like to use this library you need to add the library as a dependency to your project. This can be done by using a Maven dependency like the following:

<dependency>
  <groupId>com.offbytwo.jenkins</groupId>
  <artifactId>jenkins-client</artifactId>
  <version>0.3.8</version>
</dependency>

This can also being done by defining a Gradle dependency like this:

compile 'com.offbytwo.jenkins:jenkins-client:0.3.8'

Starting with a future release 0.4.0 the groupId/artifactId will change (NOT YET DONE!)

<dependency>
  NOT YET FINALIZED NOR RELEASED !!!
  <groupId>org.jenkins-ci.lib</groupId>
  <artifactId>java-client-api</artifactId>
  <version>0.4.0</version>
</dependency>

Usage

The com.offbytwo.jenkins.JenkinsServer class provides the main entry point into the API. You can create a reference to the Jenkins server given its location and (optionally) a username and password/token.

JenkinsServer jenkins = new JenkinsServer(new URI("http://localhost:8080/jenkins"), "admin", "password")

At the top level you can access all of the currently defined jobs. This returns a map of job names (in lower case) to jobs.

Map<String, Job> jobs = jenkins.getJobs()

The Job class provides only summary information (name and url). You can retrieve details as follows

JobWithDetails job = jobs.get("My Job").details()

The JobWithDetails class provides you with access to the list of builds (and related information such as the first, last, successful, etc) and upstream and downstream projects.

Running Tests

To run only unit tests without invoking the integration tests use the following command:

mvn clean install -DskipITs

Running Integration Tests

To run integration tests simply start

mvn -Prun-its clean verify

There is also a module which contains integration tests which are running with a special version of Jenkins within a Docker container to check several aspects of the API which can't be covered by the usual integration tests.

Release Notes

You can find details about the different releases in the Release Notes.

Contribution

Creating Issues

If you find a problem please create an issue in the ticket system with the component java-client-api and describe what is going wrong or what you expect to happen. If you have a full working example or a log file this is also helpful. You should of course describe only a single issue in a single ticket and not mixing up several different things into a single issue.

Creating a Pull Request

Before you create a pull request it is necessary to create an issue in the ticket system before with the component java-client-api and describe what the problem is or what kind of feature you would like to add. Afterwards you can create an appropriate pull request.

It is required if you want to get a Pull request to be integrated into please squash your commits into a single commit which references the issue in the commit message which looks like this:

Fixed #Issue
 o Description.

This makes it simpler to merge it and this will also close the appropriate issue automatically in one go. This make the life as maintainer a little bit easier.

A pull request has to fulfill only a single ticket and should never create/add/fix several issues in one, cause otherwise the history is hard to read and to understand and makes the maintenance of the issues and pull request hard or to be honest impossible.

Furthermore it is necessary to create appropriate entries into the ReleaseNotes.md file as well.

Help & Questions

You can ask questions in the mailing list which is also intended as discussion forum for development.

Generated Site

http://jenkinsci.github.io/java-client-api/

License

Copyright (C) 2013, Cosmin Stejerean, Karl Heinz Marbaise, and contributors.

Distributed under the MIT license: http://opensource.org/licenses/MIT

java-client-api's People

Contributors

activey avatar alecharp avatar based2 avatar cosmin avatar cvanfleteren avatar daisuke-yoshimoto avatar darxriggs avatar dellgreen avatar dependabot[bot] avatar estebanwasinger avatar fsamin avatar gmaslowski avatar guange2015 avatar hamaron avatar iapplejohn avatar jakobwenzel avatar khmarbaise avatar klyall avatar ladventure avatar micw avatar mivola avatar pawelantczak avatar pnathan avatar rainerw avatar svenseemann avatar terabyte avatar tmorgner avatar tom-smalls avatar wstrzalka avatar wtrocki avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.