node package manager

gitlab

GitLab API Nodejs library.

node-gitlab

Build Status (Travis) Dependency Status Bitdeli Badge Code Climate

NPM Badge

GitLab API Nodejs library. It wraps the HTTP api library described here.

Maintained by Manfred Touron and Dave Irvine

Install

# Install from npm
npm install gitlab

Usage

URL to your GitLab instance should not include /api/v3 path.

Coffee-Script

# Connection 
gitlab = (require 'gitlab')
  url:   'http://example.com'
  token: 'abcdefghij123456'
 
# Listing users 
gitlab.users.all (users) ->
  console.log "##{user.id}#{user.email}#{user.name}#{user.created_at}" for user in users
 
# Listing projects 
gitlab.projects.all (projects) ->
  for project in projects
    console.log "##{project.id}#{project.name}, path: #{project.path}, default_branch: #{project.default_branch}, private: #{project.private}, owner: #{project.owner.name} (#{project.owner.email}), date: #{project.created_at}"

Javascript

// Connection 
var gitlab = require('gitlab')({
  url:   'http://example.com',
  token: 'abcdefghij123456'
});
 
// Listing users 
gitlab.users.all(function(users) {
  for (var i = 0; i < users.length; i++) {
    console.log("#" + users[i].id + "" + users[i].email + "" + users[i].name + "" + users[i].created_at);
  }
});
 
// Listing projects 
gitlab.projects.all(function(projects) {
  for (var i = 0; i < projects.length; i++) {
    console.log("#" + projects[i].id + "" + projects[i].name + ", path: " + projects[i].path + ", default_branch: " + projects[i].default_branch + ", private: " + projects[i]["private"] + ", owner: " + projects[i].owner.name + " (" + projects[i].owner.email + "), date: " + projects[i].created_at);
  }
});

See Examples directory for more examples

Develop

Gitter chat

Edit the Coffee-Script files in src, then build them using cake build. Use cake watch to build files continuously while developing.

CLI

Check out cli-gitlab

Contributors

License

MIT

Changelog

1.7.1 (2016-08-04)

Full commits list

1.7.0 (2016-07-11)

  • Add support for adding a tag to a project
  • Add gitlab.projects.repository.compare()
  • Add support for portion builds API
  • Set slumber version to non-breaking

Full commits list

1.6.0 (2016-05-10)

  • Add function to query all projects as admin
  • Add oauth_token option to authenticate connection
  • Add possibility to showFile by sha id
  • Add support for the GitLab services API
  • Fix undefined assigneeId in merge request (#111)

Full commits list

1.5.0 (2015-11-26)

  • Add Project.edit
  • Add Projects.create_for_user
  • Add ssh key to user
  • Add Projects forks

Thanks to @peteward44, @Sewdn, @ryansouthern and @geeeeeeeeek

Full commits list

1.4.1 (2015-08-11)

  • Coffee rebuild

1.4.0 (2015-08-11)

  • Now using headers for PRIVATE-TOKEN
  • Add Groups.create, Groups.addProject and Groups.search methods
  • Add Projects.remove and Projects.search methods
  • Add UserKeys resource
  • Add Users.search method
  • Rename ProjectMielstones.get to ProjectMilestones.all
  • Handling pagination on multiple new .all() methods
  • Various stability and performance fixes

Thanks to @huhgawz, @ConnorWeng, @langma, @spruce, @stevenorman and @nogs

Full commits list

1.3.0 (2015-02-09)

  • Now handling notes
  • Now handling lables
  • Added Groups.addMember() and Groups.access_levels
  • Checking for permissions
  • Added tests
  • Code cleanup and various small improvements

Full commits list

1.2.0 (2014-12-24)

  • Switched to new organization, some urls changed
  • Improve development tools
  • Cleaned code
  • Changed AddHook parameters
  • Happy Christmas

Full commits list

1.1.0 (2014-11-04)

  • Added project branch support
  • Improved compatibility with API
  • Improved global error handling
  • Rebuilt javascript using latest Coffee-Script

Full commits list

1.0.0 (2014-08-19)

  • Not fully stable, need more tests
  • Now we have a CHANGELOG

POC (2012-12-11)

  • POC