Skip to content
sahilsk edited this page Mar 8, 2015 · 1 revision

Users API

How-to

Create new gitlab client:

var Projects= require("gitlb-yaac/projects");

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

Now start making calls:

List projects

gProjects.list( function(err, res, result){
    if(!err && res.statusCode == 200 ){
      for( var i = 0; i < result.length; i++){
        console.log( result[i]);
      }
    }
});

with params:

var params = {
  archived: true,
  order_by: "last_activity_at ",
  sort: "asc"
};

gProjects.list(params, function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

List owned projects

gProjects.listOwned( function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

List ALL projects (admin only).

gProjects.listAll( function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

Search projects

var searchObj = { query: "orchestrate"};

gProjects.search( searchObj, function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

Get single project

// project_id: The ID or NAMESPACE/PROJECT_NAME of a project
gProjects.find( project_id, function(err, res, result){
  if(!err && res.statusCode == 200 ){
    console.log( result);
  }
});

Get project events

gProjects.events( projectIdentifier, function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

Create project

var newProject = {
	name : "dummyProject-007",
	description : "dummy project will be deleted soon",
	issues_enabled  : false,
	merge_requests_enabled : false,
	wiki_enabled : false,
	snippets_enabled :false,
	public : false,
	visibility_level : 20
}

gProjects.create( newProject,  function(err, res, result){
  if(!err && res.statusCode === 201 ){
    console.log( "Project created: ", result);
  }
});

Create project for user

var newProject = {
  name : "dummyProject-007",
  description : "dummy project will be deleted soon",
  issues_enabled  : false,
  merge_requests_enabled : false,
  wiki_enabled : false,
  snippets_enabled :false,
  public : false,
  visibility_level : 20
};

gProjects.createFor( user_id, newProject,  function(err, res, result){
  if(!err && res.statusCode === 201 ){
    console.log( "Project created: ", result);
  }
});

Edit project

gProjects.update( project_id, {description:"updated dummyProject-008"}, function(err, res, result){
 console.log( "updating ", err, result);
  callback(err, res, result);
  done();
});

Fork project

gProjects.fork( project_id,  function(err, res, result){
  if(!err && res.statusCode === 201 ){
    console.log( "Forked project: ", result);
  }
});

Remove project

gProjects.delete(project_id, function(err, res, result){
  if(!err && res.statusCode === 200 ){
    console.log( "project deleted");
  }
});

Team members

Get a list of a project's team members.

gProjects.members( project_id,  function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

Get project team member

gProjects.getMember( member_id, project_id, function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( result);
    }
});

Add project team member

var user_obj = { user_id: 4, access_level: 30};
gProjects.addMember( user_obj, existingProject.id,
  function(err, res, result){
    if(!err && res.statusCode === 201 ){
      console.log( result);
    }
});

Edit project team member

gProjects.updateMember( member_id, project_id, {access_level:10}
    , function(err, res, result){
      if(!err && res.statusCode === 200 ){
        console.log( "updated");
      }
});

Remove project team member

gProjects.removeMember( existingUserId, existingProject.path_with_namespace,
  function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( "removed"");
    }
});  

Hooks

List project hooks

gProjects.hooks( existingProject.id,  function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

Get project hook

gProjects.getHook( hook_obj.id, existingProject.id,
  function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( "hook: ", result);
    }
});

Add project hook

var hook_obj = { url: "http://dymmyhookgoeshere", push_events:true, issues_events: true};
gProjects.addHook( hook_obj, pro.id,
  function(err, res, result){
    if(!err && res.statusCode === 201 ){
      console.log( "hook: ", result);
    }
});  

Edit project hook

gProjects.updateHook( {push_events: false}, hook_id, existingProject.path_with_namespace
    , function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( "hook: ", result);
    }
});

Delete project hook

gProjects.deleteHook( hook_id, project_id,
  function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( "hook deleted ");
    }
});  

Branches

List branches

gProjects.branches( project_id,  function(err, res, result){
  if(!err && res.statusCode == 200 ){
    for( var i = 0; i < result.length; i++){
      console.log( result[i]);
    }
  }
});

List single branch

gProjects.getBranch( branch_name, project_id,
  function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( "branch: ", branch);
    }
});

Protect single branch

gProjects.protectBranch( branch_name, project_id,, function(err, res, result){
      if(!err && res.statusCode === 200 ){
        console.log(result);
      }
});

Unprotect single branch

gProjects.unprotectBranch( branch_name, project_id,, function(err, res, result){
      if(!err && res.statusCode === 200 ){
        console.log(result);
      }
});

Admin fork relation

Create a forked from/to relation between existing projects.

gProjects.createForkFromRelation( project_id, forked_from_id, function(err, res, result){
      if(!err && res.statusCode === 201 ){
        console.log(result);
      }
});

Delete an existing forked from relationship

gProjects.deleteForkFromRelation( project_id, function(err, res, result){
      if(!err && res.statusCode === 200 ){
        console.log(result);
      }
});