Help us shape the future of Go! Take the 2026 Go Developer Survey

checkmate

command module
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2026 License: MIT Imports: 7 Imported by: 0

README

Checkmate 🕵️

Automated checklist inspector for your pull requests

Features

  • Fails validation until all configured checklists in the pull request description are checked.
  • Automatic checklists triggered on files modified in the pull request.
  • Support for validating select lists i.e. radio button.
  • Job summary workflow report.

Configuration

Pull Request Description Checks

In your PR description or issue template, place <!--Checkmate--> above the checklist block you want validated. A block of checklist items is one without empty lines in-between.

#### :heavy_check_mark: Checklist

<!--Checkmate-->

- [ ] Added or updated documentation
- [x] Tests for new functionality and regression tests for bug fixes

#### This checklist will not be validated

- [ ] This is ignored
- [ ] This is ignored
- [ ] This is ignored


#### Oasis or Blur?
This select list validates that only one item is selected.

<!--Checkmate select=1-->
- [ ] Oasis
- [ ] Blur

Then configure the action in your workflow like

on:
  pull_request:
    types: [edited, opened, reopened]

# cancel old edit events being processed
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
  
name: Checkmate
jobs:
  validate-checklists:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Validate Checklists
      uses: roryq/checkmate@master
Automatic checklists

Similar to the workflow triggers on file paths, you can configure Checkmate to write a checklist comment on a pull request which will be validated along with the pull request description.

To enable the automated checklists configure the with.paths and the with.github_token inputs, and add the synchronize event for pull_request and listen to all issue_comment events.

If you want to use a Selectlist then the first item should be the <!--Checkmate select=1--> comment.

on:
  pull_request:
    types: [edited, opened, reopened, synchronize]
  issue_comment:

# cancel old edit events being processed
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
  
name: Checkmate
jobs:
  validate-checklists:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Validate Checklists
        uses: roryq/checkmate@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          paths: |
            docs/**/*.md:
              - I have got the grammar police to proofread my changes.
            schema/migrations/*.sql:
              - There are no breaking changes in these migrations
              - I have notified X team of the new schema changes
            database/*.go:
              - <!--Checkmate select=2-->
              - Strong Consistency
              - Availability
              - Partition Tolerance

Which will create and update a comment when the changeset files match the configured patterns.

Thanks for your contribution!
Please complete the following tasks related to your changes and tick the checklists when complete.

### Checklist for files matching *docs/\*\*/\*.md*
<!-- Checkmate filepath=docs/**/*.md -->
- [ ] I have got the grammar police to proofread my changes.

### Checklist for files matching *schema/migrations/\*.sql*
<!-- Checkmate filepath=schema/migrations/*.sql -->
- [ ] There are no breaking changes in these migrations
- [ ] I have notified X team of the new schema changes

### Select 2 for files matching *database/\*.go*
<!-- Checkmate select=2 filepath=database/*.go -->
- [ ] Strong Consistency
- [ ] Availability
- [ ] Partition Tolerance

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg
ptr

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL