Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skjnldsv/block-fixup-merge-action
A Github Action to prevent merging pull requests containing autosquash commit messages.
https://github.com/skjnldsv/block-fixup-merge-action
Last synced: 2 months ago
JSON representation
A Github Action to prevent merging pull requests containing autosquash commit messages.
- Host: GitHub
- URL: https://github.com/skjnldsv/block-fixup-merge-action
- Owner: skjnldsv
- License: mit
- Created: 2023-06-01T08:36:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-29T10:40:42.000Z (6 months ago)
- Last Synced: 2024-10-26T12:38:24.193Z (3 months ago)
- Language: JavaScript
- Size: 1.27 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Block Autosquash Commits Action
A Github Action to prevent merging pull requests containing [autosquash](https://git-scm.com/docs/git-rebase#git-rebase---autosquash) commit messages.
## How it works
If any commit message in the pull request starts with `fixup!` or `squash!` the check status will be set to `error`.
>⚠️ GitHub's API only returns the first 250 commits of a PR so if you're working on a really large PR your fixup commits might not be detected.
## Usage
```yaml
on: pull_requestname: Pull Requests
jobs:
message-check:
name: Block Autosquash Commitsruns-on: ubuntu-latest
steps:
- name: Block Autosquash Commits
uses: skjnldsv/block-autosquash-commits-action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
```You'll also need to add a [required status check](https://help.github.com/en/articles/enabling-required-status-checks) rule for your action to block merging if it detects any `fixup!` or `squash!` commits.
### Control Permissions
If your repository is using [control permissions](https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/) you'll need to set `pull-request: read` on either the workflow or the job.
#### Workflow Config
```yaml
on: pull_requestname: Pull Request
permissions:
pull-requests: readjobs:
message-check:
name: Block Autosquash Commitsruns-on: ubuntu-latest
steps:
- name: Block Autosquash Commits
uses: skjnldsv/block-autosquash-commits-action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
```#### Job Config
```yaml
on: pull_requestname: Pull Request
jobs:
message-check:
name: Block Autosquash Commitsruns-on: ubuntu-latest
permissions:
pull-requests: readsteps:
- name: Block Autosquash Commits
uses: skjnldsv/block-autosquash-commits-action@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
```