This GitHub Action searches for specified regular expression pattern in the changes of a pull request. If matches are found, it can optionally mark the pull request for changes and add inline comments. If no matches are found, a comment is added to the pull request.
Some use cases are for detecting PII changes on the code. For example, you can
monitor if the words email
, phone
, street
, password
, etc. are part of
the changes.
The match uses regular expression, so you can also look for variables such as
\w+@\w+.\w+
to look for an actual email address.
Required GitHub token for authentication. Typically, this is the GitHub Actions token.
Required A regular expression pattern to search for in the pull request diff.
The scope of the diff to search. Can be added
, removed
, or both
.
Default is both
.
Boolean indicating whether the pull request should be marked as "request
changes" if regular expression matches are found. Default is false
.
Custom message for a regular expression match. This message is used for inline
comments on the pull request. Default is Regex match found.
.
Custom message to comment on the pull request when no regular expression
matches are found. Default is No regex matches found in the diff.
Custom message for marking the pull request as changes requested. Used only if
mark_changes_requested
is true
. Default is
Changes are requested due to regex match.
To use this action, create a workflow file (e.g.,
.github/workflows/regex-match.yml
) in your repository:
name: Regex Match
on: [pull_request]
jobs:
regex-match:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Regex Match Action
uses: zumba/regex-match-commenter-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
regex_pattern: 'email|phone'
diff_scope: 'both'
mark_changes_requested: false
match_found_message: 'Attention needed.'
no_match_found_message: 'No issues detected in the diff.'
changes_requested_message: 'Please address the commented issues.'
Contributions to this action are welcome! Please follow the standard GitHub pull request workflow to submit your changes.
After you've cloned the repository to your local machine or codespace, you'll need to perform some initial setup steps before you can develop your action.
-
🛠️ Install the dependencies
npm install
-
🏗️ Package the TypeScript for distribution
npm run bundle
-
✅ Run the tests
$ npm test PASS ./index.test.js
This project includes a helper script, script/release
designed to streamline the process of tagging and pushing new releases for
GitHub Actions.
GitHub Actions allows users to select a specific version of the action to use, based on release tags. This script simplifies this process by performing the following steps:
- Retrieving the latest release tag: The script starts by fetching the most recent release tag by looking at the local data available in your repository.
- Prompting for a new release tag: The user is then prompted to enter a new release tag. To assist with this, the script displays the latest release tag and provides a regular expression to validate the format of the new tag.
- Tagging the new release: Once a valid new tag is entered, the script tags the new release.
- Pushing the new tag to the remote: Finally, the script pushes the new tag to the remote repository. From here, you will need to create a new release in GitHub and users can easily reference the new tag in their workflows.