From 1b3d410fa925a35f2919eeab26b125ab36b51994 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Fri, 13 May 2022 11:42:55 +0530 Subject: [PATCH] DOCS: Add README and Code of Conduct --- CODE_OF_CONDUCT.md | 73 ++++++++++++++++++++++++++++++++ README.md | 101 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..21e5ef9 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at {{ email }}. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/README.md b/README.md index 1762df5..6b46fc5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,99 @@ -# validate-issues-over-pull-requests -GitHub Action to validate submitted Pull Requests to check if they contain a valid Issue 👀 +# Validate Issues over Pull Requests + +[![Action Template](https://img.shields.io/badge/Action%20Template-Python%20Container%20Action-blue.svg?colorA=24292e&colorB=0366d6&style=flat&longCache=true&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAM6wAADOsB5dZE0gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAERSURBVCiRhZG/SsMxFEZPfsVJ61jbxaF0cRQRcRJ9hlYn30IHN/+9iquDCOIsblIrOjqKgy5aKoJQj4O3EEtbPwhJbr6Te28CmdSKeqzeqr0YbfVIrTBKakvtOl5dtTkK+v4HfA9PEyBFCY9AGVgCBLaBp1jPAyfAJ/AAdIEG0dNAiyP7+K1qIfMdonZic6+WJoBJvQlvuwDqcXadUuqPA1NKAlexbRTAIMvMOCjTbMwl1LtI/6KWJ5Q6rT6Ht1MA58AX8Apcqqt5r2qhrgAXQC3CZ6i1+KMd9TRu3MvA3aH/fFPnBodb6oe6HM8+lYHrGdRXW8M9bMZtPXUji69lmf5Cmamq7quNLFZXD9Rq7v0Bpc1o/tp0fisAAAAASUVORK5CYII=)](https://github.com/HarshCasper/validate-issues-over-pull-requests) +[![Lint](https://github.com/HarshCasper/validate-issues-over-pull-requests/actions/workflows/ci.yml/badge.svg)](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 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/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-latest + + steps: + - 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)