diff --git a/packages/netlify-cms-backend-gitlab/src/API.ts b/packages/netlify-cms-backend-gitlab/src/API.ts index 8dc88f8dc16c..4af73f85cf83 100644 --- a/packages/netlify-cms-backend-gitlab/src/API.ts +++ b/packages/netlify-cms-backend-gitlab/src/API.ts @@ -1015,4 +1015,30 @@ export default class API { const mergeRequest = await this.getBranchMergeRequest(branch); return mergeRequest.sha; } + + async listReleases() { + console.log( + '%c Loading releases', + 'line-height: 30px;text-align: center;font-weight: bold', + ); + + return this.request(`${this.repoURL}/releases`) + } + + async publishRelease(version: string) { + console.log( + `%c Publishing release ${version}`, + 'line-height: 30px;text-align: center;font-weight: bold', + ); + + return this.requestJSON({ + url: `${this.repoURL}/releases`, + method: 'POST', + headers: { 'Content-Type': 'application/json; charset=utf-8' }, + body: JSON.stringify({ + tag_name: version, + ref: this.branch, + }), + }); + } } diff --git a/packages/netlify-cms-backend-gitlab/src/implementation.ts b/packages/netlify-cms-backend-gitlab/src/implementation.ts index bf9df133c885..40a32dd4f656 100644 --- a/packages/netlify-cms-backend-gitlab/src/implementation.ts +++ b/packages/netlify-cms-backend-gitlab/src/implementation.ts @@ -453,4 +453,22 @@ export default class GitLab implements Implementation { return null; } } + + async listReleases() { + try { + const response = await this.api!.listReleases(); + const json = await response.json() + return json; + } catch (e) { + return []; + } + } + + async publishRelease(version: string) { + try { + return await this.api!.publishRelease(version); + } catch (e) { + return; + } + } } diff --git a/packages/netlify-cms-core/src/components/Releases/Releases.js b/packages/netlify-cms-core/src/components/Releases/Releases.js index ccaf091b2253..3483389a5458 100644 --- a/packages/netlify-cms-core/src/components/Releases/Releases.js +++ b/packages/netlify-cms-core/src/components/Releases/Releases.js @@ -80,7 +80,7 @@ class Releases extends Component {