Skip to content
sahilsk edited this page Mar 2, 2015 · 3 revisions

Users API

How-to

Create new gitlab client:

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

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

Now start making calls:

List users

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

Add pagination :

var pagination = { page: 1, per_page : 12};
gUsers.find( pagination, function(err, res, result){
    if(!err && res.statusCode == 200 ){
      for( var i = 0; i < result.length; i++){
        console.log( result[i]);
      }
    }
});

Get a single user

  • by user id

     gUsers.find( uid, function(err, res, result){
       if(!err && res.statusCode == 200 ){
         console.log( result);
       }
     });
    
  • by username or email

     gUsers.find( email, function(err, res, result){
       if(!err && res.statusCode == 200 ){
         console.log( result[0]);
       }
     });
    

Create new user

Only administrators can do this.

var newUser = { "name" : "dummyName",
          "username" : "dummyUsername",
          "email" :"dumm@mailinator.com",
          "password" : "S3CR3TGoesHere" };

gUsers.create( newUser, function(err, res, result){
    if(!err && res.statusCode == 201 ){
      console.log( result);
    }
});

Modifies an existing user.

Only administrators can do this.

  var updatedUser = newUser;
  updatedUser.name ="ChangedName";
  updatedUser.skype ="dummySkypeInfo";

  gUsers.update(updatedUser.id, updatedUser, function(err, res, result){
    if(!err && res.statusCode == 200 ){
      console.log( result);
    }
  });

Deletes a user

Only administrators can do this.

  gUsers.delete(delUser.id, function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( result);
    }
  });

Gets currently authenticated user.

gUsers.current( function(err, res, result){
  if(!err && res.statusCode === 200 ){
    console.log( result);
  }
});

OR

gUsers.me( function(err, res, result){
  if(!err && res.statusCode === 200 ){
    console.log( result);
  }
});

Get a list of currently authenticated user's SSH keys.

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

List SSH keys for user

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

Single SSH key

For authenticated user:

  gUsers.getKey( key_id , function(err, res, result){
    if(!err && res.statusCode === 200 ){
      console.log( result);
    }
  });

for a user: GITLAB NOT SUPPORTED YET

Add SSH key

- Creates a new key owned by the currently authenticated user.
var newKeyObj = {
     "key": "ssh-dss AAAAB3NzaC1kc3MAAACBAMLrhYgI3atfrSD6KDas1b/3n6R/HP+bLaHHX6oh+L1vg31mdUqK0Ac/NjZoQunavoyzqdPYhFz9zzOezCrZKjuJDS3NRK9rspvjgM0xYR4d47oNZbdZbwkI4cTv/gcMlquRy0OvpfIvJtjtaJWMwTLtM5VhRusRuUlpH99UUVeXAAAAFQCVyX+92hBEjInEKL0v13c/egDCTQAAAIEAvFdWGq0ccOPbw4f/F8LpZqvWDydAcpXHV3thwb7WkFfppvm4SZte0zds1FJ+Hr8Xzzc5zMHe6J4Nlay/rP4ewmIW7iFKNBEYb/yWa+ceLrs+TfR672TaAgO6o7iSRofEq5YLdwgrwkMmIawa21FrZ2D9SPao/IwvENzk/xcHu7YAAACAQFXQH6HQnxOrw4dqf0NqeKy1tfIPxYYUZhPJfo9O0AmBW2S36pD2l14kS89fvz6Y1g8gN/FwFnRncMzlLY/hX70FSc/3hKBSbH6C6j8hwlgFKfizav21eS358JJz93leOakJZnGb8XlWvz1UJbwCsnR2VEY8Dz90uIk1l/UqHkA= loic@call",
     "title": "dummySSHkey"};

gUsers.addKey( newKeyObj, function(err, res, result){
  if(!err && res.statusCode === 201 ){
    console.log( result);
  }
});

If an error occurs a 400 Bad Request is returned with a message(result) explaining the error:

{
  "message": {
    "fingerprint": [
      "has already been taken"
    ],
    "key": [
      "has already been taken"
    ]
  }
}
- Create new key owned by specified user

Only administrators can do this.

var newKeyObj = {
     "key": "ssh-dss AAAAB3NzaC1kc3MAAACBAMLrhYgI3atfrSD6KDas1b/3n6R/HP+bLaHHX6oh+L1vg31mdUqK0Ac/NjZoQunavoyzqdPYhFz9zzOezCrZKjuJDS3NRK9rspvjgM0xYR4d47oNZbdZbwkI4cTv/gcMlquRy0OvpfIvJtjtaJWMwTLtM5VhRusRuUlpH99UUVeXAAAAFQCVyX+92hBEjInEKL0v13c/egDCTQAAAIEAvFdWGq0ccOPbw4f/F8LpZqvWDydAcpXHV3thwb7WkFfppvm4SZte0zds1FJ+Hr8Xzzc5zMHe6J4Nlay/rP4ewmIW7iFKNBEYb/yWa+ceLrs+TfR672TaAgO6o7iSRofEq5YLdwgrwkMmIawa21FrZ2D9SPao/IwvENzk/xcHu7YAAACAQFXQH6HQnxOrw4dqf0NqeKy1tfIPxYYUZhPJfo9O0AmBW2S36pD2l14kS89fvz6Y1g8gN/FwFnRncMzlLY/hX70FSc/3hKBSbH6C6j8hwlgFKfizav21eS358JJz93leOakJZnGb8XlWvz1UJbwCsnR2VEY8Dz90uIk1l/UqHkA= loic@call",
     "title": "dummySSHkey"};


  gUsers.addKey( uid, newKeyObj, function(err, res, result){  
    if(!err && res.statusCode === 201 ){
      console.log( result);
    }
  });

Delete SSH key for current user

# key_id: integer id of key to delete
gUsers.deleteKey( key_id, function(err, res, result){
  if(!err && res.statusCode === 200 ){
    console.log( "deleted successfully");
  }
});

Delete SSH key for given user

Only administrators can do this.

# uid: user id,  key_id: key id
gUsers.deleteKey( uid, key_id, function(err, res, result){
  if(!err && res.statusCode === 200 ){
    console.log( "deleted successfully");
  }
});