Search code examples
githubgithub-actions

How to trigger Github workflows on 'link Issue to PR'?


I would like a workflow to trigger on an Issue once it is linked to a PR but it doesn't seem like this option is provided by github. Does anyone have a workaround for this?


Solution

  • I came across this question yesterday and decided to refactor a solution that has been implemented in one of my projects, and came up with a GitHub Action for this: https://github.com/marketplace/actions/validate-issues-over-pull-requests

    You can create a new workflow with the following content:

    name: PR has a valid Issue?
    
    on:
      pull_request_target:
        types: [ edited, synchronize, opened, reopened ]
    
    jobs:
      checker:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          
          - name: Issue Validator
            uses: HarshCasper/[email protected]
            id: validator
            with:
              prbody: ${{ github.event.pull_request.body }}
              prurl: ${{ github.event.pull_request.url }}
    

    Based on the steps.validator.outputs.valid value (which can be either 1 when an issue is linked or 0 when an issue will not be linked), you can trigger a workflow of your choice.

    Right now, it will work if the PR author has explicitly mentioned Fixes #XYZ or Resolves #XYZ in the PR body. Explicitly linking an issue to a Pull Request is not supported as of now.

    If you wish some action to be made on an Issue, like labeling, you can use the GitHub's CLI gh utility for this purpose. If there is any specific feature you would like to have, I would be happy to work on it!