Normally Digger workflow is not supposed to be triggered manually. It is triggered ether by the orchestrator backend, or directly by an event from GitHub (in the “backendless” mode with no-backend: true option set). The Destroy operation is a special case, by design: the only way to run terraform destroy in Digger is by triggering a workflow manually. This way unwanted destroys are guaranteed to never happen.

You can create a dedicated workflow accepting project name and action:

on:
  workflow_dispatch:
    inputs:
      project:
        description: 'Digger project to perform destroy on'
        required: true
jobs:
  destroy:
    runs-on: ubuntu-latest
    steps:
    - name: digger destroy
      uses: diggerhq/digger@develop
      with:
        mode: manual
        command: "digger destroy"
        project: "${{ inputs.project }}"
        setup-aws: true
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-2
        # digger-token: ${{ secrets.DIGGER_TOKEN }}
        # digger-organisation: digger
        # digger-hostname: https://cloud.digger.dev/
      env:
        GITHUB_CONTEXT: ${{ toJson(github) }}
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Note the arguments “mode: manual” and “command: digger destroy” above are different from the default workflow