diff options
author | lulalala <mark@goodlife.tw> | 2018-03-28 06:20:12 +0300 |
---|---|---|
committer | Mark Chao <mchao@gitlab.com> | 2018-05-17 03:54:47 +0300 |
commit | 7517105303c264484d8677c81268f9f43ecc5593 (patch) | |
tree | d8d51563e2e99154f6b768744c1b079d79a2414f /app/models/project_services | |
parent | bf669717a86e9bbe87ba1f97d4433b79081d2b97 (diff) |
Add cannot_be_merged_recheck merge_status
First, transitions between can_be_merged & cannot_be_merged are removed,
as they are currently blocked in `check_if_can_be_merged`.
`can_be_merge` always returns to `unchecked` first,
before it can transition to `cannot_be_merged` (and vice versa).
We want to avoid repeated notification triggered by repeated transition
between `cannot_be_merged` & `unchecked`.
So we added `cannot_be_merged_recheck` state, similar to `unchecked`,
but as a mean to remember it’s from cannot_be_merged.
See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18042/#note_65945407
Since `unchecked` and `cannot_be_merged_recheck` both mean
“we are in the middle of checking if it is mergeable”,
quite often we need to see if merge_status is in either one of them,
so `check_state?` is added to achieve this.
Diffstat (limited to 'app/models/project_services')
-rw-r--r-- | app/models/project_services/drone_ci_service.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/app/models/project_services/drone_ci_service.rb b/app/models/project_services/drone_ci_service.rb index 71b10fc6bc1..a4bf427ac0b 100644 --- a/app/models/project_services/drone_ci_service.rb +++ b/app/models/project_services/drone_ci_service.rb @@ -115,6 +115,6 @@ class DroneCiService < CiService def merge_request_valid?(data) data[:object_attributes][:state] == 'opened' && - data[:object_attributes][:merge_status] == 'unchecked' + MergeRequest.state_machines[:merge_status].check_state?(data[:object_attributes][:merge_status]) end end |