GitLab API Nodejs library. It wraps the HTTP v4 api library described here.
# Install from npm
npm install node-gitlab-api
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
})
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});
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!
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.
MIT
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