Skip to content

Pause your GitHub Actions workflow and request manual approval from set approvers before continuing

License

Notifications You must be signed in to change notification settings

mhanrattaVA529/manual-approval

 
 

Repository files navigation

Manual Workflow Approval

ci

Pause a GitHub Actions workflow and require manual approval from one or more approvers before continuing.

This is a very common feature for a deployment or release pipeline, and while this functionality is available from GitHub, it requires the use of environments and if you want to use this for private repositories then you need GitHub Enterprise. This action provides manual approval without the use of environments, and is freely available to use on private repositories.

Note: This approval duration is subject to the broader 72 hours timeout for a workflow. So keep that in mind when figuring out how quickly an approver must respond.

The way this action works is the following:

  1. Workflow comes to the manual-approval action.
  2. manual-approval will create an issue in the containing repository and assign it to the approvers.
  3. If and once all approvers respond with an approved keyword, the workflow will continue.
  4. If any of the approvers responds with a denied keyword, then the workflow will exit with a failed status.
  • Approval keywords - "approve", "approved", "lgtm", "yes"
  • Denied keywords - "deny", "denied", "no"

These are case insensitive with optional punctuation either a period or an exclamation mark.

In all cases, manual-approval will close the initial GitHub issue.

Usage

steps:
  - uses: macnev2013/manual-approval@latest
    with:
      secret: ${{ github.TOKEN }}
      approvers: user1,user2
      minimum-approvals: 1
      approval-wait: 600
      issue-title: 'Manual Approval'
      issue-body: |
        "Issue Body"
  • approvers is a comma-delimited list of all required approvers.
  • minimum-approvals is an integer that sets the minimum number of approvals required to progress the workflow. Defaults to ALL approvers.
  • approval-wait is an integer that sets time to wait for the approval before failing the build

About

Pause your GitHub Actions workflow and request manual approval from set approvers before continuing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.8%
  • Makefile 2.5%
  • Dockerfile 1.7%