@ibm-cloud/cd-tools 1.15.22 → 1.15.24
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/cmd/utils/terraform.js +2 -3
- package/cmd/utils/validate.js +9 -5
- package/package.json +1 -1
package/cmd/utils/terraform.js
CHANGED
|
@@ -255,8 +255,7 @@ async function setupTerraformFiles(config) {
|
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
if (isCompact || resourceName === 'ibm_cd_tekton_pipeline_trigger') {
|
|
258
|
-
|
|
259
|
-
if (disableTriggers && newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger']) {
|
|
258
|
+
if (newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger']) {
|
|
260
259
|
for (const key of Object.keys(newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger'])) {
|
|
261
260
|
// escape filter, which may contain reserved characters
|
|
262
261
|
const filterVal = newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger'][key]['filter'];
|
|
@@ -265,7 +264,7 @@ async function setupTerraformFiles(config) {
|
|
|
265
264
|
}
|
|
266
265
|
|
|
267
266
|
// disable all triggers (timed, git, webhooks) except manual triggers
|
|
268
|
-
if (newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger'][key]['type'] != 'manual') {
|
|
267
|
+
if (disableTriggers && newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger'][key]['type'] != 'manual') {
|
|
269
268
|
newTfFileObj['resource']['ibm_cd_tekton_pipeline_trigger'][key]['enabled'] = false;
|
|
270
269
|
}
|
|
271
270
|
}
|
package/cmd/utils/validate.js
CHANGED
|
@@ -218,16 +218,16 @@ async function validateTools(token, tcId, region, skipPrompt) {
|
|
|
218
218
|
if (tool.tool_type_id === 'pipeline' && tool.parameters?.type === 'tekton') { // Check for secrets in Tekton pipeline
|
|
219
219
|
const pipelineData = await getPipelineData(token, tool.id, region);
|
|
220
220
|
|
|
221
|
-
pipelineData.properties
|
|
222
|
-
if (prop.type === 'secure' && !isSecretReference(prop.value) && prop.value
|
|
221
|
+
pipelineData.properties?.forEach((prop) => {
|
|
222
|
+
if (prop.type === 'secure' && !isSecretReference(prop.value) && prop.value?.length > 0)
|
|
223
223
|
secrets.push(['properties', prop.name].join('.').replace(/\s+/g, '+'));
|
|
224
224
|
});
|
|
225
225
|
|
|
226
|
-
pipelineData.triggers
|
|
226
|
+
pipelineData.triggers?.forEach((trigger) => {
|
|
227
227
|
if ((trigger?.secret?.type === 'token_matches' || trigger?.secret?.type === 'digest_matches') && !isSecretReference(trigger.secret?.value) && trigger.secret?.value?.length > 0)
|
|
228
228
|
secrets.push([trigger.name, trigger.secret.key_name].join('.').replace(/\s+/g, '+'));
|
|
229
229
|
trigger.properties?.forEach((prop) => {
|
|
230
|
-
if (prop.type === 'secure' && !isSecretReference(prop.value) && prop.value
|
|
230
|
+
if (prop.type === 'secure' && !isSecretReference(prop.value) && prop.value?.length > 0)
|
|
231
231
|
secrets.push([trigger.name, 'properties', prop.name].join('.').replace(/\s+/g, '+'));
|
|
232
232
|
});
|
|
233
233
|
});
|
|
@@ -239,10 +239,14 @@ async function validateTools(token, tcId, region, skipPrompt) {
|
|
|
239
239
|
});
|
|
240
240
|
}
|
|
241
241
|
if (secrets.length > 0) {
|
|
242
|
+
const MAX_SECRETS_DISPLAY = 10;
|
|
243
|
+
const displaySecrets = secrets.length > MAX_SECRETS_DISPLAY
|
|
244
|
+
? [...secrets.slice(0, MAX_SECRETS_DISPLAY), `... and ${secrets.length - MAX_SECRETS_DISPLAY} more`]
|
|
245
|
+
: secrets;
|
|
242
246
|
toolsWithHashedParams.push({
|
|
243
247
|
tool_name: toolName,
|
|
244
248
|
type: tool.tool_type_id,
|
|
245
|
-
secret_params:
|
|
249
|
+
secret_params: displaySecrets,
|
|
246
250
|
url: toolUrl
|
|
247
251
|
});
|
|
248
252
|
}
|