From d7cf43f71ba9bdd771d58e356c5eaa067f4bec0a Mon Sep 17 00:00:00 2001 From: Ed Clements Date: Fri, 16 Dec 2016 15:01:02 +0000 Subject: [PATCH 1/2] Adds support for authenticating via OAuth access token --- lib/gitlab.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/gitlab.js b/lib/gitlab.js index 9871775..78cb4dc 100644 --- a/lib/gitlab.js +++ b/lib/gitlab.js @@ -27,12 +27,14 @@ module.exports = Gitlab; * @param {Object} options * - {String} api, api root url, e.g.: 'http://gitlab.com/api/v3' * - {String} privateToken, You can find or reset your private token in your profile. + * - {String} accessToken, Obtained via OAuth */ function Gitlab(options) { options = options || {}; options.api = options.api || 'https://gitlab.com/api/v3'; RESTFulClient.call(this, options); this.privateToken = options.privateToken; + this.accessToken = options.accessToken; this.addResources(resources); @@ -45,7 +47,12 @@ function Gitlab(options) { util.inherits(Gitlab, RESTFulClient); Gitlab.prototype.setAuthentication = function (req) { - req.params.data.private_token = req.params.data.private_token || this.privateToken; + var accessToken = req.params.data.access_token || this.accessToken; + if (accessToken) { + req.params.data.access_token = accessToken; + } else { + req.params.data.private_token = req.params.data.private_token || this.privateToken; + } return req; }; From 0cea05510329423f7c6f05bba373983f3a579f9b Mon Sep 17 00:00:00 2001 From: Ed Clements Date: Fri, 16 Dec 2016 15:35:15 +0000 Subject: [PATCH 2/2] Adds support for namespace APIs --- lib/properties.js | 4 ++++ lib/resources/index.js | 2 ++ lib/resources/namespace.js | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 lib/resources/namespace.js diff --git a/lib/properties.js b/lib/properties.js index 5eea755..9672b94 100644 --- a/lib/properties.js +++ b/lib/properties.js @@ -64,6 +64,10 @@ var properties = { 'transferProject' ], groupMembers: [], + namespaces: [ + 'list', + 'search', + ], }; for (var key in properties) { diff --git a/lib/resources/index.js b/lib/resources/index.js index 7f67a0a..185e9b5 100644 --- a/lib/resources/index.js +++ b/lib/resources/index.js @@ -62,4 +62,6 @@ module.exports = { resourcePath: '/projects/:id/keys', idName: 'key_id', }, + + namespaces: require('./namespace'), }; diff --git a/lib/resources/namespace.js b/lib/resources/namespace.js new file mode 100644 index 0000000..39350ac --- /dev/null +++ b/lib/resources/namespace.js @@ -0,0 +1,33 @@ +/**! + * gitlab - lib/resources/namespace.js + * + * Copyright(c) repo-utils and other contributors. + * MIT Licensed + * + * Authors: + * fengmk2 (http://fengmk2.com) + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var util = require('util'); +var restful = require('restful-client'); + +module.exports = Namespace; + +function Namespace(client) { + this.constructor.super_.call(this, client, '/namespaces', 'id'); +} +util.inherits(Namespace, restful.RESTFulResource); + +Namespace.prototype.list = function (params, callback) { + this.client.request('get', '/namespaces', params, callback); +}; + +Namespace.prototype.search = function (params, callback) { + this.client.request('get', '/namespaces/search/:query', params, callback); +};