Skip to content

Commit 8a2b75e

Browse files
authored
Migrate workflow-plugin-template to strict gRPC proto contracts
Adds strict Workflow plugin contract metadata and wfctl strict validation for PR checks.
1 parent 2245b8e commit 8a2b75e

5 files changed

Lines changed: 832 additions & 4 deletions

File tree

.github/workflows/ci.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77
jobs:
88
test:
99
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
1012
steps:
1113
- uses: actions/checkout@v6
1214
- uses: actions/setup-go@v6
@@ -15,3 +17,15 @@ jobs:
1517
- run: go build ./...
1618
- run: go test ./... -v -race -count=1
1719
- run: go vet ./...
20+
21+
wfctl-strict-contracts:
22+
runs-on: ubuntu-latest
23+
permissions:
24+
contents: read
25+
steps:
26+
- uses: actions/checkout@v6
27+
- uses: actions/setup-go@v6
28+
with:
29+
go-version-file: go.mod
30+
- name: Validate strict plugin contracts
31+
run: go run github.com/GoCodeAlone/workflow/cmd/wfctl@v0.20.1 plugin validate --file plugin.json --strict-contracts

go.mod

Lines changed: 187 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,192 @@
11
module github.com/GoCodeAlone/workflow-plugin-TEMPLATE
22

3-
go 1.26
3+
go 1.26.0
4+
5+
require github.com/GoCodeAlone/workflow v0.20.1
46

