From 653ab0459d6d03e8cbdd1806b4e9219caa0d7ac3 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 18 Sep 2018 12:28:43 -0400 Subject: [PATCH 1/6] =?UTF-8?q?Update=20jest-extended=20to=20the=20latest?= =?UTF-8?q?=20version=20=F0=9F=9A=80=20(#191)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(package): update jest-extended to version 0.9.0 * chore(package): update lockfile package-lock.json --- package-lock.json | 126 ++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 72 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index b100fb8e..1fce71e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -362,6 +362,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -373,6 +374,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -2251,12 +2253,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2271,17 +2275,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2398,7 +2405,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2410,6 +2418,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2424,6 +2433,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2431,12 +2441,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -2455,6 +2467,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2535,7 +2548,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2547,6 +2561,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2668,6 +2683,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3977,14 +3993,14 @@ } }, "jest-extended": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-0.8.1.tgz", - "integrity": "sha512-WhyYy9bNAxotiAlSQz0cXTnqP6aKPZw8iBzBbaDrsE3Yv+u1N7Uq05n+YszSnQUuLCyuF/hAszY2yzAgKdY8kw==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-0.9.0.tgz", + "integrity": "sha512-e3FWQZwdQACRdrjbVZpar+LzEFWGtuq3KFO/dXWAwLyQYkEHSm38Y2NJnYCjrHyp3rZO4aPJGezC+WbSsJHpmw==", "dev": true, "requires": { - "expect": "22.4.3", - "jest-get-type": "22.4.3", - "jest-matcher-utils": "22.4.3" + "expect": "^22.1.0", + "jest-get-type": "^22.4.3", + "jest-matcher-utils": "^22.0.0" }, "dependencies": { "ansi-regex": { @@ -3999,7 +4015,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -4014,9 +4030,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "expand-brackets": { @@ -4025,7 +4041,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expect": { @@ -4034,12 +4050,12 @@ "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "jest-diff": "22.4.3", - "jest-get-type": "22.4.3", - "jest-matcher-utils": "22.4.3", - "jest-message-util": "22.4.3", - "jest-regex-util": "22.4.3" + "ansi-styles": "^3.2.0", + "jest-diff": "^22.4.3", + "jest-get-type": "^22.4.3", + "jest-matcher-utils": "^22.4.3", + "jest-message-util": "^22.4.3", + "jest-regex-util": "^22.4.3" } }, "extglob": { @@ -4048,7 +4064,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -4063,7 +4079,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "jest-diff": { @@ -4072,10 +4088,10 @@ "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==", "dev": true, "requires": { - "chalk": "2.4.1", - "diff": "3.5.0", - "jest-get-type": "22.4.3", - "pretty-format": "22.4.3" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.4.3", + "pretty-format": "^22.4.3" } }, "jest-matcher-utils": { @@ -4084,9 +4100,9 @@ "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", "dev": true, "requires": { - "chalk": "2.4.1", - "jest-get-type": "22.4.3", - "pretty-format": "22.4.3" + "chalk": "^2.0.1", + "jest-get-type": "^22.4.3", + "pretty-format": "^22.4.3" } }, "jest-message-util": { @@ -4095,11 +4111,11 @@ "integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-rc.1", - "chalk": "2.4.1", - "micromatch": "2.3.11", - "slash": "1.0.0", - "stack-utils": "1.0.1" + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" } }, "jest-regex-util": { @@ -4114,7 +4130,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "micromatch": { @@ -4123,19 +4139,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "normalize-path": { @@ -4144,7 +4160,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "pretty-format": { @@ -4153,8 +4169,8 @@ "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.1" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" } } } diff --git a/package.json b/package.json index bac26ec9..5bf72b72 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "husky": "^0.14.3", "cz-conventional-changelog": "^2.1.0", "jest": "^23.5.0", - "jest-extended": "^0.8.1", + "jest-extended": "^0.9.0", "jest-tap-reporter": "^1.9.0", "ts-jest": "^23.1.4", "tslint": "^5.11.0", From 5b07b6ae509129f278b32265a968b1e1d84bf521 Mon Sep 17 00:00:00 2001 From: Max Wittig Date: Tue, 18 Sep 2018 18:29:29 +0200 Subject: [PATCH 2/6] feat: Re-add list all project members endpoint (#190) Related to :https://github.com/jdalrymple/node-gitlab/commit/e081a1629f33e3af172101b94977f281879539c9#diff-379104d7d595f3793c2d7380496cc3c3 See: https://docs.gitlab.com/ee/api/members.html#list-all-members-of-a-group-or-project-including-inherited-members Fixes #141 --- src/templates/ResourceMembers.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/templates/ResourceMembers.ts b/src/templates/ResourceMembers.ts index e9eed5a2..2913b989 100644 --- a/src/templates/ResourceMembers.ts +++ b/src/templates/ResourceMembers.ts @@ -8,10 +8,12 @@ class ResourceMembers extends BaseService { this.url = URLJoin(this.url, resourceType); } - all(resourceId) { + all(resourceId, includeInherited = false, options = {}) { const rId = encodeURIComponent(resourceId); - return RequestHelper.get(this, `${rId}/members`); + const url = includeInherited ? `${rId}/members/all` : `${rId}/members`; + + return RequestHelper.get(this, url, { options }); } add(resourceId, userId, accessLevel, options) { From 2113e8ebb8bf0f1c187ec91d1f78b7a2200408d6 Mon Sep 17 00:00:00 2001 From: jdalrymple Date: Tue, 18 Sep 2018 14:37:39 -0400 Subject: [PATCH 3/6] feat: Adding markdown support #182 (#193) --- src/services/Markdown.ts | 9 +++++++++ src/services/index.ts | 1 + 2 files changed, 10 insertions(+) create mode 100644 src/services/Markdown.ts diff --git a/src/services/Markdown.ts b/src/services/Markdown.ts new file mode 100644 index 00000000..f982d033 --- /dev/null +++ b/src/services/Markdown.ts @@ -0,0 +1,9 @@ +import { BaseService, RequestHelper } from '../infrastructure'; + +class Markdown extends BaseService { + render(text, options) { + return RequestHelper.post(this, 'markdown', { text, ...options }); + } +} + +export default Markdown; diff --git a/src/services/index.ts b/src/services/index.ts index a9765272..bd3edd6c 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -79,6 +79,7 @@ export { default as LicenceTemplates } from './LicenceTemplates'; export { default as Lint } from './Lint'; export { default as Namespaces } from './Namespaces'; export { default as NotificationSettings } from './NotificationSettings'; +export { default as Markdown } from './Markdown'; export { default as PagesDomains } from './PagesDomains'; export { default as Search } from './Search'; export { default as SidekiqMetrics } from './SidekiqMetrics'; From 4b1589ad3b600ef608d87212a22f668830b1c972 Mon Sep 17 00:00:00 2001 From: jdalrymple Date: Tue, 18 Sep 2018 14:38:07 -0400 Subject: [PATCH 4/6] fixes: #188: `stream` option is lost in any `get` request that is streamable (#192) --- src/infrastructure/RequestHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/infrastructure/RequestHelper.ts b/src/infrastructure/RequestHelper.ts index 770f4323..d060ac0a 100644 --- a/src/infrastructure/RequestHelper.ts +++ b/src/infrastructure/RequestHelper.ts @@ -177,7 +177,7 @@ class RequestHelper { } static get(service, endpoint, options = {}, { stream = false } = {}) { - return RequestHelper.request('get', service, endpoint, options, stream); + return RequestHelper.request('get', service, endpoint, options, false, stream); } static post(service, endpoint, options = {}, form = false) { From 11a50ebc29270f8dd16c882feecdc4ab3d7b461d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Guimar=C3=A3es?= Date: Tue, 18 Sep 2018 19:37:29 -0300 Subject: [PATCH 5/6] Added user snippets API support (#189) * Added user snippets API support * Combined functions 'all' and 'allPublic' * Added 'Snippets' as supported API * Fixed lint error (` should be ') * Added test for creating snippets --- README.md | 1 + src/services/Snippets.ts | 50 +++++++++++++++++++++++++++++++++ src/services/index.ts | 1 + test/tests/services/Snippets.ts | 15 ++++++++++ 4 files changed, 67 insertions(+) create mode 100644 src/services/Snippets.ts create mode 100644 test/tests/services/Snippets.ts diff --git a/README.md b/README.md index 97616a33..1d1515f8 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ NotificationSettings PagesDomains Search SidekiqMetrics +Snippets SystemHooks Version Wikis diff --git a/src/services/Snippets.ts b/src/services/Snippets.ts new file mode 100644 index 00000000..d011dc8c --- /dev/null +++ b/src/services/Snippets.ts @@ -0,0 +1,50 @@ +import { BaseService, RequestHelper } from '../infrastructure'; + +class Snippets extends BaseService { + all(options = { public: false }) { + const url = options.public ? 'snippets/public' : 'snippets'; + return RequestHelper.get(this, url, options); + } + + content(snippetId) { + const sId = encodeURIComponent(snippetId); + + return RequestHelper.get(this, `snippets/${sId}/raw`); + } + + create(title, fileName, content, visibility, options = {}) { + return RequestHelper.post(this, 'snippets', { + title, + fileName, + content, + visibility, + ...options, + }); + } + + edit(snippetId, options) { + const sId = encodeURIComponent(snippetId); + + return RequestHelper.put(this, `snippets/${sId}`, options); + } + + remove(snippetId) { + const sId = encodeURIComponent(snippetId); + + return RequestHelper.delete(this, `snippets/${sId}`); + } + + show(snippetId) { + const sId = encodeURIComponent(snippetId); + + return RequestHelper.get(this, `snippets/${sId}`); + } + + userAgentDetails(snippetId) { + const sId = encodeURIComponent(snippetId); + + return RequestHelper.get(this, `snippets/${sId}/user_agent_detail`); + } +} + +export default Snippets; diff --git a/src/services/index.ts b/src/services/index.ts index bd3edd6c..b64f5b75 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -83,6 +83,7 @@ export { default as Markdown } from './Markdown'; export { default as PagesDomains } from './PagesDomains'; export { default as Search } from './Search'; export { default as SidekiqMetrics } from './SidekiqMetrics'; +export { default as Snippets } from './Snippets'; export { default as SystemHooks } from './SystemHooks'; export { default as Version } from './Version'; export { default as Wikis } from './Wikis'; diff --git a/test/tests/services/Snippets.ts b/test/tests/services/Snippets.ts new file mode 100644 index 00000000..2847d461 --- /dev/null +++ b/test/tests/services/Snippets.ts @@ -0,0 +1,15 @@ +import { Snippets } from '../../../src'; + +describe('Snippets', () => { + it('should create snippet', async () => { + const service = new Snippets({ + url: process.env.GITLAB_URL, + token: process.env.PERSONAL_ACCESS_TOKEN, + }); + + const result = await service.create('This is a snippet', 'test.txt', 'Hello world', 'internal', { 'description': 'Hello World snippet' }); + + expect(result).toBeInstanceOf(Object); + expect(result.title).toEqual('This is a snippet'); + }); +}); From 95e8999e3668a628a4fb5568fecead6ea97fe209 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 18 Sep 2018 18:52:00 -0400 Subject: [PATCH 6/6] feat: Added user edit support #186 --- src/services/Users.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/services/Users.ts b/src/services/Users.ts index a76942dd..3198335b 100644 --- a/src/services/Users.ts +++ b/src/services/Users.ts @@ -30,6 +30,12 @@ class Users extends BaseService { return RequestHelper.get(this, 'user'); } + edit(userId, options) { + const uId = encodeURIComponent(userId); + + return RequestHelper.put(this, `users/${uId}`, options); + } + events(userId, options) { validateEventOptions(options.action, options.targetType);