@backstage/plugin-scaffolder-backend-module-gitlab 0.5.1-next.0 → 0.6.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/actions/gitlab.cjs.js +374 -0
  3. package/dist/actions/gitlab.cjs.js.map +1 -0
  4. package/dist/actions/gitlab.examples.cjs.js +155 -0
  5. package/dist/actions/gitlab.examples.cjs.js.map +1 -0
  6. package/dist/actions/gitlabGroupEnsureExists.cjs.js +68 -0
  7. package/dist/actions/gitlabGroupEnsureExists.cjs.js.map +1 -0
  8. package/dist/actions/gitlabGroupEnsureExists.examples.cjs.js +78 -0
  9. package/dist/actions/gitlabGroupEnsureExists.examples.cjs.js.map +1 -0
  10. package/dist/actions/gitlabIssueCreate.cjs.js +136 -0
  11. package/dist/actions/gitlabIssueCreate.cjs.js.map +1 -0
  12. package/dist/actions/gitlabIssueCreate.examples.cjs.js +235 -0
  13. package/dist/actions/gitlabIssueCreate.examples.cjs.js.map +1 -0
  14. package/dist/actions/gitlabIssueEdit.cjs.js +163 -0
  15. package/dist/actions/gitlabIssueEdit.cjs.js.map +1 -0
  16. package/dist/actions/gitlabIssueEdit.examples.cjs.js +250 -0
  17. package/dist/actions/gitlabIssueEdit.examples.cjs.js.map +1 -0
  18. package/dist/actions/gitlabMergeRequest.cjs.js +231 -0
  19. package/dist/actions/gitlabMergeRequest.cjs.js.map +1 -0
  20. package/dist/actions/gitlabMergeRequest.examples.cjs.js +134 -0
  21. package/dist/actions/gitlabMergeRequest.examples.cjs.js.map +1 -0
  22. package/dist/actions/gitlabPipelineTrigger.cjs.js +89 -0
  23. package/dist/actions/gitlabPipelineTrigger.cjs.js.map +1 -0
  24. package/dist/actions/gitlabPipelineTrigger.examples.cjs.js +94 -0
  25. package/dist/actions/gitlabPipelineTrigger.examples.cjs.js.map +1 -0
  26. package/dist/actions/gitlabProjectAccessTokenCreate.cjs.js +85 -0
  27. package/dist/actions/gitlabProjectAccessTokenCreate.cjs.js.map +1 -0
  28. package/dist/actions/gitlabProjectAccessTokenCreate.examples.cjs.js +250 -0
  29. package/dist/actions/gitlabProjectAccessTokenCreate.examples.cjs.js.map +1 -0
  30. package/dist/actions/gitlabProjectDeployTokenCreate.cjs.js +58 -0
  31. package/dist/actions/gitlabProjectDeployTokenCreate.cjs.js.map +1 -0
  32. package/dist/actions/gitlabProjectDeployTokenCreate.examples.cjs.js +100 -0
  33. package/dist/actions/gitlabProjectDeployTokenCreate.examples.cjs.js.map +1 -0
  34. package/dist/actions/gitlabProjectVariableCreate.cjs.js +61 -0
  35. package/dist/actions/gitlabProjectVariableCreate.cjs.js.map +1 -0
  36. package/dist/actions/gitlabProjectVariableCreate.examples.cjs.js +151 -0
  37. package/dist/actions/gitlabProjectVariableCreate.examples.cjs.js.map +1 -0
  38. package/dist/actions/gitlabRepoPush.cjs.js +154 -0
  39. package/dist/actions/gitlabRepoPush.cjs.js.map +1 -0
  40. package/dist/actions/gitlabRepoPush.examples.cjs.js +67 -0
  41. package/dist/actions/gitlabRepoPush.examples.cjs.js.map +1 -0
  42. package/dist/actions/helpers.cjs.js +28 -0
  43. package/dist/actions/helpers.cjs.js.map +1 -0
  44. package/dist/commonGitlabConfig.cjs.js +32 -0
  45. package/dist/commonGitlabConfig.cjs.js.map +1 -0
  46. package/dist/index.cjs.js +28 -2929
  47. package/dist/index.cjs.js.map +1 -1
  48. package/dist/module.cjs.js +47 -0
  49. package/dist/module.cjs.js.map +1 -0
  50. package/dist/util.cjs.js +129 -0
  51. package/dist/util.cjs.js.map +1 -0
  52. package/package.json +10 -10
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ var errors = require('@backstage/errors');
4
+ var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
5
+ var commonGitlabConfig = require('../commonGitlabConfig.cjs.js');
6
+ var gitlabIssueEdit_examples = require('./gitlabIssueEdit.examples.cjs.js');
7
+ var zod = require('zod');
8
+ var util = require('../util.cjs.js');
9
+
10
+ const editIssueInputProperties = zod.z.object({
11
+ projectId: zod.z.number().describe(
12
+ "The global ID or URL-encoded path of the project owned by the authenticated user."
13
+ ),
14
+ issueIid: zod.z.number().describe("The internal ID of a project's issue"),
15
+ addLabels: zod.z.string({
16
+ description: "Comma-separated label names to add to an issue. If a label does not already exist, this creates a new project label and assigns it to the issue."
17
+ }).optional(),
18
+ assignees: zod.z.array(zod.z.number(), {
19
+ description: "IDs of the users to assign the issue to."
20
+ }).optional(),
21
+ confidential: zod.z.boolean({ description: "Updates an issue to be confidential." }).optional(),
22
+ description: zod.z.string().describe("The description of an issue. Limited to 1,048,576 characters.").max(1048576).optional(),
23
+ discussionLocked: zod.z.boolean({
24
+ description: "Flag indicating if the issue\u2019s discussion is locked. If the discussion is locked only project members can add or edit comments."
25
+ }).optional(),
26
+ dueDate: zod.z.string().describe(
27
+ "The due date. Date time string in the format YYYY-MM-DD, for example 2016-03-11."
28
+ ).regex(/^\d{4}-\d{2}-\d{2}$/, "Invalid date format. Use YYYY-MM-DD").optional(),
29
+ epicId: zod.z.number({
30
+ description: "ID of the epic to add the issue to. Valid values are greater than or equal to 0."
31
+ }).min(0, "Valid values should be equal or greater than zero").optional(),
32
+ issueType: zod.z.nativeEnum(commonGitlabConfig.IssueType, {
33
+ description: "Updates the type of issue. One of issue, incident, test_case or task."
34
+ }).optional(),
35
+ labels: zod.z.string({
36
+ description: "Comma-separated label names for an issue. Set to an empty string to unassign all labels. If a label does not already exist, this creates a new project label and assigns it to the issue."
37
+ }).optional(),
38
+ milestoneId: zod.z.number({
39
+ description: "The global ID of a milestone to assign the issue to. Set to 0 or provide an empty value to unassign a milestone"
40
+ }).optional(),
41
+ removeLabels: zod.z.string({
42
+ description: "Comma-separated label names to remove from an issue."
43
+ }).optional(),
44
+ stateEvent: zod.z.nativeEnum(commonGitlabConfig.IssueStateEvent, {
45
+ description: "The state event of an issue. To close the issue, use close, and to reopen it, use reopen."
46
+ }).optional(),
47
+ title: zod.z.string().describe("The title of an issue.").optional(),
48
+ updatedAt: zod.z.string().describe(
49
+ "When the issue was updated. Date time string, ISO 8601 formatted"
50
+ ).regex(
51
+ /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/,
52
+ "Invalid date format. Use YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.SSSZ"
53
+ ).optional(),
54
+ weight: zod.z.number({ description: "The issue weight" }).min(0, "Valid values should be equal or greater than zero").max(10, "Valid values should be equal or less than 10").optional()
55
+ });
56
+ const editIssueOutputProperties = zod.z.object({
57
+ issueUrl: zod.z.string({ description: "Issue WebUrl" }),
58
+ projectId: zod.z.number({
59
+ description: "The project id the issue belongs to WebUrl"
60
+ }),
61
+ issueId: zod.z.number({ description: "The issues Id" }),
62
+ issueIid: zod.z.number({
63
+ description: "The issues internal ID of a project's issue"
64
+ }),
65
+ state: zod.z.string({ description: "The state event of an issue" }),
66
+ title: zod.z.string({ description: "The title of an issue." }),
67
+ updatedAt: zod.z.string({ description: "The last updated time of the issue." })
68
+ });
69
+ const editGitlabIssueAction = (options) => {
70
+ const { integrations } = options;
71
+ return pluginScaffolderNode.createTemplateAction({
72
+ id: "gitlab:issue:edit",
73
+ description: "Edit a Gitlab issue.",
74
+ examples: gitlabIssueEdit_examples.examples,
75
+ schema: {
76
+ input: commonGitlabConfig.default.merge(editIssueInputProperties),
77
+ output: editIssueOutputProperties
78
+ },
79
+ async handler(ctx) {
80
+ try {
81
+ const {
82
+ repoUrl,
83
+ projectId,
84
+ title,
85
+ addLabels,
86
+ removeLabels,
87
+ issueIid,
88
+ description,
89
+ confidential = false,
90
+ assignees = [],
91
+ updatedAt = "",
92
+ dueDate,
93
+ discussionLocked = false,
94
+ epicId,
95
+ labels,
96
+ issueType,
97
+ milestoneId,
98
+ stateEvent,
99
+ weight,
100
+ token
101
+ } = commonGitlabConfig.default.merge(editIssueInputProperties).parse(ctx.input);
102
+ const { host } = util.parseRepoUrl(repoUrl, integrations);
103
+ const api = util.getClient({ host, integrations, token });
104
+ let isEpicScoped = false;
105
+ if (epicId) {
106
+ isEpicScoped = await util.checkEpicScope(api, projectId, epicId);
107
+ if (isEpicScoped) {
108
+ ctx.logger.info("Epic is within Project Scope");
109
+ } else {
110
+ ctx.logger.warn(
111
+ "Chosen epic is not within the Project Scope. The issue will be created without an associated epic."
112
+ );
113
+ }
114
+ }
115
+ const mappedUpdatedAt = util.convertDate(
116
+ String(updatedAt),
117
+ (/* @__PURE__ */ new Date()).toISOString()
118
+ );
119
+ const editIssueOptions = {
120
+ addLabels,
121
+ assigneeIds: assignees,
122
+ confidential,
123
+ description,
124
+ discussionLocked,
125
+ dueDate,
126
+ epicId: isEpicScoped ? epicId : void 0,
127
+ issueType,
128
+ labels,
129
+ milestoneId,
130
+ removeLabels,
131
+ stateEvent,
132
+ title,
133
+ updatedAt: mappedUpdatedAt,
134
+ weight
135
+ };
136
+ const response = await api.Issues.edit(
137
+ projectId,
138
+ issueIid,
139
+ editIssueOptions
140
+ );
141
+ ctx.output("issueId", response.id);
142
+ ctx.output("projectId", response.project_id);
143
+ ctx.output("issueUrl", response.web_url);
144
+ ctx.output("issueIid", response.iid);
145
+ ctx.output("title", response.title);
146
+ ctx.output("state", response.state);
147
+ ctx.output("updatedAt", response.updated_at);
148
+ } catch (error) {
149
+ if (error instanceof zod.z.ZodError) {
150
+ throw new errors.InputError(`Validation error: ${error.message}`, {
151
+ validationErrors: error.errors
152
+ });
153
+ }
154
+ throw new errors.InputError(
155
+ `Failed to edit/modify GitLab issue: ${error.message}`
156
+ );
157
+ }
158
+ }
159
+ });
160
+ };
161
+
162
+ exports.editGitlabIssueAction = editGitlabIssueAction;
163
+ //# sourceMappingURL=gitlabIssueEdit.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitlabIssueEdit.cjs.js","sources":["../../src/actions/gitlabIssueEdit.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InputError } from '@backstage/errors';\nimport { ScmIntegrationRegistry } from '@backstage/integration';\nimport { createTemplateAction } from '@backstage/plugin-scaffolder-node';\nimport commonGitlabConfig, {\n IssueType,\n IssueStateEvent,\n} from '../commonGitlabConfig';\nimport { examples } from './gitlabIssueEdit.examples';\nimport { z } from 'zod';\nimport { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util';\nimport { IssueSchema, EditIssueOptions } from '@gitbeaker/rest';\n\nconst editIssueInputProperties = z.object({\n projectId: z\n .number()\n .describe(\n 'The global ID or URL-encoded path of the project owned by the authenticated user.',\n ),\n issueIid: z.number().describe(\"The internal ID of a project's issue\"),\n addLabels: z\n .string({\n description:\n 'Comma-separated label names to add to an issue. If a label does not already exist, this creates a new project label and assigns it to the issue.',\n })\n .optional(),\n assignees: z\n .array(z.number(), {\n description: 'IDs of the users to assign the issue to.',\n })\n .optional(),\n confidential: z\n .boolean({ description: 'Updates an issue to be confidential.' })\n .optional(),\n description: z\n .string()\n .describe('The description of an issue. Limited to 1,048,576 characters.')\n .max(1048576)\n .optional(),\n discussionLocked: z\n .boolean({\n description:\n 'Flag indicating if the issue’s discussion is locked. If the discussion is locked only project members can add or edit comments.',\n })\n .optional(),\n dueDate: z\n .string()\n .describe(\n 'The due date. Date time string in the format YYYY-MM-DD, for example 2016-03-11.',\n )\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, 'Invalid date format. Use YYYY-MM-DD')\n .optional(),\n epicId: z\n .number({\n description:\n 'ID of the epic to add the issue to. Valid values are greater than or equal to 0.',\n })\n .min(0, 'Valid values should be equal or greater than zero')\n .optional(),\n issueType: z\n .nativeEnum(IssueType, {\n description:\n 'Updates the type of issue. One of issue, incident, test_case or task.',\n })\n .optional(),\n labels: z\n .string({\n description:\n 'Comma-separated label names for an issue. Set to an empty string to unassign all labels. If a label does not already exist, this creates a new project label and assigns it to the issue.',\n })\n .optional(),\n milestoneId: z\n .number({\n description:\n 'The global ID of a milestone to assign the issue to. Set to 0 or provide an empty value to unassign a milestone',\n })\n .optional(),\n removeLabels: z\n .string({\n description: 'Comma-separated label names to remove from an issue.',\n })\n .optional(),\n stateEvent: z\n .nativeEnum(IssueStateEvent, {\n description:\n 'The state event of an issue. To close the issue, use close, and to reopen it, use reopen.',\n })\n .optional(),\n title: z.string().describe('The title of an issue.').optional(),\n updatedAt: z\n .string()\n .describe(\n 'When the issue was updated. Date time string, ISO 8601 formatted',\n )\n .regex(\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$/,\n 'Invalid date format. Use YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.SSSZ',\n )\n .optional(),\n weight: z\n .number({ description: 'The issue weight' })\n .min(0, 'Valid values should be equal or greater than zero')\n .max(10, 'Valid values should be equal or less than 10')\n .optional(),\n});\n\nconst editIssueOutputProperties = z.object({\n issueUrl: z.string({ description: 'Issue WebUrl' }),\n projectId: z.number({\n description: 'The project id the issue belongs to WebUrl',\n }),\n issueId: z.number({ description: 'The issues Id' }),\n issueIid: z.number({\n description: \"The issues internal ID of a project's issue\",\n }),\n state: z.string({ description: 'The state event of an issue' }),\n title: z.string({ description: 'The title of an issue.' }),\n updatedAt: z.string({ description: 'The last updated time of the issue.' }),\n});\n\n/**\n * Creates a `gitlab:issue:edit` Scaffolder action.\n *\n * @param options - Templating configuration.\n * @public\n */\nexport const editGitlabIssueAction = (options: {\n integrations: ScmIntegrationRegistry;\n}) => {\n const { integrations } = options;\n return createTemplateAction({\n id: 'gitlab:issue:edit',\n description: 'Edit a Gitlab issue.',\n examples,\n schema: {\n input: commonGitlabConfig.merge(editIssueInputProperties),\n output: editIssueOutputProperties,\n },\n async handler(ctx) {\n try {\n const {\n repoUrl,\n projectId,\n title,\n addLabels,\n removeLabels,\n issueIid,\n description,\n confidential = false,\n assignees = [],\n updatedAt = '',\n dueDate,\n discussionLocked = false,\n epicId,\n labels,\n issueType,\n milestoneId,\n stateEvent,\n weight,\n token,\n } = commonGitlabConfig.merge(editIssueInputProperties).parse(ctx.input);\n\n const { host } = parseRepoUrl(repoUrl, integrations);\n const api = getClient({ host, integrations, token });\n\n let isEpicScoped = false;\n\n if (epicId) {\n isEpicScoped = await checkEpicScope(api, projectId, epicId);\n\n if (isEpicScoped) {\n ctx.logger.info('Epic is within Project Scope');\n } else {\n ctx.logger.warn(\n 'Chosen epic is not within the Project Scope. The issue will be created without an associated epic.',\n );\n }\n }\n\n const mappedUpdatedAt = convertDate(\n String(updatedAt),\n new Date().toISOString(),\n );\n\n const editIssueOptions: EditIssueOptions = {\n addLabels,\n assigneeIds: assignees,\n confidential,\n description,\n discussionLocked,\n dueDate,\n epicId: isEpicScoped ? epicId : undefined,\n issueType,\n labels,\n milestoneId,\n removeLabels,\n stateEvent,\n title,\n updatedAt: mappedUpdatedAt,\n weight,\n };\n\n const response = (await api.Issues.edit(\n projectId,\n issueIid,\n editIssueOptions,\n )) as IssueSchema;\n\n ctx.output('issueId', response.id);\n ctx.output('projectId', response.project_id);\n ctx.output('issueUrl', response.web_url);\n ctx.output('issueIid', response.iid);\n ctx.output('title', response.title);\n ctx.output('state', response.state);\n ctx.output('updatedAt', response.updated_at);\n } catch (error: any) {\n if (error instanceof z.ZodError) {\n // Handling Zod validation errors\n throw new InputError(`Validation error: ${error.message}`, {\n validationErrors: error.errors,\n });\n }\n // Handling other errors\n throw new InputError(\n `Failed to edit/modify GitLab issue: ${error.message}`,\n );\n }\n },\n });\n};\n"],"names":["z","IssueType","IssueStateEvent","createTemplateAction","examples","commonGitlabConfig","parseRepoUrl","getClient","checkEpicScope","convertDate","InputError"],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ 'use strict';
2
+
3
+ var yaml = require('yaml');
4
+ var commonGitlabConfig = require('../commonGitlabConfig.cjs.js');
5
+
6
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
7
+
8
+ var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
9
+
10
+ const examples = [
11
+ {
12
+ description: "Edit a GitLab issue with minimal options",
13
+ example: yaml__default.default.stringify({
14
+ steps: [
15
+ {
16
+ id: "gitlabIssue",
17
+ name: "EditIssues",
18
+ action: "gitlab:issue:edit",
19
+ input: {
20
+ ...commonGitlabConfig.commonGitlabConfigExample,
21
+ projectId: 12,
22
+ title: "Modified Test Issue",
23
+ description: "This is a modified description of the issue"
24
+ }
25
+ }
26
+ ]
27
+ })
28
+ },
29
+ {
30
+ description: "Edit a GitLab issue with assignees and date options",
31
+ example: yaml__default.default.stringify({
32
+ steps: [
33
+ {
34
+ id: "gitlabIssue",
35
+ name: "EditIssues",
36
+ action: "gitlab:issue:edit",
37
+ input: {
38
+ ...commonGitlabConfig.commonGitlabConfigExample,
39
+ projectId: 12,
40
+ title: "Test Issue",
41
+ assignees: [18],
42
+ description: "This is the edited description of the issue",
43
+ updatedAt: "2024-05-10T18:00:00.000Z",
44
+ dueDate: "2024-09-28"
45
+ }
46
+ }
47
+ ]
48
+ })
49
+ },
50
+ {
51
+ description: "Create a GitLab Issue with several options",
52
+ example: yaml__default.default.stringify({
53
+ steps: [
54
+ {
55
+ id: "gitlabIssue",
56
+ name: "EditIssues",
57
+ action: "gitlab:issue:edit",
58
+ input: {
59
+ ...commonGitlabConfig.commonGitlabConfigExample,
60
+ projectId: 12,
61
+ title: "Test Edit Issue",
62
+ assignees: [18, 15],
63
+ description: "This is the description of the issue",
64
+ confidential: false,
65
+ updatedAt: "2024-05-10T18:00:00.000Z",
66
+ dueDate: "2024-09-28",
67
+ discussionLocked: true,
68
+ epicId: 1,
69
+ labels: "phase1:label1,phase2:label2"
70
+ }
71
+ }
72
+ ]
73
+ })
74
+ },
75
+ {
76
+ description: "Edit a gitlab issue to change its state to close",
77
+ example: yaml__default.default.stringify({
78
+ steps: [
79
+ {
80
+ id: "gitlabIssue",
81
+ name: "EditIssues",
82
+ action: "gitlab:issue:edit",
83
+ input: {
84
+ ...commonGitlabConfig.commonGitlabConfigExample,
85
+ projectId: 12,
86
+ stateEvent: "close"
87
+ }
88
+ }
89
+ ]
90
+ })
91
+ },
92
+ {
93
+ description: "Edit a gitlab issue to change its state to reopened",
94
+ example: yaml__default.default.stringify({
95
+ steps: [
96
+ {
97
+ id: "gitlabIssue",
98
+ name: "EditIssues",
99
+ action: "gitlab:issue:edit",
100
+ input: {
101
+ ...commonGitlabConfig.commonGitlabConfigExample,
102
+ projectId: 12,
103
+ stateEvent: "reopen"
104
+ }
105
+ }
106
+ ]
107
+ })
108
+ },
109
+ {
110
+ description: "Edit a gitlab issue to assign it to multiple users and set milestone",
111
+ example: yaml__default.default.stringify({
112
+ steps: [
113
+ {
114
+ id: "gitlabIssue",
115
+ name: "EditIssues",
116
+ action: "gitlab:issue:edit",
117
+ input: {
118
+ ...commonGitlabConfig.commonGitlabConfigExample,
119
+ projectId: 12,
120
+ title: "Test issue with milestone",
121
+ assignees: [18, 20],
122
+ description: "This issue has milestone set",
123
+ milestoneId: 5
124
+ }
125
+ }
126
+ ]
127
+ })
128
+ },
129
+ {
130
+ description: "Edit a gitlab issue to add weight and update labels",
131
+ example: yaml__default.default.stringify({
132
+ steps: [
133
+ {
134
+ id: "gitlabIssue",
135
+ name: "EditIssues",
136
+ action: "gitlab:issue:edit",
137
+ input: {
138
+ ...commonGitlabConfig.commonGitlabConfigExample,
139
+ projectId: 12,
140
+ title: "Issue with weight and labels",
141
+ description: "This issue has weight and new labels",
142
+ weight: 3,
143
+ labels: "bug,urgent"
144
+ }
145
+ }
146
+ ]
147
+ })
148
+ },
149
+ {
150
+ description: "Edit a gitlab issue to make it confidential",
151
+ example: yaml__default.default.stringify({
152
+ steps: [
153
+ {
154
+ id: "gitlabIssue",
155
+ name: "EditIssues",
156
+ action: "gitlab:issue:edit",
157
+ input: {
158
+ ...commonGitlabConfig.commonGitlabConfigExample,
159
+ projectId: 12,
160
+ title: "Confidential Issue",
161
+ description: "This issue is confidential",
162
+ confidential: true
163
+ }
164
+ }
165
+ ]
166
+ })
167
+ },
168
+ {
169
+ description: "Edit a gitlab issue to lock the discussion",
170
+ example: yaml__default.default.stringify({
171
+ steps: [
172
+ {
173
+ id: "gitlabIssue",
174
+ name: "EditIssues",
175
+ action: "gitlab:issue:edit",
176
+ input: {
177
+ ...commonGitlabConfig.commonGitlabConfigExample,
178
+ projectId: 12,
179
+ title: "Locked Discussion Issue",
180
+ description: "This discussion on this issue is locked",
181
+ discussionLocked: true
182
+ }
183
+ }
184
+ ]
185
+ })
186
+ },
187
+ {
188
+ description: "Edit a gitlab issue to remove labels and update milestone",
189
+ example: yaml__default.default.stringify({
190
+ steps: [
191
+ {
192
+ id: "gitlabIssue",
193
+ name: "EditIssues",
194
+ action: "gitlab:issue:edit",
195
+ input: {
196
+ ...commonGitlabConfig.commonGitlabConfigExample,
197
+ projectId: 12,
198
+ title: "Issue with labels removed and milestone updated",
199
+ description: "This issue has labels removed and milestone updated",
200
+ removeLabels: "phase1:label1",
201
+ milestoneId: 6
202
+ }
203
+ }
204
+ ]
205
+ })
206
+ },
207
+ {
208
+ description: "Edit a gitlab issue to remove some labels and new ones",
209
+ example: yaml__default.default.stringify({
210
+ steps: [
211
+ {
212
+ id: "gitlabIssue",
213
+ name: "EditIssues",
214
+ action: "gitlab:issue:edit",
215
+ input: {
216
+ ...commonGitlabConfig.commonGitlabConfigExample,
217
+ projectId: 12,
218
+ title: "Issue with labels updated",
219
+ description: "This issue has labels removed and new ones added",
220
+ removeLabels: "bug,urgent",
221
+ labels: "enhancement:documentation"
222
+ }
223
+ }
224
+ ]
225
+ })
226
+ },
227
+ {
228
+ description: "Edit a gitlab issue to change issue type and add labels",
229
+ example: yaml__default.default.stringify({
230
+ steps: [
231
+ {
232
+ id: "gitlabIssue",
233
+ name: "EditIssues",
234
+ action: "gitlab:issue:edit",
235
+ input: {
236
+ ...commonGitlabConfig.commonGitlabConfigExample,
237
+ projectId: 12,
238
+ title: "Issue with type and labels",
239
+ description: "This issue has been changes and new labels added",
240
+ labels: "task,high-priority",
241
+ issueType: "task"
242
+ }
243
+ }
244
+ ]
245
+ })
246
+ }
247
+ ];
248
+
249
+ exports.examples = examples;
250
+ //# sourceMappingURL=gitlabIssueEdit.examples.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitlabIssueEdit.examples.cjs.js","sources":["../../src/actions/gitlabIssueEdit.examples.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TemplateExample } from '@backstage/plugin-scaffolder-node';\nimport yaml from 'yaml';\nimport { commonGitlabConfigExample } from '../commonGitlabConfig';\n\nexport const examples: TemplateExample[] = [\n {\n description: 'Edit a GitLab issue with minimal options',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Modified Test Issue',\n description: 'This is a modified description of the issue',\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a GitLab issue with assignees and date options',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Test Issue',\n assignees: [18],\n description: 'This is the edited description of the issue',\n updatedAt: '2024-05-10T18:00:00.000Z',\n dueDate: '2024-09-28',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab Issue with several options',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Test Edit Issue',\n assignees: [18, 15],\n description: 'This is the description of the issue',\n confidential: false,\n updatedAt: '2024-05-10T18:00:00.000Z',\n dueDate: '2024-09-28',\n discussionLocked: true,\n epicId: 1,\n labels: 'phase1:label1,phase2:label2',\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to change its state to close',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n stateEvent: 'close',\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to change its state to reopened',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n stateEvent: 'reopen',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Edit a gitlab issue to assign it to multiple users and set milestone',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Test issue with milestone',\n assignees: [18, 20],\n description: 'This issue has milestone set',\n milestoneId: 5,\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to add weight and update labels',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Issue with weight and labels',\n description: 'This issue has weight and new labels',\n weight: 3,\n labels: 'bug,urgent',\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to make it confidential',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Confidential Issue',\n description: 'This issue is confidential',\n confidential: true,\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to lock the discussion',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Locked Discussion Issue',\n description: 'This discussion on this issue is locked',\n discussionLocked: true,\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to remove labels and update milestone',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Issue with labels removed and milestone updated',\n description: 'This issue has labels removed and milestone updated',\n removeLabels: 'phase1:label1',\n milestoneId: 6,\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to remove some labels and new ones',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Issue with labels updated',\n description: 'This issue has labels removed and new ones added',\n removeLabels: 'bug,urgent',\n labels: 'enhancement:documentation',\n },\n },\n ],\n }),\n },\n {\n description: 'Edit a gitlab issue to change issue type and add labels',\n example: yaml.stringify({\n steps: [\n {\n id: 'gitlabIssue',\n name: 'EditIssues',\n action: 'gitlab:issue:edit',\n input: {\n ...commonGitlabConfigExample,\n projectId: 12,\n title: 'Issue with type and labels',\n description: 'This issue has been changes and new labels added',\n labels: 'task,high-priority',\n issueType: 'task',\n },\n },\n ],\n }),\n },\n];\n"],"names":["yaml","commonGitlabConfigExample"],"mappings":"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"}