node-hydra-connector
Remotely control Hydra: a Nix-based continuous integration server by invoking its REST API from a Node.js application.
Installation
There are two ways this package can installed.
To install this package through the Nix package manager, obtain a copy of Nixpkgs and run:
$ nix-env -f '<nixpkgs>' -iA nodePackages.node-hydra-connector
Alternatively, this package can also be installed through NPM by running:
$ npm install -g node-hydra-connector
API usage
Instantiate a HydraConnector
object and then call any of the supported
operations.
The following example code connects to a Hydra instance running on localhost
,
queries all projects and displays their names:
var HydraConnector = HydraConnector; var hydraConnector = "http://localhost"; hydraConnector;
Some operations, e.g. the write operations require user authentication.
By invoking the login()
method, we can authenticate ourselves:
hydraConnector;
Likewise, we can also logout by invoking:
hydraConnector;
A private Hydra server may be hidden behind a reverse proxy that requires HTTP
basic authentication. To authenticate, we can provide the HTTP basic credentials
to the HydraConnector
constructor:
var HydraConnector = HydraConnector; var hydraConnector = "http://localhost" "sander" "12345"; // HTTP basic credentials
Command-line utility usage
This package also includes a command-line utility using the API to communicate with a Hydra instance from the command-line.
$ hydra-connect --help
When using the tool, you typically want to start with an overview of projects:
$ hydra-connect --url http://localhost --projects
For each request, the tool will provide command suggestions that can be used to obtain more detailed information, such as querying the properties of an individual project:
$ hydra-connect --url http://localhost --project MyProject
All requests that display information can also provide the underlying JSON representation that comes from Hydra's REST API:
$ hydra-connect --url http://localhost --project MyProject --json
API documentation
This package includes API documentation, which can be generated with JSDoc.
License
MIT