manual-approval/constants.go
Sanskar Arora c17f1c63ff
Adding the capability to create the approval issue in the another repository (#142)
* Adding the capability to create the approval issue in another repository

* reverting testing changes

* reverting test changes contd.

* Updating readme and removing a debug line

* Introduce a 'fail-on-denial' boolean (#147)

* Introduce a 'fail-on-approval' boolean

* Use test docker image

* oops

* change default and fix logic

* Update action.yaml

* Fix linting error

* Adding the capability to create the approval issue in another repository

* reverting testing changes

* reverting test changes contd.

* moving targetRepo inputs from env vars to action-args

* Update constants.go

* Update constants.go to resolve nuances created by inconsistent tab length settings

---------

Co-authored-by: Liz MacLean <18120837+lizziemac@users.noreply.github.com>
2025-02-22 13:50:00 -05:00

49 lines
1.9 KiB
Go

package main
import (
"os"
"strings"
"time"
)
const (
pollingInterval time.Duration = 10 * time.Second
envVarRepoFullName string = "GITHUB_REPOSITORY"
envVarRunID string = "GITHUB_RUN_ID"
envVarRepoOwner string = "GITHUB_REPOSITORY_OWNER"
envVarWorkflowInitiator string = "GITHUB_ACTOR"
envVarToken string = "INPUT_SECRET"
envVarApprovers string = "INPUT_APPROVERS"
envVarMinimumApprovals string = "INPUT_MINIMUM-APPROVALS"
envVarIssueTitle string = "INPUT_ISSUE-TITLE"
envVarIssueBody string = "INPUT_ISSUE-BODY"
envVarExcludeWorkflowInitiatorAsApprover string = "INPUT_EXCLUDE-WORKFLOW-INITIATOR-AS-APPROVER"
envVarAdditionalApprovedWords string = "INPUT_ADDITIONAL-APPROVED-WORDS"
envVarAdditionalDeniedWords string = "INPUT_ADDITIONAL-DENIED-WORDS"
envVarFailOnDenial string = "INPUT_FAIL-ON-DENIAL"
envVarTargetRepoOwner string = "INPUT_TARGET-REPOSITORY-OWNER"
envVarTargetRepo string = "INPUT_TARGET-REPOSITORY"
)
var (
additionalApprovedWords = readAdditionalWords(envVarAdditionalApprovedWords)
additionalDeniedWords = readAdditionalWords(envVarAdditionalDeniedWords)
approvedWords = append([]string{"approved", "approve", "lgtm", "yes"}, additionalApprovedWords...)
deniedWords = append([]string{"denied", "deny", "no"}, additionalDeniedWords...)
)
func readAdditionalWords(envVar string) []string {
rawValue := strings.TrimSpace(os.Getenv(envVar))
if len(rawValue) == 0 {
// Nothing else to do here.
return []string{}
}
slicedWords := strings.Split(rawValue, ",")
for i := range slicedWords {
// no leading or trailing spaces in user provided words.
slicedWords[i] = strings.TrimSpace(slicedWords[i])
}
return slicedWords
}