Skip to content

Commit 8411d95

Browse files
committed
add attribute remove_source_branch_after_merge to projects
Closes #200
1 parent 2e07f6d commit 8411d95

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

gitlab/data_source_gitlab_project.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ func dataSourceGitlabProject() *schema.Resource {
107107
Optional: true,
108108
Computed: true,
109109
},
110+
"remove_source_branch_after_merge": {
111+
Type: schema.TypeBool,
112+
Optional: true,
113+
Computed: true,
114+
},
110115
},
111116
}
112117
}
@@ -141,5 +146,6 @@ func dataSourceGitlabProjectRead(d *schema.ResourceData, meta interface{}) error
141146
d.Set("web_url", found.WebURL)
142147
d.Set("runners_token", found.RunnersToken)
143148
d.Set("archived", found.Archived)
149+
d.Set("remove_source_branch_after_merge", found.RemoveSourceBranchAfterMerge)
144150
return nil
145151
}

gitlab/resource_gitlab_project.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ var resourceGitLabProjectSchema = map[string]*schema.Schema{
189189
Type: schema.TypeBool,
190190
Optional: true,
191191
},
192+
"remove_source_branch_after_merge": {
193+
Type: schema.TypeBool,
194+
Optional: true,
195+
},
192196
}
193197

194198
func resourceGitlabProject() *schema.Resource {
@@ -232,6 +236,7 @@ func resourceGitlabProjectSetToState(d *schema.ResourceData, project *gitlab.Pro
232236
d.Set("shared_with_groups", flattenSharedWithGroupsOptions(project))
233237
d.Set("tags", project.TagList)
234238
d.Set("archived", project.Archived)
239+
d.Set("remove_source_branch_after_merge", project.RemoveSourceBranchAfterMerge)
235240
}
236241

237242
func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error {
@@ -253,6 +258,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
253258
OnlyAllowMergeIfPipelineSucceeds: gitlab.Bool(d.Get("only_allow_merge_if_pipeline_succeeds").(bool)),
254259
OnlyAllowMergeIfAllDiscussionsAreResolved: gitlab.Bool(d.Get("only_allow_merge_if_all_discussions_are_resolved").(bool)),
255260
SharedRunnersEnabled: gitlab.Bool(d.Get("shared_runners_enabled").(bool)),
261+
RemoveSourceBranchAfterMerge: gitlab.Bool(d.Get("remove_source_branch_after_merge").(bool)),
256262
}
257263

258264
// need to manage partial state since project creation may require
@@ -275,6 +281,7 @@ func resourceGitlabProjectCreate(d *schema.ResourceData, meta interface{}) error
275281
"only_allow_merge_if_pipeline_succeeds",
276282
"only_allow_merge_if_all_discussions_are_resolved",
277283
"shared_runners_enabled",
284+
"remove_source_branch_after_merge",
278285
}
279286

280287
if v, ok := d.GetOk("path"); ok {
@@ -473,6 +480,11 @@ func resourceGitlabProjectUpdate(d *schema.ResourceData, meta interface{}) error
473480
updatedProperties = append(updatedProperties, "lfs_enabled")
474481
}
475482

483+
if d.HasChange("remove_source_branch_after_merge") {
484+
options.RemoveSourceBranchAfterMerge = gitlab.Bool(d.Get("remove_source_branch_after_merge").(bool))
485+
updatedProperties = append(updatedProperties, "remove_source_branch_after_merge")
486+
}
487+
476488
if *options != (gitlab.EditProjectOptions{}) {
477489
log.Printf("[DEBUG] update gitlab project %s", d.Id())
478490
_, _, err := client.Projects.EditProject(d.Id(), options)

website/docs/d/project.html.markdown

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,5 @@ The following attributes are exported:
6666
* `runners_token` - Registration token to use during runner setup.
6767

6868
* `archived` - Whether the project is in read-only mode (archived).
69+
70+
* `remove_source_branch_after_merge` - Enable `Delete source branch` option by default for all new merge requests

website/docs/r/project.html.markdown

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ The following additional attributes are exported:
100100
* `shared_with_groups` - List of the groups the project is shared with.
101101
* `group_name` - Group's name.
102102

103+
* `remove_source_branch_after_merge` - Enable `Delete source branch` option by default for all new merge requests.
104+
105+
103106
## Importing projects
104107

105108
You can import a project state using `terraform import <resource> <id>`. The

0 commit comments

Comments
 (0)