The LeanKit client module for Node.js provides an easy-to-use set of functions designed to simplify the integration of external systems and utilities with your LeanKit account. The client supports both callbacks and promises. There is also a LeanKitEvents
module for subscribing to board events.
npm install leankit-client
var LeanKitClient = require( "leankit-client" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );
client.getBoards( function( err, boards ) {
console.log( boards );
} );
var LeanKitClient = require( "leankit-client" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );
client.getBoards().then( function( boards ) {
console.log( boards );
}, function( err ) {
console.log( "ERR:", err );
} );
Review the tests for a full list of client functions and how to use them.
The LeanKit Client includes a module for monitoring a board for events, such as when cards are created, moved, assigned, and so forth.
Events usage
var LeanKitEvents = require( "leankit-client/events" );
var events = new LeanKitEvents( client, boardId [, version] [, pollInterval] );
events.on( "event-name", function( e ) {
// Do something with the event
} );
events.start();
Constructor options
Parameter | Description |
---|---|
client |
An instance of the LeanKitClient . |
boardId |
The ID of the LeanKit Board to subscribe to. |
version |
Optional Board version number. If events have occurred since the given version , those will be returned immediately. |
pollInterval |
Optional polling interval in seconds. The default is 30 seconds. |
Sample
var LeanKitClient = require( "leankit-client" );
var LeanKitEvents = require( "leankit-client/events" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );
var boardId = 445566789; // The board ID to subscribe to
var events = new LeanKitEvents( client, boardId );
events.on( "card-creation", function( e ) {
console.log( e );
} );
events.start();
Sample output when a card is added to the subscribed board:
{ cardId: 123456789,
eventType: 'card-creation',
eventDateTime: '11/06/2015 03:38:05 PM',
message: 'David Neal created the Card [Sample Card 1] within Lane [ToDo].',
toLaneId: 456789123,
fromLaneId: null,
requiresBoardRefresh: false,
isBlocked: false,
blockedComment: null,
userId: 62984826,
assignedUserId: 0,
isUnassigning: false,
commentText: null,
wipOverrideComment: null,
wipOverrideLane: 0,
wipOverrideUser: 0,
taskboardParentCardId: 0,
taskboardId: 0,
boardVersion: 2 }
Card events
Event | Description |
---|---|
card-creation |
Occurs when a new card is added to a board. |
card-move |
Occurs when a card is moved on the board. |
card-fields-changed |
Occurs when a card's fields are modified (e.g. Title, Description, and so forth) |
comment-post |
Occurs when a user posts a comment on a card. |
user-assignment |
Occurs when users are assigned or unassigned from a card. Check the isUnassigning property to know whether the user is being assigned or unassigned. |
attachment-change |
Occurs when an attachment is added to a card. |
card-blocked |
Occurs when a card is blocked or unblocked. Check the isBlocked property to know whether the card was blocked or unblocked. |
card-move-from-board |
Occurs when a card is moved from the board being monitored to another board. |
card-move-to-board |
Occurs when a card is moved from another board to the board being monitored. |
card-deleted |
Occurs when a card is deleted. |
Board events
Event | Description |
---|---|
board-edit |
Occurs when the board layout/structure is modified. |
activity-types-changed |
Occurs when custom icons are modified. |
board-card-types-changed |
Occurs when card types for the board are modified. |
To use the LeanKit client behind a proxy server, pass an options object to the module constructor that includes the proxy server. For example:
var LeanKitClient = require("leankit-client");
var client = LeanKitClient.createClient("account-name", "[email protected]", "your-p@ssw0rd", { "proxy": "http://localproxy.com" } );
This options
object is the same object used by the request module.
-
Install babel
-
Clone or download the
leankit-node-client
Github repository. -
Open a Terminal window, change to the repository folder, and install dependent packages.
npm install
-
Create a folder in your node application's
node_modules
folder namedleankit-client
(e.g. `[project-name]/node_modules/leankit-client). -
Copy all the files and folders in the
leankit-node-client
folder to theleankit-client
folder created in the previous step.
-
Set environment variables for the LeanKit account you wish to test with.
OSX/Linux
export LEANKIT_ACCOUNT=your-account-name export [email protected] export LEANKIT_PASSWORD=your-p@ssw0rd export LEANKIT_TEST_BOARD=name-of-your-test-board
Windows
setx LEANKIT_ACCOUNT "your-account-name" setx LEANKIT_EMAIL "[email protected]" setx LEANKIT_PASSWORD "your-p@ssw0rd" setx LEANKIT_TEST_BOARD "name-of-your-test-board"
Note: On Windows, you will need to reopen your command prompt after setting environment variables.
-
Install Mocha
npm install -g mocha
-
Open Terminal and change to the LeanKit Node Client directory
-
Run tests
npm test
Visit support.leankit.com.
The LeanKit Node Client is licensed under MIT. Refer to license.txt for more information.