Skip to content

Commit ec6fa0a

Browse files
authored
feat(tekton): add support for ca-mon region (IBM-Cloud#6402)
* feat(tekton): add support for ca-mon region * fix(tekton): add support for draft PR events * chore: bump CD Go SDK version
1 parent 95d019b commit ec6fa0a

11 files changed

+74
-3
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require (
1414
github.com/IBM/code-engine-go-sdk v0.0.0-20241217191651-e1821f8c58c3
1515
github.com/IBM/configuration-aggregator-go-sdk v0.0.2
1616
github.com/IBM/container-registry-go-sdk v1.1.0
17-
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.3
17+
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.6
1818
github.com/IBM/event-notifications-go-admin-sdk v0.18.0
1919
github.com/IBM/eventstreams-go-sdk v1.4.0
2020
github.com/IBM/go-sdk-core/v5 v5.20.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ github.com/IBM/configuration-aggregator-go-sdk v0.0.2 h1:IRDIrGyLNXq+wQRj/js/Bzr
114114
github.com/IBM/configuration-aggregator-go-sdk v0.0.2/go.mod h1:Ql2N5j4d4Pj1/GoLzFwZw0DomCG4b1O33kKs3TZ+O+I=
115115
github.com/IBM/container-registry-go-sdk v1.1.0 h1:sYyknIod8R4RJZQqAheiduP6wbSTphE9Ag8ho28yXjc=
116116
github.com/IBM/container-registry-go-sdk v1.1.0/go.mod h1:4TwsCnQtVfZ4Vkapy/KPvQBKFc3VOyUZYkwRU4FTPrs=
117-
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.3 h1:5oyqzqwywzVef30h1qjNEBcgxOvdDiX43ppsZyCTwik=
118-
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.3/go.mod h1:Iibf+4gRasEZHakDgnMm7TOX87xex0L+DfghUclcmcg=
117+
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.6 h1:CdJWGVzcHngf6un5N2C4KDgIzqViA2Md6pSeZNZzsLQ=
118+
github.com/IBM/continuous-delivery-go-sdk/v2 v2.0.6/go.mod h1:Iibf+4gRasEZHakDgnMm7TOX87xex0L+DfghUclcmcg=
119119
github.com/IBM/event-notifications-go-admin-sdk v0.18.0 h1:G4230wYVCjHnHFEcingfMVznjSJeUoSWzyEMsEFYCmo=
120120
github.com/IBM/event-notifications-go-admin-sdk v0.18.0/go.mod h1:9fG6k1gYRqiChZvmn1iRIjaKCXuDBCOlPH6xPJN+mMU=
121121
github.com/IBM/eventstreams-go-sdk v1.4.0 h1:yS/Ns29sBOe8W2tynQmz9HTKqQZ0ckse4Py5Oy/F2rM=

ibm/service/cdtektonpipeline/data_source_ibm_cd_tekton_pipeline.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,11 @@ func DataSourceIBMCdTektonPipeline() *schema.Resource {
342342
Computed: true,
343343
Description: "When enabled, pull request events from forks of the selected repository will trigger a pipeline run.",
344344
},
345+
"disable_draft_events": &schema.Schema{
346+
Type: schema.TypeBool,
347+
Computed: true,
348+
Description: "Prevent new pipeline runs from being triggered by events from draft pull requests.",
349+
},
345350
"source": &schema.Schema{
346351
Type: schema.TypeList,
347352
Computed: true,
@@ -823,6 +828,9 @@ func DataSourceIBMCdTektonPipelineTriggerToMap(model cdtektonpipelinev2.TriggerI
823828
if model.EnableEventsFromForks != nil {
824829
modelMap["enable_events_from_forks"] = *model.EnableEventsFromForks
825830
}
831+
if model.DisableDraftEvents != nil {
832+
modelMap["disable_draft_events"] = *model.DisableDraftEvents
833+
}
826834
if model.Source != nil {
827835
sourceMap, err := DataSourceIBMCdTektonPipelineTriggerSourceToMap(model.Source)
828836
if err != nil {
@@ -1032,6 +1040,9 @@ func DataSourceIBMCdTektonPipelineTriggerScmTriggerToMap(model *cdtektonpipeline
10321040
if model.EnableEventsFromForks != nil {
10331041
modelMap["enable_events_from_forks"] = *model.EnableEventsFromForks
10341042
}
1043+
if model.DisableDraftEvents != nil {
1044+
modelMap["disable_draft_events"] = *model.DisableDraftEvents
1045+
}
10351046
if model.Source != nil {
10361047
sourceMap, err := DataSourceIBMCdTektonPipelineTriggerSourceToMap(model.Source)
10371048
if err != nil {

ibm/service/cdtektonpipeline/data_source_ibm_cd_tekton_pipeline_trigger.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ func DataSourceIBMCdTektonPipelineTrigger() *schema.Resource {
160160
Computed: true,
161161
Description: "When enabled, pull request events from forks of the selected repository will trigger a pipeline run.",
162162
},
163+
"disable_draft_events": &schema.Schema{
164+
Type: schema.TypeBool,
165+
Computed: true,
166+
Description: "Prevent new pipeline runs from being triggered by events from draft pull requests.",
167+
},
163168
"source": &schema.Schema{
164169
Type: schema.TypeList,
165170
Computed: true,
@@ -401,6 +406,12 @@ func dataSourceIBMCdTektonPipelineTriggerRead(context context.Context, d *schema
401406
}
402407
}
403408

409+
if !core.IsNil(trigger.DisableDraftEvents) {
410+
if err = d.Set("disable_draft_events", trigger.DisableDraftEvents); err != nil {
411+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting disable_draft_events: %s", err), "(Data) ibm_cd_tekton_pipeline_trigger", "read", "set-disable_draft_events").GetDiag()
412+
}
413+
}
414+
404415
if !core.IsNil(trigger.Source) {
405416
source := []map[string]interface{}{}
406417
sourceMap, err := DataSourceIBMCdTektonPipelineTriggerTriggerSourceToMap(trigger.Source)

ibm/service/cdtektonpipeline/resource_ibm_cd_tekton_pipeline.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,11 @@ func ResourceIBMCdTektonPipeline() *schema.Resource {
412412
Computed: true,
413413
Description: "When enabled, pull request events from forks of the selected repository will trigger a pipeline run.",
414414
},
415+
"disable_draft_events": &schema.Schema{
416+
Type: schema.TypeBool,
417+
Computed: true,
418+
Description: "Prevent new pipeline runs from being triggered by events from draft pull requests.",
419+
},
415420
"source": &schema.Schema{
416421
Type: schema.TypeList,
417422
Optional: true,
@@ -1034,6 +1039,9 @@ func ResourceIBMCdTektonPipelineTriggerToMap(model cdtektonpipelinev2.TriggerInt
10341039
if model.EnableEventsFromForks != nil {
10351040
modelMap["enable_events_from_forks"] = *model.EnableEventsFromForks
10361041
}
1042+
if model.DisableDraftEvents != nil {
1043+
modelMap["disable_draft_events"] = *model.DisableDraftEvents
1044+
}
10371045
if model.Source != nil {
10381046
sourceMap, err := ResourceIBMCdTektonPipelineTriggerSourceToMap(model.Source)
10391047
if err != nil {
@@ -1229,6 +1237,9 @@ func ResourceIBMCdTektonPipelineTriggerScmTriggerToMap(model *cdtektonpipelinev2
12291237
if model.EnableEventsFromForks != nil {
12301238
modelMap["enable_events_from_forks"] = *model.EnableEventsFromForks
12311239
}
1240+
if model.DisableDraftEvents != nil {
1241+
modelMap["disable_draft_events"] = *model.DisableDraftEvents
1242+
}
12321243
if model.Source != nil {
12331244
sourceMap, err := ResourceIBMCdTektonPipelineTriggerSourceToMap(model.Source)
12341245
if err != nil {

ibm/service/cdtektonpipeline/resource_ibm_cd_tekton_pipeline_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,7 @@ func TestResourceIBMCdTektonPipelineTriggerToMap(t *testing.T) {
459459
model["favorite"] = false
460460
model["limit_waiting_runs"] = false
461461
model["enable_events_from_forks"] = false
462+
model["disable_draft_events"] = false
462463
model["source"] = []map[string]interface{}{triggerSourceModel}
463464
model["events"] = []string{"push", "pull_request"}
464465
model["filter"] = "header['x-github-event'] == 'push' && body.ref == 'refs/heads/main'"
@@ -520,6 +521,7 @@ func TestResourceIBMCdTektonPipelineTriggerToMap(t *testing.T) {
520521
model.Favorite = core.BoolPtr(false)
521522
model.LimitWaitingRuns = core.BoolPtr(false)
522523
model.EnableEventsFromForks = core.BoolPtr(false)
524+
model.DisableDraftEvents = core.BoolPtr(false)
523525
model.Source = triggerSourceModel
524526
model.Events = []string{"push", "pull_request"}
525527
model.Filter = core.StringPtr("header['x-github-event'] == 'push' && body.ref == 'refs/heads/main'")
@@ -768,6 +770,7 @@ func TestResourceIBMCdTektonPipelineTriggerScmTriggerToMap(t *testing.T) {
768770
model["favorite"] = false
769771
model["limit_waiting_runs"] = false
770772
model["enable_events_from_forks"] = false
773+
model["disable_draft_events"] = false
771774
model["source"] = []map[string]interface{}{triggerSourceModel}
772775
model["events"] = []string{"push", "pull_request"}
773776
model["filter"] = "header['x-github-event'] == 'push' && body.ref == 'refs/heads/main'"
@@ -818,6 +821,7 @@ func TestResourceIBMCdTektonPipelineTriggerScmTriggerToMap(t *testing.T) {
818821
model.Favorite = core.BoolPtr(false)
819822
model.LimitWaitingRuns = core.BoolPtr(false)
820823
model.EnableEventsFromForks = core.BoolPtr(false)
824+
model.DisableDraftEvents = core.BoolPtr(false)
821825
model.Source = triggerSourceModel
822826
model.Events = []string{"push", "pull_request"}
823827
model.Filter = core.StringPtr("header['x-github-event'] == 'push' && body.ref == 'refs/heads/main'")

ibm/service/cdtektonpipeline/resource_ibm_cd_tekton_pipeline_trigger.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ func ResourceIBMCdTektonPipelineTrigger() *schema.Resource {
117117
Default: false,
118118
Description: "When enabled, pull request events from forks of the selected repository will trigger a pipeline run.",
119119
},
120+
"disable_draft_events": &schema.Schema{
121+
Type: schema.TypeBool,
122+
Optional: true,
123+
Default: false,
124+
Description: "Prevent new pipeline runs from being triggered by events from draft pull requests.",
125+
},
120126
"source": &schema.Schema{
121127
Type: schema.TypeList,
122128
MaxItems: 1,
@@ -461,6 +467,9 @@ func resourceIBMCdTektonPipelineTriggerCreate(context context.Context, d *schema
461467
if _, ok := d.GetOk("enable_events_from_forks"); ok {
462468
createTektonPipelineTriggerOptions.SetEnableEventsFromForks(d.Get("enable_events_from_forks").(bool))
463469
}
470+
if _, ok := d.GetOk("disable_draft_events"); ok {
471+
createTektonPipelineTriggerOptions.SetDisableDraftEvents(d.Get("disable_draft_events").(bool))
472+
}
464473

465474
triggerIntf, _, err := cdTektonPipelineClient.CreateTektonPipelineTriggerWithContext(context, createTektonPipelineTriggerOptions)
466475
if err != nil {
@@ -567,6 +576,12 @@ func resourceIBMCdTektonPipelineTriggerRead(context context.Context, d *schema.R
567576
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_cd_tekton_pipeline_trigger", "read", "set-enable_events_from_forks").GetDiag()
568577
}
569578
}
579+
if !core.IsNil(trigger.DisableDraftEvents) {
580+
if err = d.Set("disable_draft_events", trigger.DisableDraftEvents); err != nil {
581+
err = fmt.Errorf("Error setting disable_draft_events: %s", err)
582+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_cd_tekton_pipeline_trigger", "read", "set-disable_draft_events").GetDiag()
583+
}
584+
}
570585
if !core.IsNil(trigger.Source) {
571586
sourceMap, err := ResourceIBMCdTektonPipelineTriggerTriggerSourceToMap(trigger.Source)
572587
if err != nil {
@@ -772,6 +787,11 @@ func resourceIBMCdTektonPipelineTriggerUpdate(context context.Context, d *schema
772787
patchVals.EnableEventsFromForks = &newEnableEventsFromForks
773788
hasChange = true
774789
}
790+
if d.HasChange("disable_draft_events") {
791+
newDisableDraftEvents := d.Get("disable_draft_events").(bool)
792+
patchVals.DisableDraftEvents = &newDisableDraftEvents
793+
hasChange = true
794+
}
775795

776796
if hasChange {
777797
// Fields with `nil` values are omitted from the generic map,
@@ -1065,6 +1085,12 @@ func ResourceIBMCdTektonPipelineTriggerTriggerPatchAsPatch(patchVals *cdtektonpi
10651085
} else if !exists {
10661086
delete(patch, "enable_events_from_forks")
10671087
}
1088+
path = "disable_draft_events"
1089+
if _, exists := d.GetOkExists(path); d.HasChange(path) && !exists {
1090+
patch["disable_draft_events"] = nil
1091+
} else if !exists {
1092+
delete(patch, "disable_draft_events")
1093+
}
10681094

10691095
return patch
10701096
}

website/docs/d/cd_tekton_pipeline.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ Nested schema for **toolchain**:
103103
Nested schema for **triggers**:
104104
* `cron` - (String) Only needed for timer triggers. CRON expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: The CRON expression 0 *_/2 * * * - translates to - every 2 hours.
105105
* Constraints: The maximum length is `253` characters. The minimum length is `5` characters. The value must match regular expression `/^[-0-9a-zA-Z,\\*\/ ]{5,253}$/`.
106+
* `disable_draft_events` - (Boolean) Prevent new pipeline runs from being triggered by events from draft pull requests.
107+
* Constraints: The default value is `false`.
106108
* `enable_events_from_forks` - (Boolean) When enabled, pull request events from forks of the selected repository will trigger a pipeline run.
107109
* Constraints: The default value is `false`.
108110
* `enabled` - (Boolean) Flag to check if the trigger is enabled.

website/docs/d/cd_tekton_pipeline_trigger.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ After your data source is created, you can read values from the following attrib
3535
* `id` - The unique identifier of the cd_tekton_pipeline_trigger.
3636
* `cron` - (String) Only needed for timer triggers. CRON expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: The CRON expression 0 *_/2 * * * - translates to - every 2 hours.
3737
* Constraints: The maximum length is `253` characters. The minimum length is `5` characters. The value must match regular expression `/^[-0-9a-zA-Z,\\*\/ ]{5,253}$/`.
38+
* `disable_draft_events` - (Boolean) Prevent new pipeline runs from being triggered by events from draft pull requests.
39+
* Constraints: The default value is `false`.
3840
* `enable_events_from_forks` - (Boolean) When enabled, pull request events from forks of the selected repository will trigger a pipeline run.
3941
* Constraints: The default value is `false`.
4042
* `enabled` - (Boolean) Flag to check if the trigger is enabled.

website/docs/r/cd_tekton_pipeline.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ Nested schema for **toolchain**:
114114
Nested schema for **triggers**:
115115
* `cron` - (String) Only needed for timer triggers. CRON expression that indicates when this trigger will activate. Maximum frequency is every 5 minutes. The string is based on UNIX crontab syntax: minute, hour, day of month, month, day of week. Example: The CRON expression 0 *_/2 * * * - translates to - every 2 hours.
116116
* Constraints: The maximum length is `253` characters. The minimum length is `5` characters. The value must match regular expression `/^[-0-9a-zA-Z,\\*\/ ]{5,253}$/`.
117+
* `disable_draft_events` - (Boolean) Prevent new pipeline runs from being triggered by events from draft pull requests.
118+
* Constraints: The default value is `false`.
117119
* `enable_events_from_forks` - (Boolean) When enabled, pull request events from forks of the selected repository will trigger a pipeline run.
118120
* Constraints: The default value is `false`.
119121
* `enabled` - (Boolean) Flag to check if the trigger is enabled.

0 commit comments

Comments
 (0)