Add support for branches resource type
What does this MR do and why?
This is an implementation proposal for #215
The use cases in mind are :
- Remove stale branches
- Removing branches matching a particular pattern
- Remove branches that has been merged
It add support for a new resource_type : branches.
It add support or a new action : delete , that can also be used with the existing types.
It add new filters :
BranchDateFilter : filters branches using last commit committed_date or authored_date attribute.
BranchProtectedFilter : filters branches using the protected attribute. If not specified, protected branches are filtered out by default as deleting protected branches requires extra actions.
I may add filters to filters branches that are merged later.
The summary, comment_on_summary and issue actions can be used with branches. comment based actions cannot, so I added a extra check in the comment action.
I will update the README soon, in the mean time here is an example policy :
I updated the example policy in the README, but here is a more complete one you can try :
resource_rules:
branches:
rules:
- name: Test branch policy
conditions:
date:
attribute: committed_date
condition: older_than
interval_type: months
interval: 30
name: ^dev
protected: false
actions:
delete: true
issue:
title: |
The branch {{name}} was deleted
description: |
The branch {{name}} was deleted
summarize:
destination: julesaaelio/gitlab-triage
title: |
Deleted branches
item: |
- [ ] [{{name}}]({{web_url}})
redact_confidential_resources: false
summary: |
The following branches were deleted:
{{items}}