@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.
- package/CHANGELOG.md +26 -0
- package/dist/actions/gitlab.cjs.js +374 -0
- package/dist/actions/gitlab.cjs.js.map +1 -0
- package/dist/actions/gitlab.examples.cjs.js +155 -0
- package/dist/actions/gitlab.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabGroupEnsureExists.cjs.js +68 -0
- package/dist/actions/gitlabGroupEnsureExists.cjs.js.map +1 -0
- package/dist/actions/gitlabGroupEnsureExists.examples.cjs.js +78 -0
- package/dist/actions/gitlabGroupEnsureExists.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabIssueCreate.cjs.js +136 -0
- package/dist/actions/gitlabIssueCreate.cjs.js.map +1 -0
- package/dist/actions/gitlabIssueCreate.examples.cjs.js +235 -0
- package/dist/actions/gitlabIssueCreate.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabIssueEdit.cjs.js +163 -0
- package/dist/actions/gitlabIssueEdit.cjs.js.map +1 -0
- package/dist/actions/gitlabIssueEdit.examples.cjs.js +250 -0
- package/dist/actions/gitlabIssueEdit.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabMergeRequest.cjs.js +231 -0
- package/dist/actions/gitlabMergeRequest.cjs.js.map +1 -0
- package/dist/actions/gitlabMergeRequest.examples.cjs.js +134 -0
- package/dist/actions/gitlabMergeRequest.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabPipelineTrigger.cjs.js +89 -0
- package/dist/actions/gitlabPipelineTrigger.cjs.js.map +1 -0
- package/dist/actions/gitlabPipelineTrigger.examples.cjs.js +94 -0
- package/dist/actions/gitlabPipelineTrigger.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectAccessTokenCreate.cjs.js +85 -0
- package/dist/actions/gitlabProjectAccessTokenCreate.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectAccessTokenCreate.examples.cjs.js +250 -0
- package/dist/actions/gitlabProjectAccessTokenCreate.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectDeployTokenCreate.cjs.js +58 -0
- package/dist/actions/gitlabProjectDeployTokenCreate.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectDeployTokenCreate.examples.cjs.js +100 -0
- package/dist/actions/gitlabProjectDeployTokenCreate.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectVariableCreate.cjs.js +61 -0
- package/dist/actions/gitlabProjectVariableCreate.cjs.js.map +1 -0
- package/dist/actions/gitlabProjectVariableCreate.examples.cjs.js +151 -0
- package/dist/actions/gitlabProjectVariableCreate.examples.cjs.js.map +1 -0
- package/dist/actions/gitlabRepoPush.cjs.js +154 -0
- package/dist/actions/gitlabRepoPush.cjs.js.map +1 -0
- package/dist/actions/gitlabRepoPush.examples.cjs.js +67 -0
- package/dist/actions/gitlabRepoPush.examples.cjs.js.map +1 -0
- package/dist/actions/helpers.cjs.js +28 -0
- package/dist/actions/helpers.cjs.js.map +1 -0
- package/dist/commonGitlabConfig.cjs.js +32 -0
- package/dist/commonGitlabConfig.cjs.js.map +1 -0
- package/dist/index.cjs.js +28 -2929
- package/dist/index.cjs.js.map +1 -1
- package/dist/module.cjs.js +47 -0
- package/dist/module.cjs.js.map +1 -0
- package/dist/util.cjs.js +129 -0
- package/dist/util.cjs.js.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('@backstage/errors');
|
|
4
|
+
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
5
|
+
var rest = require('@gitbeaker/rest');
|
|
6
|
+
var luxon = require('luxon');
|
|
7
|
+
var zod = require('zod');
|
|
8
|
+
var util = require('../util.cjs.js');
|
|
9
|
+
var gitlabProjectAccessTokenCreate_examples = require('./gitlabProjectAccessTokenCreate.examples.cjs.js');
|
|
10
|
+
|
|
11
|
+
const createGitlabProjectAccessTokenAction = (options) => {
|
|
12
|
+
const { integrations } = options;
|
|
13
|
+
return pluginScaffolderNode.createTemplateAction({
|
|
14
|
+
id: "gitlab:projectAccessToken:create",
|
|
15
|
+
examples: gitlabProjectAccessTokenCreate_examples.examples,
|
|
16
|
+
schema: {
|
|
17
|
+
input: zod.z.object({
|
|
18
|
+
projectId: zod.z.union([zod.z.number(), zod.z.string()], {
|
|
19
|
+
description: "Project ID/Name(slug) of the Gitlab Project"
|
|
20
|
+
}),
|
|
21
|
+
token: zod.z.string({
|
|
22
|
+
description: "The token to use for authorization to GitLab"
|
|
23
|
+
}).optional(),
|
|
24
|
+
name: zod.z.string({ description: "Name of Access Key" }).optional(),
|
|
25
|
+
repoUrl: zod.z.string({ description: "URL to gitlab instance" }),
|
|
26
|
+
accessLevel: zod.z.number({
|
|
27
|
+
description: "Access Level of the Token, 10 (Guest), 20 (Reporter), 30 (Developer), 40 (Maintainer), and 50 (Owner)"
|
|
28
|
+
}).optional(),
|
|
29
|
+
scopes: zod.z.string({
|
|
30
|
+
description: "Scopes for a project access token"
|
|
31
|
+
}).array().optional(),
|
|
32
|
+
expiresAt: zod.z.string({
|
|
33
|
+
description: "Expiration date of the access token in ISO format (YYYY-MM-DD). If Empty, it will set to the maximum of 365 days."
|
|
34
|
+
}).optional()
|
|
35
|
+
}),
|
|
36
|
+
output: zod.z.object({
|
|
37
|
+
access_token: zod.z.string({ description: "Access Token" })
|
|
38
|
+
})
|
|
39
|
+
},
|
|
40
|
+
async handler(ctx) {
|
|
41
|
+
ctx.logger.info(`Creating Token for Project "${ctx.input.projectId}"`);
|
|
42
|
+
const {
|
|
43
|
+
projectId,
|
|
44
|
+
name = "tokenname",
|
|
45
|
+
accessLevel = 40,
|
|
46
|
+
scopes = ["read_repository"],
|
|
47
|
+
expiresAt
|
|
48
|
+
} = ctx.input;
|
|
49
|
+
const { token, integrationConfig } = util.getToken(ctx.input, integrations);
|
|
50
|
+
if (!integrationConfig.config.token && token) {
|
|
51
|
+
throw new errors.InputError(
|
|
52
|
+
`No token available for host ${integrationConfig.config.baseUrl}`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
let api;
|
|
56
|
+
if (!ctx.input.token) {
|
|
57
|
+
api = new rest.Gitlab({
|
|
58
|
+
host: integrationConfig.config.baseUrl,
|
|
59
|
+
token
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
api = new rest.Gitlab({
|
|
63
|
+
host: integrationConfig.config.baseUrl,
|
|
64
|
+
oauthToken: token
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const response = await api.ProjectAccessTokens.create(
|
|
68
|
+
projectId,
|
|
69
|
+
name,
|
|
70
|
+
scopes,
|
|
71
|
+
{
|
|
72
|
+
expiresAt: expiresAt || luxon.DateTime.now().plus({ days: 365 }).toISODate(),
|
|
73
|
+
accessLevel
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
if (!response.token) {
|
|
77
|
+
throw new Error("Could not create project access token");
|
|
78
|
+
}
|
|
79
|
+
ctx.output("access_token", response.token);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
exports.createGitlabProjectAccessTokenAction = createGitlabProjectAccessTokenAction;
|
|
85
|
+
//# sourceMappingURL=gitlabProjectAccessTokenCreate.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabProjectAccessTokenCreate.cjs.js","sources":["../../src/actions/gitlabProjectAccessTokenCreate.ts"],"sourcesContent":["/*\n * Copyright 2021 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 { AccessTokenScopes, Gitlab } from '@gitbeaker/rest';\nimport { DateTime } from 'luxon';\nimport { z } from 'zod';\nimport { getToken } from '../util';\nimport { examples } from './gitlabProjectAccessTokenCreate.examples';\n\n/**\n * Creates a `gitlab:projectAccessToken:create` Scaffolder action.\n *\n * @param options - Templating configuration.\n * @public\n */\n\nexport const createGitlabProjectAccessTokenAction = (options: {\n integrations: ScmIntegrationRegistry;\n}) => {\n const { integrations } = options;\n return createTemplateAction({\n id: 'gitlab:projectAccessToken:create',\n examples,\n schema: {\n input: z.object({\n projectId: z.union([z.number(), z.string()], {\n description: 'Project ID/Name(slug) of the Gitlab Project',\n }),\n token: z\n .string({\n description: 'The token to use for authorization to GitLab',\n })\n .optional(),\n name: z.string({ description: 'Name of Access Key' }).optional(),\n repoUrl: z.string({ description: 'URL to gitlab instance' }),\n accessLevel: z\n .number({\n description:\n 'Access Level of the Token, 10 (Guest), 20 (Reporter), 30 (Developer), 40 (Maintainer), and 50 (Owner)',\n })\n .optional(),\n scopes: z\n .string({\n description: 'Scopes for a project access token',\n })\n .array()\n .optional(),\n expiresAt: z\n .string({\n description:\n 'Expiration date of the access token in ISO format (YYYY-MM-DD). If Empty, it will set to the maximum of 365 days.',\n })\n .optional(),\n }),\n output: z.object({\n access_token: z.string({ description: 'Access Token' }),\n }),\n },\n async handler(ctx) {\n ctx.logger.info(`Creating Token for Project \"${ctx.input.projectId}\"`);\n const {\n projectId,\n name = 'tokenname',\n accessLevel = 40,\n scopes = ['read_repository'],\n expiresAt,\n } = ctx.input;\n\n const { token, integrationConfig } = getToken(ctx.input, integrations);\n\n if (!integrationConfig.config.token && token) {\n throw new InputError(\n `No token available for host ${integrationConfig.config.baseUrl}`,\n );\n }\n\n let api;\n\n if (!ctx.input.token) {\n api = new Gitlab({\n host: integrationConfig.config.baseUrl,\n token: token,\n });\n } else {\n api = new Gitlab({\n host: integrationConfig.config.baseUrl,\n oauthToken: token,\n });\n }\n\n const response = await api.ProjectAccessTokens.create(\n projectId,\n name,\n scopes as AccessTokenScopes[],\n {\n expiresAt:\n expiresAt || DateTime.now().plus({ days: 365 }).toISODate()!,\n accessLevel,\n },\n );\n\n if (!response.token) {\n throw new Error('Could not create project access token');\n }\n\n ctx.output('access_token', response.token);\n },\n });\n};\n"],"names":["createTemplateAction","examples","z","getToken","InputError","Gitlab","DateTime"],"mappings":"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"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var yaml = require('yaml');
|
|
4
|
+
|
|
5
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
8
|
+
|
|
9
|
+
const examples = [
|
|
10
|
+
{
|
|
11
|
+
description: "Create a GitLab project access token with minimal options.",
|
|
12
|
+
example: yaml__default.default.stringify({
|
|
13
|
+
steps: [
|
|
14
|
+
{
|
|
15
|
+
id: "createAccessToken",
|
|
16
|
+
action: "gitlab:projectAccessToken:create",
|
|
17
|
+
name: "Create GitLab Project Access Token",
|
|
18
|
+
input: {
|
|
19
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
20
|
+
projectId: "456"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
})
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
description: "Create a GitLab project access token with custom scopes.",
|
|
28
|
+
example: yaml__default.default.stringify({
|
|
29
|
+
steps: [
|
|
30
|
+
{
|
|
31
|
+
id: "createAccessToken",
|
|
32
|
+
action: "gitlab:projectAccessToken:create",
|
|
33
|
+
name: "Create GitLab Project Access Token",
|
|
34
|
+
input: {
|
|
35
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
36
|
+
projectId: "789",
|
|
37
|
+
scopes: ["read_registry", "write_repository"]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
})
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
description: "Create a GitLab project access token with a specified name.",
|
|
45
|
+
example: yaml__default.default.stringify({
|
|
46
|
+
steps: [
|
|
47
|
+
{
|
|
48
|
+
id: "createAccessToken",
|
|
49
|
+
action: "gitlab:projectAccessToken:create",
|
|
50
|
+
name: "Create GitLab Project Access Token",
|
|
51
|
+
input: {
|
|
52
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
53
|
+
projectId: "101112",
|
|
54
|
+
name: "my-custom-token"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
})
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
description: "Create a GitLab project access token with a numeric project ID.",
|
|
62
|
+
example: yaml__default.default.stringify({
|
|
63
|
+
steps: [
|
|
64
|
+
{
|
|
65
|
+
id: "createAccessToken",
|
|
66
|
+
action: "gitlab:projectAccessToken:create",
|
|
67
|
+
name: "Create GitLab Project Access Token",
|
|
68
|
+
input: {
|
|
69
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
70
|
+
projectId: 42
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
description: "Create a GitLab project access token with a specified expired Date.",
|
|
78
|
+
example: yaml__default.default.stringify({
|
|
79
|
+
steps: [
|
|
80
|
+
{
|
|
81
|
+
id: "createAccessToken",
|
|
82
|
+
action: "gitlab:projectAccessToken:create",
|
|
83
|
+
name: "Create GitLab Project Access Token",
|
|
84
|
+
input: {
|
|
85
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
86
|
+
projectId: "123",
|
|
87
|
+
expiresAt: "2024-06-25"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
description: "Create a GitLab project access token with an access level",
|
|
95
|
+
example: yaml__default.default.stringify({
|
|
96
|
+
steps: [
|
|
97
|
+
{
|
|
98
|
+
id: "createAccessToken",
|
|
99
|
+
action: "gitlab:projectAccessToken:create",
|
|
100
|
+
name: "Create GitLab Project Access Token",
|
|
101
|
+
input: {
|
|
102
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
103
|
+
projectId: "456",
|
|
104
|
+
accessLevel: 30
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
})
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
description: "Create a GitLab project access token with multiple options",
|
|
112
|
+
example: yaml__default.default.stringify({
|
|
113
|
+
steps: [
|
|
114
|
+
{
|
|
115
|
+
id: "createAccessToken",
|
|
116
|
+
action: "gitlab:projectAccessToken:create",
|
|
117
|
+
name: "Create GitLab Project Access Token",
|
|
118
|
+
input: {
|
|
119
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
120
|
+
projectId: "456",
|
|
121
|
+
accessLevel: 40,
|
|
122
|
+
name: "full-access-token",
|
|
123
|
+
expiresAt: "2024-12-31"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
})
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
description: "Create a GitLab project access token with a token for authorization",
|
|
131
|
+
example: yaml__default.default.stringify({
|
|
132
|
+
steps: [
|
|
133
|
+
{
|
|
134
|
+
id: "createAccessToken",
|
|
135
|
+
action: "gitlab:projectAccessToken:create",
|
|
136
|
+
name: "Create GitLab Project Access Token",
|
|
137
|
+
input: {
|
|
138
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
139
|
+
projectId: "101112",
|
|
140
|
+
token: "personal-access-token"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
})
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
description: "Create a GitLab project access token with read-only scopes",
|
|
148
|
+
example: yaml__default.default.stringify({
|
|
149
|
+
steps: [
|
|
150
|
+
{
|
|
151
|
+
id: "createAccessToken",
|
|
152
|
+
action: "gitlab:projectAccessToken:create",
|
|
153
|
+
name: "Create GitLab Project Access Token",
|
|
154
|
+
input: {
|
|
155
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
156
|
+
projectId: "101112",
|
|
157
|
+
scopes: ["read_repository", "read_api"]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
})
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
description: "Create a GitLab project access token with guest access level",
|
|
165
|
+
example: yaml__default.default.stringify({
|
|
166
|
+
steps: [
|
|
167
|
+
{
|
|
168
|
+
id: "createAccessToken",
|
|
169
|
+
action: "gitlab:projectAccessToken:create",
|
|
170
|
+
name: "Create GitLab Project Access Token",
|
|
171
|
+
input: {
|
|
172
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
173
|
+
projectId: "101112",
|
|
174
|
+
accessLevel: 10
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
})
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
description: "Create a GitLab project access token with maintainer access level",
|
|
182
|
+
example: yaml__default.default.stringify({
|
|
183
|
+
steps: [
|
|
184
|
+
{
|
|
185
|
+
id: "createAccessToken",
|
|
186
|
+
action: "gitlab:projectAccessToken:create",
|
|
187
|
+
name: "Create GitLab Project Access Token",
|
|
188
|
+
input: {
|
|
189
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
190
|
+
projectId: "101112",
|
|
191
|
+
accessLevel: 40
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
})
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
description: "Create a GitLab project access token with owner access level",
|
|
199
|
+
example: yaml__default.default.stringify({
|
|
200
|
+
steps: [
|
|
201
|
+
{
|
|
202
|
+
id: "createAccessToken",
|
|
203
|
+
action: "gitlab:projectAccessToken:create",
|
|
204
|
+
name: "Create GitLab Project Access Token",
|
|
205
|
+
input: {
|
|
206
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
207
|
+
projectId: "101112",
|
|
208
|
+
accessLevel: 50
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
})
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
description: "Create a GitLab project access token with a specified name and no expiration date",
|
|
216
|
+
example: yaml__default.default.stringify({
|
|
217
|
+
steps: [
|
|
218
|
+
{
|
|
219
|
+
id: "createAccessToken",
|
|
220
|
+
action: "gitlab:projectAccessToken:create",
|
|
221
|
+
name: "Create GitLab Project Access Token",
|
|
222
|
+
input: {
|
|
223
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
224
|
+
projectId: "101112",
|
|
225
|
+
name: "no-expiry-token"
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
})
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
description: "Create a GitLab project access token for a specific gitlab instance",
|
|
233
|
+
example: yaml__default.default.stringify({
|
|
234
|
+
steps: [
|
|
235
|
+
{
|
|
236
|
+
id: "createAccessToken",
|
|
237
|
+
action: "gitlab:projectAccessToken:create",
|
|
238
|
+
name: "Create GitLab Project Access Token",
|
|
239
|
+
input: {
|
|
240
|
+
repoUrl: "gitlab.example.com?repo=repo&owner=owner",
|
|
241
|
+
projectId: "101112"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
})
|
|
246
|
+
}
|
|
247
|
+
];
|
|
248
|
+
|
|
249
|
+
exports.examples = examples;
|
|
250
|
+
//# sourceMappingURL=gitlabProjectAccessTokenCreate.examples.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabProjectAccessTokenCreate.examples.cjs.js","sources":["../../src/actions/gitlabProjectAccessTokenCreate.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';\n\nexport const examples: TemplateExample[] = [\n {\n description: 'Create a GitLab project access token with minimal options.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '456',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with custom scopes.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '789',\n scopes: ['read_registry', 'write_repository'],\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with a specified name.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n name: 'my-custom-token',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token with a numeric project ID.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: 42,\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token with a specified expired Date.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '123',\n expiresAt: '2024-06-25',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with an access level',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '456',\n accessLevel: 30,\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with multiple options',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '456',\n accessLevel: 40,\n name: 'full-access-token',\n expiresAt: '2024-12-31',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token with a token for authorization',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n token: 'personal-access-token',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with read-only scopes',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n scopes: ['read_repository', 'read_api'],\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with guest access level',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n accessLevel: 10,\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token with maintainer access level',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n accessLevel: 40,\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project access token with owner access level',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n accessLevel: 50,\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token with a specified name and no expiration date',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n name: 'no-expiry-token',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project access token for a specific gitlab instance',\n example: yaml.stringify({\n steps: [\n {\n id: 'createAccessToken',\n action: 'gitlab:projectAccessToken:create',\n name: 'Create GitLab Project Access Token',\n input: {\n repoUrl: 'gitlab.example.com?repo=repo&owner=owner',\n projectId: '101112',\n },\n },\n ],\n }),\n },\n];\n"],"names":["yaml"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('@backstage/errors');
|
|
4
|
+
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
5
|
+
var node = require('@gitbeaker/node');
|
|
6
|
+
var zod = require('zod');
|
|
7
|
+
var commonGitlabConfig = require('../commonGitlabConfig.cjs.js');
|
|
8
|
+
var util = require('../util.cjs.js');
|
|
9
|
+
var gitlabProjectDeployTokenCreate_examples = require('./gitlabProjectDeployTokenCreate.examples.cjs.js');
|
|
10
|
+
|
|
11
|
+
const createGitlabProjectDeployTokenAction = (options) => {
|
|
12
|
+
const { integrations } = options;
|
|
13
|
+
return pluginScaffolderNode.createTemplateAction({
|
|
14
|
+
id: "gitlab:projectDeployToken:create",
|
|
15
|
+
examples: gitlabProjectDeployTokenCreate_examples.examples,
|
|
16
|
+
schema: {
|
|
17
|
+
input: commonGitlabConfig.default.merge(
|
|
18
|
+
zod.z.object({
|
|
19
|
+
projectId: zod.z.union([zod.z.number(), zod.z.string()], {
|
|
20
|
+
description: "Project ID"
|
|
21
|
+
}),
|
|
22
|
+
name: zod.z.string({ description: "Deploy Token Name" }),
|
|
23
|
+
username: zod.z.string({ description: "Deploy Token Username" }).optional(),
|
|
24
|
+
scopes: zod.z.array(zod.z.string(), { description: "Scopes" }).optional()
|
|
25
|
+
})
|
|
26
|
+
),
|
|
27
|
+
output: zod.z.object({
|
|
28
|
+
deploy_token: zod.z.string({ description: "Deploy Token" }),
|
|
29
|
+
user: zod.z.string({ description: "User" })
|
|
30
|
+
})
|
|
31
|
+
},
|
|
32
|
+
async handler(ctx) {
|
|
33
|
+
ctx.logger.info(`Creating Token for Project "${ctx.input.projectId}"`);
|
|
34
|
+
const { projectId, name, username, scopes } = ctx.input;
|
|
35
|
+
const { token, integrationConfig } = util.getToken(ctx.input, integrations);
|
|
36
|
+
const api = new node.Gitlab({
|
|
37
|
+
host: integrationConfig.config.baseUrl,
|
|
38
|
+
token
|
|
39
|
+
});
|
|
40
|
+
const deployToken = await api.ProjectDeployTokens.add(
|
|
41
|
+
projectId,
|
|
42
|
+
name,
|
|
43
|
+
scopes,
|
|
44
|
+
{
|
|
45
|
+
username
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
if (!deployToken.hasOwnProperty("token")) {
|
|
49
|
+
throw new errors.InputError(`No deploy_token given from gitlab instance`);
|
|
50
|
+
}
|
|
51
|
+
ctx.output("deploy_token", deployToken.token);
|
|
52
|
+
ctx.output("user", deployToken.username);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.createGitlabProjectDeployTokenAction = createGitlabProjectDeployTokenAction;
|
|
58
|
+
//# sourceMappingURL=gitlabProjectDeployTokenCreate.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabProjectDeployTokenCreate.cjs.js","sources":["../../src/actions/gitlabProjectDeployTokenCreate.ts"],"sourcesContent":["/*\n * Copyright 2021 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 { DeployTokenScope } from '@gitbeaker/core/dist/types/templates/ResourceDeployTokens';\nimport { Gitlab } from '@gitbeaker/node';\nimport { z } from 'zod';\nimport commonGitlabConfig from '../commonGitlabConfig';\nimport { getToken } from '../util';\nimport { examples } from './gitlabProjectDeployTokenCreate.examples';\n\n/**\n * Creates a `gitlab:projectDeployToken:create` Scaffolder action.\n *\n * @param options - Templating configuration.\n * @public\n */\nexport const createGitlabProjectDeployTokenAction = (options: {\n integrations: ScmIntegrationRegistry;\n}) => {\n const { integrations } = options;\n return createTemplateAction({\n id: 'gitlab:projectDeployToken:create',\n examples,\n schema: {\n input: commonGitlabConfig.merge(\n z.object({\n projectId: z.union([z.number(), z.string()], {\n description: 'Project ID',\n }),\n name: z.string({ description: 'Deploy Token Name' }),\n username: z\n .string({ description: 'Deploy Token Username' })\n .optional(),\n scopes: z.array(z.string(), { description: 'Scopes' }).optional(),\n }),\n ),\n output: z.object({\n deploy_token: z.string({ description: 'Deploy Token' }),\n user: z.string({ description: 'User' }),\n }),\n },\n async handler(ctx) {\n ctx.logger.info(`Creating Token for Project \"${ctx.input.projectId}\"`);\n const { projectId, name, username, scopes } = ctx.input;\n const { token, integrationConfig } = getToken(ctx.input, integrations);\n\n const api = new Gitlab({\n host: integrationConfig.config.baseUrl,\n token: token,\n });\n\n const deployToken = await api.ProjectDeployTokens.add(\n projectId,\n name,\n scopes as DeployTokenScope[],\n {\n username: username,\n },\n );\n\n if (!deployToken.hasOwnProperty('token')) {\n throw new InputError(`No deploy_token given from gitlab instance`);\n }\n\n ctx.output('deploy_token', deployToken.token as string);\n ctx.output('user', deployToken.username);\n },\n });\n};\n"],"names":["createTemplateAction","examples","commonGitlabConfig","z","getToken","Gitlab","InputError"],"mappings":";;;;;;;;;;AAgCa,MAAA,oCAAA,GAAuC,CAAC,OAE/C,KAAA;AACJ,EAAM,MAAA,EAAE,cAAiB,GAAA,OAAA,CAAA;AACzB,EAAA,OAAOA,yCAAqB,CAAA;AAAA,IAC1B,EAAI,EAAA,kCAAA;AAAA,cACJC,gDAAA;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAOC,0BAAmB,CAAA,KAAA;AAAA,QACxBC,MAAE,MAAO,CAAA;AAAA,UACP,SAAA,EAAWA,KAAE,CAAA,KAAA,CAAM,CAACA,KAAA,CAAE,QAAU,EAAAA,KAAA,CAAE,MAAO,EAAC,CAAG,EAAA;AAAA,YAC3C,WAAa,EAAA,YAAA;AAAA,WACd,CAAA;AAAA,UACD,MAAMA,KAAE,CAAA,MAAA,CAAO,EAAE,WAAA,EAAa,qBAAqB,CAAA;AAAA,UACnD,QAAA,EAAUA,MACP,MAAO,CAAA,EAAE,aAAa,uBAAwB,EAAC,EAC/C,QAAS,EAAA;AAAA,UACZ,MAAA,EAAQA,KAAE,CAAA,KAAA,CAAMA,KAAE,CAAA,MAAA,EAAU,EAAA,EAAE,WAAa,EAAA,QAAA,EAAU,CAAA,CAAE,QAAS,EAAA;AAAA,SACjE,CAAA;AAAA,OACH;AAAA,MACA,MAAA,EAAQA,MAAE,MAAO,CAAA;AAAA,QACf,cAAcA,KAAE,CAAA,MAAA,CAAO,EAAE,WAAA,EAAa,gBAAgB,CAAA;AAAA,QACtD,MAAMA,KAAE,CAAA,MAAA,CAAO,EAAE,WAAA,EAAa,QAAQ,CAAA;AAAA,OACvC,CAAA;AAAA,KACH;AAAA,IACA,MAAM,QAAQ,GAAK,EAAA;AACjB,MAAA,GAAA,CAAI,OAAO,IAAK,CAAA,CAAA,4BAAA,EAA+B,GAAI,CAAA,KAAA,CAAM,SAAS,CAAG,CAAA,CAAA,CAAA,CAAA;AACrE,MAAA,MAAM,EAAE,SAAW,EAAA,IAAA,EAAM,QAAU,EAAA,MAAA,KAAW,GAAI,CAAA,KAAA,CAAA;AAClD,MAAA,MAAM,EAAE,KAAO,EAAA,iBAAA,KAAsBC,aAAS,CAAA,GAAA,CAAI,OAAO,YAAY,CAAA,CAAA;AAErE,MAAM,MAAA,GAAA,GAAM,IAAIC,WAAO,CAAA;AAAA,QACrB,IAAA,EAAM,kBAAkB,MAAO,CAAA,OAAA;AAAA,QAC/B,KAAA;AAAA,OACD,CAAA,CAAA;AAED,MAAM,MAAA,WAAA,GAAc,MAAM,GAAA,CAAI,mBAAoB,CAAA,GAAA;AAAA,QAChD,SAAA;AAAA,QACA,IAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA,UACE,QAAA;AAAA,SACF;AAAA,OACF,CAAA;AAEA,MAAA,IAAI,CAAC,WAAA,CAAY,cAAe,CAAA,OAAO,CAAG,EAAA;AACxC,QAAM,MAAA,IAAIC,kBAAW,CAA4C,0CAAA,CAAA,CAAA,CAAA;AAAA,OACnE;AAEA,MAAI,GAAA,CAAA,MAAA,CAAO,cAAgB,EAAA,WAAA,CAAY,KAAe,CAAA,CAAA;AACtD,MAAI,GAAA,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,CAAY,QAAQ,CAAA,CAAA;AAAA,KACzC;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var yaml = require('yaml');
|
|
4
|
+
|
|
5
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
8
|
+
|
|
9
|
+
const examples = [
|
|
10
|
+
{
|
|
11
|
+
description: "Create a GitLab project deploy token with minimal options.",
|
|
12
|
+
example: yaml__default.default.stringify({
|
|
13
|
+
steps: [
|
|
14
|
+
{
|
|
15
|
+
id: "createDeployToken",
|
|
16
|
+
action: "gitlab:projectDeployToken:create",
|
|
17
|
+
name: "Create GitLab Project Deploy Token",
|
|
18
|
+
input: {
|
|
19
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
20
|
+
projectId: "456",
|
|
21
|
+
name: "tokenname"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
})
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
description: "Create a GitLab project deploy token with custom scopes.",
|
|
29
|
+
example: yaml__default.default.stringify({
|
|
30
|
+
steps: [
|
|
31
|
+
{
|
|
32
|
+
id: "createDeployToken",
|
|
33
|
+
action: "gitlab:projectDeployToken:create",
|
|
34
|
+
name: "Create GitLab Project Deploy Token",
|
|
35
|
+
input: {
|
|
36
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
37
|
+
projectId: "789",
|
|
38
|
+
name: "tokenname",
|
|
39
|
+
scopes: ["read_registry", "write_repository"]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
})
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
description: "Create a GitLab project deploy token with a specified name.",
|
|
47
|
+
example: yaml__default.default.stringify({
|
|
48
|
+
steps: [
|
|
49
|
+
{
|
|
50
|
+
id: "createDeployToken",
|
|
51
|
+
action: "gitlab:projectDeployToken:create",
|
|
52
|
+
name: "Create GitLab Project Deploy Token",
|
|
53
|
+
input: {
|
|
54
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
55
|
+
projectId: "101112",
|
|
56
|
+
name: "my-custom-token"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
})
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
description: "Create a GitLab project deploy token with a numeric project ID.",
|
|
64
|
+
example: yaml__default.default.stringify({
|
|
65
|
+
steps: [
|
|
66
|
+
{
|
|
67
|
+
id: "createDeployToken",
|
|
68
|
+
action: "gitlab:projectDeployToken:create",
|
|
69
|
+
name: "Create GitLab Project Deploy Token",
|
|
70
|
+
input: {
|
|
71
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
72
|
+
projectId: 42,
|
|
73
|
+
name: "tokenname"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
description: "Create a GitLab project deploy token with a custom username",
|
|
81
|
+
example: yaml__default.default.stringify({
|
|
82
|
+
steps: [
|
|
83
|
+
{
|
|
84
|
+
id: "createDeployToken",
|
|
85
|
+
action: "gitlab:projectDeployToken:create",
|
|
86
|
+
name: "Create GitLab Project Deploy Token",
|
|
87
|
+
input: {
|
|
88
|
+
repoUrl: "gitlab.com?repo=repo&owner=owner",
|
|
89
|
+
projectId: 42,
|
|
90
|
+
name: "tokenname",
|
|
91
|
+
username: "tokenuser"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
];
|
|
98
|
+
|
|
99
|
+
exports.examples = examples;
|
|
100
|
+
//# sourceMappingURL=gitlabProjectDeployTokenCreate.examples.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabProjectDeployTokenCreate.examples.cjs.js","sources":["../../src/actions/gitlabProjectDeployTokenCreate.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';\n\nexport const examples: TemplateExample[] = [\n {\n description: 'Create a GitLab project deploy token with minimal options.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createDeployToken',\n action: 'gitlab:projectDeployToken:create',\n name: 'Create GitLab Project Deploy Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '456',\n name: 'tokenname',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project deploy token with custom scopes.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createDeployToken',\n action: 'gitlab:projectDeployToken:create',\n name: 'Create GitLab Project Deploy Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '789',\n name: 'tokenname',\n scopes: ['read_registry', 'write_repository'],\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitLab project deploy token with a specified name.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createDeployToken',\n action: 'gitlab:projectDeployToken:create',\n name: 'Create GitLab Project Deploy Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: '101112',\n name: 'my-custom-token',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitLab project deploy token with a numeric project ID.',\n example: yaml.stringify({\n steps: [\n {\n id: 'createDeployToken',\n action: 'gitlab:projectDeployToken:create',\n name: 'Create GitLab Project Deploy Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: 42,\n name: 'tokenname',\n },\n },\n ],\n }),\n },\n\n {\n description: 'Create a GitLab project deploy token with a custom username',\n example: yaml.stringify({\n steps: [\n {\n id: 'createDeployToken',\n action: 'gitlab:projectDeployToken:create',\n name: 'Create GitLab Project Deploy Token',\n input: {\n repoUrl: 'gitlab.com?repo=repo&owner=owner',\n projectId: 42,\n name: 'tokenname',\n username: 'tokenuser',\n },\n },\n ],\n }),\n },\n];\n"],"names":["yaml"],"mappings":";;;;;;;;AAkBO,MAAM,QAA8B,GAAA;AAAA,EACzC;AAAA,IACE,WAAa,EAAA,4DAAA;AAAA,IACb,OAAA,EAASA,sBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,EAAI,EAAA,mBAAA;AAAA,UACJ,MAAQ,EAAA,kCAAA;AAAA,UACR,IAAM,EAAA,oCAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,kCAAA;AAAA,YACT,SAAW,EAAA,KAAA;AAAA,YACX,IAAM,EAAA,WAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AAAA,EACA;AAAA,IACE,WAAa,EAAA,0DAAA;AAAA,IACb,OAAA,EAASA,sBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,EAAI,EAAA,mBAAA;AAAA,UACJ,MAAQ,EAAA,kCAAA;AAAA,UACR,IAAM,EAAA,oCAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,kCAAA;AAAA,YACT,SAAW,EAAA,KAAA;AAAA,YACX,IAAM,EAAA,WAAA;AAAA,YACN,MAAA,EAAQ,CAAC,eAAA,EAAiB,kBAAkB,CAAA;AAAA,WAC9C;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AAAA,EACA;AAAA,IACE,WAAa,EAAA,6DAAA;AAAA,IACb,OAAA,EAASA,sBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,EAAI,EAAA,mBAAA;AAAA,UACJ,MAAQ,EAAA,kCAAA;AAAA,UACR,IAAM,EAAA,oCAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,kCAAA;AAAA,YACT,SAAW,EAAA,QAAA;AAAA,YACX,IAAM,EAAA,iBAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AAAA,EACA;AAAA,IACE,WACE,EAAA,iEAAA;AAAA,IACF,OAAA,EAASA,sBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,EAAI,EAAA,mBAAA;AAAA,UACJ,MAAQ,EAAA,kCAAA;AAAA,UACR,IAAM,EAAA,oCAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,kCAAA;AAAA,YACT,SAAW,EAAA,EAAA;AAAA,YACX,IAAM,EAAA,WAAA;AAAA,WACR;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AAAA,EAEA;AAAA,IACE,WAAa,EAAA,6DAAA;AAAA,IACb,OAAA,EAASA,sBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,EAAI,EAAA,mBAAA;AAAA,UACJ,MAAQ,EAAA,kCAAA;AAAA,UACR,IAAM,EAAA,oCAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,kCAAA;AAAA,YACT,SAAW,EAAA,EAAA;AAAA,YACX,IAAM,EAAA,WAAA;AAAA,YACN,QAAU,EAAA,WAAA;AAAA,WACZ;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AACF;;;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
4
|
+
var zod = require('zod');
|
|
5
|
+
var commonGitlabConfig = require('../commonGitlabConfig.cjs.js');
|
|
6
|
+
var util = require('../util.cjs.js');
|
|
7
|
+
var gitlabProjectVariableCreate_examples = require('./gitlabProjectVariableCreate.examples.cjs.js');
|
|
8
|
+
|
|
9
|
+
const createGitlabProjectVariableAction = (options) => {
|
|
10
|
+
const { integrations } = options;
|
|
11
|
+
return pluginScaffolderNode.createTemplateAction({
|
|
12
|
+
id: "gitlab:projectVariable:create",
|
|
13
|
+
examples: gitlabProjectVariableCreate_examples.examples,
|
|
14
|
+
schema: {
|
|
15
|
+
input: commonGitlabConfig.default.merge(
|
|
16
|
+
zod.z.object({
|
|
17
|
+
projectId: zod.z.union([zod.z.number(), zod.z.string()], {
|
|
18
|
+
description: "Project ID"
|
|
19
|
+
}),
|
|
20
|
+
key: zod.z.string({
|
|
21
|
+
description: "The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed"
|
|
22
|
+
}).regex(/^[A-Za-z0-9_]{1,255}$/),
|
|
23
|
+
value: zod.z.string({ description: "The value of a variable" }),
|
|
24
|
+
variableType: zod.z.string({
|
|
25
|
+
description: "Variable Type (env_var or file)"
|
|
26
|
+
}),
|
|
27
|
+
variableProtected: zod.z.boolean({ description: "Whether the variable is protected" }).default(false).optional(),
|
|
28
|
+
masked: zod.z.boolean({ description: "Whether the variable is masked" }).default(false).optional(),
|
|
29
|
+
raw: zod.z.boolean({ description: "Whether the variable is expandable" }).default(false).optional(),
|
|
30
|
+
environmentScope: zod.z.string({ description: "The environment_scope of the variable" }).default("*").optional()
|
|
31
|
+
})
|
|
32
|
+
)
|
|
33
|
+
},
|
|
34
|
+
async handler(ctx) {
|
|
35
|
+
const {
|
|
36
|
+
repoUrl,
|
|
37
|
+
projectId,
|
|
38
|
+
key,
|
|
39
|
+
value,
|
|
40
|
+
variableType,
|
|
41
|
+
variableProtected = false,
|
|
42
|
+
masked = false,
|
|
43
|
+
raw = false,
|
|
44
|
+
environmentScope = "*",
|
|
45
|
+
token
|
|
46
|
+
} = ctx.input;
|
|
47
|
+
const { host } = util.parseRepoUrl(repoUrl, integrations);
|
|
48
|
+
const api = util.getClient({ host, integrations, token });
|
|
49
|
+
await api.ProjectVariables.create(projectId, key, value, {
|
|
50
|
+
variableType,
|
|
51
|
+
protected: variableProtected,
|
|
52
|
+
masked,
|
|
53
|
+
raw,
|
|
54
|
+
environmentScope
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.createGitlabProjectVariableAction = createGitlabProjectVariableAction;
|
|
61
|
+
//# sourceMappingURL=gitlabProjectVariableCreate.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitlabProjectVariableCreate.cjs.js","sources":["../../src/actions/gitlabProjectVariableCreate.ts"],"sourcesContent":["/*\n * Copyright 2021 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 { ScmIntegrationRegistry } from '@backstage/integration';\nimport { createTemplateAction } from '@backstage/plugin-scaffolder-node';\nimport { VariableType } from '@gitbeaker/rest';\nimport { z } from 'zod';\nimport commonGitlabConfig from '../commonGitlabConfig';\nimport { getClient, parseRepoUrl } from '../util';\nimport { examples } from './gitlabProjectVariableCreate.examples';\n\n/**\n * Creates a `gitlab:projectVariable:create` Scaffolder action.\n *\n * @param options - Templating configuration.\n * @public\n */\nexport const createGitlabProjectVariableAction = (options: {\n integrations: ScmIntegrationRegistry;\n}) => {\n const { integrations } = options;\n return createTemplateAction({\n id: 'gitlab:projectVariable:create',\n examples,\n schema: {\n input: commonGitlabConfig.merge(\n z.object({\n projectId: z.union([z.number(), z.string()], {\n description: 'Project ID',\n }),\n key: z\n .string({\n description:\n 'The key of a variable; must have no more than 255 characters; only A-Z, a-z, 0-9, and _ are allowed',\n })\n .regex(/^[A-Za-z0-9_]{1,255}$/),\n value: z.string({ description: 'The value of a variable' }),\n variableType: z.string({\n description: 'Variable Type (env_var or file)',\n }),\n variableProtected: z\n .boolean({ description: 'Whether the variable is protected' })\n .default(false)\n .optional(),\n masked: z\n .boolean({ description: 'Whether the variable is masked' })\n .default(false)\n .optional(),\n raw: z\n .boolean({ description: 'Whether the variable is expandable' })\n .default(false)\n .optional(),\n environmentScope: z\n .string({ description: 'The environment_scope of the variable' })\n .default('*')\n .optional(),\n }),\n ),\n },\n async handler(ctx) {\n const {\n repoUrl,\n projectId,\n key,\n value,\n variableType,\n variableProtected = false,\n masked = false,\n raw = false,\n environmentScope = '*',\n token,\n } = ctx.input;\n\n const { host } = parseRepoUrl(repoUrl, integrations);\n\n const api = getClient({ host, integrations, token });\n\n await api.ProjectVariables.create(projectId, key, value, {\n variableType: variableType as VariableType,\n protected: variableProtected,\n masked,\n raw,\n environmentScope,\n });\n },\n });\n};\n"],"names":["createTemplateAction","examples","commonGitlabConfig","z","parseRepoUrl","getClient"],"mappings":";;;;;;;;AA8Ba,MAAA,iCAAA,GAAoC,CAAC,OAE5C,KAAA;AACJ,EAAM,MAAA,EAAE,cAAiB,GAAA,OAAA,CAAA;AACzB,EAAA,OAAOA,yCAAqB,CAAA;AAAA,IAC1B,EAAI,EAAA,+BAAA;AAAA,cACJC,6CAAA;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,OAAOC,0BAAmB,CAAA,KAAA;AAAA,QACxBC,MAAE,MAAO,CAAA;AAAA,UACP,SAAA,EAAWA,KAAE,CAAA,KAAA,CAAM,CAACA,KAAA,CAAE,QAAU,EAAAA,KAAA,CAAE,MAAO,EAAC,CAAG,EAAA;AAAA,YAC3C,WAAa,EAAA,YAAA;AAAA,WACd,CAAA;AAAA,UACD,GAAA,EAAKA,MACF,MAAO,CAAA;AAAA,YACN,WACE,EAAA,qGAAA;AAAA,WACH,CACA,CAAA,KAAA,CAAM,uBAAuB,CAAA;AAAA,UAChC,OAAOA,KAAE,CAAA,MAAA,CAAO,EAAE,WAAA,EAAa,2BAA2B,CAAA;AAAA,UAC1D,YAAA,EAAcA,MAAE,MAAO,CAAA;AAAA,YACrB,WAAa,EAAA,iCAAA;AAAA,WACd,CAAA;AAAA,UACD,iBAAA,EAAmBA,KAChB,CAAA,OAAA,CAAQ,EAAE,WAAA,EAAa,mCAAoC,EAAC,CAC5D,CAAA,OAAA,CAAQ,KAAK,CAAA,CACb,QAAS,EAAA;AAAA,UACZ,MAAA,EAAQA,KACL,CAAA,OAAA,CAAQ,EAAE,WAAA,EAAa,gCAAiC,EAAC,CACzD,CAAA,OAAA,CAAQ,KAAK,CAAA,CACb,QAAS,EAAA;AAAA,UACZ,GAAA,EAAKA,KACF,CAAA,OAAA,CAAQ,EAAE,WAAA,EAAa,oCAAqC,EAAC,CAC7D,CAAA,OAAA,CAAQ,KAAK,CAAA,CACb,QAAS,EAAA;AAAA,UACZ,gBAAA,EAAkBA,KACf,CAAA,MAAA,CAAO,EAAE,WAAA,EAAa,uCAAwC,EAAC,CAC/D,CAAA,OAAA,CAAQ,GAAG,CAAA,CACX,QAAS,EAAA;AAAA,SACb,CAAA;AAAA,OACH;AAAA,KACF;AAAA,IACA,MAAM,QAAQ,GAAK,EAAA;AACjB,MAAM,MAAA;AAAA,QACJ,OAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA;AAAA,QACA,iBAAoB,GAAA,KAAA;AAAA,QACpB,MAAS,GAAA,KAAA;AAAA,QACT,GAAM,GAAA,KAAA;AAAA,QACN,gBAAmB,GAAA,GAAA;AAAA,QACnB,KAAA;AAAA,UACE,GAAI,CAAA,KAAA,CAAA;AAER,MAAA,MAAM,EAAE,IAAA,EAAS,GAAAC,iBAAA,CAAa,SAAS,YAAY,CAAA,CAAA;AAEnD,MAAA,MAAM,MAAMC,cAAU,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,OAAO,CAAA,CAAA;AAEnD,MAAA,MAAM,GAAI,CAAA,gBAAA,CAAiB,MAAO,CAAA,SAAA,EAAW,KAAK,KAAO,EAAA;AAAA,QACvD,YAAA;AAAA,QACA,SAAW,EAAA,iBAAA;AAAA,QACX,MAAA;AAAA,QACA,GAAA;AAAA,QACA,gBAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|