@@ -11,6 +11,11 @@ import (
11
11
"github.com/aws/aws-lambda-go/lambda"
12
12
"github.com/aws/aws-sdk-go/aws/session"
13
13
"github.com/aws/aws-sdk-go/service/dynamodb"
14
+ "github.com/step-security/secure-workflows/remediation/dependabot"
15
+ "github.com/step-security/secure-workflows/remediation/docker"
16
+ "github.com/step-security/secure-workflows/remediation/secrets"
17
+ "github.com/step-security/secure-workflows/remediation/workflow"
18
+ "github.com/step-security/secure-workflows/remediation/workflow/permissions"
14
19
)
15
20
16
21
type Handler struct {
@@ -42,7 +47,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
42
47
if strings .Contains (httpRequest .RawPath , "/secrets" ) {
43
48
if httpRequest .RequestContext .HTTP .Method == "GET" {
44
49
authHeader := httpRequest .Headers ["authorization" ]
45
- githubWorkflowSecrets , err := GetSecrets (httpRequest .QueryStringParameters , authHeader , dynamoDbSvc )
50
+ githubWorkflowSecrets , err := secrets . GetSecrets (httpRequest .QueryStringParameters , authHeader , dynamoDbSvc )
46
51
if err != nil {
47
52
response = events.APIGatewayProxyResponse {
48
53
StatusCode : http .StatusInternalServerError ,
@@ -58,7 +63,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
58
63
59
64
} else if httpRequest .RequestContext .HTTP .Method == "PUT" {
60
65
authHeader := httpRequest .Headers ["authorization" ]
61
- githubWorkflowSecrets , err := InitSecrets (httpRequest .Body , authHeader , dynamoDbSvc )
66
+ githubWorkflowSecrets , err := secrets . InitSecrets (httpRequest .Body , authHeader , dynamoDbSvc )
62
67
if err != nil {
63
68
response = events.APIGatewayProxyResponse {
64
69
StatusCode : http .StatusInternalServerError ,
@@ -73,7 +78,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
73
78
}
74
79
75
80
} else if httpRequest .RequestContext .HTTP .Method == "POST" {
76
- err := SetSecrets (httpRequest .Body , dynamoDbSvc )
81
+ err := secrets . SetSecrets (httpRequest .Body , dynamoDbSvc )
77
82
if err != nil {
78
83
response = events.APIGatewayProxyResponse {
79
84
StatusCode : http .StatusInternalServerError ,
@@ -86,7 +91,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
86
91
}
87
92
} else if httpRequest .RequestContext .HTTP .Method == "DELETE" {
88
93
authHeader := httpRequest .Headers ["authorization" ]
89
- err := DeleteSecrets (authHeader , dynamoDbSvc )
94
+ err := secrets . DeleteSecrets (authHeader , dynamoDbSvc )
90
95
if err != nil {
91
96
response = events.APIGatewayProxyResponse {
92
97
StatusCode : http .StatusInternalServerError ,
@@ -107,9 +112,9 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
107
112
// if owner is set, assuming that repo, path are also set
108
113
// get the workflow using API
109
114
if _ , ok := queryStringParams ["owner" ]; ok {
110
- inputYaml , err = GetGitHubWorkflowContents (httpRequest .QueryStringParameters )
115
+ inputYaml , err = workflow . GetGitHubWorkflowContents (httpRequest .QueryStringParameters )
111
116
if err != nil {
112
- fixResponse := & SecureWorkflowReponse {WorkflowFetchError : true , HasErrors : true }
117
+ fixResponse := & permissions. SecureWorkflowReponse {WorkflowFetchError : true , HasErrors : true }
113
118
output , _ := json .Marshal (fixResponse )
114
119
response = events.APIGatewayProxyResponse {
115
120
StatusCode : http .StatusOK ,
@@ -123,7 +128,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
123
128
inputYaml = httpRequest .Body
124
129
}
125
130
126
- fixResponse , err := SecureWorkflow (httpRequest .QueryStringParameters , inputYaml , dynamoDbSvc )
131
+ fixResponse , err := workflow . SecureWorkflow (httpRequest .QueryStringParameters , inputYaml , dynamoDbSvc )
127
132
128
133
if err != nil {
129
134
response = events.APIGatewayProxyResponse {
@@ -148,9 +153,9 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
148
153
// if owner is set, assuming that repo, path are also set
149
154
// get the dockerfile using API
150
155
if _ , ok := queryStringParams ["owner" ]; ok {
151
- dockerFile , err = GetGitHubWorkflowContents (httpRequest .QueryStringParameters )
156
+ dockerFile , err = workflow . GetGitHubWorkflowContents (httpRequest .QueryStringParameters )
152
157
if err != nil {
153
- fixResponse := & SecureDockerfileResponse {DockerfileFetchError : true }
158
+ fixResponse := & docker. SecureDockerfileResponse {DockerfileFetchError : true }
154
159
output , _ := json .Marshal (fixResponse )
155
160
response = events.APIGatewayProxyResponse {
156
161
StatusCode : http .StatusOK ,
@@ -164,7 +169,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
164
169
dockerFile = httpRequest .Body
165
170
}
166
171
167
- fixResponse , err := SecureDockerFile (dockerFile )
172
+ fixResponse , err := docker . SecureDockerFile (dockerFile )
168
173
if err != nil {
169
174
response = events.APIGatewayProxyResponse {
170
175
StatusCode : http .StatusInternalServerError ,
@@ -186,7 +191,7 @@ func (h Handler) Invoke(ctx context.Context, req []byte) ([]byte, error) {
186
191
updateDependabotConfigRequest := ""
187
192
updateDependabotConfigRequest = httpRequest .Body
188
193
189
- fixResponse , err := UpdateDependabotConfig (updateDependabotConfigRequest )
194
+ fixResponse , err := dependabot . UpdateDependabotConfig (updateDependabotConfigRequest )
190
195
if err != nil {
191
196
response = events.APIGatewayProxyResponse {
192
197
StatusCode : http .StatusInternalServerError ,
0 commit comments