You've already forked sap-jenkins-library
mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-09-16 09:26:22 +02:00
feat(trustengine): Add new resource reference to parameter docs generation (#5038)
* add trust engine resource reference to parameter docs generation * test with added resource ref * remove test resource ref * use trustengineSecret const --------- Co-authored-by: jliempt <>
This commit is contained in:
@@ -9,6 +9,14 @@ import (
|
||||
"github.com/SAP/jenkins-library/pkg/config"
|
||||
)
|
||||
|
||||
const (
|
||||
vaultBadge = "[Vault](https://img.shields.io/badge/-Vault-lightgrey)"
|
||||
jenkinsOnlyBadge = "[Jenkins only](https://img.shields.io/badge/-Jenkins%20only-yellowgreen)"
|
||||
secretBadge = "[Secret](https://img.shields.io/badge/-Secret-yellowgreen)"
|
||||
trustengineBadge = "[Trust Engine](https://img.shields.io/badge/-Trust Engine-lightblue)"
|
||||
deprecatedBadge = "[deprecated](https://img.shields.io/badge/-deprecated-red)"
|
||||
)
|
||||
|
||||
// Replaces the Parameters placeholder with the content from the yaml
|
||||
func createParametersSection(stepData *config.StepData) string {
|
||||
|
||||
@@ -85,7 +93,7 @@ func parameterFurtherInfo(paramName string, stepData *config.StepData, execution
|
||||
}
|
||||
|
||||
if paramName == "script" {
|
||||
return checkParameterInfo("[](#) reference to Jenkins main pipeline script", true, executionEnvironment)
|
||||
return checkParameterInfo(fmt.Sprintf("[!%s](#) reference to Jenkins main pipeline script", jenkinsOnlyBadge), true, executionEnvironment)
|
||||
}
|
||||
|
||||
// handle non-step parameters (e.g. Jenkins-specific parameters as well as execution environment parameters)
|
||||
@@ -93,11 +101,11 @@ func parameterFurtherInfo(paramName string, stepData *config.StepData, execution
|
||||
if !contains(stepParameterNames, paramName) {
|
||||
for _, secret := range stepData.Spec.Inputs.Secrets {
|
||||
if paramName == secret.Name && secret.Type == "jenkins" {
|
||||
return checkParameterInfo("[](#) id of credentials ([using credentials](https://www.jenkins.io/doc/book/using/using-credentials/))", true, executionEnvironment)
|
||||
return checkParameterInfo(fmt.Sprintf("[!%s](#) id of credentials ([using credentials](https://www.jenkins.io/doc/book/using/using-credentials/))", jenkinsOnlyBadge), true, executionEnvironment)
|
||||
}
|
||||
}
|
||||
if contains(jenkinsParams, paramName) {
|
||||
return checkParameterInfo("[](#)", false, executionEnvironment)
|
||||
return checkParameterInfo(fmt.Sprintf("[!%s](#)", jenkinsOnlyBadge), false, executionEnvironment)
|
||||
}
|
||||
return checkParameterInfo("", false, executionEnvironment)
|
||||
}
|
||||
@@ -107,14 +115,19 @@ func parameterFurtherInfo(paramName string, stepData *config.StepData, execution
|
||||
if paramName == param.Name {
|
||||
furtherInfo := ""
|
||||
if param.DeprecationMessage != "" {
|
||||
furtherInfo += ""
|
||||
furtherInfo += fmt.Sprintf("!%s", deprecatedBadge)
|
||||
}
|
||||
if param.Secret {
|
||||
secretInfo := "[](#) pass via ENV or Jenkins credentials"
|
||||
if param.GetReference("vaultSecret") != nil || param.GetReference("vaultSecretFile") != nil {
|
||||
secretInfo = " [](#) [](/) pass via ENV, Vault or Jenkins credentials"
|
||||
secretInfo := fmt.Sprintf("[!%s](#) pass via ENV or Jenkins credentials", secretBadge)
|
||||
|
||||
isVaultSecret := param.GetReference("vaultSecret") != nil || param.GetReference("vaultSecretFile") != nil
|
||||
isTrustengineSecret := param.GetReference(config.RefTypeTrustengineSecret) != nil
|
||||
if isVaultSecret && isTrustengineSecret {
|
||||
secretInfo = fmt.Sprintf(" [!%s](#) [!%s](#) [!%s](/) pass via ENV, Vault, Trust Engine or Jenkins credentials", vaultBadge, trustengineBadge, secretBadge)
|
||||
} else if isVaultSecret {
|
||||
secretInfo = fmt.Sprintf(" [!%s](#) [!%s](/) pass via ENV, Vault or Jenkins credentials", vaultBadge, secretBadge)
|
||||
}
|
||||
|
||||
for _, res := range param.ResourceRef {
|
||||
if res.Type == "secret" {
|
||||
secretInfo += fmt.Sprintf(" ([`%v`](#%v))", res.Name, strings.ToLower(res.Name))
|
||||
@@ -329,24 +342,37 @@ func resourceReferenceDetails(resourceRef []config.ResourceReference) string {
|
||||
continue
|
||||
}
|
||||
|
||||
resourceDetails = addVaultResourceDetails(resource, resourceDetails)
|
||||
if resource.Type == "vaultSecret" || resource.Type == "vaultSecretFile" {
|
||||
resourceDetails = addVaultResourceDetails(resource, resourceDetails)
|
||||
continue
|
||||
}
|
||||
if resource.Type == config.RefTypeTrustengineSecret {
|
||||
resourceDetails = addTrustEngineResourceDetails(resource, resourceDetails)
|
||||
}
|
||||
}
|
||||
|
||||
return resourceDetails
|
||||
}
|
||||
|
||||
func addVaultResourceDetails(resource config.ResourceReference, resourceDetails string) string {
|
||||
if resource.Type == "vaultSecret" || resource.Type == "vaultSecretFile" {
|
||||
resourceDetails += "<br/>Vault resource:<br />"
|
||||
resourceDetails += fmt.Sprintf(" name: `%v`<br />", resource.Name)
|
||||
resourceDetails += fmt.Sprintf(" default value: `%v`<br />", resource.Default)
|
||||
resourceDetails += "<br/>Vault paths: <br />"
|
||||
resourceDetails += "<ul>"
|
||||
for _, rootPath := range config.VaultRootPaths {
|
||||
resourceDetails += fmt.Sprintf("<li>`%s`</li>", path.Join(rootPath, resource.Default))
|
||||
}
|
||||
resourceDetails += "</ul>"
|
||||
resourceDetails += "<br/>Vault resource:<br />"
|
||||
resourceDetails += fmt.Sprintf(" name: `%v`<br />", resource.Name)
|
||||
resourceDetails += fmt.Sprintf(" default value: `%v`<br />", resource.Default)
|
||||
resourceDetails += "<br/>Vault paths: <br />"
|
||||
resourceDetails += "<ul>"
|
||||
for _, rootPath := range config.VaultRootPaths {
|
||||
resourceDetails += fmt.Sprintf("<li>`%s`</li>", path.Join(rootPath, resource.Default))
|
||||
}
|
||||
resourceDetails += "</ul>"
|
||||
|
||||
return resourceDetails
|
||||
}
|
||||
|
||||
func addTrustEngineResourceDetails(resource config.ResourceReference, resourceDetails string) string {
|
||||
resourceDetails += "<br/>Trust Engine resource:<br />"
|
||||
resourceDetails += fmt.Sprintf(" name: `%v`<br />", resource.Name)
|
||||
resourceDetails += fmt.Sprintf(" value: `%v`<br />", resource.Default)
|
||||
|
||||
return resourceDetails
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user