Skip to content

Commit 0e48ff9

Browse files
authored
Add TriggerInfo to gateway request population. (#610)
This is necessary as our workflows need to differentiate between force applies and normal applies (for auditing). Also this data model makes a bit more sense than scattering rerun and force in the request itself.
1 parent 4cf5f41 commit 0e48ff9

File tree

11 files changed

+64
-18
lines changed

11 files changed

+64
-18
lines changed

server/neptune/gateway/api/deploy.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ func (c *DeployHandler) Handle(ctx context.Context, r request.Deploy) error {
5151
CloneDepth: 1,
5252
},
5353

54-
Trigger: workflows.ManualTrigger,
54+
TriggerInfo: workflows.DeployTriggerInfo{
55+
Type: workflows.ManualTrigger,
56+
},
5557
})
5658
},
5759
)

server/neptune/gateway/deploy/deployer.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ type RootDeployOptions struct {
5050
// TODO: Remove this from this struct, consumers shouldn't need to know about this
5151
// instead we should just inject implementations of RepoFetcher to handle different scenarios
5252
RepoFetcherOptions *github.RepoFetcherOptions
53-
Trigger workflows.Trigger
54-
Rerun bool
53+
TriggerInfo workflows.DeployTriggerInfo
5554
}
5655

5756
func (d *RootDeployer) Deploy(ctx context.Context, deployOptions RootDeployOptions) error {

server/neptune/gateway/deploy/signaler.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,11 @@ func (d *WorkflowSignaler) SignalWithStartWorkflow(ctx context.Context, rootCfg
6161
TrackedFiles: rootCfg.WhenModified,
6262
TfVersion: tfVersion,
6363
PlanMode: d.generatePlanMode(rootCfg),
64-
Trigger: rootDeployOptions.Trigger,
65-
Rerun: rootDeployOptions.Rerun,
64+
TriggerInfo: rootDeployOptions.TriggerInfo,
65+
66+
// todo: remove once we stop using this in our workflows.
67+
Trigger: rootDeployOptions.TriggerInfo.Type,
68+
Rerun: rootDeployOptions.TriggerInfo.Rerun,
6669
},
6770
Repo: workflows.Repo{
6871
URL: repo.CloneURL,

server/neptune/gateway/deploy/signaler_test.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ func TestSignalWithStartWorkflow_Success(t *testing.T) {
123123
TfVersion: version.String(),
124124
PlanMode: workflows.NormalPlanMode,
125125
Trigger: workflows.MergeTrigger,
126+
TriggerInfo: workflows.DeployTriggerInfo{
127+
Type: workflows.MergeTrigger,
128+
},
126129
},
127130
InitiatingUser: workflows.User{
128131
Name: user.Username,
@@ -160,7 +163,9 @@ func TestSignalWithStartWorkflow_Success(t *testing.T) {
160163
Revision: sha,
161164
Branch: branch,
162165
Sender: user,
163-
Trigger: workflows.MergeTrigger,
166+
TriggerInfo: workflows.DeployTriggerInfo{
167+
Type: workflows.MergeTrigger,
168+
},
164169
}
165170
run, err := deploySignaler.SignalWithStartWorkflow(context.Background(), &rootCfg, rootDeployOptions)
166171
assert.NoError(t, err)
@@ -198,6 +203,9 @@ func TestSignalWithStartWorkflow_Success(t *testing.T) {
198203
TfVersion: version.String(),
199204
PlanMode: workflows.DestroyPlanMode,
200205
Trigger: workflows.MergeTrigger,
206+
TriggerInfo: workflows.DeployTriggerInfo{
207+
Type: workflows.MergeTrigger,
208+
},
201209
},
202210
InitiatingUser: workflows.User{
203211
Name: user.Username,
@@ -238,7 +246,9 @@ func TestSignalWithStartWorkflow_Success(t *testing.T) {
238246
Revision: sha,
239247
Branch: branch,
240248
Sender: user,
241-
Trigger: workflows.MergeTrigger,
249+
TriggerInfo: workflows.DeployTriggerInfo{
250+
Type: workflows.MergeTrigger,
251+
},
242252
}
243253
run, err := deploySignaler.SignalWithStartWorkflow(context.Background(), &rootCfg, rootDeployOptions)
244254
assert.NoError(t, err)
@@ -294,6 +304,9 @@ func TestSignalWithStartWorkflow_Failure(t *testing.T) {
294304
TfVersion: version.String(),
295305
PlanMode: workflows.NormalPlanMode,
296306
Trigger: workflows.MergeTrigger,
307+
TriggerInfo: workflows.DeployTriggerInfo{
308+
Type: workflows.MergeTrigger,
309+
},
297310
},
298311
InitiatingUser: workflows.User{
299312
Name: user.Username,
@@ -332,7 +345,9 @@ func TestSignalWithStartWorkflow_Failure(t *testing.T) {
332345
Revision: sha,
333346
Branch: branch,
334347
Sender: user,
335-
Trigger: workflows.MergeTrigger,
348+
TriggerInfo: workflows.DeployTriggerInfo{
349+
Type: workflows.MergeTrigger,
350+
},
336351
}
337352
run, err := deploySignaler.SignalWithStartWorkflow(context.Background(), &rootCfg, rootDeployOptions)
338353
assert.Error(t, err)

server/neptune/gateway/event/check_run_handler.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,10 @@ func (h *CheckRunHandler) buildRoot(ctx context.Context, event CheckRun, rootNam
167167
Revision: event.HeadSha,
168168
Sender: event.User,
169169
InstallationToken: event.InstallationToken,
170-
Trigger: workflows.ManualTrigger,
171-
Rerun: true,
170+
TriggerInfo: workflows.DeployTriggerInfo{
171+
Type: workflows.ManualTrigger,
172+
Rerun: true,
173+
},
172174
}
173175
return errors.Wrap(h.RootDeployer.Deploy(ctx, deployOptions), "deploying workflow")
174176
}

server/neptune/gateway/event/check_suite_handler.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ func (h *CheckSuiteHandler) handle(ctx context.Context, event CheckSuite) error
4545
Revision: event.HeadSha,
4646
Sender: event.Sender,
4747
InstallationToken: event.InstallationToken,
48-
Trigger: workflows.ManualTrigger,
49-
Rerun: true,
48+
TriggerInfo: workflows.DeployTriggerInfo{
49+
Type: workflows.ManualTrigger,
50+
Rerun: true,
51+
},
5052
}
5153
return h.RootDeployer.Deploy(ctx, rootDeployOptions)
5254
}

server/neptune/gateway/event/comment_handler.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,11 @@ func (p *CommentEventWorkerProxy) forceApplyPlatformMode(ctx context.Context, ev
276276
OptionalPullNum: event.Pull.Num,
277277
Sender: event.User,
278278
InstallationToken: event.InstallationToken,
279-
Trigger: workflows.ManualTrigger,
279+
TriggerInfo: workflows.DeployTriggerInfo{
280+
Type: workflows.ManualTrigger,
281+
Force: true,
282+
},
280283
}
284+
281285
return p.rootDeployer.Deploy(ctx, rootDeployOptions)
282286
}

server/neptune/gateway/event/comment_handler_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,10 @@ func TestCommentEventWorkerProxy_HandleForceApply_BothModes(t *testing.T) {
169169
OptionalPullNum: testPull.Num,
170170
Sender: commentEvent.User,
171171
InstallationToken: commentEvent.InstallationToken,
172-
Trigger: workflows.ManualTrigger,
172+
TriggerInfo: workflows.DeployTriggerInfo{
173+
Type: workflows.ManualTrigger,
174+
Force: true,
175+
},
173176
},
174177
}
175178
commentCreator := &mockCommentCreator{}
@@ -243,7 +246,10 @@ func TestCommentEventWorkerProxy_HandleForceApply_AllPlatform(t *testing.T) {
243246
OptionalPullNum: testPull.Num,
244247
Sender: commentEvent.User,
245248
InstallationToken: commentEvent.InstallationToken,
246-
Trigger: workflows.ManualTrigger,
249+
TriggerInfo: workflows.DeployTriggerInfo{
250+
Type: workflows.ManualTrigger,
251+
Force: true,
252+
},
247253
},
248254
}
249255
commentCreator := &mockCommentCreator{

server/neptune/gateway/event/push_event_handler.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ func (p *PushHandler) handle(ctx context.Context, event Push) error {
8585
RepoFetcherOptions: &github.RepoFetcherOptions{
8686
CloneDepth: 5,
8787
},
88-
Trigger: workflows.MergeTrigger,
88+
TriggerInfo: workflows.DeployTriggerInfo{
89+
Type: workflows.MergeTrigger,
90+
},
8991
}
9092
return p.RootDeployer.Deploy(ctx, rootDeployOptions)
9193
}

server/neptune/workflows/deploy.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ type AppCredentials = request.AppCredentials
2222
type User = request.User
2323
type PlanMode = request.PlanMode
2424
type Trigger = request.Trigger
25+
type DeployTriggerInfo = request.TriggerInfo
2526

2627
const DestroyPlanMode = request.DestroyPlanMode
2728
const NormalPlanMode = request.NormalPlanMode

0 commit comments

Comments
 (0)