Skip to content

fuchao2012/node-gitlab-api

 
 

Repository files navigation

dependencies StatusdevDependencies StatusCode Climate

NPM

node-gitlab-api

GitLab API Nodejs library. It wraps the HTTP v4 api library described here.

Table of Contents

Install

# Install from npm
npm install node-gitlab-api

Usage

URL to your GitLab instance should not include /api/v4 path.

// Connection with basic token
const GitlabAPI = require('node-gitlab-api')({
  url:   'http://example.com', // Defaults to http://gitlab.com
  token: 'abcdefghij123456'
})
  
// Connection with oauth token
const GitlabAPI = require('node-gitlab-api')({
  url:   'http://example.com', // Defaults to http://gitlab.com
  oauthToken: 'abcdefghij123456'
})

// Listing users
let users = await gitlab.users.all();

console.log(users);

// Listing projects
let projects = await gitlab.projects.all();

console.log(projects);

General rule about all the function parameters:

  • If its a required parameter, it is a named argument in the functions
  • If its an optional parameter, it is defined in a options object following the named arguments

ie.

GitlabAPI.projects.create(projectId, {
	//options defined in the gitlab api documentation
})

Pagination

For any .all() function on a reasource, it will return all the items from gitlab. This can be troublesome if there are many items, as the request it self can take a while to be fulfilled. As such, a maxPages option can be passed to limit the scope of the all function.

// Listing projects
let projects = await gitlab.projects.all({max_pages:2});

You can also use this in conjunction to the perPage argument which would override the default of 30 per page set by Gitlab:

// Listing projects
let projects = await gitlab.projects.all({max_pages:2, per_page:40});

Docs

Although there are the offical docs for the API, i realised i should still explain the function calls in this library, so i wrote some up!

Contributors

This started off as a fork from node-gitlab but I ended up rewriting 90% of the code. Here are the original work's contributers.

License

MIT

Changelog

1.1.2 (2017-09-24)

  • Updated the protected branch functionality by adding an options parameter originally proposed by shadygrove
  • Removed old paging logic from groups
  • Updating library dependencies

1.1.1 (2017-09-24)

  • Patch, fixed a broken pagination property

1.1.0 (2017-09-24)

  • Adding proper pagination support

1.0.14 (2017-08-1)

  • Adding default file name for file uploads. If none is supplied, the filename is inferred from the file path

1.0.13 (2017-07-31)

  • Fixed another bug in the project file upload functionality

1.0.12 (2017-07-30)

  • Added issue links (for related issues)
  • Fixed project file upload

1.0.11 (2017-07-20)

  • Fixing the problem where Id was used instead of IId's for Project issues
  • Fixing the naming convention for Project Issues
  • Standadized the use of parseInt in the codebase
  • Removed instances of duplicate code found by code climate

1.0.10 (2017-07-13)

  • Fixing Issues #1, #2, and #3

1.0.9 (2017-07-06)

  • Fixing broken Notes API reference
  • Added Project triggers, members and hooks docs
  • Moved Project Runners into its own scope and seperated out general Runners API logic

1.0.8 (2017-06-30)

  • Adding more to the Project Issue Notes API
  • Updating Readme to show examples of connecting with oauth tokens
  • Begun adding documentation for projects

1.0.7 (2017-06-23)

  • Fixing bug within the Issues API; reference to an old function.

1.0.6 (2017-06-23)

  • Fixing bug within the Labels API; Missing required argument.

1.0.5 (2017-06-23)

  • Fixing bug within the delete API calls. It was missing query parameters

1.0.4 (2017-06-23)

  • Adding more to the Labels API
  • Cleaned up the Issues class

1.0.3 (2017-06-23)

  • Updating problems within the Milestone API
  • Removed the old 'list' calls for projects and issues which displayed a deprecated message. Only all is available now.

1.0.2 (2017-06-22)

  • Updating examples in readme
  • Adding dependancy badges
  • Removing unused test files

1.0.1 (2017-06-21)

  • Initial release
  • TODO: Tests, Examples

About

Node wrapper for the Gitlab API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%