node-gitlab-api
GitLab API Nodejs library.
It wraps the HTTP v4 api library described here.
Table of Contents
Install
npm install node-gitlab-api
Usage
URL to your GitLab instance should not include /api/v4
path.
const GitlabAPI = require('node-gitlab-api')({
url: 'http://example.com',
token: 'abcdefghij123456'
})
const GitlabAPI = require('node-gitlab-api')({
url: 'http://example.com',
oauthToken: 'abcdefghij123456'
})
let users = await gitlab.users.all();
console.log(users);
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, {
})
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.
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:
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
- 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