@@ -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
194198func 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
237242func 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 )
0 commit comments