- Add proto schemas in packages/shared-types/events/ (oo.events.v1): envelope.proto, signals.proto, integration.proto - buf.yaml with STANDARD lint + FILE breaking-change rules - .gitea/workflows/buf-check.yaml: lint + breaking check on every PR touching events/ (needs a Gitea Actions runner to execute) - scripts/buf-check.sh: local equivalent of the CI check - NormalizedEvent TS envelope gains eventId, schemaVersion, producer to align with the proto Envelope message - ml/serving/schemas.py: pydantic models mirroring the v1 proto types - nats_consumer.py: validate payloads via pydantic instead of raw .get() A field-rename PR will now fail buf breaking with exit code 100 and show the offending messages. To make a breaking change: keep the old field reserved, add the new one, bump schema_version to v2. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
940 B
YAML
38 lines
940 B
YAML
name: buf-check
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'packages/shared-types/events/**'
|
|
pull_request:
|
|
paths:
|
|
- 'packages/shared-types/events/**'
|
|
|
|
jobs:
|
|
buf:
|
|
name: Lint & breaking-change check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install buf
|
|
run: |
|
|
BUF_VERSION=1.50.0
|
|
curl -sSfL \
|
|
"https://github.com/bufbuild/buf/releases/download/v${BUF_VERSION}/buf-Linux-x86_64" \
|
|
-o /usr/local/bin/buf
|
|
chmod +x /usr/local/bin/buf
|
|
buf --version
|
|
|
|
- name: buf lint
|
|
run: buf lint packages/shared-types/events
|
|
|
|
- name: buf breaking
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
buf breaking packages/shared-types/events \
|
|
--against ".git#branch=${{ github.base_ref }},subdir=packages/shared-types/events"
|