https://github.com/harshcasper/validate-issues-over-pull-requests
GitHub Action to validate submitted Pull Requests to check if they contain a valid Issue 👀
https://github.com/harshcasper/validate-issues-over-pull-requests
community-management github-actions issue-management open-source-management pull-request-management
Last synced: 7 months ago
JSON representation
GitHub Action to validate submitted Pull Requests to check if they contain a valid Issue 👀
- Host: GitHub
- URL: https://github.com/harshcasper/validate-issues-over-pull-requests
- Owner: HarshCasper
- License: mit
- Created: 2022-05-12T16:06:52.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-12T06:29:05.000Z (over 2 years ago)
- Last Synced: 2025-03-18T16:52:22.123Z (7 months ago)
- Topics: community-management, github-actions, issue-management, open-source-management, pull-request-management
- Language: Python
- Homepage: https://github.com/marketplace/actions/validate-issues-over-pull-requests
- Size: 10.7 KB
- Stars: 12
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Validate Issues over Pull Requests
[](https://github.com/HarshCasper/validate-issues-over-pull-requests)
[](https://github.com/HarshCasper/validate-issues-over-pull-requests/actions/workflows/ci.yml)A GitHub Action to validate submitted Pull Requests to check if they have a valid Issue present in the body. The contributors are usually expected to link Issues to Pull Requests using key phrases like `Fixes #XYZ` or `Resolves #XYZ`. This Action validates if an Issue is present over the Pull Request body and lets the maintainer take further prompt over specific Pull Requests!
## Usage
To get started, you can use this minimal example:
```yml
name: Check if a PR has a valid Issueon:
pull_request_target:
types: [ edited, synchronize, opened, reopened ]jobs:
checker:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v2
- name: Issue Validator
uses: HarshCasper/validate-issues-over-pull-requests@v0.1.1
id: validator
with:
prbody: ${{ github.event.pull_request.body }}
prurl: ${{ github.event.pull_request.url }}
```### Inputs
|Input|Description |Example
|--|--|--|
|prbody |The Pull Request body to be analyzed | `${{ github.event.pull_request.body }}`
|prurl |The Pull Request URL to be analyzed | `${{ github.event.pull_request.body }}`### Output
|Output|Description |
|--|--|
|valid |Boolean that denotes if a Pull Request body has a valid Issue (`1` if its present and `0` if its not) |### Example Workflow
As a maintainer, if you wish to take an opinionated way of tagging/labeling Pull Requests which contain (or may not contain) a valid Issue, here is an example:
```yml
name: PR has a valid Issue?on:
pull_request_target:
types: [ edited, synchronize, opened, reopened ]jobs:
checker:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v2
- name: Issue Validator
uses: HarshCasper/validate-issues-over-pull-requests@v0.1.1
id: validator
with:
prbody: ${{ github.event.pull_request.body }}
prurl: ${{ github.event.pull_request.url }}
- name: PR has a valid Issue
if: ${{ steps.validator.outputs.valid == 1 }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRNUM: ${{ github.event.pull_request.number }}
run: |
gh pr edit $PRNUM --add-label "PR:Ready-to-Review"
gh pr edit $PRNUM --remove-label "PR:No-Issue"
- name: PR has no valid Issue
if: ${{ steps.validator.outputs.valid == 0 }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRNUM: ${{ github.event.pull_request.number }}
run: |
gh pr comment $PRNUM --body "PR is not linked to any issue, please make the corresponding changes in the body."
gh pr edit $PRNUM --add-label "PR:No-Issue"
```
However you can mould the above logic and use the [GitHub's CLI](https://cli.github.com/) `gh` to develop your own preferred workflow.## Acknowledgments
The Action is based on the awesome work done by [XZANATOL](https://github.com/XZANATOL) for [Rotten Scripts](https://github.com/HarshCasper/Rotten-Scripts). We have been using this Action for some time now to mark Pull Requests that are not linked to any Issue. Based on a [Stack Overflow question](https://stackoverflow.com/questions/72009749/how-to-trigger-github-workflows-on-link-issue-to-pr), I decided to publish this Action for a more general use case and further maintain it.
## License
[MIT License](https://github.com/HarshCasper/validate-issues-over-pull-requests/blob/main/LICENSE)