/Gitlab-YAAC

Gitlab api client with more control over server response

Primary LanguageJavaScript

Gitlab-YAAC( Yet Another Api Client)

Gitlab api client with more control over server response

Motivation

Why one more gitlab api client? Though other project works and return the result as expected but due to poor implementation, less or no control over server response and few other reasons, didn't scale them well. Design differences also makes this project different. In the end i need this for my current project.

Features

  • asynchronous calls i.e no blocking
  • fetches server response as well
  • standard callback function argumnets: function( error, response, result){ ... }
  • use what you need. eg. require('gitlab-yaac/users'); and you'll get users resource available only

Installation

npm install gitlab-yaac

Example

var Users= require("gitlb-yaac/users");

//** Create new gitlab client
var gUsers = new Users({
  url:   'http://example.com',
  token: 'abcdefghij123456',
  admin: true
});


// find all users
gUsers.find( function(err,response, results){})
...

//search for users by email or username with: /users?search=John
gUsers.find("john", function(err, response,results){ });

...
//find user by id
gUsers.find(4, function(err, response,result){ 
	if( response.statusCode !== 404 ){
		console.log("user found: ", result);
	}
}
});

// with pagination
gUsers.find( {page: 1, per_page: 2}, function(err,res,result){...});
// Or
gUsers.find( "username/email", {page:1, per_page: 2}, function(err, res, result){...})

Documentation

find it on wiki

API

GitLab API

Not all resources are implemented yet. Only highlighted ones are currently implemented.

Currently implemented resources are:

  • Users
  • Session
  • Projects

Resources

  • Users
  • Session
  • Projects
  • Project Snippets
  • Repositories
  • Repository Files
  • Commits
  • Branches
  • Merge Requests
  • Issues
  • Labels
  • Milestones
  • Notes (comments)
  • Deploy Keys
  • System Hooks
  • Groups

References

Roadmap

  • TLS/SSL Protocol support
  • add more resources

License

MIT