Skip to content

Commit 1dc95cd

Browse files
Balijepalli Vamshi KrishnaBalijepalli Vamshi Krishna
authored andcommitted
update secure workflow response
1 parent 20d66d1 commit 1dc95cd

File tree

7 files changed

+25
-31
lines changed

7 files changed

+25
-31
lines changed

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
128128
inputYaml = httpRequest.Body
129129
}
130130

131-
fixResponse, err := workflow.SecureWorkflow(httpRequest.QueryStringParameters, inputYaml, dynamoDbSvc, nil)
131+
fixResponse, err := workflow.SecureWorkflow(httpRequest.QueryStringParameters, inputYaml, dynamoDbSvc)
132132

133133
if err != nil {
134134
response = events.APIGatewayProxyResponse{

remediation/workflow/hardenrunner/addaction.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func AddAction(inputYaml, action string, pinActions, pinToImmutable bool, skipCo
5151
}
5252

5353
if updated && pinActions {
54-
out, _, err = pin.PinAction(action, out, nil, pinToImmutable, nil, nil)
54+
out, _, err = pin.PinAction(action, out, nil, pinToImmutable, nil)
5555
if err != nil {
5656
return out, updated, err
5757
}

remediation/workflow/permissions/permissions.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type SecureWorkflowReponse struct {
2525
WorkflowFetchError bool
2626
JobErrors []JobError
2727
MissingActions []string
28+
UsingSecureRepoPAT bool
2829
}
2930

3031
type JobError struct {

remediation/workflow/pin/pinactions.go

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,19 @@ package pin
33
import (
44
"context"
55
"fmt"
6+
"log"
67
"os"
78
"path/filepath"
89
"regexp"
910
"strings"
1011

1112
"github.com/google/go-github/v40/github"
12-
"github.com/sirupsen/logrus"
1313
metadata "github.com/step-security/secure-repo/remediation/workflow/metadata"
1414
"golang.org/x/oauth2"
1515
"gopkg.in/yaml.v3"
1616
)
1717

18-
type StepSecurityAppLogger struct {
19-
RequestID string `json:"request_id,omitempty"`
20-
*logrus.Logger
21-
}
22-
23-
func PinActions(inputYaml string, exemptedActions []string, pinToImmutable bool, actionCommitMap map[string]string, logger *StepSecurityAppLogger) (string, bool, error) {
18+
func PinActions(inputYaml string, exemptedActions []string, pinToImmutable bool, actionCommitMap map[string]string) (string, bool, error) {
2419
workflow := metadata.Workflow{}
2520
updated := false
2621
err := yaml.Unmarshal([]byte(inputYaml), &workflow)
@@ -35,7 +30,7 @@ func PinActions(inputYaml string, exemptedActions []string, pinToImmutable bool,
3530
for _, step := range job.Steps {
3631
if len(step.Uses) > 0 {
3732
localUpdated := false
38-
out, localUpdated, err = PinAction(step.Uses, out, exemptedActions, pinToImmutable, actionCommitMap, logger)
33+
out, localUpdated, err = PinAction(step.Uses, out, exemptedActions, pinToImmutable, actionCommitMap)
3934
if err != nil {
4035
return out, updated, err
4136
}
@@ -47,9 +42,9 @@ func PinActions(inputYaml string, exemptedActions []string, pinToImmutable bool,
4742
return out, updated, nil
4843
}
4944

50-
func PinAction(action, inputYaml string, exemptedActions []string, pinToImmutable bool, actionCommitMap map[string]string, logger *StepSecurityAppLogger) (string, bool, error) {
51-
45+
func PinAction(action, inputYaml string, exemptedActions []string, pinToImmutable bool, actionCommitMap map[string]string) (string, bool, error) {
5246
updated := false
47+
5348
if !strings.Contains(action, "@") || strings.HasPrefix(action, "docker://") {
5449
return inputYaml, updated, nil // Cannot pin local actions and docker actions
5550
}
@@ -73,17 +68,9 @@ func PinAction(action, inputYaml string, exemptedActions []string, pinToImmutabl
7368
PAT := os.Getenv("SECURE_REPO_PAT")
7469
if PAT == "" {
7570
PAT = os.Getenv("PAT")
76-
if logger != nil {
77-
logger.Logf(logrus.InfoLevel, "SECURE_REPO_PAT is not set, using PAT")
78-
} else {
79-
logrus.Info("SECURE_REPO_PAT is not set, using PAT")
80-
}
71+
log.Println("SECURE_REPO_PAT is not set, using PAT")
8172
} else {
82-
if logger != nil {
83-
logger.Logf(logrus.InfoLevel, "SECURE_REPO_PAT is set")
84-
} else {
85-
logrus.Info("SECURE_REPO_PAT is set")
86-
}
73+
log.Println("SECURE_REPO_PAT is set")
8774
}
8875

8976
ctx := context.Background()
@@ -287,3 +274,7 @@ func ActionExists(actionName string, patterns []string) bool {
287274
}
288275
return false
289276
}
277+
278+
func UsingSecureRepoPAT() bool {
279+
return os.Getenv("SECURE_REPO_PAT") != ""
280+
}

remediation/workflow/pin/pinactions_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ func TestPinActions(t *testing.T) {
333333
}
334334
}
335335

336-
output, gotUpdated, err = PinActions(string(input), tt.exemptedActions, tt.pinToImmutable, actionCommitMap, nil)
336+
output, gotUpdated, err = PinActions(string(input), tt.exemptedActions, tt.pinToImmutable, actionCommitMap)
337337
if tt.wantUpdated != gotUpdated {
338338
t.Errorf("test failed wantUpdated %v did not match gotUpdated %v", tt.wantUpdated, gotUpdated)
339339
}

remediation/workflow/secureworkflow.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const (
1717
HardenRunnerActionName = "Harden Runner"
1818
)
1919

20-
func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc dynamodbiface.DynamoDBAPI, logger *pin.StepSecurityAppLogger, params ...interface{}) (*permissions.SecureWorkflowReponse, error) {
20+
func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc dynamodbiface.DynamoDBAPI, params ...interface{}) (*permissions.SecureWorkflowReponse, error) {
2121
pinActions, addHardenRunner, addPermissions, addProjectComment, replaceMaintainedActions := true, true, true, true, false
2222
pinnedActions, addedHardenRunner, addedPermissions, replacedMaintainedActions := false, false, false, false
2323
ignoreMissingKBs := false
@@ -148,7 +148,7 @@ func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc d
148148
log.Printf("Pinning GitHub Actions")
149149
}
150150
pinnedAction, pinnedDocker := false, false
151-
secureWorkflowReponse.FinalOutput, pinnedAction, err = pin.PinActions(secureWorkflowReponse.FinalOutput, exemptedActions, pinToImmutable, actionCommitMap, logger)
151+
secureWorkflowReponse.FinalOutput, pinnedAction, err = pin.PinActions(secureWorkflowReponse.FinalOutput, exemptedActions, pinToImmutable, actionCommitMap)
152152
if err != nil {
153153
if enableLogging {
154154
log.Printf("Error pinning actions: %v", err)
@@ -185,14 +185,16 @@ func SecureWorkflow(queryStringParams map[string]string, inputYaml string, svc d
185185
secureWorkflowReponse.AddedHardenRunner = addedHardenRunner
186186
secureWorkflowReponse.AddedPermissions = addedPermissions
187187
secureWorkflowReponse.AddedMaintainedActions = replacedMaintainedActions
188+
secureWorkflowReponse.UsingSecureRepoPAT = pin.UsingSecureRepoPAT()
188189

189190
if enableLogging {
190-
log.Printf("SecureWorkflow complete - PinnedActions: %v, AddedHardenRunner: %v, AddedPermissions: %v, AddedMaintainedActions: %v, HasErrors: %v",
191+
log.Printf("SecureWorkflow complete - PinnedActions: %v, AddedHardenRunner: %v, AddedPermissions: %v, AddedMaintainedActions: %v, HasErrors: %v, UsingSecureRepoPAT: %v",
191192
secureWorkflowReponse.PinnedActions,
192193
secureWorkflowReponse.AddedHardenRunner,
193194
secureWorkflowReponse.AddedPermissions,
194195
secureWorkflowReponse.AddedMaintainedActions,
195-
secureWorkflowReponse.HasErrors)
196+
secureWorkflowReponse.HasErrors,
197+
secureWorkflowReponse.UsingSecureRepoPAT)
196198
}
197199

198200
return secureWorkflowReponse, nil

remediation/workflow/secureworkflow_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ func TestSecureWorkflow(t *testing.T) {
266266
if err != nil {
267267
t.Errorf("unable to load the file %s", err)
268268
}
269-
output, err = SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{}, nil, []string{"actions/*"}, false, actionMap)
269+
output, err = SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{}, []string{"actions/*"}, false, actionMap)
270270
} else {
271-
output, err = SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{}, nil)
271+
output, err = SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{})
272272
}
273273

274274
if test.wantError {
@@ -369,7 +369,7 @@ func TestSecureWorkflowContainerJob(t *testing.T) {
369369
queryParams["skipHardenRunnerForContainers"] = "true"
370370
queryParams["addProjectComment"] = "false"
371371

372-
output, err := SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{}, nil)
372+
output, err := SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{})
373373

374374
if err != nil {
375375
t.Errorf("Error not expected")
@@ -474,7 +474,7 @@ func TestSecureWorkflowEmptyPermissions(t *testing.T) {
474474
queryParams["addEmptyTopLevelPermissions"] = "true"
475475
queryParams["addProjectComment"] = "false"
476476

477-
output, err := SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{}, nil)
477+
output, err := SecureWorkflow(queryParams, string(input), &mockDynamoDBClient{})
478478

479479
if err != nil {
480480
t.Errorf("Error not expected")

0 commit comments

Comments
 (0)