## @file
# Mergify YML file that automatically merges a GitHub pull request against
# edk2-ci if all of the GitHub branch protections have passed.  It also
# contains rules to:
# * auto close branches that are not from an EDK II Maintainer
# * post a comment on pull requests that have merge conflicts.
# * post a comment on pull requests that have PatchCheck.py errors.
#
# Configuration Notes:
# * Update the 'base=edk2-ci' statements with the name of the branch to merge
#   pull requests.
#
# * Update the 'status-failure' statement with the name of the name of the Azure
#   Pipelines Build that performs the EDK II Maintainer check.
#
# * This file must be checked into the 'default' branch of a repo.  Copies
#   of this file on other branches of a repo are ignored by Mergify.
#
# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# https://github.com/apps/mergify
# https://doc.mergify.io/
#
##

pull_request_rules:

  - name: Automatically merge a PR when all required checks pass and 'push' label is present
    conditions:
      - base~=(^master|^stable/)
      - label=push
      - author=@tianocore/edk-ii-maintainers
      - status-success=tianocore.PatchCheck
      - status-success=Ubuntu GCC5 PR
      - status-success=Windows VS2019 PR
    actions:
      merge:
        strict: true
        method: rebase

  - name: Automatically close a PR when all required checks pass and 'push' label is not present
    conditions:
      - base~=(^master|^stable/)
      - -label=push
      - -closed
      - status-success=tianocore.PatchCheck
      - status-success=Ubuntu GCC5 PR
      - status-success=Windows VS2019 PR
      - status-success=Ubuntu GCC5 PR (FINISHED)
      - status-success=Windows VS2019 PR (FINISHED)
    actions:
      close:
        message: All checks passed. Auto close personal build.

  - name: Post a comment on a PR that can not be merged due to a merge conflict
    conditions:
      - base~=(^master|^stable/)
      - conflict
    actions:
      comment:
        message: PR can not be merged due to conflict.  Please rebase and resubmit

  - name: Automatically close a PR that fails the EDK II Maintainers membership check and 'push' label is present
    conditions:
      - base~=(^master|^stable/)
      - label=push
      - -author=@tianocore/edk-ii-maintainers
    actions:
      close:
        message: PR submitter is not a member of the Tianocore EDK II Maintainers team

  - name: Post a comment on a PR if PatchCheck fails
    conditions:
      - base~=(^master|^stable/)
      - status-failure=tianocore.PatchCheck
    actions:
      comment:
        message: PR can not be merged due to a PatchCheck failure.  Please resolve and resubmit

  - name: Post a comment on a PR if Ubuntu GCC5 fails
    conditions:
      - base~=(^master|^stable/)
      - status-failure=Ubuntu GCC5 PR
      - status-success=Ubuntu GCC5 PR (FAILED)
    actions:
      comment:
        message: PR can not be merged due to an Ubuntu GCC5 failure.  Please resolve and resubmit

  - name: Post a comment on a PR if Windows VS2019 fails
    conditions:
      - base~=(^master|^stable/)
      - status-failure=Windows VS2019 PR
      - status-success=Windows VS2019 PR (FAILED)
    actions:
      comment:
        message: PR can not be merged due to a Windows VS2019 failure.  Please resolve and resubmit