57
require (
6-
github.com/GoCodeAlone/workflow v0.3.55
8+
cel.dev/expr v0.25.1 // indirect
9+
cloud.google.com/go v0.123.0 // indirect
10+
cloud.google.com/go/auth v0.19.0 // indirect
11+
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
12+
cloud.google.com/go/compute/metadata v0.9.0 // indirect
13+
cloud.google.com/go/iam v1.5.3 // indirect
14+
cloud.google.com/go/monitoring v1.24.3 // indirect
15+
cloud.google.com/go/storage v1.61.3 // indirect
16+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 // indirect
17+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
18+
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.4 // indirect
19+
github.com/BurntSushi/toml v1.6.0 // indirect
20+
github.com/DataDog/datadog-go/v5 v5.8.3 // indirect
21+
github.com/GoCodeAlone/go-plugin v1.7.0 // indirect
22+
github.com/GoCodeAlone/modular v1.13.0 // indirect
23+
github.com/GoCodeAlone/modular/modules/auth v1.15.0 // indirect
24+
github.com/GoCodeAlone/modular/modules/eventbus/v2 v2.8.0 // indirect
25+
github.com/GoCodeAlone/yaegi v0.17.2 // indirect
26+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.32.0 // indirect
27+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0 // indirect
28+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 // indirect
29+
github.com/IBM/sarama v1.47.0 // indirect
30+
github.com/Microsoft/go-winio v0.6.2 // indirect
31+
github.com/aws/aws-sdk-go-v2 v1.41.5 // indirect
32+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect
33+
github.com/aws/aws-sdk-go-v2/config v1.32.12 // indirect
34+
github.com/aws/aws-sdk-go-v2/credentials v1.19.12 // indirect
35+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 // indirect
36+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect
37+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect
38+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect
39+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 // indirect
40+
github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.33.8 // indirect
41+
github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.41.13 // indirect
42+
github.com/aws/aws-sdk-go-v2/service/codebuild v1.68.12 // indirect
43+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.296.0 // indirect
44+
github.com/aws/aws-sdk-go-v2/service/ecs v1.76.0 // indirect
45+
github.com/aws/aws-sdk-go-v2/service/eks v1.81.2 // indirect
46+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
47+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 // indirect
48+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect
49+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 // indirect
50+
github.com/aws/aws-sdk-go-v2/service/kinesis v1.43.4 // indirect
51+
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.5 // indirect
52+
github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2 // indirect
53+
github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect
54+
github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 // indirect
55+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 // indirect
56+
github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 // indirect
57+
github.com/aws/smithy-go v1.24.2 // indirect
58+
github.com/beorn7/perks v1.0.1 // indirect
59+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
60+
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
61+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
62+
github.com/cloudevents/sdk-go/v2 v2.16.2 // indirect
63+
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
64+
github.com/containerd/errdefs v1.0.0 // indirect
65+
github.com/containerd/errdefs/pkg v0.3.0 // indirect
66+
github.com/containerd/log v0.1.0 // indirect
67+
github.com/danieljoos/wincred v1.2.3 // indirect
68+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
69+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
70+
github.com/digitalocean/godo v1.178.0 // indirect
71+
github.com/distribution/reference v0.6.0 // indirect
72+
github.com/docker/docker v28.5.2+incompatible // indirect
73+
github.com/docker/go-connections v0.6.0 // indirect
74+
github.com/docker/go-units v0.5.0 // indirect
75+
github.com/dustin/go-humanize v1.0.1 // indirect
76+
github.com/eapache/go-resiliency v1.7.0 // indirect
77+
github.com/eapache/queue v1.1.0 // indirect
78+
github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect
79+
github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect
80+
github.com/expr-lang/expr v1.17.8 // indirect
81+
github.com/fatih/color v1.19.0 // indirect
82+
github.com/felixge/httpsnoop v1.0.4 // indirect
83+
github.com/fsnotify/fsnotify v1.9.0 // indirect
84+
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
85+
github.com/go-logr/logr v1.4.3 // indirect
86+
github.com/go-logr/stdr v1.2.2 // indirect
87+
github.com/godbus/dbus/v5 v5.2.2 // indirect
88+
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
89+
github.com/golobby/cast v1.3.3 // indirect
90+
github.com/google/go-querystring v1.2.0 // indirect
91+
github.com/google/s2a-go v0.1.9 // indirect
92+
github.com/google/uuid v1.6.0 // indirect
93+
github.com/googleapis/enterprise-certificate-proxy v0.3.14 // indirect
94+
github.com/googleapis/gax-go/v2 v2.19.0 // indirect
95+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
96+
github.com/hashicorp/errwrap v1.1.0 // indirect
97+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
98+
github.com/hashicorp/go-hclog v1.6.3 // indirect
99+
github.com/hashicorp/go-multierror v1.1.1 // indirect
100+
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
101+
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
102+
github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0 // indirect
103+
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
104+
github.com/hashicorp/go-sockaddr v1.0.7 // indirect
105+
github.com/hashicorp/go-uuid v1.0.3 // indirect
106+
github.com/hashicorp/golang-lru v1.0.2 // indirect
107+
github.com/hashicorp/hcl v1.0.1-vault-7 // indirect
108+
github.com/hashicorp/vault/api v1.23.0 // indirect
109+
github.com/hashicorp/yamux v0.1.2 // indirect
110+
github.com/itchyny/gojq v0.12.18 // indirect
111+
github.com/itchyny/timefmt-go v0.1.7 // indirect
112+
github.com/jackc/pgpassfile v1.0.0 // indirect
113+
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
114+
github.com/jackc/pgx/v5 v5.9.1 // indirect
115+
github.com/jackc/puddle/v2 v2.2.2 // indirect
116+
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
117+
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
118+
github.com/jcmturner/gofork v1.7.6 // indirect
119+
github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect
120+
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
121+
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
122+
github.com/klauspost/compress v1.18.5 // indirect
123+
github.com/mattn/go-colorable v0.1.14 // indirect
124+
github.com/mattn/go-isatty v0.0.20 // indirect
125+
github.com/mitchellh/go-homedir v1.1.0 // indirect
126+
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
127+
github.com/mitchellh/mapstructure v1.5.0 // indirect
128+
github.com/moby/docker-image-spec v1.3.1 // indirect
129+
github.com/moby/sys/sequential v0.6.0 // indirect
130+
github.com/moby/term v0.5.2 // indirect
131+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
132+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
133+
github.com/morikuni/aec v1.1.0 // indirect
134+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
135+
github.com/nats-io/nats.go v1.50.0 // indirect
136+
github.com/nats-io/nkeys v0.4.15 // indirect
137+
github.com/nats-io/nuid v1.0.1 // indirect
138+
github.com/ncruces/go-strftime v1.0.0 // indirect
139+
github.com/oklog/run v1.2.0 // indirect
140+
github.com/opencontainers/go-digest v1.0.0 // indirect
141+
github.com/opencontainers/image-spec v1.1.1 // indirect
142+
github.com/pierrec/lz4/v4 v4.1.26 // indirect
143+
github.com/pkg/errors v0.9.1 // indirect
144+
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
145+
github.com/prometheus/client_golang v1.23.2 // indirect
146+
github.com/prometheus/client_model v0.6.2 // indirect
147+
github.com/prometheus/common v0.67.5 // indirect
148+
github.com/prometheus/procfs v0.20.1 // indirect
149+
github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect
150+
github.com/redis/go-redis/v9 v9.18.0 // indirect
151+
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
152+
github.com/ryanuber/go-glob v1.0.0 // indirect
153+
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
154+
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
155+
github.com/xdg-go/scram v1.2.0 // indirect
156+
github.com/xdg-go/stringprep v1.0.4 // indirect
157+
github.com/zalando/go-keyring v0.2.8 // indirect
158+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
159+
go.opentelemetry.io/contrib/detectors/gcp v1.43.0 // indirect
160+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect
161+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect
162+
go.opentelemetry.io/otel v1.43.0 // indirect
163+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
164+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect
165+
go.opentelemetry.io/otel/metric v1.43.0 // indirect
166+
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
167+
go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect
168+
go.opentelemetry.io/otel/trace v1.43.0 // indirect
169+
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
170+
go.uber.org/atomic v1.11.0 // indirect
171+
go.uber.org/multierr v1.11.0 // indirect
172+
go.uber.org/zap v1.27.1 // indirect
173+
go.yaml.in/yaml/v2 v2.4.4 // indirect
174+
golang.org/x/crypto v0.50.0 // indirect
175+
golang.org/x/net v0.53.0 // indirect
176+
golang.org/x/oauth2 v0.36.0 // indirect
177+
golang.org/x/sync v0.20.0 // indirect
178+
golang.org/x/sys v0.43.0 // indirect
179+
golang.org/x/text v0.36.0 // indirect
180+
golang.org/x/time v0.15.0 // indirect
181+
google.golang.org/api v0.272.0 // indirect
182+
google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect
183+
google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d // indirect
184+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect
185+
google.golang.org/grpc v1.80.0 // indirect
186+
google.golang.org/protobuf v1.36.11 // indirect
187+
gopkg.in/yaml.v3 v3.0.1 // indirect
188+
modernc.org/libc v1.70.0 // indirect
189+
modernc.org/mathutil v1.7.1 // indirect
190+
modernc.org/memory v1.11.0 // indirect
191+
modernc.org/sqlite v1.47.0 // indirect
7192
)

0 commit comments

Comments
 (0)