Skip to content

Commit 6d74163

Browse files
Balijepalli Vamshi KrishnaBalijepalli Vamshi Krishna
authored andcommitted
move action commit map to pin actions control
1 parent ad529c7 commit 6d74163

File tree

3 files changed

+20
-26
lines changed

3 files changed

+20
-26
lines changed

remediation/workflow/permissions/permissions.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ type SecureWorkflowReponse struct {
2525
WorkflowFetchError bool
2626
JobErrors []JobError
2727
MissingActions []string
28-
UsedActionCommitMap bool
2928
}
3029

3130
type JobError struct {

remediation/workflow/pin/pinactions.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,24 @@ func PinAction(action, inputYaml string, exemptedActions []string, pinToImmutabl
7272
var commitSHA string
7373
var err error
7474

75-
if actionCommitMap != nil && actionCommitMap[action] != "" {
76-
actionWithCommit := actionCommitMap[action]
77-
commitSHA = strings.Split(actionWithCommit, "@")[1]
78-
79-
if !semanticTagRegex.MatchString(tagOrBranch) {
80-
tagOrBranch, err = getSemanticVersion(client, owner, repo, tagOrBranch, commitSHA)
81-
if err != nil {
82-
return inputYaml, updated
75+
if actionCommitMap != nil {
76+
// Check case-insensitively by iterating through the map
77+
for mapAction, actionWithCommit := range actionCommitMap {
78+
if strings.EqualFold(action, mapAction) && actionWithCommit != "" {
79+
commitSHA = strings.Split(actionWithCommit, "@")[1]
80+
81+
if !semanticTagRegex.MatchString(tagOrBranch) {
82+
tagOrBranch, err = getSemanticVersion(client, owner, repo, tagOrBranch, commitSHA)
83+
if err != nil {
84+
return inputYaml, updated
85+
}
86+
}
87+
break
8388
}
8489
}
85-
} else {
90+
}
91+
92+
if commitSHA == "" {
8693
commitSHA, _, err = client.Repositories.GetCommitSHA1(ctx, owner, repo, tagOrBranch, "")
8794
if err != nil {
8895
return inputYaml, updated

remediation/workflow/secureworkflow.go

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ const (
1818
)
1919

2020
func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc dynamodbiface.DynamoDBAPI, params ...interface{}) (*permissions.SecureWorkflowReponse, error) {
21-
pinActions, addHardenRunner, addPermissions, addProjectComment, replaceMaintainedActions, useActionCommitMap := true, true, true, true, false, false
22-
pinnedActions, addedHardenRunner, addedPermissions, replacedMaintainedActions, usedActionCommitMap := false, false, false, false, false
21+
pinActions, addHardenRunner, addPermissions, addProjectComment, replaceMaintainedActions := true, true, true, true, false
22+
pinnedActions, addedHardenRunner, addedPermissions, replacedMaintainedActions := false, false, false, false
2323
ignoreMissingKBs := false
2424
enableLogging := false
2525
addEmptyTopLevelPermissions := false
@@ -143,22 +143,12 @@ func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc d
143143
}
144144
}
145145

146-
if useActionCommitMap {
147-
if enableLogging {
148-
log.Printf("Using action commit map")
149-
}
150-
secureWorkflowReponse.FinalOutput, usedActionCommitMap, err = pin.PinActions(secureWorkflowReponse.FinalOutput, []string{}, false, actionCommitMap)
151-
if err != nil {
152-
log.Printf("Error pinning actions using commit map: %v", err)
153-
secureWorkflowReponse.HasErrors = true
154-
}
155-
}
156146
if pinActions {
157147
if enableLogging {
158148
log.Printf("Pinning GitHub Actions")
159149
}
160150
pinnedAction, pinnedDocker := false, false
161-
secureWorkflowReponse.FinalOutput, pinnedAction, _ = pin.PinActions(secureWorkflowReponse.FinalOutput, exemptedActions, pinToImmutable, nil)
151+
secureWorkflowReponse.FinalOutput, pinnedAction, _ = pin.PinActions(secureWorkflowReponse.FinalOutput, exemptedActions, pinToImmutable, actionCommitMap)
162152
secureWorkflowReponse.FinalOutput, pinnedDocker, _ = pin.PinDocker(secureWorkflowReponse.FinalOutput)
163153
pinnedActions = pinnedAction || pinnedDocker
164154
if enableLogging {
@@ -189,15 +179,13 @@ func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc d
189179
secureWorkflowReponse.AddedHardenRunner = addedHardenRunner
190180
secureWorkflowReponse.AddedPermissions = addedPermissions
191181
secureWorkflowReponse.AddedMaintainedActions = replacedMaintainedActions
192-
secureWorkflowReponse.UsedActionCommitMap = usedActionCommitMap
193182

194183
if enableLogging {
195-
log.Printf("SecureWorkflow complete - PinnedActions: %v, AddedHardenRunner: %v, AddedPermissions: %v, AddedMaintainedActions: %v, UsedActionCommitMap: %v, HasErrors: %v",
184+
log.Printf("SecureWorkflow complete - PinnedActions: %v, AddedHardenRunner: %v, AddedPermissions: %v, AddedMaintainedActions: %v, HasErrors: %v",
196185
secureWorkflowReponse.PinnedActions,
197186
secureWorkflowReponse.AddedHardenRunner,
198187
secureWorkflowReponse.AddedPermissions,
199188
secureWorkflowReponse.AddedMaintainedActions,
200-
secureWorkflowReponse.UsedActionCommitMap,
201189
secureWorkflowReponse.HasErrors)
202190
}
203191

0 commit comments

Comments
 (0)