Official GitHub Action for EasyP breaking change detection from its authors.
The action runs EasyP breaking change detection on protobuf files against a specified Git reference.
Add a .github/workflows/easyp-breaking.yml file with the following contents:
Simple Example
name: easyp-breaking
on:
pull_request:
permissions:
contents: read
jobs:
breaking:
name: breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: easyp-breaking
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0
against: origin/mainAgainst Specific Branch
name: easyp-breaking
on:
pull_request:
permissions:
contents: read
jobs:
breaking:
name: breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: easyp-breaking
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0
against: origin/developAgainst Tag
name: easyp-breaking
on:
pull_request:
permissions:
contents: read
jobs:
breaking:
name: breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: easyp-breaking
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0
against: v1.0.0With Config File
name: easyp-breaking
on:
pull_request:
permissions:
contents: read
jobs:
breaking:
name: breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: easyp-breaking
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0
against: origin/main
config: easyp.yamlCheck Specific Directory
name: easyp-breaking
on:
pull_request:
permissions:
contents: read
jobs:
breaking:
name: breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: easyp-breaking
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0
against: origin/main
directory: protoNote: The
fetch-depth: 0option is required foractions/checkoutto fetch the full Git history, which is necessary for comparing against other branches or tags.
(optional)
The version of EasyP to use (docker image tag).
The default value is latest.
uses: easyp-tech/actions/breaking@v1
with:
version: v0.12.0(optional)
Git reference to compare against (branch, tag, or commit SHA).
The default value is origin/main.
uses: easyp-tech/actions/breaking@v1
with:
against: origin/mainCommon values:
origin/main— compare against main branchorigin/develop— compare against develop branchv1.0.0— compare against a tagabc1234— compare against a specific commit
(optional)
Directory containing protobuf files to check.
The default value is . (repository root).
uses: easyp-tech/actions/breaking@v1
with:
directory: proto(optional)
Path to the EasyP configuration file.
uses: easyp-tech/actions/breaking@v1
with:
config: easyp.yamlThe action parses EasyP JSON output and creates GitHub annotations directly on the lines with breaking changes.
Annotations will appear:
- In the "Files changed" tab of pull requests
- In the Actions workflow summary
Example annotation:
::error file=api/llm/v1/llm.proto,line=46,col=1,title=BREAKING_CHECK::Field "4" with name "type" on message "Dialogue" changed type from "DialogueType" to "Agent".
Breaking change detection helps you ensure backward compatibility of your protobuf APIs. It detects changes like:
- Removing fields or messages
- Changing field numbers
- Changing field types
- Removing enum values
- Renaming packages
- And other changes that could break existing clients
The action uses the official EasyP Docker image (ghcr.io/easyp-tech/easyp), which ensures:
- Fast startup (no compilation needed)
- Consistent results across runs
- Easy version management
MIT