slack-promised-redmine 0.0.1

Redmine Rest API Client for node.js with Promises/A+ compliance


Platform: npm

Language: JavaScript

License: MIT

View on registry:

Install: npm install slack-promised-redmine


Redmine REST API Client for node.js implemented with promises/A+ Codacy Badge

This was a modified version of the original redmine module by sotarok using D.js to implement it as a promises/A+ compatible api. But it has been largely rewrote since and is a totally different project now.


  • support both http / https protocols
  • support basicAuth authentication
  • compatible with promises/A+ through D.js
  • simple api
  • recursively retrieve issues until given date
  • exponential backoff retries

Main methods

  • Settings getter/setter

    • all setters return the Redmine instance and are chainable
    • (get|set)ApiKey(key) api key given by your redmine server
    • (get|set)Host(host) ip or hostname of the redmine api endpoint
    • (get|set)Port(port) set remote server port default to 80
    • (get|set)BasicAuth(auth) string used as auth option of the http request
    • (get|set)Protocol(protocol) http or https
    • (get|set)PathPrefix(prefix) path prefix to prepend to each request paths
    • (get|set)SslCaCert(certFilePath) path or array of path to authority certificates files to check the remote host against
    • (get|set)SslClientCert(certFilePath) path to public x509 certificate file to use
    • setSslClientKey(keyFilePath, passPhrase)* path to client private key file to use for SSL and associated passphrase
    • (get|set)MaxTry(maxTry) max number of retry on request error default to 1 (get|set)MaxDelay(maxDelay) max time in ms to wait between two retry on request error default to 2000 (get|set)Verbose(verbose) boolean value that turn on/off console.log on errors and retries. (default setting to false)
  • Generics

    • all generic methods path doesn't require leading slash nor the .json extension e.g. for issues it can be "issues" or "issues/{id}"
    • get(path, params) get a single resource or a list or resources
    • getAllSince(what, since, params) helper to get all items of a collection since the given date (isoString or Date instance)
    • post(path, params) create a new resource on corresponding path
    • put(path, params) update a given resource with params
    • del(path, params) remove given resource
  • Issues

    • getIssues(params) return list of issues (max 100)
    • getIssue(id) return an issue details by its id
    • getAllIssuesSince(since, params) return all issues since given date (isoString or Date instance)
    • postIssue(params) create a new issue
    • updateIssue(id, params) update issue with given id
    • deleteIssue(id) delete an issue by its id
  • Users
    • getUsers(params) return list of users (max 100)
    • getUser(id) retrieve user details by its id
    • getUserCurrent() return current user (the one corresponding to the apiKey)
  • Projects
    • getProjects(params) get a list of projects (max 100)
    • getProject(id) return details about a single project by its id
    • getAllProjectsSince(since, params) return all projects updated since given date (isoString or Date instance)
  • Time Entries
    • getTimeEntries(params) returns a list of time entries
    • getTimeEntry(id) returns time entry of given id
    • postTimeEntry(params) returns time entry of given id
    • updateTimeEntry(id, params) update time entry corresponding to the given id
    • deleteTimeEntry(id) delete time entry of given id

All request made can use a retry settings based on an exponential backoff algorithm. You can set thoose settings for all request using setMaxRetry and setMaxDelay methods, or on a request basis by passing a retry property to the params parameter. This retry property should be an object with one or two property of maxTry and maxDelay e.g. var params = {retry: {maxTry:3}}

Basic Usage example

var Redmine = require('promised-redmine');
var config = {
 host: "localhost", // required
 apiKey: "XXXXXX", // required
 pathPrefix: "/myRedminePath",
 protocol: "http",
 // if using SSL settings, change protocol and port accordingly
 sslCaCert: '/path/to/root/ca.pem', // defaults to null
 sslClientCert: '/path/to/client/cert.pem', // defaults to null
 sslClientKey: '/path/to/client/cert.key', // defaults to null
 sslClientPassphrase: 'clientKeyPassphrase' // defaults to null
var redmineApi = new Redmine(config);
 .success(function(issues){ // success is an alias of then without the promise rejection management in D.js the underlying promise library
 // do something with that


Install from npm:

$ npm install promised-redmine


веселые картинки развлекательные гифки интресные факты смешные видео смешные истории из соцсетей


Development Dependencies

GitHub Repository

malko/node-promised-redmine malko/node-promised-redmine

node module to work with redmine api rewrited to be promises/A+ compliant

Language: JavaScript

Created: June 24, 2013 00:06

Last updated: March 31, 2015 03:13

Last pushed: March 22, 2015 02:18

Size: 320 KB

Stars: 13

Forks: 6

Watchers: 2

Open issues: 0

Top Contributors

Jonathan Gotti Eric Sabelhaus Antiokus314


  • 0.0.1 - April 01, 2015 12:24

Related Projects

promised 0.2.2
from Node-style callback API to promise API
npm - CoffeeScript - MIT - Updated almost 2 years ago
promised-redmine 0.2.10
Redmine Rest API Client for node.js with Promises/A+ compliance
npm - JavaScript - MIT - Updated 10 days ago - 13 stars
promised-fs 0.1.0
Promise based filesystem API for node.
npm - JavaScript - Other - Updated about 4 years ago - 3 stars
redmine 0.2.3
Redmine Rest API Client for node.js
npm - JavaScript - Other - Updated about 3 years ago - 24 stars
redmine-api 0.0.2
access Redmine using NodeJS and Redmine REST api
npm - JavaScript - MIT - Updated 9 months ago
веселые картинки развлекательные гифки интресные факты смешные видео смешные истории из соцсетей