---
title: Post Check (Deprecated)
description: Create a check-run on a pull request. Deprecated in favor of Merge Protections.
---

:::danger
  The `post_check` action is **deprecated** and will be removed on September
  30, 2026. Use [Merge Protections](/merge-protections) instead.

  Mergify will automatically migrate your configuration by removing
  `post_check` rules and opening a migration pull request that converts them
  to equivalent merge protections.
:::

## Migrating to Merge Protections

[Merge Protections](/merge-protections) replace `post_check` by letting you
define `success_conditions` directly, without creating an intermediate
check-run.

### Before (post_check)

```yaml
pull_request_rules:
  - name: Check CI status
    conditions:
      - base=main
    actions:
      post_check:
        success_conditions:
          - check-success=ci/test
        neutral_conditions:
          - check-neutral=ci/lint
        title: "Mergify check: {{ check_rule_name }}"
        summary: |
          {{ check_conditions }}
```

### After (Merge Protections)

```yaml
merge_protections:
  - name: Check CI status
    if:
      - base=main
    success_conditions:
      - check-success=ci/test
      - check-neutral=ci/lint
```

:::note
  The `title` and `summary` options have no equivalent in merge protections
  and will be dropped during the automatic migration.
:::

:::note
  When both `success_conditions` and `neutral_conditions` are defined, they
  are combined with an `or` operator in the migrated merge protection.
:::

---

## Legacy Reference

The `post_check` action allows Mergify to create a check-run on a pull request.
This can be useful in situations where you want to add a custom check to the
status of a pull request based on Mergify's evaluation.

### Parameters

| Key name | Value type | Default | Description |
| --- | --- | --- | --- |
| `neutral_conditions` | List of conditions or null | `null` | List of conditions to match to mark the pull request check as neutral, otherwise, it will be marked as failing. |
| `success_conditions` | List of conditions or null | `null` | List of conditions to match to mark the pull request check as succeeded, otherwise, it will be marked as failing. If unset, the conditions from the rule that triggers this action are used. |
| `summary` | template | `"{{ check_conditions }}"` | The summary of the check. |
| `title` | template | `"'{{ check_rule_name }}'{% if check_status == 'success' %} succeeded{% elif check_status == 'failure' %} failed{% endif %}"` | The title of the check. |

As the `title` and `summary` are
[templates](/configuration/data-types#template), you can benefit from any [pull
request attributes](/configuration/conditions#attributes-list), e.g. `{{author}}`,
and also these additional variables:

- `{{ check_rule_name }}` the name of the rule that triggered this action;

- `{{ check_succeed }}` is `true` if all the conditions match, `false`
  otherwise;

- `{{ check_conditions }}` the list of all conditions with a checkbox marked if
  the condition matches.
