").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ }).complete( callback && function( jqXHR, status ) {
+ self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+ });
+ }
+
+ return this;
+};
+
+
+
+
+jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+};
+
+
+
+
+
+var docElem = window.document.documentElement;
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+jQuery.offset = {
+ setOffset: function( elem, options, i ) {
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+ position = jQuery.css( elem, "position" ),
+ curElem = jQuery( elem ),
+ props = {};
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ curOffset = curElem.offset();
+ curCSSTop = jQuery.css( elem, "top" );
+ curCSSLeft = jQuery.css( elem, "left" );
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+ jQuery.inArray("auto", [ curCSSTop, curCSSLeft ] ) > -1;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+jQuery.fn.extend({
+ offset: function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ var docElem, win,
+ box = { top: 0, left: 0 },
+ elem = this[ 0 ],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return;
+ }
+
+ docElem = doc.documentElement;
+
+ // Make sure it's not a disconnected DOM node
+ if ( !jQuery.contains( docElem, elem ) ) {
+ return box;
+ }
+
+ // If we don't have gBCR, just use 0,0 rather than error
+ // BlackBerry 5, iOS 3 (original iPhone)
+ if ( typeof elem.getBoundingClientRect !== strundefined ) {
+ box = elem.getBoundingClientRect();
+ }
+ win = getWindow( doc );
+ return {
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+ };
+ },
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ parentOffset = { top: 0, left: 0 },
+ elem = this[ 0 ];
+
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+ // we assume that getBoundingClientRect is available when computed position is fixed
+ offset = elem.getBoundingClientRect();
+ } else {
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+ }
+
+ // Subtract parent offsets and element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || docElem;
+
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent || docElem;
+ });
+ }
+});
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? (prop in win) ? win[ prop ] :
+ win.document.documentElement[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+});
+
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// getComputedStyle returns percent when specified for top/left/bottom/right
+// rather than make the css module depend on the offset module, we just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+ function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+ // if curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ );
+});
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
+ // margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
+ // https://github.com/jquery/jquery/pull/764
+ return elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
+ // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable, null );
+ };
+ });
+});
+
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+ return this.length;
+};
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+ define( "jquery", [], function() {
+ return jQuery;
+ });
+}
+
+
+
+
+var
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in
+// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( typeof noGlobal === strundefined ) {
+ window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+
+}));
diff --git a/generator/result_21-11-18-fixedapis.json b/generator/result_21-11-18-fixedapis.json
new file mode 100644
index 0000000..149438a
--- /dev/null
+++ b/generator/result_21-11-18-fixedapis.json
@@ -0,0 +1,20852 @@
+[
+ {
+ "url": "https://docs.gitlab.com/ee/api/group_level_variables.html",
+ "urlPart": "group_level_variables.html",
+ "allEntries": [
+ {
+ "title": "group-level-variables--api",
+ "description": "Get list of a group’s variables.",
+ "api": [
+ "GET /groups/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-group-variables",
+ "description": "Get list of a group’s variables.",
+ "api": [
+ "GET /groups/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "show-variable-details",
+ "description": "Get the details of a group’s specific variable.",
+ "api": [
+ "GET /groups/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ }
+ ]
+ },
+ {
+ "title": "create-variable",
+ "description": "Create a new variable.",
+ "api": [
+ "POST /groups/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ },
+ {
+ "attribute": "protected",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the variable is protected"
+ }
+ ]
+ },
+ {
+ "title": "update-variable",
+ "description": "Update a group’s variable.",
+ "api": [
+ "PUT /groups/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ },
+ {
+ "attribute": "protected",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the variable is protected"
+ }
+ ]
+ },
+ {
+ "title": "remove-variable",
+ "description": "Remove a group’s variable.",
+ "api": [
+ "DELETE /groups/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a group or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/custom_attributes.html",
+ "urlPart": "custom_attributes.html",
+ "allEntries": [
+ {
+ "title": "custom-attributes-api-groups",
+ "description": "Every API call to custom attributes must be authenticated as administrator.",
+ "api": [
+ "GET /groups/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "custom-attributes-api-projects",
+ "description": "Every API call to custom attributes must be authenticated as administrator.",
+ "api": [
+ "GET /projects/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "custom-attributes-api-users",
+ "description": "Every API call to custom attributes must be authenticated as administrator.",
+ "api": [
+ "GET /users/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "list-custom-attributes-groups",
+ "description": "Get all custom attributes on a resource.",
+ "api": [
+ "GET /groups/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "list-custom-attributes-projects",
+ "description": "Get all custom attributes on a resource.",
+ "api": [
+ "GET /projects/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "list-custom-attributes-users",
+ "description": "Get all custom attributes on a resource.",
+ "api": [
+ "GET /users/:id/custom_attributes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ }
+ ]
+ },
+ {
+ "title": "single-custom-attribute-groups",
+ "description": "Get a single custom attribute on a resource.",
+ "api": [
+ "GET /groups/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "single-custom-attribute-projects",
+ "description": "Get a single custom attribute on a resource.",
+ "api": [
+ "GET /projects/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "single-custom-attribute-users",
+ "description": "Get a single custom attribute on a resource.",
+ "api": [
+ "GET /users/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "set-custom-attribute-groups",
+ "description": "Set a custom attribute on a resource. The attribute will be updated if it already exists,\nor newly created otherwise.",
+ "api": [
+ "PUT /groups/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "set-custom-attribute-projects",
+ "description": "Set a custom attribute on a resource. The attribute will be updated if it already exists,\nor newly created otherwise.",
+ "api": [
+ "PUT /projects/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "set-custom-attribute-users",
+ "description": "Set a custom attribute on a resource. The attribute will be updated if it already exists,\nor newly created otherwise.",
+ "api": [
+ "PUT /users/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "delete-custom-attribute-groups",
+ "description": "Delete a custom attribute on a resource.",
+ "api": [
+ "DELETE /groups/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "delete-custom-attribute-projects",
+ "description": "Delete a custom attribute on a resource.",
+ "api": [
+ "DELETE /projects/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ },
+ {
+ "title": "delete-custom-attribute-users",
+ "description": "Delete a custom attribute on a resource.",
+ "api": [
+ "DELETE /users/:id/custom_attributes/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a resource"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the custom attribute"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/epic_issues.html",
+ "urlPart": "epic_issues.html",
+ "allEntries": [
+ {
+ "title": "epic-issues-api-ultimate",
+ "description": "Every API call to epic_issues must be authenticated.",
+ "api": [
+ "GET /groups/:id/epics/:epic_iid/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ }
+ ]
+ },
+ {
+ "title": "list-issues-for-an-epic",
+ "description": "Gets all issues that are assigned to an epic and the authenticated user has access to.",
+ "api": [
+ "GET /groups/:id/epics/:epic_iid/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ }
+ ]
+ },
+ {
+ "title": "assign-an-issue-to-the-epic",
+ "description": "Creates an epic - issue association. If the issue in question belongs to another epic it is unassigned from that epic.",
+ "api": [
+ "POST /groups/:id/epics/:epic_iid/issues/:issue_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ },
+ {
+ "attribute": "issue_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the issue."
+ }
+ ]
+ },
+ {
+ "title": "remove-an-issue-from-the-epic",
+ "description": "Removes an epic - issue association.",
+ "api": [
+ "DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ },
+ {
+ "attribute": "epic_issue_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the issue - epic association."
+ }
+ ]
+ },
+ {
+ "title": "update-epic---issue-association",
+ "description": "Updates an epic - issue association.",
+ "api": [
+ "PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ },
+ {
+ "attribute": "epic_issue_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the issue - epic association."
+ },
+ {
+ "attribute": "move_before_id",
+ "type": "integer/string",
+ "required": "no",
+ "description": "The ID of the issue - epic association that should be placed before the link in the question."
+ },
+ {
+ "attribute": "move_after_id",
+ "type": "integer/string",
+ "required": "no",
+ "description": "The ID of the issue - epic association that should be placed after the link in the question."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/project_level_variables.html",
+ "urlPart": "project_level_variables.html",
+ "allEntries": [
+ {
+ "title": "project-level-variables--api",
+ "description": "Get list of a project’s variables.",
+ "api": [
+ "GET /projects/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-project-variables",
+ "description": "Get list of a project’s variables.",
+ "api": [
+ "GET /projects/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "show-variable-details",
+ "description": "Get the details of a project’s specific variable.",
+ "api": [
+ "GET /projects/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ }
+ ]
+ },
+ {
+ "title": "create-variable",
+ "description": "Create a new variable.",
+ "api": [
+ "POST /projects/:id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ },
+ {
+ "attribute": "protected",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the variable is protected"
+ },
+ {
+ "attribute": "environment_scope",
+ "type": "string",
+ "required": "no",
+ "description": "The environment_scope of the variable"
+ }
+ ]
+ },
+ {
+ "title": "update-variable",
+ "description": "Update a project’s variable.",
+ "api": [
+ "PUT /projects/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ },
+ {
+ "attribute": "protected",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the variable is protected"
+ },
+ {
+ "attribute": "environment_scope",
+ "type": "string",
+ "required": "no",
+ "description": "The environment_scope of the variable"
+ }
+ ]
+ },
+ {
+ "title": "remove-variable",
+ "description": "Remove a project’s variable.",
+ "api": [
+ "DELETE /projects/:id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/commits.html",
+ "urlPart": "commits.html",
+ "allEntries": [
+ {
+ "title": "commits-api",
+ "description": "Get a list of repository commits in a project.",
+ "api": [
+ "GET /projects/:id/repository/commits"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "ref_name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of a repository branch or tag or if not given the default branch"
+ },
+ {
+ "attribute": "since",
+ "type": "string",
+ "required": "no",
+ "description": "Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ"
+ },
+ {
+ "attribute": "until",
+ "type": "string",
+ "required": "no",
+ "description": "Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "no",
+ "description": "The file path"
+ },
+ {
+ "attribute": "all",
+ "type": "boolean",
+ "required": "no",
+ "description": "Retrieve every commit from the repository"
+ },
+ {
+ "attribute": "with_stats",
+ "type": "boolean",
+ "required": "no",
+ "description": "Stats about each commit will be added to the response"
+ }
+ ]
+ },
+ {
+ "title": "list-repository-commits",
+ "description": "Get a list of repository commits in a project.",
+ "api": [
+ "GET /projects/:id/repository/commits"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "ref_name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of a repository branch or tag or if not given the default branch"
+ },
+ {
+ "attribute": "since",
+ "type": "string",
+ "required": "no",
+ "description": "Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ"
+ },
+ {
+ "attribute": "until",
+ "type": "string",
+ "required": "no",
+ "description": "Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "no",
+ "description": "The file path"
+ },
+ {
+ "attribute": "all",
+ "type": "boolean",
+ "required": "no",
+ "description": "Retrieve every commit from the repository"
+ },
+ {
+ "attribute": "with_stats",
+ "type": "boolean",
+ "required": "no",
+ "description": "Stats about each commit will be added to the response"
+ }
+ ]
+ },
+ {
+ "title": "create-a-commit-with-multiple-files-and-actions",
+ "description": "Create a commit by posting a JSON payload",
+ "api": [
+ "POST /projects/:id/repository/commits"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "Name of the branch to commit into. To create a new branch, also provide start_branch."
+ },
+ {
+ "attribute": "commit_message",
+ "type": "string",
+ "required": "yes",
+ "description": "Commit message"
+ },
+ {
+ "attribute": "start_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Name of the branch to start the new commit from"
+ },
+ {
+ "attribute": "actions[]",
+ "type": "array",
+ "required": "yes",
+ "description": "An array of action hashes to commit as a batch. See the next table for what attributes it can take."
+ },
+ {
+ "attribute": "author_email",
+ "type": "string",
+ "required": "no",
+ "description": "Specify the commit author’s email address"
+ },
+ {
+ "attribute": "author_name",
+ "type": "string",
+ "required": "no",
+ "description": "Specify the commit author’s name"
+ },
+ {
+ "attribute": "stats",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include commit stats. Default is true"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-commit",
+ "description": "Get a specific commit identified by the commit hash or name of a branch or tag.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit hash or name of a repository branch or tag"
+ },
+ {
+ "attribute": "stats",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include commit stats. Default is true"
+ }
+ ]
+ },
+ {
+ "title": "get-references-a-commit-is-pushed-to",
+ "description": "Get all references (from branches or tags) a commit is pushed to.\nThe pagination parameters page and per_page can be used to restrict the list of references.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/refs"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit hash"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The scope of commits. Possible values branch, tag, all. Default is all."
+ }
+ ]
+ },
+ {
+ "title": "cherry-pick-a-commit",
+ "description": "Cherry picks a commit to a given branch.",
+ "api": [
+ "POST /projects/:id/repository/commits/:sha/cherry_pick"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit hash"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ }
+ ]
+ },
+ {
+ "title": "revert-a-commit",
+ "description": "Reverts a commit in a given branch.",
+ "api": [
+ "POST /projects/:id/repository/commits/:sha/revert"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "Commit SHA to revert"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "Target branch name"
+ }
+ ]
+ },
+ {
+ "title": "get-the-diff-of-a-commit",
+ "description": "Get the diff of a commit in a project.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/diff"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit hash or name of a repository branch or tag"
+ }
+ ]
+ },
+ {
+ "title": "get-the-comments-of-a-commit",
+ "description": "Get the comments of a commit in a project.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/comments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit hash or name of a repository branch or tag"
+ }
+ ]
+ },
+ {
+ "title": "post-comment-to-commit",
+ "description": "Adds a comment to a commit.",
+ "api": [
+ "POST /projects/:id/repository/commits/:sha/comments"
+ ],
+ "params": [
+ {
+ "attribute": "shalinepath",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "commit-status",
+ "description": "Since GitLab 8.1, this is the new commit status API.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/statuses"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit SHA"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The name of a repository branch or tag or, if not given, the default branch"
+ },
+ {
+ "attribute": "stage",
+ "type": "string",
+ "required": "no",
+ "description": "Filter by build stage, e.g., test\n"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "Filter by job name, e.g., bundler:audit\n"
+ },
+ {
+ "attribute": "all",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return all statuses, not only the latest ones"
+ }
+ ]
+ },
+ {
+ "title": "list-the-statuses-of-a-commit",
+ "description": "List the statuses of a commit in a project.\nThe pagination parameters page and per_page can be used to restrict the list of references.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/statuses"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit SHA"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The name of a repository branch or tag or, if not given, the default branch"
+ },
+ {
+ "attribute": "stage",
+ "type": "string",
+ "required": "no",
+ "description": "Filter by build stage, e.g., test\n"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "Filter by job name, e.g., bundler:audit\n"
+ },
+ {
+ "attribute": "all",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return all statuses, not only the latest ones"
+ }
+ ]
+ },
+ {
+ "title": "post-the-build-status-to-a-commit",
+ "description": "Adds or updates a build status of a commit.",
+ "api": [
+ "POST /projects/:id/statuses/:sha"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit SHA"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "yes",
+ "description": "The state of the status. Can be one of the following: pending, running, success, failed, canceled\n"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The ref (branch or tag) to which the status refers"
+ },
+ {
+ "attribute": "\nname or context\n",
+ "type": "string",
+ "required": "no",
+ "description": "The label to differentiate this status from the status of other systems. Default value is default\n"
+ },
+ {
+ "attribute": "target_url",
+ "type": "string",
+ "required": "no",
+ "description": "The target URL to associate with this status"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The short description of the status"
+ },
+ {
+ "attribute": "coverage",
+ "type": "float",
+ "required": "no",
+ "description": "The total code coverage"
+ }
+ ]
+ },
+ {
+ "title": "list-merge-requests-associated-with-a-commit",
+ "description": "Get a list of Merge Requests related to the specified commit.",
+ "api": [
+ "GET /projects/:id/repository/commits/:sha/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "yes",
+ "description": "The commit SHA"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/epics.html",
+ "urlPart": "epics.html",
+ "allEntries": [
+ {
+ "title": "epics-api-ultimate",
+ "description": "Every API call to epic must be authenticated.",
+ "api": [
+ "GET /groups/:id/epics"
+ ],
+ "params": []
+ },
+ {
+ "title": "epic-issues-api",
+ "description": "The epic issues API allows you to interact with issues associated with an epic.",
+ "api": [
+ "GET /groups/:id/epics"
+ ],
+ "params": []
+ },
+ {
+ "title": "milestone-dates-integration",
+ "description": "Since start date and due date can be dynamically sourced from related issue milestones, when user has edit permission, additional fields will be shown. These include two boolean fields start_date_is_fixed and due_date_is_fixed, and four date fields start_date_fixed, start_date_from_milestones, due_date_fixed and due_date_from_milestones.",
+ "api": [
+ "GET /groups/:id/epics"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return epics created by the given user id\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search epics against their title and description\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Search epics against their state, possible filters: opened, closed and all, default: all\n"
+ }
+ ]
+ },
+ {
+ "title": "list-epics-for-a-group",
+ "description": "Gets all epics of the requested group and its subgroups.",
+ "api": [
+ "GET /groups/:id/epics"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return epics created by the given user id\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return epics sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search epics against their title and description\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Search epics against their state, possible filters: opened, closed and all, default: all\n"
+ }
+ ]
+ },
+ {
+ "title": "single-epic",
+ "description": "Gets a single epic",
+ "api": [
+ "GET /groups/:id/epics/:epic_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ }
+ ]
+ },
+ {
+ "title": "new-epic",
+ "description": "Creates a new epic.",
+ "api": [
+ "POST /groups/:id/epics"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes",
+ "description": "The title of the epic"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "The comma separated list of labels"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of the epic"
+ },
+ {
+ "attribute": "start_date_is_fixed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether start date should be sourced from start_date_fixed or from milestones (since 11.3)"
+ },
+ {
+ "attribute": "start_date_fixed",
+ "type": "string",
+ "required": "no",
+ "description": "The fixed start date of an epic (since 11.3)"
+ },
+ {
+ "attribute": "due_date_is_fixed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether due date should be sourced from due_date_fixed or from milestones (since 11.3)"
+ },
+ {
+ "attribute": "due_date_fixed",
+ "type": "string",
+ "required": "no",
+ "description": "The fixed due date of an epic (since 11.3)"
+ }
+ ]
+ },
+ {
+ "title": "update-epic",
+ "description": "Updates an epic.",
+ "api": [
+ "PUT /groups/:id/epics/:epic_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "no",
+ "description": "The title of an epic"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of an epic"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "The comma separated list of labels"
+ },
+ {
+ "attribute": "start_date_is_fixed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether start date should be sourced from start_date_fixed or from milestones (since 11.3)"
+ },
+ {
+ "attribute": "start_date_fixed",
+ "type": "string",
+ "required": "no",
+ "description": "The fixed start date of an epic (since 11.3)"
+ },
+ {
+ "attribute": "due_date_is_fixed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether due date should be sourced from due_date_fixed or from milestones (since 11.3)"
+ },
+ {
+ "attribute": "due_date_fixed",
+ "type": "string",
+ "required": "no",
+ "description": "The fixed due date of an epic (since 11.3)"
+ },
+ {
+ "attribute": "state_event",
+ "type": "string",
+ "required": "no",
+ "description": "State event for an epic. Set close to close the epic and reopen to reopen it (since 11.4)"
+ }
+ ]
+ },
+ {
+ "title": "delete-epic",
+ "description": "Deletes an epic",
+ "api": [
+ "DELETE /groups/:id/epics/:epic_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of the epic."
+ }
+ ]
+ },
+ {
+ "title": "create-a-todo",
+ "description": "Manually creates a todo for the current user on an epic. If\nthere already exists a todo for the user on that epic, status code 304 is\nreturned.",
+ "api": [
+ "POST /groups/:id/epics/:epic_iid/todo"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "epic_iid ",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a group’s epic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/award_emoji.html",
+ "urlPart": "award_emoji.html",
+ "allEntries": [
+ {
+ "title": "award-emoji-api-mergerequests",
+ "description": "An awarded emoji tells a thousand words, and can be awarded on issues, merge\nrequests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called\nawardables.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/award_emoji"
+ ],
+ "params": []
+ },
+ {
+ "title": "award-emoji-api-snippets",
+ "description": "An awarded emoji tells a thousand words, and can be awarded on issues, merge\nrequests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called\nawardables.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/award_emoji"
+ ],
+ "params": []
+ },
+ {
+ "title": "award-emoji-api-issues",
+ "description": "An awarded emoji tells a thousand words, and can be awarded on issues, merge\nrequests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called\nawardables.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/award_emoji"
+ ],
+ "params": []
+ },
+ {
+ "title": "issues-merge-requests-and-snippets-mergerequests",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "issues-merge-requests-and-snippets-snippets",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "issues-merge-requests-and-snippets-issues",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "list-an-awardables-award-emoji-mergerequests",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "list-an-awardables-award-emoji-snippets",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "list-an-awardables-award-emoji-issues",
+ "description": "Gets a list of all award emoji",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ }
+ ]
+ },
+ {
+ "title": "get-single-award-emoji-mergerequests",
+ "description": "Gets a single award emoji from an issue, snippet, or merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the award emoji"
+ }
+ ]
+ },
+ {
+ "title": "get-single-award-emoji-snippets",
+ "description": "Gets a single award emoji from an issue, snippet, or merge request.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the award emoji"
+ }
+ ]
+ },
+ {
+ "title": "get-single-award-emoji-issues",
+ "description": "Gets a single award emoji from an issue, snippet, or merge request.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the award emoji"
+ }
+ ]
+ },
+ {
+ "title": "award-a-new-emoji-mergerequests",
+ "description": "This end point creates an award emoji on the specified resource",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the emoji, without colons"
+ }
+ ]
+ },
+ {
+ "title": "award-a-new-emoji-snippets",
+ "description": "This end point creates an award emoji on the specified resource",
+ "api": [
+ "POST /projects/:id/snippets/:snippet_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the emoji, without colons"
+ }
+ ]
+ },
+ {
+ "title": "award-a-new-emoji-issues",
+ "description": "This end point creates an award emoji on the specified resource",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "awardable_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID (iid for merge requests/issues, id for snippets) of an awardable"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the emoji, without colons"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-award-emoji-mergerequests",
+ "description": "Sometimes its just not meant to be, and you’ll have to remove your award. Only available to\nadmins or the author of the award.",
+ "api": [
+ "DELETE /projects/:id/merge_requests/:merge_request_iid/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an award_emoji"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-award-emoji-snippets",
+ "description": "Sometimes its just not meant to be, and you’ll have to remove your award. Only available to\nadmins or the author of the award.",
+ "api": [
+ "DELETE /projects/:id/snippets/:snippet_id/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an award_emoji"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-award-emoji-issues",
+ "description": "Sometimes its just not meant to be, and you’ll have to remove your award. Only available to\nadmins or the author of the award.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an award_emoji"
+ }
+ ]
+ },
+ {
+ "title": "award-emoji-on-notes",
+ "description": "The endpoints documented above are available for Notes as well. Notes\nare a sub-resource of Issues, Merge Requests, or Snippets. The examples below\ndescribe working with Award Emoji on notes for an Issue, but can be\neasily adapted for notes on a Merge Request.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "list-a-notes-award-emoji",
+ "description": "The endpoints documented above are available for Notes as well. Notes are a sub-resource of Issues, Merge Requests, or Snippets. The examples below describe working with Award Emoji on notes for an Issue, but can be easily adapted for notes on a Merge Request.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "get-single-notes-award-emoji",
+ "description": "Get single note’s award emoji:",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the award emoji"
+ }
+ ]
+ },
+ {
+ "title": "award-a-new-emoji-on-a-note",
+ "description": "Award a new emoji on a note",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the emoji, without colons"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-award-emoji-from-note",
+ "description": "Sometimes its just not meant to be, and you’ll have to remove your award. Only available to\nadmins or the author of the award.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ },
+ {
+ "attribute": "award_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an award_emoji"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/broadcast_messages.html",
+ "urlPart": "broadcast_messages.html",
+ "allEntries": [
+ {
+ "title": "broadcast-messages-api",
+ "description": "The broadcast message API is only accessible to administrators. All requests by\nguests will respond with 401 Unauthorized, and all requests by normal users\nwill respond with 403 Forbidden.",
+ "api": [
+ "GET /broadcast_messages"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-all-broadcast-messages",
+ "description": "Example response:",
+ "api": [
+ "GET /broadcast_messages"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "Broadcast message ID"
+ }
+ ]
+ },
+ {
+ "title": "get-a-specific-broadcast-message",
+ "description": "Example response:",
+ "api": [
+ "GET /broadcast_messages/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "Broadcast message ID"
+ }
+ ]
+ },
+ {
+ "title": "create-a-broadcast-message",
+ "description": "Example response:",
+ "api": [
+ "POST /broadcast_messages"
+ ],
+ "params": [
+ {
+ "attribute": "message",
+ "type": "string",
+ "required": "yes",
+ "description": "Message to display"
+ },
+ {
+ "attribute": "starts_at",
+ "type": "datetime",
+ "required": "no",
+ "description": "Starting time (defaults to current time)"
+ },
+ {
+ "attribute": "ends_at",
+ "type": "datetime",
+ "required": "no",
+ "description": "Ending time (defaults to one hour from current time)"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "no",
+ "description": "Background color hex code"
+ },
+ {
+ "attribute": "font",
+ "type": "string",
+ "required": "no",
+ "description": "Foreground color hex code"
+ }
+ ]
+ },
+ {
+ "title": "update-a-broadcast-message",
+ "description": "Example response:",
+ "api": [
+ "PUT /broadcast_messages/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "Broadcast message ID"
+ },
+ {
+ "attribute": "message",
+ "type": "string",
+ "required": "no",
+ "description": "Message to display"
+ },
+ {
+ "attribute": "starts_at",
+ "type": "datetime",
+ "required": "no",
+ "description": "Starting time"
+ },
+ {
+ "attribute": "ends_at",
+ "type": "datetime",
+ "required": "no",
+ "description": "Ending time"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "no",
+ "description": "Background color hex code"
+ },
+ {
+ "attribute": "font",
+ "type": "string",
+ "required": "no",
+ "description": "Foreground color hex code"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-broadcast-message",
+ "description": "",
+ "api": [
+ "DELETE /broadcast_messages/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "Broadcast message ID"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/deploy_keys.html",
+ "urlPart": "deploy_keys.html",
+ "allEntries": [
+ {
+ "title": "deploy-keys-api",
+ "description": "Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access.",
+ "api": [
+ "GET /deploy_keys"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-all-deploy-keys",
+ "description": "Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access.",
+ "api": [
+ "GET /deploy_keys"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-project-deploy-keys",
+ "description": "Get a list of a project’s deploy keys.",
+ "api": [
+ "GET /projects/:id/deploy_keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "single-deploy-key",
+ "description": "Get a single key.",
+ "api": [
+ "GET /projects/:id/deploy_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the deploy key"
+ }
+ ]
+ },
+ {
+ "title": "add-deploy-key",
+ "description": "Creates a new deploy key for a project.",
+ "api": [
+ "POST /projects/:id/deploy_keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes",
+ "description": "New deploy key’s title"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "New deploy key"
+ },
+ {
+ "attribute": "can_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Can deploy key push to the project’s repository"
+ }
+ ]
+ },
+ {
+ "title": "update-deploy-key",
+ "description": "Updates a deploy key for a project.",
+ "api": [
+ "PUT /projects/:id/deploy_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "no",
+ "description": "New deploy key’s title"
+ },
+ {
+ "attribute": "can_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Can deploy key push to the project’s repository"
+ }
+ ]
+ },
+ {
+ "title": "delete-deploy-key",
+ "description": "Removes a deploy key from the project. If the deploy key is used only for this project, it will be deleted from the system.",
+ "api": [
+ "DELETE /projects/:id/deploy_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the deploy key"
+ }
+ ]
+ },
+ {
+ "title": "enable-a-deploy-key",
+ "description": "Enables a deploy key for a project so this can be used. Returns the enabled key, with a status code 201 when successful.",
+ "api": [
+ "POST /projects/:id/deploy_keys/:key_id/enable"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the deploy key"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/deployments.html",
+ "urlPart": "deployments.html",
+ "allEntries": [
+ {
+ "title": "deployments-api",
+ "description": "Get a list of deployments in a project.",
+ "api": [
+ "GET /projects/:id/deployments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return deployments ordered by id or iid or created_at or ref fields. Default is id\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return deployments sorted in asc or desc order. Default is asc\n"
+ }
+ ]
+ },
+ {
+ "title": "list-project-deployments",
+ "description": "Get a list of deployments in a project.",
+ "api": [
+ "GET /projects/:id/deployments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return deployments ordered by id or iid or created_at or ref fields. Default is id\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return deployments sorted in asc or desc order. Default is asc\n"
+ }
+ ]
+ },
+ {
+ "title": "get-a-specific-deployment",
+ "description": "Example of response",
+ "api": [
+ "GET /projects/:id/deployments/:deployment_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "deployment_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the deployment"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/branches.html",
+ "urlPart": "branches.html",
+ "allEntries": [
+ {
+ "title": "branches-api",
+ "description": "Get a list of repository branches from a project, sorted by name alphabetically.\nThis endpoint can be accessed without authentication if the repository is\npublicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of branches matching the search criteria."
+ }
+ ]
+ },
+ {
+ "title": "list-repository-branches",
+ "description": "Get a list of repository branches from a project, sorted by name alphabetically.\nThis endpoint can be accessed without authentication if the repository is\npublicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of branches matching the search criteria."
+ }
+ ]
+ },
+ {
+ "title": "get-single-repository-branch",
+ "description": "Get a single project repository branch. This endpoint can be accessed without\nauthentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/branches/:branch"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ }
+ ]
+ },
+ {
+ "title": "protect-repository-branch",
+ "description": "Protects a single project repository branch. This is an idempotent function,\nprotecting an already protected repository branch still returns a 200 OK\nstatus code.",
+ "api": [
+ "PUT /projects/:id/repository/branches/:branch/protect"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ },
+ {
+ "attribute": "developers_can_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag if developers can push to the branch"
+ },
+ {
+ "attribute": "developers_can_merge",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag if developers can merge to the branch"
+ }
+ ]
+ },
+ {
+ "title": "unprotect-repository-branch",
+ "description": "Unprotects a single project repository branch. This is an idempotent function,\nunprotecting an already unprotected repository branch still returns a 200 OK\nstatus code.",
+ "api": [
+ "PUT /projects/:id/repository/branches/:branch/unprotect"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ }
+ ]
+ },
+ {
+ "title": "create-repository-branch",
+ "description": "Example response:",
+ "api": [
+ "POST /projects/:id/repository/branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "yes",
+ "description": "The branch name or commit SHA to create branch from"
+ }
+ ]
+ },
+ {
+ "title": "delete-repository-branch",
+ "description": "In case of an error, an explaining message is provided.",
+ "api": [
+ "DELETE /projects/:id/repository/branches/:branch"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ }
+ ]
+ },
+ {
+ "title": "delete-merged-branches",
+ "description": "Will delete all branches that are merged into the project’s default branch.",
+ "api": [
+ "DELETE /projects/:id/repository/merged_branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/jobs.html",
+ "urlPart": "jobs.html",
+ "allEntries": [
+ {
+ "title": "jobs-api",
+ "description": "Get a list of jobs in a project.",
+ "api": [
+ "GET /projects/:id/jobs"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string or array of strings",
+ "required": "no",
+ "description": "The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided"
+ }
+ ]
+ },
+ {
+ "title": "list-project-jobs",
+ "description": "Get a list of jobs in a project.",
+ "api": [
+ "GET /projects/:id/jobs"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string or array of strings",
+ "required": "no",
+ "description": "The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided"
+ }
+ ]
+ },
+ {
+ "title": "list-pipeline-jobs",
+ "description": "Get a list of jobs for a pipeline.",
+ "api": [
+ "GET /projects/:id/pipelines/:pipeline_id/jobs"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a pipeline"
+ },
+ {
+ "attribute": "scope",
+ "type": "string or array of strings",
+ "required": "no",
+ "description": "The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-job",
+ "description": "Get a single job of a project",
+ "api": [
+ "GET /projects/:id/jobs/:job_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "get-job-artifacts",
+ "description": "Get job artifacts of a project.",
+ "api": [
+ "GET /projects/:id/jobs/:job_id/artifacts"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ },
+ {
+ "attribute": "job_token",
+ "type": "string",
+ "required": "no",
+ "description": "To be used with triggers for multi-project pipelines. Is should be invoked only inside .gitlab-ci.yml. Its value is always $CI_JOB_TOKEN."
+ }
+ ]
+ },
+ {
+ "title": "download-the-artifacts-archive",
+ "description": "Download the artifacts archive from the given reference name and job provided the\njob finished successfully.",
+ "api": [
+ "GET /projects/:id/jobs/artifacts/:ref_name/download"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "ref_name",
+ "type": "string",
+ "required": "yes",
+ "description": "The ref from a repository (can only be branch or tag name, not HEAD or SHA)"
+ },
+ {
+ "attribute": "job",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the job"
+ },
+ {
+ "attribute": "job_token",
+ "type": "string",
+ "required": "no",
+ "description": "To be used with triggers for multi-project pipelines. Is should be invoked only inside .gitlab-ci.yml. Its value is always $CI_JOB_TOKEN."
+ }
+ ]
+ },
+ {
+ "title": "download-a-single-artifact-file",
+ "description": "Download a single artifact file from within the job’s artifacts archive.",
+ "api": [
+ "GET /projects/:id/jobs/:job_id/artifacts/*artifact_path"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id ",
+ "type": "integer",
+ "required": "yes",
+ "description": "The unique job identifier"
+ },
+ {
+ "attribute": "artifact_path",
+ "type": "string",
+ "required": "yes",
+ "description": "Path to a file inside the artifacts archive"
+ }
+ ]
+ },
+ {
+ "title": "get-a-trace-file",
+ "description": "Get a trace of a specific job of a project",
+ "api": [
+ "GET /projects/:id/jobs/:job_id/trace"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "cancel-a-job",
+ "description": "Cancel a single job of a project",
+ "api": [
+ "POST /projects/:id/jobs/:job_id/cancel"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "retry-a-job",
+ "description": "Retry a single job of a project",
+ "api": [
+ "POST /projects/:id/jobs/:job_id/retry"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "erase-a-job",
+ "description": "Erase a single job of a project (remove job artifacts and a job trace)",
+ "api": [
+ "POST /projects/:id/jobs/:job_id/erase"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "keep-artifacts",
+ "description": "Prevents artifacts from being deleted when expiration is set.",
+ "api": [
+ "POST /projects/:id/jobs/:job_id/artifacts/keep"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ },
+ {
+ "title": "play-a-job",
+ "description": "Triggers a manual action to start a job.",
+ "api": [
+ "POST /projects/:id/jobs/:job_id/play"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "job_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a job"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/merge_request_approvals.html",
+ "urlPart": "merge_request_approvals.html",
+ "allEntries": [
+ {
+ "title": "merge-request-approvals-api-starter",
+ "description": "Configuration for approvals on all Merge Requests (MR) in the project. Must be authenticated for all endpoints.",
+ "api": [
+ "GET /projects/:id/approvals"
+ ],
+ "params": []
+ },
+ {
+ "title": "project-level-mr-approvals",
+ "description": "You can request information about a project’s approval configuration using the\nfollowing endpoint:",
+ "api": [
+ "GET /projects/:id/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ }
+ ]
+ },
+ {
+ "title": "get-configuration",
+ "description": "You can request information about a project’s approval configuration using the\nfollowing endpoint:",
+ "api": [
+ "GET /projects/:id/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ }
+ ]
+ },
+ {
+ "title": "change-configuration",
+ "description": "If you are allowed to, you can change approval configuration using the following\nendpoint:",
+ "api": [
+ "POST /projects/:id/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "approvals_before_merge",
+ "type": "integer",
+ "required": "no",
+ "description": "How many approvals are required before an MR can be merged"
+ },
+ {
+ "attribute": "reset_approvals_on_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Reset approvals on a new push"
+ },
+ {
+ "attribute": "disable_overriding_approvers_per_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow/Disallow overriding approvers per MR"
+ }
+ ]
+ },
+ {
+ "title": "change-allowed-approvers",
+ "description": "If you are allowed to, you can change approvers and approver groups using\nthe following endpoint:",
+ "api": [
+ "PUT /projects/:id/approvers"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "approver_ids",
+ "type": "Array",
+ "required": "yes",
+ "description": "An array of User IDs that can approve MRs"
+ },
+ {
+ "attribute": "approver_group_ids",
+ "type": "Array",
+ "required": "yes",
+ "description": "An array of Group IDs whose members can approve MRs"
+ }
+ ]
+ },
+ {
+ "title": "merge-request-level-mr-approvals",
+ "description": "Configuration for approvals on a specific Merge Request. Must be authenticated for all endpoints.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ }
+ ]
+ },
+ {
+ "title": "get-approval-configuration",
+ "description": "You can request information about a merge request’s approval status using the\nfollowing endpoint:",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ }
+ ]
+ },
+ {
+ "title": "change-approval-configuration",
+ "description": "If you are allowed to, you can change approvals_required using the following\nendpoint:",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/approvals"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ },
+ {
+ "attribute": "approvals_required",
+ "type": "integer",
+ "required": "yes",
+ "description": "Approvals required before MR can be merged"
+ }
+ ]
+ },
+ {
+ "title": "change-allowed-approvers-for-merge-request",
+ "description": "If you are allowed to, you can change approvers and approver groups using\nthe following endpoint:",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/approvers"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ },
+ {
+ "attribute": "approver_ids",
+ "type": "Array",
+ "required": "yes",
+ "description": "An array of User IDs that can approve the MR"
+ },
+ {
+ "attribute": "approver_group_ids",
+ "type": "Array",
+ "required": "yes",
+ "description": "An array of Group IDs whose members can approve the MR"
+ }
+ ]
+ },
+ {
+ "title": "approve-merge-request",
+ "description": "If you are allowed to, you can approve a merge request using the following\nendpoint:",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/approve"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "no",
+ "description": "The HEAD of the MR"
+ }
+ ]
+ },
+ {
+ "title": "unapprove-merge-request",
+ "description": "If you did approve a merge request, you can unapprove it using the following\nendpoint:",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/unapprove"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of MR"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/access_requests.html",
+ "urlPart": "access_requests.html",
+ "allEntries": [
+ {
+ "title": "list-access-requests-for-a-group-or-project-projects",
+ "description": "Gets a list of access requests viewable by the authenticated user.",
+ "api": [
+ "GET /projects/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-access-requests-for-a-group-or-project-groups",
+ "description": "Gets a list of access requests viewable by the authenticated user.",
+ "api": [
+ "GET /groups/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "request-access-to-a-group-or-project-projects",
+ "description": "Requests access for the authenticated user to a group or project.",
+ "api": [
+ "POST /projects/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "request-access-to-a-group-or-project-groups",
+ "description": "Requests access for the authenticated user to a group or project.",
+ "api": [
+ "POST /groups/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "approve-an-access-request-projects",
+ "description": "Approves an access request for the given user.",
+ "api": [
+ "PUT /projects/:id/access_requests/:user_id/approve"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "A valid access level (defaults: 30, developer access level)"
+ }
+ ]
+ },
+ {
+ "title": "approve-an-access-request-groups",
+ "description": "Approves an access request for the given user.",
+ "api": [
+ "PUT /groups/:id/access_requests/:user_id/approve"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "A valid access level (defaults: 30, developer access level)"
+ }
+ ]
+ },
+ {
+ "title": "deny-an-access-request-projects",
+ "description": "Denies an access request for the given user.",
+ "api": [
+ "DELETE /projects/:id/access_requests/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ }
+ ]
+ },
+ {
+ "title": "deny-an-access-request-groups",
+ "description": "Denies an access request for the given user.",
+ "api": [
+ "DELETE /groups/:id/access_requests/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/namespaces.html",
+ "urlPart": "namespaces.html",
+ "allEntries": [
+ {
+ "title": "namespaces-api",
+ "description": "Usernames and groupnames fall under a special category called namespaces.",
+ "api": [
+ "GET /namespaces"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-namespaces",
+ "description": "Get a list of the namespaces of the authenticated user. If the user is an\nadministrator, a list of all namespaces in the GitLab instance is shown.",
+ "api": [
+ "GET /namespaces"
+ ],
+ "params": []
+ },
+ {
+ "title": "search-for-namespace",
+ "description": "Get all namespaces that match a string in their name or path.",
+ "api": [
+ "GET /namespaces"
+ ],
+ "params": [
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Returns a list of namespaces the user is authorized to see based on the search criteria"
+ }
+ ]
+ },
+ {
+ "title": "get-namespace-by-id",
+ "description": "Get a namespace by ID.",
+ "api": [
+ "GET /namespaces/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "ID or path of the namespace"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/notification_settings.html",
+ "urlPart": "notification_settings.html",
+ "allEntries": [
+ {
+ "title": "global-notification-settings",
+ "description": "Get current notification settings and email address.",
+ "api": [
+ "GET /notification_settings"
+ ],
+ "params": []
+ },
+ {
+ "title": "update-global-notification-settings",
+ "description": "Update current notification settings and email address.",
+ "api": [
+ "PUT /notification_settings"
+ ],
+ "params": [
+ {
+ "attribute": "level",
+ "type": "string",
+ "required": "no",
+ "description": "The global notification level"
+ },
+ {
+ "attribute": "notification_email",
+ "type": "string",
+ "required": "no",
+ "description": "The email address to send notifications"
+ },
+ {
+ "attribute": "new_note",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "issue_due",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "push_to_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "merge_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "failed_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "success_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_epic",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification (Introduced in 11.3)"
+ }
+ ]
+ },
+ {
+ "title": "group--project-level-notification-settings-projects",
+ "description": "Get current group or project notification settings.",
+ "api": [
+ "GET /projects/:id/notification_settings"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The group/project ID or path"
+ }
+ ]
+ },
+ {
+ "title": "group--project-level-notification-settings-groups",
+ "description": "Get current group or project notification settings.",
+ "api": [
+ "GET /groups/:id/notification_settings"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The group/project ID or path"
+ }
+ ]
+ },
+ {
+ "title": "update-groupproject-level-notification-settings-projects",
+ "description": "Update current group/project notification settings.",
+ "api": [
+ "PUT /projects/:id/notification_settings"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The group/project ID or path"
+ },
+ {
+ "attribute": "level",
+ "type": "string",
+ "required": "no",
+ "description": "The global notification level"
+ },
+ {
+ "attribute": "new_note",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "issue_due",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "push_to_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "merge_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "failed_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "success_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_epic",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification (Introduced in 11.3)"
+ }
+ ]
+ },
+ {
+ "title": "update-groupproject-level-notification-settings-groups",
+ "description": "Update current group/project notification settings.",
+ "api": [
+ "PUT /groups/:id/notification_settings"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The group/project ID or path"
+ },
+ {
+ "attribute": "level",
+ "type": "string",
+ "required": "no",
+ "description": "The global notification level"
+ },
+ {
+ "attribute": "new_note",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_issue",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "issue_due",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "push_to_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reopen_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "close_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "reassign_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "merge_merge_request",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "failed_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "success_pipeline",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification"
+ },
+ {
+ "attribute": "new_epic",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable this notification (Introduced in 11.3)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/resource_label_events.html",
+ "urlPart": "resource_label_events.html",
+ "allEntries": [
+ {
+ "title": "resource-label-events-api",
+ "description": "Resource label events keep track about who, when, and which label was added or removed to an issuable.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "issues",
+ "description": "Gets a list of all label events for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "list-project-issue-label-events",
+ "description": "Gets a list of all label events for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "get-single-issue-label-event",
+ "description": "Returns a single label event for a specific project issue",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/resource_label_events/:resource_label_event_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "resource_label_event_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a label event"
+ }
+ ]
+ },
+ {
+ "title": "epics",
+ "description": "Gets a list of all label events for a single epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ }
+ ]
+ },
+ {
+ "title": "list-group-epic-label-events",
+ "description": "Gets a list of all label events for a single epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ }
+ ]
+ },
+ {
+ "title": "get-single-epic-label-event",
+ "description": "Returns a single label event for a specific group epic",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/resource_label_events/:resource_label_event_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "resource_label_event_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a label event"
+ }
+ ]
+ },
+ {
+ "title": "merge-requests",
+ "description": "Gets a list of all label events for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ }
+ ]
+ },
+ {
+ "title": "list-project-merge-request-label-events",
+ "description": "Gets a list of all label events for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/resource_label_events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ }
+ ]
+ },
+ {
+ "title": "get-single-merge-request-label-event",
+ "description": "Returns a single label event for a specific project merge request",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/resource_label_events/:resource_label_event_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "resource_label_event_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a label event"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/pages_domains.html",
+ "urlPart": "pages_domains.html",
+ "allEntries": [
+ {
+ "title": "pages-domains-api",
+ "description": "Endpoints for connecting custom domain(s) and TLS certificates in GitLab Pages.",
+ "api": [
+ "GET /pages/domains"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-all-pages-domains",
+ "description": "Get a list of all pages domains. The user must have admin permissions.",
+ "api": [
+ "GET /pages/domains"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-pages-domains",
+ "description": "Get a list of project pages domains. The user must have permissions to view pages domains.",
+ "api": [
+ "GET /projects/:id/pages/domains"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "single-pages-domain",
+ "description": "Get a single project pages domain. The user must have permissions to view pages domains.",
+ "api": [
+ "GET /projects/:id/pages/domains/:domain"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "domain",
+ "type": "string",
+ "required": "yes",
+ "description": "The domain"
+ }
+ ]
+ },
+ {
+ "title": "create-new-pages-domain",
+ "description": "Creates a new pages domain. The user must have permissions to create new pages domains.",
+ "api": [
+ "POST /projects/:id/pages/domains"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "domain",
+ "type": "string",
+ "required": "yes",
+ "description": "The domain"
+ },
+ {
+ "attribute": "certificate",
+ "type": "file/string",
+ "required": "no",
+ "description": "The certificate in PEM format with intermediates following in most specific to least specific order."
+ },
+ {
+ "attribute": "key",
+ "type": "file/string",
+ "required": "no",
+ "description": "The certificate key in PEM format."
+ }
+ ]
+ },
+ {
+ "title": "update-pages-domain",
+ "description": "Updates an existing project pages domain. The user must have permissions to change an existing pages domains.",
+ "api": [
+ "PUT /projects/:id/pages/domains/:domain"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "domain",
+ "type": "string",
+ "required": "yes",
+ "description": "The domain"
+ },
+ {
+ "attribute": "certificate",
+ "type": "file/string",
+ "required": "no",
+ "description": "The certificate in PEM format with intermediates following in most specific to least specific order."
+ },
+ {
+ "attribute": "key",
+ "type": "file/string",
+ "required": "no",
+ "description": "The certificate key in PEM format."
+ }
+ ]
+ },
+ {
+ "title": "delete-pages-domain",
+ "description": "Deletes an existing project pages domain.",
+ "api": [
+ "DELETE /projects/:id/pages/domains/:domain"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "domain",
+ "type": "string",
+ "required": "yes",
+ "description": "The domain"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/access_requests.html",
+ "urlPart": "access_requests.html",
+ "allEntries": [
+ {
+ "title": "list-access-requests-for-a-group-or-project-projects",
+ "description": "Gets a list of access requests viewable by the authenticated user.",
+ "api": [
+ "GET /projects/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-access-requests-for-a-group-or-project-groups",
+ "description": "Gets a list of access requests viewable by the authenticated user.",
+ "api": [
+ "GET /groups/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "request-access-to-a-group-or-project-projects",
+ "description": "Requests access for the authenticated user to a group or project.",
+ "api": [
+ "POST /projects/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "request-access-to-a-group-or-project-groups",
+ "description": "Requests access for the authenticated user to a group or project.",
+ "api": [
+ "POST /groups/:id/access_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "approve-an-access-request-projects",
+ "description": "Approves an access request for the given user.",
+ "api": [
+ "PUT /projects/:id/access_requests/:user_id/approve"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "A valid access level (defaults: 30, developer access level)"
+ }
+ ]
+ },
+ {
+ "title": "approve-an-access-request-groups",
+ "description": "Approves an access request for the given user.",
+ "api": [
+ "PUT /groups/:id/access_requests/:user_id/approve"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "A valid access level (defaults: 30, developer access level)"
+ }
+ ]
+ },
+ {
+ "title": "deny-an-access-request-projects",
+ "description": "Denies an access request for the given user.",
+ "api": [
+ "DELETE /projects/:id/access_requests/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ }
+ ]
+ },
+ {
+ "title": "deny-an-access-request-groups",
+ "description": "Denies an access request for the given user.",
+ "api": [
+ "DELETE /groups/:id/access_requests/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the access requester"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/pipeline_triggers.html",
+ "urlPart": "pipeline_triggers.html",
+ "allEntries": [
+ {
+ "title": "pipeline-triggers-api",
+ "description": "You can read more about triggering pipelines through the API.",
+ "api": [
+ "GET /projects/:id/triggers"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-project-triggers",
+ "description": "Get a list of project’s build triggers.",
+ "api": [
+ "GET /projects/:id/triggers"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "get-trigger-details",
+ "description": "Get details of project’s build trigger.",
+ "api": [
+ "GET /projects/:id/triggers/:trigger_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "trigger_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The trigger id"
+ }
+ ]
+ },
+ {
+ "title": "create-a-project-trigger",
+ "description": "Create a trigger for a project.",
+ "api": [
+ "POST /projects/:id/triggers"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "yes",
+ "description": "The trigger name"
+ }
+ ]
+ },
+ {
+ "title": "update-a-project-trigger",
+ "description": "Update a trigger for a project.",
+ "api": [
+ "PUT /projects/:id/triggers/:trigger_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "trigger_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The trigger id"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The trigger name"
+ }
+ ]
+ },
+ {
+ "title": "take-ownership-of-a-project-trigger",
+ "description": "Update an owner of a project trigger.",
+ "api": [
+ "POST /projects/:id/triggers/:trigger_id/take_ownership"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "trigger_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The trigger id"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-project-trigger",
+ "description": "Remove a project’s build trigger.",
+ "api": [
+ "DELETE /projects/:id/triggers/:trigger_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "trigger_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The trigger id"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/discussions.html",
+ "urlPart": "discussions.html",
+ "allEntries": [
+ {
+ "title": "discussions-api",
+ "description": "Discussions are set of related notes on snippets, issues, epics, merge requests or commits.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "issues",
+ "description": "Gets a list of all discussions for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "list-project-issue-discussions",
+ "description": "Gets a list of all discussions for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ }
+ ]
+ },
+ {
+ "title": "get-single-issue-discussion",
+ "description": "Returns a single discussion for a specific project issue",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "create-new-issue-discussion",
+ "description": "Creates a new discussion to a single project issue. This is similar to creating\na note but but another comments (replies) can be added to it later.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "add-note-to-existing-issue-discussion",
+ "description": "Adds a new note to the discussion.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-issue-discussion-note",
+ "description": "Modify existing discussion note of an issue.",
+ "api": [
+ "PUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-issue-discussion-note",
+ "description": "Deletes an existing discussion note of an issue.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ }
+ ]
+ },
+ {
+ "title": "snippets",
+ "description": "Gets a list of all discussions for a single snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ }
+ ]
+ },
+ {
+ "title": "list-project-snippet-discussions",
+ "description": "Gets a list of all discussions for a single snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ }
+ ]
+ },
+ {
+ "title": "get-single-snippet-discussion",
+ "description": "Returns a single discussion for a specific project snippet",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "create-new-snippet-discussion",
+ "description": "Creates a new discussion to a single project snippet. This is similar to creating\na note but but another comments (replies) can be added to it later.",
+ "api": [
+ "POST /projects/:id/snippets/:snippet_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "add-note-to-existing-snippet-discussion",
+ "description": "Adds a new note to the discussion.",
+ "api": [
+ "POST /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-snippet-discussion-note",
+ "description": "Modify existing discussion note of an snippet.",
+ "api": [
+ "PUT /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-snippet-discussion-note",
+ "description": "Deletes an existing discussion note of an snippet.",
+ "api": [
+ "DELETE /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an snippet"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ }
+ ]
+ },
+ {
+ "title": "epics",
+ "description": "Gets a list of all discussions for a single epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ }
+ ]
+ },
+ {
+ "title": "list-group-epic-discussions",
+ "description": "Gets a list of all discussions for a single epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ }
+ ]
+ },
+ {
+ "title": "get-single-epic-discussion",
+ "description": "Returns a single discussion for a specific group epic",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "create-new-epic-discussion",
+ "description": "Creates a new discussion to a single group epic. This is similar to creating\na note but but another comments (replies) can be added to it later.",
+ "api": [
+ "POST /groups/:id/epics/:epic_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "add-note-to-existing-epic-discussion",
+ "description": "Adds a new note to the discussion.",
+ "api": [
+ "POST /groups/:id/epics/:epic_id/discussions/:discussion_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-epic-discussion-note",
+ "description": "Modify existing discussion note of an epic.",
+ "api": [
+ "PUT /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-epic-discussion-note",
+ "description": "Deletes an existing discussion note of an epic.",
+ "api": [
+ "DELETE /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ }
+ ]
+ },
+ {
+ "title": "merge-requests",
+ "description": "Gets a list of all discussions for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ }
+ ]
+ },
+ {
+ "title": "list-project-merge-request-discussions",
+ "description": "Gets a list of all discussions for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ }
+ ]
+ },
+ {
+ "title": "get-single-merge-request-discussion",
+ "description": "Returns a single discussion for a specific project merge request",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "create-new-merge-request-discussion",
+ "description": "Creates a new discussion to a single project merge request. This is similar to creating\na note but but another comments (replies) can be added to it later.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ },
+ {
+ "attribute": "position",
+ "type": "hash",
+ "required": "no",
+ "description": "Position when creating a diff note"
+ },
+ {
+ "attribute": "position[base_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "Base commit SHA in the source branch"
+ },
+ {
+ "attribute": "position[start_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "SHA referencing commit in target branch"
+ },
+ {
+ "attribute": "position[head_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "SHA referencing HEAD of this merge request"
+ },
+ {
+ "attribute": "position[position_type]",
+ "type": "string",
+ "required": "yes",
+ "description": "Type of the position reference’, allowed values: ‘text’ or ‘image’"
+ },
+ {
+ "attribute": "position[new_path]",
+ "type": "string",
+ "required": "no",
+ "description": "File path after change"
+ },
+ {
+ "attribute": "position[new_line]",
+ "type": "integer",
+ "required": "no",
+ "description": "Line number after change (for ‘text’ diff notes)"
+ },
+ {
+ "attribute": "position[old_path]",
+ "type": "string",
+ "required": "no",
+ "description": "File path before change"
+ },
+ {
+ "attribute": "position[old_line]",
+ "type": "integer",
+ "required": "no",
+ "description": "Line number before change (for ‘text’ diff notes)"
+ },
+ {
+ "attribute": "position[width]",
+ "type": "integer",
+ "required": "no",
+ "description": "Width of the image (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[height]",
+ "type": "integer",
+ "required": "no",
+ "description": "Height of the image (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[x]",
+ "type": "integer",
+ "required": "no",
+ "description": "X coordinate (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[y]",
+ "type": "integer",
+ "required": "no",
+ "description": "Y coordinate (for ‘image’ diff notes)"
+ }
+ ]
+ },
+ {
+ "title": "resolve-a-merge-request-discussion",
+ "description": "Resolve/unresolve whole discussion of a merge request.",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "resolved",
+ "type": "boolean",
+ "required": "yes",
+ "description": "Resolve/unresolve the discussion"
+ }
+ ]
+ },
+ {
+ "title": "add-note-to-existing-merge-request-discussion",
+ "description": "Adds a new note to the discussion.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "modify-an-existing-merge-request-discussion-note",
+ "description": "Modify or resolve an existing discussion note of a merge request.",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "no",
+ "description": "The content of a discussion (exactly one of body or resolved must be set"
+ },
+ {
+ "attribute": "resolved",
+ "type": "boolean",
+ "required": "no",
+ "description": "Resolve/unresolve the note (exactly one of body or resolved must be set"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-merge-request-discussion-note",
+ "description": "Deletes an existing discussion note of a merge request.",
+ "api": [
+ "DELETE /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ }
+ ]
+ },
+ {
+ "title": "commits",
+ "description": "Gets a list of all discussions for a single commit.",
+ "api": [
+ "GET /projects/:id/commits/:commit_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ }
+ ]
+ },
+ {
+ "title": "list-project-commit-discussions",
+ "description": "Gets a list of all discussions for a single commit.",
+ "api": [
+ "GET /projects/:id/commits/:commit_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ }
+ ]
+ },
+ {
+ "title": "get-single-commit-discussion",
+ "description": "Returns a single discussion for a specific project commit",
+ "api": [
+ "GET /projects/:id/commits/:commit_id/discussions/:discussion_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ }
+ ]
+ },
+ {
+ "title": "create-new-commit-discussion",
+ "description": "Creates a new discussion to a single project commit. This is similar to creating\na note but but another comments (replies) can be added to it later.",
+ "api": [
+ "POST /projects/:id/commits/:commit_id/discussions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ },
+ {
+ "attribute": "position",
+ "type": "hash",
+ "required": "no",
+ "description": "Position when creating a diff note"
+ },
+ {
+ "attribute": "position[base_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "Base commit SHA in the source branch"
+ },
+ {
+ "attribute": "position[start_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "SHA referencing commit in target branch"
+ },
+ {
+ "attribute": "position[head_sha]",
+ "type": "string",
+ "required": "yes",
+ "description": "SHA referencing HEAD of this commit"
+ },
+ {
+ "attribute": "position[position_type]",
+ "type": "string",
+ "required": "yes",
+ "description": "Type of the position reference’, allowed values: ‘text’ or ‘image’"
+ },
+ {
+ "attribute": "position[new_path]",
+ "type": "string",
+ "required": "no",
+ "description": "File path after change"
+ },
+ {
+ "attribute": "position[new_line]",
+ "type": "integer",
+ "required": "no",
+ "description": "Line number after change"
+ },
+ {
+ "attribute": "position[old_path]",
+ "type": "string",
+ "required": "no",
+ "description": "File path before change"
+ },
+ {
+ "attribute": "position[old_line]",
+ "type": "integer",
+ "required": "no",
+ "description": "Line number before change"
+ },
+ {
+ "attribute": "position[width]",
+ "type": "integer",
+ "required": "no",
+ "description": "Width of the image (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[height]",
+ "type": "integer",
+ "required": "no",
+ "description": "Height of the image (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[x]",
+ "type": "integer",
+ "required": "no",
+ "description": "X coordinate (for ‘image’ diff notes)"
+ },
+ {
+ "attribute": "position[y]",
+ "type": "integer",
+ "required": "no",
+ "description": "Y coordinate (for ‘image’ diff notes)"
+ }
+ ]
+ },
+ {
+ "title": "add-note-to-existing-commit-discussion",
+ "description": "Adds a new note to the discussion.",
+ "api": [
+ "POST /projects/:id/commits/:commit_id/discussions/:discussion_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a discussion"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ }
+ ]
+ },
+ {
+ "title": "modify-an-existing-commit-discussion-note",
+ "description": "Modify or resolve an existing discussion note of a commit.",
+ "api": [
+ "PUT /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "no",
+ "description": "The content of a note"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-commit-discussion-note",
+ "description": "Deletes an existing discussion note of a commit.",
+ "api": [
+ "DELETE /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "commit_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a commit"
+ },
+ {
+ "attribute": "discussion_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a discussion note"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/pipeline_schedules.html",
+ "urlPart": "pipeline_schedules.html",
+ "allEntries": [
+ {
+ "title": "pipeline-schedules",
+ "description": "You can read more about pipeline schedules.",
+ "api": [
+ "GET /projects/:id/pipeline_schedules"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "The scope of pipeline schedules, one of: active, inactive\n"
+ }
+ ]
+ },
+ {
+ "title": "get-all-pipeline-schedules",
+ "description": "Get a list of the pipeline schedules of a project.",
+ "api": [
+ "GET /projects/:id/pipeline_schedules"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "The scope of pipeline schedules, one of: active, inactive\n"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-pipeline-schedule",
+ "description": "Get the pipeline schedule of a project.",
+ "api": [
+ "GET /projects/:id/pipeline_schedules/:pipeline_schedule_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-pipeline-schedule",
+ "description": "Create a new pipeline schedule of a project.",
+ "api": [
+ "POST /projects/:id/pipeline_schedules"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "yes",
+ "description": "The description of pipeline schedule"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "yes",
+ "description": "The branch/tag name will be triggered"
+ },
+ {
+ "attribute": "cron ",
+ "type": "string",
+ "required": "yes",
+ "description": "The cron (e.g. 0 1 * * *) (Cron syntax)"
+ },
+ {
+ "attribute": "cron_timezone ",
+ "type": "string",
+ "required": "no",
+ "description": "The timezone supported by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC')"
+ },
+ {
+ "attribute": "active ",
+ "type": "boolean",
+ "required": "no",
+ "description": "The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true)"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-pipeline-schedule",
+ "description": "Updates the pipeline schedule of a project. Once the update is done, it will be rescheduled automatically.",
+ "api": [
+ "PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of pipeline schedule"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The branch/tag name will be triggered"
+ },
+ {
+ "attribute": "cron ",
+ "type": "string",
+ "required": "no",
+ "description": "The cron (e.g. 0 1 * * *) (Cron syntax)"
+ },
+ {
+ "attribute": "cron_timezone ",
+ "type": "string",
+ "required": "no",
+ "description": "The timezone supported by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) or TZInfo::Timezone (e.g. America/Los_Angeles)"
+ },
+ {
+ "attribute": "active ",
+ "type": "boolean",
+ "required": "no",
+ "description": "The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially."
+ }
+ ]
+ },
+ {
+ "title": "take-ownership-of-a-pipeline-schedule",
+ "description": "Update the owner of the pipeline schedule of a project.",
+ "api": [
+ "POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/take_ownership"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-pipeline-schedule",
+ "description": "Delete the pipeline schedule of a project.",
+ "api": [
+ "DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ }
+ ]
+ },
+ {
+ "title": "pipeline-schedule-variable",
+ "description": "Create a new variable of a pipeline schedule.",
+ "api": [
+ "POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-pipeline-schedule-variable",
+ "description": "Create a new variable of a pipeline schedule.",
+ "api": [
+ "POST /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-pipeline-schedule-variable",
+ "description": "Updates the variable of a pipeline schedule.",
+ "api": [
+ "PUT /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ },
+ {
+ "attribute": "value",
+ "type": "string",
+ "required": "yes",
+ "description": "The value of a variable"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-pipeline-schedule-variable",
+ "description": "Delete the variable of a pipeline schedule.",
+ "api": [
+ "DELETE /projects/:id/pipeline_schedules/:pipeline_schedule_id/variables/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_schedule_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The pipeline schedule id"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of a variable"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/project_import_export.html",
+ "urlPart": "project_import_export.html",
+ "allEntries": [
+ {
+ "title": "project-importexport-api",
+ "description": "Introduced in GitLab 10.6",
+ "api": [
+ "POST /projects/:id/export"
+ ],
+ "params": []
+ },
+ {
+ "title": "schedule-an-export",
+ "description": "Start a new export.",
+ "api": [
+ "POST /projects/:id/export"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Overrides the project description"
+ },
+ {
+ "attribute": "upload",
+ "type": "hash",
+ "required": "no",
+ "description": "Hash that contains the information to upload the exported project to a web server"
+ },
+ {
+ "attribute": "upload[url]",
+ "type": "string",
+ "required": "yes",
+ "description": "The URL to upload the project"
+ },
+ {
+ "attribute": "upload[http_method]",
+ "type": "string",
+ "required": "no",
+ "description": "The HTTP method to upload the exported project. Only PUT and POST methods allowed. Default is PUT\n"
+ }
+ ]
+ },
+ {
+ "title": "export-status",
+ "description": "Get the status of export.",
+ "api": [
+ "GET /projects/:id/export"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "export-download",
+ "description": "Download the finished export.",
+ "api": [
+ "GET /projects/:id/export/download"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "import-a-file",
+ "description": "The override params passed will take precedence over all values defined inside the export file.",
+ "api": [
+ "POST /projects/import"
+ ],
+ "params": [
+ {
+ "attribute": "namespace",
+ "type": "integer/string",
+ "required": "no",
+ "description": "The ID or path of the namespace that the project will be imported to. Defaults to the current user’s namespace"
+ },
+ {
+ "attribute": "file",
+ "type": "string",
+ "required": "yes",
+ "description": "The file to be uploaded"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "yes",
+ "description": "Name and path for new project"
+ },
+ {
+ "attribute": "overwrite",
+ "type": "boolean",
+ "required": "no",
+ "description": "If there is a project with the same path the import will overwrite it. Default to false"
+ },
+ {
+ "attribute": "override_params",
+ "type": "Hash",
+ "required": "no",
+ "description": "Supports all fields defined in the Project API\n"
+ }
+ ]
+ },
+ {
+ "title": "import-status",
+ "description": "Get the status of an import.",
+ "api": [
+ "GET /projects/:id/import"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/project_badges.html",
+ "urlPart": "project_badges.html",
+ "allEntries": [
+ {
+ "title": "project-badges-api",
+ "description": "Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:",
+ "api": [
+ "GET /projects/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "placeholder-tokens",
+ "description": "Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:",
+ "api": [
+ "GET /projects/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-all-badges-of-a-project",
+ "description": "Gets a list of a project’s badges and its group badges.",
+ "api": [
+ "GET /projects/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "get-a-badge-of-a-project",
+ "description": "Gets a badge of a project.",
+ "api": [
+ "GET /projects/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ }
+ ]
+ },
+ {
+ "title": "add-a-badge-to-a-project",
+ "description": "Adds a badge to a project.",
+ "api": [
+ "POST /projects/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge image"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-badge-of-a-project",
+ "description": "Updates a badge of a project.",
+ "api": [
+ "PUT /projects/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL of the badge image"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-badge-from-a-project",
+ "description": "Removes a badge from a project. Only project’s badges will be removed by using this endpoint.",
+ "api": [
+ "DELETE /projects/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ }
+ ]
+ },
+ {
+ "title": "preview-a-badge-from-a-project",
+ "description": "Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.",
+ "api": [
+ "GET /projects/:id/badges/render"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge image"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/notes.html",
+ "urlPart": "notes.html",
+ "allEntries": [
+ {
+ "title": "notes-api",
+ "description": "Notes are comments on snippets, issues, merge requests or epics.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "issues",
+ "description": "Gets a list of all notes for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "list-project-issue-notes",
+ "description": "Gets a list of all notes for a single issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issue notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-issue-note",
+ "description": "Returns a single note for a specific project issue",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-issue-note",
+ "description": "Creates a new note to a single project issue.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-issue-note",
+ "description": "Modify existing note of an issue.",
+ "api": [
+ "PUT /projects/:id/issues/:issue_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-issue-note",
+ "description": "Deletes an existing note of an issue.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of an issue"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "snippets",
+ "description": "Gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project snippet"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return snippet notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return snippet notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "list-all-snippet-notes",
+ "description": "Gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project snippet"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return snippet notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return snippet notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-snippet-note",
+ "description": "Returns a single note for a given snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-snippet-note",
+ "description": "Creates a new note for a single snippet. Snippet notes are comments users can post to a snippet.\nIf you create a note where the body only contains an Award Emoji, you’ll receive this object back.",
+ "api": [
+ "POST /projects/:id/snippets/:snippet_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-snippet-note",
+ "description": "Modify existing note of a snippet.",
+ "api": [
+ "PUT /projects/:id/snippets/:snippet_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-snippet-note",
+ "description": "Deletes an existing note of a snippet.",
+ "api": [
+ "DELETE /projects/:id/snippets/:snippet_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "merge-requests",
+ "description": "Gets a list of all notes for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a project merge request"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge request notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge request notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "list-all-merge-request-notes",
+ "description": "Gets a list of all notes for a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a project merge request"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge request notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge request notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-merge-request-note",
+ "description": "Returns a single note for a given merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-merge-request-note",
+ "description": "Creates a new note for a single merge request.\nIf you create a note where the body only contains an Award Emoji, you’ll receive\nthis object back.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-merge-request-note",
+ "description": "Modify existing note of a merge request.",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-merge-request-note",
+ "description": "Deletes an existing note of a merge request.",
+ "api": [
+ "DELETE /projects/:id/merge_requests/:merge_request_iid/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The IID of a merge request"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "epics",
+ "description": "Gets a list of all notes for a single epic. Epic notes are comments users can post to an epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a group epic"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return epic notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return epic notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "list-all-epic-notes",
+ "description": "Gets a list of all notes for a single epic. Epic notes are comments users can post to an epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a group epic"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return epic notes sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return epic notes ordered by created_at or updated_at fields. Default is created_at\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-epic-note",
+ "description": "Returns a single note for a given epic.",
+ "api": [
+ "GET /groups/:id/epics/:epic_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ },
+ {
+ "title": "create-new-epic-note",
+ "description": "Creates a new note for a single epic. Epic notes are comments users can post to an epic.\nIf you create a note where the body only contains an Award Emoji, you’ll receive this object back.",
+ "api": [
+ "POST /groups/:id/epics/:epic_id/notes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a note"
+ }
+ ]
+ },
+ {
+ "title": "modify-existing-epic-note",
+ "description": "Modify existing note of an epic.",
+ "api": [
+ "PUT /groups/:id/epics/:epic_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ },
+ {
+ "attribute": "body",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of a note"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-epic-note",
+ "description": "Deletes an existing note of an epic.",
+ "api": [
+ "DELETE /groups/:id/epics/:epic_id/notes/:note_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group\n"
+ },
+ {
+ "attribute": "epic_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of an epic"
+ },
+ {
+ "attribute": "note_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a note"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/repository_submodules.html",
+ "urlPart": "repository_submodules.html",
+ "allEntries": [
+ {
+ "title": "repository-submodules-api",
+ "description": "In some workflows, especially automated ones, it can be useful to update a\nsubmodule’s reference to keep up to date other projects that use it.\nThis endpoint allows you to update a Git submodule reference in a\nspecific branch.",
+ "api": [
+ "PUT /projects/:id/repository/submodules/:submodule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "submodule",
+ "type": "string",
+ "required": "yes",
+ "description": "URL encoded full path to the submodule. For example, lib%2Fclass%2Erb\n"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "Name of the branch to commit into"
+ },
+ {
+ "attribute": "commit_sha",
+ "type": "string",
+ "required": "yes",
+ "description": "Full commit SHA to update the submodule to"
+ },
+ {
+ "attribute": "commit_message",
+ "type": "string",
+ "required": "no",
+ "description": "Commit message. If no message is provided, a default one will be set"
+ }
+ ]
+ },
+ {
+ "title": "update-existing-submodule-reference-in-repository",
+ "description": "In some workflows, especially automated ones, it can be useful to update a\nsubmodule’s reference to keep up to date other projects that use it.\nThis endpoint allows you to update a Git submodule reference in a\nspecific branch.",
+ "api": [
+ "PUT /projects/:id/repository/submodules/:submodule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "submodule",
+ "type": "string",
+ "required": "yes",
+ "description": "URL encoded full path to the submodule. For example, lib%2Fclass%2Erb\n"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "yes",
+ "description": "Name of the branch to commit into"
+ },
+ {
+ "attribute": "commit_sha",
+ "type": "string",
+ "required": "yes",
+ "description": "Full commit SHA to update the submodule to"
+ },
+ {
+ "attribute": "commit_message",
+ "type": "string",
+ "required": "no",
+ "description": "Commit message. If no message is provided, a default one will be set"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/repository_files.html",
+ "urlPart": "repository_files.html",
+ "allEntries": [
+ {
+ "title": "repository-files-api",
+ "description": "CRUD for repository files",
+ "api": [
+ "GET /projects/:id/repository/files/:file_path"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-file-from-repository",
+ "description": "Allows you to receive information about file in repository like name, size,\ncontent. Note that file content is Base64 encoded. This endpoint can be accessed\nwithout authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/files/:file_path"
+ ],
+ "params": [
+ {
+ "attribute": "file_path",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Url encoded full path to new file. Ex. lib%2Fclass%2Erb"
+ }
+ ]
+ },
+ {
+ "title": "get-raw-file-from-repository",
+ "description": "Get raw file from repository.",
+ "api": [
+ "GET /projects/:id/repository/files/:file_path/raw"
+ ],
+ "params": [
+ {
+ "attribute": "file_path",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Url encoded full path to new file. Ex. lib%2Fclass%2Erb"
+ }
+ ]
+ },
+ {
+ "title": "create-new-file-in-repository",
+ "description": "This allows you to create a single file. For creating multiple files with a single request see the commits API.",
+ "api": [
+ "POST /projects/:id/repository/files/:file_path"
+ ],
+ "params": [
+ {
+ "attribute": "file_path",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Url encoded full path to new file. Ex. lib%2Fclass%2Erb"
+ }
+ ]
+ },
+ {
+ "title": "update-existing-file-in-repository",
+ "description": "This allows you to update a single file. For updating multiple files with a single request see the commits API.",
+ "api": [
+ "PUT /projects/:id/repository/files/:file_path"
+ ],
+ "params": [
+ {
+ "attribute": "file_path",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Url encoded full path to new file. Ex. lib%2Fclass%2Erb"
+ }
+ ]
+ },
+ {
+ "title": "delete-existing-file-in-repository",
+ "description": "This allows you to delete a single file. For deleting multiple files with a singleh request see the commits API.",
+ "api": [
+ "DELETE /projects/:id/repository/files/:file_path"
+ ],
+ "params": [
+ {
+ "attribute": "file_path",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Url encoded full path to new file. Ex. lib%2Fclass%2Erb"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/pipelines.html",
+ "urlPart": "pipelines.html",
+ "allEntries": [
+ {
+ "title": "pipelines-api",
+ "description": "Example of response",
+ "api": [
+ "GET /projects/:id/pipelines"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "The scope of pipelines, one of: running, pending, finished, branches, tags\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of pipelines, one of: running, pending, success, failed, canceled, skipped\n"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The ref of pipelines"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "no",
+ "description": "The sha or pipelines"
+ },
+ {
+ "attribute": "yaml_errors",
+ "type": "boolean",
+ "required": "no",
+ "description": "Returns pipelines with invalid configurations"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the user who triggered pipelines"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "no",
+ "description": "The username of the user who triggered pipelines"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Order pipelines by id, status, ref, or user_id (default: id)"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort pipelines in asc or desc order (default: desc)"
+ }
+ ]
+ },
+ {
+ "title": "list-project-pipelines",
+ "description": "Example of response",
+ "api": [
+ "GET /projects/:id/pipelines"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "The scope of pipelines, one of: running, pending, finished, branches, tags\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of pipelines, one of: running, pending, success, failed, canceled, skipped\n"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "no",
+ "description": "The ref of pipelines"
+ },
+ {
+ "attribute": "sha",
+ "type": "string",
+ "required": "no",
+ "description": "The sha or pipelines"
+ },
+ {
+ "attribute": "yaml_errors",
+ "type": "boolean",
+ "required": "no",
+ "description": "Returns pipelines with invalid configurations"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the user who triggered pipelines"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "no",
+ "description": "The username of the user who triggered pipelines"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Order pipelines by id, status, ref, or user_id (default: id)"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort pipelines in asc or desc order (default: desc)"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-pipeline",
+ "description": "Example of response",
+ "api": [
+ "GET /projects/:id/pipelines/:pipeline_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a pipeline"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-pipeline",
+ "description": "Example of response",
+ "api": [
+ "POST /projects/:id/pipeline"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "ref",
+ "type": "string",
+ "required": "yes",
+ "description": "Reference to commit"
+ },
+ {
+ "attribute": "variables",
+ "type": "array",
+ "required": "no",
+ "description": "An array containing the variables available in the pipeline, matching the structure [{ ‘key’ => ‘UPLOAD_TO_S3’, ‘value’ => ‘true’ }]"
+ }
+ ]
+ },
+ {
+ "title": "retry-jobs-in-a-pipeline",
+ "description": "Response:",
+ "api": [
+ "POST /projects/:id/pipelines/:pipeline_id/retry"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a pipeline"
+ }
+ ]
+ },
+ {
+ "title": "cancel-a-pipelines-jobs",
+ "description": "Response:",
+ "api": [
+ "POST /projects/:id/pipelines/:pipeline_id/cancel"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a pipeline"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-pipeline",
+ "description": "",
+ "api": [
+ "DELETE /projects/:id/pipelines/:pipeline_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "pipeline_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a pipeline"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/runners.html",
+ "urlPart": "runners.html",
+ "allEntries": [
+ {
+ "title": "runners-api",
+ "description": "Get a list of specific runners available to the user.",
+ "api": [
+ "GET /runners"
+ ],
+ "params": [
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of runners to show, one of: instance_type, group_type, project_type\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of runners to show, one of: active, paused, online, offline\n"
+ }
+ ]
+ },
+ {
+ "title": "list-owned-runners",
+ "description": "Get a list of specific runners available to the user.",
+ "api": [
+ "GET /runners"
+ ],
+ "params": [
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of runners to show, one of: instance_type, group_type, project_type\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of runners to show, one of: active, paused, online, offline\n"
+ }
+ ]
+ },
+ {
+ "title": "list-all-runners",
+ "description": "Get a list of all runners in the GitLab instance (specific and shared). Access\nis restricted to users with admin privileges.",
+ "api": [
+ "GET /runners/all"
+ ],
+ "params": [
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Deprecated: Use type or status instead. The scope of runners to show, one of: specific, shared, active, paused, online, offline; showing all runners if none provided"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of runners to show, one of: instance_type, group_type, project_type\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of runners to show, one of: active, paused, online, offline\n"
+ }
+ ]
+ },
+ {
+ "title": "get-runners-details",
+ "description": "Get details of a runner.",
+ "api": [
+ "GET /runners/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ }
+ ]
+ },
+ {
+ "title": "update-runners-details",
+ "description": "Update details of a runner.",
+ "api": [
+ "PUT /runners/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of a runner"
+ },
+ {
+ "attribute": "active",
+ "type": "boolean",
+ "required": "no",
+ "description": "The state of a runner; can be set to true or false\n"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "array",
+ "required": "no",
+ "description": "The list of tags for a runner; put array of tags, that should be finally assigned to a runner"
+ },
+ {
+ "attribute": "run_untagged",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating the runner can execute untagged jobs"
+ },
+ {
+ "attribute": "locked",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating the runner is locked"
+ },
+ {
+ "attribute": "access_level",
+ "type": "string",
+ "required": "no",
+ "description": "The access_level of the runner; not_protected or ref_protected\n"
+ },
+ {
+ "attribute": "maximum_timeout",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum timeout set when this Runner will handle the job"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-runner",
+ "description": "Remove a runner.",
+ "api": [
+ "DELETE /runners/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ }
+ ]
+ },
+ {
+ "title": "list-runners-jobs",
+ "description": "List jobs that are being processed or were processed by specified Runner.",
+ "api": [
+ "GET /runners/:id/jobs"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "Status of the job; one of: running, success, failed, canceled\n"
+ }
+ ]
+ },
+ {
+ "title": "list-projects-runners",
+ "description": "List all runners (specific and shared) available in the project. Shared runners\nare listed if at least one shared runner is defined.",
+ "api": [
+ "GET /projects/:id/runners"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of runners to show, one of: instance_type, group_type, project_type\n"
+ },
+ {
+ "attribute": "status",
+ "type": "string",
+ "required": "no",
+ "description": "The status of runners to show, one of: active, paused, online, offline\n"
+ }
+ ]
+ },
+ {
+ "title": "enable-a-runner-in-project",
+ "description": "Enable an available specific runner in the project.",
+ "api": [
+ "POST /projects/:id/runners"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "runner_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ }
+ ]
+ },
+ {
+ "title": "disable-a-runner-from-project",
+ "description": "Disable a specific runner from the project. It works only if the project isn’t\nthe only project associated with the specified runner. If so, an error is\nreturned. Use the Remove a runner call instead.",
+ "api": [
+ "DELETE /projects/:id/runners/:runner_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "runner_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a runner"
+ }
+ ]
+ },
+ {
+ "title": "register-a-new-runner",
+ "description": "Register a new Runner for the instance.",
+ "api": [
+ "POST /runners"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "Registration token (Read how to obtain a token)"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Runner’s description"
+ },
+ {
+ "attribute": "info",
+ "type": "hash",
+ "required": "no",
+ "description": "Runner’s metadata"
+ },
+ {
+ "attribute": "active",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the Runner is active"
+ },
+ {
+ "attribute": "locked",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the Runner should be locked for current project"
+ },
+ {
+ "attribute": "run_untagged",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether the Runner should handle untagged jobs"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "Array[String]",
+ "required": "no",
+ "description": "List of Runner’s tags"
+ },
+ {
+ "attribute": "maximum_timeout",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum timeout set when this Runner will handle the job"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-registered-runner",
+ "description": "Deletes a registed Runner.",
+ "api": [
+ "DELETE /runners"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "Runner’s authentication token"
+ }
+ ]
+ },
+ {
+ "title": "verify-authentication-for-a-registered-runner",
+ "description": "Validates authentication credentials for a registered Runner.",
+ "api": [
+ "POST /runners/verify"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "Runner’s authentication token"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/project_snippets.html",
+ "urlPart": "project_snippets.html",
+ "allEntries": [
+ {
+ "title": "project-snippets",
+ "description": "Snippets in GitLab can be either private, internal or public.\nYou can set it with the visibility field in the snippet.",
+ "api": [
+ "GET /projects/:id/snippets"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "The snippet is visible only the snippet creator"
+ },
+ {
+ "attribute": "internal",
+ "type": "The snippet is visible for any logged in user"
+ },
+ {
+ "attribute": "public",
+ "type": "The snippet can be accessed without any authentication"
+ }
+ ]
+ },
+ {
+ "title": "snippet-visibility-level",
+ "description": "Snippets in GitLab can be either private, internal or public.\nYou can set it with the visibility field in the snippet.",
+ "api": [
+ "GET /projects/:id/snippets"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "The snippet is visible only the snippet creator"
+ },
+ {
+ "attribute": "internal",
+ "type": "The snippet is visible for any logged in user"
+ },
+ {
+ "attribute": "public",
+ "type": "The snippet can be accessed without any authentication"
+ }
+ ]
+ },
+ {
+ "title": "list-snippets",
+ "description": "Get a list of project snippets.",
+ "api": [
+ "GET /projects/:id/snippets"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "single-snippet",
+ "description": "Get a single project snippet.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-snippet",
+ "description": "Creates a new project snippet. The user must have permission to create new snippets.",
+ "api": [
+ "POST /projects/:id/snippets"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "update-snippet",
+ "description": "Updates an existing project snippet. The user must have permission to change an existing snippet.",
+ "api": [
+ "PUT /projects/:id/snippets/:snippet_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-snippet",
+ "description": "Deletes an existing project snippet. This returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found.",
+ "api": [
+ "DELETE /projects/:id/snippets/:snippet_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "snippet-content",
+ "description": "Returns the raw project snippet as plain text.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/raw"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-user-agent-details",
+ "description": "Available only for admins.",
+ "api": [
+ "GET /projects/:id/snippets/:snippet_id/user_agent_detail"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "snippet_id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/todos.html",
+ "urlPart": "todos.html",
+ "allEntries": [
+ {
+ "title": "todos-api",
+ "description": "Returns a list of todos. When no filter is applied, it returns all pending todos\nfor the current user. Different filters allow the user to precise the request.",
+ "api": [
+ "GET /todos"
+ ],
+ "params": [
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "The action to be filtered. Can be assigned, mentioned, build_failed, marked, approval_required, unmergeable or directly_addressed."
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of an author"
+ },
+ {
+ "attribute": "project_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "group_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a group"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "The state of the todo. Can be either pending or done\n"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of a todo. Can be either Issue or MergeRequest\n"
+ }
+ ]
+ },
+ {
+ "title": "get-a-list-of-todos",
+ "description": "Returns a list of todos. When no filter is applied, it returns all pending todos\nfor the current user. Different filters allow the user to precise the request.",
+ "api": [
+ "GET /todos"
+ ],
+ "params": [
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "The action to be filtered. Can be assigned, mentioned, build_failed, marked, approval_required, unmergeable or directly_addressed."
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of an author"
+ },
+ {
+ "attribute": "project_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "group_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a group"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "The state of the todo. Can be either pending or done\n"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "The type of a todo. Can be either Issue or MergeRequest\n"
+ }
+ ]
+ },
+ {
+ "title": "mark-a-todo-as-done",
+ "description": "Marks a single pending todo given by its ID for the current user as done. The\ntodo marked as done is returned in the response.",
+ "api": [
+ "POST /todos/:id/mark_as_done"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a todo"
+ }
+ ]
+ },
+ {
+ "title": "mark-all-todos-as-done",
+ "description": "Marks all pending todos for the current user as done. It returns the HTTP status code 204 with an empty response.",
+ "api": [
+ "POST /todos/mark_as_done"
+ ],
+ "params": []
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/protected_tags.html",
+ "urlPart": "protected_tags.html",
+ "allEntries": [
+ {
+ "title": "protected-tags-api",
+ "description": "Valid access levels",
+ "api": [
+ "GET /projects/:id/protected_tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-protected-tags",
+ "description": "Gets a list of protected tags from a project.\nThis function takes pagination parameters page and per_page to restrict the list of protected tags.",
+ "api": [
+ "GET /projects/:id/protected_tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-protected-tag-or-wildcard-protected-tag",
+ "description": "Gets a single protected tag or wildcard protected tag.\nThe pagination parameters page and per_page can be used to restrict the list of protected tags.",
+ "api": [
+ "GET /projects/:id/protected_tags/:name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the tag or wildcard"
+ }
+ ]
+ },
+ {
+ "title": "protect-repository-tags",
+ "description": "Protects a single repository tag or several project repository\ntags using a wildcard protected tag.",
+ "api": [
+ "POST /projects/:id/protected_tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the tag or wildcard"
+ },
+ {
+ "attribute": "create_access_level",
+ "type": "string",
+ "required": "no",
+ "description": "Access levels allowed to create (defaults: 40, maintainer access level)"
+ }
+ ]
+ },
+ {
+ "title": "unprotect-repository-tags",
+ "description": "Unprotects the given protected tag or wildcard protected tag.",
+ "api": [
+ "DELETE /projects/:id/protected_tags/:name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the tag"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/members.html",
+ "urlPart": "members.html",
+ "allEntries": [
+ {
+ "title": "list-all-members-of-a-group-or-project-projects",
+ "description": "Gets a list of group or project members viewable by the authenticated user.\nReturns only direct members and not inherited members through ancestors groups.",
+ "api": [
+ "GET /projects/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-groups",
+ "description": "Gets a list of group or project members viewable by the authenticated user.\nReturns only direct members and not inherited members through ancestors groups.",
+ "api": [
+ "GET /groups/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-including-inherited-members-projects",
+ "description": "Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.\nReturns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group.",
+ "api": [
+ "GET /projects/:id/members/all"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-including-inherited-members-groups",
+ "description": "Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.\nReturns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group.",
+ "api": [
+ "GET /groups/:id/members/all"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "get-a-member-of-a-group-or-project-projects",
+ "description": "Gets a member of a group or project.",
+ "api": [
+ "GET /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "get-a-member-of-a-group-or-project-groups",
+ "description": "Gets a member of a group or project.",
+ "api": [
+ "GET /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "add-a-member-to-a-group-or-project-projects",
+ "description": "Adds a member to a group or project.",
+ "api": [
+ "POST /projects/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the new member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "add-a-member-to-a-group-or-project-groups",
+ "description": "Adds a member to a group or project.",
+ "api": [
+ "POST /groups/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the new member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-member-of-a-group-or-project-projects",
+ "description": "Updates a member of a group or project.",
+ "api": [
+ "PUT /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-member-of-a-group-or-project-groups",
+ "description": "Updates a member of a group or project.",
+ "api": [
+ "PUT /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-member-from-a-group-or-project-projects",
+ "description": "Removes a user from a group or project.",
+ "api": [
+ "DELETE /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-member-from-a-group-or-project-groups",
+ "description": "Removes a user from a group or project.",
+ "api": [
+ "DELETE /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/templates/licenses.html",
+ "urlPart": "templates/licenses.html",
+ "allEntries": [
+ {
+ "title": "licenses-api",
+ "description": "Get all license templates.",
+ "api": [
+ "GET /templates/licenses"
+ ],
+ "params": [
+ {
+ "attribute": "popular",
+ "type": "boolean",
+ "required": "no",
+ "description": "If passed, returns only popular licenses"
+ }
+ ]
+ },
+ {
+ "title": "list-license-templates",
+ "description": "Get all license templates.",
+ "api": [
+ "GET /templates/licenses"
+ ],
+ "params": [
+ {
+ "attribute": "popular",
+ "type": "boolean",
+ "required": "no",
+ "description": "If passed, returns only popular licenses"
+ }
+ ]
+ },
+ {
+ "title": "single-license-template",
+ "description": "Get a single license template. You can pass parameters to replace the license\nplaceholder.",
+ "api": [
+ "GET /templates/licenses/:key"
+ ],
+ "params": [
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the license template"
+ },
+ {
+ "attribute": "project",
+ "type": "string",
+ "required": "no",
+ "description": "The copyrighted project name"
+ },
+ {
+ "attribute": "fullname",
+ "type": "string",
+ "required": "no",
+ "description": "The full-name of the copyright holder"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/protected_branches.html",
+ "urlPart": "protected_branches.html",
+ "allEntries": [
+ {
+ "title": "protected-branches-api",
+ "description": "Valid access levels",
+ "api": [
+ "GET /projects/:id/protected_branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-protected-branches",
+ "description": "Gets a list of protected branches from a project.",
+ "api": [
+ "GET /projects/:id/protected_branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-protected-branch-or-wildcard-protected-branch",
+ "description": "Gets a single protected branch or wildcard protected branch.",
+ "api": [
+ "GET /projects/:id/protected_branches/:name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch or wildcard"
+ }
+ ]
+ },
+ {
+ "title": "protect-repository-branches",
+ "description": "Protects a single repository branch or several project repository\nbranches using a wildcard protected branch.",
+ "api": [
+ "POST /projects/:id/protected_branches"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch or wildcard"
+ },
+ {
+ "attribute": "push_access_level",
+ "type": "string",
+ "required": "no",
+ "description": "Access levels allowed to push (defaults: 40, maintainer access level)"
+ },
+ {
+ "attribute": "merge_access_level",
+ "type": "string",
+ "required": "no",
+ "description": "Access levels allowed to merge (defaults: 40, maintainer access level)"
+ },
+ {
+ "attribute": "unprotect_access_level",
+ "type": "string",
+ "required": "no",
+ "description": "Access levels allowed to unprotect (defaults: 40, maintainer access level)"
+ },
+ {
+ "attribute": "allowed_to_push",
+ "type": "array",
+ "required": "no",
+ "description": "Array of access levels allowed to push, with each described by a hash"
+ },
+ {
+ "attribute": "allowed_to_merge",
+ "type": "array",
+ "required": "no",
+ "description": "Array of access levels allowed to merge, with each described by a hash"
+ },
+ {
+ "attribute": "allowed_to_unprotect",
+ "type": "array",
+ "required": "no",
+ "description": "Array of access levels allowed to unprotect, with each described by a hash"
+ }
+ ]
+ },
+ {
+ "title": "unprotect-repository-branches",
+ "description": "Unprotects the given protected branch or wildcard protected branch.",
+ "api": [
+ "DELETE /projects/:id/protected_branches/:name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the branch"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/system_hooks.html",
+ "urlPart": "system_hooks.html",
+ "allEntries": [
+ {
+ "title": "system-hooks-api",
+ "description": "All methods require administrator authorization.",
+ "api": [
+ "GET /hooks"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-system-hooks",
+ "description": "Get a list of all system hooks.",
+ "api": [
+ "GET /hooks"
+ ],
+ "params": []
+ },
+ {
+ "title": "add-new-system-hook",
+ "description": "Add a new system hook.",
+ "api": [
+ "POST /hooks"
+ ],
+ "params": [
+ {
+ "attribute": "url",
+ "type": "string",
+ "required": "yes",
+ "description": "The hook URL"
+ },
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "no",
+ "description": "Secret token to validate received payloads; this will not be returned in the response"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "When true, the hook will fire on push events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "When true, the hook will fire on new tags being pushed"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on merge requests events"
+ },
+ {
+ "attribute": "repository_update_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on repository update events"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "no",
+ "description": "Do SSL verification when triggering the hook"
+ }
+ ]
+ },
+ {
+ "title": "test-system-hook",
+ "description": "Example request:",
+ "api": [
+ "GET /hooks/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the hook"
+ }
+ ]
+ },
+ {
+ "title": "delete-system-hook",
+ "description": "Deletes a system hook.",
+ "api": [
+ "DELETE /hooks/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the hook"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/sidekiq_metrics.html",
+ "urlPart": "sidekiq_metrics.html",
+ "allEntries": [
+ {
+ "title": "sidekiq-metrics-api",
+ "description": "This API endpoint allows you to retrieve some information about the current state\nof Sidekiq, its jobs, queues, and processes.",
+ "api": [
+ "GET /sidekiq/queue_metrics"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-the-current-queue-metrics",
+ "description": "List information about all the registered queues, their backlog and their\nlatency.",
+ "api": [
+ "GET /sidekiq/queue_metrics"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-the-current-process-metrics",
+ "description": "List information about all the Sidekiq workers registered to process your queues.",
+ "api": [
+ "GET /sidekiq/process_metrics"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-the-current-job-statistics",
+ "description": "List information about the jobs that Sidekiq has performed.",
+ "api": [
+ "GET /sidekiq/job_stats"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-a-compound-response-of-all-the-previously-mentioned-metrics",
+ "description": "List all the currently available information about Sidekiq.",
+ "api": [
+ "GET /sidekiq/compound_metrics"
+ ],
+ "params": []
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/repositories.html",
+ "urlPart": "repositories.html",
+ "allEntries": [
+ {
+ "title": "repositories-api",
+ "description": "Get a list of repository files and directories in a project. This endpoint can\nbe accessed without authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/tree"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "list-repository-tree",
+ "description": "Get a list of repository files and directories in a project. This endpoint can\nbe accessed without authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/tree"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-a-blob-from-repository",
+ "description": "Allows you to receive information about blob in repository like size and\ncontent. Note that blob content is Base64 encoded. This endpoint can be accessed\nwithout authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/blobs/:sha"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "raw-blob-content",
+ "description": "Get the raw file contents for a blob by blob SHA. This endpoint can be accessed\nwithout authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/blobs/:sha/raw"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-file-archive",
+ "description": "Get an archive of the repository. This endpoint can be accessed without\nauthentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/archive"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "compare-branches-tags-or-commits",
+ "description": "This endpoint can be accessed without authentication if the repository is\npublicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/compare"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "contributors",
+ "description": "Get repository contributors list. This endpoint can be accessed without\nauthentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/contributors"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "merge-base",
+ "description": "Get the common ancestor for 2 refs (commit SHAs, branch names or tags).",
+ "api": [
+ "GET /projects/:id/repository/merge_base"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "refs",
+ "type": "array",
+ "required": "yes",
+ "description": "The refs to find the common ancestor of, multiple refs can be passed"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/project_templates.html",
+ "urlPart": "project_templates.html",
+ "allEntries": [
+ {
+ "title": "project-templates-api",
+ "description": "This API is a project-specific version of these endpoints:",
+ "api": [
+ "GET /projects/:id/templates/:type"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "get-all-templates-of-a-particular-type",
+ "description": "Example response (licenses):",
+ "api": [
+ "GET /projects/:id/templates/:type"
+ ],
+ "params": [
+ {
+ "attribute": "id ",
+ "type": "integer / string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "yes",
+ "description": "The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template"
+ }
+ ]
+ },
+ {
+ "title": "get-one-template-of-a-particular-type",
+ "description": "Example response (Dockerfile):",
+ "api": [
+ "GET /projects/:id/templates/:type/:key"
+ ],
+ "params": [
+ {
+ "attribute": "id ",
+ "type": "integer / string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "yes",
+ "description": "The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template"
+ },
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the template, as obtained from the collection endpoint"
+ },
+ {
+ "attribute": "project",
+ "type": "string",
+ "required": "no",
+ "description": "The project name to use when expanding placeholders in the template. Only affects licenses"
+ },
+ {
+ "attribute": "fullname",
+ "type": "string",
+ "required": "no",
+ "description": "The full name of the copyright holder to use when expanding placeholders in the template. Only affects licenses"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/lint.html",
+ "urlPart": "lint.html",
+ "allEntries": [
+ {
+ "title": "validate-the-gitlab-ciyml-api",
+ "description": "Checks if your .gitlab-ci.yml file is valid.",
+ "api": [
+ "POST /lint"
+ ],
+ "params": [
+ {
+ "attribute": "content",
+ "type": "string",
+ "required": "yes",
+ "description": "the .gitlab-ci.yaml content"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/search.html",
+ "urlPart": "search.html",
+ "allEntries": [
+ {
+ "title": "global-search-api",
+ "description": "Search globally across the GitLab instance.",
+ "api": [
+ "GET /search"
+ ],
+ "params": [
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "yes",
+ "description": "The scope to search in"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "yes",
+ "description": "The search query"
+ }
+ ]
+ },
+ {
+ "title": "group-search-api",
+ "description": "Search within the specified group.",
+ "api": [
+ "GET /groups/:id/search"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "yes",
+ "description": "The scope to search in"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "yes",
+ "description": "The search query"
+ }
+ ]
+ },
+ {
+ "title": "project-search-api",
+ "description": "Search within the specified project.",
+ "api": [
+ "GET /projects/:id/search"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "yes",
+ "description": "The scope to search in"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "yes",
+ "description": "The search query"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/settings.html",
+ "urlPart": "settings.html",
+ "allEntries": [
+ {
+ "title": "get-current-application-settings",
+ "description": "List the current application settings\nof the GitLab instance.",
+ "api": [
+ "GET /application/settings"
+ ],
+ "params": []
+ },
+ {
+ "title": "change-application-settings",
+ "description": "Use an API call to modify GitLab instance\napplication settings.",
+ "api": [
+ "PUT /application/settings"
+ ],
+ "params": [
+ {
+ "attribute": "admin_notification_email",
+ "type": "string",
+ "required": "no",
+ "description": "Abuse reports will be sent to this address if it is set. Abuse reports are always available in the admin area."
+ },
+ {
+ "attribute": "after_sign_out_path",
+ "type": "string",
+ "required": "no",
+ "description": "Where to redirect users after logout."
+ },
+ {
+ "attribute": "after_sign_up_text",
+ "type": "string",
+ "required": "no",
+ "description": "Text shown to the user after signing up"
+ },
+ {
+ "attribute": "akismet_api_key",
+ "type": "string",
+ "required": "required by: akismet_enabled\n",
+ "description": "API key for akismet spam protection."
+ },
+ {
+ "attribute": "akismet_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: akismet_api_key) Enable or disable akismet spam protection."
+ },
+ {
+ "attribute": "allow_group_owners_to_manage_ldap",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Set to true to allow group owners to manage LDAP"
+ },
+ {
+ "attribute": "allow_local_requests_from_hooks_and_services",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow requests to the local network from hooks and services."
+ },
+ {
+ "attribute": "authorized_keys_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "By default, we write to the authorized_keys file to support Git over SSH without additional configuration. GitLab can be optimized to authenticate SSH keys via the database file. Only disable this if you have configured your OpenSSH server to use the AuthorizedKeysCommand."
+ },
+ {
+ "attribute": "auto_devops_domain",
+ "type": "string",
+ "required": "no",
+ "description": "Specify a domain to use by default for every project’s Auto Review Apps and Auto Deploy stages."
+ },
+ {
+ "attribute": "auto_devops_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable Auto DevOps for projects by default. It will automatically build, test, and deploy applications based on a predefined CI/CD configuration."
+ },
+ {
+ "attribute": "check_namespace_plan",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Enabling this will make only licensed EE features available to projects if the project namespace’s plan includes the feature or if the project is public."
+ },
+ {
+ "attribute": "clientside_sentry_dsn",
+ "type": "string",
+ "required": "required by: clientside_sentry_enabled\n",
+ "description": "Clientside Sentry Data Source Name."
+ },
+ {
+ "attribute": "clientside_sentry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: clientside_sentry_dsn) Enable Sentry error reporting for the client side."
+ },
+ {
+ "attribute": "container_registry_token_expire_delay",
+ "type": "integer",
+ "required": "no",
+ "description": "Container Registry token duration in minutes."
+ },
+ {
+ "attribute": "default_artifacts_expire_in",
+ "type": "string",
+ "required": "no",
+ "description": "Set the default expiration time for each job’s artifacts."
+ },
+ {
+ "attribute": "default_branch_protection",
+ "type": "integer",
+ "required": "no",
+ "description": "Determine if developers can push to master. Can take: 0 (not protected, both developers and maintainers can push new commits, force push, or delete the branch), 1 (partially protected, developers and maintainers can push new commits, but cannot force push or delete the branch) or 2 (fully protected, developers cannot push new commits, but maintainers can; no-one can force push or delete the branch) as a parameter. Default is 2."
+ },
+ {
+ "attribute": "default_group_visibility",
+ "type": "string",
+ "required": "no",
+ "description": "What visibility level new groups receive. Can take private, internal and public as a parameter. Default is private."
+ },
+ {
+ "attribute": "default_project_visibility",
+ "type": "string",
+ "required": "no",
+ "description": "What visibility level new projects receive. Can take private, internal and public as a parameter. Default is private."
+ },
+ {
+ "attribute": "default_projects_limit",
+ "type": "integer",
+ "required": "no",
+ "description": "Project limit per user. Default is 100000."
+ },
+ {
+ "attribute": "default_snippet_visibility",
+ "type": "string",
+ "required": "no",
+ "description": "What visibility level new snippets receive. Can take private, internal and public as a parameter. Default is private."
+ },
+ {
+ "attribute": "disabled_oauth_sign_in_sources",
+ "type": "array of strings",
+ "required": "no",
+ "description": "Disabled OAuth sign-in sources."
+ },
+ {
+ "attribute": "domain_blacklist",
+ "type": "array of strings",
+ "required": "required by: domain_blacklist_enabled\n",
+ "description": "Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com."
+ },
+ {
+ "attribute": "domain_blacklist_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: domain_blacklist) Allows blocking sign-ups from emails from specific domains."
+ },
+ {
+ "attribute": "domain_whitelist",
+ "type": "array of strings",
+ "required": "no",
+ "description": "Force people to use only corporate emails for sign-up. Default is null, meaning there is no restriction."
+ },
+ {
+ "attribute": "dsa_key_restriction",
+ "type": "integer",
+ "required": "no",
+ "description": "The minimum allowed bit length of an uploaded DSA key. Default is 0 (no restriction). -1 disables DSA keys."
+ },
+ {
+ "attribute": "ecdsa_key_restriction",
+ "type": "integer",
+ "required": "no",
+ "description": "The minimum allowed curve size (in bits) of an uploaded ECDSA key. Default is 0 (no restriction). -1 disables ECDSA keys."
+ },
+ {
+ "attribute": "ed25519_key_restriction",
+ "type": "integer",
+ "required": "no",
+ "description": "The minimum allowed curve size (in bits) of an uploaded ED25519 key. Default is 0 (no restriction). -1 disables ED25519 keys."
+ },
+ {
+ "attribute": "elasticsearch_aws",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Enable the use of AWS hosted Elasticsearch"
+ },
+ {
+ "attribute": "elasticsearch_aws_access_key",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) AWS IAM access key"
+ },
+ {
+ "attribute": "elasticsearch_aws_region",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) The AWS region the elasticsearch domain is configured"
+ },
+ {
+ "attribute": "elasticsearch_aws_secret_access_key",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) AWS IAM secret access key"
+ },
+ {
+ "attribute": "elasticsearch_experimental_indexer",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Use the experimental elasticsearch indexer. More info: https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer\n"
+ },
+ {
+ "attribute": "elasticsearch_indexing",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Enable Elasticsearch indexing"
+ },
+ {
+ "attribute": "elasticsearch_search",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) Enable Elasticsearch search"
+ },
+ {
+ "attribute": "elasticsearch_url",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) The url to use for connecting to Elasticsearch. Use a comma-separated list to support cluster (e.g., “http://localhost:9200, http://localhost:9201\"). If your Elasticsearch instance is password protected, pass the username:password in the URL (e.g., http://
:@:9200/)."
+ },
+ {
+ "attribute": "email_additional_text",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) Additional text added to the bottom of every email for legal/auditing/compliance reasons"
+ },
+ {
+ "attribute": "email_author_in_body",
+ "type": "boolean",
+ "required": "no",
+ "description": "Some email servers do not support overriding the email sender name. Enable this option to include the name of the author of the issue, merge request or comment in the email body instead."
+ },
+ {
+ "attribute": "enabled_git_access_protocol",
+ "type": "string",
+ "required": "no",
+ "description": "Enabled protocols for Git access. Allowed values are: ssh, http, and nil to allow both protocols."
+ },
+ {
+ "attribute": "enforce_terms",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: terms) Enforce application ToS to all users."
+ },
+ {
+ "attribute": "external_auth_client_cert",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) (If enabled, requires: external_auth_client_key) The certificate to use to authenticate with the external authorization service"
+ },
+ {
+ "attribute": "external_auth_client_key",
+ "type": "string",
+ "required": "required by: external_auth_client_cert\n",
+ "description": "\n(Premium) Private key for the certificate when authentication is required for the external authorization service, this is encrypted when stored"
+ },
+ {
+ "attribute": "external_auth_client_key_pass",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) Passphrase to use for the private key when authenticating with the external service this is encrypted when stored"
+ },
+ {
+ "attribute": "external_authorization_service_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) (If enabled, requires: external_authorization_service_default_label, external_authorization_service_timeout and external_authorization_service_url ) Enable using an external authorization service for accessing projects"
+ },
+ {
+ "attribute": "external_authorization_service_default_label",
+ "type": "string",
+ "required": "required by: external_authorization_service_enabled\n",
+ "description": "\n(Premium) The default classification label to use when requesting authorization and no classification label has been specified on the project"
+ },
+ {
+ "attribute": "external_authorization_service_timeout",
+ "type": "float",
+ "required": "required by: external_authorization_service_enabled\n",
+ "description": "\n(Premium) The timeout after which an authorization request is aborted, in seconds. When a request times out, access is denied to the user. (min: 0.001, max: 10, step: 0.001)"
+ },
+ {
+ "attribute": "external_authorization_service_url",
+ "type": "string",
+ "required": "required by: external_authorization_service_enabled\n",
+ "description": "\n(Premium) URL to which authorization requests will be directed"
+ },
+ {
+ "attribute": "file_template_project_id",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) The ID of a project to load custom file templates from"
+ },
+ {
+ "attribute": "geo_status_timeout",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) The amount of seconds after which a request to get a secondary node status will time out."
+ },
+ {
+ "attribute": "gitaly_timeout_default",
+ "type": "integer",
+ "required": "no",
+ "description": "Default Gitaly timeout, in seconds. This timeout is not enforced for git fetch/push operations or Sidekiq jobs. Set to 0 to disable timeouts."
+ },
+ {
+ "attribute": "gitaly_timeout_fast",
+ "type": "integer",
+ "required": "no",
+ "description": "Gitaly fast operation timeout, in seconds. Some Gitaly operations are expected to be fast. If they exceed this threshold, there may be a problem with a storage shard and ‘failing fast’ can help maintain the stability of the GitLab instance. Set to 0 to disable timeouts."
+ },
+ {
+ "attribute": "gitaly_timeout_medium",
+ "type": "integer",
+ "required": "no",
+ "description": "Medium Gitaly timeout, in seconds. This should be a value between the Fast and the Default timeout. Set to 0 to disable timeouts."
+ },
+ {
+ "attribute": "gravatar_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable Gravatar."
+ },
+ {
+ "attribute": "hashed_storage_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (EXPERIMENTAL)"
+ },
+ {
+ "attribute": "help_page_hide_commercial_content",
+ "type": "boolean",
+ "required": "no",
+ "description": "Hide marketing-related entries from help."
+ },
+ {
+ "attribute": "help_page_support_url",
+ "type": "string",
+ "required": "no",
+ "description": "Alternate support URL for help page."
+ },
+ {
+ "attribute": "help_page_text",
+ "type": "string",
+ "required": "no",
+ "description": "Custom text displayed on the help page."
+ },
+ {
+ "attribute": "help_text",
+ "type": "string",
+ "required": "no",
+ "description": "\n(Premium) GitLab server administrator information"
+ },
+ {
+ "attribute": "hide_third_party_offers",
+ "type": "boolean",
+ "required": "no",
+ "description": "Do not display offers from third parties within GitLab."
+ },
+ {
+ "attribute": "home_page_url",
+ "type": "string",
+ "required": "no",
+ "description": "Redirect to this URL when not logged in."
+ },
+ {
+ "attribute": "housekeeping_bitmaps_enabled",
+ "type": "boolean",
+ "required": "required by: housekeeping_enabled\n",
+ "description": "Enable Git pack file bitmap creation."
+ },
+ {
+ "attribute": "housekeeping_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: housekeeping_bitmaps_enabled, housekeeping_full_repack_period, housekeeping_gc_period, and housekeeping_incremental_repack_period) Enable or disable git housekeeping."
+ },
+ {
+ "attribute": "housekeeping_full_repack_period",
+ "type": "integer",
+ "required": "required by: housekeeping_enabled\n",
+ "description": "Number of Git pushes after which an incremental git repack is run."
+ },
+ {
+ "attribute": "housekeeping_gc_period",
+ "type": "integer",
+ "required": "required by: housekeeping_enabled\n",
+ "description": "Number of Git pushes after which git gc is run."
+ },
+ {
+ "attribute": "housekeeping_incremental_repack_period",
+ "type": "integer",
+ "required": "required by: housekeeping_enabled\n",
+ "description": "Number of Git pushes after which an incremental git repack is run."
+ },
+ {
+ "attribute": "html_emails_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable HTML emails."
+ },
+ {
+ "attribute": "instance_statistics_visibility_private",
+ "type": "boolean",
+ "required": "no",
+ "description": "When set to true Instance statistics will only be available to admins."
+ },
+ {
+ "attribute": "import_sources",
+ "type": "array of strings",
+ "required": "no",
+ "description": "Sources to allow project import from, possible values: github, bitbucket, gitlab, google_code, fogbugz, git, and gitlab_project."
+ },
+ {
+ "attribute": "max_artifacts_size",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum artifacts size in MB"
+ },
+ {
+ "attribute": "max_attachment_size",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit attachment size in MB"
+ },
+ {
+ "attribute": "max_pages_size",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum size of pages repositories in MB"
+ },
+ {
+ "attribute": "metrics_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: metrics_host, metrics_method_call_threshold, metrics_packet_size, metrics_pool_size, metrics_port, metrics_sample_interval and metrics_timeout) Enable influxDB metrics."
+ },
+ {
+ "attribute": "metrics_host",
+ "type": "string",
+ "required": "required by: metrics_enabled\n",
+ "description": "InfluxDB host."
+ },
+ {
+ "attribute": "metrics_method_call_threshold",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "A method call is only tracked when it takes longer than the given amount of milliseconds."
+ },
+ {
+ "attribute": "metrics_packet_size",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "The amount of datapoints to send in a single UDP packet."
+ },
+ {
+ "attribute": "metrics_pool_size",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "The amount of InfluxDB connections to keep open."
+ },
+ {
+ "attribute": "metrics_port",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "The UDP port to use for connecting to InfluxDB."
+ },
+ {
+ "attribute": "metrics_sample_interval",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "The sampling interval in seconds."
+ },
+ {
+ "attribute": "metrics_timeout",
+ "type": "integer",
+ "required": "required by: metrics_enabled\n",
+ "description": "The amount of seconds after which InfluxDB will time out."
+ },
+ {
+ "attribute": "mirror_available",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow mirrors to be set up for projects. If disabled, only admins will be able to set up mirrors in projects."
+ },
+ {
+ "attribute": "mirror_capacity_threshold",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) Minimum capacity to be available before scheduling more mirrors preemptively"
+ },
+ {
+ "attribute": "mirror_max_capacity",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) Maximum number of mirrors that can be synchronizing at the same time."
+ },
+ {
+ "attribute": "mirror_max_delay",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize."
+ },
+ {
+ "attribute": "pages_domain_verification_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Require users to prove ownership of custom domains. Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled."
+ },
+ {
+ "attribute": "password_authentication_enabled_for_git",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable authentication for Git over HTTP(S) via a GitLab account password. Default is true."
+ },
+ {
+ "attribute": "password_authentication_enabled_for_web",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable authentication for the web interface via a GitLab account password. Default is true."
+ },
+ {
+ "attribute": "performance_bar_allowed_group_id",
+ "type": "string",
+ "required": "no",
+ "description": "(Deprecated: Use performance_bar_allowed_group_path instead) Path of the group that is allowed to toggle the performance bar."
+ },
+ {
+ "attribute": "performance_bar_allowed_group_path",
+ "type": "string",
+ "required": "no",
+ "description": "Path of the group that is allowed to toggle the performance bar."
+ },
+ {
+ "attribute": "performance_bar_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(Deprecated: Pass performance_bar_allowed_group_path: nil instead) Allow enabling the performance bar."
+ },
+ {
+ "attribute": "plantuml_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: plantuml_url) Enable PlantUML integration. Default is false."
+ },
+ {
+ "attribute": "plantuml_url",
+ "type": "string",
+ "required": "required by: plantuml_enabled\n",
+ "description": "The PlantUML instance URL for integration."
+ },
+ {
+ "attribute": "polling_interval_multiplier",
+ "type": "decimal",
+ "required": "no",
+ "description": "Interval multiplier used by endpoints that perform polling. Set to 0 to disable polling."
+ },
+ {
+ "attribute": "project_export_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable project export."
+ },
+ {
+ "attribute": "prometheus_metrics_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable prometheus metrics."
+ },
+ {
+ "attribute": "pseudonymizer_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) When enabled, GitLab will run a background job that will produce pseudonymized CSVs of the GitLab database that will be uploaded to your configured object storage directory."
+ },
+ {
+ "attribute": "recaptcha_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: recaptcha_private_key and recaptcha_site_key) Enable recaptcha."
+ },
+ {
+ "attribute": "recaptcha_private_key",
+ "type": "string",
+ "required": "required by: recaptcha_enabled\n",
+ "description": "Private key for recaptcha."
+ },
+ {
+ "attribute": "recaptcha_site_key",
+ "type": "string",
+ "required": "required by: recaptcha_enabled\n",
+ "description": "Site key for recaptcha."
+ },
+ {
+ "attribute": "repository_checks_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "GitLab will periodically run git fsck in all project and wiki repositories to look for silent disk corruption issues."
+ },
+ {
+ "attribute": "repository_size_limit",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) Size limit per repository (MB)"
+ },
+ {
+ "attribute": "repository_storages",
+ "type": "array of strings",
+ "required": "no",
+ "description": "A list of names of enabled storage paths, taken from gitlab.yml. New projects will be created in one of these stores, chosen at random."
+ },
+ {
+ "attribute": "require_two_factor_authentication",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: two_factor_grace_period) Require all users to set up Two-factor authentication."
+ },
+ {
+ "attribute": "restricted_visibility_levels",
+ "type": "array of strings",
+ "required": "no",
+ "description": "Selected levels cannot be used by non-admin users for groups, projects or snippets. Can take private, internal and public as a parameter. Default is null which means there is no restriction."
+ },
+ {
+ "attribute": "rsa_key_restriction",
+ "type": "integer",
+ "required": "no",
+ "description": "The minimum allowed bit length of an uploaded RSA key. Default is 0 (no restriction). -1 disables RSA keys."
+ },
+ {
+ "attribute": "send_user_confirmation_email",
+ "type": "boolean",
+ "required": "no",
+ "description": "Send confirmation email on sign-up."
+ },
+ {
+ "attribute": "sentry_dsn",
+ "type": "string",
+ "required": "required by: sentry_enabled\n",
+ "description": "Sentry Data Source Name."
+ },
+ {
+ "attribute": "sentry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: sentry_dsn) Sentry is an error reporting and logging tool which is currently not shipped with GitLab, available at https://getsentry.com."
+ },
+ {
+ "attribute": "session_expire_delay",
+ "type": "integer",
+ "required": "no",
+ "description": "Session duration in minutes. GitLab restart is required to apply changes"
+ },
+ {
+ "attribute": "shared_runners_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: shared_runners_text and shared_runners_minutes) Enable shared runners for new projects."
+ },
+ {
+ "attribute": "shared_runners_minutes",
+ "type": "integer",
+ "required": "required by: shared_runners_enabled\n",
+ "description": "\n(Premium) Set the maximum number of pipeline minutes that a group can use on shared Runners per month."
+ },
+ {
+ "attribute": "shared_runners_text",
+ "type": "string",
+ "required": "required by: shared_runners_enabled\n",
+ "description": "Shared runners text."
+ },
+ {
+ "attribute": "sign_in_text",
+ "type": "string",
+ "required": "no",
+ "description": "Text on the login page."
+ },
+ {
+ "attribute": "signin_enabled",
+ "type": "string",
+ "required": "no",
+ "description": "(Deprecated: Use password_authentication_enabled_for_web instead) Flag indicating if password authentication is enabled for the web interface."
+ },
+ {
+ "attribute": "signup_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable registration. Default is true."
+ },
+ {
+ "attribute": "slack_app_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "\n(Premium) (If enabled, requires: slack_app_id, slack_app_secret and slack_app_secret) Enable Slack app."
+ },
+ {
+ "attribute": "slack_app_id",
+ "type": "string",
+ "required": "required by: slack_app_enabled\n",
+ "description": "\n(Premium) The app id of the Slack-app."
+ },
+ {
+ "attribute": "slack_app_secret",
+ "type": "string",
+ "required": "required by: slack_app_enabled\n",
+ "description": "\n(Premium) The app secret of the Slack-app."
+ },
+ {
+ "attribute": "slack_app_verification_token",
+ "type": "string",
+ "required": "required by: slack_app_enabled\n",
+ "description": "\n(Premium) The verification token of the Slack-app."
+ },
+ {
+ "attribute": "terminal_max_session_time",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum time for web terminal websocket connection (in seconds). Set to 0 for unlimited time."
+ },
+ {
+ "attribute": "terms",
+ "type": "text",
+ "required": "required by: enforce_terms\n",
+ "description": "(Required by: enforce_terms) Markdown content for the ToS."
+ },
+ {
+ "attribute": "throttle_authenticated_api_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: throttle_authenticated_api_period_in_seconds and throttle_authenticated_api_requests_per_period) Enable authenticated API request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots)."
+ },
+ {
+ "attribute": "throttle_authenticated_api_period_in_seconds",
+ "type": "integer",
+ "required": "required by: throttle_authenticated_api_enabled\n",
+ "description": "Rate limit period in seconds."
+ },
+ {
+ "attribute": "throttle_authenticated_api_requests_per_period",
+ "type": "integer",
+ "required": "required by: throttle_authenticated_api_enabled\n",
+ "description": "Max requests per period per user."
+ },
+ {
+ "attribute": "throttle_authenticated_web_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: throttle_authenticated_web_period_in_seconds and throttle_authenticated_web_requests_per_period) Enable authenticated web request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots)."
+ },
+ {
+ "attribute": "throttle_authenticated_web_period_in_seconds",
+ "type": "integer",
+ "required": "required by: throttle_authenticated_web_enabled\n",
+ "description": "Rate limit period in seconds."
+ },
+ {
+ "attribute": "throttle_authenticated_web_requests_per_period",
+ "type": "integer",
+ "required": "required by: throttle_authenticated_web_enabled\n",
+ "description": "Max requests per period per user."
+ },
+ {
+ "attribute": "throttle_unauthenticated_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: throttle_unauthenticated_period_in_seconds and throttle_unauthenticated_requests_per_period) Enable unauthenticated request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots)."
+ },
+ {
+ "attribute": "throttle_unauthenticated_period_in_seconds",
+ "type": "integer",
+ "required": "required by: throttle_unauthenticated_enabled\n",
+ "description": "Rate limit period in seconds."
+ },
+ {
+ "attribute": "throttle_unauthenticated_requests_per_period",
+ "type": "integer",
+ "required": "required by: throttle_unauthenticated_enabled\n",
+ "description": "Max requests per period per IP."
+ },
+ {
+ "attribute": "two_factor_grace_period",
+ "type": "integer",
+ "required": "required by: require_two_factor_authentication\n",
+ "description": "Amount of time (in hours) that users are allowed to skip forced configuration of two-factor authentication."
+ },
+ {
+ "attribute": "unique_ips_limit_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "(If enabled, requires: unique_ips_limit_per_user and unique_ips_limit_time_window) Limit sign in from multiple ips."
+ },
+ {
+ "attribute": "unique_ips_limit_per_user",
+ "type": "integer",
+ "required": "required by: unique_ips_limit_enabled\n",
+ "description": "Maximum number of ips per user."
+ },
+ {
+ "attribute": "unique_ips_limit_time_window",
+ "type": "integer",
+ "required": "required by: unique_ips_limit_enabled\n",
+ "description": "How many seconds an IP will be counted towards the limit."
+ },
+ {
+ "attribute": "usage_ping_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Every week GitLab will report license usage back to GitLab, Inc."
+ },
+ {
+ "attribute": "user_default_external",
+ "type": "boolean",
+ "required": "no",
+ "description": "Newly registered users will be external by default."
+ },
+ {
+ "attribute": "user_oauth_applications",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to register any application to use GitLab as an OAuth provider."
+ },
+ {
+ "attribute": "user_show_add_ssh_key_message",
+ "type": "boolean",
+ "required": "no",
+ "description": "When set to false disable the “You won’t be able to pull or push project code via SSH” warning shown to users with no uploaded SSH key."
+ },
+ {
+ "attribute": "version_check_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Let GitLab inform you when an update is available."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/tags.html",
+ "urlPart": "tags.html",
+ "allEntries": [
+ {
+ "title": "tags-api",
+ "description": "Get a list of repository tags from a project, sorted by name in reverse\nalphabetical order. This endpoint can be accessed without authentication if the\nrepository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return tags ordered by name or updated fields. Default is updated\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return tags sorted in asc or desc order. Default is desc\n"
+ }
+ ]
+ },
+ {
+ "title": "list-project-repository-tags",
+ "description": "Get a list of repository tags from a project, sorted by name in reverse\nalphabetical order. This endpoint can be accessed without authentication if the\nrepository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return tags ordered by name or updated fields. Default is updated\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return tags sorted in asc or desc order. Default is desc\n"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-repository-tag",
+ "description": "Get a specific repository tag determined by its name. This endpoint can be\naccessed without authentication if the repository is publicly accessible.",
+ "api": [
+ "GET /projects/:id/repository/tags/:tag_name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "tag_name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the tag"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-tag",
+ "description": "Creates a new tag in the repository that points to the supplied ref.",
+ "api": [
+ "POST /projects/:id/repository/tags"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-tag",
+ "description": "Deletes a tag of a repository with given name.",
+ "api": [
+ "DELETE /projects/:id/repository/tags/:tag_name"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-release",
+ "description": "Add release notes to the existing git tag. If there\nalready exists a release for the given tag, status code 409 is returned.",
+ "api": [
+ "POST /projects/:id/repository/tags/:tag_name/release"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "update-a-release",
+ "description": "Updates the release notes of a given release.",
+ "api": [
+ "PUT /projects/:id/repository/tags/:tag_name/release"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/wikis.html",
+ "urlPart": "wikis.html",
+ "allEntries": [
+ {
+ "title": "wikis-api",
+ "description": "Available only in APIv4.",
+ "api": [
+ "GET /projects/:id/wikis"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "with_content",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include pages’ content"
+ }
+ ]
+ },
+ {
+ "title": "list-wiki-pages",
+ "description": "Get all wiki pages for a given project.",
+ "api": [
+ "GET /projects/:id/wikis"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "with_content",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include pages’ content"
+ }
+ ]
+ },
+ {
+ "title": "get-a-wiki-page",
+ "description": "Get a wiki page for a given project.",
+ "api": [
+ "GET /projects/:id/wikis/:slug"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "slug",
+ "type": "string",
+ "required": "yes",
+ "description": "The slug (a unique string) of the wiki page"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-wiki-page",
+ "description": "Creates a new wiki page for the given repository with the given title, slug, and content.",
+ "api": [
+ "POST /projects/:id/wikis"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "content",
+ "type": "string",
+ "required": "yes",
+ "description": "The content of the wiki page"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes",
+ "description": "The title of the wiki page"
+ },
+ {
+ "attribute": "format",
+ "type": "string",
+ "required": "no",
+ "description": "The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc\n"
+ }
+ ]
+ },
+ {
+ "title": "edit-an-existing-wiki-page",
+ "description": "Updates an existing wiki page. At least one parameter is required to update the wiki page.",
+ "api": [
+ "PUT /projects/:id/wikis/:slug"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "content",
+ "type": "string",
+ "required": "yes if title is not provided",
+ "description": "The content of the wiki page"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes if content is not provided",
+ "description": "The title of the wiki page"
+ },
+ {
+ "attribute": "format",
+ "type": "string",
+ "required": "no",
+ "description": "The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc\n"
+ },
+ {
+ "attribute": "slug",
+ "type": "string",
+ "required": "yes",
+ "description": "The slug (a unique string) of the wiki page"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-wiki-page",
+ "description": "Deletes a wiki page with a given slug.",
+ "api": [
+ "DELETE /projects/:id/wikis/:slug"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "slug",
+ "type": "string",
+ "required": "yes",
+ "description": "The slug (a unique string) of the wiki page"
+ }
+ ]
+ },
+ {
+ "title": "upload-an-attachment-to-the-wiki-repository",
+ "description": "Uploads a file to the attachment folder inside the wiki’s repository. The\n attachment folder is the uploads folder.",
+ "api": [
+ "POST /projects/:id/wikis/attachments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "file",
+ "type": "string",
+ "required": "yes",
+ "description": "The attachment to be uploaded"
+ },
+ {
+ "attribute": "branch",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the branch. Defaults to the wiki repository default branch"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/services.html",
+ "urlPart": "services.html",
+ "allEntries": [
+ {
+ "title": "services-api",
+ "description": "Asana - Teamwork without email",
+ "api": [
+ "PUT /projects/:id/services/asana"
+ ],
+ "params": []
+ },
+ {
+ "title": "asana",
+ "description": "Asana - Teamwork without email",
+ "api": [
+ "PUT /projects/:id/services/asana"
+ ],
+ "params": [
+ {
+ "attribute": "api_key",
+ "type": "string",
+ "required": "true",
+ "description": "User API token. User must have access to task, all comments will be attributed to this user."
+ },
+ {
+ "attribute": "restrict_to_branch",
+ "type": "string",
+ "required": "false",
+ "description": "Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches."
+ }
+ ]
+ },
+ {
+ "title": "createedit-asana-service",
+ "description": "Set Asana service for a project.",
+ "api": [
+ "PUT /projects/:id/services/asana"
+ ],
+ "params": [
+ {
+ "attribute": "api_key",
+ "type": "string",
+ "required": "true",
+ "description": "User API token. User must have access to task, all comments will be attributed to this user."
+ },
+ {
+ "attribute": "restrict_to_branch",
+ "type": "string",
+ "required": "false",
+ "description": "Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches."
+ }
+ ]
+ },
+ {
+ "title": "delete-asana-service",
+ "description": "Delete Asana service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/asana"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-asana-service-settings",
+ "description": "Get Asana service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/asana"
+ ],
+ "params": []
+ },
+ {
+ "title": "assembla",
+ "description": "Project Management Software (Source Commits Endpoint)",
+ "api": [
+ "PUT /projects/:id/services/assembla"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "The authentication token"
+ },
+ {
+ "attribute": "subdomain",
+ "type": "string",
+ "required": "false",
+ "description": "The subdomain setting"
+ }
+ ]
+ },
+ {
+ "title": "createedit-assembla-service",
+ "description": "Set Assembla service for a project.",
+ "api": [
+ "PUT /projects/:id/services/assembla"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "The authentication token"
+ },
+ {
+ "attribute": "subdomain",
+ "type": "string",
+ "required": "false",
+ "description": "The subdomain setting"
+ }
+ ]
+ },
+ {
+ "title": "delete-assembla-service",
+ "description": "Delete Assembla service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/assembla"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-assembla-service-settings",
+ "description": "Get Assembla service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/assembla"
+ ],
+ "params": []
+ },
+ {
+ "title": "atlassian-bamboo-ci",
+ "description": "A continuous integration and build server",
+ "api": [
+ "PUT /projects/:id/services/bamboo"
+ ],
+ "params": [
+ {
+ "attribute": "bamboo_url",
+ "type": "string",
+ "required": "true",
+ "description": "Bamboo root URL. For example, https://bamboo.example.com."
+ },
+ {
+ "attribute": "build_key",
+ "type": "string",
+ "required": "true",
+ "description": "Bamboo build plan key like KEY"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "true",
+ "description": "A user with API access, if applicable"
+ },
+ {
+ "attribute": "password",
+ "type": "string",
+ "required": "true",
+ "description": "Password of the user"
+ }
+ ]
+ },
+ {
+ "title": "createedit-atlassian-bamboo-ci-service",
+ "description": "Set Atlassian Bamboo CI service for a project.",
+ "api": [
+ "PUT /projects/:id/services/bamboo"
+ ],
+ "params": [
+ {
+ "attribute": "bamboo_url",
+ "type": "string",
+ "required": "true",
+ "description": "Bamboo root URL. For example, https://bamboo.example.com."
+ },
+ {
+ "attribute": "build_key",
+ "type": "string",
+ "required": "true",
+ "description": "Bamboo build plan key like KEY"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "true",
+ "description": "A user with API access, if applicable"
+ },
+ {
+ "attribute": "password",
+ "type": "string",
+ "required": "true",
+ "description": "Password of the user"
+ }
+ ]
+ },
+ {
+ "title": "delete-atlassian-bamboo-ci-service",
+ "description": "Delete Atlassian Bamboo CI service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/bamboo"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-atlassian-bamboo-ci-service-settings",
+ "description": "Get Atlassian Bamboo CI service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/bamboo"
+ ],
+ "params": []
+ },
+ {
+ "title": "bugzilla",
+ "description": "Bugzilla Issue Tracker",
+ "api": [
+ "PUT /projects/:id/services/bugzilla"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "false",
+ "description": "Title"
+ }
+ ]
+ },
+ {
+ "title": "createedit-bugzilla-service",
+ "description": "Set Bugzilla service for a project.",
+ "api": [
+ "PUT /projects/:id/services/bugzilla"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "false",
+ "description": "Title"
+ }
+ ]
+ },
+ {
+ "title": "delete-bugzilla-service",
+ "description": "Delete Bugzilla service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/bugzilla"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-bugzilla-service-settings",
+ "description": "Get Bugzilla service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/bugzilla"
+ ],
+ "params": []
+ },
+ {
+ "title": "buildkite",
+ "description": "Continuous integration and deployments",
+ "api": [
+ "PUT /projects/:id/services/buildkite"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Buildkite project GitLab token"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "https://buildkite.com/example/project"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable SSL verification"
+ }
+ ]
+ },
+ {
+ "title": "createedit-buildkite-service",
+ "description": "Set Buildkite service for a project.",
+ "api": [
+ "PUT /projects/:id/services/buildkite"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Buildkite project GitLab token"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "https://buildkite.com/example/project"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable SSL verification"
+ }
+ ]
+ },
+ {
+ "title": "delete-buildkite-service",
+ "description": "Delete Buildkite service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/buildkite"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-buildkite-service-settings",
+ "description": "Get Buildkite service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/buildkite"
+ ],
+ "params": []
+ },
+ {
+ "title": "campfire",
+ "description": "Simple web-based real-time group chat",
+ "api": [
+ "PUT /projects/:id/services/campfire"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Campfire token"
+ },
+ {
+ "attribute": "subdomain",
+ "type": "string",
+ "required": "false",
+ "description": "Campfire subdomain"
+ },
+ {
+ "attribute": "room",
+ "type": "string",
+ "required": "false",
+ "description": "Campfire room"
+ }
+ ]
+ },
+ {
+ "title": "createedit-campfire-service",
+ "description": "Set Campfire service for a project.",
+ "api": [
+ "PUT /projects/:id/services/campfire"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Campfire token"
+ },
+ {
+ "attribute": "subdomain",
+ "type": "string",
+ "required": "false",
+ "description": "Campfire subdomain"
+ },
+ {
+ "attribute": "room",
+ "type": "string",
+ "required": "false",
+ "description": "Campfire room"
+ }
+ ]
+ },
+ {
+ "title": "delete-campfire-service",
+ "description": "Delete Campfire service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/campfire"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-campfire-service-settings",
+ "description": "Get Campfire service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/campfire"
+ ],
+ "params": []
+ },
+ {
+ "title": "custom-issue-tracker",
+ "description": "Custom issue tracker",
+ "api": [
+ "PUT /projects/:id/services/custom-issue-tracker"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "false",
+ "description": "Title"
+ }
+ ]
+ },
+ {
+ "title": "createedit-custom-issue-tracker-service",
+ "description": "Set Custom Issue Tracker service for a project.",
+ "api": [
+ "PUT /projects/:id/services/custom-issue-tracker"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "false",
+ "description": "Title"
+ }
+ ]
+ },
+ {
+ "title": "delete-custom-issue-tracker-service",
+ "description": "Delete Custom Issue Tracker service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/custom-issue-tracker"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-custom-issue-tracker-service-settings",
+ "description": "Get Custom Issue Tracker service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/custom-issue-tracker"
+ ],
+ "params": []
+ },
+ {
+ "title": "drone-ci",
+ "description": "Drone is a Continuous Integration platform built on Docker, written in Go",
+ "api": [
+ "PUT /projects/:id/services/drone-ci"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Drone CI project specific token"
+ },
+ {
+ "attribute": "drone_url",
+ "type": "string",
+ "required": "true",
+ "description": "http://drone.example.com"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable SSL verification"
+ }
+ ]
+ },
+ {
+ "title": "createedit-drone-ci-service",
+ "description": "Set Drone CI service for a project.",
+ "api": [
+ "PUT /projects/:id/services/drone-ci"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Drone CI project specific token"
+ },
+ {
+ "attribute": "drone_url",
+ "type": "string",
+ "required": "true",
+ "description": "http://drone.example.com"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable SSL verification"
+ }
+ ]
+ },
+ {
+ "title": "delete-drone-ci-service",
+ "description": "Delete Drone CI service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/drone-ci"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-drone-ci-service-settings",
+ "description": "Get Drone CI service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/drone-ci"
+ ],
+ "params": []
+ },
+ {
+ "title": "emails-on-push",
+ "description": "Email the commits and diff of each push to a list of recipients.",
+ "api": [
+ "PUT /projects/:id/services/emails-on-push"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "true",
+ "description": "Emails separated by whitespace"
+ },
+ {
+ "attribute": "disable_diffs",
+ "type": "boolean",
+ "required": "false",
+ "description": "Disable code diffs"
+ },
+ {
+ "attribute": "send_from_committer_email",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send from committer"
+ }
+ ]
+ },
+ {
+ "title": "createedit-emails-on-push-service",
+ "description": "Set Emails on push service for a project.",
+ "api": [
+ "PUT /projects/:id/services/emails-on-push"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "true",
+ "description": "Emails separated by whitespace"
+ },
+ {
+ "attribute": "disable_diffs",
+ "type": "boolean",
+ "required": "false",
+ "description": "Disable code diffs"
+ },
+ {
+ "attribute": "send_from_committer_email",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send from committer"
+ }
+ ]
+ },
+ {
+ "title": "delete-emails-on-push-service",
+ "description": "Delete Emails on push service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/emails-on-push"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-emails-on-push-service-settings",
+ "description": "Get Emails on push service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/emails-on-push"
+ ],
+ "params": []
+ },
+ {
+ "title": "external-wiki",
+ "description": "Replaces the link to the internal wiki with a link to an external wiki.",
+ "api": [
+ "PUT /projects/:id/services/external-wiki"
+ ],
+ "params": [
+ {
+ "attribute": "external_wiki_url",
+ "type": "string",
+ "required": "true",
+ "description": "The URL of the external Wiki"
+ }
+ ]
+ },
+ {
+ "title": "createedit-external-wiki-service",
+ "description": "Set External Wiki service for a project.",
+ "api": [
+ "PUT /projects/:id/services/external-wiki"
+ ],
+ "params": [
+ {
+ "attribute": "external_wiki_url",
+ "type": "string",
+ "required": "true",
+ "description": "The URL of the external Wiki"
+ }
+ ]
+ },
+ {
+ "title": "delete-external-wiki-service",
+ "description": "Delete External Wiki service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/external-wiki"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-external-wiki-service-settings",
+ "description": "Get External Wiki service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/external-wiki"
+ ],
+ "params": []
+ },
+ {
+ "title": "flowdock",
+ "description": "Flowdock is a collaboration web app for technical teams.",
+ "api": [
+ "PUT /projects/:id/services/flowdock"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Flowdock Git source token"
+ }
+ ]
+ },
+ {
+ "title": "createedit-flowdock-service",
+ "description": "Set Flowdock service for a project.",
+ "api": [
+ "PUT /projects/:id/services/flowdock"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Flowdock Git source token"
+ }
+ ]
+ },
+ {
+ "title": "delete-flowdock-service",
+ "description": "Delete Flowdock service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/flowdock"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-flowdock-service-settings",
+ "description": "Get Flowdock service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/flowdock"
+ ],
+ "params": []
+ },
+ {
+ "title": "hangouts-chat",
+ "description": "Google GSuite team collaboration tool.",
+ "api": [
+ "PUT /projects/:id/services/hangouts_chat"
+ ],
+ "params": []
+ },
+ {
+ "title": "createedit-hangouts-chat-service",
+ "description": "Set Hangouts Chat service for a project.",
+ "api": [
+ "PUT /projects/:id/services/hangouts_chat"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "The Hangouts Chat webhook. For example, https://chat.googleapis.com/v1/spaces...."
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications for broken pipelines"
+ },
+ {
+ "attribute": "notify_only_default_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications only for the default branch"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for push events"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for issue events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for confidential issue events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for merge request events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for note events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for wiki page events"
+ }
+ ]
+ },
+ {
+ "title": "delete-hangouts-chat-service",
+ "description": "Delete Hangouts Chat service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/hangouts_chat"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-hangouts-chat-service-settings",
+ "description": "Get Hangouts Chat service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/hangouts_chat"
+ ],
+ "params": []
+ },
+ {
+ "title": "hipchat",
+ "description": "Private group chat and IM",
+ "api": [
+ "PUT /projects/:id/services/hipchat"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Room token"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "false",
+ "description": "The room color"
+ },
+ {
+ "attribute": "notify",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications"
+ },
+ {
+ "attribute": "room",
+ "type": "string",
+ "required": "false",
+ "description": "Room name or ID"
+ },
+ {
+ "attribute": "api_version",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for default (v2)"
+ },
+ {
+ "attribute": "server",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for default. For example, https://hipchat.example.com."
+ }
+ ]
+ },
+ {
+ "title": "createedit-hipchat-service",
+ "description": "Set HipChat service for a project.",
+ "api": [
+ "PUT /projects/:id/services/hipchat"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "Room token"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "false",
+ "description": "The room color"
+ },
+ {
+ "attribute": "notify",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications"
+ },
+ {
+ "attribute": "room",
+ "type": "string",
+ "required": "false",
+ "description": "Room name or ID"
+ },
+ {
+ "attribute": "api_version",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for default (v2)"
+ },
+ {
+ "attribute": "server",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for default. For example, https://hipchat.example.com."
+ }
+ ]
+ },
+ {
+ "title": "delete-hipchat-service",
+ "description": "Delete HipChat service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/hipchat"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-hipchat-service-settings",
+ "description": "Get HipChat service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/hipchat"
+ ],
+ "params": []
+ },
+ {
+ "title": "irker-irc-gateway",
+ "description": "Send IRC messages, on update, to a list of recipients through an Irker gateway.",
+ "api": [
+ "PUT /projects/:id/services/irker"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "true",
+ "description": "Recipients/channels separated by whitespaces"
+ },
+ {
+ "attribute": "default_irc_uri",
+ "type": "string",
+ "required": "false",
+ "description": "irc://irc.network.net:6697/"
+ },
+ {
+ "attribute": "server_host",
+ "type": "string",
+ "required": "false",
+ "description": "localhost"
+ },
+ {
+ "attribute": "server_port",
+ "type": "integer",
+ "required": "false",
+ "description": "6659"
+ },
+ {
+ "attribute": "colorize_messages",
+ "type": "boolean",
+ "required": "false",
+ "description": "Colorize messages"
+ }
+ ]
+ },
+ {
+ "title": "createedit-irker-irc-gateway-service",
+ "description": "Set Irker (IRC gateway) service for a project.",
+ "api": [
+ "PUT /projects/:id/services/irker"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "true",
+ "description": "Recipients/channels separated by whitespaces"
+ },
+ {
+ "attribute": "default_irc_uri",
+ "type": "string",
+ "required": "false",
+ "description": "irc://irc.network.net:6697/"
+ },
+ {
+ "attribute": "server_host",
+ "type": "string",
+ "required": "false",
+ "description": "localhost"
+ },
+ {
+ "attribute": "server_port",
+ "type": "integer",
+ "required": "false",
+ "description": "6659"
+ },
+ {
+ "attribute": "colorize_messages",
+ "type": "boolean",
+ "required": "false",
+ "description": "Colorize messages"
+ }
+ ]
+ },
+ {
+ "title": "delete-irker-irc-gateway-service",
+ "description": "Delete Irker (IRC gateway) service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/irker"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-irker-irc-gateway-service-settings",
+ "description": "Get Irker (IRC gateway) service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/irker"
+ ],
+ "params": []
+ },
+ {
+ "title": "jira",
+ "description": "JIRA issue tracker.",
+ "api": [
+ "GET /projects/:id/services/jira"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-jira-service-settings",
+ "description": "Get JIRA service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/jira"
+ ],
+ "params": []
+ },
+ {
+ "title": "createedit-jira-service",
+ "description": "Set JIRA service for a project.",
+ "api": [
+ "PUT /projects/:id/services/jira"
+ ],
+ "params": [
+ {
+ "attribute": "url",
+ "type": "string",
+ "required": "yes",
+ "description": "The URL to the JIRA project which is being linked to this GitLab project. For example, https://jira.example.com."
+ },
+ {
+ "attribute": "project_key",
+ "type": "string",
+ "required": "yes",
+ "description": "The short identifier for your JIRA project, all uppercase, e.g., PROJ."
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "yes",
+ "description": "The username of the user created to be used with GitLab/JIRA."
+ },
+ {
+ "attribute": "password",
+ "type": "string",
+ "required": "yes",
+ "description": "The password of the user created to be used with GitLab/JIRA."
+ },
+ {
+ "attribute": "jira_issue_transition_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a transition that moves issues to a closed state. You can find this number under the JIRA workflow administration (Administration > Issues > Workflows) by selecting View under Operations of the desired workflow of your project. The ID of each state can be found inside the parenthesis of each transition name under the Transitions (id) column ([see screenshot][trans]). By default, this ID is set to 2."
+ }
+ ]
+ },
+ {
+ "title": "delete-jira-service",
+ "description": "Remove all previously JIRA settings from a project.",
+ "api": [
+ "DELETE /projects/:id/services/jira"
+ ],
+ "params": []
+ },
+ {
+ "title": "createedit-kubernetes-service",
+ "description": "Set Kubernetes service for a project.",
+ "api": [
+ "PUT /projects/:id/services/kubernetes"
+ ],
+ "params": [
+ {
+ "attribute": "namespace",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The Kubernetes namespace to use"
+ }
+ ]
+ },
+ {
+ "title": "delete-kubernetes-service",
+ "description": "Delete Kubernetes service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/kubernetes"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-kubernetes-service-settings",
+ "description": "Get Kubernetes service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/kubernetes"
+ ],
+ "params": []
+ },
+ {
+ "title": "slack-slash-commands",
+ "description": "Ability to receive slash commands from a Slack chat instance.",
+ "api": [
+ "GET /projects/:id/services/slack-slash-commands"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-slack-slash-command-service-settings",
+ "description": "Get Slack slash command service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/slack-slash-commands"
+ ],
+ "params": []
+ },
+ {
+ "title": "createedit-slack-slash-command-service",
+ "description": "Set Slack slash command for a project.",
+ "api": [
+ "PUT /projects/:id/services/slack-slash-commands"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "The Slack token"
+ }
+ ]
+ },
+ {
+ "title": "delete-slack-slash-command-service",
+ "description": "Delete Slack slash command service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/slack-slash-commands"
+ ],
+ "params": []
+ },
+ {
+ "title": "mattermost-slash-commands",
+ "description": "Ability to receive slash commands from a Mattermost chat instance.",
+ "api": [
+ "GET /projects/:id/services/mattermost-slash-commands"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-mattermost-slash-command-service-settings",
+ "description": "Get Mattermost slash command service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/mattermost-slash-commands"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "The Mattermost token"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "no",
+ "description": "The username to use to post the message"
+ }
+ ]
+ },
+ {
+ "title": "createedit-mattermost-slash-command-service",
+ "description": "Set Mattermost slash command for a project.",
+ "api": [
+ "PUT /projects/:id/services/mattermost-slash-commands"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "yes",
+ "description": "The Mattermost token"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "no",
+ "description": "The username to use to post the message"
+ }
+ ]
+ },
+ {
+ "title": "delete-mattermost-slash-command-service",
+ "description": "Delete Mattermost slash command service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/mattermost-slash-commands"
+ ],
+ "params": []
+ },
+ {
+ "title": "packagist",
+ "description": "Update your project on Packagist, the main Composer repository, when commits or tags are pushed to GitLab.",
+ "api": [
+ "PUT /projects/:id/services/packagist"
+ ],
+ "params": [
+ {
+ "attribute": "username",
+ "type": "",
+ "required": "required"
+ }
+ ]
+ },
+ {
+ "title": "createedit-packagist-service",
+ "description": "Set Packagist service for a project.",
+ "api": [
+ "PUT /projects/:id/services/packagist"
+ ],
+ "params": [
+ {
+ "attribute": "username",
+ "type": "",
+ "required": "required"
+ }
+ ]
+ },
+ {
+ "title": "delete-packagist-service",
+ "description": "Delete Packagist service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/packagist"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-packagist-service-settings",
+ "description": "Get Packagist service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/packagist"
+ ],
+ "params": []
+ },
+ {
+ "title": "pipeline-emails",
+ "description": "Get emails for GitLab CI pipelines.",
+ "api": [
+ "PUT /projects/:id/services/pipelines-email"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "yes",
+ "description": "Comma-separated list of recipient email addresses"
+ },
+ {
+ "attribute": "add_pusher",
+ "type": "boolean",
+ "required": "no",
+ "description": "Add pusher to recipients list"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "no",
+ "description": "Notify only broken pipelines"
+ }
+ ]
+ },
+ {
+ "title": "createedit-pipeline-emails-service",
+ "description": "Set Pipeline-Emails service for a project.",
+ "api": [
+ "PUT /projects/:id/services/pipelines-email"
+ ],
+ "params": [
+ {
+ "attribute": "recipients",
+ "type": "string",
+ "required": "yes",
+ "description": "Comma-separated list of recipient email addresses"
+ },
+ {
+ "attribute": "add_pusher",
+ "type": "boolean",
+ "required": "no",
+ "description": "Add pusher to recipients list"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "no",
+ "description": "Notify only broken pipelines"
+ }
+ ]
+ },
+ {
+ "title": "delete-pipeline-emails-service",
+ "description": "Delete Pipeline-Emails service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/pipelines-email"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-pipeline-emails-service-settings",
+ "description": "Get Pipeline-Emails service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/pipelines-email"
+ ],
+ "params": []
+ },
+ {
+ "title": "pivotaltracker",
+ "description": "Project Management Software (Source Commits Endpoint)",
+ "api": [
+ "PUT /projects/:id/services/pivotaltracker"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "The PivotalTracker token"
+ },
+ {
+ "attribute": "restrict_to_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches."
+ }
+ ]
+ },
+ {
+ "title": "createedit-pivotaltracker-service",
+ "description": "Set PivotalTracker service for a project.",
+ "api": [
+ "PUT /projects/:id/services/pivotaltracker"
+ ],
+ "params": [
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "true",
+ "description": "The PivotalTracker token"
+ },
+ {
+ "attribute": "restrict_to_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches."
+ }
+ ]
+ },
+ {
+ "title": "delete-pivotaltracker-service",
+ "description": "Delete PivotalTracker service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/pivotaltracker"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-pivotaltracker-service-settings",
+ "description": "Get PivotalTracker service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/pivotaltracker"
+ ],
+ "params": []
+ },
+ {
+ "title": "prometheus",
+ "description": "Prometheus is a powerful time-series monitoring service.",
+ "api": [
+ "PUT /projects/:id/services/prometheus"
+ ],
+ "params": [
+ {
+ "attribute": "api_url",
+ "type": "string",
+ "required": "true",
+ "description": "Prometheus API Base URL. For example, http://prometheus.example.com/."
+ }
+ ]
+ },
+ {
+ "title": "createedit-prometheus-service",
+ "description": "Set Prometheus service for a project.",
+ "api": [
+ "PUT /projects/:id/services/prometheus"
+ ],
+ "params": [
+ {
+ "attribute": "api_url",
+ "type": "string",
+ "required": "true",
+ "description": "Prometheus API Base URL. For example, http://prometheus.example.com/."
+ }
+ ]
+ },
+ {
+ "title": "delete-prometheus-service",
+ "description": "Delete Prometheus service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/prometheus"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-prometheus-service-settings",
+ "description": "Get Prometheus service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/prometheus"
+ ],
+ "params": []
+ },
+ {
+ "title": "pushover",
+ "description": "Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop.",
+ "api": [
+ "PUT /projects/:id/services/pushover"
+ ],
+ "params": [
+ {
+ "attribute": "api_key",
+ "type": "string",
+ "required": "true",
+ "description": "Your application key"
+ },
+ {
+ "attribute": "user_key",
+ "type": "string",
+ "required": "true",
+ "description": "Your user key"
+ },
+ {
+ "attribute": "priority",
+ "type": "string",
+ "required": "true",
+ "description": "The priority"
+ },
+ {
+ "attribute": "device",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for all active devices"
+ },
+ {
+ "attribute": "sound",
+ "type": "string",
+ "required": "false",
+ "description": "The sound of the notification"
+ }
+ ]
+ },
+ {
+ "title": "createedit-pushover-service",
+ "description": "Set Pushover service for a project.",
+ "api": [
+ "PUT /projects/:id/services/pushover"
+ ],
+ "params": [
+ {
+ "attribute": "api_key",
+ "type": "string",
+ "required": "true",
+ "description": "Your application key"
+ },
+ {
+ "attribute": "user_key",
+ "type": "string",
+ "required": "true",
+ "description": "Your user key"
+ },
+ {
+ "attribute": "priority",
+ "type": "string",
+ "required": "true",
+ "description": "The priority"
+ },
+ {
+ "attribute": "device",
+ "type": "string",
+ "required": "false",
+ "description": "Leave blank for all active devices"
+ },
+ {
+ "attribute": "sound",
+ "type": "string",
+ "required": "false",
+ "description": "The sound of the notification"
+ }
+ ]
+ },
+ {
+ "title": "delete-pushover-service",
+ "description": "Delete Pushover service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/pushover"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-pushover-service-settings",
+ "description": "Get Pushover service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/pushover"
+ ],
+ "params": []
+ },
+ {
+ "title": "redmine",
+ "description": "Redmine issue tracker",
+ "api": [
+ "PUT /projects/:id/services/redmine"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ }
+ ]
+ },
+ {
+ "title": "createedit-redmine-service",
+ "description": "Set Redmine service for a project.",
+ "api": [
+ "PUT /projects/:id/services/redmine"
+ ],
+ "params": [
+ {
+ "attribute": "new_issue_url",
+ "type": "string",
+ "required": "true",
+ "description": "New Issue url"
+ },
+ {
+ "attribute": "project_url",
+ "type": "string",
+ "required": "true",
+ "description": "Project url"
+ },
+ {
+ "attribute": "issues_url",
+ "type": "string",
+ "required": "true",
+ "description": "Issue url"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "false",
+ "description": "Description"
+ }
+ ]
+ },
+ {
+ "title": "delete-redmine-service",
+ "description": "Delete Redmine service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/redmine"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-redmine-service-settings",
+ "description": "Get Redmine service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/redmine"
+ ],
+ "params": []
+ },
+ {
+ "title": "slack-notifications",
+ "description": "Receive event notifications in Slack",
+ "api": [
+ "PUT /projects/:id/services/slack"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "https://hooks.slack.com/services/..."
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "false",
+ "description": "username"
+ },
+ {
+ "attribute": "channel",
+ "type": "string",
+ "required": "false",
+ "description": "Default channel to use if others are not configured"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications for broken pipelines"
+ },
+ {
+ "attribute": "notify_only_default_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications only for the default branch"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for push events"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for issue events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for confidential issue events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for merge request events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for note events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for wiki page events"
+ },
+ {
+ "attribute": "push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive push events notifications"
+ },
+ {
+ "attribute": "issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive issues events notifications"
+ },
+ {
+ "attribute": "confidential_issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive confidential issues events notifications"
+ },
+ {
+ "attribute": "merge_request_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive merge request events notifications"
+ },
+ {
+ "attribute": "note_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive note events notifications"
+ },
+ {
+ "attribute": "tag_push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive tag push events notifications"
+ },
+ {
+ "attribute": "pipeline_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive pipeline events notifications"
+ },
+ {
+ "attribute": "wiki_page_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive wiki page events notifications"
+ }
+ ]
+ },
+ {
+ "title": "createedit-slack-service",
+ "description": "Set Slack service for a project.",
+ "api": [
+ "PUT /projects/:id/services/slack"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "https://hooks.slack.com/services/..."
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "false",
+ "description": "username"
+ },
+ {
+ "attribute": "channel",
+ "type": "string",
+ "required": "false",
+ "description": "Default channel to use if others are not configured"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications for broken pipelines"
+ },
+ {
+ "attribute": "notify_only_default_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications only for the default branch"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for push events"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for issue events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for confidential issue events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for merge request events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for note events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for wiki page events"
+ },
+ {
+ "attribute": "push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive push events notifications"
+ },
+ {
+ "attribute": "issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive issues events notifications"
+ },
+ {
+ "attribute": "confidential_issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive confidential issues events notifications"
+ },
+ {
+ "attribute": "merge_request_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive merge request events notifications"
+ },
+ {
+ "attribute": "note_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive note events notifications"
+ },
+ {
+ "attribute": "tag_push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive tag push events notifications"
+ },
+ {
+ "attribute": "pipeline_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive pipeline events notifications"
+ },
+ {
+ "attribute": "wiki_page_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive wiki page events notifications"
+ }
+ ]
+ },
+ {
+ "title": "delete-slack-service",
+ "description": "Delete Slack service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/slack"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-slack-service-settings",
+ "description": "Get Slack service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/slack"
+ ],
+ "params": []
+ },
+ {
+ "title": "microsoft-teams",
+ "description": "Group Chat Software",
+ "api": [
+ "PUT /projects/:id/services/microsoft-teams"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "The Microsoft Teams webhook. For example, https://outlook.office.com/webhook/...\n"
+ }
+ ]
+ },
+ {
+ "title": "createedit-microsoft-teams-service",
+ "description": "Set Microsoft Teams service for a project.",
+ "api": [
+ "PUT /projects/:id/services/microsoft-teams"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "The Microsoft Teams webhook. For example, https://outlook.office.com/webhook/...\n"
+ }
+ ]
+ },
+ {
+ "title": "delete-microsoft-teams-service",
+ "description": "Delete Microsoft Teams service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/microsoft-teams"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-microsoft-teams-service-settings",
+ "description": "Get Microsoft Teams service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/microsoft-teams"
+ ],
+ "params": []
+ },
+ {
+ "title": "mattermost-notifications",
+ "description": "Receive event notifications in Mattermost",
+ "api": [
+ "PUT /projects/:id/services/mattermost"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "The Mattermost webhook. For example, http://mattermost_host/hooks/...\n"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "false",
+ "description": "username"
+ },
+ {
+ "attribute": "channel",
+ "type": "string",
+ "required": "false",
+ "description": "Default channel to use if others are not configured"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications for broken pipelines"
+ },
+ {
+ "attribute": "notify_only_default_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications only for the default branch"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for push events"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for issue events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for confidential issue events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for merge request events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for note events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for wiki page events"
+ },
+ {
+ "attribute": "push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive push events notifications"
+ },
+ {
+ "attribute": "issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive issues events notifications"
+ },
+ {
+ "attribute": "confidential_issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive confidential issues events notifications"
+ },
+ {
+ "attribute": "merge_request_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive merge request events notifications"
+ },
+ {
+ "attribute": "note_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive note events notifications"
+ },
+ {
+ "attribute": "tag_push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive tag push events notifications"
+ },
+ {
+ "attribute": "pipeline_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive pipeline events notifications"
+ },
+ {
+ "attribute": "wiki_page_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive wiki page events notifications"
+ }
+ ]
+ },
+ {
+ "title": "createedit-mattermost-notifications-service",
+ "description": "Set Mattermost service for a project.",
+ "api": [
+ "PUT /projects/:id/services/mattermost"
+ ],
+ "params": [
+ {
+ "attribute": "webhook",
+ "type": "string",
+ "required": "true",
+ "description": "The Mattermost webhook. For example, http://mattermost_host/hooks/...\n"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "false",
+ "description": "username"
+ },
+ {
+ "attribute": "channel",
+ "type": "string",
+ "required": "false",
+ "description": "Default channel to use if others are not configured"
+ },
+ {
+ "attribute": "notify_only_broken_pipelines",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications for broken pipelines"
+ },
+ {
+ "attribute": "notify_only_default_branch",
+ "type": "boolean",
+ "required": "false",
+ "description": "Send notifications only for the default branch"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for push events"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for issue events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for confidential issue events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for merge request events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for note events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "false",
+ "description": "Enable notifications for wiki page events"
+ },
+ {
+ "attribute": "push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive push events notifications"
+ },
+ {
+ "attribute": "issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive issues events notifications"
+ },
+ {
+ "attribute": "confidential_issue_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive confidential issues events notifications"
+ },
+ {
+ "attribute": "merge_request_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive merge request events notifications"
+ },
+ {
+ "attribute": "note_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive note events notifications"
+ },
+ {
+ "attribute": "tag_push_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive tag push events notifications"
+ },
+ {
+ "attribute": "pipeline_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive pipeline events notifications"
+ },
+ {
+ "attribute": "wiki_page_channel",
+ "type": "string",
+ "required": "false",
+ "description": "The name of the channel to receive wiki page events notifications"
+ }
+ ]
+ },
+ {
+ "title": "delete-mattermost-notifications-service",
+ "description": "Delete Mattermost Notifications service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/mattermost"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-mattermost-notifications-service-settings",
+ "description": "Get Mattermost notifications service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/mattermost"
+ ],
+ "params": []
+ },
+ {
+ "title": "jetbrains-teamcity-ci",
+ "description": "A continuous integration and build server",
+ "api": [
+ "PUT /projects/:id/services/teamcity"
+ ],
+ "params": [
+ {
+ "attribute": "teamcity_url",
+ "type": "string",
+ "required": "true",
+ "description": "TeamCity root URL. For example, https://teamcity.example.com\n"
+ },
+ {
+ "attribute": "build_type",
+ "type": "string",
+ "required": "true",
+ "description": "Build configuration ID"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "true",
+ "description": "A user with permissions to trigger a manual build"
+ },
+ {
+ "attribute": "password",
+ "type": "string",
+ "required": "true",
+ "description": "The password of the user"
+ }
+ ]
+ },
+ {
+ "title": "createedit-jetbrains-teamcity-ci-service",
+ "description": "Set JetBrains TeamCity CI service for a project.",
+ "api": [
+ "PUT /projects/:id/services/teamcity"
+ ],
+ "params": [
+ {
+ "attribute": "teamcity_url",
+ "type": "string",
+ "required": "true",
+ "description": "TeamCity root URL. For example, https://teamcity.example.com\n"
+ },
+ {
+ "attribute": "build_type",
+ "type": "string",
+ "required": "true",
+ "description": "Build configuration ID"
+ },
+ {
+ "attribute": "username",
+ "type": "string",
+ "required": "true",
+ "description": "A user with permissions to trigger a manual build"
+ },
+ {
+ "attribute": "password",
+ "type": "string",
+ "required": "true",
+ "description": "The password of the user"
+ }
+ ]
+ },
+ {
+ "title": "delete-jetbrains-teamcity-ci-service",
+ "description": "Delete JetBrains TeamCity CI service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/teamcity"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-jetbrains-teamcity-ci-service-settings",
+ "description": "Get JetBrains TeamCity CI service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/teamcity"
+ ],
+ "params": []
+ },
+ {
+ "title": "jenkins-ci",
+ "description": "A continuous integration and build server",
+ "api": [
+ "PUT /projects/:id/services/jenkins"
+ ],
+ "params": [
+ {
+ "attribute": "jenkins_url",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Jenkins URL like http://jenkins.example.com\n"
+ }
+ ]
+ },
+ {
+ "title": "createedit-jenkins-ci-service",
+ "description": "Set Jenkins CI service for a project.",
+ "api": [
+ "PUT /projects/:id/services/jenkins"
+ ],
+ "params": [
+ {
+ "attribute": "jenkins_url",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Jenkins URL like http://jenkins.example.com\n"
+ }
+ ]
+ },
+ {
+ "title": "delete-jenkins-ci-service",
+ "description": "Delete Jenkins CI service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/jenkins"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-jenkins-ci-service-settings",
+ "description": "Get Jenkins CI service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/jenkins"
+ ],
+ "params": []
+ },
+ {
+ "title": "jenkins-ci-deprecated-service",
+ "description": "A continuous integration and build server",
+ "api": [
+ "PUT /projects/:id/services/jenkins-deprecated"
+ ],
+ "params": [
+ {
+ "attribute": "project_url",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Jenkins project URL like http://jenkins.example.com/job/my"
+ }
+ ]
+ },
+ {
+ "title": "createedit-jenkins-ci-deprecated-service",
+ "description": "Set Jenkins CI (Deprecated) service for a project.",
+ "api": [
+ "PUT /projects/:id/services/jenkins-deprecated"
+ ],
+ "params": [
+ {
+ "attribute": "project_url",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Jenkins project URL like http://jenkins.example.com/job/my"
+ }
+ ]
+ },
+ {
+ "title": "delete-jenkins-ci-deprecated-service",
+ "description": "Delete Jenkins CI (Deprecated) service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/jenkins-deprecated"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-jenkins-ci-deprecated-service-settings",
+ "description": "Get Jenkins CI (Deprecated) service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/jenkins-deprecated"
+ ],
+ "params": []
+ },
+ {
+ "title": "mockci",
+ "description": "Mock an external CI. See gitlab-org/gitlab-mock-ci-service for an example of a companion mock service.",
+ "api": [
+ "PUT /projects/:id/services/mock-ci"
+ ],
+ "params": [
+ {
+ "attribute": "mock_service_url",
+ "type": "string",
+ "required": "true",
+ "description": "http://localhost:4004"
+ }
+ ]
+ },
+ {
+ "title": "createedit-mockci-service",
+ "description": "Set MockCI service for a project.",
+ "api": [
+ "PUT /projects/:id/services/mock-ci"
+ ],
+ "params": [
+ {
+ "attribute": "mock_service_url",
+ "type": "string",
+ "required": "true",
+ "description": "http://localhost:4004"
+ }
+ ]
+ },
+ {
+ "title": "delete-mockci-service",
+ "description": "Delete MockCI service for a project.",
+ "api": [
+ "DELETE /projects/:id/services/mock-ci"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-mockci-service-settings",
+ "description": "Get MockCI service settings for a project.",
+ "api": [
+ "GET /projects/:id/services/mock-ci"
+ ],
+ "params": []
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/version.html",
+ "urlPart": "version.html",
+ "allEntries": [
+ {
+ "title": "version-api",
+ "description": "Retrieve version information for this GitLab instance. Responds 200 OK for\nauthenticated users.",
+ "api": [
+ "GET /version"
+ ],
+ "params": []
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/users.html",
+ "urlPart": "users.html",
+ "allEntries": [
+ {
+ "title": "list-users",
+ "description": "Get a list of users",
+ "api": [
+ "GET /users"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-users-for-admins",
+ "description": "You can lookup users by external UID and provider:",
+ "api": [
+ "GET /users"
+ ],
+ "params": [
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects ordered by id, name, username, created_at, or updated_at fields. Default is id\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "two_factor",
+ "type": "string",
+ "required": "no",
+ "description": "Filter users by Two-factor authentication. Filter values are enabled or disabled. By default it returns all users"
+ }
+ ]
+ },
+ {
+ "title": "single-user",
+ "description": "Get a single user.",
+ "api": [
+ "GET /users/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of a user"
+ }
+ ]
+ },
+ {
+ "title": "user-creation",
+ "description": "Creates a new user. Note only administrators can create new users. Either password or reset_password should be specified (reset_password takes priority). If reset_password is false, then password is required.",
+ "api": [
+ "POST /users"
+ ],
+ "params": [
+ {
+ "attribute": "email",
+ "type": "",
+ "required": "required",
+ "paramDescription": " Email"
+ }
+ ]
+ },
+ {
+ "title": "user-modification",
+ "description": "Modifies an existing user. Only administrators can change attributes of a user.",
+ "api": [
+ "PUT /users/:id"
+ ],
+ "params": [
+ {
+ "attribute": "email",
+ "type": "",
+ "required": "optional",
+ "paramDescription": " Email"
+ }
+ ]
+ },
+ {
+ "title": "user-deletion",
+ "description": "Deletes a user. Available only for administrators.\nThis returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found.",
+ "api": [
+ "DELETE /users/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of the user"
+ }
+ ]
+ },
+ {
+ "title": "user",
+ "description": "Gets currently authenticated user.",
+ "api": [
+ "GET /user"
+ ],
+ "params": []
+ },
+ {
+ "title": "user-for-admins",
+ "description": "Gets currently authenticated user.",
+ "api": [
+ "GET /user"
+ ],
+ "params": [
+ {
+ "attribute": "sudo",
+ "type": "",
+ "required": "optional",
+ "paramDescription": " the ID of a user to make the call in their place"
+ }
+ ]
+ },
+ {
+ "title": "user-status",
+ "description": "Get the status of the currently signed in user.",
+ "api": [
+ "GET /user/status"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-the-status-of-a-user",
+ "description": "Get the status of a user.",
+ "api": [
+ "GET /users/:id_or_username/status"
+ ],
+ "params": [
+ {
+ "attribute": "id_or_username",
+ "type": "string",
+ "required": "yes",
+ "description": "The id or username of the user to get a status of"
+ }
+ ]
+ },
+ {
+ "title": "set-user-status",
+ "description": "Set the status of the current user.",
+ "api": [
+ "PUT /user/status"
+ ],
+ "params": [
+ {
+ "attribute": "emoji",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the emoji to use as status, if omitted speech_balloon is used. Emoji name can be one of the specified names in the Gemojione index."
+ },
+ {
+ "attribute": "message",
+ "type": "string",
+ "required": "no",
+ "description": "The message to set as a status. It can also contain emoji codes."
+ }
+ ]
+ },
+ {
+ "title": "list-user-projects",
+ "description": "Please refer to the List of user projects .",
+ "api": [
+ "GET /user/keys"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-ssh-keys",
+ "description": "Get a list of currently authenticated user’s SSH keys.",
+ "api": [
+ "GET /user/keys"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-ssh-keys-for-user",
+ "description": "Get a list of a specified user’s SSH keys.",
+ "api": [
+ "GET /users/:id/keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "single-ssh-key",
+ "description": "Get a single key.",
+ "api": [
+ "GET /user/keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "key_id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of an SSH key"
+ }
+ ]
+ },
+ {
+ "title": "add-ssh-key",
+ "description": "Creates a new key owned by the currently authenticated user.",
+ "api": [
+ "POST /user/keys"
+ ],
+ "params": [
+ {
+ "attribute": "title",
+ "type": "",
+ "required": "required",
+ "paramDescription": " new SSH Key’s title"
+ }
+ ]
+ },
+ {
+ "title": "add-ssh-key-for-user",
+ "description": "Create new key owned by specified user. Available only for admin",
+ "api": [
+ "POST /users/:id/keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "delete-ssh-key-for-current-user",
+ "description": "Deletes key owned by currently authenticated user.\nThis returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found.",
+ "api": [
+ "DELETE /user/keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "key_id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " SSH key ID"
+ }
+ ]
+ },
+ {
+ "title": "delete-ssh-key-for-given-user",
+ "description": "Deletes key owned by a specified user. Available only for admin.",
+ "api": [
+ "DELETE /users/:id/keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "list-all-gpg-keys",
+ "description": "Get a list of currently authenticated user’s GPG keys.",
+ "api": [
+ "GET /user/gpg_keys"
+ ],
+ "params": []
+ },
+ {
+ "title": "get-a-specific-gpg-key",
+ "description": "Get a specific GPG key of currently authenticated user.",
+ "api": [
+ "GET /user/gpg_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the GPG key"
+ }
+ ]
+ },
+ {
+ "title": "add-a-gpg-key",
+ "description": "Creates a new GPG key owned by the currently authenticated user.",
+ "api": [
+ "POST /user/gpg_keys"
+ ],
+ "params": [
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The new GPG key"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-gpg-key",
+ "description": "Delete a GPG key owned by currently authenticated user.",
+ "api": [
+ "DELETE /user/gpg_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the GPG key"
+ }
+ ]
+ },
+ {
+ "title": "list-all-gpg-keys-for-given-user",
+ "description": "Get a list of a specified user’s GPG keys. Available only for admins.",
+ "api": [
+ "GET /users/:id/gpg_keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ }
+ ]
+ },
+ {
+ "title": "get-a-specific-gpg-key-for-a-given-user",
+ "description": "Get a specific GPG key for a given user. Available only for admins.",
+ "api": [
+ "GET /users/:id/gpg_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the GPG key"
+ }
+ ]
+ },
+ {
+ "title": "add-a-gpg-key-for-a-given-user",
+ "description": "Create new GPG key owned by the specified user. Available only for admins.",
+ "api": [
+ "POST /users/:id/gpg_keys"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the GPG key"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-gpg-key-for-a-given-user",
+ "description": "Delete a GPG key owned by a specified user. Available only for admins.",
+ "api": [
+ "DELETE /users/:id/gpg_keys/:key_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "key_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the GPG key"
+ }
+ ]
+ },
+ {
+ "title": "list-emails",
+ "description": "Get a list of currently authenticated user’s emails.",
+ "api": [
+ "GET /user/emails"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-emails-for-user",
+ "description": "Get a list of a specified user’s emails. Available only for admin",
+ "api": [
+ "GET /users/:id/emails"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "single-email",
+ "description": "Get a single email.",
+ "api": [
+ "GET /user/emails/:email_id"
+ ],
+ "params": [
+ {
+ "attribute": "email_id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " email ID"
+ }
+ ]
+ },
+ {
+ "title": "add-email",
+ "description": "Creates a new email owned by the currently authenticated user.",
+ "api": [
+ "POST /user/emails"
+ ],
+ "params": [
+ {
+ "attribute": "email",
+ "type": "",
+ "required": "required",
+ "paramDescription": " email address"
+ }
+ ]
+ },
+ {
+ "title": "add-email-for-user",
+ "description": "Create new email owned by specified user. Available only for admin",
+ "api": [
+ "POST /users/:id/emails"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "delete-email-for-current-user",
+ "description": "Deletes email owned by currently authenticated user.\nThis returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found.",
+ "api": [
+ "DELETE /user/emails/:email_id"
+ ],
+ "params": [
+ {
+ "attribute": "email_id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " email ID"
+ }
+ ]
+ },
+ {
+ "title": "delete-email-for-given-user",
+ "description": "Deletes email owned by a specified user. Available only for admin.",
+ "api": [
+ "DELETE /users/:id/emails/:email_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "block-user",
+ "description": "Blocks the specified user. Available only for admin.",
+ "api": [
+ "POST /users/:id/block"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "unblock-user",
+ "description": "Unblocks the specified user. Available only for admin.",
+ "api": [
+ "POST /users/:id/unblock"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " id of specified user"
+ }
+ ]
+ },
+ {
+ "title": "get-user-contribution-events",
+ "description": "Please refer to the Events API documentation",
+ "api": [
+ "GET /users/:user_id/impersonation_tokens"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "filter tokens based on state (all, active, inactive)"
+ }
+ ]
+ },
+ {
+ "title": "get-all-impersonation-tokens-of-a-user",
+ "description": "It retrieves every impersonation token of the user. Use the pagination\nparameters page and per_page to restrict the list of impersonation tokens.",
+ "api": [
+ "GET /users/:user_id/impersonation_tokens"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "filter tokens based on state (all, active, inactive)"
+ }
+ ]
+ },
+ {
+ "title": "get-an-impersonation-token-of-a-user",
+ "description": "It shows a user’s impersonation token.",
+ "api": [
+ "GET /users/:user_id/impersonation_tokens/:impersonation_token_id"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "impersonation_token_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the impersonation token"
+ }
+ ]
+ },
+ {
+ "title": "create-an-impersonation-token",
+ "description": "It creates a new impersonation token. Note that only administrators can do this.\nYou are only able to create impersonation tokens to impersonate the user and perform\nboth API calls and Git reads and writes. The user will not see these tokens in their profile\nsettings page.",
+ "api": [
+ "POST /users/:user_id/impersonation_tokens"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the impersonation token"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "date",
+ "required": "no",
+ "description": "The expiration date of the impersonation token in ISO format (YYYY-MM-DD)"
+ },
+ {
+ "attribute": "scopes",
+ "type": "array",
+ "required": "yes",
+ "description": "The array of scopes of the impersonation token (api, read_user)"
+ }
+ ]
+ },
+ {
+ "title": "revoke-an-impersonation-token",
+ "description": "It revokes an impersonation token.",
+ "api": [
+ "DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the user"
+ },
+ {
+ "attribute": "impersonation_token_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the impersonation token"
+ }
+ ]
+ },
+ {
+ "title": "get-user-activities-admin-only",
+ "description": "Get the last activity date for all users, sorted from oldest to newest.",
+ "api": [
+ "GET /user/activities"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/environments.html",
+ "urlPart": "environments.html",
+ "allEntries": [
+ {
+ "title": "environments-api",
+ "description": "Get all environments for a given project.",
+ "api": [
+ "GET /projects/:id/environments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-environments",
+ "description": "Get all environments for a given project.",
+ "api": [
+ "GET /projects/:id/environments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-environment",
+ "description": "Creates a new environment with the given name and external_url.",
+ "api": [
+ "POST /projects/:id/environments"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the environment"
+ },
+ {
+ "attribute": "external_url",
+ "type": "string",
+ "required": "no",
+ "description": "Place to link to for this environment"
+ }
+ ]
+ },
+ {
+ "title": "edit-an-existing-environment",
+ "description": "Updates an existing environment’s name and/or external_url.",
+ "api": [
+ "PUT /projects/:id/environments/:environments_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user",
+ "undefined": " "
+ },
+ {
+ "attribute": "environment_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the environment",
+ "undefined": "The ID of the environment"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The new name of the environment",
+ "undefined": " "
+ },
+ {
+ "attribute": "external_url",
+ "type": "string",
+ "required": "no",
+ "description": "The new external_url",
+ "undefined": " "
+ }
+ ]
+ },
+ {
+ "title": "delete-an-environment",
+ "description": "It returns 204 if the environment was successfully deleted, and 404 if the environment does not exist.",
+ "api": [
+ "DELETE /projects/:id/environments/:environment_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "environment_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the environment"
+ }
+ ]
+ },
+ {
+ "title": "stop-an-environment",
+ "description": "It returns 200 if the environment was successfully stopped, and 404 if the environment does not exist.",
+ "api": [
+ "POST /projects/:id/environments/:environment_id/stop"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "environment_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the environment"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/members.html",
+ "urlPart": "members.html",
+ "allEntries": [
+ {
+ "title": "list-all-members-of-a-group-or-project-projects",
+ "description": "Gets a list of group or project members viewable by the authenticated user.\nReturns only direct members and not inherited members through ancestors groups.",
+ "api": [
+ "GET /projects/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-groups",
+ "description": "Gets a list of group or project members viewable by the authenticated user.\nReturns only direct members and not inherited members through ancestors groups.",
+ "api": [
+ "GET /groups/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-including-inherited-members-projects",
+ "description": "Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.\nReturns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group.",
+ "api": [
+ "GET /projects/:id/members/all"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "list-all-members-of-a-group-or-project-including-inherited-members-groups",
+ "description": "Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.\nReturns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group.",
+ "api": [
+ "GET /groups/:id/members/all"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "query",
+ "type": "string",
+ "required": "no",
+ "description": "A query string to search for members"
+ }
+ ]
+ },
+ {
+ "title": "get-a-member-of-a-group-or-project-projects",
+ "description": "Gets a member of a group or project.",
+ "api": [
+ "GET /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "get-a-member-of-a-group-or-project-groups",
+ "description": "Gets a member of a group or project.",
+ "api": [
+ "GET /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "add-a-member-to-a-group-or-project-projects",
+ "description": "Adds a member to a group or project.",
+ "api": [
+ "POST /projects/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the new member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "add-a-member-to-a-group-or-project-groups",
+ "description": "Adds a member to a group or project.",
+ "api": [
+ "POST /groups/:id/members"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the new member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-member-of-a-group-or-project-projects",
+ "description": "Updates a member of a group or project.",
+ "api": [
+ "PUT /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-member-of-a-group-or-project-groups",
+ "description": "Updates a member of a group or project.",
+ "api": [
+ "PUT /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ },
+ {
+ "attribute": "access_level",
+ "type": "integer",
+ "required": "yes",
+ "description": "A valid access level"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "A date string in the format YEAR-MONTH-DAY"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-member-from-a-group-or-project-projects",
+ "description": "Removes a user from a group or project.",
+ "api": [
+ "DELETE /projects/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-member-from-a-group-or-project-groups",
+ "description": "Removes a user from a group or project.",
+ "api": [
+ "DELETE /groups/:id/members/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project or group owned by the authenticated user"
+ },
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the member"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/geo_nodes.html",
+ "urlPart": "geo_nodes.html",
+ "allEntries": [
+ {
+ "title": "geo-nodes-api",
+ "description": "In order to interact with Geo node endpoints, you need to authenticate yourself\nas an admin.",
+ "api": [
+ "GET /geo_nodes"
+ ],
+ "params": []
+ },
+ {
+ "title": "retrieve-configuration-about-all-geo-nodes",
+ "description": "Example response:",
+ "api": [
+ "GET /geo_nodes"
+ ],
+ "params": []
+ },
+ {
+ "title": "retrieve-configuration-about-a-specific-geo-node",
+ "description": "Example response:",
+ "api": [
+ "GET /geo_nodes/:id"
+ ],
+ "params": []
+ },
+ {
+ "title": "edit-a-geo-node",
+ "description": "Updates an existing Geo secondary node. The primary node cannot be edited.",
+ "api": [
+ "PUT /geo_nodes/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the Geo node."
+ },
+ {
+ "attribute": "enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating if the Geo node is enabled."
+ },
+ {
+ "attribute": "url",
+ "type": "string",
+ "required": "no",
+ "description": "The URL to connect to the Geo node."
+ },
+ {
+ "attribute": "files_max_capacity",
+ "type": "integer",
+ "required": "no",
+ "description": "Control the maximum concurrency of LFS/attachment backfill for this secondary node."
+ },
+ {
+ "attribute": "repos_max_capacity",
+ "type": "integer",
+ "required": "no",
+ "description": "Control the maximum concurrency of repository backfill for this secondary node."
+ },
+ {
+ "attribute": "verification_max_capacity",
+ "type": "integer",
+ "required": "no",
+ "description": "Control the maximum concurrency of verification for this node."
+ }
+ ]
+ },
+ {
+ "title": "delete-a-geo-node",
+ "description": "Removes the Geo node.",
+ "api": [
+ "DELETE /geo_nodes/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the Geo node."
+ }
+ ]
+ },
+ {
+ "title": "repair-a-geo-node",
+ "description": "To repair the OAuth authentication of a Geo node.",
+ "api": [
+ "POST /geo_nodes/:id/repair"
+ ],
+ "params": []
+ },
+ {
+ "title": "retrieve-status-about-all-geo-nodes",
+ "description": "Example response:",
+ "api": [
+ "GET /geo_nodes/status"
+ ],
+ "params": []
+ },
+ {
+ "title": "retrieve-status-about-a-specific-geo-node",
+ "description": "Example response:",
+ "api": [
+ "GET /geo_nodes/:id/status"
+ ],
+ "params": []
+ },
+ {
+ "title": "retrieve-project-sync-or-verification-failures-that-occurred-on-the-current-node",
+ "description": "This only works on a secondary node.",
+ "api": [
+ "GET /geo_nodes/current/failures"
+ ],
+ "params": [
+ {
+ "attribute": "type",
+ "type": "string",
+ "required": "no",
+ "description": "Type of failed objects (repository/wiki)"
+ },
+ {
+ "attribute": "failure_type",
+ "type": "string",
+ "required": "no",
+ "description": "Type of failures (sync/checksum_mismatch/verification)"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/features.html",
+ "urlPart": "features.html",
+ "allEntries": [
+ {
+ "title": "features-flags-api",
+ "description": "All methods require administrator authorization.",
+ "api": [
+ "GET /features"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-all-features",
+ "description": "Get a list of all persisted features, with its gate values.",
+ "api": [
+ "GET /features"
+ ],
+ "params": []
+ },
+ {
+ "title": "set-or-create-a-feature",
+ "description": "Set a feature’s gate value. If a feature with the given name doesn’t exist yet\nit will be created. The value can be a boolean, or an integer to indicate\npercentage of time.",
+ "api": [
+ "POST /features/:name"
+ ],
+ "params": [
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "Name of the feature to create or update"
+ },
+ {
+ "attribute": "value",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "\ntrue or false to enable/disable, or an integer for percentage of time"
+ },
+ {
+ "attribute": "feature_group",
+ "type": "string",
+ "required": "no",
+ "description": "A Feature group name"
+ },
+ {
+ "attribute": "user",
+ "type": "string",
+ "required": "no",
+ "description": "A GitLab username"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-feature",
+ "description": "Removes a feature gate. Response is equal when the gate exists, or doesn’t.",
+ "api": [
+ "DELETE /features/:name"
+ ],
+ "params": []
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/group_badges.html",
+ "urlPart": "group_badges.html",
+ "allEntries": [
+ {
+ "title": "group-badges-api",
+ "description": "Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:",
+ "api": [
+ "GET /groups/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "placeholder-tokens",
+ "description": "Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:",
+ "api": [
+ "GET /groups/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-all-badges-of-a-group",
+ "description": "Gets a list of a group’s badges.",
+ "api": [
+ "GET /groups/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "get-a-badge-of-a-group",
+ "description": "Gets a badge of a group.",
+ "api": [
+ "GET /groups/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ }
+ ]
+ },
+ {
+ "title": "add-a-badge-to-a-group",
+ "description": "Adds a badge to a group.",
+ "api": [
+ "POST /groups/:id/badges"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge image"
+ }
+ ]
+ },
+ {
+ "title": "edit-a-badge-of-a-group",
+ "description": "Updates a badge of a group.",
+ "api": [
+ "PUT /groups/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL of the badge image"
+ }
+ ]
+ },
+ {
+ "title": "remove-a-badge-from-a-group",
+ "description": "Removes a badge from a group.",
+ "api": [
+ "DELETE /groups/:id/badges/:badge_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "badge_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The badge ID"
+ }
+ ]
+ },
+ {
+ "title": "preview-a-badge-from-a-group",
+ "description": "Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.",
+ "api": [
+ "GET /groups/:id/badges/render"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "link_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge link"
+ },
+ {
+ "attribute": "image_url",
+ "type": "string",
+ "required": "yes",
+ "description": "URL of the badge image"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/templates/gitignores.html",
+ "urlPart": "templates/gitignores.html",
+ "allEntries": [
+ {
+ "title": "gitignores-api",
+ "description": "Get all gitignore templates.",
+ "api": [
+ "GET /templates/gitignores"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-gitignore-templates",
+ "description": "Get all gitignore templates.",
+ "api": [
+ "GET /templates/gitignores"
+ ],
+ "params": []
+ },
+ {
+ "title": "single-gitignore-template",
+ "description": "Get a single gitignore template.",
+ "api": [
+ "GET /templates/gitignores/:key"
+ ],
+ "params": [
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the gitignore template"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/events.html",
+ "urlPart": "events.html",
+ "allEntries": [
+ {
+ "title": "event-time-period-limit",
+ "description": "GitLab removes events older than 2 years from the events table for performance reasons.",
+ "api": [
+ "GET /events"
+ ],
+ "params": [
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular action type\n"
+ },
+ {
+ "attribute": "target_type",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular target type\n"
+ },
+ {
+ "attribute": "before",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created before a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "after",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created after a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort events in asc or desc order by created_at. Default is desc\n"
+ }
+ ]
+ },
+ {
+ "title": "list-currently-authenticated-users-events",
+ "description": "Get a list of events for the authenticated user. Scope read_user or api is required.",
+ "api": [
+ "GET /events"
+ ],
+ "params": [
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular action type\n"
+ },
+ {
+ "attribute": "target_type",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular target type\n"
+ },
+ {
+ "attribute": "before",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created before a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "after",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created after a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort events in asc or desc order by created_at. Default is desc\n"
+ }
+ ]
+ },
+ {
+ "title": "get-user-contribution-events",
+ "description": "Get the contribution events for the specified user, sorted from newest to oldest. Scope read_user or api is required.",
+ "api": [
+ "GET /users/:id/events"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID or Username of the user"
+ },
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular action type\n"
+ },
+ {
+ "attribute": "target_type",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular target type\n"
+ },
+ {
+ "attribute": "before",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created before a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "after",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created after a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort events in asc or desc order by created_at. Default is desc\n"
+ }
+ ]
+ },
+ {
+ "title": "list-a-projects-visible-events",
+ "description": "Get a list of visible events for a particular project.",
+ "api": [
+ "GET /projects/:project_id/events"
+ ],
+ "params": [
+ {
+ "attribute": "project_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "action",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular action type\n"
+ },
+ {
+ "attribute": "target_type",
+ "type": "string",
+ "required": "no",
+ "description": "Include only events of a particular target type\n"
+ },
+ {
+ "attribute": "before",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created before a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "after",
+ "type": "date",
+ "required": "no",
+ "description": "Include only events created after a particular date. Please see here for the supported format\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Sort events in asc or desc order by created_at. Default is desc\n"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/groups.html",
+ "urlPart": "groups.html",
+ "allEntries": [
+ {
+ "title": "groups-api",
+ "description": "Get a list of visible groups for the authenticated user. When accessed without\nauthentication, only public groups are returned.",
+ "api": [
+ "GET /groups"
+ ],
+ "params": [
+ {
+ "attribute": "skip_groups",
+ "type": "array of integers",
+ "required": "no",
+ "description": "Skip the group IDs passed"
+ },
+ {
+ "attribute": "all_available",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return the list of authorized groups matching the search criteria"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups by name, path or id. Default is name\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups in asc or desc order. Default is asc\n"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include group statistics (admins only)"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit to groups explicitly owned by the current user"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit to groups where current user has at least this access level\n"
+ }
+ ]
+ },
+ {
+ "title": "list-groups",
+ "description": "Get a list of visible groups for the authenticated user. When accessed without\nauthentication, only public groups are returned.",
+ "api": [
+ "GET /groups"
+ ],
+ "params": [
+ {
+ "attribute": "skip_groups",
+ "type": "array of integers",
+ "required": "no",
+ "description": "Skip the group IDs passed"
+ },
+ {
+ "attribute": "all_available",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return the list of authorized groups matching the search criteria"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups by name, path or id. Default is name\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups in asc or desc order. Default is asc\n"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include group statistics (admins only)"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit to groups explicitly owned by the current user"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit to groups where current user has at least this access level\n"
+ }
+ ]
+ },
+ {
+ "title": "list-a-groups-subgroups",
+ "description": "Get a list of visible direct subgroups in this group.\nWhen accessed without authentication, only public groups are returned.",
+ "api": [
+ "GET /groups/:id/subgroups"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group of the parent group"
+ },
+ {
+ "attribute": "skip_groups",
+ "type": "array of integers",
+ "required": "no",
+ "description": "Skip the group IDs passed"
+ },
+ {
+ "attribute": "all_available",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return the list of authorized groups matching the search criteria"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups by name, path or id. Default is name\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Order groups in asc or desc order. Default is asc\n"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include group statistics (admins only)"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit to groups explicitly owned by the current user"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit to groups where current user has at least this access level\n"
+ }
+ ]
+ },
+ {
+ "title": "list-a-groups-projects",
+ "description": "Get a list of projects in this group. When accessed without authentication, only\npublic projects are returned.",
+ "api": [
+ "GET /groups/:id/projects"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "archived",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by archived status"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "Limit by visibility public, internal, or private\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of authorized projects matching the search criteria"
+ },
+ {
+ "attribute": "simple",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return only the ID, URL, name, and path of each project"
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects owned by the current user"
+ },
+ {
+ "attribute": "starred",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects starred by the current user"
+ },
+ {
+ "attribute": "with_issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled issues feature"
+ },
+ {
+ "attribute": "with_merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled merge requests feature"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ }
+ ]
+ },
+ {
+ "title": "details-of-a-group",
+ "description": "Get all details of a group. This endpoint can be accessed without authentication\nif the group is publicly accessible.",
+ "api": [
+ "GET /groups/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "with_projects",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include details from projects that belong to the specified group (defaults to true)."
+ }
+ ]
+ },
+ {
+ "title": "new-group",
+ "description": "Creates a new project group. Available only for users who can create groups.",
+ "api": [
+ "POST /groups"
+ ],
+ "params": [
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the group"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "yes",
+ "description": "The path of the group"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The group’s description"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "The group’s visibility. Can be private, internal, or public."
+ },
+ {
+ "attribute": "lfs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable Large File Storage (LFS) for the projects in this group"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access."
+ },
+ {
+ "attribute": "parent_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The parent group id for creating nested group."
+ },
+ {
+ "attribute": "shared_runners_minutes_limit",
+ "type": "integer",
+ "required": "no",
+ "description": "(admin-only) Pipeline minutes quota for this group."
+ }
+ ]
+ },
+ {
+ "title": "transfer-project-to-group",
+ "description": "Transfer a project to the Group namespace. Available only for admin",
+ "api": [
+ "POST /groups/:id/projects/:project_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "project_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "update-group",
+ "description": "Updates the project group. Only available to group owners and administrators.",
+ "api": [
+ "PUT /groups/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the group"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the group"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "no",
+ "description": "The path of the group"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of the group"
+ },
+ {
+ "attribute": "membership_lock",
+ "type": "boolean",
+ "required": "no",
+ "description": "Prevent adding new members to project membership within this group"
+ },
+ {
+ "attribute": "share_with_group_lock",
+ "type": "boolean",
+ "required": "no",
+ "description": "Prevent sharing a project with another group within this group"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "The visibility level of the group. Can be private, internal, or public."
+ },
+ {
+ "attribute": "\nlfs_enabled (optional)",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable/disable Large File Storage (LFS) for the projects in this group"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access."
+ },
+ {
+ "attribute": "file_template_project_id",
+ "type": "integer",
+ "required": "no",
+ "description": "\n(Premium) The ID of a project to load custom file templates from"
+ },
+ {
+ "attribute": "shared_runners_minutes_limit",
+ "type": "integer",
+ "required": "no",
+ "description": "(admin-only) Pipeline minutes quota for this group"
+ }
+ ]
+ },
+ {
+ "title": "remove-group",
+ "description": "Removes group with all projects inside. Only available to group owners and administrators.",
+ "api": [
+ "DELETE /groups/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or path of a user group"
+ }
+ ]
+ },
+ {
+ "title": "search-for-group",
+ "description": "Get all groups that match your string in their name or path.",
+ "api": [
+ "GET /groups"
+ ],
+ "params": [
+ {
+ "attribute": "search",
+ "type": "String",
+ "required": "yes",
+ "description": "The search string"
+ }
+ ]
+ },
+ {
+ "title": "sync-group-with-ldap",
+ "description": "Syncs the group with its linked LDAP group. Only available to group owners and administrators.",
+ "api": [
+ "POST /groups/:id/ldap_sync"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or path of a user group"
+ }
+ ]
+ },
+ {
+ "title": "group-members",
+ "description": "Please consult the Group Members documentation.",
+ "api": [
+ "POST /groups/:id/ldap_group_links"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of a group"
+ }
+ ]
+ },
+ {
+ "title": "add-ldap-group-link",
+ "description": "Adds LDAP group link",
+ "api": [
+ "POST /groups/:id/ldap_group_links"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of a group"
+ }
+ ]
+ },
+ {
+ "title": "delete-ldap-group-link",
+ "description": "Deletes a LDAP group link",
+ "api": [
+ "DELETE /groups/:id/ldap_group_links/:cn"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of a group"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/snippets.html",
+ "urlPart": "snippets.html",
+ "allEntries": [
+ {
+ "title": "snippets-api",
+ "description": "Snippets in GitLab can be either private, internal, or public.\nYou can set it with the visibility field in the snippet.",
+ "api": [
+ "GET /snippets"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "The snippet is visible only to the snippet creator"
+ },
+ {
+ "attribute": "internal",
+ "type": "The snippet is visible for any logged in user"
+ },
+ {
+ "attribute": "public",
+ "type": "The snippet can be accessed without any authentication"
+ }
+ ]
+ },
+ {
+ "title": "snippet-visibility-level",
+ "description": "Snippets in GitLab can be either private, internal, or public.\nYou can set it with the visibility field in the snippet.",
+ "api": [
+ "GET /snippets"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "The snippet is visible only to the snippet creator"
+ },
+ {
+ "attribute": "internal",
+ "type": "The snippet is visible for any logged in user"
+ },
+ {
+ "attribute": "public",
+ "type": "The snippet can be accessed without any authentication"
+ }
+ ]
+ },
+ {
+ "title": "list-snippets",
+ "description": "Get a list of current user’s snippets.",
+ "api": [
+ "GET /snippets"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ }
+ ]
+ },
+ {
+ "title": "single-snippet",
+ "description": "Get a single snippet.",
+ "api": [
+ "GET /snippets/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ }
+ ]
+ },
+ {
+ "title": "create-new-snippet",
+ "description": "Creates a new snippet. The user must have permission to create new snippets.",
+ "api": [
+ "POST /snippets"
+ ],
+ "params": [
+ {
+ "attribute": "title",
+ "type": "String",
+ "required": "yes",
+ "description": "The title of a snippet"
+ },
+ {
+ "attribute": "file_name",
+ "type": "String",
+ "required": "yes",
+ "description": "The name of a snippet file"
+ },
+ {
+ "attribute": "content",
+ "type": "String",
+ "required": "yes",
+ "description": "The content of a snippet"
+ },
+ {
+ "attribute": "description",
+ "type": "String",
+ "required": "no",
+ "description": "The description of a snippet"
+ },
+ {
+ "attribute": "visibility",
+ "type": "String",
+ "required": "no",
+ "description": "The snippet’s visibility"
+ }
+ ]
+ },
+ {
+ "title": "update-snippet",
+ "description": "Updates an existing snippet. The user must have permission to change an existing snippet.",
+ "api": [
+ "PUT /snippets/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ },
+ {
+ "attribute": "title",
+ "type": "String",
+ "required": "no",
+ "description": "The title of a snippet"
+ },
+ {
+ "attribute": "file_name",
+ "type": "String",
+ "required": "no",
+ "description": "The name of a snippet file"
+ },
+ {
+ "attribute": "description",
+ "type": "String",
+ "required": "no",
+ "description": "The description of a snippet"
+ },
+ {
+ "attribute": "content",
+ "type": "String",
+ "required": "no",
+ "description": "The content of a snippet"
+ },
+ {
+ "attribute": "visibility",
+ "type": "String",
+ "required": "no",
+ "description": "The snippet’s visibility"
+ }
+ ]
+ },
+ {
+ "title": "delete-snippet",
+ "description": "Deletes an existing snippet.",
+ "api": [
+ "DELETE /snippets/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ }
+ ]
+ },
+ {
+ "title": "explore-all-public-snippets",
+ "description": "Example response:",
+ "api": [
+ "GET /snippets/public"
+ ],
+ "params": [
+ {
+ "attribute": "per_page",
+ "type": "Integer",
+ "required": "no",
+ "description": "number of snippets to return per page"
+ },
+ {
+ "attribute": "page",
+ "type": "Integer",
+ "required": "no",
+ "description": "the page to retrieve"
+ }
+ ]
+ },
+ {
+ "title": "get-user-agent-details",
+ "description": "Available only for admins.",
+ "api": [
+ "GET /snippets/:id/user_agent_detail"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "Integer",
+ "required": "yes",
+ "description": "The ID of a snippet"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/templates/dockerfiles.html",
+ "urlPart": "templates/dockerfiles.html",
+ "allEntries": [
+ {
+ "title": "dockerfiles-api",
+ "description": "Get all Dockerfile templates.",
+ "api": [
+ "GET /templates/dockerfiles"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-dockerfile-templates",
+ "description": "Get all Dockerfile templates.",
+ "api": [
+ "GET /templates/dockerfiles"
+ ],
+ "params": []
+ },
+ {
+ "title": "single-dockerfile-template",
+ "description": "Get a single Dockerfile template.",
+ "api": [
+ "GET /templates/dockerfiles/:key"
+ ],
+ "params": [
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the Dockerfile template"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/boards.html",
+ "urlPart": "boards.html",
+ "allEntries": [
+ {
+ "title": "issue-boards-api",
+ "description": "Every API call to boards must be authenticated.",
+ "api": [
+ "GET /projects/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "project-board",
+ "description": "Lists Issue Boards in the given project.",
+ "api": [
+ "GET /projects/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "single-board",
+ "description": "Get a single board.",
+ "api": [
+ "GET /projects/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "create-a-board-starter",
+ "description": "Creates a board.",
+ "api": [
+ "POST /projects/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the new board"
+ }
+ ]
+ },
+ {
+ "title": "update-a-board-starter",
+ "description": "Updates a board.",
+ "api": [
+ "PUT /projects/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The new name of the board"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The assignee the board should be scoped to"
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The milestone the board should be scoped to"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names which the board should be scoped to"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "The weight range from 0 to 9, to which the board should be scoped to"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-board-starter",
+ "description": "Deletes a board.",
+ "api": [
+ "DELETE /projects/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "list-board-lists",
+ "description": "Get a list of the board’s lists.\nDoes not include open and closed lists",
+ "api": [
+ "GET /projects/:id/boards/:board_id/lists"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "single-board-list",
+ "description": "Get a single board list.",
+ "api": [
+ "GET /projects/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ }
+ ]
+ },
+ {
+ "title": "new-board-list",
+ "description": "Creates a new Issue Board list.",
+ "api": [
+ "POST /projects/:id/boards/:board_id/lists"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "label_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a label"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a user"
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of a milestone"
+ }
+ ]
+ },
+ {
+ "title": "edit-board-list",
+ "description": "Updates an existing Issue Board list. This call is used to change list position.",
+ "api": [
+ "PUT /projects/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ },
+ {
+ "attribute": "position",
+ "type": "integer",
+ "required": "yes",
+ "description": "The position of the list"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-board-list",
+ "description": "Only for admins and project owners. Soft deletes the board list in question.",
+ "api": [
+ "DELETE /projects/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/templates/gitlab_ci_ymls.html",
+ "urlPart": "templates/gitlab_ci_ymls.html",
+ "allEntries": [
+ {
+ "title": "gitlab-ci-ymls-api",
+ "description": "Get all GitLab CI YML templates.",
+ "api": [
+ "GET /templates/gitlab_ci_ymls"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-gitlab-ci-yml-templates",
+ "description": "Get all GitLab CI YML templates.",
+ "api": [
+ "GET /templates/gitlab_ci_ymls"
+ ],
+ "params": []
+ },
+ {
+ "title": "single-gitlab-ci-yml-template",
+ "description": "Get a single GitLab CI YML template.",
+ "api": [
+ "GET /templates/gitlab_ci_ymls/:key"
+ ],
+ "params": [
+ {
+ "attribute": "key",
+ "type": "string",
+ "required": "yes",
+ "description": "The key of the GitLab CI YML template"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/issue_links.html",
+ "urlPart": "issue_links.html",
+ "allEntries": [
+ {
+ "title": "issue-links-api",
+ "description": "Get a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).\nIssues will be filtered according to the user authorizations.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/links"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "list-issue-relations",
+ "description": "Get a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).\nIssues will be filtered according to the user authorizations.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/links"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "create-an-issue-link",
+ "description": "Creates a two-way relation between two issues. User must be allowed to update both issues in order to succeed.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/links"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "target_project_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project of a target project"
+ },
+ {
+ "attribute": "target_issue_iid",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The internal ID of a target project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-issue-link",
+ "description": "Deletes an issue link, thus removes the two-way relationship.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid/links/:issue_link_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "issue_link_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of an issue relationship"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/license.html",
+ "urlPart": "license.html",
+ "allEntries": [
+ {
+ "title": "license",
+ "description": "In order to interact with license endpoints, you need to authenticate yourself\nas an admin.",
+ "api": [
+ "GET /license"
+ ],
+ "params": [
+ {
+ "attribute": "license",
+ "type": "string",
+ "required": "yes",
+ "description": "The license string"
+ }
+ ]
+ },
+ {
+ "title": "retrieve-information-about-the-current-license",
+ "description": "Example response:",
+ "api": [
+ "GET /license"
+ ],
+ "params": [
+ {
+ "attribute": "license",
+ "type": "string",
+ "required": "yes",
+ "description": "The license string"
+ }
+ ]
+ },
+ {
+ "title": "add-a-new-license",
+ "description": "Example response:",
+ "api": [
+ "POST /license"
+ ],
+ "params": [
+ {
+ "attribute": "license",
+ "type": "string",
+ "required": "yes",
+ "description": "The license string"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/milestones.html",
+ "urlPart": "milestones.html",
+ "allEntries": [
+ {
+ "title": "milestones-api",
+ "description": "Returns a list of project milestones.",
+ "api": [
+ "GET /projects/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "optional",
+ "description": "Return only the milestones having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only active or closed milestones"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only milestones with a title or description matching the provided string"
+ }
+ ]
+ },
+ {
+ "title": "list-project-milestones",
+ "description": "Returns a list of project milestones.",
+ "api": [
+ "GET /projects/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "optional",
+ "description": "Return only the milestones having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only active or closed milestones"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only milestones with a title or description matching the provided string"
+ }
+ ]
+ },
+ {
+ "title": "get-single-milestone",
+ "description": "Gets a single project milestone.",
+ "api": [
+ "GET /projects/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-milestone",
+ "description": "Creates a new project milestone.",
+ "api": [
+ "POST /projects/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "edit-milestone",
+ "description": "Updates an existing project milestone.",
+ "api": [
+ "PUT /projects/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-project-milestone",
+ "description": "Only for user with developer access to the project.",
+ "api": [
+ "DELETE /projects/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-all-issues-assigned-to-a-single-milestone",
+ "description": "Gets all issues assigned to a single project milestone.",
+ "api": [
+ "GET /projects/:id/milestones/:milestone_id/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-all-merge-requests-assigned-to-a-single-milestone",
+ "description": "Gets all merge requests assigned to a single project milestone.",
+ "api": [
+ "GET /projects/:id/milestones/:milestone_id/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/markdown.html",
+ "urlPart": "markdown.html",
+ "allEntries": [
+ {
+ "title": "markdown-api",
+ "description": "Available only in APIv4.",
+ "api": [
+ "POST /api/v4/markdown"
+ ],
+ "params": [
+ {
+ "attribute": "text",
+ "type": "string",
+ "required": "yes",
+ "description": "The markdown text to render"
+ },
+ {
+ "attribute": "gfm",
+ "type": "boolean",
+ "required": "no (optional)",
+ "description": "Render text using GitLab Flavored Markdown. Default is false\n"
+ },
+ {
+ "attribute": "project",
+ "type": "string",
+ "required": "no (optional)",
+ "description": "Use project as a context when creating references using GitLab Flavored Markdown. Authentication is required if a project is not public."
+ }
+ ]
+ },
+ {
+ "title": "render-an-arbitrary-markdown-document",
+ "description": "Response example:",
+ "api": [
+ "POST /api/v4/markdown"
+ ],
+ "params": [
+ {
+ "attribute": "text",
+ "type": "string",
+ "required": "yes",
+ "description": "The markdown text to render"
+ },
+ {
+ "attribute": "gfm",
+ "type": "boolean",
+ "required": "no (optional)",
+ "description": "Render text using GitLab Flavored Markdown. Default is false\n"
+ },
+ {
+ "attribute": "project",
+ "type": "string",
+ "required": "no (optional)",
+ "description": "Use project as a context when creating references using GitLab Flavored Markdown. Authentication is required if a project is not public."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/managed_licenses.html",
+ "urlPart": "managed_licenses.html",
+ "allEntries": [
+ {
+ "title": "managed-licenses-api-ultimate",
+ "description": "Get all managed licenses for a given project.",
+ "api": [
+ "GET /projects/:id/managed_licenses"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-managed-licenses",
+ "description": "Get all managed licenses for a given project.",
+ "api": [
+ "GET /projects/:id/managed_licenses"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "show-an-existing-managed-license",
+ "description": "Shows an existing managed license.",
+ "api": [
+ "GET /projects/:id/managed_licenses/:managed_license_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "managed_license_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded name of the license belonging to the project"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-managed-license",
+ "description": "Creates a new managed license for the given project with the given name and approval status.",
+ "api": [
+ "POST /projects/:id/managed_licenses"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the managed license"
+ },
+ {
+ "attribute": "approval_status",
+ "type": "string",
+ "required": "yes",
+ "description": "The approval status. “approved” or “blacklisted”"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-managed-license",
+ "description": "Deletes a managed license with a given id.",
+ "api": [
+ "DELETE /projects/:id/managed_licenses/:managed_license_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "managed_license_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded name of the license belonging to the project"
+ }
+ ]
+ },
+ {
+ "title": "edit-an-existing-managed-license",
+ "description": "Updates an existing managed license with a new approval status.",
+ "api": [
+ "PATCH /projects/:id/managed_licenses/:managed_license_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "managed_license_id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded name of the license belonging to the project"
+ },
+ {
+ "attribute": "approval_status",
+ "type": "string",
+ "required": "yes",
+ "description": "The approval status. “approved” or “blacklisted”"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/keys.html",
+ "urlPart": "keys.html",
+ "allEntries": [
+ {
+ "title": "keys-api",
+ "description": "Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key.",
+ "api": [
+ "GET /keys/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of an SSH key"
+ }
+ ]
+ },
+ {
+ "title": "get-ssh-key-with-user-by-id-of-an-ssh-key",
+ "description": "Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key.",
+ "api": [
+ "GET /keys/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID of an SSH key"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/labels.html",
+ "urlPart": "labels.html",
+ "allEntries": [
+ {
+ "title": "labels-api",
+ "description": "Get all labels for a given project.",
+ "api": [
+ "GET /projects/:id/labels"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "list-labels",
+ "description": "Get all labels for a given project.",
+ "api": [
+ "GET /projects/:id/labels"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "create-a-new-label",
+ "description": "Creates a new label for the given repository with the given name and color.",
+ "api": [
+ "POST /projects/:id/labels"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the label"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "yes",
+ "description": "The color of the label given in 6-digit hex notation with leading ‘#’ sign (e.g. #FFAABB) or one of the CSS color names\n"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of the label"
+ },
+ {
+ "attribute": "priority",
+ "type": "integer",
+ "required": "no",
+ "description": "The priority of the label. Must be greater or equal than zero or null to remove the priority."
+ }
+ ]
+ },
+ {
+ "title": "delete-a-label",
+ "description": "Deletes a label with a given name.",
+ "api": [
+ "DELETE /projects/:id/labels"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the label"
+ }
+ ]
+ },
+ {
+ "title": "edit-an-existing-label",
+ "description": "Updates an existing label with new name or new color. At least one parameter\nis required, to update the label.",
+ "api": [
+ "PUT /projects/:id/labels"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the existing label"
+ },
+ {
+ "attribute": "new_name",
+ "type": "string",
+ "required": "yes if color is not provided",
+ "description": "The new name of the label"
+ },
+ {
+ "attribute": "color",
+ "type": "string",
+ "required": "yes if new_name is not provided",
+ "description": "The color of the label given in 6-digit hex notation with leading ‘#’ sign (e.g. #FFAABB) or one of the CSS color names\n"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The new description of the label"
+ },
+ {
+ "attribute": "priority",
+ "type": "integer",
+ "required": "no",
+ "description": "The new priority of the label. Must be greater or equal than zero or null to remove the priority."
+ }
+ ]
+ },
+ {
+ "title": "subscribe-to-a-label",
+ "description": "Subscribes the authenticated user to a label to receive notifications.\nIf the user is already subscribed to the label, the status code 304\nis returned.",
+ "api": [
+ "POST /projects/:id/labels/:label_id/subscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "label_id",
+ "type": "integer or string",
+ "required": "yes",
+ "description": "The ID or title of a project’s label"
+ }
+ ]
+ },
+ {
+ "title": "unsubscribe-from-a-label",
+ "description": "Unsubscribes the authenticated user from a label to not receive notifications\nfrom it. If the user is not subscribed to the label, the\nstatus code 304 is returned.",
+ "api": [
+ "POST /projects/:id/labels/:label_id/unsubscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "label_id",
+ "type": "integer or string",
+ "required": "yes",
+ "description": "The ID or title of a project’s label"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/group_milestones.html",
+ "urlPart": "group_milestones.html",
+ "allEntries": [
+ {
+ "title": "group-milestones-api",
+ "description": "Returns a list of group milestones.",
+ "api": [
+ "GET /groups/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "optional",
+ "description": "Return only the milestones having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only active or closed milestones"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only milestones with a title or description matching the provided string"
+ }
+ ]
+ },
+ {
+ "title": "list-group-milestones",
+ "description": "Returns a list of group milestones.",
+ "api": [
+ "GET /groups/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "optional",
+ "description": "Return only the milestones having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only active or closed milestones"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "optional",
+ "description": "Return only milestones with a title or description matching the provided string"
+ }
+ ]
+ },
+ {
+ "title": "get-single-milestone",
+ "description": "Gets a single group milestone.",
+ "api": [
+ "GET /groups/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-new-milestone",
+ "description": "Creates a new group milestone.",
+ "api": [
+ "POST /groups/:id/milestones"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "edit-milestone",
+ "description": "Updates an existing group milestone.",
+ "api": [
+ "PUT /groups/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "delete-group-milestone",
+ "description": "Only for user with developer access to the group.",
+ "api": [
+ "DELETE /groups/:id/milestones/:milestone_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-all-issues-assigned-to-a-single-milestone",
+ "description": "Gets all issues assigned to a single group milestone.",
+ "api": [
+ "GET /groups/:id/milestones/:milestone_id/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-all-merge-requests-assigned-to-a-single-milestone",
+ "description": "Gets all merge requests assigned to a single group milestone.",
+ "api": [
+ "GET /groups/:id/milestones/:milestone_id/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/group_boards.html",
+ "urlPart": "group_boards.html",
+ "allEntries": [
+ {
+ "title": "group-issue-boards-api",
+ "description": "Every API call to group boards must be authenticated.",
+ "api": [
+ "GET /groups/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "group-board",
+ "description": "Lists Issue Boards in the given group.",
+ "api": [
+ "GET /groups/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ }
+ ]
+ },
+ {
+ "title": "single-board",
+ "description": "Gets a single board.",
+ "api": [
+ "GET /groups/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "create-a-board",
+ "description": "Creates a board.",
+ "api": [
+ "POST /groups/:id/boards"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the new board"
+ }
+ ]
+ },
+ {
+ "title": "update-a-board",
+ "description": "Updates a board.",
+ "api": [
+ "PUT /groups/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The new name of the board"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The assignee the board should be scoped to"
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The milestone the board should be scoped to"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names which the board should be scoped to"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "The weight range from 0 to 9, to which the board should be scoped to"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-board",
+ "description": "Deletes a board.",
+ "api": [
+ "DELETE /groups/:id/boards/:board_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "list-board-lists",
+ "description": "Get a list of the board’s lists.\nDoes not include open and closed lists",
+ "api": [
+ "GET /groups/:id/boards/:board_id/lists"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ }
+ ]
+ },
+ {
+ "title": "single-board-list",
+ "description": "Get a single board list.",
+ "api": [
+ "GET /groups/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ }
+ ]
+ },
+ {
+ "title": "new-board-list",
+ "description": "Creates a new Issue Board list.",
+ "api": [
+ "POST /groups/:id/boards/:board_id/lists"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "label_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a label"
+ }
+ ]
+ },
+ {
+ "title": "edit-board-list",
+ "description": "Updates an existing Issue Board list. This call is used to change list position.",
+ "api": [
+ "PUT /groups/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ },
+ {
+ "attribute": "position",
+ "type": "integer",
+ "required": "yes",
+ "description": "The position of the list"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-board-list",
+ "description": "Only for admins and group owners. Soft deletes the board list in question.",
+ "api": [
+ "DELETE /groups/:id/boards/:board_id/lists/:list_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "board_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board"
+ },
+ {
+ "attribute": "list_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a board’s list"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/projects.html",
+ "urlPart": "projects.html",
+ "allEntries": [
+ {
+ "title": "projects-api",
+ "description": "Project in GitLab can be either private, internal or public.\nThis is determined by the visibility field in the project.",
+ "api": [
+ "GET /projects"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "project-visibility-level",
+ "description": "Project in GitLab can be either private, internal or public.\nThis is determined by the visibility field in the project.",
+ "api": [
+ "GET /projects"
+ ],
+ "params": [
+ {
+ "attribute": "private",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "project-merge-method",
+ "description": "There are currently three options for merge_method to choose from:",
+ "api": [
+ "GET /projects"
+ ],
+ "params": [
+ {
+ "attribute": "merge",
+ "type": "",
+ "required": "optional"
+ }
+ ]
+ },
+ {
+ "title": "list-all-projects",
+ "description": "Get a list of all visible projects across GitLab for the authenticated user.\nWhen accessed without authentication, only public projects with “simple” fields are returned.",
+ "api": [
+ "GET /projects"
+ ],
+ "params": [
+ {
+ "attribute": "archived",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by archived status"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "Limit by visibility public, internal, or private\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of projects matching the search criteria"
+ },
+ {
+ "attribute": "simple",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned."
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects explicitly owned by the current user"
+ },
+ {
+ "attribute": "membership",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects that the current user is a member of"
+ },
+ {
+ "attribute": "starred",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects starred by the current user"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include project statistics"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "with_issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled issues feature"
+ },
+ {
+ "attribute": "with_merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled merge requests feature"
+ },
+ {
+ "attribute": "wiki_checksum_failed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit projects where the wiki checksum calculation has failed (Introduced in GitLab Premium 11.2)\n"
+ },
+ {
+ "attribute": "repository_checksum_failed",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit projects where the repository checksum calculation has failed (Introduced in GitLab Premium 11.2)\n"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit by current user minimal access level\n"
+ }
+ ]
+ },
+ {
+ "title": "list-user-projects",
+ "description": "Get a list of visible projects owned by the given user. When accessed without authentication, only public projects are returned.",
+ "api": [
+ "GET /users/:user_id/projects"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "string",
+ "required": "yes",
+ "description": "The ID or username of the user"
+ },
+ {
+ "attribute": "archived",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by archived status"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "Limit by visibility public, internal, or private\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of projects matching the search criteria"
+ },
+ {
+ "attribute": "simple",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned."
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects explicitly owned by the current user"
+ },
+ {
+ "attribute": "membership",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects that the current user is a member of"
+ },
+ {
+ "attribute": "starred",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects starred by the current user"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include project statistics"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "with_issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled issues feature"
+ },
+ {
+ "attribute": "with_merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled merge requests feature"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit by current user minimal access level\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-project",
+ "description": "Get a specific project. This endpoint can be accessed without authentication if\nthe project is publicly accessible.",
+ "api": [
+ "GET /projects/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include project statistics"
+ },
+ {
+ "attribute": "license",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include project license data"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ }
+ ]
+ },
+ {
+ "title": "get-project-users",
+ "description": "Get the users list of a project.",
+ "api": [
+ "GET /projects/:id/users"
+ ],
+ "params": [
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search for specific users"
+ }
+ ]
+ },
+ {
+ "title": "get-project-events",
+ "description": "Please refer to the Events API documentation.",
+ "api": [
+ "POST /projects"
+ ],
+ "params": [
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes if path is not provided",
+ "description": "The name of the new project. Equals path if not provided."
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "yes if name is not provided",
+ "description": "Repository name for new project. Generated based on name if not provided (generated lowercased with dashes)."
+ },
+ {
+ "attribute": "namespace_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Namespace for the new project (defaults to the current user’s namespace)"
+ },
+ {
+ "attribute": "default_branch",
+ "type": "string",
+ "required": "no",
+ "description": "\nmaster by default"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Short project description"
+ },
+ {
+ "attribute": "issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable issues for this project"
+ },
+ {
+ "attribute": "merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable merge requests for this project"
+ },
+ {
+ "attribute": "jobs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable jobs for this project"
+ },
+ {
+ "attribute": "wiki_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable wiki for this project"
+ },
+ {
+ "attribute": "snippets_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable snippets for this project"
+ },
+ {
+ "attribute": "resolve_outdated_diff_discussions",
+ "type": "boolean",
+ "required": "no",
+ "description": "Automatically resolve merge request diffs discussions on lines changed with a push"
+ },
+ {
+ "attribute": "container_registry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable container registry for this project"
+ },
+ {
+ "attribute": "shared_runners_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable shared runners for this project"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "See project visibility level\n"
+ },
+ {
+ "attribute": "import_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL to import repository from"
+ },
+ {
+ "attribute": "public_jobs",
+ "type": "boolean",
+ "required": "no",
+ "description": "If true, jobs can be viewed by non-project-members"
+ },
+ {
+ "attribute": "only_allow_merge_if_pipeline_succeeds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged with successful jobs"
+ },
+ {
+ "attribute": "only_allow_merge_if_all_discussions_are_resolved",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged when all the discussions are resolved"
+ },
+ {
+ "attribute": "merge_method",
+ "type": "string",
+ "required": "no",
+ "description": "Set the merge method used"
+ },
+ {
+ "attribute": "lfs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable LFS"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "array",
+ "required": "no",
+ "description": "The list of tags for a project; put array of tags, that should be finally assigned to a project"
+ },
+ {
+ "attribute": "avatar",
+ "type": "mixed",
+ "required": "no",
+ "description": "Image file for avatar of the project"
+ },
+ {
+ "attribute": "printing_merge_request_link_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show link to create/view merge request when pushing from the command line"
+ },
+ {
+ "attribute": "ci_config_path",
+ "type": "string",
+ "required": "no",
+ "description": "The path to CI config file"
+ },
+ {
+ "attribute": "repository_storage",
+ "type": "string",
+ "required": "no",
+ "description": "Which storage shard the repository is on. Available only to admins"
+ },
+ {
+ "attribute": "approvals_before_merge",
+ "type": "integer",
+ "required": "no",
+ "description": "How many approvers should approve merge request by default"
+ },
+ {
+ "attribute": "mirror",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enables pull mirroring in a project"
+ },
+ {
+ "attribute": "mirror_trigger_builds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Pull mirroring triggers builds"
+ },
+ {
+ "attribute": "initialize_with_readme",
+ "type": "boolean",
+ "required": "no",
+ "description": "\nfalse by default"
+ }
+ ]
+ },
+ {
+ "title": "create-project",
+ "description": "Creates a new project owned by the authenticated user.",
+ "api": [
+ "POST /projects"
+ ],
+ "params": [
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes if path is not provided",
+ "description": "The name of the new project. Equals path if not provided."
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "yes if name is not provided",
+ "description": "Repository name for new project. Generated based on name if not provided (generated lowercased with dashes)."
+ },
+ {
+ "attribute": "namespace_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Namespace for the new project (defaults to the current user’s namespace)"
+ },
+ {
+ "attribute": "default_branch",
+ "type": "string",
+ "required": "no",
+ "description": "\nmaster by default"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Short project description"
+ },
+ {
+ "attribute": "issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable issues for this project"
+ },
+ {
+ "attribute": "merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable merge requests for this project"
+ },
+ {
+ "attribute": "jobs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable jobs for this project"
+ },
+ {
+ "attribute": "wiki_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable wiki for this project"
+ },
+ {
+ "attribute": "snippets_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable snippets for this project"
+ },
+ {
+ "attribute": "resolve_outdated_diff_discussions",
+ "type": "boolean",
+ "required": "no",
+ "description": "Automatically resolve merge request diffs discussions on lines changed with a push"
+ },
+ {
+ "attribute": "container_registry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable container registry for this project"
+ },
+ {
+ "attribute": "shared_runners_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable shared runners for this project"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "See project visibility level\n"
+ },
+ {
+ "attribute": "import_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL to import repository from"
+ },
+ {
+ "attribute": "public_jobs",
+ "type": "boolean",
+ "required": "no",
+ "description": "If true, jobs can be viewed by non-project-members"
+ },
+ {
+ "attribute": "only_allow_merge_if_pipeline_succeeds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged with successful jobs"
+ },
+ {
+ "attribute": "only_allow_merge_if_all_discussions_are_resolved",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged when all the discussions are resolved"
+ },
+ {
+ "attribute": "merge_method",
+ "type": "string",
+ "required": "no",
+ "description": "Set the merge method used"
+ },
+ {
+ "attribute": "lfs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable LFS"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "array",
+ "required": "no",
+ "description": "The list of tags for a project; put array of tags, that should be finally assigned to a project"
+ },
+ {
+ "attribute": "avatar",
+ "type": "mixed",
+ "required": "no",
+ "description": "Image file for avatar of the project"
+ },
+ {
+ "attribute": "printing_merge_request_link_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show link to create/view merge request when pushing from the command line"
+ },
+ {
+ "attribute": "ci_config_path",
+ "type": "string",
+ "required": "no",
+ "description": "The path to CI config file"
+ },
+ {
+ "attribute": "repository_storage",
+ "type": "string",
+ "required": "no",
+ "description": "Which storage shard the repository is on. Available only to admins"
+ },
+ {
+ "attribute": "approvals_before_merge",
+ "type": "integer",
+ "required": "no",
+ "description": "How many approvers should approve merge request by default"
+ },
+ {
+ "attribute": "mirror",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enables pull mirroring in a project"
+ },
+ {
+ "attribute": "mirror_trigger_builds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Pull mirroring triggers builds"
+ },
+ {
+ "attribute": "initialize_with_readme",
+ "type": "boolean",
+ "required": "no",
+ "description": "\nfalse by default"
+ }
+ ]
+ },
+ {
+ "title": "create-project-for-user",
+ "description": "Creates a new project owned by the specified user. Available only for admins.",
+ "api": [
+ "POST /projects/user/:user_id"
+ ],
+ "params": [
+ {
+ "attribute": "user_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The user ID of the project owner"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "yes",
+ "description": "The name of the new project"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "no",
+ "description": "Custom repository name for new project. By default generated based on name"
+ },
+ {
+ "attribute": "namespace_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Namespace for the new project (defaults to the current user’s namespace)"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Short project description"
+ },
+ {
+ "attribute": "issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable issues for this project"
+ },
+ {
+ "attribute": "merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable merge requests for this project"
+ },
+ {
+ "attribute": "jobs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable jobs for this project"
+ },
+ {
+ "attribute": "wiki_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable wiki for this project"
+ },
+ {
+ "attribute": "snippets_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable snippets for this project"
+ },
+ {
+ "attribute": "resolve_outdated_diff_discussions",
+ "type": "boolean",
+ "required": "no",
+ "description": "Automatically resolve merge request diffs discussions on lines changed with a push"
+ },
+ {
+ "attribute": "container_registry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable container registry for this project"
+ },
+ {
+ "attribute": "shared_runners_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable shared runners for this project"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "See project visibility level\n"
+ },
+ {
+ "attribute": "import_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL to import repository from"
+ },
+ {
+ "attribute": "public_jobs",
+ "type": "boolean",
+ "required": "no",
+ "description": "If true, jobs can be viewed by non-project-members"
+ },
+ {
+ "attribute": "only_allow_merge_if_pipeline_succeeds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged with successful jobs"
+ },
+ {
+ "attribute": "only_allow_merge_if_all_discussions_are_resolved",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged when all the discussions are resolved"
+ },
+ {
+ "attribute": "merge_method",
+ "type": "string",
+ "required": "no",
+ "description": "Set the merge method used"
+ },
+ {
+ "attribute": "lfs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable LFS"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "array",
+ "required": "no",
+ "description": "The list of tags for a project; put array of tags, that should be finally assigned to a project"
+ },
+ {
+ "attribute": "avatar",
+ "type": "mixed",
+ "required": "no",
+ "description": "Image file for avatar of the project"
+ },
+ {
+ "attribute": "printing_merge_request_link_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Show link to create/view merge request when pushing from the command line"
+ },
+ {
+ "attribute": "ci_config_path",
+ "type": "string",
+ "required": "no",
+ "description": "The path to CI config file"
+ },
+ {
+ "attribute": "repository_storage",
+ "type": "string",
+ "required": "no",
+ "description": "Which storage shard the repository is on. Available only to admins"
+ },
+ {
+ "attribute": "approvals_before_merge",
+ "type": "integer",
+ "required": "no",
+ "description": "How many approvers should approve merge request by default"
+ },
+ {
+ "attribute": "external_authorization_classification_label",
+ "type": "string",
+ "required": "no",
+ "description": "The classification label for the project"
+ },
+ {
+ "attribute": "mirror",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enables pull mirroring in a project"
+ },
+ {
+ "attribute": "mirror_trigger_builds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Pull mirroring triggers builds"
+ }
+ ]
+ },
+ {
+ "title": "edit-project",
+ "description": "Updates an existing project.",
+ "api": [
+ "PUT /projects/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "name",
+ "type": "string",
+ "required": "no",
+ "description": "The name of the project"
+ },
+ {
+ "attribute": "path",
+ "type": "string",
+ "required": "no",
+ "description": "Custom repository name for the project. By default generated based on name"
+ },
+ {
+ "attribute": "default_branch",
+ "type": "string",
+ "required": "no",
+ "description": "\nmaster by default"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Short project description"
+ },
+ {
+ "attribute": "issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable issues for this project"
+ },
+ {
+ "attribute": "merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable merge requests for this project"
+ },
+ {
+ "attribute": "jobs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable jobs for this project"
+ },
+ {
+ "attribute": "wiki_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable wiki for this project"
+ },
+ {
+ "attribute": "snippets_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable snippets for this project"
+ },
+ {
+ "attribute": "resolve_outdated_diff_discussions",
+ "type": "boolean",
+ "required": "no",
+ "description": "Automatically resolve merge request diffs discussions on lines changed with a push"
+ },
+ {
+ "attribute": "container_registry_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable container registry for this project"
+ },
+ {
+ "attribute": "shared_runners_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable shared runners for this project"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "See project visibility level\n"
+ },
+ {
+ "attribute": "import_url",
+ "type": "string",
+ "required": "no",
+ "description": "URL to import repository from"
+ },
+ {
+ "attribute": "public_jobs",
+ "type": "boolean",
+ "required": "no",
+ "description": "If true, jobs can be viewed by non-project-members"
+ },
+ {
+ "attribute": "only_allow_merge_if_pipeline_succeeds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged with successful jobs"
+ },
+ {
+ "attribute": "only_allow_merge_if_all_discussions_are_resolved",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set whether merge requests can only be merged when all the discussions are resolved"
+ },
+ {
+ "attribute": "merge_method",
+ "type": "string",
+ "required": "no",
+ "description": "Set the merge method used"
+ },
+ {
+ "attribute": "lfs_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enable LFS"
+ },
+ {
+ "attribute": "request_access_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow users to request member access"
+ },
+ {
+ "attribute": "tag_list",
+ "type": "array",
+ "required": "no",
+ "description": "The list of tags for a project; put array of tags, that should be finally assigned to a project"
+ },
+ {
+ "attribute": "avatar",
+ "type": "mixed",
+ "required": "no",
+ "description": "Image file for avatar of the project"
+ },
+ {
+ "attribute": "ci_config_path",
+ "type": "string",
+ "required": "no",
+ "description": "The path to CI config file"
+ },
+ {
+ "attribute": "repository_storage",
+ "type": "string",
+ "required": "no",
+ "description": "Which storage shard the repository is on. Available only to admins"
+ },
+ {
+ "attribute": "approvals_before_merge",
+ "type": "integer",
+ "required": "no",
+ "description": "How many approvers should approve merge request by default"
+ },
+ {
+ "attribute": "external_authorization_classification_label",
+ "type": "string",
+ "required": "no",
+ "description": "The classification label for the project"
+ },
+ {
+ "attribute": "mirror",
+ "type": "boolean",
+ "required": "no",
+ "description": "Enables pull mirroring in a project"
+ },
+ {
+ "attribute": "mirror_user_id",
+ "type": "integer",
+ "required": "no",
+ "description": "User responsible for all the activity surrounding a pull mirror event"
+ },
+ {
+ "attribute": "mirror_trigger_builds",
+ "type": "boolean",
+ "required": "no",
+ "description": "Pull mirroring triggers builds"
+ },
+ {
+ "attribute": "only_mirror_protected_branches",
+ "type": "boolean",
+ "required": "no",
+ "description": "Only mirror protected branches"
+ },
+ {
+ "attribute": "mirror_overwrites_diverged_branches",
+ "type": "boolean",
+ "required": "no",
+ "description": "Pull mirror overwrites diverged branches"
+ }
+ ]
+ },
+ {
+ "title": "fork-project",
+ "description": "Forks a project into the user namespace of the authenticated user or the one provided.",
+ "api": [
+ "POST /projects/:id/fork"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "namespace",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or path of the namespace that the project will be forked to"
+ }
+ ]
+ },
+ {
+ "title": "list-forks-of-a-project",
+ "description": "List the projects accessible to the calling user that have an established, forked relationship with the specified project",
+ "api": [
+ "GET /projects/:id/forks"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "archived",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by archived status"
+ },
+ {
+ "attribute": "visibility",
+ "type": "string",
+ "required": "no",
+ "description": "Limit by visibility public, internal, or private\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return projects sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Return list of projects matching the search criteria"
+ },
+ {
+ "attribute": "simple",
+ "type": "boolean",
+ "required": "no",
+ "description": "Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned."
+ },
+ {
+ "attribute": "owned",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects explicitly owned by the current user"
+ },
+ {
+ "attribute": "membership",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects that the current user is a member of"
+ },
+ {
+ "attribute": "starred",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by projects starred by the current user"
+ },
+ {
+ "attribute": "statistics",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include project statistics"
+ },
+ {
+ "attribute": "with_custom_attributes",
+ "type": "boolean",
+ "required": "no",
+ "description": "Include custom attributes in response (admins only)"
+ },
+ {
+ "attribute": "with_issues_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled issues feature"
+ },
+ {
+ "attribute": "with_merge_requests_enabled",
+ "type": "boolean",
+ "required": "no",
+ "description": "Limit by enabled merge requests feature"
+ },
+ {
+ "attribute": "min_access_level",
+ "type": "integer",
+ "required": "no",
+ "description": "Limit by current user minimal access level\n"
+ }
+ ]
+ },
+ {
+ "title": "star-a-project",
+ "description": "Stars a given project. Returns status code 304 if the project is already starred.",
+ "api": [
+ "POST /projects/:id/star"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "unstar-a-project",
+ "description": "Unstars a given project. Returns status code 304 if the project is not starred.",
+ "api": [
+ "POST /projects/:id/unstar"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "languages",
+ "description": "Get languages used in a project with percentage value.",
+ "api": [
+ "GET /projects/:id/languages"
+ ],
+ "params": []
+ },
+ {
+ "title": "archive-a-project",
+ "description": "Archives the project if the user is either admin or the project owner of this project. This action is\nidempotent, thus archiving an already archived project will not change the project.",
+ "api": [
+ "POST /projects/:id/archive"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "unarchive-a-project",
+ "description": "Unarchives the project if the user is either admin or the project owner of this project. This action is\nidempotent, thus unarchiving a non-archived project will not change the project.",
+ "api": [
+ "POST /projects/:id/unarchive"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "remove-project",
+ "description": "Removes a project including all associated resources (issues, merge requests etc.)",
+ "api": [
+ "DELETE /projects/:id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "upload-a-file",
+ "description": "Uploads a file to the specified project to be used in an issue or merge request description, or a comment.",
+ "api": [
+ "POST /projects/:id/uploads"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "file",
+ "type": "string",
+ "required": "yes",
+ "description": "The file to be uploaded"
+ }
+ ]
+ },
+ {
+ "title": "share-project-with-group",
+ "description": "Allow to share project with group.",
+ "api": [
+ "POST /projects/:id/share"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "group_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the group to share with"
+ },
+ {
+ "attribute": "group_access",
+ "type": "integer",
+ "required": "yes",
+ "description": "The permissions level to grant the group"
+ },
+ {
+ "attribute": "expires_at",
+ "type": "string",
+ "required": "no",
+ "description": "Share expiration date in ISO 8601 format: 2016-09-26"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-shared-project-link-within-a-group",
+ "description": "Unshare the project from the group. Returns 204 and no content on success.",
+ "api": [
+ "DELETE /projects/:id/share/:group_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "group_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the group"
+ }
+ ]
+ },
+ {
+ "title": "hooks",
+ "description": "Also called Project Hooks and Webhooks.\nThese are different for System Hooks that are system wide.",
+ "api": [
+ "GET /projects/:id/hooks"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "list-project-hooks",
+ "description": "Get a list of project hooks.",
+ "api": [
+ "GET /projects/:id/hooks"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "get-project-hook",
+ "description": "Get a specific hook for a project.",
+ "api": [
+ "GET /projects/:id/hooks/:hook_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "hook_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project hook"
+ }
+ ]
+ },
+ {
+ "title": "add-project-hook",
+ "description": "Adds a hook to a specified project.",
+ "api": [
+ "POST /projects/:id/hooks"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "url",
+ "type": "string",
+ "required": "yes",
+ "description": "The hook URL"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on push events"
+ },
+ {
+ "attribute": "push_events_branch_filter",
+ "type": "string",
+ "required": "no",
+ "description": "Trigger hook on push events for matching branches only"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on issues events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on confidential issues events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on merge requests events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on note events"
+ },
+ {
+ "attribute": "job_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on job events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on pipeline events"
+ },
+ {
+ "attribute": "wiki_page_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on wiki events"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "no",
+ "description": "Do SSL verification when triggering the hook"
+ },
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "no",
+ "description": "Secret token to validate received payloads; this will not be returned in the response"
+ }
+ ]
+ },
+ {
+ "title": "edit-project-hook",
+ "description": "Edits a hook for a specified project.",
+ "api": [
+ "PUT /projects/:id/hooks/:hook_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "hook_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the project hook"
+ },
+ {
+ "attribute": "url",
+ "type": "string",
+ "required": "yes",
+ "description": "The hook URL"
+ },
+ {
+ "attribute": "push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on push events"
+ },
+ {
+ "attribute": "push_events_branch_filter",
+ "type": "string",
+ "required": "no",
+ "description": "Trigger hook on push events for matching branches only"
+ },
+ {
+ "attribute": "issues_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on issues events"
+ },
+ {
+ "attribute": "confidential_issues_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on confidential issues events"
+ },
+ {
+ "attribute": "merge_requests_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on merge requests events"
+ },
+ {
+ "attribute": "tag_push_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on tag push events"
+ },
+ {
+ "attribute": "note_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on note events"
+ },
+ {
+ "attribute": "job_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on job events"
+ },
+ {
+ "attribute": "pipeline_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on pipeline events"
+ },
+ {
+ "attribute": "wiki_events",
+ "type": "boolean",
+ "required": "no",
+ "description": "Trigger hook on wiki events"
+ },
+ {
+ "attribute": "enable_ssl_verification",
+ "type": "boolean",
+ "required": "no",
+ "description": "Do SSL verification when triggering the hook"
+ },
+ {
+ "attribute": "token",
+ "type": "string",
+ "required": "no",
+ "description": "Secret token to validate received payloads; this will not be returned in the response"
+ }
+ ]
+ },
+ {
+ "title": "delete-project-hook",
+ "description": "Removes a hook from a project. This is an idempotent method and can be called multiple times.\nEither the hook is available or not.",
+ "api": [
+ "DELETE /projects/:id/hooks/:hook_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "hook_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the project hook"
+ }
+ ]
+ },
+ {
+ "title": "create-a-forked-fromto-relation-between-existing-projects",
+ "description": "Search for projects by name which are accessible to the authenticated user. This\nendpoint can be accessed without authentication if the project is publicly\naccessible.",
+ "api": [
+ "POST /projects/:id/fork/:forked_from_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "forked_from_id",
+ "type": "ID",
+ "required": "yes",
+ "description": "The ID of the project that was forked from"
+ }
+ ]
+ },
+ {
+ "title": "delete-an-existing-forked-from-relationship",
+ "description": "Search for projects by name which are accessible to the authenticated user. This\nendpoint can be accessed without authentication if the project is publicly\naccessible.",
+ "api": [
+ "DELETE /projects/:id/fork"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "search-for-projects-by-name",
+ "description": "Search for projects by name which are accessible to the authenticated user. This\nendpoint can be accessed without authentication if the project is publicly\naccessible.",
+ "api": [
+ "GET /projects"
+ ],
+ "params": [
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "yes",
+ "description": "A string contained in the project name"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests ordered by id, name, created_at or last_activity_at fields"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests sorted in asc or desc order"
+ }
+ ]
+ },
+ {
+ "title": "start-the-housekeeping-task-for-a-project",
+ "description": "Get the push rules of a project.",
+ "api": [
+ "POST /projects/:id/housekeeping"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the project or NAMESPACE/PROJECT_NAME"
+ }
+ ]
+ },
+ {
+ "title": "push-rules-starter",
+ "description": "Get the push rules of a project.",
+ "api": [
+ "GET /projects/:id/push_rule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the project or NAMESPACE/PROJECT_NAME"
+ }
+ ]
+ },
+ {
+ "title": "get-project-push-rules",
+ "description": "Get the push rules of a project.",
+ "api": [
+ "GET /projects/:id/push_rule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the project or NAMESPACE/PROJECT_NAME"
+ }
+ ]
+ },
+ {
+ "title": "add-project-push-rule",
+ "description": "Adds a push rule to a specified project.",
+ "api": [
+ "POST /projects/:id/push_rule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the project or NAMESPACE/PROJECT_NAME"
+ },
+ {
+ "attribute": "deny_delete_tag",
+ "type": "boolean",
+ "required": "no",
+ "description": "Deny deleting a tag"
+ },
+ {
+ "attribute": "member_check",
+ "type": "boolean",
+ "required": "no",
+ "description": "Restrict commits by author (email) to existing GitLab users"
+ },
+ {
+ "attribute": "prevent_secrets",
+ "type": "boolean",
+ "required": "no",
+ "description": "GitLab will reject any files that are likely to contain secrets"
+ },
+ {
+ "attribute": "commit_message_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commit messages must match this, e.g. Fixed \\d+\\..*\n"
+ },
+ {
+ "attribute": "branch_name_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All branch names must match this, e.g. (feature|hotfix)\\/*\n"
+ },
+ {
+ "attribute": "author_email_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commit author emails must match this, e.g. @my-company.com$\n"
+ },
+ {
+ "attribute": "file_name_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commited filenames must not match this, e.g. (jar|exe)$\n"
+ },
+ {
+ "attribute": "max_file_size",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum file size (MB)"
+ }
+ ]
+ },
+ {
+ "title": "edit-project-push-rule",
+ "description": "Edits a push rule for a specified project.",
+ "api": [
+ "PUT /projects/:id/push_rule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID of the project or NAMESPACE/PROJECT_NAME"
+ },
+ {
+ "attribute": "deny_delete_tag",
+ "type": "boolean",
+ "required": "no",
+ "description": "Deny deleting a tag"
+ },
+ {
+ "attribute": "member_check",
+ "type": "boolean",
+ "required": "no",
+ "description": "Restrict commits by author (email) to existing GitLab users"
+ },
+ {
+ "attribute": "prevent_secrets",
+ "type": "boolean",
+ "required": "no",
+ "description": "GitLab will reject any files that are likely to contain secrets"
+ },
+ {
+ "attribute": "commit_message_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commit messages must match this, e.g. Fixed \\d+\\..*\n"
+ },
+ {
+ "attribute": "branch_name_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All branch names must match this, e.g. (feature|hotfix)\\/*\n"
+ },
+ {
+ "attribute": "author_email_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commit author emails must match this, e.g. @my-company.com$\n"
+ },
+ {
+ "attribute": "file_name_regex",
+ "type": "string",
+ "required": "no",
+ "description": "All commited filenames must not match this, e.g. (jar|exe)$\n"
+ },
+ {
+ "attribute": "max_file_size",
+ "type": "integer",
+ "required": "no",
+ "description": "Maximum file size (MB)"
+ }
+ ]
+ },
+ {
+ "title": "delete-project-push-rule",
+ "description": "Removes a push rule from a project. This is an idempotent method and can be called multiple times.\nEither the push rule is available or not.",
+ "api": [
+ "DELETE /projects/:id/push_rule"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "transfer-a-project-to-a-new-namespace",
+ "description": "Read more in the Branches documentation.",
+ "api": [
+ "PUT /projects/:id/transfer"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or path of the namespace to transfer to project to"
+ }
+ ]
+ },
+ {
+ "title": "branches",
+ "description": "Read more in the Branches documentation.",
+ "api": [
+ "POST /projects/:id/mirror/pull"
+ ],
+ "params": []
+ },
+ {
+ "title": "project-importexport",
+ "description": "Read more in the Project import/export documentation.",
+ "api": [
+ "POST /projects/:id/mirror/pull"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "project-members",
+ "description": "Read more in the Project members documentation.",
+ "api": [
+ "POST /projects/:id/mirror/pull"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "start-the-pull-mirroring-process-for-a-project-starter",
+ "description": "Read more in the Project Badges documentation.",
+ "api": [
+ "POST /projects/:id/mirror/pull"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ }
+ ]
+ },
+ {
+ "title": "project-badges",
+ "description": "Read more in the Project Badges documentation.",
+ "api": [
+ "GET /projects/:id/snapshot"
+ ],
+ "params": []
+ },
+ {
+ "title": "issue-and-merge-request-description-templates",
+ "description": "The non-default issue and merge request description templates are managed inside the project’s repository. So you can manage them via the API through the Repositories API and the Repository Files API.",
+ "api": [
+ "GET /projects/:id/snapshot"
+ ],
+ "params": []
+ },
+ {
+ "title": "download-snapshot-of-a-git-repository",
+ "description": "This endpoint may only be accessed by an administrative user.",
+ "api": [
+ "GET /projects/:id/snapshot"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project\n"
+ },
+ {
+ "attribute": "wiki",
+ "type": "boolean",
+ "required": "no",
+ "description": "Whether to download the wiki, rather than project, repository"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/merge_requests.html",
+ "urlPart": "merge_requests.html",
+ "allEntries": [
+ {
+ "title": "merge-requests-api",
+ "description": "Every API call to merge requests must be authenticated.",
+ "api": [
+ "GET /merge_requests"
+ ],
+ "params": []
+ },
+ {
+ "title": "list-merge-requests",
+ "description": "Get all merge requests the authenticated user has access to. By\ndefault it returns only merge requests created by the current user. To\nget all merge requests, use parameter scope=all.",
+ "api": [
+ "GET /merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all merge requests or just those that are opened, closed, locked, or merged\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone."
+ },
+ {
+ "attribute": "view",
+ "type": "string",
+ "required": "no",
+ "description": "If simple, returns the iid, URL, title, description, and basic state of merge request"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests matching a comma separated list of labels"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or before the given time"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead."
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests created by the given user id. Combine with scope=all or scope=assigned_to_me\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee."
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "source_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given source branch"
+ },
+ {
+ "attribute": "target_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given target branch"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search merge requests against their title and description\n"
+ },
+ {
+ "attribute": "wip",
+ "type": "string",
+ "required": "no",
+ "description": "Filter merge requests against their wip status. yes to return only WIP merge requests, no to return non WIP merge requests"
+ }
+ ]
+ },
+ {
+ "title": "list-project-merge-requests",
+ "description": "Get all merge requests for this project.\nThe state parameter can be used to get only merge requests with a given state (opened, closed, locked, or merged) or all of them (all).\nThe pagination parameters page and per_page can be used to restrict the list of merge requests.",
+ "api": [
+ "GET /projects/:id/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "Return the request having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all merge requests or just those that are opened, closed, locked, or merged\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return requests sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone."
+ },
+ {
+ "attribute": "view",
+ "type": "string",
+ "required": "no",
+ "description": "If simple, returns the iid, URL, title, description, and basic state of merge request"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests matching a comma separated list of labels"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or before the given time"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests created by the given user id (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "source_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given source branch"
+ },
+ {
+ "attribute": "target_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given target branch"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search merge requests against their title and description\n"
+ }
+ ]
+ },
+ {
+ "title": "list-group-merge-requests",
+ "description": "Get all merge requests for this group and its subgroups.\nThe state parameter can be used to get only merge requests with a given state (opened, closed, locked, or merged) or all of them (all).\nThe pagination parameters page and per_page can be used to restrict the list of merge requests.",
+ "api": [
+ "GET /groups/:id/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a group"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all merge requests or just those that are opened, closed, locked, or merged\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone."
+ },
+ {
+ "attribute": "view",
+ "type": "string",
+ "required": "no",
+ "description": "If simple, returns the iid, URL, title, description, and basic state of merge request"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests matching a comma separated list of labels"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return merge requests updated on or before the given time"
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests for the given scope: created_by_me, assigned_to_me or all.\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests created by the given user id (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "source_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given source branch"
+ },
+ {
+ "attribute": "target_branch",
+ "type": "string",
+ "required": "no",
+ "description": "Return merge requests with the given target branch"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search merge requests against their title and description\n"
+ }
+ ]
+ },
+ {
+ "title": "get-single-mr",
+ "description": "Shows information about a single merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-single-mr-participants",
+ "description": "Get a list of merge request participants.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/participants"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-single-mr-commits",
+ "description": "Get a list of merge request commits.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/commits"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "get-single-mr-changes",
+ "description": "Shows information about the merge request including its files and changes.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/changes"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "list-mr-pipelines",
+ "description": "Get a list of merge request pipelines.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/pipelines"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": " The ID or URL"
+ }
+ ]
+ },
+ {
+ "title": "create-mr",
+ "description": "Creates a new merge request.",
+ "api": [
+ "POST /projects/:id/merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "source_branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The source branch"
+ },
+ {
+ "attribute": "target_branch",
+ "type": "string",
+ "required": "yes",
+ "description": "The target branch"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes",
+ "description": "Title of MR"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Assignee user ID"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Description of MR"
+ },
+ {
+ "attribute": "target_project_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The target project (numeric id)"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Labels for MR as a comma-separated list"
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The global ID of a milestone"
+ },
+ {
+ "attribute": "remove_source_branch",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating if a merge request should remove the source branch when merging"
+ },
+ {
+ "attribute": "allow_collaboration",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow commits from members who can merge to the target branch"
+ },
+ {
+ "attribute": "allow_maintainer_to_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Deprecated, see allow_collaboration"
+ },
+ {
+ "attribute": "squash",
+ "type": "boolean",
+ "required": "no",
+ "description": "Squash commits into a single commit when merging"
+ }
+ ]
+ },
+ {
+ "title": "update-mr",
+ "description": "Updates an existing merge request. You can change the target branch, title, or even close the MR.",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a merge request"
+ },
+ {
+ "attribute": "target_branch",
+ "type": "string",
+ "required": "no",
+ "description": "The target branch"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "no",
+ "description": "Title of MR"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The ID of the user to assign the merge request to. Set to 0 or provide an empty value to unassign all assignees."
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The global ID of a milestone to assign the merge request to. Set to 0 or provide an empty value to unassign a milestone."
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated label names for a merge request. Set to an empty string to unassign all labels."
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "Description of MR"
+ },
+ {
+ "attribute": "state_event",
+ "type": "string",
+ "required": "no",
+ "description": "New state (close/reopen)"
+ },
+ {
+ "attribute": "remove_source_branch",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating if a merge request should remove the source branch when merging"
+ },
+ {
+ "attribute": "squash",
+ "type": "boolean",
+ "required": "no",
+ "description": "Squash commits into a single commit when merging"
+ },
+ {
+ "attribute": "discussion_locked",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating if the merge request’s discussion is locked. If the discussion is locked only project members can add, edit or resolve comments."
+ },
+ {
+ "attribute": "allow_collaboration",
+ "type": "boolean",
+ "required": "no",
+ "description": "Allow commits from members who can merge to the target branch"
+ },
+ {
+ "attribute": "allow_maintainer_to_push",
+ "type": "boolean",
+ "required": "no",
+ "description": "Deprecated, see allow_collaboration"
+ }
+ ]
+ },
+ {
+ "title": "delete-a-merge-request",
+ "description": "Only for admins and project owners. Soft deletes the merge request in question.",
+ "api": [
+ "DELETE /projects/:id/merge_requests/:merge_request_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "accept-mr",
+ "description": "Merge changes submitted with MR using this API.",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/merge"
+ ],
+ "params": []
+ },
+ {
+ "title": "cancel-merge-when-pipeline-succeeds",
+ "description": "If you don’t have permissions to accept this merge request - you’ll get a 401",
+ "api": [
+ "PUT /projects/:id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "",
+ "required": "required",
+ "paramDescription": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "",
+ "required": "required",
+ "paramDescription": "Internal ID of MR"
+ }
+ ]
+ },
+ {
+ "title": "comments-on-merge-requests",
+ "description": "Comments are done via the notes resource.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/closes_issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "list-issues-that-will-close-on-merge",
+ "description": "Get all the issues that would be closed by merging the provided merge request.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/closes_issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "subscribe-to-a-merge-request",
+ "description": "Subscribes the authenticated user to a merge request to receive notification. If the user is already subscribed to the merge request, the\nstatus code 304 is returned.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/subscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "unsubscribe-from-a-merge-request",
+ "description": "Unsubscribes the authenticated user from a merge request to not receive\nnotifications from that merge request. If the user is\nnot subscribed to the merge request, the status code 304 is returned.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/unsubscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "create-a-todo",
+ "description": "Manually creates a todo for the current user on a merge request.\nIf there already exists a todo for the user on that merge request,\nstatus code 304 is returned.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/todo"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "get-mr-diff-versions",
+ "description": "Get a list of merge request diff versions.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/versions"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "String",
+ "required": "yes",
+ "description": "The ID of the project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ },
+ {
+ "title": "get-a-single-mr-diff-version",
+ "description": "Get a single merge request diff version.",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/versions/:version_id"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "String",
+ "required": "yes",
+ "description": "The ID of the project"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ },
+ {
+ "attribute": "version_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the merge request diff version"
+ }
+ ]
+ },
+ {
+ "title": "set-a-time-estimate-for-a-merge-request",
+ "description": "Sets an estimated time of work for this merge request.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/time_estimate"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ },
+ {
+ "attribute": "duration",
+ "type": "string",
+ "required": "yes",
+ "description": "The duration in human format. e.g: 3h30m"
+ }
+ ]
+ },
+ {
+ "title": "reset-the-time-estimate-for-a-merge-request",
+ "description": "Resets the estimated time for this merge request to 0 seconds.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/reset_time_estimate"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s merge_request"
+ }
+ ]
+ },
+ {
+ "title": "add-spent-time-for-a-merge-request",
+ "description": "Adds spent time for this merge request",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/add_spent_time"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ },
+ {
+ "attribute": "duration",
+ "type": "string",
+ "required": "yes",
+ "description": "The duration in human format. e.g: 3h30m"
+ }
+ ]
+ },
+ {
+ "title": "reset-spent-time-for-a-merge-request",
+ "description": "Resets the total spent time for this merge request to 0 seconds.",
+ "api": [
+ "POST /projects/:id/merge_requests/:merge_request_iid/reset_spent_time"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s merge_request"
+ }
+ ]
+ },
+ {
+ "title": "get-time-tracking-stats",
+ "description": "Example response:",
+ "api": [
+ "GET /projects/:id/merge_requests/:merge_request_iid/time_stats"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "merge_request_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of the merge request"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "url": "https://docs.gitlab.com/ee/api/issues.html",
+ "urlPart": "issues.html",
+ "allEntries": [
+ {
+ "title": "issues-api",
+ "description": "Every API call to issues must be authenticated.",
+ "api": [
+ "GET /issues"
+ ],
+ "params": []
+ },
+ {
+ "title": "issues-pagination",
+ "description": "By default, GET requests return 20 results at a time because the API results\nare paginated.",
+ "api": [
+ "GET /issues"
+ ],
+ "params": [
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all issues or just those that are opened or closed\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone."
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues created by the given user id. Combine with scope=all or scope=assigned_to_me. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned."
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "Return only the issues having the given iid\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search issues against their title and description\n"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or before the given time"
+ }
+ ]
+ },
+ {
+ "title": "list-issues",
+ "description": "Get all issues the authenticated user has access to. By default it\nreturns only issues created by the current user. To get all issues,\nuse parameter scope=all.",
+ "api": [
+ "GET /issues"
+ ],
+ "params": [
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all issues or just those that are opened or closed\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone."
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues created by the given user id. Combine with scope=all or scope=assigned_to_me. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned."
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "Return only the issues having the given iid\n"
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search issues against their title and description\n"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or before the given time"
+ }
+ ]
+ },
+ {
+ "title": "list-group-issues",
+ "description": "Get a list of a group’s issues.",
+ "api": [
+ "GET /groups/:id/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the group owned by the authenticated user"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all issues or just those that are opened or closed\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "Return only the issues having the given iid\n"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone."
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues created by the given user id (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned."
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search group issues against their title and description\n"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or before the given time"
+ }
+ ]
+ },
+ {
+ "title": "list-project-issues",
+ "description": "Get a list of a project’s issues.",
+ "api": [
+ "GET /projects/:id/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "iids[]",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "Return only the milestone having the given iid\n"
+ },
+ {
+ "attribute": "state",
+ "type": "string",
+ "required": "no",
+ "description": "Return all issues or just those that are opened or closed\n"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels"
+ },
+ {
+ "attribute": "milestone",
+ "type": "string",
+ "required": "no",
+ "description": "The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone."
+ },
+ {
+ "attribute": "scope",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)\n"
+ },
+ {
+ "attribute": "author_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues created by the given user id (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "assignee_id",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)\n"
+ },
+ {
+ "attribute": "my_reaction_emoji",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)\n"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned."
+ },
+ {
+ "attribute": "order_by",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues ordered by created_at or updated_at fields. Default is created_at\n"
+ },
+ {
+ "attribute": "sort",
+ "type": "string",
+ "required": "no",
+ "description": "Return issues sorted in asc or desc order. Default is desc\n"
+ },
+ {
+ "attribute": "search",
+ "type": "string",
+ "required": "no",
+ "description": "Search project issues against their title and description\n"
+ },
+ {
+ "attribute": "created_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or after the given time"
+ },
+ {
+ "attribute": "created_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues created on or before the given time"
+ },
+ {
+ "attribute": "updated_after",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or after the given time"
+ },
+ {
+ "attribute": "updated_before",
+ "type": "datetime",
+ "required": "no",
+ "description": "Return issues updated on or before the given time"
+ }
+ ]
+ },
+ {
+ "title": "single-issue",
+ "description": "Get a single project issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "new-issue",
+ "description": "Creates a new project issue.",
+ "api": [
+ "POST /projects/:id/issues"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "iid",
+ "type": "integer/string",
+ "required": "no",
+ "description": "The internal ID of the project’s issue (requires admin or project owner rights)"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "yes",
+ "description": "The title of an issue"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of an issue"
+ },
+ {
+ "attribute": "confidential",
+ "type": "boolean",
+ "required": "no",
+ "description": "Set an issue to be confidential. Default is false."
+ },
+ {
+ "attribute": "assignee_ids",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "The ID of a user to assign issue"
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The global ID of a milestone to assign issue"
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated label names for an issue"
+ },
+ {
+ "attribute": "created_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)"
+ },
+ {
+ "attribute": "due_date",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string in the format YEAR-MONTH-DAY, e.g. 2016-03-11\n"
+ },
+ {
+ "attribute": "merge_request_to_resolve_discussions_of",
+ "type": "integer",
+ "required": "no",
+ "description": "The IID of a merge request in which to resolve all issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values."
+ },
+ {
+ "attribute": "discussion_to_resolve",
+ "type": "string",
+ "required": "no",
+ "description": "The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with merge_request_to_resolve_discussions_of."
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "The weight of the issue. Valid values are greater than or equal to 0."
+ }
+ ]
+ },
+ {
+ "title": "edit-issue",
+ "description": "Updates an existing project issue. This call is also used to mark an issue as\nclosed.",
+ "api": [
+ "PUT /projects/:id/issues/:issue_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "title",
+ "type": "string",
+ "required": "no",
+ "description": "The title of an issue"
+ },
+ {
+ "attribute": "description",
+ "type": "string",
+ "required": "no",
+ "description": "The description of an issue"
+ },
+ {
+ "attribute": "confidential",
+ "type": "boolean",
+ "required": "no",
+ "description": "Updates an issue to be confidential"
+ },
+ {
+ "attribute": "assignee_ids",
+ "type": "Array[integer]",
+ "required": "no",
+ "description": "The ID of the user(s) to assign the issue to. Set to 0 or provide an empty value to unassign all assignees."
+ },
+ {
+ "attribute": "milestone_id",
+ "type": "integer",
+ "required": "no",
+ "description": "The global ID of a milestone to assign the issue to. Set to 0 or provide an empty value to unassign a milestone."
+ },
+ {
+ "attribute": "labels",
+ "type": "string",
+ "required": "no",
+ "description": "Comma-separated label names for an issue. Set to an empty string to unassign all labels."
+ },
+ {
+ "attribute": "state_event",
+ "type": "string",
+ "required": "no",
+ "description": "The state event of an issue. Set close to close the issue and reopen to reopen it"
+ },
+ {
+ "attribute": "updated_at",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project owner rights)"
+ },
+ {
+ "attribute": "due_date",
+ "type": "string",
+ "required": "no",
+ "description": "Date time string in the format YEAR-MONTH-DAY, e.g. 2016-03-11\n"
+ },
+ {
+ "attribute": "weight",
+ "type": "integer",
+ "required": "no",
+ "description": "The weight of the issue. Valid values are greater than or equal to 0. 0"
+ },
+ {
+ "attribute": "discussion_locked",
+ "type": "boolean",
+ "required": "no",
+ "description": "Flag indicating if the issue’s discussion is locked. If the discussion is locked only project members can add or edit comments."
+ }
+ ]
+ },
+ {
+ "title": "delete-an-issue",
+ "description": "Only for admins and project owners. Soft deletes the issue in question.",
+ "api": [
+ "DELETE /projects/:id/issues/:issue_iid"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "move-an-issue",
+ "description": "Moves an issue to a different project. If the target project\nequals the source project or the user has insufficient permissions to move an\nissue, error 400 together with an explaining error message is returned.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/move"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "to_project_id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of the new project"
+ }
+ ]
+ },
+ {
+ "title": "subscribe-to-an-issue",
+ "description": "Subscribes the authenticated user to an issue to receive notifications.\nIf the user is already subscribed to the issue, the status code 304\nis returned.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/subscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "unsubscribe-from-an-issue",
+ "description": "Unsubscribes the authenticated user from the issue to not receive notifications\nfrom it. If the user is not subscribed to the issue, the\nstatus code 304 is returned.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/unsubscribe"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "create-a-todo",
+ "description": "Manually creates a todo for the current user on an issue. If\nthere already exists a todo for the user on that issue, status code 304 is\nreturned.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/todo"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "set-a-time-estimate-for-an-issue",
+ "description": "Sets an estimated time of work for this issue.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/time_estimate"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "duration",
+ "type": "string",
+ "required": "yes",
+ "description": "The duration in human format. e.g: 3h30m"
+ }
+ ]
+ },
+ {
+ "title": "reset-the-time-estimate-for-an-issue",
+ "description": "Resets the estimated time for this issue to 0 seconds.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/reset_time_estimate"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "add-spent-time-for-an-issue",
+ "description": "Adds spent time for this issue",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/add_spent_time"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ },
+ {
+ "attribute": "duration",
+ "type": "string",
+ "required": "yes",
+ "description": "The duration in human format. e.g: 3h30m"
+ }
+ ]
+ },
+ {
+ "title": "reset-spent-time-for-an-issue",
+ "description": "Resets the total spent time for this issue to 0 seconds.",
+ "api": [
+ "POST /projects/:id/issues/:issue_iid/reset_spent_time"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "get-time-tracking-stats",
+ "description": "Example response:",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/time_stats"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "list-merge-requests-related-to-issue",
+ "description": "Get all the merge requests that are related to the issue.",
+ "api": [
+ "GET /projects/:id/issues/:issue_id/related_merge_requests"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "list-merge-requests-that-will-close-issue-on-merge",
+ "description": "Get all the merge requests that will close issue when merged.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/closed_by"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer",
+ "required": "yes",
+ "description": "The ID of a project"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project issue"
+ }
+ ]
+ },
+ {
+ "title": "participants-on-issues",
+ "description": "Example response:",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/participants"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "comments-on-issues",
+ "description": "Comments are done via the notes resource.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/user_agent_detail"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ },
+ {
+ "title": "get-user-agent-details",
+ "description": "Available only for admins.",
+ "api": [
+ "GET /projects/:id/issues/:issue_iid/user_agent_detail"
+ ],
+ "params": [
+ {
+ "attribute": "id",
+ "type": "integer/string",
+ "required": "yes",
+ "description": "The ID or URL-encoded path of the project owned by the authenticated user"
+ },
+ {
+ "attribute": "issue_iid",
+ "type": "integer",
+ "required": "yes",
+ "description": "The internal ID of a project’s issue"
+ }
+ ]
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/index.js b/index.js
index f3e0d06..1a8e6d1 100644
--- a/index.js
+++ b/index.js
@@ -1,9 +1,9 @@
'use strict';
-const ApiV3 = require('./lib/apiV3');
+const ApiV4 = require('./lib/apiV4');
module.exports = (options) => {
- return new ApiV3(options);
+ return new ApiV4(options);
};
-module.exports.ApiV3 = ApiV3;
+module.exports.ApiV4 = ApiV4;
diff --git a/lib/apiBase.js b/lib/apiBase.js
index 3272532..4d3ea7d 100644
--- a/lib/apiBase.js
+++ b/lib/apiBase.js
@@ -1,46 +1,49 @@
-"use strict";
+'use strict';
const HttpBase = require('./httpBase');
-const Users = require('./models/users');
-const Projects = require('./models/projects');
-const Groups = require('./models/groups');
+
+const path = require('path');
+const glob = require('glob');
/**
* Class representing Api Base
*/
class ApiBase extends HttpBase {
- /**
- * Create Api Base
- */
- constructor (options) {
- super(options);
- this.init();
- }
-
- init () {
- this.users = new Users(this);
- this.projects = new Projects(this);
- this.groups = new Groups(this);
- }
-
- /**
- * Check options
- */
- checkOptions () {
- if (!this.options.base_url) {
- throw `[gitlab-api]'base_url' is required.`;
+ /**
+ * Create Api Base
+ */
+ constructor(options) {
+ super(options);
+ this.init();
}
- if (!this.options['private_token']) {
- throw `[gitlab-api]'private_token' is required.`;
+ init() {
+ path.join(__dirname, 'models');
+ const files = glob.sync(`${__dirname}/models/*`);
+ files.forEach((file) => {
+ const moduleName = file.replace(/.+\//, '').replace('.js', '');
+ const Require = require(file); // eslint-disable-line import/no-dynamic-require, global-require
+ this[moduleName] = new Require(this);
+ });
}
- if (!this.options.timeout) {
- this.options.timeout = 3000;
+ /**
+ * Check options
+ */
+ checkOptions() {
+ if (!this.options.base_url) {
+ throw new Error('[gitlab-api] "base_url" is required.');
+ }
+
+ if (!this.options.private_token) {
+ throw new Error('[gitlab-api]"private_token" is required.');
+ }
+
+ if (!this.options.timeout) {
+ this.options.timeout = 3000;
+ }
}
- }
-
}
module.exports = ApiBase;
diff --git a/lib/apiV4.js b/lib/apiV4.js
index 35726ad..486487f 100644
--- a/lib/apiV4.js
+++ b/lib/apiV4.js
@@ -1,4 +1,4 @@
-"use strict";
+'use strict';
const ApiBase = require('./apiBase');
@@ -7,16 +7,16 @@ const ApiBase = require('./apiBase');
*/
class ApiV4 extends ApiBase {
- /**
- * Create Api@V4
- */
- constructor (options) {
- // @TODO: 格式化
- options['base_url'] = options['base_url'] + '/api/v4';
- super(options);
+ /**
+ * Create Api@V4
+ */
+ constructor(options) {
+ // @TODO: 格式化
+ options.base_url = `${options.base_url}/api/v4`;
+ super(options);
- this.checkOptions();
- }
+ this.checkOptions();
+ }
}
diff --git a/lib/httpBase.js b/lib/httpBase.js
index 8e0d782..bd37062 100644
--- a/lib/httpBase.js
+++ b/lib/httpBase.js
@@ -1,4 +1,4 @@
-"use strict";
+'use strict';
const Fetch = require('isomorphic-fetch');
const QueryString = require('query-string');
@@ -7,170 +7,259 @@ const QueryString = require('query-string');
* Class representing Http Base
*/
class HttpBase {
+ /**
+ * Create Http Base
+ * @param options
+ * options.base_url {string} - gitlab api base url(Example: http://gitlab.alibaba-inc.com/)
+ * options.token {string} - gitlab private token
+ * options.timeout {number} - global fetch timeout setting
+ */
+ constructor(options) {
+ this.options = options;
- /**
- * Create Http Base
- * @param options
- * options.base_url {string} - gitlab api base url(Example: http://gitlab.alibaba-inc.com/)
- * options.token {string} - gitlab private token
- * options.timeout {number} - global fetch timeout setting
- */
- constructor (options) {
- this.options = options;
-
- this._headers = {};
-
- if (options.token_type !== undefined) {
- this._headers[options.token_type] = this.options['private_token'];
- } else {
- this._headers['Authorization'] = `Bearer ${this.options['private_token']}`;
- }
- }
-
- /**
- * Get
- * @param path {string} - fetch path
- * @param query {object} - fetch query params
- * @returns {Promise}
- */
- ['get'] (path, query) {
- const queryString = QueryString.stringify(query);
- const fetchUrl = `${this.options.base_url}${path}${queryString ? ('?' + queryString) : ''}`;
-
- return new Promise((resolve, reject) => {
- Fetch(fetchUrl, {
- method: 'GET',
- headers: this._headers,
- timeout: this.options.timeout,
- }).then((response) => {
- if (response.status > 400) {
- throw new Error(`${fetchUrl} response ${response.status}.`);
- }
+ this._headers = {
+ 'User-Agent': 'node/6 Hulu',
+ };
- return response.json();
- }).then((json) => {
- resolve(json);
- }).catch((e) => {
- reject(e);
- });
- });
- }
-
- getText (path, query) {
- const queryString = QueryString.stringify(query);
- const fetchUrl = `${this.options.base_url}${path}${queryString ? ('?' + queryString) : ''}`;
-
- return new Promise((resolve, reject) => {
- Fetch(fetchUrl, {
- method: 'GET',
- headers: this._headers,
- timeout: this.options.timeout,
- }).then((response) => {
- if (response.status > 400) {
- throw new Error(`${fetchUrl} response ${response.status}.`);
+ if (options.token_type !== undefined) {
+ this._headers[options.token_type] = this.options.private_token;
+ } else {
+ this._headers.Authorization = `Bearer ${this.options.private_token}`;
}
+ }
- return response.text();
- }).then((text) => {
- resolve(text);
- }).catch((e) => {
- reject(e);
- });
- });
- }
-
- /**
- * Post request
- * @param path {string} - fetch path
- * @param data {object} - post data
- * @returns {Promise}
- */
- post (path, data) {
- const fetchUrl = `${this.options.base_url}${path}`;
-
- return new Promise((resolve, reject) => {
- Fetch(fetchUrl, {
- method: 'POST',
- headers: this._headers,
- body: QueryString.stringify(data),
- timeout: this.options.timeout,
- }).then((response) => {
- if (response.status > 400) {
- throw new Error(`${fetchUrl} response ${response.status}.`);
- }
+ /**
+ * Get
+ * @param path {string} - fetch path
+ * @param query {object} - fetch query params
+ * @returns {Promise}
+ */
+ ['get'](path, query) {
+ const queryString = QueryString.stringify(query);
+ const fetchUrl = `${this.options.base_url}${path}${queryString ? (`?${queryString}`) : ''}`;
- return response.json();
- }).then((json) => {
- resolve(json);
- }).catch((e) => {
- reject(e);
- });
- });
- }
-
- /**
- * Put request
- * @param path {string} - fetch path
- * @param data {object} - put data
- * @returns {Promise}
- */
- put (path, data) {
- const fetchUrl = `${this.options.base_url}${path}`;
-
- const putHeaders = Object.assign({}, this._headers, {
- 'Content-type': 'application/x-www-form-urlencoded',
- });
- return new Promise((resolve, reject) => {
- Fetch(fetchUrl, {
- method: 'PUT',
- headers: putHeaders,
- body: QueryString.stringify(data),
- timeout: this.options.timeout,
- }).then((response) => {
- if (response.status > 400) {
- throw new Error(`${fetchUrl} response ${response.status}.`);
- }
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'GET',
+ headers: this._headers,
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 200) {
+ return response.json();
+ }
- return response.json();
- }).then((json) => {
- resolve(json);
- }).catch((e) => {
- reject(e);
- });
- });
- }
-
- /**
- * Delete request
- * @param path {string} - fetch path
- * @returns {Promise}
- */
- ['delete'] (path, data) {
- const fetchUrl = `${this.options.base_url}${path}`;
-
- const deleteHeaders = Object.assign({}, this._headers, {
- 'Content-type': 'application/x-www-form-urlencoded',
- });
- return new Promise((resolve, reject) => {
- Fetch(fetchUrl, {
- method: 'DELETE',
- headers: deleteHeaders,
- body: QueryString.stringify(data),
- timeout: this.options.timeout,
- }).then((response) => {
- if (response.status > 400) {
- throw new Error(`${fetchUrl} response ${response.status}.`);
- }
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((json) => {
+ resolve(json);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
+
+ getText(path, query) {
+ const queryString = QueryString.stringify(query);
+ const fetchUrl = `${this.options.base_url}${path}${queryString ? (`?${queryString}`) : ''}`;
+
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'GET',
+ headers: this._headers,
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 200) {
+ return response.text();
+ }
+
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((text) => {
+ resolve(text);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
+
+ /**
+ * Post request
+ * @param path {string} - fetch path
+ * @param data {object} - post data
+ * @returns {Promise}
+ */
+ post(path, data) {
+ const fetchUrl = `${this.options.base_url}${path}`;
+
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'POST',
+ headers: this._headers,
+ body: QueryString.stringify(data),
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 201) {
+ return response.json();
+ }
+
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((json) => {
+ resolve(json);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
+
+ /**
+ * Put request
+ * @param path {string} - fetch path
+ * @param data {object} - put data
+ * @returns {Promise}
+ */
+ put(path, data) {
+ const fetchUrl = `${this.options.base_url}${path}`;
+
+ const putHeaders = Object.assign({}, this._headers, {
+ 'Content-type': 'application/x-www-form-urlencoded',
+ });
+
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'PUT',
+ headers: putHeaders,
+ body: QueryString.stringify(data),
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 200) {
+ return response.json();
+ }
+
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((json) => {
+ resolve(json);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
+
+ /**
+ * Put request
+ * @param path {string} - fetch path
+ * @param data {object} - put data
+ * @returns {Promise}
+ */
+ patch(path, data) {
+ const fetchUrl = `${this.options.base_url}${path}`;
+
+ const putHeaders = Object.assign({}, this._headers, {
+ 'Content-type': 'application/x-www-form-urlencoded',
+ });
- return response.json();
- }).then((json) => {
- resolve(json);
- }).catch((e) => {
- reject(e);
- });
- });
- }
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'PATCH',
+ headers: putHeaders,
+ body: QueryString.stringify(data),
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 200) {
+ return response.json();
+ }
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((json) => {
+ resolve(json);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
+
+ /**
+ * Delete request
+ * @param path {string} - fetch path
+ * @returns {Promise}
+ */
+ ['delete'](path, data) {
+ const fetchUrl = `${this.options.base_url}${path}`;
+
+ const deleteHeaders = Object.assign({}, this._headers, {
+ 'Content-type': 'application/x-www-form-urlencoded',
+ });
+
+ return new Promise((resolve, reject) => {
+ Fetch(fetchUrl, {
+ method: 'DELETE',
+ headers: deleteHeaders,
+ body: QueryString.stringify(data),
+ timeout: this.options.timeout,
+ }).then((response) => {
+ if (response.status === 200) {
+ return response.json();
+ }
+
+ // No reponse content
+ if (response.status === 204) {
+ return undefined;
+ }
+
+ const error = new Error(`${fetchUrl} response ${response.status}.`);
+ error.fetchUrl = fetchUrl;
+ error.response = response;
+
+ throw error;
+ }).then((json) => {
+ resolve(json);
+ }).catch((e) => {
+ reject(e);
+ });
+ });
+ }
}
module.exports = HttpBase;
diff --git a/lib/modelBase.js b/lib/modelBase.js
index e67e266..2b23059 100644
--- a/lib/modelBase.js
+++ b/lib/modelBase.js
@@ -1,42 +1,36 @@
-"use strict";
+'use strict';
/**
* Class representing Model Base
*/
class ModelBase {
- /**
- * Create Model Base
- * @param client {object} - Api instance
- */
- constructor (client) {
- this.client = client;
- this._init();
- }
-
- get DefalutPerPage () {
- return 20;
- }
-
- _init () {
- this.http = {
- 'get': this.client.get.bind(this.client),
- 'getText': this.client.getText.bind(this.client),
- 'post': this.client.post.bind(this.client),
- 'put': this.client.put.bind(this.client),
- 'delete': this.client.delete.bind(this.client),
- };
-
- if (this.init) {
- return this.init();
+ /**
+ * Create Model Base
+ * @param client {object} - Api instance
+ */
+ constructor(client) {
+ this.client = client;
+ this._init();
}
- }
- load (model) {
- const Model = require(`./models/${model}`);
- return new Model(this.client);
- }
+ get DefalutPerPage() { // eslint-disable-line class-methods-use-this
+ return 20;
+ }
+ _init() { // eslint-disable-line consistent-return
+ this.http = {
+ get: this.client.get.bind(this.client),
+ getText: this.client.getText.bind(this.client),
+ post: this.client.post.bind(this.client),
+ put: this.client.put.bind(this.client),
+ delete: this.client.delete.bind(this.client),
+ };
+
+ if (this.init) {
+ return this.init();
+ }
+ }
}
module.exports = ModelBase;
diff --git a/lib/models/accessRequests.js b/lib/models/accessRequests.js
new file mode 100644
index 0000000..7d65ea9
--- /dev/null
+++ b/lib/models/accessRequests.js
@@ -0,0 +1,126 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Access Requests .
+ */
+class AccessRequests extends ModelBase {
+
+ /**
+ * Create Access Requests .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Gets a list of access requests viewable by the authenticated user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAccessRequestsForAGroupOrProjectProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/access_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of access requests viewable by the authenticated user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAccessRequestsForAGroupOrProjectGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/access_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Requests access for the authenticated user to a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ requestAccessToAGroupOrProjectProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/access_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Requests access for the authenticated user to a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ requestAccessToAGroupOrProjectGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/access_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Approves an access request for the given user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param user_id {integer} - The user ID of the access requester
+ * @param params {object}
+ * @param params.access_level {integer} - A valid access level (defaults: 30, developer access level)
+ * @returns {*}
+ */
+
+ approveAnAccessRequestProjects(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/access_requests/${encodeURIComponent(user_id)}/approve`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Approves an access request for the given user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param user_id {integer} - The user ID of the access requester
+ * @param params {object}
+ * @param params.access_level {integer} - A valid access level (defaults: 30, developer access level)
+ * @returns {*}
+ */
+
+ approveAnAccessRequestGroups(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/access_requests/${encodeURIComponent(user_id)}/approve`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Denies an access request for the given user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param user_id {integer} - The user ID of the access requester
+ * @param params {object}
+ * @returns {*}
+ */
+
+ denyAnAccessRequestProjects(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/access_requests/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Denies an access request for the given user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param user_id {integer} - The user ID of the access requester
+ * @param params {object}
+ * @returns {*}
+ */
+
+ denyAnAccessRequestGroups(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/access_requests/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = AccessRequests;
+
diff --git a/lib/models/awardEmoji.js b/lib/models/awardEmoji.js
new file mode 100644
index 0000000..d149901
--- /dev/null
+++ b/lib/models/awardEmoji.js
@@ -0,0 +1,347 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Award Emoji .
+ */
+class AwardEmoji extends ModelBase {
+
+ /**
+ * Create Award Emoji .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * An awarded emoji tells a thousand words, and can be awarded on issues, merge
+requests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called
+awardables..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ awardEmojiApiMergerequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * An awarded emoji tells a thousand words, and can be awarded on issues, merge
+requests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called
+awardables..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ awardEmojiApiSnippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * An awarded emoji tells a thousand words, and can be awarded on issues, merge
+requests, snippets, and notes/comments. Issues, merge requests, snippets, and notes are further called
+awardables..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ awardEmojiApiIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ issuesMergeRequestsAndSnippetsMergerequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ issuesMergeRequestsAndSnippetsSnippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ issuesMergeRequestsAndSnippetsIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ listAnAwardablesAwardEmojiMergerequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ listAnAwardablesAwardEmojiSnippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all award emoji.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ listAnAwardablesAwardEmojiIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single award emoji from an issue, snippet, or merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param award_id {integer} - The ID of the award emoji
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ getSingleAwardEmojiMergerequests(id, merge_request_iid, award_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single award emoji from an issue, snippet, or merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param award_id {integer} - The ID of the award emoji
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ getSingleAwardEmojiSnippets(id, snippet_id, award_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single award emoji from an issue, snippet, or merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param award_id {integer} - The ID of the award emoji
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @returns {*}
+ */
+
+ getSingleAwardEmojiIssues(id, issue_iid, award_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This end point creates an award emoji on the specified resource.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @param params.name {string} - The name of the emoji, without colons
+ * @returns {*}
+ */
+
+ awardANewEmojiMergerequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This end point creates an award emoji on the specified resource.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @param params.name {string} - The name of the emoji, without colons
+ * @returns {*}
+ */
+
+ awardANewEmojiSnippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This end point creates an award emoji on the specified resource.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.awardable_id {integer} - The ID (iid for merge requests/issues, id for snippets) of an awardable
+ * @param params.name {string} - The name of the emoji, without colons
+ * @returns {*}
+ */
+
+ awardANewEmojiIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sometimes its just not meant to be, and you’ll have to remove your award. Only available to
+admins or the author of the award..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param award_id {integer} - The ID of an award_emoji
+ * @param params {object}
+ * @param params.issue_iid {integer} - The internal ID of an issue
+ * @returns {*}
+ */
+
+ deleteAnAwardEmojiMergerequests(id, merge_request_iid, award_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sometimes its just not meant to be, and you’ll have to remove your award. Only available to
+admins or the author of the award..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param award_id {integer} - The ID of an award_emoji
+ * @param params {object}
+ * @param params.issue_iid {integer} - The internal ID of an issue
+ * @returns {*}
+ */
+
+ deleteAnAwardEmojiSnippets(id, snippet_id, award_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sometimes its just not meant to be, and you’ll have to remove your award. Only available to
+admins or the author of the award..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param award_id {integer} - The ID of an award_emoji
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnAwardEmojiIssues(id, issue_iid, award_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * The endpoints documented above are available for Notes as well. Notes
+are a sub-resource of Issues, Merge Requests, or Snippets. The examples below
+describe working with Award Emoji on notes for an Issue, but can be
+easily adapted for notes on a Merge Request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ awardEmojiOnNotes(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * The endpoints documented above are available for Notes as well. Notes are a sub-resource of Issues, Merge Requests, or Snippets. The examples below describe working with Award Emoji on notes for an Issue, but can be easily adapted for notes on a Merge Request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listANotesAwardEmoji(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get single note’s award emoji:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param award_id {integer} - The ID of the award emoji
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleNotesAwardEmoji(id, issue_iid, note_id, award_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Award a new emoji on a note.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @param params.name {string} - The name of the emoji, without colons
+ * @returns {*}
+ */
+
+ awardANewEmojiOnANote(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}/award_emoji`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sometimes its just not meant to be, and you’ll have to remove your award. Only available to
+admins or the author of the award..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param award_id {integer} - The ID of an award_emoji
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnAwardEmojiFromNote(id, issue_iid, note_id, award_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}/award_emoji/${encodeURIComponent(award_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = AwardEmoji;
+
diff --git a/lib/models/boards.js b/lib/models/boards.js
new file mode 100644
index 0000000..4495e71
--- /dev/null
+++ b/lib/models/boards.js
@@ -0,0 +1,178 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Boards .
+ */
+class Boards extends ModelBase {
+
+ /**
+ * Create Boards .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to boards must be authenticated..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issueBoardsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Lists Issue Boards in the given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectBoard(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleBoard(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the new board
+ * @returns {*}
+ */
+
+ createABoardStarter(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @param params.name {string} - The new name of the board
+ * @param params.assignee_id {integer} - The assignee the board should be scoped to
+ * @param params.milestone_id {integer} - The milestone the board should be scoped to
+ * @param params.labels {string} - Comma-separated list of label names which the board should be scoped to
+ * @param params.weight {integer} - The weight range from 0 to 9, to which the board should be scoped to
+ * @returns {*}
+ */
+
+ updateABoardStarter(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteABoardStarter(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of the board’s lists.
+Does not include open and closed lists.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listBoardLists(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single board list..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleBoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new Issue Board list..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @param params.label_id {integer} - The ID of a label
+ * @param params.assignee_id {integer} - The ID of a user
+ * @param params.milestone_id {integer} - The ID of a milestone
+ * @returns {*}
+ */
+
+ newBoardList(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing Issue Board list. This call is used to change list position..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @param params.position {integer} - The position of the list
+ * @returns {*}
+ */
+
+ editBoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for admins and project owners. Soft deletes the board list in question..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteABoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Boards;
+
diff --git a/lib/models/branches.js b/lib/models/branches.js
new file mode 100644
index 0000000..27ec705
--- /dev/null
+++ b/lib/models/branches.js
@@ -0,0 +1,139 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Branches .
+ */
+class Branches extends ModelBase {
+
+ /**
+ * Create Branches .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of repository branches from a project, sorted by name alphabetically.
+This endpoint can be accessed without authentication if the repository is
+publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.search {string} - Return list of branches matching the search criteria.
+ * @returns {*}
+ */
+
+ branchesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of repository branches from a project, sorted by name alphabetically.
+This endpoint can be accessed without authentication if the repository is
+publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.search {string} - Return list of branches matching the search criteria.
+ * @returns {*}
+ */
+
+ listRepositoryBranches(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single project repository branch. This endpoint can be accessed without
+authentication if the repository is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @returns {*}
+ */
+
+ getSingleRepositoryBranch(id, branch, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/branches/${encodeURIComponent(branch)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Protects a single project repository branch. This is an idempotent function,
+protecting an already protected repository branch still returns a 200 OK
+status code..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @param params.developers_can_push {boolean} - Flag if developers can push to the branch
+ * @param params.developers_can_merge {boolean} - Flag if developers can merge to the branch
+ * @returns {*}
+ */
+
+ protectRepositoryBranch(id, branch, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/branches/${encodeURIComponent(branch)}/protect`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unprotects a single project repository branch. This is an idempotent function,
+unprotecting an already unprotected repository branch still returns a 200 OK
+status code..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @returns {*}
+ */
+
+ unprotectRepositoryBranch(id, branch, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/branches/${encodeURIComponent(branch)}/unprotect`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @param params.ref {string} - The branch name or commit SHA to create branch from
+ * @returns {*}
+ */
+
+ createRepositoryBranch(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * In case of an error, an explaining message is provided..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @returns {*}
+ */
+
+ deleteRepositoryBranch(id, branch, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/repository/branches/${encodeURIComponent(branch)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Will delete all branches that are merged into the project’s default branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteMergedBranches(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/repository/merged_branches`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Branches;
+
diff --git a/lib/models/broadcastMessages.js b/lib/models/broadcastMessages.js
new file mode 100644
index 0000000..0528822
--- /dev/null
+++ b/lib/models/broadcastMessages.js
@@ -0,0 +1,106 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Broadcast Messages .
+ */
+class BroadcastMessages extends ModelBase {
+
+ /**
+ * Create Broadcast Messages .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * The broadcast message API is only accessible to administrators. All requests by
+guests will respond with 401 Unauthorized, and all requests by normal users
+will respond with 403 Forbidden..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ broadcastMessagesApi(params) {
+ return this.http.get(`/broadcast_messages`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @param params.id {integer} - Broadcast message ID
+ * @returns {*}
+ */
+
+ getAllBroadcastMessages(params) {
+ return this.http.get(`/broadcast_messages`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer} - Broadcast message ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASpecificBroadcastMessage(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/broadcast_messages/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @param params.message {string} - Message to display
+ * @param params.starts_at {datetime} - Starting time (defaults to current time)
+ * @param params.ends_at {datetime} - Ending time (defaults to one hour from current time)
+ * @param params.color {string} - Background color hex code
+ * @param params.font {string} - Foreground color hex code
+ * @returns {*}
+ */
+
+ createABroadcastMessage(params) {
+ return this.http.post(`/broadcast_messages`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer} - Broadcast message ID
+ * @param params {object}
+ * @param params.message {string} - Message to display
+ * @param params.starts_at {datetime} - Starting time
+ * @param params.ends_at {datetime} - Ending time
+ * @param params.color {string} - Background color hex code
+ * @param params.font {string} - Foreground color hex code
+ * @returns {*}
+ */
+
+ updateABroadcastMessage(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/broadcast_messages/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * .
+
+ * @param id {integer} - Broadcast message ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteABroadcastMessage(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/broadcast_messages/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = BroadcastMessages;
+
diff --git a/lib/models/commits.js b/lib/models/commits.js
new file mode 100644
index 0000000..ab510a2
--- /dev/null
+++ b/lib/models/commits.js
@@ -0,0 +1,251 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Commits .
+ */
+class Commits extends ModelBase {
+
+ /**
+ * Create Commits .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of repository commits in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.ref_name {string} - The name of a repository branch or tag or if not given the default branch
+ * @param params.since {string} - Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ
+ * @param params.until {string} - Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ
+ * @param params.path {string} - The file path
+ * @param params.all {boolean} - Retrieve every commit from the repository
+ * @param params.with_stats {boolean} - Stats about each commit will be added to the response
+ * @returns {*}
+ */
+
+ commitsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of repository commits in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.ref_name {string} - The name of a repository branch or tag or if not given the default branch
+ * @param params.since {string} - Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ
+ * @param params.until {string} - Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ
+ * @param params.path {string} - The file path
+ * @param params.all {boolean} - Retrieve every commit from the repository
+ * @param params.with_stats {boolean} - Stats about each commit will be added to the response
+ * @returns {*}
+ */
+
+ listRepositoryCommits(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a commit by posting a JSON payload.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.branch {string} - Name of the branch to commit into. To create a new branch, also provide start_branch.
+ * @param params.commit_message {string} - Commit message
+ * @param params.start_branch {string} - Name of the branch to start the new commit from
+ * @param params.actions[] {array} - An array of action hashes to commit as a batch. See the next table for what attributes it can take.
+ * @param params.author_email {string} - Specify the commit author’s email address
+ * @param params.author_name {string} - Specify the commit author’s name
+ * @param params.stats {boolean} - Include commit stats. Default is true
+ * @returns {*}
+ */
+
+ createACommitWithMultipleFilesAndActions(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/commits`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific commit identified by the commit hash or name of a branch or tag..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit hash or name of a repository branch or tag
+ * @param params {object}
+ * @param params.stats {boolean} - Include commit stats. Default is true
+ * @returns {*}
+ */
+
+ getASingleCommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all references (from branches or tags) a commit is pushed to.
+The pagination parameters page and per_page can be used to restrict the list of references..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit hash
+ * @param params {object}
+ * @param params.type {string} - The scope of commits. Possible values branch, tag, all. Default is all.
+ * @returns {*}
+ */
+
+ getReferencesACommitIsPushedTo(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/refs`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Cherry picks a commit to a given branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit hash
+ * @param params {object}
+ * @param params.branch {string} - The name of the branch
+ * @returns {*}
+ */
+
+ cherryPickACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/cherry_pick`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Reverts a commit in a given branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param sha {string} - Commit SHA to revert
+ * @param params {object}
+ * @param params.branch {string} - Target branch name
+ * @returns {*}
+ */
+
+ revertACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/revert`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the diff of a commit in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit hash or name of a repository branch or tag
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheDiffOfACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/diff`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the comments of a commit in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit hash or name of a repository branch or tag
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheCommentsOfACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/comments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a comment to a commit..
+
+ * @param params {object}
+ * @param params.shalinepath {} - undefined
+ * @returns {*}
+ */
+
+ postCommentToCommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/comments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Since GitLab 8.1, this is the new commit status API..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit SHA
+ * @param params {object}
+ * @param params.ref {string} - The name of a repository branch or tag or, if not given, the default branch
+ * @param params.stage {string} - Filter by build stage, e.g., test
+
+ * @param params.name {string} - Filter by job name, e.g., bundler:audit
+
+ * @param params.all {boolean} - Return all statuses, not only the latest ones
+ * @returns {*}
+ */
+
+ commitStatus(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/statuses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List the statuses of a commit in a project.
+The pagination parameters page and per_page can be used to restrict the list of references..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit SHA
+ * @param params {object}
+ * @param params.ref {string} - The name of a repository branch or tag or, if not given, the default branch
+ * @param params.stage {string} - Filter by build stage, e.g., test
+
+ * @param params.name {string} - Filter by job name, e.g., bundler:audit
+
+ * @param params.all {boolean} - Return all statuses, not only the latest ones
+ * @returns {*}
+ */
+
+ listTheStatusesOfACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/statuses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds or updates a build status of a commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit SHA
+ * @param params {object}
+ * @param params.state {string} - The state of the status. Can be one of the following: pending, running, success, failed, canceled
+
+ * @param params.ref {string} - The ref (branch or tag) to which the status refers
+ * @param params.
+name or context
+ {string} - The label to differentiate this status from the status of other systems. Default value is default
+
+ * @param params.target_url {string} - The target URL to associate with this status
+ * @param params.description {string} - The short description of the status
+ * @param params.coverage {float} - The total code coverage
+ * @returns {*}
+ */
+
+ postTheBuildStatusToACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/statuses/${encodeURIComponent(sha)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of Merge Requests related to the specified commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param sha {string} - The commit SHA
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listMergeRequestsAssociatedWithACommit(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/commits/${encodeURIComponent(sha)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Commits;
+
diff --git a/lib/models/customAttributes.js b/lib/models/customAttributes.js
new file mode 100644
index 0000000..729273d
--- /dev/null
+++ b/lib/models/customAttributes.js
@@ -0,0 +1,219 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Custom Attributes .
+ */
+class CustomAttributes extends ModelBase {
+
+ /**
+ * Create Custom Attributes .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to custom attributes must be authenticated as administrator..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ customAttributesApiGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Every API call to custom attributes must be authenticated as administrator..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ customAttributesApiProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Every API call to custom attributes must be authenticated as administrator..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ customAttributesApiUsers(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all custom attributes on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listCustomAttributesGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all custom attributes on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listCustomAttributesProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all custom attributes on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listCustomAttributesUsers(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/custom_attributes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleCustomAttributeGroups(id, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleCustomAttributeProjects(id, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleCustomAttributeUsers(id, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set a custom attribute on a resource. The attribute will be updated if it already exists,
+or newly created otherwise..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @param params.value {string} - The value of the custom attribute
+ * @returns {*}
+ */
+
+ setCustomAttributeGroups(id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set a custom attribute on a resource. The attribute will be updated if it already exists,
+or newly created otherwise..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @param params.value {string} - The value of the custom attribute
+ * @returns {*}
+ */
+
+ setCustomAttributeProjects(id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set a custom attribute on a resource. The attribute will be updated if it already exists,
+or newly created otherwise..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @param params.value {string} - The value of the custom attribute
+ * @returns {*}
+ */
+
+ setCustomAttributeUsers(id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/users/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete a custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteCustomAttributeGroups(id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete a custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteCustomAttributeProjects(id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete a custom attribute on a resource..
+
+ * @param id {integer} - The ID of a resource
+ * @param key {string} - The key of the custom attribute
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteCustomAttributeUsers(id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(id)}/custom_attributes/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = CustomAttributes;
+
diff --git a/lib/models/deployKeys.js b/lib/models/deployKeys.js
new file mode 100644
index 0000000..6d157a4
--- /dev/null
+++ b/lib/models/deployKeys.js
@@ -0,0 +1,126 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Deploy Keys .
+ */
+class DeployKeys extends ModelBase {
+
+ /**
+ * Create Deploy Keys .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deployKeysApi(params) {
+ return this.http.get(`/deploy_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllDeployKeys(params) {
+ return this.http.get(`/deploy_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a project’s deploy keys..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectDeployKeys(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/deploy_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single key..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param key_id {integer} - The ID of the deploy key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleDeployKey(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/deploy_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new deploy key for a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.title {string} - New deploy key’s title
+ * @param params.key {string} - New deploy key
+ * @param params.can_push {boolean} - Can deploy key push to the project’s repository
+ * @returns {*}
+ */
+
+ addDeployKey(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/deploy_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a deploy key for a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.title {string} - New deploy key’s title
+ * @param params.can_push {boolean} - Can deploy key push to the project’s repository
+ * @returns {*}
+ */
+
+ updateDeployKey(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/deploy_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a deploy key from the project. If the deploy key is used only for this project, it will be deleted from the system..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param key_id {integer} - The ID of the deploy key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteDeployKey(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/deploy_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Enables a deploy key for a project so this can be used. Returns the enabled key, with a status code 201 when successful..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param key_id {integer} - The ID of the deploy key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ enableADeployKey(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/deploy_keys/${encodeURIComponent(key_id)}/enable`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = DeployKeys;
+
diff --git a/lib/models/deployments.js b/lib/models/deployments.js
new file mode 100644
index 0000000..25d1d5f
--- /dev/null
+++ b/lib/models/deployments.js
@@ -0,0 +1,69 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Deployments .
+ */
+class Deployments extends ModelBase {
+
+ /**
+ * Create Deployments .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of deployments in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.order_by {string} - Return deployments ordered by id or iid or created_at or ref fields. Default is id
+
+ * @param params.sort {string} - Return deployments sorted in asc or desc order. Default is asc
+
+ * @returns {*}
+ */
+
+ deploymentsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/deployments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of deployments in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.order_by {string} - Return deployments ordered by id or iid or created_at or ref fields. Default is id
+
+ * @param params.sort {string} - Return deployments sorted in asc or desc order. Default is asc
+
+ * @returns {*}
+ */
+
+ listProjectDeployments(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/deployments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example of response.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param deployment_id {integer} - The ID of the deployment
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASpecificDeployment(id, deployment_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/deployments/${encodeURIComponent(deployment_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Deployments;
+
diff --git a/lib/models/discussions.js b/lib/models/discussions.js
new file mode 100644
index 0000000..871960a
--- /dev/null
+++ b/lib/models/discussions.js
@@ -0,0 +1,636 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Discussions .
+ */
+class Discussions extends ModelBase {
+
+ /**
+ * Create Discussions .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Discussions are set of related notes on snippets, issues, epics, merge requests or commits..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ discussionsApi(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectIssueDiscussions(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single discussion for a specific project issue.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleIssueDiscussion(id, issue_iid, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new discussion to a single project issue. This is similar to creating
+a note but but another comments (replies) can be added to it later..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ createNewIssueDiscussion(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a new note to the discussion..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.note_id {integer} - The ID of a discussion note
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ addNoteToExistingIssueDiscussion(id, issue_iid, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing discussion note of an issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @returns {*}
+ */
+
+ modifyExistingIssueDiscussionNote(id, issue_iid, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing discussion note of an issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnIssueDiscussionNote(id, issue_iid, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ snippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectSnippetDiscussions(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single discussion for a specific project snippet.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleSnippetDiscussion(id, snippet_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new discussion to a single project snippet. This is similar to creating
+a note but but another comments (replies) can be added to it later..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ createNewSnippetDiscussion(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a new note to the discussion..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.note_id {integer} - The ID of a discussion note
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ addNoteToExistingSnippetDiscussion(id, snippet_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions/${encodeURIComponent(discussion_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing discussion note of an snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @returns {*}
+ */
+
+ modifyExistingSnippetDiscussionNote(id, snippet_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing discussion note of an snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of an snippet
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnSnippetDiscussionNote(id, snippet_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @returns {*}
+ */
+
+ epics(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listGroupEpicDiscussions(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single discussion for a specific group epic.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleEpicDiscussion(id, epic_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new discussion to a single group epic. This is similar to creating
+a note but but another comments (replies) can be added to it later..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ createNewEpicDiscussion(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a new note to the discussion..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.note_id {integer} - The ID of a discussion note
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ addNoteToExistingEpicDiscussion(id, epic_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions/${encodeURIComponent(discussion_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing discussion note of an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @returns {*}
+ */
+
+ modifyExistingEpicDiscussionNote(id, epic_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing discussion note of an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnEpicDiscussionNote(id, epic_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mergeRequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectMergeRequestDiscussions(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single discussion for a specific project merge request.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMergeRequestDiscussion(id, merge_request_iid, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new discussion to a single project merge request. This is similar to creating
+a note but but another comments (replies) can be added to it later..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @param params.position {hash} - Position when creating a diff note
+ * @param params.position[base_sha] {string} - Base commit SHA in the source branch
+ * @param params.position[start_sha] {string} - SHA referencing commit in target branch
+ * @param params.position[head_sha] {string} - SHA referencing HEAD of this merge request
+ * @param params.position[position_type] {string} - Type of the position reference’, allowed values: ‘text’ or ‘image’
+ * @param params.position[new_path] {string} - File path after change
+ * @param params.position[new_line] {integer} - Line number after change (for ‘text’ diff notes)
+ * @param params.position[old_path] {string} - File path before change
+ * @param params.position[old_line] {integer} - Line number before change (for ‘text’ diff notes)
+ * @param params.position[width] {integer} - Width of the image (for ‘image’ diff notes)
+ * @param params.position[height] {integer} - Height of the image (for ‘image’ diff notes)
+ * @param params.position[x] {integer} - X coordinate (for ‘image’ diff notes)
+ * @param params.position[y] {integer} - Y coordinate (for ‘image’ diff notes)
+ * @returns {*}
+ */
+
+ createNewMergeRequestDiscussion(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Resolve/unresolve whole discussion of a merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.resolved {boolean} - Resolve/unresolve the discussion
+ * @returns {*}
+ */
+
+ resolveAMergeRequestDiscussion(id, merge_request_iid, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a new note to the discussion..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.note_id {integer} - The ID of a discussion note
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ addNoteToExistingMergeRequestDiscussion(id, merge_request_iid, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify or resolve an existing discussion note of a merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion (exactly one of body or resolved must be set
+ * @param params.resolved {boolean} - Resolve/unresolve the note (exactly one of body or resolved must be set
+ * @returns {*}
+ */
+
+ modifyAnExistingMergeRequestDiscussionNote(id, merge_request_iid, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing discussion note of a merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAMergeRequestDiscussionNote(id, merge_request_iid, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param params {object}
+ * @returns {*}
+ */
+
+ commits(id, commit_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all discussions for a single commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectCommitDiscussions(id, commit_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single discussion for a specific project commit.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleCommitDiscussion(id, commit_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions/${encodeURIComponent(discussion_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new discussion to a single project commit. This is similar to creating
+a note but but another comments (replies) can be added to it later..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param params {object}
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @param params.position {hash} - Position when creating a diff note
+ * @param params.position[base_sha] {string} - Base commit SHA in the source branch
+ * @param params.position[start_sha] {string} - SHA referencing commit in target branch
+ * @param params.position[head_sha] {string} - SHA referencing HEAD of this commit
+ * @param params.position[position_type] {string} - Type of the position reference’, allowed values: ‘text’ or ‘image’
+ * @param params.position[new_path] {string} - File path after change
+ * @param params.position[new_line] {integer} - Line number after change
+ * @param params.position[old_path] {string} - File path before change
+ * @param params.position[old_line] {integer} - Line number before change
+ * @param params.position[width] {integer} - Width of the image (for ‘image’ diff notes)
+ * @param params.position[height] {integer} - Height of the image (for ‘image’ diff notes)
+ * @param params.position[x] {integer} - X coordinate (for ‘image’ diff notes)
+ * @param params.position[y] {integer} - Y coordinate (for ‘image’ diff notes)
+ * @returns {*}
+ */
+
+ createNewCommitDiscussion(id, commit_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a new note to the discussion..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param params {object}
+ * @param params.note_id {integer} - The ID of a discussion note
+ * @param params.body {string} - The content of a discussion
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @returns {*}
+ */
+
+ addNoteToExistingCommitDiscussion(id, commit_id, discussion_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions/${encodeURIComponent(discussion_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify or resolve an existing discussion note of a commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @param params.body {string} - The content of a note
+ * @returns {*}
+ */
+
+ modifyAnExistingCommitDiscussionNote(id, commit_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing discussion note of a commit..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param commit_id {integer} - The ID of a commit
+ * @param discussion_id {integer} - The ID of a discussion
+ * @param note_id {integer} - The ID of a discussion note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteACommitDiscussionNote(id, commit_id, discussion_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/commits/${encodeURIComponent(commit_id)}/discussions/${encodeURIComponent(discussion_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Discussions;
+
diff --git a/lib/models/environments.js b/lib/models/environments.js
new file mode 100644
index 0000000..06cc674
--- /dev/null
+++ b/lib/models/environments.js
@@ -0,0 +1,103 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Environments .
+ */
+class Environments extends ModelBase {
+
+ /**
+ * Create Environments .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all environments for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ environmentsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/environments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all environments for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listEnvironments(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/environments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new environment with the given name and external_url..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the environment
+ * @param params.external_url {string} - Place to link to for this environment
+ * @returns {*}
+ */
+
+ createANewEnvironment(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/environments`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing environment’s name and/or external_url..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.environment_id {integer} - The ID of the environment
+ * @param params.name {string} - The new name of the environment
+ * @param params.external_url {string} - The new external_url
+ * @returns {*}
+ */
+
+ editAnExistingEnvironment(id, environments_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/environments/${encodeURIComponent(environments_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It returns 204 if the environment was successfully deleted, and 404 if the environment does not exist..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param environment_id {integer} - The ID of the environment
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnEnvironment(id, environment_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/environments/${encodeURIComponent(environment_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It returns 200 if the environment was successfully stopped, and 404 if the environment does not exist..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param environment_id {integer} - The ID of the environment
+ * @param params {object}
+ * @returns {*}
+ */
+
+ stopAnEnvironment(id, environment_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/environments/${encodeURIComponent(environment_id)}/stop`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Environments;
+
diff --git a/lib/models/epicIssues.js b/lib/models/epicIssues.js
new file mode 100644
index 0000000..794f7ac
--- /dev/null
+++ b/lib/models/epicIssues.js
@@ -0,0 +1,94 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Epic Issues .
+ */
+class EpicIssues extends ModelBase {
+
+ /**
+ * Create Epic Issues .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to epic_issues must be authenticated..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ epicIssuesApiUltimate(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all issues that are assigned to an epic and the authenticated user has access to..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listIssuesForAnEpic(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates an epic - issue association. If the issue in question belongs to another epic it is unassigned from that epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param issue_id {integer/string} - The ID of the issue.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ assignAnIssueToTheEpic(id, epic_iid, issue_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/issues/${encodeURIComponent(issue_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes an epic - issue association..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param epic_issue_id {integer/string} - The ID of the issue - epic association.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeAnIssueFromTheEpic(id, epic_iid, epic_issue_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/issues/${encodeURIComponent(epic_issue_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an epic - issue association..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param epic_issue_id {integer/string} - The ID of the issue - epic association.
+ * @param params {object}
+ * @param params.move_before_id {integer/string} - The ID of the issue - epic association that should be placed before the link in the question.
+ * @param params.move_after_id {integer/string} - The ID of the issue - epic association that should be placed after the link in the question.
+ * @returns {*}
+ */
+
+ updateEpicIssueAssociation(id, epic_iid, epic_issue_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/issues/${encodeURIComponent(epic_issue_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = EpicIssues;
+
diff --git a/lib/models/epics.js b/lib/models/epics.js
new file mode 100644
index 0000000..53c4379
--- /dev/null
+++ b/lib/models/epics.js
@@ -0,0 +1,173 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Epics .
+ */
+class Epics extends ModelBase {
+
+ /**
+ * Create Epics .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to epic must be authenticated..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ epicsApiUltimate(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * The epic issues API allows you to interact with issues associated with an epic..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ epicIssuesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Since start date and due date can be dynamically sourced from related issue milestones, when user has edit permission, additional fields will be shown. These include two boolean fields start_date_is_fixed and due_date_is_fixed, and four date fields start_date_fixed, start_date_from_milestones, due_date_fixed and due_date_from_milestones..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.author_id {integer} - Return epics created by the given user id
+
+ * @param params.labels {string} - Return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used
+ * @param params.order_by {string} - Return epics ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return epics sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search epics against their title and description
+
+ * @param params.state {string} - Search epics against their state, possible filters: opened, closed and all, default: all
+
+ * @returns {*}
+ */
+
+ milestoneDatesIntegration(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all epics of the requested group and its subgroups..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.author_id {integer} - Return epics created by the given user id
+
+ * @param params.labels {string} - Return epics matching a comma separated list of labels names. Label names from the epic group or a parent group can be used
+ * @param params.order_by {string} - Return epics ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return epics sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search epics against their title and description
+
+ * @param params.state {string} - Search epics against their state, possible filters: opened, closed and all, default: all
+
+ * @returns {*}
+ */
+
+ listEpicsForAGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single epic.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleEpic(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.title {string} - The title of the epic
+ * @param params.labels {string} - The comma separated list of labels
+ * @param params.description {string} - The description of the epic
+ * @param params.start_date_is_fixed {boolean} - Whether start date should be sourced from start_date_fixed or from milestones (since 11.3)
+ * @param params.start_date_fixed {string} - The fixed start date of an epic (since 11.3)
+ * @param params.due_date_is_fixed {boolean} - Whether due date should be sourced from due_date_fixed or from milestones (since 11.3)
+ * @param params.due_date_fixed {string} - The fixed due date of an epic (since 11.3)
+ * @returns {*}
+ */
+
+ newEpic(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic
+ * @param params {object}
+ * @param params.title {string} - The title of an epic
+ * @param params.description {string} - The description of an epic
+ * @param params.labels {string} - The comma separated list of labels
+ * @param params.start_date_is_fixed {boolean} - Whether start date should be sourced from start_date_fixed or from milestones (since 11.3)
+ * @param params.start_date_fixed {string} - The fixed start date of an epic (since 11.3)
+ * @param params.due_date_is_fixed {boolean} - Whether due date should be sourced from due_date_fixed or from milestones (since 11.3)
+ * @param params.due_date_fixed {string} - The fixed due date of an epic (since 11.3)
+ * @param params.state_event {string} - State event for an epic. Set close to close the epic and reopen to reopen it (since 11.4)
+ * @returns {*}
+ */
+
+ updateEpic(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an epic.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param epic_iid {integer/string} - The internal ID of the epic.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteEpic(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Manually creates a todo for the current user on an epic. If
+there already exists a todo for the user on that epic, status code 304 is
+returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.epic_iid {integer} - The internal ID of a group’s epic
+ * @returns {*}
+ */
+
+ createATodo(id, epic_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_iid)}/todo`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Epics;
+
diff --git a/lib/models/events.js b/lib/models/events.js
new file mode 100644
index 0000000..63c655e
--- /dev/null
+++ b/lib/models/events.js
@@ -0,0 +1,111 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Events .
+ */
+class Events extends ModelBase {
+
+ /**
+ * Create Events .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * GitLab removes events older than 2 years from the events table for performance reasons..
+
+ * @param params {object}
+ * @param params.action {string} - Include only events of a particular action type
+
+ * @param params.target_type {string} - Include only events of a particular target type
+
+ * @param params.before {date} - Include only events created before a particular date. Please see here for the supported format
+
+ * @param params.after {date} - Include only events created after a particular date. Please see here for the supported format
+
+ * @param params.sort {string} - Sort events in asc or desc order by created_at. Default is desc
+
+ * @returns {*}
+ */
+
+ eventTimePeriodLimit(params) {
+ return this.http.get(`/events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of events for the authenticated user. Scope read_user or api is required..
+
+ * @param params {object}
+ * @param params.action {string} - Include only events of a particular action type
+
+ * @param params.target_type {string} - Include only events of a particular target type
+
+ * @param params.before {date} - Include only events created before a particular date. Please see here for the supported format
+
+ * @param params.after {date} - Include only events created after a particular date. Please see here for the supported format
+
+ * @param params.sort {string} - Sort events in asc or desc order by created_at. Default is desc
+
+ * @returns {*}
+ */
+
+ listCurrentlyAuthenticatedUsersEvents(params) {
+ return this.http.get(`/events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the contribution events for the specified user, sorted from newest to oldest. Scope read_user or api is required..
+
+ * @param id {integer} - The ID or Username of the user
+ * @param params {object}
+ * @param params.action {string} - Include only events of a particular action type
+
+ * @param params.target_type {string} - Include only events of a particular target type
+
+ * @param params.before {date} - Include only events created before a particular date. Please see here for the supported format
+
+ * @param params.after {date} - Include only events created after a particular date. Please see here for the supported format
+
+ * @param params.sort {string} - Sort events in asc or desc order by created_at. Default is desc
+
+ * @returns {*}
+ */
+
+ getUserContributionEvents(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of visible events for a particular project..
+
+ * @param project_id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.action {string} - Include only events of a particular action type
+
+ * @param params.target_type {string} - Include only events of a particular target type
+
+ * @param params.before {date} - Include only events created before a particular date. Please see here for the supported format
+
+ * @param params.after {date} - Include only events created after a particular date. Please see here for the supported format
+
+ * @param params.sort {string} - Sort events in asc or desc order by created_at. Default is desc
+
+ * @returns {*}
+ */
+
+ listAProjectsVisibleEvents(project_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(project_id)}/events`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Events;
+
diff --git a/lib/models/features.js b/lib/models/features.js
new file mode 100644
index 0000000..21aba1e
--- /dev/null
+++ b/lib/models/features.js
@@ -0,0 +1,75 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Features .
+ */
+class Features extends ModelBase {
+
+ /**
+ * Create Features .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * All methods require administrator authorization..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ featuresFlagsApi(params) {
+ return this.http.get(`/features`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all persisted features, with its gate values..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllFeatures(params) {
+ return this.http.get(`/features`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set a feature’s gate value. If a feature with the given name doesn’t exist yet
+it will be created. The value can be a boolean, or an integer to indicate
+percentage of time..
+
+ * @param name {string} - Name of the feature to create or update
+ * @param params {object}
+ * @param params.value {integer/string} -
+true or false to enable/disable, or an integer for percentage of time
+ * @param params.feature_group {string} - A Feature group name
+ * @param params.user {string} - A GitLab username
+ * @returns {*}
+ */
+
+ setOrCreateAFeature(name, params) { // eslint-disable-line camelcase
+ return this.http.post(`/features/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a feature gate. Response is equal when the gate exists, or doesn’t..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAFeature(name, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/features/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Features;
+
diff --git a/lib/models/geoNodes.js b/lib/models/geoNodes.js
new file mode 100644
index 0000000..ec2c8ff
--- /dev/null
+++ b/lib/models/geoNodes.js
@@ -0,0 +1,133 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Geo Nodes .
+ */
+class GeoNodes extends ModelBase {
+
+ /**
+ * Create Geo Nodes .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * In order to interact with Geo node endpoints, you need to authenticate yourself
+as an admin..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ geoNodesApi(params) {
+ return this.http.get(`/geo_nodes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retrieveConfigurationAboutAllGeoNodes(params) {
+ return this.http.get(`/geo_nodes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retrieveConfigurationAboutASpecificGeoNode(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/geo_nodes/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing Geo secondary node. The primary node cannot be edited..
+
+ * @param id {integer} - The ID of the Geo node.
+ * @param params {object}
+ * @param params.enabled {boolean} - Flag indicating if the Geo node is enabled.
+ * @param params.url {string} - The URL to connect to the Geo node.
+ * @param params.files_max_capacity {integer} - Control the maximum concurrency of LFS/attachment backfill for this secondary node.
+ * @param params.repos_max_capacity {integer} - Control the maximum concurrency of repository backfill for this secondary node.
+ * @param params.verification_max_capacity {integer} - Control the maximum concurrency of verification for this node.
+ * @returns {*}
+ */
+
+ editAGeoNode(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/geo_nodes/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes the Geo node..
+
+ * @param id {integer} - The ID of the Geo node.
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAGeoNode(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/geo_nodes/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * To repair the OAuth authentication of a Geo node..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ repairAGeoNode(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/geo_nodes/${encodeURIComponent(id)}/repair`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retrieveStatusAboutAllGeoNodes(params) {
+ return this.http.get(`/geo_nodes/status`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retrieveStatusAboutASpecificGeoNode(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/geo_nodes/${encodeURIComponent(id)}/status`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This only works on a secondary node..
+
+ * @param params {object}
+ * @param params.type {string} - Type of failed objects (repository/wiki)
+ * @param params.failure_type {string} - Type of failures (sync/checksum_mismatch/verification)
+ * @returns {*}
+ */
+
+ retrieveProjectSyncOrVerificationFailuresThatOccurredOnTheCurrentNode(params) {
+ return this.http.get(`/geo_nodes/current/failures`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = GeoNodes;
+
diff --git a/lib/models/groupBadges.js b/lib/models/groupBadges.js
new file mode 100644
index 0000000..b3b08d8
--- /dev/null
+++ b/lib/models/groupBadges.js
@@ -0,0 +1,129 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Group Badges .
+ */
+class GroupBadges extends ModelBase {
+
+ /**
+ * Create Group Badges .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:.
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ groupBadgesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:.
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ placeholderTokens(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of a group’s badges..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllBadgesOfAGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a badge of a group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getABadgeOfAGroup(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a badge to a group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ addABadgeToAGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a badge of a group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ editABadgeOfAGroup(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a badge from a group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeABadgeFromAGroup(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ previewABadgeFromAGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/badges/render`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = GroupBadges;
+
diff --git a/lib/models/groupBoards.js b/lib/models/groupBoards.js
new file mode 100644
index 0000000..54c76c3
--- /dev/null
+++ b/lib/models/groupBoards.js
@@ -0,0 +1,176 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Group Boards .
+ */
+class GroupBoards extends ModelBase {
+
+ /**
+ * Create Group Boards .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to group boards must be authenticated..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupIssueBoardsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Lists Issue Boards in the given group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupBoard(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleBoard(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the new board
+ * @returns {*}
+ */
+
+ createABoard(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/boards`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @param params.name {string} - The new name of the board
+ * @param params.assignee_id {integer} - The assignee the board should be scoped to
+ * @param params.milestone_id {integer} - The milestone the board should be scoped to
+ * @param params.labels {string} - Comma-separated list of label names which the board should be scoped to
+ * @param params.weight {integer} - The weight range from 0 to 9, to which the board should be scoped to
+ * @returns {*}
+ */
+
+ updateABoard(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a board..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteABoard(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of the board’s lists.
+Does not include open and closed lists.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listBoardLists(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single board list..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleBoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new Issue Board list..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param params {object}
+ * @param params.label_id {integer} - The ID of a label
+ * @returns {*}
+ */
+
+ newBoardList(id, board_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing Issue Board list. This call is used to change list position..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @param params.position {integer} - The position of the list
+ * @returns {*}
+ */
+
+ editBoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for admins and group owners. Soft deletes the board list in question..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param board_id {integer} - The ID of a board
+ * @param list_id {integer} - The ID of a board’s list
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteABoardList(id, board_id, list_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/boards/${encodeURIComponent(board_id)}/lists/${encodeURIComponent(list_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = GroupBoards;
+
diff --git a/lib/models/groupLevelVariables.js b/lib/models/groupLevelVariables.js
new file mode 100644
index 0000000..2a0f352
--- /dev/null
+++ b/lib/models/groupLevelVariables.js
@@ -0,0 +1,104 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Group Level Variables .
+ */
+class GroupLevelVariables extends ModelBase {
+
+ /**
+ * Create Group Level Variables .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get list of a group’s variables..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupLevelVariablesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get list of a group’s variables..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listGroupVariables(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the details of a group’s specific variable..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @returns {*}
+ */
+
+ showVariableDetails(id, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a new variable..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.key {string} - The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed
+ * @param params.value {string} - The value of a variable
+ * @param params.protected {boolean} - Whether the variable is protected
+ * @returns {*}
+ */
+
+ createVariable(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update a group’s variable..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @param params.value {string} - The value of a variable
+ * @param params.protected {boolean} - Whether the variable is protected
+ * @returns {*}
+ */
+
+ updateVariable(id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Remove a group’s variable..
+
+ * @param id {integer/string} - The ID of a group or URL-encoded path of the group owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeVariable(id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = GroupLevelVariables;
+
diff --git a/lib/models/groupMilestones.js b/lib/models/groupMilestones.js
new file mode 100644
index 0000000..b29591f
--- /dev/null
+++ b/lib/models/groupMilestones.js
@@ -0,0 +1,128 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Group Milestones .
+ */
+class GroupMilestones extends ModelBase {
+
+ /**
+ * Create Group Milestones .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Returns a list of group milestones..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return only the milestones having the given iid
+
+ * @param params.state {string} - Return only active or closed milestones
+ * @param params.search {string} - Return only milestones with a title or description matching the provided string
+ * @returns {*}
+ */
+
+ groupMilestonesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a list of group milestones..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return only the milestones having the given iid
+
+ * @param params.state {string} - Return only active or closed milestones
+ * @param params.search {string} - Return only milestones with a title or description matching the provided string
+ * @returns {*}
+ */
+
+ listGroupMilestones(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single group milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new group milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewMilestone(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing group milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ editMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for user with developer access to the group..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteGroupMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all issues assigned to a single group milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAllIssuesAssignedToASingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all merge requests assigned to a single group milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAllMergeRequestsAssignedToASingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = GroupMilestones;
+
diff --git a/lib/models/groups.js b/lib/models/groups.js
index 9940097..09b9ec1 100644
--- a/lib/models/groups.js
+++ b/lib/models/groups.js
@@ -1,124 +1,268 @@
-"use strict";
+'use strict';
+
+/*eslint-disable */
const ModelBase = require('../modelBase');
/**
- * Class representing Groups Api
+ * Class representing Groups .
*/
class Groups extends ModelBase {
- /**
- * Create Users Api.
- * @param client {object} - Api instance
- */
- constructor (client) {
- super(client);
- }
-
- init () {
- this.members = this.load('groupMembers');
- }
-
- /**
- * Get group access levels.
- */
- static get ACCESS_LEVELS() {
- return {
- GUEST: 10,
- REPORTER: 20,
- DEVELOPER: 30,
- MASTER: 40,
- OWNER: 50
- };
- }
-
- /**
- * List groups. Get a list of groups. (As user: my groups, as admin: all groups)
- * @returns {*}
- */
- list () {
- return this.http.get(`/groups`, {});
- }
-
- /**
- * List a group's projects. Get a list of projects in this group.
- * @param {number} id - The ID or path of a group.
- * @param {Object} params
- * @param {string=} params.archived - if passed, limit by archived status.
- * @param {string} [params.order_by=created_at] - Return requests ordered by id, name, path, created_at, updated_at or last_activity_at fields. Default is created_at.
- * @param {string} [params.sort=desc] - Return requests sorted in asc or desc order. Default is desc.
- * @param {string=} params.search - Return list of authorized projects according to a search criteria.
- * @param {boolean} [params.ci_enabled_first=false] Return projects ordered by ci_enabled flag. Projects with enabled GitLab CI go first.
- * @returns {*}
- */
- projects (id, params) {
- params = params || {};
-
- return this.http.get(`/groups/${encodeURIComponent(id)}/projects`, params)
- }
-
- /**
- * Details of a group. Get all details of a group.
- * @param {number} id - The ID or path of a group.
- * @returns {*}
- */
- detail (id) {
- return this.http.get(`/groups/${encodeURIComponent(id)}`, {});
- }
-
- /**
- * New group. Creates a new project group. Available only for users who can create groups.
- * @param {Object} params
- * @param {string} params.name - The name of the group.
- * @param {string} params.path - The path of the group.
- * @param {string=} params.description - The group's description.
- * @returns {*}
- */
- create (params) {
- return this.http.post(`/groups`, params);
- }
-
- /**
- * Transfer project to group.Transfer a project to the Group namespace. Available only for admin.
- * @param {number} id - The ID or path of a group.
- * @param {number} project_id - The ID of a project.
- * @returns {*}
- */
- transfer (id, project_id) {
- return this.http.post(`/groups/${encodeURIComponent(id)}/projects/${encodeURIComponent(project_id)}`, {});
- }
-
- /**
- * Remove group.Removes group with all projects inside.
- * @param {number} id - The ID or path of a user group
- * @returns {*}
- */
- remove (id) {
- return this.http.delete(`/groups/${encodeURIComponent(id)}`, {});
- }
-
- /**
- * Search for group.Get all groups that match your string in their name or path.
- * @param {Object} params
- * @param {string} params.search
- * @returns {*}
- */
- search (params) {
- return this.http.get(`/groups`, params);
- }
-
- /**
- * Namespaces in groups.By default, groups only get 20 namespaces at a time because the API results are paginated.To get more (up to 100), pass the following as an argument to the API call:
- * @param {Object=} params
- * @param {number} [per_page=20]
- * @param {number} [page=1]
- * @returns {*}
- */
- namespaces (params) {
- params = params || {};
-
- return this.http.get(`/groups`, params);
- }
+ /**
+ * Create Groups .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of visible groups for the authenticated user. When accessed without
+authentication, only public groups are returned..
+
+ * @param params {object}
+ * @param params.skip_groups {array of integers} - Skip the group IDs passed
+ * @param params.all_available {boolean} - Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence
+ * @param params.search {string} - Return the list of authorized groups matching the search criteria
+ * @param params.order_by {string} - Order groups by name, path or id. Default is name
+
+ * @param params.sort {string} - Order groups in asc or desc order. Default is asc
+
+ * @param params.statistics {boolean} - Include group statistics (admins only)
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.owned {boolean} - Limit to groups explicitly owned by the current user
+ * @param params.min_access_level {integer} - Limit to groups where current user has at least this access level
+
+ * @returns {*}
+ */
+
+ groupsApi(params) {
+ return this.http.get(`/groups`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of visible groups for the authenticated user. When accessed without
+authentication, only public groups are returned..
+
+ * @param params {object}
+ * @param params.skip_groups {array of integers} - Skip the group IDs passed
+ * @param params.all_available {boolean} - Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence
+ * @param params.search {string} - Return the list of authorized groups matching the search criteria
+ * @param params.order_by {string} - Order groups by name, path or id. Default is name
+
+ * @param params.sort {string} - Order groups in asc or desc order. Default is asc
+
+ * @param params.statistics {boolean} - Include group statistics (admins only)
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.owned {boolean} - Limit to groups explicitly owned by the current user
+ * @param params.min_access_level {integer} - Limit to groups where current user has at least this access level
+
+ * @returns {*}
+ */
+
+ listGroups(params) {
+ return this.http.get(`/groups`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of visible direct subgroups in this group.
+When accessed without authentication, only public groups are returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group of the parent group
+ * @param params {object}
+ * @param params.skip_groups {array of integers} - Skip the group IDs passed
+ * @param params.all_available {boolean} - Show all the groups you have access to (defaults to false for authenticated users, true for admin); Attributes owned and min_access_level have precedence
+ * @param params.search {string} - Return the list of authorized groups matching the search criteria
+ * @param params.order_by {string} - Order groups by name, path or id. Default is name
+
+ * @param params.sort {string} - Order groups in asc or desc order. Default is asc
+
+ * @param params.statistics {boolean} - Include group statistics (admins only)
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.owned {boolean} - Limit to groups explicitly owned by the current user
+ * @param params.min_access_level {integer} - Limit to groups where current user has at least this access level
+
+ * @returns {*}
+ */
+
+ listAGroupsSubgroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/subgroups`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of projects in this group. When accessed without authentication, only
+public projects are returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.archived {boolean} - Limit by archived status
+ * @param params.visibility {string} - Limit by visibility public, internal, or private
+
+ * @param params.order_by {string} - Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at
+
+ * @param params.sort {string} - Return projects sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Return list of authorized projects matching the search criteria
+ * @param params.simple {boolean} - Return only the ID, URL, name, and path of each project
+ * @param params.owned {boolean} - Limit by projects owned by the current user
+ * @param params.starred {boolean} - Limit by projects starred by the current user
+ * @param params.with_issues_enabled {boolean} - Limit by enabled issues feature
+ * @param params.with_merge_requests_enabled {boolean} - Limit by enabled merge requests feature
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @returns {*}
+ */
+
+ listAGroupsProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all details of a group. This endpoint can be accessed without authentication
+if the group is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.with_projects {boolean} - Include details from projects that belong to the specified group (defaults to true).
+ * @returns {*}
+ */
+
+ detailsOfAGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project group. Available only for users who can create groups..
+
+ * @param params {object}
+ * @param params.name {string} - The name of the group
+ * @param params.path {string} - The path of the group
+ * @param params.description {string} - The group’s description
+ * @param params.visibility {string} - The group’s visibility. Can be private, internal, or public.
+ * @param params.lfs_enabled {boolean} - Enable/disable Large File Storage (LFS) for the projects in this group
+ * @param params.request_access_enabled {boolean} - Allow users to request member access.
+ * @param params.parent_id {integer} - The parent group id for creating nested group.
+ * @param params.shared_runners_minutes_limit {integer} - (admin-only) Pipeline minutes quota for this group.
+ * @returns {*}
+ */
+
+ newGroup(params) {
+ return this.http.post(`/groups`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Transfer a project to the Group namespace. Available only for admin.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param project_id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ transferProjectToGroup(id, project_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/projects/${encodeURIComponent(project_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates the project group. Only available to group owners and administrators..
+
+ * @param id {integer} - The ID of the group
+ * @param params {object}
+ * @param params.name {string} - The name of the group
+ * @param params.path {string} - The path of the group
+ * @param params.description {string} - The description of the group
+ * @param params.membership_lock {boolean} - Prevent adding new members to project membership within this group
+ * @param params.share_with_group_lock {boolean} - Prevent sharing a project with another group within this group
+ * @param params.visibility {string} - The visibility level of the group. Can be private, internal, or public.
+ * @param params.
+lfs_enabled (optional) {boolean} - Enable/disable Large File Storage (LFS) for the projects in this group
+ * @param params.request_access_enabled {boolean} - Allow users to request member access.
+ * @param params.file_template_project_id {integer} -
+(Premium) The ID of a project to load custom file templates from
+ * @param params.shared_runners_minutes_limit {integer} - (admin-only) Pipeline minutes quota for this group
+ * @returns {*}
+ */
+
+ updateGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes group with all projects inside. Only available to group owners and administrators..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all groups that match your string in their name or path..
+
+ * @param params {object}
+ * @param params.search {String} - The search string
+ * @returns {*}
+ */
+
+ searchForGroup(params) {
+ return this.http.get(`/groups`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Syncs the group with its linked LDAP group. Only available to group owners and administrators..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ syncGroupWithLdap(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/ldap_sync`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Please consult the Group Members documentation..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupMembers(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/ldap_group_links`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds LDAP group link.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ addLdapGroupLink(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/ldap_group_links`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a LDAP group link.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteLdapGroupLink(id, cn, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/ldap_group_links/${encodeURIComponent(cn)}`, params); // eslint-disable-line quotes
+ }
+
}
module.exports = Groups;
+
diff --git a/lib/models/issueLinks.js b/lib/models/issueLinks.js
new file mode 100644
index 0000000..32fddb7
--- /dev/null
+++ b/lib/models/issueLinks.js
@@ -0,0 +1,81 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Issue Links .
+ */
+class IssueLinks extends ModelBase {
+
+ /**
+ * Create Issue Links .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).
+Issues will be filtered according to the user authorizations..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issueLinksApi(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/links`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).
+Issues will be filtered according to the user authorizations..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listIssueRelations(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/links`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a two-way relation between two issues. User must be allowed to update both issues in order to succeed..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @param params.target_project_id {integer/string} - The ID or URL-encoded path of the project of a target project
+ * @param params.target_issue_iid {integer/string} - The internal ID of a target project’s issue
+ * @returns {*}
+ */
+
+ createAnIssueLink(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/links`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an issue link, thus removes the two-way relationship..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param issue_link_id {integer/string} - The ID of an issue relationship
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnIssueLink(id, issue_iid, issue_link_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/links/${encodeURIComponent(issue_link_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = IssueLinks;
+
diff --git a/lib/models/issues.js b/lib/models/issues.js
new file mode 100644
index 0000000..84fc86c
--- /dev/null
+++ b/lib/models/issues.js
@@ -0,0 +1,454 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Issues .
+ */
+class Issues extends ModelBase {
+
+ /**
+ * Create Issues .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to issues must be authenticated..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issuesApi(params) {
+ return this.http.get(`/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * By default, GET requests return 20 results at a time because the API results
+are paginated..
+
+ * @param params {object}
+ * @param params.state {string} - Return all issues or just those that are opened or closed
+
+ * @param params.labels {string} - Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels
+ * @param params.milestone {string} - The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone.
+ * @param params.scope {string} - Return issues for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)
+
+ * @param params.author_id {integer} - Return issues created by the given user id. Combine with scope=all or scope=assigned_to_me. (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.weight {integer} - Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned.
+ * @param params.iids[] {Array[integer]} - Return only the issues having the given iid
+
+ * @param params.order_by {string} - Return issues ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return issues sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search issues against their title and description
+
+ * @param params.created_after {datetime} - Return issues created on or after the given time
+ * @param params.created_before {datetime} - Return issues created on or before the given time
+ * @param params.updated_after {datetime} - Return issues updated on or after the given time
+ * @param params.updated_before {datetime} - Return issues updated on or before the given time
+ * @returns {*}
+ */
+
+ issuesPagination(params) {
+ return this.http.get(`/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all issues the authenticated user has access to. By default it
+returns only issues created by the current user. To get all issues,
+use parameter scope=all..
+
+ * @param params {object}
+ * @param params.state {string} - Return all issues or just those that are opened or closed
+
+ * @param params.labels {string} - Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels
+ * @param params.milestone {string} - The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone.
+ * @param params.scope {string} - Return issues for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)
+
+ * @param params.author_id {integer} - Return issues created by the given user id. Combine with scope=all or scope=assigned_to_me. (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.weight {integer} - Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned.
+ * @param params.iids[] {Array[integer]} - Return only the issues having the given iid
+
+ * @param params.order_by {string} - Return issues ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return issues sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search issues against their title and description
+
+ * @param params.created_after {datetime} - Return issues created on or after the given time
+ * @param params.created_before {datetime} - Return issues created on or before the given time
+ * @param params.updated_after {datetime} - Return issues updated on or after the given time
+ * @param params.updated_before {datetime} - Return issues updated on or before the given time
+ * @returns {*}
+ */
+
+ listIssues(params) {
+ return this.http.get(`/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a group’s issues..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.state {string} - Return all issues or just those that are opened or closed
+
+ * @param params.labels {string} - Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels
+ * @param params.iids[] {Array[integer]} - Return only the issues having the given iid
+
+ * @param params.milestone {string} - The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone.
+ * @param params.scope {string} - Return issues for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)
+
+ * @param params.author_id {integer} - Return issues created by the given user id (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.weight {integer} - Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned.
+ * @param params.order_by {string} - Return issues ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return issues sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search group issues against their title and description
+
+ * @param params.created_after {datetime} - Return issues created on or after the given time
+ * @param params.created_before {datetime} - Return issues created on or before the given time
+ * @param params.updated_after {datetime} - Return issues updated on or after the given time
+ * @param params.updated_before {datetime} - Return issues updated on or before the given time
+ * @returns {*}
+ */
+
+ listGroupIssues(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a project’s issues..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return only the milestone having the given iid
+
+ * @param params.state {string} - Return all issues or just those that are opened or closed
+
+ * @param params.labels {string} - Comma-separated list of label names, issues must have all labels to be returned. No+Label lists all issues with no labels
+ * @param params.milestone {string} - The milestone title. None lists all issues with no milestone. Any lists all issues that have an assigned milestone.
+ * @param params.scope {string} - Return issues for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)
+
+ * @param params.author_id {integer} - Return issues created by the given user id (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Return issues assigned to the given user id. None returns unassigned issues. Any returns issues with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return issues reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.weight {integer} - Return issues with the specified weight. None returns issues with no weight assigned. Any returns issues with a weight assigned.
+ * @param params.order_by {string} - Return issues ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return issues sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Search project issues against their title and description
+
+ * @param params.created_after {datetime} - Return issues created on or after the given time
+ * @param params.created_before {datetime} - Return issues created on or before the given time
+ * @param params.updated_after {datetime} - Return issues updated on or after the given time
+ * @param params.updated_before {datetime} - Return issues updated on or before the given time
+ * @returns {*}
+ */
+
+ listProjectIssues(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single project issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.iid {integer/string} - The internal ID of the project’s issue (requires admin or project owner rights)
+ * @param params.title {string} - The title of an issue
+ * @param params.description {string} - The description of an issue
+ * @param params.confidential {boolean} - Set an issue to be confidential. Default is false.
+ * @param params.assignee_ids {Array[integer]} - The ID of a user to assign issue
+ * @param params.milestone_id {integer} - The global ID of a milestone to assign issue
+ * @param params.labels {string} - Comma-separated label names for an issue
+ * @param params.created_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights)
+ * @param params.due_date {string} - Date time string in the format YEAR-MONTH-DAY, e.g. 2016-03-11
+
+ * @param params.merge_request_to_resolve_discussions_of {integer} - The IID of a merge request in which to resolve all issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values.
+ * @param params.discussion_to_resolve {string} - The ID of a discussion to resolve. This will fill in the issue with a default description and mark the discussion as resolved. Use in combination with merge_request_to_resolve_discussions_of.
+ * @param params.weight {integer} - The weight of the issue. Valid values are greater than or equal to 0.
+ * @returns {*}
+ */
+
+ newIssue(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing project issue. This call is also used to mark an issue as
+closed..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @param params.title {string} - The title of an issue
+ * @param params.description {string} - The description of an issue
+ * @param params.confidential {boolean} - Updates an issue to be confidential
+ * @param params.assignee_ids {Array[integer]} - The ID of the user(s) to assign the issue to. Set to 0 or provide an empty value to unassign all assignees.
+ * @param params.milestone_id {integer} - The global ID of a milestone to assign the issue to. Set to 0 or provide an empty value to unassign a milestone.
+ * @param params.labels {string} - Comma-separated label names for an issue. Set to an empty string to unassign all labels.
+ * @param params.state_event {string} - The state event of an issue. Set close to close the issue and reopen to reopen it
+ * @param params.updated_at {string} - Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project owner rights)
+ * @param params.due_date {string} - Date time string in the format YEAR-MONTH-DAY, e.g. 2016-03-11
+
+ * @param params.weight {integer} - The weight of the issue. Valid values are greater than or equal to 0. 0
+ * @param params.discussion_locked {boolean} - Flag indicating if the issue’s discussion is locked. If the discussion is locked only project members can add or edit comments.
+ * @returns {*}
+ */
+
+ editIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for admins and project owners. Soft deletes the issue in question..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Moves an issue to a different project. If the target project
+equals the source project or the user has insufficient permissions to move an
+issue, error 400 together with an explaining error message is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @param params.to_project_id {integer} - The ID of the new project
+ * @returns {*}
+ */
+
+ moveAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/move`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Subscribes the authenticated user to an issue to receive notifications.
+If the user is already subscribed to the issue, the status code 304
+is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ subscribeToAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/subscribe`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unsubscribes the authenticated user from the issue to not receive notifications
+from it. If the user is not subscribed to the issue, the
+status code 304 is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unsubscribeFromAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/unsubscribe`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Manually creates a todo for the current user on an issue. If
+there already exists a todo for the user on that issue, status code 304 is
+returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createATodo(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/todo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sets an estimated time of work for this issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @param params.duration {string} - The duration in human format. e.g: 3h30m
+ * @returns {*}
+ */
+
+ setATimeEstimateForAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/time_estimate`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Resets the estimated time for this issue to 0 seconds..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ resetTheTimeEstimateForAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/reset_time_estimate`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds spent time for this issue.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @param params.duration {string} - The duration in human format. e.g: 3h30m
+ * @returns {*}
+ */
+
+ addSpentTimeForAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/add_spent_time`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Resets the total spent time for this issue to 0 seconds..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ resetSpentTimeForAnIssue(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/reset_spent_time`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTimeTrackingStats(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/time_stats`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all the merge requests that are related to the issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.issue_iid {integer} - The internal ID of a project’s issue
+ * @returns {*}
+ */
+
+ listMergeRequestsRelatedToIssue(id, issue_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_id)}/related_merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all the merge requests that will close issue when merged..
+
+ * @param id {integer} - The ID of a project
+ * @param issue_iid {integer} - The internal ID of a project issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listMergeRequestsThatWillCloseIssueOnMerge(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/closed_by`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ participantsOnIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/participants`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Comments are done via the notes resource..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ commentsOnIssues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/user_agent_detail`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Available only for admins..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param issue_iid {integer} - The internal ID of a project’s issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getUserAgentDetails(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/user_agent_detail`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Issues;
+
diff --git a/lib/models/jobs.js b/lib/models/jobs.js
new file mode 100644
index 0000000..be45584
--- /dev/null
+++ b/lib/models/jobs.js
@@ -0,0 +1,199 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Jobs .
+ */
+class Jobs extends ModelBase {
+
+ /**
+ * Create Jobs .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of jobs in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string or array of strings} - The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided
+ * @returns {*}
+ */
+
+ jobsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of jobs in a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string or array of strings} - The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided
+ * @returns {*}
+ */
+
+ listProjectJobs(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of jobs for a pipeline..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_id {integer} - The ID of a pipeline
+ * @param params {object}
+ * @param params.scope {string or array of strings} - The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided
+ * @returns {*}
+ */
+
+ listPipelineJobs(id, pipeline_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipelines/${encodeURIComponent(pipeline_id)}/jobs`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single job of a project.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASingleJob(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get job artifacts of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @param params.job_token {string} - To be used with triggers for multi-project pipelines. Is should be invoked only inside .gitlab-ci.yml. Its value is always $CI_JOB_TOKEN.
+ * @returns {*}
+ */
+
+ getJobArtifacts(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/artifacts`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Download the artifacts archive from the given reference name and job provided the
+job finished successfully..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param ref_name {string} - The ref from a repository (can only be branch or tag name, not HEAD or SHA)
+ * @param params {object}
+ * @param params.job {string} - The name of the job
+ * @param params.job_token {string} - To be used with triggers for multi-project pipelines. Is should be invoked only inside .gitlab-ci.yml. Its value is always $CI_JOB_TOKEN.
+ * @returns {*}
+ */
+
+ downloadTheArtifactsArchive(id, ref_name, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs/artifacts/${encodeURIComponent(ref_name)}/download`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Download a single artifact file from within the job’s artifacts archive..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.job_id {integer} - The unique job identifier
+ * @param params.artifact_path {string} - Path to a file inside the artifacts archive
+ * @returns {*}
+ */
+
+ downloadASingleArtifactFile(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/artifacts/*artifact_path`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a trace of a specific job of a project.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getATraceFile(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/trace`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Cancel a single job of a project.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ cancelAJob(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/cancel`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Retry a single job of a project.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retryAJob(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/retry`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Erase a single job of a project (remove job artifacts and a job trace).
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ eraseAJob(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/erase`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Prevents artifacts from being deleted when expiration is set..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ keepArtifacts(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/artifacts/keep`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Triggers a manual action to start a job..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param job_id {integer} - The ID of a job
+ * @param params {object}
+ * @returns {*}
+ */
+
+ playAJob(id, job_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/jobs/${encodeURIComponent(job_id)}/play`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Jobs;
+
diff --git a/lib/models/keys.js b/lib/models/keys.js
new file mode 100644
index 0000000..51892c3
--- /dev/null
+++ b/lib/models/keys.js
@@ -0,0 +1,48 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Keys .
+ */
+class Keys extends ModelBase {
+
+ /**
+ * Create Keys .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ keysApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/keys/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSshKeyWithUserByIdOfAnSshKey(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/keys/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Keys;
+
diff --git a/lib/models/labels.js b/lib/models/labels.js
new file mode 100644
index 0000000..5d3e2ba
--- /dev/null
+++ b/lib/models/labels.js
@@ -0,0 +1,127 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Labels .
+ */
+class Labels extends ModelBase {
+
+ /**
+ * Create Labels .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all labels for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ labelsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/labels`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all labels for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listLabels(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/labels`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new label for the given repository with the given name and color..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the label
+ * @param params.color {string} - The color of the label given in 6-digit hex notation with leading ‘#’ sign (e.g. #FFAABB) or one of the CSS color names
+
+ * @param params.description {string} - The description of the label
+ * @param params.priority {integer} - The priority of the label. Must be greater or equal than zero or null to remove the priority.
+ * @returns {*}
+ */
+
+ createANewLabel(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/labels`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a label with a given name..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the label
+ * @returns {*}
+ */
+
+ deleteALabel(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/labels`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing label with new name or new color. At least one parameter
+is required, to update the label..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the existing label
+ * @param params.new_name {string} - The new name of the label
+ * @param params.color {string} - The color of the label given in 6-digit hex notation with leading ‘#’ sign (e.g. #FFAABB) or one of the CSS color names
+
+ * @param params.description {string} - The new description of the label
+ * @param params.priority {integer} - The new priority of the label. Must be greater or equal than zero or null to remove the priority.
+ * @returns {*}
+ */
+
+ editAnExistingLabel(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/labels`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Subscribes the authenticated user to a label to receive notifications.
+If the user is already subscribed to the label, the status code 304
+is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param label_id {integer or string} - The ID or title of a project’s label
+ * @param params {object}
+ * @returns {*}
+ */
+
+ subscribeToALabel(id, label_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/labels/${encodeURIComponent(label_id)}/subscribe`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unsubscribes the authenticated user from a label to not receive notifications
+from it. If the user is not subscribed to the label, the
+status code 304 is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param label_id {integer or string} - The ID or title of a project’s label
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unsubscribeFromALabel(id, label_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/labels/${encodeURIComponent(label_id)}/unsubscribe`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Labels;
+
diff --git a/lib/models/license.js b/lib/models/license.js
new file mode 100644
index 0000000..4204605
--- /dev/null
+++ b/lib/models/license.js
@@ -0,0 +1,61 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing License .
+ */
+class License extends ModelBase {
+
+ /**
+ * Create License .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * In order to interact with license endpoints, you need to authenticate yourself
+as an admin..
+
+ * @param params {object}
+ * @param params.license {string} - The license string
+ * @returns {*}
+ */
+
+ license(params) {
+ return this.http.get(`/license`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @param params.license {string} - The license string
+ * @returns {*}
+ */
+
+ retrieveInformationAboutTheCurrentLicense(params) {
+ return this.http.get(`/license`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @param params.license {string} - The license string
+ * @returns {*}
+ */
+
+ addANewLicense(params) {
+ return this.http.post(`/license`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = License;
+
diff --git a/lib/models/lint.js b/lib/models/lint.js
new file mode 100644
index 0000000..02d0e14
--- /dev/null
+++ b/lib/models/lint.js
@@ -0,0 +1,36 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Lint .
+ */
+class Lint extends ModelBase {
+
+ /**
+ * Create Lint .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Checks if your .gitlab-ci.yml file is valid..
+
+ * @param params {object}
+ * @param params.content {string} - the .gitlab-ci.yaml content
+ * @returns {*}
+ */
+
+ validateTheGitlabCiymlApi(params) {
+ return this.http.post(`/lint`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Lint;
+
diff --git a/lib/models/managedLicenses.js b/lib/models/managedLicenses.js
new file mode 100644
index 0000000..db89a40
--- /dev/null
+++ b/lib/models/managedLicenses.js
@@ -0,0 +1,102 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Managed Licenses .
+ */
+class ManagedLicenses extends ModelBase {
+
+ /**
+ * Create Managed Licenses .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all managed licenses for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ managedLicensesApiUltimate(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/managed_licenses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all managed licenses for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listManagedLicenses(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/managed_licenses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Shows an existing managed license..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param managed_license_id {integer/string} - The ID or URL-encoded name of the license belonging to the project
+ * @param params {object}
+ * @returns {*}
+ */
+
+ showAnExistingManagedLicense(id, managed_license_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/managed_licenses/${encodeURIComponent(managed_license_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new managed license for the given project with the given name and approval status..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the managed license
+ * @param params.approval_status {string} - The approval status. “approved” or “blacklisted”
+ * @returns {*}
+ */
+
+ createANewManagedLicense(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/managed_licenses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a managed license with a given id..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param managed_license_id {integer/string} - The ID or URL-encoded name of the license belonging to the project
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAManagedLicense(id, managed_license_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/managed_licenses/${encodeURIComponent(managed_license_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing managed license with a new approval status..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param managed_license_id {integer/string} - The ID or URL-encoded name of the license belonging to the project
+ * @param params {object}
+ * @param params.approval_status {string} - The approval status. “approved” or “blacklisted”
+ * @returns {*}
+ */
+
+ editAnExistingManagedLicense(id, managed_license_id, params) { // eslint-disable-line camelcase
+ return this.http.patch(`/projects/${encodeURIComponent(id)}/managed_licenses/${encodeURIComponent(managed_license_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ManagedLicenses;
+
diff --git a/lib/models/markdown.js b/lib/models/markdown.js
new file mode 100644
index 0000000..8ac9b87
--- /dev/null
+++ b/lib/models/markdown.js
@@ -0,0 +1,54 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Markdown .
+ */
+class Markdown extends ModelBase {
+
+ /**
+ * Create Markdown .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Available only in APIv4..
+
+ * @param params {object}
+ * @param params.text {string} - The markdown text to render
+ * @param params.gfm {boolean} - Render text using GitLab Flavored Markdown. Default is false
+
+ * @param params.project {string} - Use project as a context when creating references using GitLab Flavored Markdown. Authentication is required if a project is not public.
+ * @returns {*}
+ */
+
+ markdownApi(params) {
+ return this.http.post(`/api/v4/markdown`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Response example:.
+
+ * @param params {object}
+ * @param params.text {string} - The markdown text to render
+ * @param params.gfm {boolean} - Render text using GitLab Flavored Markdown. Default is false
+
+ * @param params.project {string} - Use project as a context when creating references using GitLab Flavored Markdown. Authentication is required if a project is not public.
+ * @returns {*}
+ */
+
+ renderAnArbitraryMarkdownDocument(params) {
+ return this.http.post(`/api/v4/markdown`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Markdown;
+
diff --git a/lib/models/members.js b/lib/models/members.js
new file mode 100644
index 0000000..ff3745b
--- /dev/null
+++ b/lib/models/members.js
@@ -0,0 +1,192 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Members .
+ */
+class Members extends ModelBase {
+
+ /**
+ * Create Members .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Gets a list of group or project members viewable by the authenticated user.
+Returns only direct members and not inherited members through ancestors groups..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.query {string} - A query string to search for members
+ * @returns {*}
+ */
+
+ listAllMembersOfAGroupOrProjectProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/members`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of group or project members viewable by the authenticated user.
+Returns only direct members and not inherited members through ancestors groups..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.query {string} - A query string to search for members
+ * @returns {*}
+ */
+
+ listAllMembersOfAGroupOrProjectGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/members`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.
+Returns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.query {string} - A query string to search for members
+ * @returns {*}
+ */
+
+ listAllMembersOfAGroupOrProjectIncludingInheritedMembersProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/members/all`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of group or project members viewable by the authenticated user, including inherited members through ancestor groups.
+Returns multiple times the same user (with different member attributes) when the user is a member of the project/group and of one or more ancestor group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.query {string} - A query string to search for members
+ * @returns {*}
+ */
+
+ listAllMembersOfAGroupOrProjectIncludingInheritedMembersGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/members/all`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a member of a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAMemberOfAGroupOrProjectProjects(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a member of a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAMemberOfAGroupOrProjectGroups(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a member to a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.user_id {integer} - The user ID of the new member
+ * @param params.access_level {integer} - A valid access level
+ * @param params.expires_at {string} - A date string in the format YEAR-MONTH-DAY
+ * @returns {*}
+ */
+
+ addAMemberToAGroupOrProjectProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/members`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a member to a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param params {object}
+ * @param params.user_id {integer} - The user ID of the new member
+ * @param params.access_level {integer} - A valid access level
+ * @param params.expires_at {string} - A date string in the format YEAR-MONTH-DAY
+ * @returns {*}
+ */
+
+ addAMemberToAGroupOrProjectGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/members`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a member of a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @param params.access_level {integer} - A valid access level
+ * @param params.expires_at {string} - A date string in the format YEAR-MONTH-DAY
+ * @returns {*}
+ */
+
+ editAMemberOfAGroupOrProjectProjects(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a member of a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @param params.access_level {integer} - A valid access level
+ * @param params.expires_at {string} - A date string in the format YEAR-MONTH-DAY
+ * @returns {*}
+ */
+
+ editAMemberOfAGroupOrProjectGroups(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a user from a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeAMemberFromAGroupOrProjectProjects(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a user from a group or project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project or group owned by the authenticated user
+ * @param user_id {integer} - The user ID of the member
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeAMemberFromAGroupOrProjectGroups(id, user_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/members/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Members;
+
diff --git a/lib/models/mergeRequestApprovals.js b/lib/models/mergeRequestApprovals.js
new file mode 100644
index 0000000..eb5d37e
--- /dev/null
+++ b/lib/models/mergeRequestApprovals.js
@@ -0,0 +1,179 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Merge Request Approvals .
+ */
+class MergeRequestApprovals extends ModelBase {
+
+ /**
+ * Create Merge Request Approvals .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Configuration for approvals on all Merge Requests (MR) in the project. Must be authenticated for all endpoints..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mergeRequestApprovalsApiStarter(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * You can request information about a project’s approval configuration using the
+following endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectLevelMrApprovals(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * You can request information about a project’s approval configuration using the
+following endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getConfiguration(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you are allowed to, you can change approval configuration using the following
+endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param params {object}
+ * @param params.approvals_before_merge {integer} - How many approvals are required before an MR can be merged
+ * @param params.reset_approvals_on_push {boolean} - Reset approvals on a new push
+ * @param params.disable_overriding_approvers_per_merge_request {boolean} - Allow/Disallow overriding approvers per MR
+ * @returns {*}
+ */
+
+ changeConfiguration(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you are allowed to, you can change approvers and approver groups using
+the following endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param params {object}
+ * @param params.approver_ids {Array} - An array of User IDs that can approve MRs
+ * @param params.approver_group_ids {Array} - An array of Group IDs whose members can approve MRs
+ * @returns {*}
+ */
+
+ changeAllowedApprovers(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/approvers`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Configuration for approvals on a specific Merge Request. Must be authenticated for all endpoints..
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mergeRequestLevelMrApprovals(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * You can request information about a merge request’s approval status using the
+following endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getApprovalConfiguration(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you are allowed to, you can change approvals_required using the following
+endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @param params.approvals_required {integer} - Approvals required before MR can be merged
+ * @returns {*}
+ */
+
+ changeApprovalConfiguration(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/approvals`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you are allowed to, you can change approvers and approver groups using
+the following endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @param params.approver_ids {Array} - An array of User IDs that can approve the MR
+ * @param params.approver_group_ids {Array} - An array of Group IDs whose members can approve the MR
+ * @returns {*}
+ */
+
+ changeAllowedApproversForMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/approvers`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you are allowed to, you can approve a merge request using the following
+endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @param params.sha {string} - The HEAD of the MR
+ * @returns {*}
+ */
+
+ approveMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/approve`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you did approve a merge request, you can unapprove it using the following
+endpoint:.
+
+ * @param id {integer} - The ID of a project
+ * @param merge_request_iid {integer} - The IID of MR
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unapproveMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/unapprove`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = MergeRequestApprovals;
+
diff --git a/lib/models/mergeRequests.js b/lib/models/mergeRequests.js
new file mode 100644
index 0000000..ab6b385
--- /dev/null
+++ b/lib/models/mergeRequests.js
@@ -0,0 +1,462 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Merge Requests .
+ */
+class MergeRequests extends ModelBase {
+
+ /**
+ * Create Merge Requests .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Every API call to merge requests must be authenticated..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mergeRequestsApi(params) {
+ return this.http.get(`/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all merge requests the authenticated user has access to. By
+default it returns only merge requests created by the current user. To
+get all merge requests, use parameter scope=all..
+
+ * @param params {object}
+ * @param params.state {string} - Return all merge requests or just those that are opened, closed, locked, or merged
+
+ * @param params.order_by {string} - Return requests ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return requests sorted in asc or desc order. Default is desc
+
+ * @param params.milestone {string} - Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone.
+ * @param params.view {string} - If simple, returns the iid, URL, title, description, and basic state of merge request
+ * @param params.labels {string} - Return merge requests matching a comma separated list of labels
+ * @param params.created_after {datetime} - Return merge requests created on or after the given time
+ * @param params.created_before {datetime} - Return merge requests created on or before the given time
+ * @param params.updated_after {datetime} - Return merge requests updated on or after the given time
+ * @param params.updated_before {datetime} - Return merge requests updated on or before the given time
+ * @param params.scope {string} - Return merge requests for the given scope: created_by_me, assigned_to_me or all. Defaults to created_by_me For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead.
+ * @param params.author_id {integer} - Returns merge requests created by the given user id. Combine with scope=all or scope=assigned_to_me
+
+ * @param params.assignee_id {integer} - Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee.
+ * @param params.my_reaction_emoji {string} - Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.source_branch {string} - Return merge requests with the given source branch
+ * @param params.target_branch {string} - Return merge requests with the given target branch
+ * @param params.search {string} - Search merge requests against their title and description
+
+ * @param params.wip {string} - Filter merge requests against their wip status. yes to return only WIP merge requests, no to return non WIP merge requests
+ * @returns {*}
+ */
+
+ listMergeRequests(params) {
+ return this.http.get(`/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all merge requests for this project.
+The state parameter can be used to get only merge requests with a given state (opened, closed, locked, or merged) or all of them (all).
+The pagination parameters page and per_page can be used to restrict the list of merge requests..
+
+ * @param id {integer} - The ID of a project
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return the request having the given iid
+
+ * @param params.state {string} - Return all merge requests or just those that are opened, closed, locked, or merged
+
+ * @param params.order_by {string} - Return requests ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return requests sorted in asc or desc order. Default is desc
+
+ * @param params.milestone {string} - Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone.
+ * @param params.view {string} - If simple, returns the iid, URL, title, description, and basic state of merge request
+ * @param params.labels {string} - Return merge requests matching a comma separated list of labels
+ * @param params.created_after {datetime} - Return merge requests created on or after the given time
+ * @param params.created_before {datetime} - Return merge requests created on or before the given time
+ * @param params.updated_after {datetime} - Return merge requests updated on or after the given time
+ * @param params.updated_before {datetime} - Return merge requests updated on or before the given time
+ * @param params.scope {string} - Return merge requests for the given scope: created_by_me, assigned_to_me or all. For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead. (Introduced in GitLab 9.5. Changed to snake_case in GitLab 11.0)
+
+ * @param params.author_id {integer} - Returns merge requests created by the given user id (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.source_branch {string} - Return merge requests with the given source branch
+ * @param params.target_branch {string} - Return merge requests with the given target branch
+ * @param params.search {string} - Search merge requests against their title and description
+
+ * @returns {*}
+ */
+
+ listProjectMergeRequests(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all merge requests for this group and its subgroups.
+The state parameter can be used to get only merge requests with a given state (opened, closed, locked, or merged) or all of them (all).
+The pagination parameters page and per_page can be used to restrict the list of merge requests..
+
+ * @param id {integer} - The ID of a group
+ * @param params {object}
+ * @param params.state {string} - Return all merge requests or just those that are opened, closed, locked, or merged
+
+ * @param params.order_by {string} - Return merge requests ordered by created_at or updated_at fields. Default is created_at
+
+ * @param params.sort {string} - Return merge requests sorted in asc or desc order. Default is desc
+
+ * @param params.milestone {string} - Return merge requests for a specific milestone. None returns merge requests with no milestone. Any returns merge requests that have an assigned milestone.
+ * @param params.view {string} - If simple, returns the iid, URL, title, description, and basic state of merge request
+ * @param params.labels {string} - Return merge requests matching a comma separated list of labels
+ * @param params.created_after {datetime} - Return merge requests created on or after the given time
+ * @param params.created_before {datetime} - Return merge requests created on or before the given time
+ * @param params.updated_after {datetime} - Return merge requests updated on or after the given time
+ * @param params.updated_before {datetime} - Return merge requests updated on or before the given time
+ * @param params.scope {string} - Return merge requests for the given scope: created_by_me, assigned_to_me or all.
+
+ * @param params.author_id {integer} - Returns merge requests created by the given user id (Introduced in GitLab 9.5)
+
+ * @param params.assignee_id {integer} - Returns merge requests assigned to the given user id. None returns unassigned merge requests. Any returns merge requests with an assignee. (Introduced in GitLab 9.5)
+
+ * @param params.my_reaction_emoji {string} - Return merge requests reacted by the authenticated user by the given emoji. None returns issues not given a reaction. Any returns issues given at least one reaction. (Introduced in GitLab 10.0)
+
+ * @param params.source_branch {string} - Return merge requests with the given source branch
+ * @param params.target_branch {string} - Return merge requests with the given target branch
+ * @param params.search {string} - Search merge requests against their title and description
+
+ * @returns {*}
+ */
+
+ listGroupMergeRequests(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Shows information about a single merge request..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMr(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of merge request participants..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMrParticipants(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/participants`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of merge request commits..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMrCommits(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/commits`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Shows information about the merge request including its files and changes..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMrChanges(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/changes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of merge request pipelines..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listMrPipelines(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/pipelines`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.source_branch {string} - The source branch
+ * @param params.target_branch {string} - The target branch
+ * @param params.title {string} - Title of MR
+ * @param params.assignee_id {integer} - Assignee user ID
+ * @param params.description {string} - Description of MR
+ * @param params.target_project_id {integer} - The target project (numeric id)
+ * @param params.labels {string} - Labels for MR as a comma-separated list
+ * @param params.milestone_id {integer} - The global ID of a milestone
+ * @param params.remove_source_branch {boolean} - Flag indicating if a merge request should remove the source branch when merging
+ * @param params.allow_collaboration {boolean} - Allow commits from members who can merge to the target branch
+ * @param params.allow_maintainer_to_push {boolean} - Deprecated, see allow_collaboration
+ * @param params.squash {boolean} - Squash commits into a single commit when merging
+ * @returns {*}
+ */
+
+ createMr(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing merge request. You can change the target branch, title, or even close the MR..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The ID of a merge request
+ * @param params {object}
+ * @param params.target_branch {string} - The target branch
+ * @param params.title {string} - Title of MR
+ * @param params.assignee_id {integer} - The ID of the user to assign the merge request to. Set to 0 or provide an empty value to unassign all assignees.
+ * @param params.milestone_id {integer} - The global ID of a milestone to assign the merge request to. Set to 0 or provide an empty value to unassign a milestone.
+ * @param params.labels {string} - Comma-separated label names for a merge request. Set to an empty string to unassign all labels.
+ * @param params.description {string} - Description of MR
+ * @param params.state_event {string} - New state (close/reopen)
+ * @param params.remove_source_branch {boolean} - Flag indicating if a merge request should remove the source branch when merging
+ * @param params.squash {boolean} - Squash commits into a single commit when merging
+ * @param params.discussion_locked {boolean} - Flag indicating if the merge request’s discussion is locked. If the discussion is locked only project members can add, edit or resolve comments.
+ * @param params.allow_collaboration {boolean} - Allow commits from members who can merge to the target branch
+ * @param params.allow_maintainer_to_push {boolean} - Deprecated, see allow_collaboration
+ * @returns {*}
+ */
+
+ updateMr(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for admins and project owners. Soft deletes the merge request in question..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Merge changes submitted with MR using this API..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ acceptMr(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/merge`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * If you don’t have permissions to accept this merge request - you’ll get a 401.
+
+ * @param id {} - undefined
+ * @param merge_request_iid {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ cancelMergeWhenPipelineSucceeds(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/cancel_merge_when_pipeline_succeeds`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Comments are done via the notes resource..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ commentsOnMergeRequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/closes_issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all the issues that would be closed by merging the provided merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listIssuesThatWillCloseOnMerge(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/closes_issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Subscribes the authenticated user to a merge request to receive notification. If the user is already subscribed to the merge request, the
+status code 304 is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ subscribeToAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/subscribe`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unsubscribes the authenticated user from a merge request to not receive
+notifications from that merge request. If the user is
+not subscribed to the merge request, the status code 304 is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unsubscribeFromAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/unsubscribe`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Manually creates a todo for the current user on a merge request.
+If there already exists a todo for the user on that merge request,
+status code 304 is returned..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createATodo(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/todo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of merge request diff versions..
+
+ * @param id {String} - The ID of the project
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getMrDiffVersions(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/versions`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single merge request diff version..
+
+ * @param id {String} - The ID of the project
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param version_id {integer} - The ID of the merge request diff version
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASingleMrDiffVersion(id, merge_request_iid, version_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/versions/${encodeURIComponent(version_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Sets an estimated time of work for this merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @param params.duration {string} - The duration in human format. e.g: 3h30m
+ * @returns {*}
+ */
+
+ setATimeEstimateForAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/time_estimate`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Resets the estimated time for this merge request to 0 seconds..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of a project’s merge_request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ resetTheTimeEstimateForAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/reset_time_estimate`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds spent time for this merge request.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @param params.duration {string} - The duration in human format. e.g: 3h30m
+ * @returns {*}
+ */
+
+ addSpentTimeForAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/add_spent_time`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Resets the total spent time for this merge request to 0 seconds..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of a project’s merge_request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ resetSpentTimeForAMergeRequest(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/reset_spent_time`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param merge_request_iid {integer} - The internal ID of the merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTimeTrackingStats(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/time_stats`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = MergeRequests;
+
diff --git a/lib/models/milestones.js b/lib/models/milestones.js
new file mode 100644
index 0000000..3dcdfef
--- /dev/null
+++ b/lib/models/milestones.js
@@ -0,0 +1,128 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Milestones .
+ */
+class Milestones extends ModelBase {
+
+ /**
+ * Create Milestones .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Returns a list of project milestones..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return only the milestones having the given iid
+
+ * @param params.state {string} - Return only active or closed milestones
+ * @param params.search {string} - Return only milestones with a title or description matching the provided string
+ * @returns {*}
+ */
+
+ milestonesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a list of project milestones..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.iids[] {Array[integer]} - Return only the milestones having the given iid
+
+ * @param params.state {string} - Return only active or closed milestones
+ * @param params.search {string} - Return only milestones with a title or description matching the provided string
+ * @returns {*}
+ */
+
+ listProjectMilestones(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single project milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewMilestone(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/milestones`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing project milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ editMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Only for user with developer access to the project..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteProjectMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all issues assigned to a single project milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAllIssuesAssignedToASingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}/issues`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets all merge requests assigned to a single project milestone..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAllMergeRequestsAssignedToASingleMilestone(id, milestone_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/milestones/${encodeURIComponent(milestone_id)}/merge_requests`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Milestones;
+
diff --git a/lib/models/namespaces.js b/lib/models/namespaces.js
new file mode 100644
index 0000000..12c2fbf
--- /dev/null
+++ b/lib/models/namespaces.js
@@ -0,0 +1,71 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Namespaces .
+ */
+class Namespaces extends ModelBase {
+
+ /**
+ * Create Namespaces .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Usernames and groupnames fall under a special category called namespaces..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ namespacesApi(params) {
+ return this.http.get(`/namespaces`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of the namespaces of the authenticated user. If the user is an
+administrator, a list of all namespaces in the GitLab instance is shown..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listNamespaces(params) {
+ return this.http.get(`/namespaces`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all namespaces that match a string in their name or path..
+
+ * @param params {object}
+ * @param params.search {string} - Returns a list of namespaces the user is authorized to see based on the search criteria
+ * @returns {*}
+ */
+
+ searchForNamespace(params) {
+ return this.http.get(`/namespaces`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a namespace by ID..
+
+ * @param id {integer/string} - ID or path of the namespace
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getNamespaceById(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/namespaces/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Namespaces;
+
diff --git a/lib/models/notes.js b/lib/models/notes.js
new file mode 100644
index 0000000..773299c
--- /dev/null
+++ b/lib/models/notes.js
@@ -0,0 +1,404 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Notes .
+ */
+class Notes extends ModelBase {
+
+ /**
+ * Create Notes .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Notes are comments on snippets, issues, merge requests or epics..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @param params.sort {string} - Return issue notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return issue notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ notesApi(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @param params.sort {string} - Return issue notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return issue notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ issues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @param params.sort {string} - Return issue notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return issue notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ listProjectIssueNotes(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single note for a specific project issue.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleIssueNote(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new note to a single project issue..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewIssueNote(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing note of an issue..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ modifyExistingIssueNote(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing note of an issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnIssueNote(id, issue_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of a project snippet
+ * @param params {object}
+ * @param params.sort {string} - Return snippet notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return snippet notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ snippets(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of a project snippet
+ * @param params {object}
+ * @param params.sort {string} - Return snippet notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return snippet notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ listAllSnippetNotes(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single note for a given snippet..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleSnippetNote(id, snippet_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new note for a single snippet. Snippet notes are comments users can post to a snippet.
+If you create a note where the body only contains an Award Emoji, you’ll receive this object back..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewSnippetNote(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing note of a snippet..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ modifyExistingSnippetNote(id, snippet_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing note of a snippet..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param snippet_id {integer} - The ID of a snippet
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteASnippetNote(id, snippet_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a project merge request
+ * @param params {object}
+ * @param params.sort {string} - Return merge request notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return merge request notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ mergeRequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a project merge request
+ * @param params {object}
+ * @param params.sort {string} - Return merge request notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return merge request notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ listAllMergeRequestNotes(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single note for a given merge request..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMergeRequestNote(id, merge_request_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new note for a single merge request.
+If you create a note where the body only contains an Award Emoji, you’ll receive
+this object back..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewMergeRequestNote(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing note of a merge request..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ modifyExistingMergeRequestNote(id, merge_request_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing note of a merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAMergeRequestNote(id, merge_request_iid, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single epic. Epic notes are comments users can post to an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of a group epic
+ * @param params {object}
+ * @param params.sort {string} - Return epic notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return epic notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ epics(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all notes for a single epic. Epic notes are comments users can post to an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of a group epic
+ * @param params {object}
+ * @param params.sort {string} - Return epic notes sorted in asc or desc order. Default is desc
+
+ * @param params.order_by {string} - Return epic notes ordered by created_at or updated_at fields. Default is created_at
+
+ * @returns {*}
+ */
+
+ listAllEpicNotes(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single note for a given epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleEpicNote(id, epic_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new note for a single epic. Epic notes are comments users can post to an epic.
+If you create a note where the body only contains an Award Emoji, you’ll receive this object back..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @param params.body {string} - The content of a note
+ * @returns {*}
+ */
+
+ createNewEpicNote(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modify existing note of an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @param params.body {string} - The content of a note
+ * @returns {*}
+ */
+
+ modifyExistingEpicNote(id, epic_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing note of an epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param note_id {integer} - The ID of a note
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnEpicNote(id, epic_id, note_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/notes/${encodeURIComponent(note_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Notes;
+
diff --git a/lib/models/notificationSettings.js b/lib/models/notificationSettings.js
new file mode 100644
index 0000000..4943400
--- /dev/null
+++ b/lib/models/notificationSettings.js
@@ -0,0 +1,143 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Notification Settings .
+ */
+class NotificationSettings extends ModelBase {
+
+ /**
+ * Create Notification Settings .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get current notification settings and email address..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ globalNotificationSettings(params) {
+ return this.http.get(`/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update current notification settings and email address..
+
+ * @param params {object}
+ * @param params.level {string} - The global notification level
+ * @param params.notification_email {string} - The email address to send notifications
+ * @param params.new_note {boolean} - Enable/disable this notification
+ * @param params.new_issue {boolean} - Enable/disable this notification
+ * @param params.reopen_issue {boolean} - Enable/disable this notification
+ * @param params.close_issue {boolean} - Enable/disable this notification
+ * @param params.reassign_issue {boolean} - Enable/disable this notification
+ * @param params.issue_due {boolean} - Enable/disable this notification
+ * @param params.new_merge_request {boolean} - Enable/disable this notification
+ * @param params.push_to_merge_request {boolean} - Enable/disable this notification
+ * @param params.reopen_merge_request {boolean} - Enable/disable this notification
+ * @param params.close_merge_request {boolean} - Enable/disable this notification
+ * @param params.reassign_merge_request {boolean} - Enable/disable this notification
+ * @param params.merge_merge_request {boolean} - Enable/disable this notification
+ * @param params.failed_pipeline {boolean} - Enable/disable this notification
+ * @param params.success_pipeline {boolean} - Enable/disable this notification
+ * @param params.new_epic {boolean} - Enable/disable this notification (Introduced in 11.3)
+ * @returns {*}
+ */
+
+ updateGlobalNotificationSettings(params) {
+ return this.http.put(`/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get current group or project notification settings..
+
+ * @param id {integer/string} - The group/project ID or path
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupProjectLevelNotificationSettingsProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get current group or project notification settings..
+
+ * @param id {integer/string} - The group/project ID or path
+ * @param params {object}
+ * @returns {*}
+ */
+
+ groupProjectLevelNotificationSettingsGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update current group/project notification settings..
+
+ * @param id {integer/string} - The group/project ID or path
+ * @param params {object}
+ * @param params.level {string} - The global notification level
+ * @param params.new_note {boolean} - Enable/disable this notification
+ * @param params.new_issue {boolean} - Enable/disable this notification
+ * @param params.reopen_issue {boolean} - Enable/disable this notification
+ * @param params.close_issue {boolean} - Enable/disable this notification
+ * @param params.reassign_issue {boolean} - Enable/disable this notification
+ * @param params.issue_due {boolean} - Enable/disable this notification
+ * @param params.new_merge_request {boolean} - Enable/disable this notification
+ * @param params.push_to_merge_request {boolean} - Enable/disable this notification
+ * @param params.reopen_merge_request {boolean} - Enable/disable this notification
+ * @param params.close_merge_request {boolean} - Enable/disable this notification
+ * @param params.reassign_merge_request {boolean} - Enable/disable this notification
+ * @param params.merge_merge_request {boolean} - Enable/disable this notification
+ * @param params.failed_pipeline {boolean} - Enable/disable this notification
+ * @param params.success_pipeline {boolean} - Enable/disable this notification
+ * @param params.new_epic {boolean} - Enable/disable this notification (Introduced in 11.3)
+ * @returns {*}
+ */
+
+ updateGroupprojectLevelNotificationSettingsProjects(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update current group/project notification settings..
+
+ * @param id {integer/string} - The group/project ID or path
+ * @param params {object}
+ * @param params.level {string} - The global notification level
+ * @param params.new_note {boolean} - Enable/disable this notification
+ * @param params.new_issue {boolean} - Enable/disable this notification
+ * @param params.reopen_issue {boolean} - Enable/disable this notification
+ * @param params.close_issue {boolean} - Enable/disable this notification
+ * @param params.reassign_issue {boolean} - Enable/disable this notification
+ * @param params.issue_due {boolean} - Enable/disable this notification
+ * @param params.new_merge_request {boolean} - Enable/disable this notification
+ * @param params.push_to_merge_request {boolean} - Enable/disable this notification
+ * @param params.reopen_merge_request {boolean} - Enable/disable this notification
+ * @param params.close_merge_request {boolean} - Enable/disable this notification
+ * @param params.reassign_merge_request {boolean} - Enable/disable this notification
+ * @param params.merge_merge_request {boolean} - Enable/disable this notification
+ * @param params.failed_pipeline {boolean} - Enable/disable this notification
+ * @param params.success_pipeline {boolean} - Enable/disable this notification
+ * @param params.new_epic {boolean} - Enable/disable this notification (Introduced in 11.3)
+ * @returns {*}
+ */
+
+ updateGroupprojectLevelNotificationSettingsGroups(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/groups/${encodeURIComponent(id)}/notification_settings`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = NotificationSettings;
+
diff --git a/lib/models/pagesDomains.js b/lib/models/pagesDomains.js
new file mode 100644
index 0000000..59f4951
--- /dev/null
+++ b/lib/models/pagesDomains.js
@@ -0,0 +1,114 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Pages Domains .
+ */
+class PagesDomains extends ModelBase {
+
+ /**
+ * Create Pages Domains .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Endpoints for connecting custom domain(s) and TLS certificates in GitLab Pages..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ pagesDomainsApi(params) {
+ return this.http.get(`/pages/domains`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all pages domains. The user must have admin permissions..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllPagesDomains(params) {
+ return this.http.get(`/pages/domains`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of project pages domains. The user must have permissions to view pages domains..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listPagesDomains(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pages/domains`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single project pages domain. The user must have permissions to view pages domains..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.domain {string} - The domain
+ * @returns {*}
+ */
+
+ singlePagesDomain(id, domain, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pages/domains/${encodeURIComponent(domain)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new pages domain. The user must have permissions to create new pages domains..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.domain {string} - The domain
+ * @param params.certificate {file/string} - The certificate in PEM format with intermediates following in most specific to least specific order.
+ * @param params.key {file/string} - The certificate key in PEM format.
+ * @returns {*}
+ */
+
+ createNewPagesDomain(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pages/domains`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing project pages domain. The user must have permissions to change an existing pages domains..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.domain {string} - The domain
+ * @param params.certificate {file/string} - The certificate in PEM format with intermediates following in most specific to least specific order.
+ * @param params.key {file/string} - The certificate key in PEM format.
+ * @returns {*}
+ */
+
+ updatePagesDomain(id, domain, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/pages/domains/${encodeURIComponent(domain)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing project pages domain..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.domain {string} - The domain
+ * @returns {*}
+ */
+
+ deletePagesDomain(id, domain, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/pages/domains/${encodeURIComponent(domain)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = PagesDomains;
+
diff --git a/lib/models/pipelineSchedules.js b/lib/models/pipelineSchedules.js
new file mode 100644
index 0000000..8d82f37
--- /dev/null
+++ b/lib/models/pipelineSchedules.js
@@ -0,0 +1,185 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Pipeline Schedules .
+ */
+class PipelineSchedules extends ModelBase {
+
+ /**
+ * Create Pipeline Schedules .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * You can read more about pipeline schedules..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope of pipeline schedules, one of: active, inactive
+
+ * @returns {*}
+ */
+
+ pipelineSchedules(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipeline_schedules`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of the pipeline schedules of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope of pipeline schedules, one of: active, inactive
+
+ * @returns {*}
+ */
+
+ getAllPipelineSchedules(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipeline_schedules`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the pipeline schedule of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASinglePipelineSchedule(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a new pipeline schedule of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.description {string} - The description of pipeline schedule
+ * @param params.ref {string} - The branch/tag name will be triggered
+ * @param params.cron {string} - The cron (e.g. 0 1 * * *) (Cron syntax)
+ * @param params.cron_timezone {string} - The timezone supported by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) (default: 'UTC')
+ * @param params.active {boolean} - The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially (default: true)
+ * @returns {*}
+ */
+
+ createANewPipelineSchedule(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipeline_schedules`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates the pipeline schedule of a project. Once the update is done, it will be rescheduled automatically..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @param params.description {string} - The description of pipeline schedule
+ * @param params.ref {string} - The branch/tag name will be triggered
+ * @param params.cron {string} - The cron (e.g. 0 1 * * *) (Cron syntax)
+ * @param params.cron_timezone {string} - The timezone supported by ActiveSupport::TimeZone (e.g. Pacific Time (US & Canada)) or TZInfo::Timezone (e.g. America/Los_Angeles)
+ * @param params.active {boolean} - The activation of pipeline schedule. If false is set, the pipeline schedule will deactivated initially.
+ * @returns {*}
+ */
+
+ editAPipelineSchedule(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update the owner of the pipeline schedule of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ takeOwnershipOfAPipelineSchedule(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}/take_ownership`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete the pipeline schedule of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAPipelineSchedule(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a new variable of a pipeline schedule..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @param params.key {string} - The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed
+ * @param params.value {string} - The value of a variable
+ * @returns {*}
+ */
+
+ pipelineScheduleVariable(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a new variable of a pipeline schedule..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param params {object}
+ * @param params.key {string} - The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed
+ * @param params.value {string} - The value of a variable
+ * @returns {*}
+ */
+
+ createANewPipelineScheduleVariable(id, pipeline_schedule_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates the variable of a pipeline schedule..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @param params.value {string} - The value of a variable
+ * @returns {*}
+ */
+
+ editAPipelineScheduleVariable(id, pipeline_schedule_id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete the variable of a pipeline schedule..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_schedule_id {integer} - The pipeline schedule id
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAPipelineScheduleVariable(id, pipeline_schedule_id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/pipeline_schedules/${encodeURIComponent(pipeline_schedule_id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = PipelineSchedules;
+
diff --git a/lib/models/pipelineTriggers.js b/lib/models/pipelineTriggers.js
new file mode 100644
index 0000000..b71be6a
--- /dev/null
+++ b/lib/models/pipelineTriggers.js
@@ -0,0 +1,114 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Pipeline Triggers .
+ */
+class PipelineTriggers extends ModelBase {
+
+ /**
+ * Create Pipeline Triggers .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * You can read more about triggering pipelines through the API..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ pipelineTriggersApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/triggers`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of project’s build triggers..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectTriggers(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/triggers`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get details of project’s build trigger..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param trigger_id {integer} - The trigger id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTriggerDetails(id, trigger_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/triggers/${encodeURIComponent(trigger_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a trigger for a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.description {string} - The trigger name
+ * @returns {*}
+ */
+
+ createAProjectTrigger(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/triggers`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update a trigger for a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param trigger_id {integer} - The trigger id
+ * @param params {object}
+ * @param params.description {string} - The trigger name
+ * @returns {*}
+ */
+
+ updateAProjectTrigger(id, trigger_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/triggers/${encodeURIComponent(trigger_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update an owner of a project trigger..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param trigger_id {integer} - The trigger id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ takeOwnershipOfAProjectTrigger(id, trigger_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/triggers/${encodeURIComponent(trigger_id)}/take_ownership`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Remove a project’s build trigger..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param trigger_id {integer} - The trigger id
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeAProjectTrigger(id, trigger_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/triggers/${encodeURIComponent(trigger_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = PipelineTriggers;
+
diff --git a/lib/models/pipelines.js b/lib/models/pipelines.js
new file mode 100644
index 0000000..fca3a79
--- /dev/null
+++ b/lib/models/pipelines.js
@@ -0,0 +1,136 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Pipelines .
+ */
+class Pipelines extends ModelBase {
+
+ /**
+ * Create Pipelines .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Example of response.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope of pipelines, one of: running, pending, finished, branches, tags
+
+ * @param params.status {string} - The status of pipelines, one of: running, pending, success, failed, canceled, skipped
+
+ * @param params.ref {string} - The ref of pipelines
+ * @param params.sha {string} - The sha or pipelines
+ * @param params.yaml_errors {boolean} - Returns pipelines with invalid configurations
+ * @param params.name {string} - The name of the user who triggered pipelines
+ * @param params.username {string} - The username of the user who triggered pipelines
+ * @param params.order_by {string} - Order pipelines by id, status, ref, or user_id (default: id)
+ * @param params.sort {string} - Sort pipelines in asc or desc order (default: desc)
+ * @returns {*}
+ */
+
+ pipelinesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipelines`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example of response.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope of pipelines, one of: running, pending, finished, branches, tags
+
+ * @param params.status {string} - The status of pipelines, one of: running, pending, success, failed, canceled, skipped
+
+ * @param params.ref {string} - The ref of pipelines
+ * @param params.sha {string} - The sha or pipelines
+ * @param params.yaml_errors {boolean} - Returns pipelines with invalid configurations
+ * @param params.name {string} - The name of the user who triggered pipelines
+ * @param params.username {string} - The username of the user who triggered pipelines
+ * @param params.order_by {string} - Order pipelines by id, status, ref, or user_id (default: id)
+ * @param params.sort {string} - Sort pipelines in asc or desc order (default: desc)
+ * @returns {*}
+ */
+
+ listProjectPipelines(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipelines`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example of response.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_id {integer} - The ID of a pipeline
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASinglePipeline(id, pipeline_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/pipelines/${encodeURIComponent(pipeline_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example of response.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.ref {string} - Reference to commit
+ * @param params.variables {array} - An array containing the variables available in the pipeline, matching the structure [{ ‘key’ => ‘UPLOAD_TO_S3’, ‘value’ => ‘true’ }]
+ * @returns {*}
+ */
+
+ createANewPipeline(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipeline`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Response:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_id {integer} - The ID of a pipeline
+ * @param params {object}
+ * @returns {*}
+ */
+
+ retryJobsInAPipeline(id, pipeline_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipelines/${encodeURIComponent(pipeline_id)}/retry`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Response:.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_id {integer} - The ID of a pipeline
+ * @param params {object}
+ * @returns {*}
+ */
+
+ cancelAPipelinesJobs(id, pipeline_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/pipelines/${encodeURIComponent(pipeline_id)}/cancel`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * .
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param pipeline_id {integer} - The ID of a pipeline
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAPipeline(id, pipeline_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/pipelines/${encodeURIComponent(pipeline_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Pipelines;
+
diff --git a/lib/models/projectBadges.js b/lib/models/projectBadges.js
new file mode 100644
index 0000000..e4ee722
--- /dev/null
+++ b/lib/models/projectBadges.js
@@ -0,0 +1,129 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Project Badges .
+ */
+class ProjectBadges extends ModelBase {
+
+ /**
+ * Create Project Badges .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:.
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ projectBadgesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Badges support placeholders that will be replaced in real time in both the link and image URL. The allowed placeholders are:.
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ placeholderTokens(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of a project’s badges and its group badges..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllBadgesOfAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a badge of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getABadgeOfAProject(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a badge to a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ addABadgeToAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/badges`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates a badge of a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ editABadgeOfAProject(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a badge from a project. Only project’s badges will be removed by using this endpoint..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param badge_id {integer} - The badge ID
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeABadgeFromAProject(id, badge_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/badges/${encodeURIComponent(badge_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.link_url {string} - URL of the badge link
+ * @param params.image_url {string} - URL of the badge image
+ * @returns {*}
+ */
+
+ previewABadgeFromAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/badges/render`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProjectBadges;
+
diff --git a/lib/models/projectImportExport.js b/lib/models/projectImportExport.js
new file mode 100644
index 0000000..07bc9a8
--- /dev/null
+++ b/lib/models/projectImportExport.js
@@ -0,0 +1,105 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Project Import Export .
+ */
+class ProjectImportExport extends ModelBase {
+
+ /**
+ * Create Project Import Export .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Introduced in GitLab 10.6.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectImportexportApi(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/export`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Start a new export..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.description {string} - Overrides the project description
+ * @param params.upload {hash} - Hash that contains the information to upload the exported project to a web server
+ * @param params.upload[url] {string} - The URL to upload the project
+ * @param params.upload[http_method] {string} - The HTTP method to upload the exported project. Only PUT and POST methods allowed. Default is PUT
+
+ * @returns {*}
+ */
+
+ scheduleAnExport(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/export`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the status of export..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ exportStatus(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/export`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Download the finished export..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ exportDownload(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/export/download`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * The override params passed will take precedence over all values defined inside the export file..
+
+ * @param params {object}
+ * @param params.namespace {integer/string} - The ID or path of the namespace that the project will be imported to. Defaults to the current user’s namespace
+ * @param params.file {string} - The file to be uploaded
+ * @param params.path {string} - Name and path for new project
+ * @param params.overwrite {boolean} - If there is a project with the same path the import will overwrite it. Default to false
+ * @param params.override_params {Hash} - Supports all fields defined in the Project API
+
+ * @returns {*}
+ */
+
+ importAFile(params) {
+ return this.http.post(`/projects/import`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the status of an import..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ importStatus(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/import`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProjectImportExport;
+
diff --git a/lib/models/projectLevelVariables.js b/lib/models/projectLevelVariables.js
new file mode 100644
index 0000000..80c79f6
--- /dev/null
+++ b/lib/models/projectLevelVariables.js
@@ -0,0 +1,106 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Project Level Variables .
+ */
+class ProjectLevelVariables extends ModelBase {
+
+ /**
+ * Create Project Level Variables .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get list of a project’s variables..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectLevelVariablesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get list of a project’s variables..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectVariables(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the details of a project’s specific variable..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @returns {*}
+ */
+
+ showVariableDetails(id, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create a new variable..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.key {string} - The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed
+ * @param params.value {string} - The value of a variable
+ * @param params.protected {boolean} - Whether the variable is protected
+ * @param params.environment_scope {string} - The environment_scope of the variable
+ * @returns {*}
+ */
+
+ createVariable(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/variables`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update a project’s variable..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @param params.value {string} - The value of a variable
+ * @param params.protected {boolean} - Whether the variable is protected
+ * @param params.environment_scope {string} - The environment_scope of the variable
+ * @returns {*}
+ */
+
+ updateVariable(id, key, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Remove a project’s variable..
+
+ * @param id {integer/string} - The ID of a project or urlencoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user
+ * @param key {string} - The key of a variable
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeVariable(id, key, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/variables/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProjectLevelVariables;
+
diff --git a/lib/models/projectSnippets.js b/lib/models/projectSnippets.js
new file mode 100644
index 0000000..81c6c18
--- /dev/null
+++ b/lib/models/projectSnippets.js
@@ -0,0 +1,139 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Project Snippets .
+ */
+class ProjectSnippets extends ModelBase {
+
+ /**
+ * Create Project Snippets .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Snippets in GitLab can be either private, internal or public.
+You can set it with the visibility field in the snippet..
+
+ * @param params {object}
+ * @param params.private {The snippet is visible only the snippet creator} - undefined
+ * @param params.internal {The snippet is visible for any logged in user} - undefined
+ * @param params.public {The snippet can be accessed without any authentication} - undefined
+ * @returns {*}
+ */
+
+ projectSnippets(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Snippets in GitLab can be either private, internal or public.
+You can set it with the visibility field in the snippet..
+
+ * @param params {object}
+ * @param params.private {The snippet is visible only the snippet creator} - undefined
+ * @param params.internal {The snippet is visible for any logged in user} - undefined
+ * @param params.public {The snippet can be accessed without any authentication} - undefined
+ * @returns {*}
+ */
+
+ snippetVisibilityLevel(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of project snippets..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listSnippets(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single project snippet..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleSnippet(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project snippet. The user must have permission to create new snippets..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewSnippet(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing project snippet. The user must have permission to change an existing snippet..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ updateSnippet(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing project snippet. This returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSnippet(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns the raw project snippet as plain text..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ snippetContent(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/raw`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Available only for admins..
+
+ * @param id {Integer} - The ID of a project
+ * @param snippet_id {Integer} - The ID of a snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getUserAgentDetails(id, snippet_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snippets/${encodeURIComponent(snippet_id)}/user_agent_detail`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProjectSnippets;
+
diff --git a/lib/models/projectTemplates.js b/lib/models/projectTemplates.js
new file mode 100644
index 0000000..91aaa3d
--- /dev/null
+++ b/lib/models/projectTemplates.js
@@ -0,0 +1,67 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Project Templates .
+ */
+class ProjectTemplates extends ModelBase {
+
+ /**
+ * Create Project Templates .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * This API is a project-specific version of these endpoints:.
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ projectTemplatesApi(id, type, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/templates/${encodeURIComponent(type)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response (licenses):.
+
+ * @param type {string} - The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template
+ * @param params {object}
+ * @param params.id {integer / string} - The ID or URL-encoded path of the project
+
+ * @returns {*}
+ */
+
+ getAllTemplatesOfAParticularType(id, type, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/templates/${encodeURIComponent(type)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response (Dockerfile):.
+
+ * @param type {string} - The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses) of the template
+ * @param key {string} - The key of the template, as obtained from the collection endpoint
+ * @param params {object}
+ * @param params.id {integer / string} - The ID or URL-encoded path of the project
+
+ * @param params.project {string} - The project name to use when expanding placeholders in the template. Only affects licenses
+ * @param params.fullname {string} - The full name of the copyright holder to use when expanding placeholders in the template. Only affects licenses
+ * @returns {*}
+ */
+
+ getOneTemplateOfAParticularType(id, type, key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/templates/${encodeURIComponent(type)}/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProjectTemplates;
+
diff --git a/lib/models/projects.js b/lib/models/projects.js
index 4fedd04..0e2db94 100644
--- a/lib/models/projects.js
+++ b/lib/models/projects.js
@@ -1,197 +1,850 @@
-"use strict";
+'use strict';
+
+/*eslint-disable */
const ModelBase = require('../modelBase');
+/**
+ * Class representing Projects .
+ */
class Projects extends ModelBase {
- constructor (client) {
- super(client);
- }
-
- init () {
- this.branches = this.load('projectBranches');
- this.commits = this.load('projectCommits');
- this.keys = this.load('projectDeployKeys');
- this.hooks = this.load('projectHooks');
- this.issues = this.load('projectIssues');
- this.labels = this.load('projectLabels');
- this.members = this.load('projectMembers');
- this.mergerequests = this.load('projectMergeRequests');
- this.milestones = this.load('projectMilestones');
- this.repositories = this.load('projectRepositories');
- this.tags = this.load('projectTags');
- }
-
- /**
- * Get a list of projects accessible by the authenticated user.
- * @param params {object}
- * @param [params.archived] {boolean} - if passed, limit by archived status
- * @param [params.order_by] {boolean} - Return requests ordered by id, name, path, created_at, updated_at or last_activity_at fields. Default is created_at
- * @param [params.sort] {string} - Return requests sorted in asc or desc order. Default is desc
- * @param [params.search] {string} - Return list of authorized projects according to a search criteria
- * @param [params.page] {number} - current page
- * @param [params.per_page] {number} - page size
- * @returns {*}
- */
- list (params) {
- return this.http.get(`/projects`, params);
- }
-
- /**
- * Get a list of projects which are owned by the authenticated user.
- * @param params {object}
- * @param [params.archived] {boolean} - if passed, limit by archived status
- * @param [params.order_by] {boolean} - Return requests ordered by id, name, path, created_at, updated_at or last_activity_at fields. Default is created_at
- * @param [params.sort] {string} - Return requests sorted in asc or desc order. Default is desc
- * @param [params.search] {string} - Return list of authorized projects according to a search criteria
- * @param [params.page] {number} - current page
- * @param [params.per_page] {number} - page size
- * @returns {*}
- */
- owned (params) {
- return this.http.get(`/projects/owned`, params);
- }
-
- /**
- * Get a list of projects which are starred by the authenticated user.
- * @param params {object}
- * @param [params.archived] {boolean} - if passed, limit by archived status
- * @param [params.order_by] {boolean} - Return requests ordered by id, name, path, created_at, updated_at or last_activity_at fields. Default is created_at
- * @param [params.sort] {string} - Return requests sorted in asc or desc order. Default is desc
- * @param [params.search] {string} - Return list of authorized projects according to a search criteria
- * @param [params.page] {number} - current page
- * @param [params.per_page] {number} - page size
- * @returns {*}
- */
- starred (params) {
- return this.http.get(`/projects/starred`, params);
- }
-
- /**
- * Get a list of all GitLab projects (admin only).
- * @param params {object}
- * @param [params.archived] {string} - if passed, limit by archived status
- * @param [params.order_by] {string} - Return requests ordered by id, name, path, created_at, updated_at or last_activity_at fields. Default is created_at
- * @param [params.sort] {string} - Return requests sorted in asc or desc order. Default is desc
- * @param [params.search] {string} - Return list of authorized projects according to a search criteria
- * @param [params.page] {number} - current page
- * @param [params.per_page] {number} - page size
- * @returns {*}
- */
- all (params) {
- return this.http.get(`/projects/all`, {});
- }
-
- /**
- * Get a specific project, identified by project ID or NAMESPACE/PROJECT_NAME, which is owned by the authenticated user.
- * @param id(or NAMESPACE/PROJECT_NAME) {number} - The ID or NAMESPACE/PROJECT_NAME of a project
- * @returns {*}
- */
- one (id) {
- return this.http.get(`/projects/${encodeURIComponent(id)}`, {});
- }
-
- /**
- * Get the events for the specified project. Sorted from newest to latest.
- * @param id(or NAMESPACE/PROJECT_NAME) {number} - The ID or NAMESPACE/PROJECT_NAME of a project
- * @returns {*}
- */
- events (id) {
- return this.http.get(`/projects/${encodeURIComponent(id)}/events`, {});
- }
-
- /**
- * Creates a new project owned by the authenticated user.
- * @param params {object}
- * @param params.name {string} - new project name
- * @param [params.path] {string} - custom repository name for new project. By default generated based on name
- * @param [params.namespace_id] {string} - namespace for the new project (defaults to user)
- * @param [params.description] {string} - short project description
- * @param [params.issues_enabled] {boolean}
- * @param [params.merge_requests_enabled] {boolean}
- * @param [params.builds_enabled] {boolean}
- * @param [params.wiki_enabled] {boolean}
- * @param [params.snippets_enabled] {boolean}
- * @param [params.public] {boolean} - if true same as setting visibility_level = 20
- * @param [params.visibility_level] {number}
- * @param [params.import_url] {string}
- * @returns {*}
- */
- create (params) {
- return this.http.post(`/projects`, params);
- }
-
- /**
- * Creates a new project owned by the specified user. Available only for admins.
- * @param user_id {number} - user_id of owner
- * @param params {object}
- * @param params.name {string} - new project name
- * @param [params.description] {string} - short project description
- * @param [params.issues_enabled] {boolean}
- * @param [params.merge_requests_enabled] {boolean}
- * @param [params.builds_enabled] {boolean}
- * @param [params.wiki_enabled] {boolean}
- * @param [params.snippets_enabled] {boolean}
- * @param [params.public] {boolean} - if true same as setting visibility_level = 20
- * @param [params.visibility_level] {number}
- * @param [params.import_url] {string}
- * @returns {*}
- */
- createForUser (user_id, params) {
- return this.http.post(`/projects/user/${user_id}`, params);
- }
-
- /**
- * Updates an existing project.
- * @param id {number} - The ID of a project
- * @param params {object}
- * @param [params.name] {string} - project name
- * @param [params.path] {string} - repository name for project
- * @param [params.description] {string} - short project description
- * @param [params.default_branch] {string}
- * @param [params.issues_enabled] {boolean}
- * @param [params.merge_requests_enabled] {boolean}
- * @param [params.builds_enabled] {boolean}
- * @param [params.wiki_enabled] {boolean}
- * @param [params.snippets_enabled] {boolean}
- * @param [params.public] {boolean} - if true same as setting visibility_level = 20
- * @param [params.visibility_level] {number}
- */
- update (id, params) {
- return this.http.put(`/projects/${id}`, params);
- }
-
- /**
- * Forks a project into the user namespace of the authenticated user.
- * @param id
- * @returns {*}
- */
- fork (id) {
- return this.http.post(`/projects/fork/${id}`, {});
- }
-
- /**
- * Removes a project including all associated resources (issues, merge requests etc.)
- * @param id {number} - The ID of a project
- * @returns {*}
- */
- ['delete'] (id) {
- return this.http.delete(`/projects/${id}`, {});
- }
-
- /**
- * Search for projects by name which are accessible to the authenticated user.
- * @param params {object}
- * @param params.query {string} - A string contained in the project name
- * @param [params.per_page] {number} - number of projects to return per page
- * @param [params.page] {number} - the page to retrieve
- * @param [params.order_by] - Return requests ordered by id, name, created_at or last_activity_at fields
- * @parma [params.sort] {string} - Return requests sorted in asc or desc order
- */
- searchByName (query, params) {
- return this.http.get(`/projects/search/${query}`, params);
- }
+ /**
+ * Create Projects .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Project in GitLab can be either private, internal or public.
+This is determined by the visibility field in the project..
+
+ * @param params {object}
+ * @param params.private {} - undefined
+ * @returns {*}
+ */
+
+ projectsApi(params) {
+ return this.http.get(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Project in GitLab can be either private, internal or public.
+This is determined by the visibility field in the project..
+
+ * @param params {object}
+ * @param params.private {} - undefined
+ * @returns {*}
+ */
+
+ projectVisibilityLevel(params) {
+ return this.http.get(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * There are currently three options for merge_method to choose from:.
+
+ * @param params {object}
+ * @param params.merge {} - undefined
+ * @returns {*}
+ */
+
+ projectMergeMethod(params) {
+ return this.http.get(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all visible projects across GitLab for the authenticated user.
+When accessed without authentication, only public projects with “simple” fields are returned..
+
+ * @param params {object}
+ * @param params.archived {boolean} - Limit by archived status
+ * @param params.visibility {string} - Limit by visibility public, internal, or private
+
+ * @param params.order_by {string} - Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at
+
+ * @param params.sort {string} - Return projects sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Return list of projects matching the search criteria
+ * @param params.simple {boolean} - Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned.
+ * @param params.owned {boolean} - Limit by projects explicitly owned by the current user
+ * @param params.membership {boolean} - Limit by projects that the current user is a member of
+ * @param params.starred {boolean} - Limit by projects starred by the current user
+ * @param params.statistics {boolean} - Include project statistics
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.with_issues_enabled {boolean} - Limit by enabled issues feature
+ * @param params.with_merge_requests_enabled {boolean} - Limit by enabled merge requests feature
+ * @param params.wiki_checksum_failed {boolean} - Limit projects where the wiki checksum calculation has failed (Introduced in GitLab Premium 11.2)
+
+ * @param params.repository_checksum_failed {boolean} - Limit projects where the repository checksum calculation has failed (Introduced in GitLab Premium 11.2)
+
+ * @param params.min_access_level {integer} - Limit by current user minimal access level
+
+ * @returns {*}
+ */
+
+ listAllProjects(params) {
+ return this.http.get(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of visible projects owned by the given user. When accessed without authentication, only public projects are returned..
+
+ * @param user_id {string} - The ID or username of the user
+ * @param params {object}
+ * @param params.archived {boolean} - Limit by archived status
+ * @param params.visibility {string} - Limit by visibility public, internal, or private
+
+ * @param params.order_by {string} - Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at
+
+ * @param params.sort {string} - Return projects sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Return list of projects matching the search criteria
+ * @param params.simple {boolean} - Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned.
+ * @param params.owned {boolean} - Limit by projects explicitly owned by the current user
+ * @param params.membership {boolean} - Limit by projects that the current user is a member of
+ * @param params.starred {boolean} - Limit by projects starred by the current user
+ * @param params.statistics {boolean} - Include project statistics
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.with_issues_enabled {boolean} - Limit by enabled issues feature
+ * @param params.with_merge_requests_enabled {boolean} - Limit by enabled merge requests feature
+ * @param params.min_access_level {integer} - Limit by current user minimal access level
+
+ * @returns {*}
+ */
+
+ listUserProjects(user_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(user_id)}/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific project. This endpoint can be accessed without authentication if
+the project is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.statistics {boolean} - Include project statistics
+ * @param params.license {boolean} - Include project license data
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @returns {*}
+ */
+
+ getSingleProject(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the users list of a project..
+
+ * @param params {object}
+ * @param params.search {string} - Search for specific users
+ * @returns {*}
+ */
+
+ getProjectUsers(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/users`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Please refer to the Events API documentation..
+
+ * @param params {object}
+ * @param params.name {string} - The name of the new project. Equals path if not provided.
+ * @param params.path {string} - Repository name for new project. Generated based on name if not provided (generated lowercased with dashes).
+ * @param params.namespace_id {integer} - Namespace for the new project (defaults to the current user’s namespace)
+ * @param params.default_branch {string} -
+master by default
+ * @param params.description {string} - Short project description
+ * @param params.issues_enabled {boolean} - Enable issues for this project
+ * @param params.merge_requests_enabled {boolean} - Enable merge requests for this project
+ * @param params.jobs_enabled {boolean} - Enable jobs for this project
+ * @param params.wiki_enabled {boolean} - Enable wiki for this project
+ * @param params.snippets_enabled {boolean} - Enable snippets for this project
+ * @param params.resolve_outdated_diff_discussions {boolean} - Automatically resolve merge request diffs discussions on lines changed with a push
+ * @param params.container_registry_enabled {boolean} - Enable container registry for this project
+ * @param params.shared_runners_enabled {boolean} - Enable shared runners for this project
+ * @param params.visibility {string} - See project visibility level
+
+ * @param params.import_url {string} - URL to import repository from
+ * @param params.public_jobs {boolean} - If true, jobs can be viewed by non-project-members
+ * @param params.only_allow_merge_if_pipeline_succeeds {boolean} - Set whether merge requests can only be merged with successful jobs
+ * @param params.only_allow_merge_if_all_discussions_are_resolved {boolean} - Set whether merge requests can only be merged when all the discussions are resolved
+ * @param params.merge_method {string} - Set the merge method used
+ * @param params.lfs_enabled {boolean} - Enable LFS
+ * @param params.request_access_enabled {boolean} - Allow users to request member access
+ * @param params.tag_list {array} - The list of tags for a project; put array of tags, that should be finally assigned to a project
+ * @param params.avatar {mixed} - Image file for avatar of the project
+ * @param params.printing_merge_request_link_enabled {boolean} - Show link to create/view merge request when pushing from the command line
+ * @param params.ci_config_path {string} - The path to CI config file
+ * @param params.repository_storage {string} - Which storage shard the repository is on. Available only to admins
+ * @param params.approvals_before_merge {integer} - How many approvers should approve merge request by default
+ * @param params.mirror {boolean} - Enables pull mirroring in a project
+ * @param params.mirror_trigger_builds {boolean} - Pull mirroring triggers builds
+ * @param params.initialize_with_readme {boolean} -
+false by default
+ * @returns {*}
+ */
+
+ getProjectEvents(params) {
+ return this.http.post(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project owned by the authenticated user..
+
+ * @param params {object}
+ * @param params.name {string} - The name of the new project. Equals path if not provided.
+ * @param params.path {string} - Repository name for new project. Generated based on name if not provided (generated lowercased with dashes).
+ * @param params.namespace_id {integer} - Namespace for the new project (defaults to the current user’s namespace)
+ * @param params.default_branch {string} -
+master by default
+ * @param params.description {string} - Short project description
+ * @param params.issues_enabled {boolean} - Enable issues for this project
+ * @param params.merge_requests_enabled {boolean} - Enable merge requests for this project
+ * @param params.jobs_enabled {boolean} - Enable jobs for this project
+ * @param params.wiki_enabled {boolean} - Enable wiki for this project
+ * @param params.snippets_enabled {boolean} - Enable snippets for this project
+ * @param params.resolve_outdated_diff_discussions {boolean} - Automatically resolve merge request diffs discussions on lines changed with a push
+ * @param params.container_registry_enabled {boolean} - Enable container registry for this project
+ * @param params.shared_runners_enabled {boolean} - Enable shared runners for this project
+ * @param params.visibility {string} - See project visibility level
+
+ * @param params.import_url {string} - URL to import repository from
+ * @param params.public_jobs {boolean} - If true, jobs can be viewed by non-project-members
+ * @param params.only_allow_merge_if_pipeline_succeeds {boolean} - Set whether merge requests can only be merged with successful jobs
+ * @param params.only_allow_merge_if_all_discussions_are_resolved {boolean} - Set whether merge requests can only be merged when all the discussions are resolved
+ * @param params.merge_method {string} - Set the merge method used
+ * @param params.lfs_enabled {boolean} - Enable LFS
+ * @param params.request_access_enabled {boolean} - Allow users to request member access
+ * @param params.tag_list {array} - The list of tags for a project; put array of tags, that should be finally assigned to a project
+ * @param params.avatar {mixed} - Image file for avatar of the project
+ * @param params.printing_merge_request_link_enabled {boolean} - Show link to create/view merge request when pushing from the command line
+ * @param params.ci_config_path {string} - The path to CI config file
+ * @param params.repository_storage {string} - Which storage shard the repository is on. Available only to admins
+ * @param params.approvals_before_merge {integer} - How many approvers should approve merge request by default
+ * @param params.mirror {boolean} - Enables pull mirroring in a project
+ * @param params.mirror_trigger_builds {boolean} - Pull mirroring triggers builds
+ * @param params.initialize_with_readme {boolean} -
+false by default
+ * @returns {*}
+ */
+
+ createProject(params) {
+ return this.http.post(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new project owned by the specified user. Available only for admins..
+
+ * @param user_id {integer} - The user ID of the project owner
+ * @param params {object}
+ * @param params.name {string} - The name of the new project
+ * @param params.path {string} - Custom repository name for new project. By default generated based on name
+ * @param params.namespace_id {integer} - Namespace for the new project (defaults to the current user’s namespace)
+ * @param params.description {string} - Short project description
+ * @param params.issues_enabled {boolean} - Enable issues for this project
+ * @param params.merge_requests_enabled {boolean} - Enable merge requests for this project
+ * @param params.jobs_enabled {boolean} - Enable jobs for this project
+ * @param params.wiki_enabled {boolean} - Enable wiki for this project
+ * @param params.snippets_enabled {boolean} - Enable snippets for this project
+ * @param params.resolve_outdated_diff_discussions {boolean} - Automatically resolve merge request diffs discussions on lines changed with a push
+ * @param params.container_registry_enabled {boolean} - Enable container registry for this project
+ * @param params.shared_runners_enabled {boolean} - Enable shared runners for this project
+ * @param params.visibility {string} - See project visibility level
+
+ * @param params.import_url {string} - URL to import repository from
+ * @param params.public_jobs {boolean} - If true, jobs can be viewed by non-project-members
+ * @param params.only_allow_merge_if_pipeline_succeeds {boolean} - Set whether merge requests can only be merged with successful jobs
+ * @param params.only_allow_merge_if_all_discussions_are_resolved {boolean} - Set whether merge requests can only be merged when all the discussions are resolved
+ * @param params.merge_method {string} - Set the merge method used
+ * @param params.lfs_enabled {boolean} - Enable LFS
+ * @param params.request_access_enabled {boolean} - Allow users to request member access
+ * @param params.tag_list {array} - The list of tags for a project; put array of tags, that should be finally assigned to a project
+ * @param params.avatar {mixed} - Image file for avatar of the project
+ * @param params.printing_merge_request_link_enabled {boolean} - Show link to create/view merge request when pushing from the command line
+ * @param params.ci_config_path {string} - The path to CI config file
+ * @param params.repository_storage {string} - Which storage shard the repository is on. Available only to admins
+ * @param params.approvals_before_merge {integer} - How many approvers should approve merge request by default
+ * @param params.external_authorization_classification_label {string} - The classification label for the project
+ * @param params.mirror {boolean} - Enables pull mirroring in a project
+ * @param params.mirror_trigger_builds {boolean} - Pull mirroring triggers builds
+ * @returns {*}
+ */
+
+ createProjectForUser(user_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/user/${encodeURIComponent(user_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.name {string} - The name of the project
+ * @param params.path {string} - Custom repository name for the project. By default generated based on name
+ * @param params.default_branch {string} -
+master by default
+ * @param params.description {string} - Short project description
+ * @param params.issues_enabled {boolean} - Enable issues for this project
+ * @param params.merge_requests_enabled {boolean} - Enable merge requests for this project
+ * @param params.jobs_enabled {boolean} - Enable jobs for this project
+ * @param params.wiki_enabled {boolean} - Enable wiki for this project
+ * @param params.snippets_enabled {boolean} - Enable snippets for this project
+ * @param params.resolve_outdated_diff_discussions {boolean} - Automatically resolve merge request diffs discussions on lines changed with a push
+ * @param params.container_registry_enabled {boolean} - Enable container registry for this project
+ * @param params.shared_runners_enabled {boolean} - Enable shared runners for this project
+ * @param params.visibility {string} - See project visibility level
+
+ * @param params.import_url {string} - URL to import repository from
+ * @param params.public_jobs {boolean} - If true, jobs can be viewed by non-project-members
+ * @param params.only_allow_merge_if_pipeline_succeeds {boolean} - Set whether merge requests can only be merged with successful jobs
+ * @param params.only_allow_merge_if_all_discussions_are_resolved {boolean} - Set whether merge requests can only be merged when all the discussions are resolved
+ * @param params.merge_method {string} - Set the merge method used
+ * @param params.lfs_enabled {boolean} - Enable LFS
+ * @param params.request_access_enabled {boolean} - Allow users to request member access
+ * @param params.tag_list {array} - The list of tags for a project; put array of tags, that should be finally assigned to a project
+ * @param params.avatar {mixed} - Image file for avatar of the project
+ * @param params.ci_config_path {string} - The path to CI config file
+ * @param params.repository_storage {string} - Which storage shard the repository is on. Available only to admins
+ * @param params.approvals_before_merge {integer} - How many approvers should approve merge request by default
+ * @param params.external_authorization_classification_label {string} - The classification label for the project
+ * @param params.mirror {boolean} - Enables pull mirroring in a project
+ * @param params.mirror_user_id {integer} - User responsible for all the activity surrounding a pull mirror event
+ * @param params.mirror_trigger_builds {boolean} - Pull mirroring triggers builds
+ * @param params.only_mirror_protected_branches {boolean} - Only mirror protected branches
+ * @param params.mirror_overwrites_diverged_branches {boolean} - Pull mirror overwrites diverged branches
+ * @returns {*}
+ */
+
+ editProject(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Forks a project into the user namespace of the authenticated user or the one provided..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.namespace {integer/string} - The ID or path of the namespace that the project will be forked to
+ * @returns {*}
+ */
+
+ forkProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/fork`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List the projects accessible to the calling user that have an established, forked relationship with the specified project.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.archived {boolean} - Limit by archived status
+ * @param params.visibility {string} - Limit by visibility public, internal, or private
+
+ * @param params.order_by {string} - Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields. Default is created_at
+
+ * @param params.sort {string} - Return projects sorted in asc or desc order. Default is desc
+
+ * @param params.search {string} - Return list of projects matching the search criteria
+ * @param params.simple {boolean} - Return only limited fields for each project. This is a no-op without authentication as then only simple fields are returned.
+ * @param params.owned {boolean} - Limit by projects explicitly owned by the current user
+ * @param params.membership {boolean} - Limit by projects that the current user is a member of
+ * @param params.starred {boolean} - Limit by projects starred by the current user
+ * @param params.statistics {boolean} - Include project statistics
+ * @param params.with_custom_attributes {boolean} - Include custom attributes in response (admins only)
+ * @param params.with_issues_enabled {boolean} - Limit by enabled issues feature
+ * @param params.with_merge_requests_enabled {boolean} - Limit by enabled merge requests feature
+ * @param params.min_access_level {integer} - Limit by current user minimal access level
+
+ * @returns {*}
+ */
+
+ listForksOfAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/forks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Stars a given project. Returns status code 304 if the project is already starred..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ starAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/star`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unstars a given project. Returns status code 304 if the project is not starred..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unstarAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/unstar`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get languages used in a project with percentage value..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ languages(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/languages`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Archives the project if the user is either admin or the project owner of this project. This action is
+idempotent, thus archiving an already archived project will not change the project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ archiveAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/archive`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unarchives the project if the user is either admin or the project owner of this project. This action is
+idempotent, thus unarchiving a non-archived project will not change the project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unarchiveAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/unarchive`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a project including all associated resources (issues, merge requests etc.).
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeProject(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Uploads a file to the specified project to be used in an issue or merge request description, or a comment..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.file {string} - The file to be uploaded
+ * @returns {*}
+ */
+
+ uploadAFile(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/uploads`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Allow to share project with group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.group_id {integer} - The ID of the group to share with
+ * @param params.group_access {integer} - The permissions level to grant the group
+ * @param params.expires_at {string} - Share expiration date in ISO 8601 format: 2016-09-26
+ * @returns {*}
+ */
+
+ shareProjectWithGroup(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/share`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unshare the project from the group. Returns 204 and no content on success..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param group_id {integer} - The ID of the group
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteASharedProjectLinkWithinAGroup(id, group_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/share/${encodeURIComponent(group_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Also called Project Hooks and Webhooks.
+These are different for System Hooks that are system wide..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ hooks(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of project hooks..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectHooks(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific hook for a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param hook_id {integer} - The ID of a project hook
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getProjectHook(id, hook_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/hooks/${encodeURIComponent(hook_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a hook to a specified project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.url {string} - The hook URL
+ * @param params.push_events {boolean} - Trigger hook on push events
+ * @param params.push_events_branch_filter {string} - Trigger hook on push events for matching branches only
+ * @param params.issues_events {boolean} - Trigger hook on issues events
+ * @param params.confidential_issues_events {boolean} - Trigger hook on confidential issues events
+ * @param params.merge_requests_events {boolean} - Trigger hook on merge requests events
+ * @param params.tag_push_events {boolean} - Trigger hook on tag push events
+ * @param params.note_events {boolean} - Trigger hook on note events
+ * @param params.job_events {boolean} - Trigger hook on job events
+ * @param params.pipeline_events {boolean} - Trigger hook on pipeline events
+ * @param params.wiki_page_events {boolean} - Trigger hook on wiki events
+ * @param params.enable_ssl_verification {boolean} - Do SSL verification when triggering the hook
+ * @param params.token {string} - Secret token to validate received payloads; this will not be returned in the response
+ * @returns {*}
+ */
+
+ addProjectHook(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Edits a hook for a specified project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param hook_id {integer} - The ID of the project hook
+ * @param params {object}
+ * @param params.url {string} - The hook URL
+ * @param params.push_events {boolean} - Trigger hook on push events
+ * @param params.push_events_branch_filter {string} - Trigger hook on push events for matching branches only
+ * @param params.issues_events {boolean} - Trigger hook on issues events
+ * @param params.confidential_issues_events {boolean} - Trigger hook on confidential issues events
+ * @param params.merge_requests_events {boolean} - Trigger hook on merge requests events
+ * @param params.tag_push_events {boolean} - Trigger hook on tag push events
+ * @param params.note_events {boolean} - Trigger hook on note events
+ * @param params.job_events {boolean} - Trigger hook on job events
+ * @param params.pipeline_events {boolean} - Trigger hook on pipeline events
+ * @param params.wiki_events {boolean} - Trigger hook on wiki events
+ * @param params.enable_ssl_verification {boolean} - Do SSL verification when triggering the hook
+ * @param params.token {string} - Secret token to validate received payloads; this will not be returned in the response
+ * @returns {*}
+ */
+
+ editProjectHook(id, hook_id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/hooks/${encodeURIComponent(hook_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a hook from a project. This is an idempotent method and can be called multiple times.
+Either the hook is available or not..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param hook_id {integer} - The ID of the project hook
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteProjectHook(id, hook_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/hooks/${encodeURIComponent(hook_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Search for projects by name which are accessible to the authenticated user. This
+endpoint can be accessed without authentication if the project is publicly
+accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param forked_from_id {ID} - The ID of the project that was forked from
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createAForkedFromtoRelationBetweenExistingProjects(id, forked_from_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/fork/${encodeURIComponent(forked_from_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Search for projects by name which are accessible to the authenticated user. This
+endpoint can be accessed without authentication if the project is publicly
+accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAnExistingForkedFromRelationship(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/fork`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Search for projects by name which are accessible to the authenticated user. This
+endpoint can be accessed without authentication if the project is publicly
+accessible..
+
+ * @param params {object}
+ * @param params.search {string} - A string contained in the project name
+ * @param params.order_by {string} - Return requests ordered by id, name, created_at or last_activity_at fields
+ * @param params.sort {string} - Return requests sorted in asc or desc order
+ * @returns {*}
+ */
+
+ searchForProjectsByName(params) {
+ return this.http.get(`/projects`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the push rules of a project..
+
+ * @param id {integer/string} - The ID of the project or NAMESPACE/PROJECT_NAME
+ * @param params {object}
+ * @returns {*}
+ */
+
+ startTheHousekeepingTaskForAProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/housekeeping`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the push rules of a project..
+
+ * @param id {integer/string} - The ID of the project or NAMESPACE/PROJECT_NAME
+ * @param params {object}
+ * @returns {*}
+ */
+
+ pushRulesStarter(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/push_rule`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the push rules of a project..
+
+ * @param id {integer/string} - The ID of the project or NAMESPACE/PROJECT_NAME
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getProjectPushRules(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/push_rule`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Adds a push rule to a specified project..
+
+ * @param id {integer/string} - The ID of the project or NAMESPACE/PROJECT_NAME
+ * @param params {object}
+ * @param params.deny_delete_tag {boolean} - Deny deleting a tag
+ * @param params.member_check {boolean} - Restrict commits by author (email) to existing GitLab users
+ * @param params.prevent_secrets {boolean} - GitLab will reject any files that are likely to contain secrets
+ * @param params.commit_message_regex {string} - All commit messages must match this, e.g. Fixed \d+\..*
+
+ * @param params.branch_name_regex {string} - All branch names must match this, e.g. (feature|hotfix)\/*
+
+ * @param params.author_email_regex {string} - All commit author emails must match this, e.g. @my-company.com$
+
+ * @param params.file_name_regex {string} - All commited filenames must not match this, e.g. (jar|exe)$
+
+ * @param params.max_file_size {integer} - Maximum file size (MB)
+ * @returns {*}
+ */
+
+ addProjectPushRule(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/push_rule`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Edits a push rule for a specified project..
+
+ * @param id {integer/string} - The ID of the project or NAMESPACE/PROJECT_NAME
+ * @param params {object}
+ * @param params.deny_delete_tag {boolean} - Deny deleting a tag
+ * @param params.member_check {boolean} - Restrict commits by author (email) to existing GitLab users
+ * @param params.prevent_secrets {boolean} - GitLab will reject any files that are likely to contain secrets
+ * @param params.commit_message_regex {string} - All commit messages must match this, e.g. Fixed \d+\..*
+
+ * @param params.branch_name_regex {string} - All branch names must match this, e.g. (feature|hotfix)\/*
+
+ * @param params.author_email_regex {string} - All commit author emails must match this, e.g. @my-company.com$
+
+ * @param params.file_name_regex {string} - All commited filenames must not match this, e.g. (jar|exe)$
+
+ * @param params.max_file_size {integer} - Maximum file size (MB)
+ * @returns {*}
+ */
+
+ editProjectPushRule(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/push_rule`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Removes a push rule from a project. This is an idempotent method and can be called multiple times.
+Either the push rule is available or not..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteProjectPushRule(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/push_rule`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Branches documentation..
+
+ * @param id {integer/string} - The ID or path of the namespace to transfer to project to
+ * @param params {object}
+ * @returns {*}
+ */
+
+ transferAProjectToANewNamespace(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/transfer`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Branches documentation..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ branches(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/mirror/pull`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Project import/export documentation..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectImportexport(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/mirror/pull`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Project members documentation..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectMembers(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/mirror/pull`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Project Badges documentation..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ startThePullMirroringProcessForAProjectStarter(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/mirror/pull`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Read more in the Project Badges documentation..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ projectBadges(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snapshot`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * The non-default issue and merge request description templates are managed inside the project’s repository. So you can manage them via the API through the Repositories API and the Repository Files API..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issueAndMergeRequestDescriptionTemplates(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snapshot`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This endpoint may only be accessed by an administrative user..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.wiki {boolean} - Whether to download the wiki, rather than project, repository
+ * @returns {*}
+ */
+
+ downloadSnapshotOfAGitRepository(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/snapshot`, params); // eslint-disable-line quotes
+ }
}
module.exports = Projects;
+
diff --git a/lib/models/protectedBranches.js b/lib/models/protectedBranches.js
new file mode 100644
index 0000000..6a687cf
--- /dev/null
+++ b/lib/models/protectedBranches.js
@@ -0,0 +1,94 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Protected Branches .
+ */
+class ProtectedBranches extends ModelBase {
+
+ /**
+ * Create Protected Branches .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Valid access levels.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ protectedBranchesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of protected branches from a project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProtectedBranches(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single protected branch or wildcard protected branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param name {string} - The name of the branch or wildcard
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASingleProtectedBranchOrWildcardProtectedBranch(id, name, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_branches/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Protects a single repository branch or several project repository
+branches using a wildcard protected branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the branch or wildcard
+ * @param params.push_access_level {string} - Access levels allowed to push (defaults: 40, maintainer access level)
+ * @param params.merge_access_level {string} - Access levels allowed to merge (defaults: 40, maintainer access level)
+ * @param params.unprotect_access_level {string} - Access levels allowed to unprotect (defaults: 40, maintainer access level)
+ * @param params.allowed_to_push {array} - Array of access levels allowed to push, with each described by a hash
+ * @param params.allowed_to_merge {array} - Array of access levels allowed to merge, with each described by a hash
+ * @param params.allowed_to_unprotect {array} - Array of access levels allowed to unprotect, with each described by a hash
+ * @returns {*}
+ */
+
+ protectRepositoryBranches(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/protected_branches`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unprotects the given protected branch or wildcard protected branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param name {string} - The name of the branch
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unprotectRepositoryBranches(id, name, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/protected_branches/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProtectedBranches;
+
diff --git a/lib/models/protectedTags.js b/lib/models/protectedTags.js
new file mode 100644
index 0000000..45a5a17
--- /dev/null
+++ b/lib/models/protectedTags.js
@@ -0,0 +1,91 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Protected Tags .
+ */
+class ProtectedTags extends ModelBase {
+
+ /**
+ * Create Protected Tags .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Valid access levels.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ protectedTagsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of protected tags from a project.
+This function takes pagination parameters page and per_page to restrict the list of protected tags..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProtectedTags(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a single protected tag or wildcard protected tag.
+The pagination parameters page and per_page can be used to restrict the list of protected tags..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param name {string} - The name of the tag or wildcard
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASingleProtectedTagOrWildcardProtectedTag(id, name, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/protected_tags/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Protects a single repository tag or several project repository
+tags using a wildcard protected tag..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.name {string} - The name of the tag or wildcard
+ * @param params.create_access_level {string} - Access levels allowed to create (defaults: 40, maintainer access level)
+ * @returns {*}
+ */
+
+ protectRepositoryTags(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/protected_tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unprotects the given protected tag or wildcard protected tag..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param name {string} - The name of the tag
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unprotectRepositoryTags(id, name, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/protected_tags/${encodeURIComponent(name)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ProtectedTags;
+
diff --git a/lib/models/repositories.js b/lib/models/repositories.js
new file mode 100644
index 0000000..6941b94
--- /dev/null
+++ b/lib/models/repositories.js
@@ -0,0 +1,130 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Repositories .
+ */
+class Repositories extends ModelBase {
+
+ /**
+ * Create Repositories .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of repository files and directories in a project. This endpoint can
+be accessed without authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ repositoriesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/tree`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of repository files and directories in a project. This endpoint can
+be accessed without authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listRepositoryTree(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/tree`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Allows you to receive information about blob in repository like size and
+content. Note that blob content is Base64 encoded. This endpoint can be accessed
+without authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getABlobFromRepository(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/blobs/${encodeURIComponent(sha)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the raw file contents for a blob by blob SHA. This endpoint can be accessed
+without authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ rawBlobContent(id, sha, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/blobs/${encodeURIComponent(sha)}/raw`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get an archive of the repository. This endpoint can be accessed without
+authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getFileArchive(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/archive`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This endpoint can be accessed without authentication if the repository is
+publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ compareBranchesTagsOrCommits(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/compare`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get repository contributors list. This endpoint can be accessed without
+authentication if the repository is publicly accessible..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ contributors(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/contributors`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the common ancestor for 2 refs (commit SHAs, branch names or tags)..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.refs {array} - The refs to find the common ancestor of, multiple refs can be passed
+ * @returns {*}
+ */
+
+ mergeBase(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/merge_base`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Repositories;
+
diff --git a/lib/models/repositoryFiles.js b/lib/models/repositoryFiles.js
new file mode 100644
index 0000000..ab7629e
--- /dev/null
+++ b/lib/models/repositoryFiles.js
@@ -0,0 +1,97 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Repository Files .
+ */
+class RepositoryFiles extends ModelBase {
+
+ /**
+ * Create Repository Files .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * CRUD for repository files.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ repositoryFilesApi(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Allows you to receive information about file in repository like name, size,
+content. Note that file content is Base64 encoded. This endpoint can be accessed
+without authentication if the repository is publicly accessible..
+
+ * @param file_path {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getFileFromRepository(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get raw file from repository..
+
+ * @param file_path {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getRawFileFromRepository(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}/raw`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This allows you to create a single file. For creating multiple files with a single request see the commits API..
+
+ * @param file_path {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createNewFileInRepository(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This allows you to update a single file. For updating multiple files with a single request see the commits API..
+
+ * @param file_path {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ updateExistingFileInRepository(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * This allows you to delete a single file. For deleting multiple files with a singleh request see the commits API..
+
+ * @param file_path {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteExistingFileInRepository(id, file_path, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/repository/files/${encodeURIComponent(file_path)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = RepositoryFiles;
+
diff --git a/lib/models/repositorySubmodules.js b/lib/models/repositorySubmodules.js
new file mode 100644
index 0000000..1f084c2
--- /dev/null
+++ b/lib/models/repositorySubmodules.js
@@ -0,0 +1,64 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Repository Submodules .
+ */
+class RepositorySubmodules extends ModelBase {
+
+ /**
+ * Create Repository Submodules .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * In some workflows, especially automated ones, it can be useful to update a
+submodule’s reference to keep up to date other projects that use it.
+This endpoint allows you to update a Git submodule reference in a
+specific branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.submodule {string} - URL encoded full path to the submodule. For example, lib%2Fclass%2Erb
+
+ * @param params.branch {string} - Name of the branch to commit into
+ * @param params.commit_sha {string} - Full commit SHA to update the submodule to
+ * @param params.commit_message {string} - Commit message. If no message is provided, a default one will be set
+ * @returns {*}
+ */
+
+ repositorySubmodulesApi(id, submodule, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/submodules/${encodeURIComponent(submodule)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * In some workflows, especially automated ones, it can be useful to update a
+submodule’s reference to keep up to date other projects that use it.
+This endpoint allows you to update a Git submodule reference in a
+specific branch..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.submodule {string} - URL encoded full path to the submodule. For example, lib%2Fclass%2Erb
+
+ * @param params.branch {string} - Name of the branch to commit into
+ * @param params.commit_sha {string} - Full commit SHA to update the submodule to
+ * @param params.commit_message {string} - Commit message. If no message is provided, a default one will be set
+ * @returns {*}
+ */
+
+ updateExistingSubmoduleReferenceInRepository(id, submodule, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/submodules/${encodeURIComponent(submodule)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = RepositorySubmodules;
+
diff --git a/lib/models/resourceLabelEvents.js b/lib/models/resourceLabelEvents.js
new file mode 100644
index 0000000..e62dd96
--- /dev/null
+++ b/lib/models/resourceLabelEvents.js
@@ -0,0 +1,167 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Resource Label Events .
+ */
+class ResourceLabelEvents extends ModelBase {
+
+ /**
+ * Create Resource Label Events .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Resource label events keep track about who, when, and which label was added or removed to an issuable..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ resourceLabelEventsApi(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ issues(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single issue..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectIssueLabelEvents(id, issue_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single label event for a specific project issue.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param issue_iid {integer} - The IID of an issue
+ * @param resource_label_event_id {integer} - The ID of a label event
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleIssueLabelEvent(id, issue_iid, resource_label_event_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/issues/${encodeURIComponent(issue_iid)}/resource_label_events/${encodeURIComponent(resource_label_event_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @returns {*}
+ */
+
+ epics(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single epic..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listGroupEpicLabelEvents(id, epic_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single label event for a specific group epic.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group
+
+ * @param epic_id {integer} - The ID of an epic
+ * @param resource_label_event_id {integer} - The ID of a label event
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleEpicLabelEvent(id, epic_id, resource_label_event_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/epics/${encodeURIComponent(epic_id)}/resource_label_events/${encodeURIComponent(resource_label_event_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mergeRequests(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets a list of all label events for a single merge request..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listProjectMergeRequestLabelEvents(id, merge_request_iid, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/resource_label_events`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a single label event for a specific project merge request.
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param merge_request_iid {integer} - The IID of a merge request
+ * @param resource_label_event_id {integer} - The ID of a label event
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSingleMergeRequestLabelEvent(id, merge_request_iid, resource_label_event_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/merge_requests/${encodeURIComponent(merge_request_iid)}/resource_label_events/${encodeURIComponent(resource_label_event_id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = ResourceLabelEvents;
+
diff --git a/lib/models/runners.js b/lib/models/runners.js
new file mode 100644
index 0000000..c396915
--- /dev/null
+++ b/lib/models/runners.js
@@ -0,0 +1,221 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Runners .
+ */
+class Runners extends ModelBase {
+
+ /**
+ * Create Runners .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of specific runners available to the user..
+
+ * @param params {object}
+ * @param params.scope {string} - Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided
+ * @param params.type {string} - The type of runners to show, one of: instance_type, group_type, project_type
+
+ * @param params.status {string} - The status of runners to show, one of: active, paused, online, offline
+
+ * @returns {*}
+ */
+
+ runnersApi(params) {
+ return this.http.get(`/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of specific runners available to the user..
+
+ * @param params {object}
+ * @param params.scope {string} - Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided
+ * @param params.type {string} - The type of runners to show, one of: instance_type, group_type, project_type
+
+ * @param params.status {string} - The status of runners to show, one of: active, paused, online, offline
+
+ * @returns {*}
+ */
+
+ listOwnedRunners(params) {
+ return this.http.get(`/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all runners in the GitLab instance (specific and shared). Access
+is restricted to users with admin privileges..
+
+ * @param params {object}
+ * @param params.scope {string} - Deprecated: Use type or status instead. The scope of runners to show, one of: specific, shared, active, paused, online, offline; showing all runners if none provided
+ * @param params.type {string} - The type of runners to show, one of: instance_type, group_type, project_type
+
+ * @param params.status {string} - The status of runners to show, one of: active, paused, online, offline
+
+ * @returns {*}
+ */
+
+ listAllRunners(params) {
+ return this.http.get(`/runners/all`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get details of a runner..
+
+ * @param id {integer} - The ID of a runner
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getRunnersDetails(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/runners/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update details of a runner..
+
+ * @param id {integer} - The ID of a runner
+ * @param params {object}
+ * @param params.description {string} - The description of a runner
+ * @param params.active {boolean} - The state of a runner; can be set to true or false
+
+ * @param params.tag_list {array} - The list of tags for a runner; put array of tags, that should be finally assigned to a runner
+ * @param params.run_untagged {boolean} - Flag indicating the runner can execute untagged jobs
+ * @param params.locked {boolean} - Flag indicating the runner is locked
+ * @param params.access_level {string} - The access_level of the runner; not_protected or ref_protected
+
+ * @param params.maximum_timeout {integer} - Maximum timeout set when this Runner will handle the job
+ * @returns {*}
+ */
+
+ updateRunnersDetails(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/runners/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Remove a runner..
+
+ * @param id {integer} - The ID of a runner
+ * @param params {object}
+ * @returns {*}
+ */
+
+ removeARunner(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/runners/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List jobs that are being processed or were processed by specified Runner..
+
+ * @param id {integer} - The ID of a runner
+ * @param params {object}
+ * @param params.status {string} - Status of the job; one of: running, success, failed, canceled
+
+ * @returns {*}
+ */
+
+ listRunnersJobs(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/runners/${encodeURIComponent(id)}/jobs`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List all runners (specific and shared) available in the project. Shared runners
+are listed if at least one shared runner is defined..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - Deprecated: Use type or status instead. The scope of specific runners to show, one of: active, paused, online, offline; showing all runners if none provided
+ * @param params.type {string} - The type of runners to show, one of: instance_type, group_type, project_type
+
+ * @param params.status {string} - The status of runners to show, one of: active, paused, online, offline
+
+ * @returns {*}
+ */
+
+ listProjectsRunners(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Enable an available specific runner in the project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.runner_id {integer} - The ID of a runner
+ * @returns {*}
+ */
+
+ enableARunnerInProject(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Disable a specific runner from the project. It works only if the project isn’t
+the only project associated with the specified runner. If so, an error is
+returned. Use the Remove a runner call instead..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param runner_id {integer} - The ID of a runner
+ * @param params {object}
+ * @returns {*}
+ */
+
+ disableARunnerFromProject(id, runner_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/runners/${encodeURIComponent(runner_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Register a new Runner for the instance..
+
+ * @param params {object}
+ * @param params.token {string} - Registration token (Read how to obtain a token)
+ * @param params.description {string} - Runner’s description
+ * @param params.info {hash} - Runner’s metadata
+ * @param params.active {boolean} - Whether the Runner is active
+ * @param params.locked {boolean} - Whether the Runner should be locked for current project
+ * @param params.run_untagged {boolean} - Whether the Runner should handle untagged jobs
+ * @param params.tag_list {Array[String]} - List of Runner’s tags
+ * @param params.maximum_timeout {integer} - Maximum timeout set when this Runner will handle the job
+ * @returns {*}
+ */
+
+ registerANewRunner(params) {
+ return this.http.post(`/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a registed Runner..
+
+ * @param params {object}
+ * @param params.token {string} - Runner’s authentication token
+ * @returns {*}
+ */
+
+ deleteARegisteredRunner(params) {
+ return this.http.delete(`/runners`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Validates authentication credentials for a registered Runner..
+
+ * @param params {object}
+ * @param params.token {string} - Runner’s authentication token
+ * @returns {*}
+ */
+
+ verifyAuthenticationForARegisteredRunner(params) {
+ return this.http.post(`/runners/verify`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Runners;
+
diff --git a/lib/models/search.js b/lib/models/search.js
new file mode 100644
index 0000000..1c54c3c
--- /dev/null
+++ b/lib/models/search.js
@@ -0,0 +1,65 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Search .
+ */
+class Search extends ModelBase {
+
+ /**
+ * Create Search .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Search globally across the GitLab instance..
+
+ * @param params {object}
+ * @param params.scope {string} - The scope to search in
+ * @param params.search {string} - The search query
+ * @returns {*}
+ */
+
+ globalSearchApi(params) {
+ return this.http.get(`/search`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Search within the specified group..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the group owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope to search in
+ * @param params.search {string} - The search query
+ * @returns {*}
+ */
+
+ groupSearchApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/groups/${encodeURIComponent(id)}/search`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Search within the specified project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.scope {string} - The scope to search in
+ * @param params.search {string} - The search query
+ * @returns {*}
+ */
+
+ projectSearchApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/search`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Search;
+
diff --git a/lib/models/services.js b/lib/models/services.js
new file mode 100644
index 0000000..cfae2c8
--- /dev/null
+++ b/lib/models/services.js
@@ -0,0 +1,1634 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Services .
+ */
+class Services extends ModelBase {
+
+ /**
+ * Create Services .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Asana - Teamwork without email.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ servicesApi(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/asana`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Asana - Teamwork without email.
+
+ * @param params {object}
+ * @param params.api_key {string} - User API token. User must have access to task, all comments will be attributed to this user.
+ * @param params.restrict_to_branch {string} - Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches.
+ * @returns {*}
+ */
+
+ asana(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/asana`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Asana service for a project..
+
+ * @param params {object}
+ * @param params.api_key {string} - User API token. User must have access to task, all comments will be attributed to this user.
+ * @param params.restrict_to_branch {string} - Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches.
+ * @returns {*}
+ */
+
+ createeditAsanaService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/asana`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Asana service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAsanaService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/asana`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Asana service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAsanaServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/asana`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Project Management Software (Source Commits Endpoint).
+
+ * @param params {object}
+ * @param params.token {string} - The authentication token
+ * @param params.subdomain {string} - The subdomain setting
+ * @returns {*}
+ */
+
+ assembla(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/assembla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Assembla service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - The authentication token
+ * @param params.subdomain {string} - The subdomain setting
+ * @returns {*}
+ */
+
+ createeditAssemblaService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/assembla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Assembla service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAssemblaService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/assembla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Assembla service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAssemblaServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/assembla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * A continuous integration and build server.
+
+ * @param params {object}
+ * @param params.bamboo_url {string} - Bamboo root URL. For example, https://bamboo.example.com.
+ * @param params.build_key {string} - Bamboo build plan key like KEY
+ * @param params.username {string} - A user with API access, if applicable
+ * @param params.password {string} - Password of the user
+ * @returns {*}
+ */
+
+ atlassianBambooCi(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/bamboo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Atlassian Bamboo CI service for a project..
+
+ * @param params {object}
+ * @param params.bamboo_url {string} - Bamboo root URL. For example, https://bamboo.example.com.
+ * @param params.build_key {string} - Bamboo build plan key like KEY
+ * @param params.username {string} - A user with API access, if applicable
+ * @param params.password {string} - Password of the user
+ * @returns {*}
+ */
+
+ createeditAtlassianBambooCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/bamboo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Atlassian Bamboo CI service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAtlassianBambooCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/bamboo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Atlassian Bamboo CI service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAtlassianBambooCiServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/bamboo`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Bugzilla Issue Tracker.
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.issues_url {string} - Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.description {string} - Description
+ * @param params.title {string} - Title
+ * @returns {*}
+ */
+
+ bugzilla(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/bugzilla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Bugzilla service for a project..
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.issues_url {string} - Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.description {string} - Description
+ * @param params.title {string} - Title
+ * @returns {*}
+ */
+
+ createeditBugzillaService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/bugzilla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Bugzilla service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteBugzillaService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/bugzilla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Bugzilla service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getBugzillaServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/bugzilla`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Continuous integration and deployments.
+
+ * @param params {object}
+ * @param params.token {string} - Buildkite project GitLab token
+ * @param params.project_url {string} - https://buildkite.com/example/project
+ * @param params.enable_ssl_verification {boolean} - Enable SSL verification
+ * @returns {*}
+ */
+
+ buildkite(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/buildkite`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Buildkite service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - Buildkite project GitLab token
+ * @param params.project_url {string} - https://buildkite.com/example/project
+ * @param params.enable_ssl_verification {boolean} - Enable SSL verification
+ * @returns {*}
+ */
+
+ createeditBuildkiteService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/buildkite`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Buildkite service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteBuildkiteService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/buildkite`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Buildkite service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getBuildkiteServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/buildkite`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Simple web-based real-time group chat.
+
+ * @param params {object}
+ * @param params.token {string} - Campfire token
+ * @param params.subdomain {string} - Campfire subdomain
+ * @param params.room {string} - Campfire room
+ * @returns {*}
+ */
+
+ campfire(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/campfire`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Campfire service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - Campfire token
+ * @param params.subdomain {string} - Campfire subdomain
+ * @param params.room {string} - Campfire room
+ * @returns {*}
+ */
+
+ createeditCampfireService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/campfire`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Campfire service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteCampfireService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/campfire`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Campfire service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getCampfireServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/campfire`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Custom issue tracker.
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.issues_url {string} - Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.description {string} - Description
+ * @param params.title {string} - Title
+ * @returns {*}
+ */
+
+ customIssueTracker(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/custom-issue-tracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Custom Issue Tracker service for a project..
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.issues_url {string} - Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.description {string} - Description
+ * @param params.title {string} - Title
+ * @returns {*}
+ */
+
+ createeditCustomIssueTrackerService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/custom-issue-tracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Custom Issue Tracker service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteCustomIssueTrackerService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/custom-issue-tracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Custom Issue Tracker service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getCustomIssueTrackerServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/custom-issue-tracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Drone is a Continuous Integration platform built on Docker, written in Go.
+
+ * @param params {object}
+ * @param params.token {string} - Drone CI project specific token
+ * @param params.drone_url {string} - http://drone.example.com
+ * @param params.enable_ssl_verification {boolean} - Enable SSL verification
+ * @returns {*}
+ */
+
+ droneCi(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/drone-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Drone CI service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - Drone CI project specific token
+ * @param params.drone_url {string} - http://drone.example.com
+ * @param params.enable_ssl_verification {boolean} - Enable SSL verification
+ * @returns {*}
+ */
+
+ createeditDroneCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/drone-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Drone CI service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteDroneCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/drone-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Drone CI service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getDroneCiServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/drone-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Email the commits and diff of each push to a list of recipients..
+
+ * @param params {object}
+ * @param params.recipients {string} - Emails separated by whitespace
+ * @param params.disable_diffs {boolean} - Disable code diffs
+ * @param params.send_from_committer_email {boolean} - Send from committer
+ * @returns {*}
+ */
+
+ emailsOnPush(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/emails-on-push`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Emails on push service for a project..
+
+ * @param params {object}
+ * @param params.recipients {string} - Emails separated by whitespace
+ * @param params.disable_diffs {boolean} - Disable code diffs
+ * @param params.send_from_committer_email {boolean} - Send from committer
+ * @returns {*}
+ */
+
+ createeditEmailsOnPushService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/emails-on-push`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Emails on push service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteEmailsOnPushService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/emails-on-push`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Emails on push service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getEmailsOnPushServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/emails-on-push`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Replaces the link to the internal wiki with a link to an external wiki..
+
+ * @param params {object}
+ * @param params.external_wiki_url {string} - The URL of the external Wiki
+ * @returns {*}
+ */
+
+ externalWiki(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/external-wiki`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set External Wiki service for a project..
+
+ * @param params {object}
+ * @param params.external_wiki_url {string} - The URL of the external Wiki
+ * @returns {*}
+ */
+
+ createeditExternalWikiService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/external-wiki`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete External Wiki service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteExternalWikiService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/external-wiki`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get External Wiki service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getExternalWikiServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/external-wiki`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Flowdock is a collaboration web app for technical teams..
+
+ * @param params {object}
+ * @param params.token {string} - Flowdock Git source token
+ * @returns {*}
+ */
+
+ flowdock(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/flowdock`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Flowdock service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - Flowdock Git source token
+ * @returns {*}
+ */
+
+ createeditFlowdockService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/flowdock`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Flowdock service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteFlowdockService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/flowdock`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Flowdock service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getFlowdockServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/flowdock`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Google GSuite team collaboration tool..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ hangoutsChat(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/hangouts_chat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Hangouts Chat service for a project..
+
+ * @param params {object}
+ * @param params.webhook {string} - The Hangouts Chat webhook. For example, https://chat.googleapis.com/v1/spaces....
+ * @param params.notify_only_broken_pipelines {boolean} - Send notifications for broken pipelines
+ * @param params.notify_only_default_branch {boolean} - Send notifications only for the default branch
+ * @param params.push_events {boolean} - Enable notifications for push events
+ * @param params.issues_events {boolean} - Enable notifications for issue events
+ * @param params.confidential_issues_events {boolean} - Enable notifications for confidential issue events
+ * @param params.merge_requests_events {boolean} - Enable notifications for merge request events
+ * @param params.tag_push_events {boolean} - Enable notifications for tag push events
+ * @param params.note_events {boolean} - Enable notifications for note events
+ * @param params.pipeline_events {boolean} - Enable notifications for pipeline events
+ * @param params.wiki_page_events {boolean} - Enable notifications for wiki page events
+ * @returns {*}
+ */
+
+ createeditHangoutsChatService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/hangouts_chat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Hangouts Chat service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteHangoutsChatService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/hangouts_chat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Hangouts Chat service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getHangoutsChatServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/hangouts_chat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Private group chat and IM.
+
+ * @param params {object}
+ * @param params.token {string} - Room token
+ * @param params.color {string} - The room color
+ * @param params.notify {boolean} - Enable notifications
+ * @param params.room {string} - Room name or ID
+ * @param params.api_version {string} - Leave blank for default (v2)
+ * @param params.server {string} - Leave blank for default. For example, https://hipchat.example.com.
+ * @returns {*}
+ */
+
+ hipchat(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/hipchat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set HipChat service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - Room token
+ * @param params.color {string} - The room color
+ * @param params.notify {boolean} - Enable notifications
+ * @param params.room {string} - Room name or ID
+ * @param params.api_version {string} - Leave blank for default (v2)
+ * @param params.server {string} - Leave blank for default. For example, https://hipchat.example.com.
+ * @returns {*}
+ */
+
+ createeditHipchatService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/hipchat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete HipChat service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteHipchatService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/hipchat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get HipChat service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getHipchatServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/hipchat`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Send IRC messages, on update, to a list of recipients through an Irker gateway..
+
+ * @param params {object}
+ * @param params.recipients {string} - Recipients/channels separated by whitespaces
+ * @param params.default_irc_uri {string} - irc://irc.network.net:6697/
+ * @param params.server_host {string} - localhost
+ * @param params.server_port {integer} - 6659
+ * @param params.colorize_messages {boolean} - Colorize messages
+ * @returns {*}
+ */
+
+ irkerIrcGateway(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/irker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Irker (IRC gateway) service for a project..
+
+ * @param params {object}
+ * @param params.recipients {string} - Recipients/channels separated by whitespaces
+ * @param params.default_irc_uri {string} - irc://irc.network.net:6697/
+ * @param params.server_host {string} - localhost
+ * @param params.server_port {integer} - 6659
+ * @param params.colorize_messages {boolean} - Colorize messages
+ * @returns {*}
+ */
+
+ createeditIrkerIrcGatewayService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/irker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Irker (IRC gateway) service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteIrkerIrcGatewayService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/irker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Irker (IRC gateway) service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getIrkerIrcGatewayServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/irker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * JIRA issue tracker..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ jira(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/jira`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get JIRA service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getJiraServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/jira`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set JIRA service for a project..
+
+ * @param params {object}
+ * @param params.url {string} - The URL to the JIRA project which is being linked to this GitLab project. For example, https://jira.example.com.
+ * @param params.project_key {string} - The short identifier for your JIRA project, all uppercase, e.g., PROJ.
+ * @param params.username {string} - The username of the user created to be used with GitLab/JIRA.
+ * @param params.password {string} - The password of the user created to be used with GitLab/JIRA.
+ * @param params.jira_issue_transition_id {integer} - The ID of a transition that moves issues to a closed state. You can find this number under the JIRA workflow administration (Administration > Issues > Workflows) by selecting View under Operations of the desired workflow of your project. The ID of each state can be found inside the parenthesis of each transition name under the Transitions (id) column ([see screenshot][trans]). By default, this ID is set to 2.
+ * @returns {*}
+ */
+
+ createeditJiraService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/jira`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Remove all previously JIRA settings from a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteJiraService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/jira`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Kubernetes service for a project..
+
+ * @param params {object}
+ * @param params.namespace {} - undefined
+ * @returns {*}
+ */
+
+ createeditKubernetesService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/kubernetes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Kubernetes service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteKubernetesService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/kubernetes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Kubernetes service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getKubernetesServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/kubernetes`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Ability to receive slash commands from a Slack chat instance..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ slackSlashCommands(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/slack-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Slack slash command service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSlackSlashCommandServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/slack-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Slack slash command for a project..
+
+ * @param params {object}
+ * @param params.token {string} - The Slack token
+ * @returns {*}
+ */
+
+ createeditSlackSlashCommandService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/slack-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Slack slash command service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSlackSlashCommandService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/slack-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Ability to receive slash commands from a Mattermost chat instance..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ mattermostSlashCommands(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/mattermost-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Mattermost slash command service settings for a project..
+
+ * @param params {object}
+ * @param params.token {string} - The Mattermost token
+ * @param params.username {string} - The username to use to post the message
+ * @returns {*}
+ */
+
+ getMattermostSlashCommandServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/mattermost-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Mattermost slash command for a project..
+
+ * @param params {object}
+ * @param params.token {string} - The Mattermost token
+ * @param params.username {string} - The username to use to post the message
+ * @returns {*}
+ */
+
+ createeditMattermostSlashCommandService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/mattermost-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Mattermost slash command service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteMattermostSlashCommandService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/mattermost-slash-commands`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Update your project on Packagist, the main Composer repository, when commits or tags are pushed to GitLab..
+
+ * @param params {object}
+ * @param params.username {} - undefined
+ * @returns {*}
+ */
+
+ packagist(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/packagist`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Packagist service for a project..
+
+ * @param params {object}
+ * @param params.username {} - undefined
+ * @returns {*}
+ */
+
+ createeditPackagistService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/packagist`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Packagist service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deletePackagistService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/packagist`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Packagist service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getPackagistServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/packagist`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get emails for GitLab CI pipelines..
+
+ * @param params {object}
+ * @param params.recipients {string} - Comma-separated list of recipient email addresses
+ * @param params.add_pusher {boolean} - Add pusher to recipients list
+ * @param params.notify_only_broken_pipelines {boolean} - Notify only broken pipelines
+ * @returns {*}
+ */
+
+ pipelineEmails(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pipelines-email`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Pipeline-Emails service for a project..
+
+ * @param params {object}
+ * @param params.recipients {string} - Comma-separated list of recipient email addresses
+ * @param params.add_pusher {boolean} - Add pusher to recipients list
+ * @param params.notify_only_broken_pipelines {boolean} - Notify only broken pipelines
+ * @returns {*}
+ */
+
+ createeditPipelineEmailsService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pipelines-email`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Pipeline-Emails service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deletePipelineEmailsService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/pipelines-email`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Pipeline-Emails service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getPipelineEmailsServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/pipelines-email`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Project Management Software (Source Commits Endpoint).
+
+ * @param params {object}
+ * @param params.token {string} - The PivotalTracker token
+ * @param params.restrict_to_branch {boolean} - Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches.
+ * @returns {*}
+ */
+
+ pivotaltracker(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pivotaltracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set PivotalTracker service for a project..
+
+ * @param params {object}
+ * @param params.token {string} - The PivotalTracker token
+ * @param params.restrict_to_branch {boolean} - Comma-separated list of branches which will be automatically inspected. Leave blank to include all branches.
+ * @returns {*}
+ */
+
+ createeditPivotaltrackerService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pivotaltracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete PivotalTracker service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deletePivotaltrackerService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/pivotaltracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get PivotalTracker service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getPivotaltrackerServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/pivotaltracker`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Prometheus is a powerful time-series monitoring service..
+
+ * @param params {object}
+ * @param params.api_url {string} - Prometheus API Base URL. For example, http://prometheus.example.com/.
+ * @returns {*}
+ */
+
+ prometheus(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/prometheus`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Prometheus service for a project..
+
+ * @param params {object}
+ * @param params.api_url {string} - Prometheus API Base URL. For example, http://prometheus.example.com/.
+ * @returns {*}
+ */
+
+ createeditPrometheusService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/prometheus`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Prometheus service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deletePrometheusService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/prometheus`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Prometheus service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getPrometheusServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/prometheus`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Pushover makes it easy to get real-time notifications on your Android device, iPhone, iPad, and Desktop..
+
+ * @param params {object}
+ * @param params.api_key {string} - Your application key
+ * @param params.user_key {string} - Your user key
+ * @param params.priority {string} - The priority
+ * @param params.device {string} - Leave blank for all active devices
+ * @param params.sound {string} - The sound of the notification
+ * @returns {*}
+ */
+
+ pushover(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pushover`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Pushover service for a project..
+
+ * @param params {object}
+ * @param params.api_key {string} - Your application key
+ * @param params.user_key {string} - Your user key
+ * @param params.priority {string} - The priority
+ * @param params.device {string} - Leave blank for all active devices
+ * @param params.sound {string} - The sound of the notification
+ * @returns {*}
+ */
+
+ createeditPushoverService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/pushover`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Pushover service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deletePushoverService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/pushover`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Pushover service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getPushoverServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/pushover`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Redmine issue tracker.
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.issues_url {string} - Issue url
+ * @param params.description {string} - Description
+ * @returns {*}
+ */
+
+ redmine(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/redmine`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Redmine service for a project..
+
+ * @param params {object}
+ * @param params.new_issue_url {string} - New Issue url
+ * @param params.project_url {string} - Project url
+ * @param params.issues_url {string} - Issue url
+ * @param params.description {string} - Description
+ * @returns {*}
+ */
+
+ createeditRedmineService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/redmine`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Redmine service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteRedmineService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/redmine`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Redmine service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getRedmineServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/redmine`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Receive event notifications in Slack.
+
+ * @param params {object}
+ * @param params.webhook {string} - https://hooks.slack.com/services/...
+ * @param params.username {string} - username
+ * @param params.channel {string} - Default channel to use if others are not configured
+ * @param params.notify_only_broken_pipelines {boolean} - Send notifications for broken pipelines
+ * @param params.notify_only_default_branch {boolean} - Send notifications only for the default branch
+ * @param params.push_events {boolean} - Enable notifications for push events
+ * @param params.issues_events {boolean} - Enable notifications for issue events
+ * @param params.confidential_issues_events {boolean} - Enable notifications for confidential issue events
+ * @param params.merge_requests_events {boolean} - Enable notifications for merge request events
+ * @param params.tag_push_events {boolean} - Enable notifications for tag push events
+ * @param params.note_events {boolean} - Enable notifications for note events
+ * @param params.pipeline_events {boolean} - Enable notifications for pipeline events
+ * @param params.wiki_page_events {boolean} - Enable notifications for wiki page events
+ * @param params.push_channel {string} - The name of the channel to receive push events notifications
+ * @param params.issue_channel {string} - The name of the channel to receive issues events notifications
+ * @param params.confidential_issue_channel {string} - The name of the channel to receive confidential issues events notifications
+ * @param params.merge_request_channel {string} - The name of the channel to receive merge request events notifications
+ * @param params.note_channel {string} - The name of the channel to receive note events notifications
+ * @param params.tag_push_channel {string} - The name of the channel to receive tag push events notifications
+ * @param params.pipeline_channel {string} - The name of the channel to receive pipeline events notifications
+ * @param params.wiki_page_channel {string} - The name of the channel to receive wiki page events notifications
+ * @returns {*}
+ */
+
+ slackNotifications(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/slack`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Slack service for a project..
+
+ * @param params {object}
+ * @param params.webhook {string} - https://hooks.slack.com/services/...
+ * @param params.username {string} - username
+ * @param params.channel {string} - Default channel to use if others are not configured
+ * @param params.notify_only_broken_pipelines {boolean} - Send notifications for broken pipelines
+ * @param params.notify_only_default_branch {boolean} - Send notifications only for the default branch
+ * @param params.push_events {boolean} - Enable notifications for push events
+ * @param params.issues_events {boolean} - Enable notifications for issue events
+ * @param params.confidential_issues_events {boolean} - Enable notifications for confidential issue events
+ * @param params.merge_requests_events {boolean} - Enable notifications for merge request events
+ * @param params.tag_push_events {boolean} - Enable notifications for tag push events
+ * @param params.note_events {boolean} - Enable notifications for note events
+ * @param params.pipeline_events {boolean} - Enable notifications for pipeline events
+ * @param params.wiki_page_events {boolean} - Enable notifications for wiki page events
+ * @param params.push_channel {string} - The name of the channel to receive push events notifications
+ * @param params.issue_channel {string} - The name of the channel to receive issues events notifications
+ * @param params.confidential_issue_channel {string} - The name of the channel to receive confidential issues events notifications
+ * @param params.merge_request_channel {string} - The name of the channel to receive merge request events notifications
+ * @param params.note_channel {string} - The name of the channel to receive note events notifications
+ * @param params.tag_push_channel {string} - The name of the channel to receive tag push events notifications
+ * @param params.pipeline_channel {string} - The name of the channel to receive pipeline events notifications
+ * @param params.wiki_page_channel {string} - The name of the channel to receive wiki page events notifications
+ * @returns {*}
+ */
+
+ createeditSlackService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/slack`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Slack service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSlackService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/slack`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Slack service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getSlackServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/slack`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Group Chat Software.
+
+ * @param params {object}
+ * @param params.webhook {string} - The Microsoft Teams webhook. For example, https://outlook.office.com/webhook/...
+
+ * @returns {*}
+ */
+
+ microsoftTeams(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/microsoft-teams`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Microsoft Teams service for a project..
+
+ * @param params {object}
+ * @param params.webhook {string} - The Microsoft Teams webhook. For example, https://outlook.office.com/webhook/...
+
+ * @returns {*}
+ */
+
+ createeditMicrosoftTeamsService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/microsoft-teams`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Microsoft Teams service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteMicrosoftTeamsService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/microsoft-teams`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Microsoft Teams service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getMicrosoftTeamsServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/microsoft-teams`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Receive event notifications in Mattermost.
+
+ * @param params {object}
+ * @param params.webhook {string} - The Mattermost webhook. For example, http://mattermost_host/hooks/...
+
+ * @param params.username {string} - username
+ * @param params.channel {string} - Default channel to use if others are not configured
+ * @param params.notify_only_broken_pipelines {boolean} - Send notifications for broken pipelines
+ * @param params.notify_only_default_branch {boolean} - Send notifications only for the default branch
+ * @param params.push_events {boolean} - Enable notifications for push events
+ * @param params.issues_events {boolean} - Enable notifications for issue events
+ * @param params.confidential_issues_events {boolean} - Enable notifications for confidential issue events
+ * @param params.merge_requests_events {boolean} - Enable notifications for merge request events
+ * @param params.tag_push_events {boolean} - Enable notifications for tag push events
+ * @param params.note_events {boolean} - Enable notifications for note events
+ * @param params.pipeline_events {boolean} - Enable notifications for pipeline events
+ * @param params.wiki_page_events {boolean} - Enable notifications for wiki page events
+ * @param params.push_channel {string} - The name of the channel to receive push events notifications
+ * @param params.issue_channel {string} - The name of the channel to receive issues events notifications
+ * @param params.confidential_issue_channel {string} - The name of the channel to receive confidential issues events notifications
+ * @param params.merge_request_channel {string} - The name of the channel to receive merge request events notifications
+ * @param params.note_channel {string} - The name of the channel to receive note events notifications
+ * @param params.tag_push_channel {string} - The name of the channel to receive tag push events notifications
+ * @param params.pipeline_channel {string} - The name of the channel to receive pipeline events notifications
+ * @param params.wiki_page_channel {string} - The name of the channel to receive wiki page events notifications
+ * @returns {*}
+ */
+
+ mattermostNotifications(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/mattermost`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Mattermost service for a project..
+
+ * @param params {object}
+ * @param params.webhook {string} - The Mattermost webhook. For example, http://mattermost_host/hooks/...
+
+ * @param params.username {string} - username
+ * @param params.channel {string} - Default channel to use if others are not configured
+ * @param params.notify_only_broken_pipelines {boolean} - Send notifications for broken pipelines
+ * @param params.notify_only_default_branch {boolean} - Send notifications only for the default branch
+ * @param params.push_events {boolean} - Enable notifications for push events
+ * @param params.issues_events {boolean} - Enable notifications for issue events
+ * @param params.confidential_issues_events {boolean} - Enable notifications for confidential issue events
+ * @param params.merge_requests_events {boolean} - Enable notifications for merge request events
+ * @param params.tag_push_events {boolean} - Enable notifications for tag push events
+ * @param params.note_events {boolean} - Enable notifications for note events
+ * @param params.pipeline_events {boolean} - Enable notifications for pipeline events
+ * @param params.wiki_page_events {boolean} - Enable notifications for wiki page events
+ * @param params.push_channel {string} - The name of the channel to receive push events notifications
+ * @param params.issue_channel {string} - The name of the channel to receive issues events notifications
+ * @param params.confidential_issue_channel {string} - The name of the channel to receive confidential issues events notifications
+ * @param params.merge_request_channel {string} - The name of the channel to receive merge request events notifications
+ * @param params.note_channel {string} - The name of the channel to receive note events notifications
+ * @param params.tag_push_channel {string} - The name of the channel to receive tag push events notifications
+ * @param params.pipeline_channel {string} - The name of the channel to receive pipeline events notifications
+ * @param params.wiki_page_channel {string} - The name of the channel to receive wiki page events notifications
+ * @returns {*}
+ */
+
+ createeditMattermostNotificationsService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/mattermost`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Mattermost Notifications service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteMattermostNotificationsService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/mattermost`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Mattermost notifications service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getMattermostNotificationsServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/mattermost`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * A continuous integration and build server.
+
+ * @param params {object}
+ * @param params.teamcity_url {string} - TeamCity root URL. For example, https://teamcity.example.com
+
+ * @param params.build_type {string} - Build configuration ID
+ * @param params.username {string} - A user with permissions to trigger a manual build
+ * @param params.password {string} - The password of the user
+ * @returns {*}
+ */
+
+ jetbrainsTeamcityCi(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/teamcity`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set JetBrains TeamCity CI service for a project..
+
+ * @param params {object}
+ * @param params.teamcity_url {string} - TeamCity root URL. For example, https://teamcity.example.com
+
+ * @param params.build_type {string} - Build configuration ID
+ * @param params.username {string} - A user with permissions to trigger a manual build
+ * @param params.password {string} - The password of the user
+ * @returns {*}
+ */
+
+ createeditJetbrainsTeamcityCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/teamcity`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete JetBrains TeamCity CI service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteJetbrainsTeamcityCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/teamcity`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get JetBrains TeamCity CI service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getJetbrainsTeamcityCiServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/teamcity`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * A continuous integration and build server.
+
+ * @param params {object}
+ * @param params.jenkins_url {} - undefined
+ * @returns {*}
+ */
+
+ jenkinsCi(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/jenkins`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Jenkins CI service for a project..
+
+ * @param params {object}
+ * @param params.jenkins_url {} - undefined
+ * @returns {*}
+ */
+
+ createeditJenkinsCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/jenkins`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Jenkins CI service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteJenkinsCiService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/jenkins`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Jenkins CI service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getJenkinsCiServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/jenkins`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * A continuous integration and build server.
+
+ * @param params {object}
+ * @param params.project_url {} - undefined
+ * @returns {*}
+ */
+
+ jenkinsCiDeprecatedService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/jenkins-deprecated`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set Jenkins CI (Deprecated) service for a project..
+
+ * @param params {object}
+ * @param params.project_url {} - undefined
+ * @returns {*}
+ */
+
+ createeditJenkinsCiDeprecatedService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/jenkins-deprecated`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete Jenkins CI (Deprecated) service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteJenkinsCiDeprecatedService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/jenkins-deprecated`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get Jenkins CI (Deprecated) service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getJenkinsCiDeprecatedServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/jenkins-deprecated`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Mock an external CI. See gitlab-org/gitlab-mock-ci-service for an example of a companion mock service..
+
+ * @param params {object}
+ * @param params.mock_service_url {string} - http://localhost:4004
+ * @returns {*}
+ */
+
+ mockci(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/mock-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set MockCI service for a project..
+
+ * @param params {object}
+ * @param params.mock_service_url {string} - http://localhost:4004
+ * @returns {*}
+ */
+
+ createeditMockciService(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/services/mock-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete MockCI service for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteMockciService(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/services/mock-ci`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get MockCI service settings for a project..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getMockciServiceSettings(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/services/mock-ci`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Services;
+
diff --git a/lib/models/settings.js b/lib/models/settings.js
new file mode 100644
index 0000000..b7edba2
--- /dev/null
+++ b/lib/models/settings.js
@@ -0,0 +1,217 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Settings .
+ */
+class Settings extends ModelBase {
+
+ /**
+ * Create Settings .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * List the current application settings
+of the GitLab instance..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getCurrentApplicationSettings(params) {
+ return this.http.get(`/application/settings`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Use an API call to modify GitLab instance
+application settings..
+
+ * @param params {object}
+ * @param params.admin_notification_email {string} - Abuse reports will be sent to this address if it is set. Abuse reports are always available in the admin area.
+ * @param params.after_sign_out_path {string} - Where to redirect users after logout.
+ * @param params.after_sign_up_text {string} - Text shown to the user after signing up
+ * @param params.akismet_api_key {string} - API key for akismet spam protection.
+ * @param params.akismet_enabled {boolean} - (If enabled, requires: akismet_api_key) Enable or disable akismet spam protection.
+ * @param params.allow_group_owners_to_manage_ldap {boolean} -
+(Premium) Set to true to allow group owners to manage LDAP
+ * @param params.allow_local_requests_from_hooks_and_services {boolean} - Allow requests to the local network from hooks and services.
+ * @param params.authorized_keys_enabled {boolean} - By default, we write to the authorized_keys file to support Git over SSH without additional configuration. GitLab can be optimized to authenticate SSH keys via the database file. Only disable this if you have configured your OpenSSH server to use the AuthorizedKeysCommand.
+ * @param params.auto_devops_domain {string} - Specify a domain to use by default for every project’s Auto Review Apps and Auto Deploy stages.
+ * @param params.auto_devops_enabled {boolean} - Enable Auto DevOps for projects by default. It will automatically build, test, and deploy applications based on a predefined CI/CD configuration.
+ * @param params.check_namespace_plan {boolean} -
+(Premium) Enabling this will make only licensed EE features available to projects if the project namespace’s plan includes the feature or if the project is public.
+ * @param params.clientside_sentry_dsn {string} - Clientside Sentry Data Source Name.
+ * @param params.clientside_sentry_enabled {boolean} - (If enabled, requires: clientside_sentry_dsn) Enable Sentry error reporting for the client side.
+ * @param params.container_registry_token_expire_delay {integer} - Container Registry token duration in minutes.
+ * @param params.default_artifacts_expire_in {string} - Set the default expiration time for each job’s artifacts.
+ * @param params.default_branch_protection {integer} - Determine if developers can push to master. Can take: 0 (not protected, both developers and maintainers can push new commits, force push, or delete the branch), 1 (partially protected, developers and maintainers can push new commits, but cannot force push or delete the branch) or 2 (fully protected, developers cannot push new commits, but maintainers can; no-one can force push or delete the branch) as a parameter. Default is 2.
+ * @param params.default_group_visibility {string} - What visibility level new groups receive. Can take private, internal and public as a parameter. Default is private.
+ * @param params.default_project_visibility {string} - What visibility level new projects receive. Can take private, internal and public as a parameter. Default is private.
+ * @param params.default_projects_limit {integer} - Project limit per user. Default is 100000.
+ * @param params.default_snippet_visibility {string} - What visibility level new snippets receive. Can take private, internal and public as a parameter. Default is private.
+ * @param params.disabled_oauth_sign_in_sources {array of strings} - Disabled OAuth sign-in sources.
+ * @param params.domain_blacklist {array of strings} - Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com.
+ * @param params.domain_blacklist_enabled {boolean} - (If enabled, requires: domain_blacklist) Allows blocking sign-ups from emails from specific domains.
+ * @param params.domain_whitelist {array of strings} - Force people to use only corporate emails for sign-up. Default is null, meaning there is no restriction.
+ * @param params.dsa_key_restriction {integer} - The minimum allowed bit length of an uploaded DSA key. Default is 0 (no restriction). -1 disables DSA keys.
+ * @param params.ecdsa_key_restriction {integer} - The minimum allowed curve size (in bits) of an uploaded ECDSA key. Default is 0 (no restriction). -1 disables ECDSA keys.
+ * @param params.ed25519_key_restriction {integer} - The minimum allowed curve size (in bits) of an uploaded ED25519 key. Default is 0 (no restriction). -1 disables ED25519 keys.
+ * @param params.elasticsearch_aws {boolean} -
+(Premium) Enable the use of AWS hosted Elasticsearch
+ * @param params.elasticsearch_aws_access_key {string} -
+(Premium) AWS IAM access key
+ * @param params.elasticsearch_aws_region {string} -
+(Premium) The AWS region the elasticsearch domain is configured
+ * @param params.elasticsearch_aws_secret_access_key {string} -
+(Premium) AWS IAM secret access key
+ * @param params.elasticsearch_experimental_indexer {boolean} -
+(Premium) Use the experimental elasticsearch indexer. More info: https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer
+
+ * @param params.elasticsearch_indexing {boolean} -
+(Premium) Enable Elasticsearch indexing
+ * @param params.elasticsearch_search {boolean} -
+(Premium) Enable Elasticsearch search
+ * @param params.elasticsearch_url {string} -
+(Premium) The url to use for connecting to Elasticsearch. Use a comma-separated list to support cluster (e.g., “http://localhost:9200, http://localhost:9201"). If your Elasticsearch instance is password protected, pass the username:password in the URL (e.g., http://:@:9200/).
+ * @param params.email_additional_text {string} -
+(Premium) Additional text added to the bottom of every email for legal/auditing/compliance reasons
+ * @param params.email_author_in_body {boolean} - Some email servers do not support overriding the email sender name. Enable this option to include the name of the author of the issue, merge request or comment in the email body instead.
+ * @param params.enabled_git_access_protocol {string} - Enabled protocols for Git access. Allowed values are: ssh, http, and nil to allow both protocols.
+ * @param params.enforce_terms {boolean} - (If enabled, requires: terms) Enforce application ToS to all users.
+ * @param params.external_auth_client_cert {string} -
+(Premium) (If enabled, requires: external_auth_client_key) The certificate to use to authenticate with the external authorization service
+ * @param params.external_auth_client_key {string} -
+(Premium) Private key for the certificate when authentication is required for the external authorization service, this is encrypted when stored
+ * @param params.external_auth_client_key_pass {string} -
+(Premium) Passphrase to use for the private key when authenticating with the external service this is encrypted when stored
+ * @param params.external_authorization_service_enabled {boolean} -
+(Premium) (If enabled, requires: external_authorization_service_default_label, external_authorization_service_timeout and external_authorization_service_url ) Enable using an external authorization service for accessing projects
+ * @param params.external_authorization_service_default_label {string} -
+(Premium) The default classification label to use when requesting authorization and no classification label has been specified on the project
+ * @param params.external_authorization_service_timeout {float} -
+(Premium) The timeout after which an authorization request is aborted, in seconds. When a request times out, access is denied to the user. (min: 0.001, max: 10, step: 0.001)
+ * @param params.external_authorization_service_url {string} -
+(Premium) URL to which authorization requests will be directed
+ * @param params.file_template_project_id {integer} -
+(Premium) The ID of a project to load custom file templates from
+ * @param params.geo_status_timeout {integer} -
+(Premium) The amount of seconds after which a request to get a secondary node status will time out.
+ * @param params.gitaly_timeout_default {integer} - Default Gitaly timeout, in seconds. This timeout is not enforced for git fetch/push operations or Sidekiq jobs. Set to 0 to disable timeouts.
+ * @param params.gitaly_timeout_fast {integer} - Gitaly fast operation timeout, in seconds. Some Gitaly operations are expected to be fast. If they exceed this threshold, there may be a problem with a storage shard and ‘failing fast’ can help maintain the stability of the GitLab instance. Set to 0 to disable timeouts.
+ * @param params.gitaly_timeout_medium {integer} - Medium Gitaly timeout, in seconds. This should be a value between the Fast and the Default timeout. Set to 0 to disable timeouts.
+ * @param params.gravatar_enabled {boolean} - Enable Gravatar.
+ * @param params.hashed_storage_enabled {boolean} - Create new projects using hashed storage paths: Enable immutable, hash-based paths and repository names to store repositories on disk. This prevents repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance. (EXPERIMENTAL)
+ * @param params.help_page_hide_commercial_content {boolean} - Hide marketing-related entries from help.
+ * @param params.help_page_support_url {string} - Alternate support URL for help page.
+ * @param params.help_page_text {string} - Custom text displayed on the help page.
+ * @param params.help_text {string} -
+(Premium) GitLab server administrator information
+ * @param params.hide_third_party_offers {boolean} - Do not display offers from third parties within GitLab.
+ * @param params.home_page_url {string} - Redirect to this URL when not logged in.
+ * @param params.housekeeping_bitmaps_enabled {boolean} - Enable Git pack file bitmap creation.
+ * @param params.housekeeping_enabled {boolean} - (If enabled, requires: housekeeping_bitmaps_enabled, housekeeping_full_repack_period, housekeeping_gc_period, and housekeeping_incremental_repack_period) Enable or disable git housekeeping.
+ * @param params.housekeeping_full_repack_period {integer} - Number of Git pushes after which an incremental git repack is run.
+ * @param params.housekeeping_gc_period {integer} - Number of Git pushes after which git gc is run.
+ * @param params.housekeeping_incremental_repack_period {integer} - Number of Git pushes after which an incremental git repack is run.
+ * @param params.html_emails_enabled {boolean} - Enable HTML emails.
+ * @param params.instance_statistics_visibility_private {boolean} - When set to true Instance statistics will only be available to admins.
+ * @param params.import_sources {array of strings} - Sources to allow project import from, possible values: github, bitbucket, gitlab, google_code, fogbugz, git, and gitlab_project.
+ * @param params.max_artifacts_size {integer} - Maximum artifacts size in MB
+ * @param params.max_attachment_size {integer} - Limit attachment size in MB
+ * @param params.max_pages_size {integer} - Maximum size of pages repositories in MB
+ * @param params.metrics_enabled {boolean} - (If enabled, requires: metrics_host, metrics_method_call_threshold, metrics_packet_size, metrics_pool_size, metrics_port, metrics_sample_interval and metrics_timeout) Enable influxDB metrics.
+ * @param params.metrics_host {string} - InfluxDB host.
+ * @param params.metrics_method_call_threshold {integer} - A method call is only tracked when it takes longer than the given amount of milliseconds.
+ * @param params.metrics_packet_size {integer} - The amount of datapoints to send in a single UDP packet.
+ * @param params.metrics_pool_size {integer} - The amount of InfluxDB connections to keep open.
+ * @param params.metrics_port {integer} - The UDP port to use for connecting to InfluxDB.
+ * @param params.metrics_sample_interval {integer} - The sampling interval in seconds.
+ * @param params.metrics_timeout {integer} - The amount of seconds after which InfluxDB will time out.
+ * @param params.mirror_available {boolean} - Allow mirrors to be set up for projects. If disabled, only admins will be able to set up mirrors in projects.
+ * @param params.mirror_capacity_threshold {integer} -
+(Premium) Minimum capacity to be available before scheduling more mirrors preemptively
+ * @param params.mirror_max_capacity {integer} -
+(Premium) Maximum number of mirrors that can be synchronizing at the same time.
+ * @param params.mirror_max_delay {integer} -
+(Premium) Maximum time (in minutes) between updates that a mirror can have when scheduled to synchronize.
+ * @param params.pages_domain_verification_enabled {boolean} - Require users to prove ownership of custom domains. Domain verification is an essential security measure for public GitLab sites. Users are required to demonstrate they control a domain before it is enabled.
+ * @param params.password_authentication_enabled_for_git {boolean} - Enable authentication for Git over HTTP(S) via a GitLab account password. Default is true.
+ * @param params.password_authentication_enabled_for_web {boolean} - Enable authentication for the web interface via a GitLab account password. Default is true.
+ * @param params.performance_bar_allowed_group_id {string} - (Deprecated: Use performance_bar_allowed_group_path instead) Path of the group that is allowed to toggle the performance bar.
+ * @param params.performance_bar_allowed_group_path {string} - Path of the group that is allowed to toggle the performance bar.
+ * @param params.performance_bar_enabled {boolean} - (Deprecated: Pass performance_bar_allowed_group_path: nil instead) Allow enabling the performance bar.
+ * @param params.plantuml_enabled {boolean} - (If enabled, requires: plantuml_url) Enable PlantUML integration. Default is false.
+ * @param params.plantuml_url {string} - The PlantUML instance URL for integration.
+ * @param params.polling_interval_multiplier {decimal} - Interval multiplier used by endpoints that perform polling. Set to 0 to disable polling.
+ * @param params.project_export_enabled {boolean} - Enable project export.
+ * @param params.prometheus_metrics_enabled {boolean} - Enable prometheus metrics.
+ * @param params.pseudonymizer_enabled {boolean} -
+(Premium) When enabled, GitLab will run a background job that will produce pseudonymized CSVs of the GitLab database that will be uploaded to your configured object storage directory.
+ * @param params.recaptcha_enabled {boolean} - (If enabled, requires: recaptcha_private_key and recaptcha_site_key) Enable recaptcha.
+ * @param params.recaptcha_private_key {string} - Private key for recaptcha.
+ * @param params.recaptcha_site_key {string} - Site key for recaptcha.
+ * @param params.repository_checks_enabled {boolean} - GitLab will periodically run git fsck in all project and wiki repositories to look for silent disk corruption issues.
+ * @param params.repository_size_limit {integer} -
+(Premium) Size limit per repository (MB)
+ * @param params.repository_storages {array of strings} - A list of names of enabled storage paths, taken from gitlab.yml. New projects will be created in one of these stores, chosen at random.
+ * @param params.require_two_factor_authentication {boolean} - (If enabled, requires: two_factor_grace_period) Require all users to set up Two-factor authentication.
+ * @param params.restricted_visibility_levels {array of strings} - Selected levels cannot be used by non-admin users for groups, projects or snippets. Can take private, internal and public as a parameter. Default is null which means there is no restriction.
+ * @param params.rsa_key_restriction {integer} - The minimum allowed bit length of an uploaded RSA key. Default is 0 (no restriction). -1 disables RSA keys.
+ * @param params.send_user_confirmation_email {boolean} - Send confirmation email on sign-up.
+ * @param params.sentry_dsn {string} - Sentry Data Source Name.
+ * @param params.sentry_enabled {boolean} - (If enabled, requires: sentry_dsn) Sentry is an error reporting and logging tool which is currently not shipped with GitLab, available at https://getsentry.com.
+ * @param params.session_expire_delay {integer} - Session duration in minutes. GitLab restart is required to apply changes
+ * @param params.shared_runners_enabled {boolean} - (If enabled, requires: shared_runners_text and shared_runners_minutes) Enable shared runners for new projects.
+ * @param params.shared_runners_minutes {integer} -
+(Premium) Set the maximum number of pipeline minutes that a group can use on shared Runners per month.
+ * @param params.shared_runners_text {string} - Shared runners text.
+ * @param params.sign_in_text {string} - Text on the login page.
+ * @param params.signin_enabled {string} - (Deprecated: Use password_authentication_enabled_for_web instead) Flag indicating if password authentication is enabled for the web interface.
+ * @param params.signup_enabled {boolean} - Enable registration. Default is true.
+ * @param params.slack_app_enabled {boolean} -
+(Premium) (If enabled, requires: slack_app_id, slack_app_secret and slack_app_secret) Enable Slack app.
+ * @param params.slack_app_id {string} -
+(Premium) The app id of the Slack-app.
+ * @param params.slack_app_secret {string} -
+(Premium) The app secret of the Slack-app.
+ * @param params.slack_app_verification_token {string} -
+(Premium) The verification token of the Slack-app.
+ * @param params.terminal_max_session_time {integer} - Maximum time for web terminal websocket connection (in seconds). Set to 0 for unlimited time.
+ * @param params.terms {text} - (Required by: enforce_terms) Markdown content for the ToS.
+ * @param params.throttle_authenticated_api_enabled {boolean} - (If enabled, requires: throttle_authenticated_api_period_in_seconds and throttle_authenticated_api_requests_per_period) Enable authenticated API request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots).
+ * @param params.throttle_authenticated_api_period_in_seconds {integer} - Rate limit period in seconds.
+ * @param params.throttle_authenticated_api_requests_per_period {integer} - Max requests per period per user.
+ * @param params.throttle_authenticated_web_enabled {boolean} - (If enabled, requires: throttle_authenticated_web_period_in_seconds and throttle_authenticated_web_requests_per_period) Enable authenticated web request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots).
+ * @param params.throttle_authenticated_web_period_in_seconds {integer} - Rate limit period in seconds.
+ * @param params.throttle_authenticated_web_requests_per_period {integer} - Max requests per period per user.
+ * @param params.throttle_unauthenticated_enabled {boolean} - (If enabled, requires: throttle_unauthenticated_period_in_seconds and throttle_unauthenticated_requests_per_period) Enable unauthenticated request rate limit. Helps reduce request volume (e.g. from crawlers or abusive bots).
+ * @param params.throttle_unauthenticated_period_in_seconds {integer} - Rate limit period in seconds.
+ * @param params.throttle_unauthenticated_requests_per_period {integer} - Max requests per period per IP.
+ * @param params.two_factor_grace_period {integer} - Amount of time (in hours) that users are allowed to skip forced configuration of two-factor authentication.
+ * @param params.unique_ips_limit_enabled {boolean} - (If enabled, requires: unique_ips_limit_per_user and unique_ips_limit_time_window) Limit sign in from multiple ips.
+ * @param params.unique_ips_limit_per_user {integer} - Maximum number of ips per user.
+ * @param params.unique_ips_limit_time_window {integer} - How many seconds an IP will be counted towards the limit.
+ * @param params.usage_ping_enabled {boolean} - Every week GitLab will report license usage back to GitLab, Inc.
+ * @param params.user_default_external {boolean} - Newly registered users will be external by default.
+ * @param params.user_oauth_applications {boolean} - Allow users to register any application to use GitLab as an OAuth provider.
+ * @param params.user_show_add_ssh_key_message {boolean} - When set to false disable the “You won’t be able to pull or push project code via SSH” warning shown to users with no uploaded SSH key.
+ * @param params.version_check_enabled {boolean} - Let GitLab inform you when an update is available.
+ * @returns {*}
+ */
+
+ changeApplicationSettings(params) {
+ return this.http.put(`/application/settings`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Settings;
+
diff --git a/lib/models/sidekiqMetrics.js b/lib/models/sidekiqMetrics.js
new file mode 100644
index 0000000..f8fd404
--- /dev/null
+++ b/lib/models/sidekiqMetrics.js
@@ -0,0 +1,81 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Sidekiq Metrics .
+ */
+class SidekiqMetrics extends ModelBase {
+
+ /**
+ * Create Sidekiq Metrics .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * This API endpoint allows you to retrieve some information about the current state
+of Sidekiq, its jobs, queues, and processes..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ sidekiqMetricsApi(params) {
+ return this.http.get(`/sidekiq/queue_metrics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List information about all the registered queues, their backlog and their
+latency..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheCurrentQueueMetrics(params) {
+ return this.http.get(`/sidekiq/queue_metrics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List information about all the Sidekiq workers registered to process your queues..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheCurrentProcessMetrics(params) {
+ return this.http.get(`/sidekiq/process_metrics`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List information about the jobs that Sidekiq has performed..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheCurrentJobStatistics(params) {
+ return this.http.get(`/sidekiq/job_stats`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * List all the currently available information about Sidekiq..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getACompoundResponseOfAllThePreviouslyMentionedMetrics(params) {
+ return this.http.get(`/sidekiq/compound_metrics`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = SidekiqMetrics;
+
diff --git a/lib/models/snippets.js b/lib/models/snippets.js
new file mode 100644
index 0000000..1d2b77c
--- /dev/null
+++ b/lib/models/snippets.js
@@ -0,0 +1,148 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Snippets .
+ */
+class Snippets extends ModelBase {
+
+ /**
+ * Create Snippets .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Snippets in GitLab can be either private, internal, or public.
+You can set it with the visibility field in the snippet..
+
+ * @param params {object}
+ * @param params.private {The snippet is visible only to the snippet creator} - undefined
+ * @param params.internal {The snippet is visible for any logged in user} - undefined
+ * @param params.public {The snippet can be accessed without any authentication} - undefined
+ * @returns {*}
+ */
+
+ snippetsApi(params) {
+ return this.http.get(`/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Snippets in GitLab can be either private, internal, or public.
+You can set it with the visibility field in the snippet..
+
+ * @param params {object}
+ * @param params.private {The snippet is visible only to the snippet creator} - undefined
+ * @param params.internal {The snippet is visible for any logged in user} - undefined
+ * @param params.public {The snippet can be accessed without any authentication} - undefined
+ * @returns {*}
+ */
+
+ snippetVisibilityLevel(params) {
+ return this.http.get(`/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of current user’s snippets..
+
+ * @param params {object}
+ * @param params.id {Integer} - The ID of a snippet
+ * @returns {*}
+ */
+
+ listSnippets(params) {
+ return this.http.get(`/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single snippet..
+
+ * @param id {Integer} - The ID of a snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleSnippet(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/snippets/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new snippet. The user must have permission to create new snippets..
+
+ * @param params {object}
+ * @param params.title {String} - The title of a snippet
+ * @param params.file_name {String} - The name of a snippet file
+ * @param params.content {String} - The content of a snippet
+ * @param params.description {String} - The description of a snippet
+ * @param params.visibility {String} - The snippet’s visibility
+ * @returns {*}
+ */
+
+ createNewSnippet(params) {
+ return this.http.post(`/snippets`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing snippet. The user must have permission to change an existing snippet..
+
+ * @param id {Integer} - The ID of a snippet
+ * @param params {object}
+ * @param params.title {String} - The title of a snippet
+ * @param params.file_name {String} - The name of a snippet file
+ * @param params.description {String} - The description of a snippet
+ * @param params.content {String} - The content of a snippet
+ * @param params.visibility {String} - The snippet’s visibility
+ * @returns {*}
+ */
+
+ updateSnippet(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/snippets/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes an existing snippet..
+
+ * @param id {Integer} - The ID of a snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSnippet(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/snippets/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example response:.
+
+ * @param params {object}
+ * @param params.per_page {Integer} - number of snippets to return per page
+ * @param params.page {Integer} - the page to retrieve
+ * @returns {*}
+ */
+
+ exploreAllPublicSnippets(params) {
+ return this.http.get(`/snippets/public`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Available only for admins..
+
+ * @param id {Integer} - The ID of a snippet
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getUserAgentDetails(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/snippets/${encodeURIComponent(id)}/user_agent_detail`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Snippets;
+
diff --git a/lib/models/systemHooks.js b/lib/models/systemHooks.js
new file mode 100644
index 0000000..1091a1b
--- /dev/null
+++ b/lib/models/systemHooks.js
@@ -0,0 +1,88 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing System Hooks .
+ */
+class SystemHooks extends ModelBase {
+
+ /**
+ * Create System Hooks .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * All methods require administrator authorization..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ systemHooksApi(params) {
+ return this.http.get(`/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of all system hooks..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listSystemHooks(params) {
+ return this.http.get(`/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Add a new system hook..
+
+ * @param params {object}
+ * @param params.url {string} - The hook URL
+ * @param params.token {string} - Secret token to validate received payloads; this will not be returned in the response
+ * @param params.push_events {boolean} - When true, the hook will fire on push events
+ * @param params.tag_push_events {boolean} - When true, the hook will fire on new tags being pushed
+ * @param params.merge_requests_events {boolean} - Trigger hook on merge requests events
+ * @param params.repository_update_events {boolean} - Trigger hook on repository update events
+ * @param params.enable_ssl_verification {boolean} - Do SSL verification when triggering the hook
+ * @returns {*}
+ */
+
+ addNewSystemHook(params) {
+ return this.http.post(`/hooks`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Example request:.
+
+ * @param id {integer} - The ID of the hook
+ * @param params {object}
+ * @returns {*}
+ */
+
+ testSystemHook(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/hooks/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a system hook..
+
+ * @param id {integer} - The ID of the hook
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSystemHook(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/hooks/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = SystemHooks;
+
diff --git a/lib/models/tags.js b/lib/models/tags.js
new file mode 100644
index 0000000..8f24435
--- /dev/null
+++ b/lib/models/tags.js
@@ -0,0 +1,123 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Tags .
+ */
+class Tags extends ModelBase {
+
+ /**
+ * Create Tags .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of repository tags from a project, sorted by name in reverse
+alphabetical order. This endpoint can be accessed without authentication if the
+repository is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.order_by {string} - Return tags ordered by name or updated fields. Default is updated
+
+ * @param params.sort {string} - Return tags sorted in asc or desc order. Default is desc
+
+ * @returns {*}
+ */
+
+ tagsApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of repository tags from a project, sorted by name in reverse
+alphabetical order. This endpoint can be accessed without authentication if the
+repository is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param params {object}
+ * @param params.order_by {string} - Return tags ordered by name or updated fields. Default is updated
+
+ * @param params.sort {string} - Return tags sorted in asc or desc order. Default is desc
+
+ * @returns {*}
+ */
+
+ listProjectRepositoryTags(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific repository tag determined by its name. This endpoint can be
+accessed without authentication if the repository is publicly accessible..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project owned by the authenticated user
+ * @param tag_name {string} - The name of the tag
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASingleRepositoryTag(id, tag_name, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/repository/tags/${encodeURIComponent(tag_name)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new tag in the repository that points to the supplied ref..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createANewTag(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/tags`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a tag of a repository with given name..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteATag(id, tag_name, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/repository/tags/${encodeURIComponent(tag_name)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Add release notes to the existing git tag. If there
+already exists a release for the given tag, status code 409 is returned..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ createANewRelease(id, tag_name, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/repository/tags/${encodeURIComponent(tag_name)}/release`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates the release notes of a given release..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ updateARelease(id, tag_name, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/repository/tags/${encodeURIComponent(tag_name)}/release`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Tags;
+
diff --git a/lib/models/templates_dockerfiles.js b/lib/models/templates_dockerfiles.js
new file mode 100644
index 0000000..dba7941
--- /dev/null
+++ b/lib/models/templates_dockerfiles.js
@@ -0,0 +1,58 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Templates/dockerfiles .
+ */
+class Templates_dockerfiles extends ModelBase {
+
+ /**
+ * Create Templates/dockerfiles .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all Dockerfile templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ dockerfilesApi(params) {
+ return this.http.get(`/templates/dockerfiles`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all Dockerfile templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listDockerfileTemplates(params) {
+ return this.http.get(`/templates/dockerfiles`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single Dockerfile template..
+
+ * @param key {string} - The key of the Dockerfile template
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleDockerfileTemplate(key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/templates/dockerfiles/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Templates_dockerfiles;
+
diff --git a/lib/models/templates_gitignores.js b/lib/models/templates_gitignores.js
new file mode 100644
index 0000000..78e1821
--- /dev/null
+++ b/lib/models/templates_gitignores.js
@@ -0,0 +1,58 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Templates/gitignores .
+ */
+class Templates_gitignores extends ModelBase {
+
+ /**
+ * Create Templates/gitignores .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all gitignore templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ gitignoresApi(params) {
+ return this.http.get(`/templates/gitignores`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all gitignore templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listGitignoreTemplates(params) {
+ return this.http.get(`/templates/gitignores`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single gitignore template..
+
+ * @param key {string} - The key of the gitignore template
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleGitignoreTemplate(key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/templates/gitignores/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Templates_gitignores;
+
diff --git a/lib/models/templates_gitlabCiYmls.js b/lib/models/templates_gitlabCiYmls.js
new file mode 100644
index 0000000..0ba7b36
--- /dev/null
+++ b/lib/models/templates_gitlabCiYmls.js
@@ -0,0 +1,58 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Templates/gitlab Ci Ymls .
+ */
+class Templates_gitlabCiYmls extends ModelBase {
+
+ /**
+ * Create Templates/gitlab Ci Ymls .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all GitLab CI YML templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ gitlabCiYmlsApi(params) {
+ return this.http.get(`/templates/gitlab_ci_ymls`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all GitLab CI YML templates..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listGitlabCiYmlTemplates(params) {
+ return this.http.get(`/templates/gitlab_ci_ymls`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single GitLab CI YML template..
+
+ * @param key {string} - The key of the GitLab CI YML template
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleGitlabCiYmlTemplate(key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/templates/gitlab_ci_ymls/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Templates_gitlabCiYmls;
+
diff --git a/lib/models/templates_licenses.js b/lib/models/templates_licenses.js
new file mode 100644
index 0000000..ee0576c
--- /dev/null
+++ b/lib/models/templates_licenses.js
@@ -0,0 +1,63 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Templates/licenses .
+ */
+class Templates_licenses extends ModelBase {
+
+ /**
+ * Create Templates/licenses .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get all license templates..
+
+ * @param params {object}
+ * @param params.popular {boolean} - If passed, returns only popular licenses
+ * @returns {*}
+ */
+
+ licensesApi(params) {
+ return this.http.get(`/templates/licenses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all license templates..
+
+ * @param params {object}
+ * @param params.popular {boolean} - If passed, returns only popular licenses
+ * @returns {*}
+ */
+
+ listLicenseTemplates(params) {
+ return this.http.get(`/templates/licenses`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single license template. You can pass parameters to replace the license
+placeholder..
+
+ * @param key {string} - The key of the license template
+ * @param params {object}
+ * @param params.project {string} - The copyrighted project name
+ * @param params.fullname {string} - The full-name of the copyright holder
+ * @returns {*}
+ */
+
+ singleLicenseTemplate(key, params) { // eslint-disable-line camelcase
+ return this.http.get(`/templates/licenses/${encodeURIComponent(key)}`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Templates_licenses;
+
diff --git a/lib/models/todos.js b/lib/models/todos.js
new file mode 100644
index 0000000..1fe48fa
--- /dev/null
+++ b/lib/models/todos.js
@@ -0,0 +1,88 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Todos .
+ */
+class Todos extends ModelBase {
+
+ /**
+ * Create Todos .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Returns a list of todos. When no filter is applied, it returns all pending todos
+for the current user. Different filters allow the user to precise the request..
+
+ * @param params {object}
+ * @param params.action {string} - The action to be filtered. Can be assigned, mentioned, build_failed, marked, approval_required, unmergeable or directly_addressed.
+ * @param params.author_id {integer} - The ID of an author
+ * @param params.project_id {integer} - The ID of a project
+ * @param params.group_id {integer} - The ID of a group
+ * @param params.state {string} - The state of the todo. Can be either pending or done
+
+ * @param params.type {string} - The type of a todo. Can be either Issue or MergeRequest
+
+ * @returns {*}
+ */
+
+ todosApi(params) {
+ return this.http.get(`/todos`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Returns a list of todos. When no filter is applied, it returns all pending todos
+for the current user. Different filters allow the user to precise the request..
+
+ * @param params {object}
+ * @param params.action {string} - The action to be filtered. Can be assigned, mentioned, build_failed, marked, approval_required, unmergeable or directly_addressed.
+ * @param params.author_id {integer} - The ID of an author
+ * @param params.project_id {integer} - The ID of a project
+ * @param params.group_id {integer} - The ID of a group
+ * @param params.state {string} - The state of the todo. Can be either pending or done
+
+ * @param params.type {string} - The type of a todo. Can be either Issue or MergeRequest
+
+ * @returns {*}
+ */
+
+ getAListOfTodos(params) {
+ return this.http.get(`/todos`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Marks a single pending todo given by its ID for the current user as done. The
+todo marked as done is returned in the response..
+
+ * @param id {integer} - The ID of a todo
+ * @param params {object}
+ * @returns {*}
+ */
+
+ markATodoAsDone(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/todos/${encodeURIComponent(id)}/mark_as_done`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Marks all pending todos for the current user as done. It returns the HTTP status code 204 with an empty response..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ markAllTodosAsDone(params) {
+ return this.http.post(`/todos/mark_as_done`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Todos;
+
diff --git a/lib/models/users.js b/lib/models/users.js
index a50a3ed..d5d766f 100644
--- a/lib/models/users.js
+++ b/lib/models/users.js
@@ -1,149 +1,546 @@
-"use strict";
+'use strict';
+
+/*eslint-disable */
const ModelBase = require('../modelBase');
/**
- * Class representing Users Api
+ * Class representing Users .
*/
class Users extends ModelBase {
- /**
- * Create Users Api.
- * @param client {object} - Api instance
- */
- constructor (client) {
- super(client);
- }
-
- init () {
- this.keys = this.load('userKeys');
- this.emails = this.load('userEmails');
- }
-
- /**
- * List users.
- * @param emailOrUsername {string} - email or username
- * @param [page] {number} - page number
- * @param [per_page] {number} - page size
- * @returns {*}
- */
- search (emailOrUsername, page, per_page) {
- return this.http.get('/users', {
- search: emailOrUsername || '',
- page: page || 0,
- per_page: per_page || ModelBase.DefalutPerPage,
- });
- }
-
- /**
- * Single user.
- * @param id {number} - The ID of a user
- * @returns {*}
- */
- one (id) {
- return this.http.get(`/users/${id}`, {});
- }
-
- /**
- * Create a user.
- * @param params {object} - User infomation
- * @param params.email {string}
- * @param params.password {string}
- * @param params.username {string}
- * @param params.name {string}
- * @param [params.skype] {string}
- * @param [params.linkedin] {string}
- * @param [params.twitter] {string}
- * @param [params.website_url] {string}
- * @param [params.projects_limit] {number}
- * @param [params.extern_uid] {string}
- * @param [params.provider] {string}
- * @param [params.bio] {string}
- * @param [params.admin] {boolean}
- * @param [params.can_create_group] {boolean}
- * @param [params.confirm] {boolean}
- */
- create (params) {
- return this.http.post(`/users/`, params);
- }
-
- /**
- * Update a user.
- * @param id {number} - The ID of a user
- * @param params {object}
- * @param params.email {string}
- * @param params.password {string}
- * @param params.username {string}
- * @param params.name {string}
- * @param params.skype {string}
- * @param params.linkedin {string}
- * @param params.twitter {string}
- * @param params.website_url {string}
- * @param params.projects_limit {number}
- * @param params.extern_uid {string}
- * @param params.provider {string}
- * @param params.bio {string}
- * @param [params.admin] {boolean}
- * @param [params.can_create_group] {boolean}
- */
- update (id, params) {
- return this.http.put(`/users/${id}`, params);
- }
-
- /**
- * Delete a user.
- * @param id {number} - The ID of a user
- */
- ['delete'] (id) {
- return this.http.delete(`/users/${id}`);
- }
-
- /**
- * Gets currently authenticated user.
- * @returns {*}
- */
- current () {
- return this.http.get(`/user`, {});
- }
-
- /**
- * Blocks the specified user. Available only for admin.
- * @param uid {number} - id of specified user
- * @returns {*}
- */
- block (uid) {
- return this.http.put(`/users/${uid}/block`, {});
- }
-
- /**
- * Unblocks the specified user. Available only for admin.
- * @param uid {number} - id of specified user
- * @returns {*}
- */
- unblock (uid) {
- return this.http.put(`/users/${uid}/unblock`, {});
- }
-
- /**
- * Login to get private token.
- * @param email {string} - The email of user
- * @param password {string} - Valid password
- */
- session (email, password) {
- return this.http.post(`/session`, {
- email: email,
- password: password,
- });
- }
-
- /**
- * Get a list of namespaces. (As user: my namespaces, as admin: all namespaces)
- * @return {*}
- */
- namespaces () {
- return this.http.get(`/namespaces`, {});
- }
+ /**
+ * Create Users .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Get a list of users.
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listUsers(params) {
+ return this.http.get(`/users`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * You can lookup users by external UID and provider:.
+
+ * @param params {object}
+ * @param params.order_by {string} - Return projects ordered by id, name, username, created_at, or updated_at fields. Default is id
+
+ * @param params.sort {string} - Return projects sorted in asc or desc order. Default is desc
+
+ * @param params.two_factor {string} - Filter users by Two-factor authentication. Filter values are enabled or disabled. By default it returns all users
+ * @returns {*}
+ */
+
+ listUsersForAdmins(params) {
+ return this.http.get(`/users`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single user..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleUser(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new user. Note only administrators can create new users. Either password or reset_password should be specified (reset_password takes priority). If reset_password is false, then password is required..
+
+ * @param params {object}
+ * @param params.email {} - undefined
+ * @returns {*}
+ */
+
+ userCreation(params) {
+ return this.http.post(`/users`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Modifies an existing user. Only administrators can change attributes of a user..
+
+ * @param params {object}
+ * @param params.email {} - undefined
+ * @returns {*}
+ */
+
+ userModification(id, params) { // eslint-disable-line camelcase
+ return this.http.put(`/users/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a user. Available only for administrators.
+This returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ userDeletion(id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets currently authenticated user..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ user(params) {
+ return this.http.get(`/user`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Gets currently authenticated user..
+
+ * @param params {object}
+ * @param params.sudo {} - undefined
+ * @returns {*}
+ */
+
+ userForAdmins(params) {
+ return this.http.get(`/user`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the status of the currently signed in user..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ userStatus(params) {
+ return this.http.get(`/user/status`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the status of a user..
+
+ * @param id_or_username {string} - The id or username of the user to get a status of
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getTheStatusOfAUser(id_or_username, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id_or_username)}/status`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Set the status of the current user..
+
+ * @param params {object}
+ * @param params.emoji {string} - The name of the emoji to use as status, if omitted speech_balloon is used. Emoji name can be one of the specified names in the Gemojione index.
+ * @param params.message {string} - The message to set as a status. It can also contain emoji codes.
+ * @returns {*}
+ */
+
+ setUserStatus(params) {
+ return this.http.put(`/user/status`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Please refer to the List of user projects ..
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ listUserProjects(params) {
+ return this.http.get(`/user/keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of currently authenticated user’s SSH keys..
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ listSshKeys(params) {
+ return this.http.get(`/user/keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a specified user’s SSH keys..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listSshKeysForUser(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single key..
+
+ * @param key_id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleSshKey(key_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/user/keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new key owned by the currently authenticated user..
+
+ * @param params {object}
+ * @param params.title {} - undefined
+ * @returns {*}
+ */
+
+ addSshKey(params) {
+ return this.http.post(`/user/keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create new key owned by specified user. Available only for admin.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ addSshKeyForUser(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(id)}/keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes key owned by currently authenticated user.
+This returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found..
+
+ * @param key_id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSshKeyForCurrentUser(key_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/user/keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes key owned by a specified user. Available only for admin..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteSshKeyForGivenUser(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(id)}/keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of currently authenticated user’s GPG keys..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllGpgKeys(params) {
+ return this.http.get(`/user/gpg_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific GPG key of currently authenticated user..
+
+ * @param key_id {integer} - The ID of the GPG key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASpecificGpgKey(key_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/user/gpg_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new GPG key owned by the currently authenticated user..
+
+ * @param params {object}
+ * @param params.key {string} - The new GPG key
+ * @returns {*}
+ */
+
+ addAGpgKey(params) {
+ return this.http.post(`/user/gpg_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete a GPG key owned by currently authenticated user..
+
+ * @param key_id {integer} - The ID of the GPG key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAGpgKey(key_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/user/gpg_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a specified user’s GPG keys. Available only for admins..
+
+ * @param id {integer} - The ID of the user
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listAllGpgKeysForGivenUser(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/gpg_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a specific GPG key for a given user. Available only for admins..
+
+ * @param id {integer} - The ID of the user
+ * @param key_id {integer} - The ID of the GPG key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getASpecificGpgKeyForAGivenUser(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/gpg_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create new GPG key owned by the specified user. Available only for admins..
+
+ * @param id {integer} - The ID of the user
+ * @param params {object}
+ * @param params.key_id {integer} - The ID of the GPG key
+ * @returns {*}
+ */
+
+ addAGpgKeyForAGivenUser(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(id)}/gpg_keys`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Delete a GPG key owned by a specified user. Available only for admins..
+
+ * @param id {integer} - The ID of the user
+ * @param key_id {integer} - The ID of the GPG key
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAGpgKeyForAGivenUser(id, key_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(id)}/gpg_keys/${encodeURIComponent(key_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of currently authenticated user’s emails..
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ listEmails(params) {
+ return this.http.get(`/user/emails`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a list of a specified user’s emails. Available only for admin.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ listEmailsForUser(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(id)}/emails`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a single email..
+
+ * @param email_id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ singleEmail(email_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/user/emails/${encodeURIComponent(email_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new email owned by the currently authenticated user..
+
+ * @param params {object}
+ * @param params.email {} - undefined
+ * @returns {*}
+ */
+
+ addEmail(params) {
+ return this.http.post(`/user/emails`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Create new email owned by specified user. Available only for admin.
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ addEmailForUser(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(id)}/emails`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes email owned by currently authenticated user.
+This returns a 204 No Content status code if the operation was successfully or 404 if the resource was not found..
+
+ * @param email_id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteEmailForCurrentUser(email_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/user/emails/${encodeURIComponent(email_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes email owned by a specified user. Available only for admin..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteEmailForGivenUser(id, email_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(id)}/emails/${encodeURIComponent(email_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Blocks the specified user. Available only for admin..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ blockUser(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(id)}/block`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Unblocks the specified user. Available only for admin..
+
+ * @param id {} - undefined
+ * @param params {object}
+ * @returns {*}
+ */
+
+ unblockUser(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(id)}/unblock`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Please refer to the Events API documentation.
+
+ * @param user_id {integer} - The ID of the user
+ * @param params {object}
+ * @param params.state {string} - filter tokens based on state (all, active, inactive)
+ * @returns {*}
+ */
+
+ getUserContributionEvents(user_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(user_id)}/impersonation_tokens`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It retrieves every impersonation token of the user. Use the pagination
+parameters page and per_page to restrict the list of impersonation tokens..
+
+ * @param user_id {integer} - The ID of the user
+ * @param params {object}
+ * @param params.state {string} - filter tokens based on state (all, active, inactive)
+ * @returns {*}
+ */
+
+ getAllImpersonationTokensOfAUser(user_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(user_id)}/impersonation_tokens`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It shows a user’s impersonation token..
+
+ * @param user_id {integer} - The ID of the user
+ * @param impersonation_token_id {integer} - The ID of the impersonation token
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAnImpersonationTokenOfAUser(user_id, impersonation_token_id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/users/${encodeURIComponent(user_id)}/impersonation_tokens/${encodeURIComponent(impersonation_token_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It creates a new impersonation token. Note that only administrators can do this.
+You are only able to create impersonation tokens to impersonate the user and perform
+both API calls and Git reads and writes. The user will not see these tokens in their profile
+settings page..
+
+ * @param user_id {integer} - The ID of the user
+ * @param params {object}
+ * @param params.name {string} - The name of the impersonation token
+ * @param params.expires_at {date} - The expiration date of the impersonation token in ISO format (YYYY-MM-DD)
+ * @param params.scopes {array} - The array of scopes of the impersonation token (api, read_user)
+ * @returns {*}
+ */
+
+ createAnImpersonationToken(user_id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/users/${encodeURIComponent(user_id)}/impersonation_tokens`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * It revokes an impersonation token..
+
+ * @param user_id {integer} - The ID of the user
+ * @param impersonation_token_id {integer} - The ID of the impersonation token
+ * @param params {object}
+ * @returns {*}
+ */
+
+ revokeAnImpersonationToken(user_id, impersonation_token_id, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/users/${encodeURIComponent(user_id)}/impersonation_tokens/${encodeURIComponent(impersonation_token_id)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get the last activity date for all users, sorted from oldest to newest..
+
+ * @param params {object}
+ * @param params. {} - undefined
+ * @returns {*}
+ */
+
+ getUserActivitiesAdminOnly(params) {
+ return this.http.get(`/user/activities`, params); // eslint-disable-line quotes
+ }
}
module.exports = Users;
+
diff --git a/lib/models/version.js b/lib/models/version.js
new file mode 100644
index 0000000..f91316d
--- /dev/null
+++ b/lib/models/version.js
@@ -0,0 +1,36 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Version .
+ */
+class Version extends ModelBase {
+
+ /**
+ * Create Version .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Retrieve version information for this GitLab instance. Responds 200 OK for
+authenticated users..
+
+ * @param params {object}
+ * @returns {*}
+ */
+
+ versionApi(params) {
+ return this.http.get(`/version`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Version;
+
diff --git a/lib/models/wikis.js b/lib/models/wikis.js
new file mode 100644
index 0000000..6719ffd
--- /dev/null
+++ b/lib/models/wikis.js
@@ -0,0 +1,131 @@
+
+'use strict';
+
+/*eslint-disable */
+const ModelBase = require('../modelBase');
+
+/**
+ * Class representing Wikis .
+ */
+class Wikis extends ModelBase {
+
+ /**
+ * Create Wikis .
+ * @param client
+ */
+ constructor(client) { // eslint-disable-line no-useless-constructor
+ super(client);
+ }
+
+
+ /**
+ * Available only in APIv4..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.with_content {boolean} - Include pages’ content
+ * @returns {*}
+ */
+
+ wikisApi(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/wikis`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get all wiki pages for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.with_content {boolean} - Include pages’ content
+ * @returns {*}
+ */
+
+ listWikiPages(id, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/wikis`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Get a wiki page for a given project..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param slug {string} - The slug (a unique string) of the wiki page
+ * @param params {object}
+ * @returns {*}
+ */
+
+ getAWikiPage(id, slug, params) { // eslint-disable-line camelcase
+ return this.http.get(`/projects/${encodeURIComponent(id)}/wikis/${encodeURIComponent(slug)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Creates a new wiki page for the given repository with the given title, slug, and content..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.content {string} - The content of the wiki page
+ * @param params.title {string} - The title of the wiki page
+ * @param params.format {string} - The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc
+
+ * @returns {*}
+ */
+
+ createANewWikiPage(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/wikis`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Updates an existing wiki page. At least one parameter is required to update the wiki page..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param slug {string} - The slug (a unique string) of the wiki page
+ * @param params {object}
+ * @param params.content {string} - The content of the wiki page
+ * @param params.title {string} - The title of the wiki page
+ * @param params.format {string} - The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc
+
+ * @returns {*}
+ */
+
+ editAnExistingWikiPage(id, slug, params) { // eslint-disable-line camelcase
+ return this.http.put(`/projects/${encodeURIComponent(id)}/wikis/${encodeURIComponent(slug)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Deletes a wiki page with a given slug..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param slug {string} - The slug (a unique string) of the wiki page
+ * @param params {object}
+ * @returns {*}
+ */
+
+ deleteAWikiPage(id, slug, params) { // eslint-disable-line camelcase
+ return this.http.delete(`/projects/${encodeURIComponent(id)}/wikis/${encodeURIComponent(slug)}`, params); // eslint-disable-line quotes
+ }
+
+ /**
+ * Uploads a file to the attachment folder inside the wiki’s repository. The
+ attachment folder is the uploads folder..
+
+ * @param id {integer/string} - The ID or URL-encoded path of the project
+
+ * @param params {object}
+ * @param params.file {string} - The attachment to be uploaded
+ * @param params.branch {string} - The name of the branch. Defaults to the wiki repository default branch
+ * @returns {*}
+ */
+
+ uploadAnAttachmentToTheWikiRepository(id, params) { // eslint-disable-line camelcase
+ return this.http.post(`/projects/${encodeURIComponent(id)}/wikis/attachments`, params); // eslint-disable-line quotes
+ }
+
+}
+
+module.exports = Wikis;
+
diff --git a/package.json b/package.json
index 4ad5837..0c9a709 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,8 @@
"author": "clthck",
"license": "MIT",
"dependencies": {
+ "asny": "^2.5.0",
+ "glob": "^7.1.2",
"isomorphic-fetch": "^2.2.1",
"query-string": "^4.3.4"
},
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 37f5778..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,272 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
-
-brace-expansion@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
- dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
-
-browser-stdout@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
-
-commander@2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-debug@2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
- dependencies:
- ms "0.7.2"
-
-diff@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
-
-encoding@^0.1.11:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
- dependencies:
- iconv-lite "~0.4.13"
-
-escape-string-regexp@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-glob@7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-
-growl@1.9.2:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-iconv-lite@~0.4.13:
- version "0.4.17"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-is-stream@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-isomorphic-fetch@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
- dependencies:
- node-fetch "^1.0.1"
- whatwg-fetch ">=0.10.0"
-
-json3@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-lodash._baseassign@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash.keys "^3.0.0"
-
-lodash._basecopy@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
-
-lodash._basecreate@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
-
-lodash._getnative@^3.0.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash._isiterateecall@^3.0.0:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-
-lodash.create@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
- dependencies:
- lodash._baseassign "^3.0.0"
- lodash._basecreate "^3.0.0"
- lodash._isiterateecall "^3.0.0"
-
-lodash.isarguments@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
-lodash.keys@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
- dependencies:
- lodash._getnative "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
-
-minimatch@^3.0.2:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-mkdirp@0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-mocha@^3.4.2:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594"
- dependencies:
- browser-stdout "1.3.0"
- commander "2.9.0"
- debug "2.6.0"
- diff "3.2.0"
- escape-string-regexp "1.0.5"
- glob "7.1.1"
- growl "1.9.2"
- json3 "3.3.2"
- lodash.create "3.1.1"
- mkdirp "0.5.1"
- supports-color "3.1.2"
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-
-node-fetch@^1.0.1:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.0.tgz#3ff6c56544f9b7fb00682338bb55ee6f54a8a0ef"
- dependencies:
- encoding "^0.1.11"
- is-stream "^1.0.1"
-
-object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-query-string@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
- dependencies:
- object-assign "^4.1.0"
- strict-uri-encode "^1.0.0"
-
-should-equal@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7"
- dependencies:
- should-type "^1.0.0"
-
-should-format@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
- dependencies:
- should-type "^1.3.0"
- should-type-adaptors "^1.0.1"
-
-should-type-adaptors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz#efe5553cdf68cff66e5c5f51b712dc351c77beaa"
- dependencies:
- should-type "^1.3.0"
- should-util "^1.0.0"
-
-should-type@^1.0.0, should-type@^1.3.0, should-type@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
-
-should-util@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063"
-
-should@^11.2.1:
- version "11.2.1"
- resolved "https://registry.yarnpkg.com/should/-/should-11.2.1.tgz#90f55145552d01cfc200666e4e818a1c9670eda2"
- dependencies:
- should-equal "^1.0.0"
- should-format "^3.0.2"
- should-type "^1.4.0"
- should-type-adaptors "^1.0.1"
- should-util "^1.0.0"
-
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-
-supports-color@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
- dependencies:
- has-flag "^1.0.0"
-
-whatwg-fetch@>=0.10.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"