diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70a28a7..2d89a11 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,44 +10,17 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@v6 - - uses: actions/setup-go@v6 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: go-version-file: go.mod + - name: Configure git for private modules + run: git config --global url."https://${{ secrets.RELEASES_TOKEN }}@github.com/".insteadOf "https://github.com/" - run: go build ./... - - run: go test ./... -v -race -count=1 env: GOPRIVATE: github.com/GoCodeAlone/* GONOSUMCHECK: github.com/GoCodeAlone/* - - strict-contracts: - name: Validate strict plugin contracts - runs-on: ubuntu-latest - permissions: - contents: read - steps: - - uses: actions/checkout@v6 - - name: Verify plugin.json exists - run: | - test -f plugin.json || { echo "ERROR: plugin.json is missing — every release must include a strict contract manifest"; exit 1; } - - uses: actions/setup-go@v6 - with: - go-version-file: go.mod - - name: Run strict contract tests - run: | - go test ./internal/... -run "TestPluginStepSchemasJSON|TestPluginManifestEngineValidation|TestModuleSchemas" -v -count=1 - env: - GOPRIVATE: github.com/GoCodeAlone/* - GONOSUMCHECK: github.com/GoCodeAlone/* - - name: Validate plugin.json with wfctl - run: | - # wfctl validates registry-format manifests; strict contract schema coverage is enforced - # by the Go tests above. This step runs informational validation and logs the result. - set +e - go run github.com/GoCodeAlone/workflow/cmd/wfctl@v0.3.56 plugin validate --file plugin.json 2>&1 - wfctl_exit=$? - set -e - echo "wfctl validation exit code: ${wfctl_exit}" + - run: go test ./... -v -race -count=1 env: GOPRIVATE: github.com/GoCodeAlone/* GONOSUMCHECK: github.com/GoCodeAlone/* diff --git a/.github/workflows/wfctl-validate.yml b/.github/workflows/wfctl-validate.yml new file mode 100644 index 0000000..976ca31 --- /dev/null +++ b/.github/workflows/wfctl-validate.yml @@ -0,0 +1,34 @@ +# .github/workflows/wfctl-validate.yml +name: wfctl strict contracts + +on: + pull_request: + push: + branches: [main, master] + +jobs: + wfctl-strict-contracts: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + + - name: Check plugin.json and plugin.contracts.json exist + run: | + if [ ! -f plugin.json ]; then + echo "::error::plugin.json is missing — add a plugin manifest to enable strict contract validation" + exit 1 + fi + if [ ! -f plugin.contracts.json ]; then + echo "::error::plugin.contracts.json is missing — add a contracts file to pass strict contract validation" + exit 1 + fi + + - uses: GoCodeAlone/setup-wfctl@bcd880980f5bbe8d192d0c20ff6279d25331f956 + with: + version: latest + token: ${{ secrets.RELEASES_TOKEN }} + + - name: Validate strict plugin contracts + run: wfctl plugin validate --file plugin.json --strict-contracts diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 1c3c528..6b2ff5f 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -45,6 +45,8 @@ archives: name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}" files: - plugin.json + - plugin.contracts.json + - LICENSE checksum: name_template: "checksums.txt" diff --git a/Makefile b/Makefile index 298162c..399857e 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,15 @@ -.PHONY: build test install clean +.PHONY: build test install clean proto-gen + +# Regenerate Go bindings from proto/github/v1/github.proto. +# Requires: protoc + protoc-gen-go +# brew install protobuf +# go install google.golang.org/protobuf/cmd/protoc-gen-go@latest +proto-gen: + protoc \ + --proto_path=proto/github/v1 \ + --go_out=gen \ + --go_opt=paths=source_relative \ + proto/github/v1/github.proto BINARY_NAME = workflow-plugin-github PROVIDER_BINARY_NAME = github-runner-provider diff --git a/gen/github.pb.go b/gen/github.pb.go new file mode 100644 index 0000000..68875c4 --- /dev/null +++ b/gen/github.pb.go @@ -0,0 +1,4271 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.34.1 +// source: github.proto + +package githubv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// WebhookModuleConfig is the typed config for the git.webhook module type. +// Registers an HTTP handler that validates GitHub webhook signatures and +// publishes normalized GitEvent messages to a host EventBus topic. +type WebhookModuleConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // provider identifies the git provider. Default: "github". + Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` + // secret is the HMAC-SHA256 shared secret used to validate webhook payloads. + Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` + // events is the list of GitHub event types to forward (empty = all events). + Events []string `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + // topic is the EventBus topic to publish normalized events to. Default: "git.events". + Topic string `protobuf:"bytes,4,opt,name=topic,proto3" json:"topic,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WebhookModuleConfig) Reset() { + *x = WebhookModuleConfig{} + mi := &file_github_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WebhookModuleConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookModuleConfig) ProtoMessage() {} + +func (x *WebhookModuleConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebhookModuleConfig.ProtoReflect.Descriptor instead. +func (*WebhookModuleConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{0} +} + +func (x *WebhookModuleConfig) GetProvider() string { + if x != nil { + return x.Provider + } + return "" +} + +func (x *WebhookModuleConfig) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +func (x *WebhookModuleConfig) GetEvents() []string { + if x != nil { + return x.Events + } + return nil +} + +func (x *WebhookModuleConfig) GetTopic() string { + if x != nil { + return x.Topic + } + return "" +} + +// GitHubAppModuleConfig is the typed config for the github.app module type. +// Manages GitHub App authentication; generates installation access tokens from +// an App private key and installation ID. +type GitHubAppModuleConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // app_id is the numeric GitHub App ID. + AppId int64 `protobuf:"varint,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + // installation_id is the installation ID for the target org or user account. + InstallationId int64 `protobuf:"varint,2,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"` + // private_key is the PEM-encoded RSA private key for the GitHub App. + PrivateKey string `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GitHubAppModuleConfig) Reset() { + *x = GitHubAppModuleConfig{} + mi := &file_github_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GitHubAppModuleConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GitHubAppModuleConfig) ProtoMessage() {} + +func (x *GitHubAppModuleConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GitHubAppModuleConfig.ProtoReflect.Descriptor instead. +func (*GitHubAppModuleConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{1} +} + +func (x *GitHubAppModuleConfig) GetAppId() int64 { + if x != nil { + return x.AppId + } + return 0 +} + +func (x *GitHubAppModuleConfig) GetInstallationId() int64 { + if x != nil { + return x.InstallationId + } + return 0 +} + +func (x *GitHubAppModuleConfig) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +// RunnerProviderModuleConfig is the typed config for the github.runner_provider module type. +// Exposes an HTTP API for provisioning ephemeral GitHub Actions self-hosted runner tokens. +type RunnerProviderModuleConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // token is the GitHub personal access token with actions:write scope. + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // provider_token is the shared secret that callers must present to the provider API. + ProviderToken string `protobuf:"bytes,2,opt,name=provider_token,json=providerToken,proto3" json:"provider_token,omitempty"` + // api_base_url is the GitHub API base URL. Default: "https://api.github.com". + ApiBaseUrl string `protobuf:"bytes,3,opt,name=api_base_url,json=apiBaseUrl,proto3" json:"api_base_url,omitempty"` + // repositories is the allowlist of "owner/repo" strings the provider will serve tokens for. + Repositories []string `protobuf:"bytes,4,rep,name=repositories,proto3" json:"repositories,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RunnerProviderModuleConfig) Reset() { + *x = RunnerProviderModuleConfig{} + mi := &file_github_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunnerProviderModuleConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunnerProviderModuleConfig) ProtoMessage() {} + +func (x *RunnerProviderModuleConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunnerProviderModuleConfig.ProtoReflect.Descriptor instead. +func (*RunnerProviderModuleConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{2} +} + +func (x *RunnerProviderModuleConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *RunnerProviderModuleConfig) GetProviderToken() string { + if x != nil { + return x.ProviderToken + } + return "" +} + +func (x *RunnerProviderModuleConfig) GetApiBaseUrl() string { + if x != nil { + return x.ApiBaseUrl + } + return "" +} + +func (x *RunnerProviderModuleConfig) GetRepositories() []string { + if x != nil { + return x.Repositories + } + return nil +} + +// ActionTriggerConfig is the typed config for step.gh_action_trigger. +type ActionTriggerConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Workflow string `protobuf:"bytes,3,opt,name=workflow,proto3" json:"workflow,omitempty"` + Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` + Inputs *structpb.Struct `protobuf:"bytes,5,opt,name=inputs,proto3" json:"inputs,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionTriggerConfig) Reset() { + *x = ActionTriggerConfig{} + mi := &file_github_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionTriggerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionTriggerConfig) ProtoMessage() {} + +func (x *ActionTriggerConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionTriggerConfig.ProtoReflect.Descriptor instead. +func (*ActionTriggerConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{3} +} + +func (x *ActionTriggerConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ActionTriggerConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *ActionTriggerConfig) GetWorkflow() string { + if x != nil { + return x.Workflow + } + return "" +} + +func (x *ActionTriggerConfig) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *ActionTriggerConfig) GetInputs() *structpb.Struct { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *ActionTriggerConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// ActionTriggerInput carries runtime inputs for step.gh_action_trigger. +type ActionTriggerInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionTriggerInput) Reset() { + *x = ActionTriggerInput{} + mi := &file_github_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionTriggerInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionTriggerInput) ProtoMessage() {} + +func (x *ActionTriggerInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionTriggerInput.ProtoReflect.Descriptor instead. +func (*ActionTriggerInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{4} +} + +func (x *ActionTriggerInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// ActionTriggerOutput holds the result of step.gh_action_trigger. +type ActionTriggerOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Triggered bool `protobuf:"varint,1,opt,name=triggered,proto3" json:"triggered,omitempty"` + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,3,opt,name=repo,proto3" json:"repo,omitempty"` + Workflow string `protobuf:"bytes,4,opt,name=workflow,proto3" json:"workflow,omitempty"` + Ref string `protobuf:"bytes,5,opt,name=ref,proto3" json:"ref,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionTriggerOutput) Reset() { + *x = ActionTriggerOutput{} + mi := &file_github_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionTriggerOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionTriggerOutput) ProtoMessage() {} + +func (x *ActionTriggerOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionTriggerOutput.ProtoReflect.Descriptor instead. +func (*ActionTriggerOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{5} +} + +func (x *ActionTriggerOutput) GetTriggered() bool { + if x != nil { + return x.Triggered + } + return false +} + +func (x *ActionTriggerOutput) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ActionTriggerOutput) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *ActionTriggerOutput) GetWorkflow() string { + if x != nil { + return x.Workflow + } + return "" +} + +func (x *ActionTriggerOutput) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +// ActionStatusConfig is the typed config for step.gh_action_status. +type ActionStatusConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + RunId string `protobuf:"bytes,3,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` + Wait bool `protobuf:"varint,5,opt,name=wait,proto3" json:"wait,omitempty"` + PollInterval string `protobuf:"bytes,6,opt,name=poll_interval,json=pollInterval,proto3" json:"poll_interval,omitempty"` + Timeout string `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionStatusConfig) Reset() { + *x = ActionStatusConfig{} + mi := &file_github_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionStatusConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionStatusConfig) ProtoMessage() {} + +func (x *ActionStatusConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionStatusConfig.ProtoReflect.Descriptor instead. +func (*ActionStatusConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{6} +} + +func (x *ActionStatusConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ActionStatusConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *ActionStatusConfig) GetRunId() string { + if x != nil { + return x.RunId + } + return "" +} + +func (x *ActionStatusConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *ActionStatusConfig) GetWait() bool { + if x != nil { + return x.Wait + } + return false +} + +func (x *ActionStatusConfig) GetPollInterval() string { + if x != nil { + return x.PollInterval + } + return "" +} + +func (x *ActionStatusConfig) GetTimeout() string { + if x != nil { + return x.Timeout + } + return "" +} + +// ActionStatusInput carries runtime inputs for step.gh_action_status. +type ActionStatusInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionStatusInput) Reset() { + *x = ActionStatusInput{} + mi := &file_github_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionStatusInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionStatusInput) ProtoMessage() {} + +func (x *ActionStatusInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionStatusInput.ProtoReflect.Descriptor instead. +func (*ActionStatusInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{7} +} + +func (x *ActionStatusInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// ActionStatusOutput holds the result of step.gh_action_status. +type ActionStatusOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + RunId int64 `protobuf:"varint,1,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Conclusion string `protobuf:"bytes,3,opt,name=conclusion,proto3" json:"conclusion,omitempty"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionStatusOutput) Reset() { + *x = ActionStatusOutput{} + mi := &file_github_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionStatusOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionStatusOutput) ProtoMessage() {} + +func (x *ActionStatusOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionStatusOutput.ProtoReflect.Descriptor instead. +func (*ActionStatusOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{8} +} + +func (x *ActionStatusOutput) GetRunId() int64 { + if x != nil { + return x.RunId + } + return 0 +} + +func (x *ActionStatusOutput) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ActionStatusOutput) GetConclusion() string { + if x != nil { + return x.Conclusion + } + return "" +} + +func (x *ActionStatusOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// ComputeGatewayConfig is the typed config for step.gh_compute_gateway. +type ComputeGatewayConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServerUrl string `protobuf:"bytes,1,opt,name=server_url,json=serverUrl,proto3" json:"server_url,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` + OidcToken string `protobuf:"bytes,4,opt,name=oidc_token,json=oidcToken,proto3" json:"oidc_token,omitempty"` + WorkflowRunId string `protobuf:"bytes,5,opt,name=workflow_run_id,json=workflowRunId,proto3" json:"workflow_run_id,omitempty"` + WorkflowRunAttempt string `protobuf:"bytes,6,opt,name=workflow_run_attempt,json=workflowRunAttempt,proto3" json:"workflow_run_attempt,omitempty"` + WorkflowJobId string `protobuf:"bytes,7,opt,name=workflow_job_id,json=workflowJobId,proto3" json:"workflow_job_id,omitempty"` + WorkflowJobName string `protobuf:"bytes,8,opt,name=workflow_job_name,json=workflowJobName,proto3" json:"workflow_job_name,omitempty"` + Ref string `protobuf:"bytes,9,opt,name=ref,proto3" json:"ref,omitempty"` + Sha string `protobuf:"bytes,10,opt,name=sha,proto3" json:"sha,omitempty"` + OrgId string `protobuf:"bytes,11,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + PoolId string `protobuf:"bytes,12,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` + PolicyId string `protobuf:"bytes,13,opt,name=policy_id,json=policyId,proto3" json:"policy_id,omitempty"` + CommandArgs []string `protobuf:"bytes,14,rep,name=command_args,json=commandArgs,proto3" json:"command_args,omitempty"` + WorkingDirectory string `protobuf:"bytes,15,opt,name=working_directory,json=workingDirectory,proto3" json:"working_directory,omitempty"` + ArtifactAllowlist []string `protobuf:"bytes,16,rep,name=artifact_allowlist,json=artifactAllowlist,proto3" json:"artifact_allowlist,omitempty"` + Labels *structpb.Struct `protobuf:"bytes,17,opt,name=labels,proto3" json:"labels,omitempty"` + ExecutorProvider string `protobuf:"bytes,18,opt,name=executor_provider,json=executorProvider,proto3" json:"executor_provider,omitempty"` + ExecutionSecurityTier string `protobuf:"bytes,19,opt,name=execution_security_tier,json=executionSecurityTier,proto3" json:"execution_security_tier,omitempty"` + ProofTier string `protobuf:"bytes,20,opt,name=proof_tier,json=proofTier,proto3" json:"proof_tier,omitempty"` + HardwareClass string `protobuf:"bytes,21,opt,name=hardware_class,json=hardwareClass,proto3" json:"hardware_class,omitempty"` + Wait bool `protobuf:"varint,22,opt,name=wait,proto3" json:"wait,omitempty"` + PollInterval string `protobuf:"bytes,23,opt,name=poll_interval,json=pollInterval,proto3" json:"poll_interval,omitempty"` + Timeout string `protobuf:"bytes,24,opt,name=timeout,proto3" json:"timeout,omitempty"` + WriteCheck bool `protobuf:"varint,25,opt,name=write_check,json=writeCheck,proto3" json:"write_check,omitempty"` + CheckOwner string `protobuf:"bytes,26,opt,name=check_owner,json=checkOwner,proto3" json:"check_owner,omitempty"` + CheckRepo string `protobuf:"bytes,27,opt,name=check_repo,json=checkRepo,proto3" json:"check_repo,omitempty"` + CheckSha string `protobuf:"bytes,28,opt,name=check_sha,json=checkSha,proto3" json:"check_sha,omitempty"` + CheckName string `protobuf:"bytes,29,opt,name=check_name,json=checkName,proto3" json:"check_name,omitempty"` + CheckToken string `protobuf:"bytes,30,opt,name=check_token,json=checkToken,proto3" json:"check_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComputeGatewayConfig) Reset() { + *x = ComputeGatewayConfig{} + mi := &file_github_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComputeGatewayConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeGatewayConfig) ProtoMessage() {} + +func (x *ComputeGatewayConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeGatewayConfig.ProtoReflect.Descriptor instead. +func (*ComputeGatewayConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{9} +} + +func (x *ComputeGatewayConfig) GetServerUrl() string { + if x != nil { + return x.ServerUrl + } + return "" +} + +func (x *ComputeGatewayConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *ComputeGatewayConfig) GetRepository() string { + if x != nil { + return x.Repository + } + return "" +} + +func (x *ComputeGatewayConfig) GetOidcToken() string { + if x != nil { + return x.OidcToken + } + return "" +} + +func (x *ComputeGatewayConfig) GetWorkflowRunId() string { + if x != nil { + return x.WorkflowRunId + } + return "" +} + +func (x *ComputeGatewayConfig) GetWorkflowRunAttempt() string { + if x != nil { + return x.WorkflowRunAttempt + } + return "" +} + +func (x *ComputeGatewayConfig) GetWorkflowJobId() string { + if x != nil { + return x.WorkflowJobId + } + return "" +} + +func (x *ComputeGatewayConfig) GetWorkflowJobName() string { + if x != nil { + return x.WorkflowJobName + } + return "" +} + +func (x *ComputeGatewayConfig) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *ComputeGatewayConfig) GetSha() string { + if x != nil { + return x.Sha + } + return "" +} + +func (x *ComputeGatewayConfig) GetOrgId() string { + if x != nil { + return x.OrgId + } + return "" +} + +func (x *ComputeGatewayConfig) GetPoolId() string { + if x != nil { + return x.PoolId + } + return "" +} + +func (x *ComputeGatewayConfig) GetPolicyId() string { + if x != nil { + return x.PolicyId + } + return "" +} + +func (x *ComputeGatewayConfig) GetCommandArgs() []string { + if x != nil { + return x.CommandArgs + } + return nil +} + +func (x *ComputeGatewayConfig) GetWorkingDirectory() string { + if x != nil { + return x.WorkingDirectory + } + return "" +} + +func (x *ComputeGatewayConfig) GetArtifactAllowlist() []string { + if x != nil { + return x.ArtifactAllowlist + } + return nil +} + +func (x *ComputeGatewayConfig) GetLabels() *structpb.Struct { + if x != nil { + return x.Labels + } + return nil +} + +func (x *ComputeGatewayConfig) GetExecutorProvider() string { + if x != nil { + return x.ExecutorProvider + } + return "" +} + +func (x *ComputeGatewayConfig) GetExecutionSecurityTier() string { + if x != nil { + return x.ExecutionSecurityTier + } + return "" +} + +func (x *ComputeGatewayConfig) GetProofTier() string { + if x != nil { + return x.ProofTier + } + return "" +} + +func (x *ComputeGatewayConfig) GetHardwareClass() string { + if x != nil { + return x.HardwareClass + } + return "" +} + +func (x *ComputeGatewayConfig) GetWait() bool { + if x != nil { + return x.Wait + } + return false +} + +func (x *ComputeGatewayConfig) GetPollInterval() string { + if x != nil { + return x.PollInterval + } + return "" +} + +func (x *ComputeGatewayConfig) GetTimeout() string { + if x != nil { + return x.Timeout + } + return "" +} + +func (x *ComputeGatewayConfig) GetWriteCheck() bool { + if x != nil { + return x.WriteCheck + } + return false +} + +func (x *ComputeGatewayConfig) GetCheckOwner() string { + if x != nil { + return x.CheckOwner + } + return "" +} + +func (x *ComputeGatewayConfig) GetCheckRepo() string { + if x != nil { + return x.CheckRepo + } + return "" +} + +func (x *ComputeGatewayConfig) GetCheckSha() string { + if x != nil { + return x.CheckSha + } + return "" +} + +func (x *ComputeGatewayConfig) GetCheckName() string { + if x != nil { + return x.CheckName + } + return "" +} + +func (x *ComputeGatewayConfig) GetCheckToken() string { + if x != nil { + return x.CheckToken + } + return "" +} + +// ComputeGatewayInput carries runtime inputs for step.gh_compute_gateway. +type ComputeGatewayInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComputeGatewayInput) Reset() { + *x = ComputeGatewayInput{} + mi := &file_github_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComputeGatewayInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeGatewayInput) ProtoMessage() {} + +func (x *ComputeGatewayInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeGatewayInput.ProtoReflect.Descriptor instead. +func (*ComputeGatewayInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{10} +} + +func (x *ComputeGatewayInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// ComputeGatewayOutput holds the result of step.gh_compute_gateway. +type ComputeGatewayOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Conclusion string `protobuf:"bytes,3,opt,name=conclusion,proto3" json:"conclusion,omitempty"` + ProofId string `protobuf:"bytes,4,opt,name=proof_id,json=proofId,proto3" json:"proof_id,omitempty"` + ArtifactHash string `protobuf:"bytes,5,opt,name=artifact_hash,json=artifactHash,proto3" json:"artifact_hash,omitempty"` + ContributionId string `protobuf:"bytes,6,opt,name=contribution_id,json=contributionId,proto3" json:"contribution_id,omitempty"` + WorkerId string `protobuf:"bytes,7,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` + CheckRunId int64 `protobuf:"varint,8,opt,name=check_run_id,json=checkRunId,proto3" json:"check_run_id,omitempty"` + CheckUrl string `protobuf:"bytes,9,opt,name=check_url,json=checkUrl,proto3" json:"check_url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ComputeGatewayOutput) Reset() { + *x = ComputeGatewayOutput{} + mi := &file_github_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ComputeGatewayOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeGatewayOutput) ProtoMessage() {} + +func (x *ComputeGatewayOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeGatewayOutput.ProtoReflect.Descriptor instead. +func (*ComputeGatewayOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{11} +} + +func (x *ComputeGatewayOutput) GetTaskId() string { + if x != nil { + return x.TaskId + } + return "" +} + +func (x *ComputeGatewayOutput) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ComputeGatewayOutput) GetConclusion() string { + if x != nil { + return x.Conclusion + } + return "" +} + +func (x *ComputeGatewayOutput) GetProofId() string { + if x != nil { + return x.ProofId + } + return "" +} + +func (x *ComputeGatewayOutput) GetArtifactHash() string { + if x != nil { + return x.ArtifactHash + } + return "" +} + +func (x *ComputeGatewayOutput) GetContributionId() string { + if x != nil { + return x.ContributionId + } + return "" +} + +func (x *ComputeGatewayOutput) GetWorkerId() string { + if x != nil { + return x.WorkerId + } + return "" +} + +func (x *ComputeGatewayOutput) GetCheckRunId() int64 { + if x != nil { + return x.CheckRunId + } + return 0 +} + +func (x *ComputeGatewayOutput) GetCheckUrl() string { + if x != nil { + return x.CheckUrl + } + return "" +} + +// CreateCheckConfig is the typed config for step.gh_create_check. +type CreateCheckConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Sha string `protobuf:"bytes,3,opt,name=sha,proto3" json:"sha,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` + Conclusion string `protobuf:"bytes,6,opt,name=conclusion,proto3" json:"conclusion,omitempty"` + Title string `protobuf:"bytes,7,opt,name=title,proto3" json:"title,omitempty"` + Summary string `protobuf:"bytes,8,opt,name=summary,proto3" json:"summary,omitempty"` + Token string `protobuf:"bytes,9,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateCheckConfig) Reset() { + *x = CreateCheckConfig{} + mi := &file_github_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateCheckConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCheckConfig) ProtoMessage() {} + +func (x *CreateCheckConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateCheckConfig.ProtoReflect.Descriptor instead. +func (*CreateCheckConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{12} +} + +func (x *CreateCheckConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *CreateCheckConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *CreateCheckConfig) GetSha() string { + if x != nil { + return x.Sha + } + return "" +} + +func (x *CreateCheckConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateCheckConfig) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *CreateCheckConfig) GetConclusion() string { + if x != nil { + return x.Conclusion + } + return "" +} + +func (x *CreateCheckConfig) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreateCheckConfig) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} + +func (x *CreateCheckConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// CreateCheckInput carries runtime inputs for step.gh_create_check. +type CreateCheckInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateCheckInput) Reset() { + *x = CreateCheckInput{} + mi := &file_github_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateCheckInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCheckInput) ProtoMessage() {} + +func (x *CreateCheckInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateCheckInput.ProtoReflect.Descriptor instead. +func (*CreateCheckInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{13} +} + +func (x *CreateCheckInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// CreateCheckOutput holds the result of step.gh_create_check. +type CreateCheckOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + CheckRunId int64 `protobuf:"varint,1,opt,name=check_run_id,json=checkRunId,proto3" json:"check_run_id,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateCheckOutput) Reset() { + *x = CreateCheckOutput{} + mi := &file_github_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateCheckOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCheckOutput) ProtoMessage() {} + +func (x *CreateCheckOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateCheckOutput.ProtoReflect.Descriptor instead. +func (*CreateCheckOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{14} +} + +func (x *CreateCheckOutput) GetCheckRunId() int64 { + if x != nil { + return x.CheckRunId + } + return 0 +} + +func (x *CreateCheckOutput) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *CreateCheckOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// PRCreateConfig is the typed config for step.gh_pr_create. +type PRCreateConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Head string `protobuf:"bytes,3,opt,name=head,proto3" json:"head,omitempty"` + Base string `protobuf:"bytes,4,opt,name=base,proto3" json:"base,omitempty"` + Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + Body string `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"` + Draft bool `protobuf:"varint,7,opt,name=draft,proto3" json:"draft,omitempty"` + Token string `protobuf:"bytes,8,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCreateConfig) Reset() { + *x = PRCreateConfig{} + mi := &file_github_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCreateConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCreateConfig) ProtoMessage() {} + +func (x *PRCreateConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCreateConfig.ProtoReflect.Descriptor instead. +func (*PRCreateConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{15} +} + +func (x *PRCreateConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *PRCreateConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *PRCreateConfig) GetHead() string { + if x != nil { + return x.Head + } + return "" +} + +func (x *PRCreateConfig) GetBase() string { + if x != nil { + return x.Base + } + return "" +} + +func (x *PRCreateConfig) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *PRCreateConfig) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *PRCreateConfig) GetDraft() bool { + if x != nil { + return x.Draft + } + return false +} + +func (x *PRCreateConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// PRCreateInput carries runtime inputs for step.gh_pr_create. +type PRCreateInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCreateInput) Reset() { + *x = PRCreateInput{} + mi := &file_github_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCreateInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCreateInput) ProtoMessage() {} + +func (x *PRCreateInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCreateInput.ProtoReflect.Descriptor instead. +func (*PRCreateInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{16} +} + +func (x *PRCreateInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// PRCreateOutput holds the result of step.gh_pr_create. +type PRCreateOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCreateOutput) Reset() { + *x = PRCreateOutput{} + mi := &file_github_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCreateOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCreateOutput) ProtoMessage() {} + +func (x *PRCreateOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCreateOutput.ProtoReflect.Descriptor instead. +func (*PRCreateOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{17} +} + +func (x *PRCreateOutput) GetNumber() int64 { + if x != nil { + return x.Number + } + return 0 +} + +func (x *PRCreateOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *PRCreateOutput) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *PRCreateOutput) GetState() string { + if x != nil { + return x.State + } + return "" +} + +// PRMergeConfig is the typed config for step.gh_pr_merge. +type PRMergeConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + PrNumber int64 `protobuf:"varint,3,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` + CommitTitle string `protobuf:"bytes,4,opt,name=commit_title,json=commitTitle,proto3" json:"commit_title,omitempty"` + Method string `protobuf:"bytes,5,opt,name=method,proto3" json:"method,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRMergeConfig) Reset() { + *x = PRMergeConfig{} + mi := &file_github_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRMergeConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRMergeConfig) ProtoMessage() {} + +func (x *PRMergeConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRMergeConfig.ProtoReflect.Descriptor instead. +func (*PRMergeConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{18} +} + +func (x *PRMergeConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *PRMergeConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *PRMergeConfig) GetPrNumber() int64 { + if x != nil { + return x.PrNumber + } + return 0 +} + +func (x *PRMergeConfig) GetCommitTitle() string { + if x != nil { + return x.CommitTitle + } + return "" +} + +func (x *PRMergeConfig) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *PRMergeConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// PRMergeInput carries runtime inputs for step.gh_pr_merge. +type PRMergeInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRMergeInput) Reset() { + *x = PRMergeInput{} + mi := &file_github_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRMergeInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRMergeInput) ProtoMessage() {} + +func (x *PRMergeInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRMergeInput.ProtoReflect.Descriptor instead. +func (*PRMergeInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{19} +} + +func (x *PRMergeInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// PRMergeOutput holds the result of step.gh_pr_merge. +type PRMergeOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Merged bool `protobuf:"varint,1,opt,name=merged,proto3" json:"merged,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Sha string `protobuf:"bytes,3,opt,name=sha,proto3" json:"sha,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRMergeOutput) Reset() { + *x = PRMergeOutput{} + mi := &file_github_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRMergeOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRMergeOutput) ProtoMessage() {} + +func (x *PRMergeOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRMergeOutput.ProtoReflect.Descriptor instead. +func (*PRMergeOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{20} +} + +func (x *PRMergeOutput) GetMerged() bool { + if x != nil { + return x.Merged + } + return false +} + +func (x *PRMergeOutput) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *PRMergeOutput) GetSha() string { + if x != nil { + return x.Sha + } + return "" +} + +// PRCommentConfig is the typed config for step.gh_pr_comment. +type PRCommentConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + PrNumber int64 `protobuf:"varint,3,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` + Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` + Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCommentConfig) Reset() { + *x = PRCommentConfig{} + mi := &file_github_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCommentConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCommentConfig) ProtoMessage() {} + +func (x *PRCommentConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCommentConfig.ProtoReflect.Descriptor instead. +func (*PRCommentConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{21} +} + +func (x *PRCommentConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *PRCommentConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *PRCommentConfig) GetPrNumber() int64 { + if x != nil { + return x.PrNumber + } + return 0 +} + +func (x *PRCommentConfig) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *PRCommentConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// PRCommentInput carries runtime inputs for step.gh_pr_comment. +type PRCommentInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCommentInput) Reset() { + *x = PRCommentInput{} + mi := &file_github_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCommentInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCommentInput) ProtoMessage() {} + +func (x *PRCommentInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCommentInput.ProtoReflect.Descriptor instead. +func (*PRCommentInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{22} +} + +func (x *PRCommentInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// PRCommentOutput holds the result of step.gh_pr_comment. +type PRCommentOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + CommentId int64 `protobuf:"varint,1,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRCommentOutput) Reset() { + *x = PRCommentOutput{} + mi := &file_github_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRCommentOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRCommentOutput) ProtoMessage() {} + +func (x *PRCommentOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRCommentOutput.ProtoReflect.Descriptor instead. +func (*PRCommentOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{23} +} + +func (x *PRCommentOutput) GetCommentId() int64 { + if x != nil { + return x.CommentId + } + return 0 +} + +func (x *PRCommentOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// PRReviewConfig is the typed config for step.gh_pr_review. +type PRReviewConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + PrNumber int64 `protobuf:"varint,3,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` + Event string `protobuf:"bytes,4,opt,name=event,proto3" json:"event,omitempty"` + Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRReviewConfig) Reset() { + *x = PRReviewConfig{} + mi := &file_github_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRReviewConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRReviewConfig) ProtoMessage() {} + +func (x *PRReviewConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRReviewConfig.ProtoReflect.Descriptor instead. +func (*PRReviewConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{24} +} + +func (x *PRReviewConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *PRReviewConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *PRReviewConfig) GetPrNumber() int64 { + if x != nil { + return x.PrNumber + } + return 0 +} + +func (x *PRReviewConfig) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +func (x *PRReviewConfig) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *PRReviewConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// PRReviewInput carries runtime inputs for step.gh_pr_review. +type PRReviewInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRReviewInput) Reset() { + *x = PRReviewInput{} + mi := &file_github_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRReviewInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRReviewInput) ProtoMessage() {} + +func (x *PRReviewInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRReviewInput.ProtoReflect.Descriptor instead. +func (*PRReviewInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{25} +} + +func (x *PRReviewInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// PRReviewOutput holds the result of step.gh_pr_review. +type PRReviewOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReviewId int64 `protobuf:"varint,1,opt,name=review_id,json=reviewId,proto3" json:"review_id,omitempty"` + State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PRReviewOutput) Reset() { + *x = PRReviewOutput{} + mi := &file_github_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PRReviewOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PRReviewOutput) ProtoMessage() {} + +func (x *PRReviewOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PRReviewOutput.ProtoReflect.Descriptor instead. +func (*PRReviewOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{26} +} + +func (x *PRReviewOutput) GetReviewId() int64 { + if x != nil { + return x.ReviewId + } + return 0 +} + +func (x *PRReviewOutput) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *PRReviewOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// IssueCreateConfig is the typed config for step.gh_issue_create. +type IssueCreateConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` + Labels []string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"` + Assignees []string `protobuf:"bytes,6,rep,name=assignees,proto3" json:"assignees,omitempty"` + Token string `protobuf:"bytes,7,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCreateConfig) Reset() { + *x = IssueCreateConfig{} + mi := &file_github_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCreateConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCreateConfig) ProtoMessage() {} + +func (x *IssueCreateConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCreateConfig.ProtoReflect.Descriptor instead. +func (*IssueCreateConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{27} +} + +func (x *IssueCreateConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *IssueCreateConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *IssueCreateConfig) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *IssueCreateConfig) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *IssueCreateConfig) GetLabels() []string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *IssueCreateConfig) GetAssignees() []string { + if x != nil { + return x.Assignees + } + return nil +} + +func (x *IssueCreateConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// IssueCreateInput carries runtime inputs for step.gh_issue_create. +type IssueCreateInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCreateInput) Reset() { + *x = IssueCreateInput{} + mi := &file_github_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCreateInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCreateInput) ProtoMessage() {} + +func (x *IssueCreateInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCreateInput.ProtoReflect.Descriptor instead. +func (*IssueCreateInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{28} +} + +func (x *IssueCreateInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// IssueCreateOutput holds the result of step.gh_issue_create. +type IssueCreateOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` + State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCreateOutput) Reset() { + *x = IssueCreateOutput{} + mi := &file_github_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCreateOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCreateOutput) ProtoMessage() {} + +func (x *IssueCreateOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCreateOutput.ProtoReflect.Descriptor instead. +func (*IssueCreateOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{29} +} + +func (x *IssueCreateOutput) GetNumber() int64 { + if x != nil { + return x.Number + } + return 0 +} + +func (x *IssueCreateOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *IssueCreateOutput) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *IssueCreateOutput) GetState() string { + if x != nil { + return x.State + } + return "" +} + +// IssueCloseConfig is the typed config for step.gh_issue_close. +type IssueCloseConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + IssueNumber int64 `protobuf:"varint,3,opt,name=issue_number,json=issueNumber,proto3" json:"issue_number,omitempty"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` + Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCloseConfig) Reset() { + *x = IssueCloseConfig{} + mi := &file_github_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCloseConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCloseConfig) ProtoMessage() {} + +func (x *IssueCloseConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCloseConfig.ProtoReflect.Descriptor instead. +func (*IssueCloseConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{30} +} + +func (x *IssueCloseConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *IssueCloseConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *IssueCloseConfig) GetIssueNumber() int64 { + if x != nil { + return x.IssueNumber + } + return 0 +} + +func (x *IssueCloseConfig) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *IssueCloseConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// IssueCloseInput carries runtime inputs for step.gh_issue_close. +type IssueCloseInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCloseInput) Reset() { + *x = IssueCloseInput{} + mi := &file_github_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCloseInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCloseInput) ProtoMessage() {} + +func (x *IssueCloseInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCloseInput.ProtoReflect.Descriptor instead. +func (*IssueCloseInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{31} +} + +func (x *IssueCloseInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// IssueCloseOutput holds the result of step.gh_issue_close. +type IssueCloseOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` + State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueCloseOutput) Reset() { + *x = IssueCloseOutput{} + mi := &file_github_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueCloseOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueCloseOutput) ProtoMessage() {} + +func (x *IssueCloseOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueCloseOutput.ProtoReflect.Descriptor instead. +func (*IssueCloseOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{32} +} + +func (x *IssueCloseOutput) GetNumber() int64 { + if x != nil { + return x.Number + } + return 0 +} + +func (x *IssueCloseOutput) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *IssueCloseOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// IssueLabelConfig is the typed config for step.gh_issue_label. +type IssueLabelConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + IssueNumber int64 `protobuf:"varint,3,opt,name=issue_number,json=issueNumber,proto3" json:"issue_number,omitempty"` + Add []string `protobuf:"bytes,4,rep,name=add,proto3" json:"add,omitempty"` + Remove []string `protobuf:"bytes,5,rep,name=remove,proto3" json:"remove,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueLabelConfig) Reset() { + *x = IssueLabelConfig{} + mi := &file_github_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueLabelConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueLabelConfig) ProtoMessage() {} + +func (x *IssueLabelConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueLabelConfig.ProtoReflect.Descriptor instead. +func (*IssueLabelConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{33} +} + +func (x *IssueLabelConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *IssueLabelConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *IssueLabelConfig) GetIssueNumber() int64 { + if x != nil { + return x.IssueNumber + } + return 0 +} + +func (x *IssueLabelConfig) GetAdd() []string { + if x != nil { + return x.Add + } + return nil +} + +func (x *IssueLabelConfig) GetRemove() []string { + if x != nil { + return x.Remove + } + return nil +} + +func (x *IssueLabelConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// IssueLabelInput carries runtime inputs for step.gh_issue_label. +type IssueLabelInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueLabelInput) Reset() { + *x = IssueLabelInput{} + mi := &file_github_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueLabelInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueLabelInput) ProtoMessage() {} + +func (x *IssueLabelInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[34] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueLabelInput.ProtoReflect.Descriptor instead. +func (*IssueLabelInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{34} +} + +func (x *IssueLabelInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// IssueLabelOutput holds the result of step.gh_issue_label. +type IssueLabelOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Added []string `protobuf:"bytes,1,rep,name=added,proto3" json:"added,omitempty"` + Removed []string `protobuf:"bytes,2,rep,name=removed,proto3" json:"removed,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IssueLabelOutput) Reset() { + *x = IssueLabelOutput{} + mi := &file_github_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IssueLabelOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IssueLabelOutput) ProtoMessage() {} + +func (x *IssueLabelOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IssueLabelOutput.ProtoReflect.Descriptor instead. +func (*IssueLabelOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{35} +} + +func (x *IssueLabelOutput) GetAdded() []string { + if x != nil { + return x.Added + } + return nil +} + +func (x *IssueLabelOutput) GetRemoved() []string { + if x != nil { + return x.Removed + } + return nil +} + +// ReleaseCreateConfig is the typed config for step.gh_release_create. +type ReleaseCreateConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Tag string `protobuf:"bytes,3,opt,name=tag,proto3" json:"tag,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"` + Draft bool `protobuf:"varint,6,opt,name=draft,proto3" json:"draft,omitempty"` + Prerelease bool `protobuf:"varint,7,opt,name=prerelease,proto3" json:"prerelease,omitempty"` + Token string `protobuf:"bytes,8,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseCreateConfig) Reset() { + *x = ReleaseCreateConfig{} + mi := &file_github_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseCreateConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseCreateConfig) ProtoMessage() {} + +func (x *ReleaseCreateConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseCreateConfig.ProtoReflect.Descriptor instead. +func (*ReleaseCreateConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{36} +} + +func (x *ReleaseCreateConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ReleaseCreateConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *ReleaseCreateConfig) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *ReleaseCreateConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReleaseCreateConfig) GetBody() string { + if x != nil { + return x.Body + } + return "" +} + +func (x *ReleaseCreateConfig) GetDraft() bool { + if x != nil { + return x.Draft + } + return false +} + +func (x *ReleaseCreateConfig) GetPrerelease() bool { + if x != nil { + return x.Prerelease + } + return false +} + +func (x *ReleaseCreateConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// ReleaseCreateInput carries runtime inputs for step.gh_release_create. +type ReleaseCreateInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseCreateInput) Reset() { + *x = ReleaseCreateInput{} + mi := &file_github_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseCreateInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseCreateInput) ProtoMessage() {} + +func (x *ReleaseCreateInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseCreateInput.ProtoReflect.Descriptor instead. +func (*ReleaseCreateInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{37} +} + +func (x *ReleaseCreateInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// ReleaseCreateOutput holds the result of step.gh_release_create. +type ReleaseCreateOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReleaseId int64 `protobuf:"varint,1,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + UploadUrl string `protobuf:"bytes,3,opt,name=upload_url,json=uploadUrl,proto3" json:"upload_url,omitempty"` + Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` + Draft bool `protobuf:"varint,5,opt,name=draft,proto3" json:"draft,omitempty"` + Prerelease bool `protobuf:"varint,6,opt,name=prerelease,proto3" json:"prerelease,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseCreateOutput) Reset() { + *x = ReleaseCreateOutput{} + mi := &file_github_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseCreateOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseCreateOutput) ProtoMessage() {} + +func (x *ReleaseCreateOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseCreateOutput.ProtoReflect.Descriptor instead. +func (*ReleaseCreateOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{38} +} + +func (x *ReleaseCreateOutput) GetReleaseId() int64 { + if x != nil { + return x.ReleaseId + } + return 0 +} + +func (x *ReleaseCreateOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ReleaseCreateOutput) GetUploadUrl() string { + if x != nil { + return x.UploadUrl + } + return "" +} + +func (x *ReleaseCreateOutput) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *ReleaseCreateOutput) GetDraft() bool { + if x != nil { + return x.Draft + } + return false +} + +func (x *ReleaseCreateOutput) GetPrerelease() bool { + if x != nil { + return x.Prerelease + } + return false +} + +// ReleaseUploadConfig is the typed config for step.gh_release_upload. +type ReleaseUploadConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + ReleaseId string `protobuf:"bytes,3,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` + File string `protobuf:"bytes,4,opt,name=file,proto3" json:"file,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseUploadConfig) Reset() { + *x = ReleaseUploadConfig{} + mi := &file_github_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseUploadConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseUploadConfig) ProtoMessage() {} + +func (x *ReleaseUploadConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[39] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseUploadConfig.ProtoReflect.Descriptor instead. +func (*ReleaseUploadConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{39} +} + +func (x *ReleaseUploadConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ReleaseUploadConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *ReleaseUploadConfig) GetReleaseId() string { + if x != nil { + return x.ReleaseId + } + return "" +} + +func (x *ReleaseUploadConfig) GetFile() string { + if x != nil { + return x.File + } + return "" +} + +func (x *ReleaseUploadConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReleaseUploadConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// ReleaseUploadInput carries runtime inputs for step.gh_release_upload. +type ReleaseUploadInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseUploadInput) Reset() { + *x = ReleaseUploadInput{} + mi := &file_github_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseUploadInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseUploadInput) ProtoMessage() {} + +func (x *ReleaseUploadInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[40] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseUploadInput.ProtoReflect.Descriptor instead. +func (*ReleaseUploadInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{40} +} + +func (x *ReleaseUploadInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// ReleaseUploadOutput holds the result of step.gh_release_upload. +type ReleaseUploadOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + AssetId int64 `protobuf:"varint,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Size int64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseUploadOutput) Reset() { + *x = ReleaseUploadOutput{} + mi := &file_github_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseUploadOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseUploadOutput) ProtoMessage() {} + +func (x *ReleaseUploadOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[41] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseUploadOutput.ProtoReflect.Descriptor instead. +func (*ReleaseUploadOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{41} +} + +func (x *ReleaseUploadOutput) GetAssetId() int64 { + if x != nil { + return x.AssetId + } + return 0 +} + +func (x *ReleaseUploadOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ReleaseUploadOutput) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReleaseUploadOutput) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +// RepoDispatchConfig is the typed config for step.gh_repo_dispatch. +type RepoDispatchConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + EventType string `protobuf:"bytes,3,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + Payload *structpb.Struct `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` + Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RepoDispatchConfig) Reset() { + *x = RepoDispatchConfig{} + mi := &file_github_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RepoDispatchConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepoDispatchConfig) ProtoMessage() {} + +func (x *RepoDispatchConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[42] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepoDispatchConfig.ProtoReflect.Descriptor instead. +func (*RepoDispatchConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{42} +} + +func (x *RepoDispatchConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *RepoDispatchConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *RepoDispatchConfig) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *RepoDispatchConfig) GetPayload() *structpb.Struct { + if x != nil { + return x.Payload + } + return nil +} + +func (x *RepoDispatchConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// RepoDispatchInput carries runtime inputs for step.gh_repo_dispatch. +type RepoDispatchInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RepoDispatchInput) Reset() { + *x = RepoDispatchInput{} + mi := &file_github_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RepoDispatchInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepoDispatchInput) ProtoMessage() {} + +func (x *RepoDispatchInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[43] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepoDispatchInput.ProtoReflect.Descriptor instead. +func (*RepoDispatchInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{43} +} + +func (x *RepoDispatchInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// RepoDispatchOutput holds the result of step.gh_repo_dispatch. +type RepoDispatchOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Dispatched bool `protobuf:"varint,1,opt,name=dispatched,proto3" json:"dispatched,omitempty"` + EventType string `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` + Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,4,opt,name=repo,proto3" json:"repo,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RepoDispatchOutput) Reset() { + *x = RepoDispatchOutput{} + mi := &file_github_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RepoDispatchOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepoDispatchOutput) ProtoMessage() {} + +func (x *RepoDispatchOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[44] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepoDispatchOutput.ProtoReflect.Descriptor instead. +func (*RepoDispatchOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{44} +} + +func (x *RepoDispatchOutput) GetDispatched() bool { + if x != nil { + return x.Dispatched + } + return false +} + +func (x *RepoDispatchOutput) GetEventType() string { + if x != nil { + return x.EventType + } + return "" +} + +func (x *RepoDispatchOutput) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *RepoDispatchOutput) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +// DeploymentCreateConfig is the typed config for step.gh_deployment_create. +type DeploymentCreateConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Ref string `protobuf:"bytes,3,opt,name=ref,proto3" json:"ref,omitempty"` + Environment string `protobuf:"bytes,4,opt,name=environment,proto3" json:"environment,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + AutoMerge bool `protobuf:"varint,6,opt,name=auto_merge,json=autoMerge,proto3" json:"auto_merge,omitempty"` + Token string `protobuf:"bytes,7,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeploymentCreateConfig) Reset() { + *x = DeploymentCreateConfig{} + mi := &file_github_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeploymentCreateConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeploymentCreateConfig) ProtoMessage() {} + +func (x *DeploymentCreateConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[45] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeploymentCreateConfig.ProtoReflect.Descriptor instead. +func (*DeploymentCreateConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{45} +} + +func (x *DeploymentCreateConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *DeploymentCreateConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *DeploymentCreateConfig) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *DeploymentCreateConfig) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +func (x *DeploymentCreateConfig) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DeploymentCreateConfig) GetAutoMerge() bool { + if x != nil { + return x.AutoMerge + } + return false +} + +func (x *DeploymentCreateConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// DeploymentCreateInput carries runtime inputs for step.gh_deployment_create. +type DeploymentCreateInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeploymentCreateInput) Reset() { + *x = DeploymentCreateInput{} + mi := &file_github_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeploymentCreateInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeploymentCreateInput) ProtoMessage() {} + +func (x *DeploymentCreateInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[46] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeploymentCreateInput.ProtoReflect.Descriptor instead. +func (*DeploymentCreateInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{46} +} + +func (x *DeploymentCreateInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// DeploymentCreateOutput holds the result of step.gh_deployment_create. +type DeploymentCreateOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + DeploymentId int64 `protobuf:"varint,1,opt,name=deployment_id,json=deploymentId,proto3" json:"deployment_id,omitempty"` + Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` + Ref string `protobuf:"bytes,3,opt,name=ref,proto3" json:"ref,omitempty"` + Sha string `protobuf:"bytes,4,opt,name=sha,proto3" json:"sha,omitempty"` + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeploymentCreateOutput) Reset() { + *x = DeploymentCreateOutput{} + mi := &file_github_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeploymentCreateOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeploymentCreateOutput) ProtoMessage() {} + +func (x *DeploymentCreateOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[47] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeploymentCreateOutput.ProtoReflect.Descriptor instead. +func (*DeploymentCreateOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{47} +} + +func (x *DeploymentCreateOutput) GetDeploymentId() int64 { + if x != nil { + return x.DeploymentId + } + return 0 +} + +func (x *DeploymentCreateOutput) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +func (x *DeploymentCreateOutput) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *DeploymentCreateOutput) GetSha() string { + if x != nil { + return x.Sha + } + return "" +} + +func (x *DeploymentCreateOutput) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// SecretSetConfig is the typed config for step.gh_secret_set. +type SecretSetConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` + Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SecretSetConfig) Reset() { + *x = SecretSetConfig{} + mi := &file_github_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SecretSetConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecretSetConfig) ProtoMessage() {} + +func (x *SecretSetConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[48] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecretSetConfig.ProtoReflect.Descriptor instead. +func (*SecretSetConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{48} +} + +func (x *SecretSetConfig) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *SecretSetConfig) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *SecretSetConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SecretSetConfig) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *SecretSetConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// SecretSetInput carries runtime inputs for step.gh_secret_set. +type SecretSetInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SecretSetInput) Reset() { + *x = SecretSetInput{} + mi := &file_github_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SecretSetInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecretSetInput) ProtoMessage() {} + +func (x *SecretSetInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[49] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecretSetInput.ProtoReflect.Descriptor instead. +func (*SecretSetInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{49} +} + +func (x *SecretSetInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// SecretSetOutput holds the result of step.gh_secret_set. +type SecretSetOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + Repo string `protobuf:"bytes,3,opt,name=repo,proto3" json:"repo,omitempty"` + Set bool `protobuf:"varint,4,opt,name=set,proto3" json:"set,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SecretSetOutput) Reset() { + *x = SecretSetOutput{} + mi := &file_github_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SecretSetOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecretSetOutput) ProtoMessage() {} + +func (x *SecretSetOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[50] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecretSetOutput.ProtoReflect.Descriptor instead. +func (*SecretSetOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{50} +} + +func (x *SecretSetOutput) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SecretSetOutput) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *SecretSetOutput) GetRepo() string { + if x != nil { + return x.Repo + } + return "" +} + +func (x *SecretSetOutput) GetSet() bool { + if x != nil { + return x.Set + } + return false +} + +// GraphQLConfig is the typed config for step.gh_graphql. +type GraphQLConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + Variables *structpb.Struct `protobuf:"bytes,2,opt,name=variables,proto3" json:"variables,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GraphQLConfig) Reset() { + *x = GraphQLConfig{} + mi := &file_github_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GraphQLConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GraphQLConfig) ProtoMessage() {} + +func (x *GraphQLConfig) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[51] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GraphQLConfig.ProtoReflect.Descriptor instead. +func (*GraphQLConfig) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{51} +} + +func (x *GraphQLConfig) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +func (x *GraphQLConfig) GetVariables() *structpb.Struct { + if x != nil { + return x.Variables + } + return nil +} + +func (x *GraphQLConfig) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// GraphQLInput carries runtime inputs for step.gh_graphql. +type GraphQLInput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GraphQLInput) Reset() { + *x = GraphQLInput{} + mi := &file_github_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GraphQLInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GraphQLInput) ProtoMessage() {} + +func (x *GraphQLInput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[52] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GraphQLInput.ProtoReflect.Descriptor instead. +func (*GraphQLInput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{52} +} + +func (x *GraphQLInput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +// GraphQLOutput holds the result of step.gh_graphql. +type GraphQLOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data *structpb.Struct `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GraphQLOutput) Reset() { + *x = GraphQLOutput{} + mi := &file_github_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GraphQLOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GraphQLOutput) ProtoMessage() {} + +func (x *GraphQLOutput) ProtoReflect() protoreflect.Message { + mi := &file_github_proto_msgTypes[53] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GraphQLOutput.ProtoReflect.Descriptor instead. +func (*GraphQLOutput) Descriptor() ([]byte, []int) { + return file_github_proto_rawDescGZIP(), []int{53} +} + +func (x *GraphQLOutput) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +func (x *GraphQLOutput) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +var File_github_proto protoreflect.FileDescriptor + +const file_github_proto_rawDesc = "" + + "\n" + + "\fgithub.proto\x12\x19workflow.plugin.github.v1\x1a\x1cgoogle/protobuf/struct.proto\"w\n" + + "\x13WebhookModuleConfig\x12\x1a\n" + + "\bprovider\x18\x01 \x01(\tR\bprovider\x12\x16\n" + + "\x06secret\x18\x02 \x01(\tR\x06secret\x12\x16\n" + + "\x06events\x18\x03 \x03(\tR\x06events\x12\x14\n" + + "\x05topic\x18\x04 \x01(\tR\x05topic\"x\n" + + "\x15GitHubAppModuleConfig\x12\x15\n" + + "\x06app_id\x18\x01 \x01(\x03R\x05appId\x12'\n" + + "\x0finstallation_id\x18\x02 \x01(\x03R\x0einstallationId\x12\x1f\n" + + "\vprivate_key\x18\x03 \x01(\tR\n" + + "privateKey\"\x9f\x01\n" + + "\x1aRunnerProviderModuleConfig\x12\x14\n" + + "\x05token\x18\x01 \x01(\tR\x05token\x12%\n" + + "\x0eprovider_token\x18\x02 \x01(\tR\rproviderToken\x12 \n" + + "\fapi_base_url\x18\x03 \x01(\tR\n" + + "apiBaseUrl\x12\"\n" + + "\frepositories\x18\x04 \x03(\tR\frepositories\"\xb4\x01\n" + + "\x13ActionTriggerConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1a\n" + + "\bworkflow\x18\x03 \x01(\tR\bworkflow\x12\x10\n" + + "\x03ref\x18\x04 \x01(\tR\x03ref\x12/\n" + + "\x06inputs\x18\x05 \x01(\v2\x17.google.protobuf.StructR\x06inputs\x12\x14\n" + + "\x05token\x18\x06 \x01(\tR\x05token\"A\n" + + "\x12ActionTriggerInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"\x8b\x01\n" + + "\x13ActionTriggerOutput\x12\x1c\n" + + "\ttriggered\x18\x01 \x01(\bR\ttriggered\x12\x14\n" + + "\x05owner\x18\x02 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x03 \x01(\tR\x04repo\x12\x1a\n" + + "\bworkflow\x18\x04 \x01(\tR\bworkflow\x12\x10\n" + + "\x03ref\x18\x05 \x01(\tR\x03ref\"\xbe\x01\n" + + "\x12ActionStatusConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x15\n" + + "\x06run_id\x18\x03 \x01(\tR\x05runId\x12\x14\n" + + "\x05token\x18\x04 \x01(\tR\x05token\x12\x12\n" + + "\x04wait\x18\x05 \x01(\bR\x04wait\x12#\n" + + "\rpoll_interval\x18\x06 \x01(\tR\fpollInterval\x12\x18\n" + + "\atimeout\x18\a \x01(\tR\atimeout\"@\n" + + "\x11ActionStatusInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"u\n" + + "\x12ActionStatusOutput\x12\x15\n" + + "\x06run_id\x18\x01 \x01(\x03R\x05runId\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x1e\n" + + "\n" + + "conclusion\x18\x03 \x01(\tR\n" + + "conclusion\x12\x10\n" + + "\x03url\x18\x04 \x01(\tR\x03url\"\x95\b\n" + + "\x14ComputeGatewayConfig\x12\x1d\n" + + "\n" + + "server_url\x18\x01 \x01(\tR\tserverUrl\x12\x14\n" + + "\x05token\x18\x02 \x01(\tR\x05token\x12\x1e\n" + + "\n" + + "repository\x18\x03 \x01(\tR\n" + + "repository\x12\x1d\n" + + "\n" + + "oidc_token\x18\x04 \x01(\tR\toidcToken\x12&\n" + + "\x0fworkflow_run_id\x18\x05 \x01(\tR\rworkflowRunId\x120\n" + + "\x14workflow_run_attempt\x18\x06 \x01(\tR\x12workflowRunAttempt\x12&\n" + + "\x0fworkflow_job_id\x18\a \x01(\tR\rworkflowJobId\x12*\n" + + "\x11workflow_job_name\x18\b \x01(\tR\x0fworkflowJobName\x12\x10\n" + + "\x03ref\x18\t \x01(\tR\x03ref\x12\x10\n" + + "\x03sha\x18\n" + + " \x01(\tR\x03sha\x12\x15\n" + + "\x06org_id\x18\v \x01(\tR\x05orgId\x12\x17\n" + + "\apool_id\x18\f \x01(\tR\x06poolId\x12\x1b\n" + + "\tpolicy_id\x18\r \x01(\tR\bpolicyId\x12!\n" + + "\fcommand_args\x18\x0e \x03(\tR\vcommandArgs\x12+\n" + + "\x11working_directory\x18\x0f \x01(\tR\x10workingDirectory\x12-\n" + + "\x12artifact_allowlist\x18\x10 \x03(\tR\x11artifactAllowlist\x12/\n" + + "\x06labels\x18\x11 \x01(\v2\x17.google.protobuf.StructR\x06labels\x12+\n" + + "\x11executor_provider\x18\x12 \x01(\tR\x10executorProvider\x126\n" + + "\x17execution_security_tier\x18\x13 \x01(\tR\x15executionSecurityTier\x12\x1d\n" + + "\n" + + "proof_tier\x18\x14 \x01(\tR\tproofTier\x12%\n" + + "\x0ehardware_class\x18\x15 \x01(\tR\rhardwareClass\x12\x12\n" + + "\x04wait\x18\x16 \x01(\bR\x04wait\x12#\n" + + "\rpoll_interval\x18\x17 \x01(\tR\fpollInterval\x12\x18\n" + + "\atimeout\x18\x18 \x01(\tR\atimeout\x12\x1f\n" + + "\vwrite_check\x18\x19 \x01(\bR\n" + + "writeCheck\x12\x1f\n" + + "\vcheck_owner\x18\x1a \x01(\tR\n" + + "checkOwner\x12\x1d\n" + + "\n" + + "check_repo\x18\x1b \x01(\tR\tcheckRepo\x12\x1b\n" + + "\tcheck_sha\x18\x1c \x01(\tR\bcheckSha\x12\x1d\n" + + "\n" + + "check_name\x18\x1d \x01(\tR\tcheckName\x12\x1f\n" + + "\vcheck_token\x18\x1e \x01(\tR\n" + + "checkToken\"B\n" + + "\x13ComputeGatewayInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"\xac\x02\n" + + "\x14ComputeGatewayOutput\x12\x17\n" + + "\atask_id\x18\x01 \x01(\tR\x06taskId\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x1e\n" + + "\n" + + "conclusion\x18\x03 \x01(\tR\n" + + "conclusion\x12\x19\n" + + "\bproof_id\x18\x04 \x01(\tR\aproofId\x12#\n" + + "\rartifact_hash\x18\x05 \x01(\tR\fartifactHash\x12'\n" + + "\x0fcontribution_id\x18\x06 \x01(\tR\x0econtributionId\x12\x1b\n" + + "\tworker_id\x18\a \x01(\tR\bworkerId\x12 \n" + + "\fcheck_run_id\x18\b \x01(\x03R\n" + + "checkRunId\x12\x1b\n" + + "\tcheck_url\x18\t \x01(\tR\bcheckUrl\"\xe1\x01\n" + + "\x11CreateCheckConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x10\n" + + "\x03sha\x18\x03 \x01(\tR\x03sha\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n" + + "\x06status\x18\x05 \x01(\tR\x06status\x12\x1e\n" + + "\n" + + "conclusion\x18\x06 \x01(\tR\n" + + "conclusion\x12\x14\n" + + "\x05title\x18\a \x01(\tR\x05title\x12\x18\n" + + "\asummary\x18\b \x01(\tR\asummary\x12\x14\n" + + "\x05token\x18\t \x01(\tR\x05token\"?\n" + + "\x10CreateCheckInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"_\n" + + "\x11CreateCheckOutput\x12 \n" + + "\fcheck_run_id\x18\x01 \x01(\x03R\n" + + "checkRunId\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\"\xb8\x01\n" + + "\x0ePRCreateConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x12\n" + + "\x04head\x18\x03 \x01(\tR\x04head\x12\x12\n" + + "\x04base\x18\x04 \x01(\tR\x04base\x12\x14\n" + + "\x05title\x18\x05 \x01(\tR\x05title\x12\x12\n" + + "\x04body\x18\x06 \x01(\tR\x04body\x12\x14\n" + + "\x05draft\x18\a \x01(\bR\x05draft\x12\x14\n" + + "\x05token\x18\b \x01(\tR\x05token\"<\n" + + "\rPRCreateInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"`\n" + + "\x0ePRCreateOutput\x12\x16\n" + + "\x06number\x18\x01 \x01(\x03R\x06number\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x0e\n" + + "\x02id\x18\x03 \x01(\x03R\x02id\x12\x14\n" + + "\x05state\x18\x04 \x01(\tR\x05state\"\xa7\x01\n" + + "\rPRMergeConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x03 \x01(\x03R\bprNumber\x12!\n" + + "\fcommit_title\x18\x04 \x01(\tR\vcommitTitle\x12\x16\n" + + "\x06method\x18\x05 \x01(\tR\x06method\x12\x14\n" + + "\x05token\x18\x06 \x01(\tR\x05token\";\n" + + "\fPRMergeInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"S\n" + + "\rPRMergeOutput\x12\x16\n" + + "\x06merged\x18\x01 \x01(\bR\x06merged\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12\x10\n" + + "\x03sha\x18\x03 \x01(\tR\x03sha\"\x82\x01\n" + + "\x0fPRCommentConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x03 \x01(\x03R\bprNumber\x12\x12\n" + + "\x04body\x18\x04 \x01(\tR\x04body\x12\x14\n" + + "\x05token\x18\x05 \x01(\tR\x05token\"=\n" + + "\x0ePRCommentInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"B\n" + + "\x0fPRCommentOutput\x12\x1d\n" + + "\n" + + "comment_id\x18\x01 \x01(\x03R\tcommentId\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\"\x97\x01\n" + + "\x0ePRReviewConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x03 \x01(\x03R\bprNumber\x12\x14\n" + + "\x05event\x18\x04 \x01(\tR\x05event\x12\x12\n" + + "\x04body\x18\x05 \x01(\tR\x04body\x12\x14\n" + + "\x05token\x18\x06 \x01(\tR\x05token\"<\n" + + "\rPRReviewInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"U\n" + + "\x0ePRReviewOutput\x12\x1b\n" + + "\treview_id\x18\x01 \x01(\x03R\breviewId\x12\x14\n" + + "\x05state\x18\x02 \x01(\tR\x05state\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\"\xb3\x01\n" + + "\x11IssueCreateConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12\x12\n" + + "\x04body\x18\x04 \x01(\tR\x04body\x12\x16\n" + + "\x06labels\x18\x05 \x03(\tR\x06labels\x12\x1c\n" + + "\tassignees\x18\x06 \x03(\tR\tassignees\x12\x14\n" + + "\x05token\x18\a \x01(\tR\x05token\"?\n" + + "\x10IssueCreateInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"c\n" + + "\x11IssueCreateOutput\x12\x16\n" + + "\x06number\x18\x01 \x01(\x03R\x06number\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x0e\n" + + "\x02id\x18\x03 \x01(\x03R\x02id\x12\x14\n" + + "\x05state\x18\x04 \x01(\tR\x05state\"\x8f\x01\n" + + "\x10IssueCloseConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12!\n" + + "\fissue_number\x18\x03 \x01(\x03R\vissueNumber\x12\x18\n" + + "\acomment\x18\x04 \x01(\tR\acomment\x12\x14\n" + + "\x05token\x18\x05 \x01(\tR\x05token\">\n" + + "\x0fIssueCloseInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"R\n" + + "\x10IssueCloseOutput\x12\x16\n" + + "\x06number\x18\x01 \x01(\x03R\x06number\x12\x14\n" + + "\x05state\x18\x02 \x01(\tR\x05state\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\"\x9f\x01\n" + + "\x10IssueLabelConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12!\n" + + "\fissue_number\x18\x03 \x01(\x03R\vissueNumber\x12\x10\n" + + "\x03add\x18\x04 \x03(\tR\x03add\x12\x16\n" + + "\x06remove\x18\x05 \x03(\tR\x06remove\x12\x14\n" + + "\x05token\x18\x06 \x01(\tR\x05token\">\n" + + "\x0fIssueLabelInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"B\n" + + "\x10IssueLabelOutput\x12\x14\n" + + "\x05added\x18\x01 \x03(\tR\x05added\x12\x18\n" + + "\aremoved\x18\x02 \x03(\tR\aremoved\"\xc5\x01\n" + + "\x13ReleaseCreateConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x10\n" + + "\x03tag\x18\x03 \x01(\tR\x03tag\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x12\n" + + "\x04body\x18\x05 \x01(\tR\x04body\x12\x14\n" + + "\x05draft\x18\x06 \x01(\bR\x05draft\x12\x1e\n" + + "\n" + + "prerelease\x18\a \x01(\bR\n" + + "prerelease\x12\x14\n" + + "\x05token\x18\b \x01(\tR\x05token\"A\n" + + "\x12ReleaseCreateInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"\xad\x01\n" + + "\x13ReleaseCreateOutput\x12\x1d\n" + + "\n" + + "release_id\x18\x01 \x01(\x03R\treleaseId\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x1d\n" + + "\n" + + "upload_url\x18\x03 \x01(\tR\tuploadUrl\x12\x10\n" + + "\x03tag\x18\x04 \x01(\tR\x03tag\x12\x14\n" + + "\x05draft\x18\x05 \x01(\bR\x05draft\x12\x1e\n" + + "\n" + + "prerelease\x18\x06 \x01(\bR\n" + + "prerelease\"\x9c\x01\n" + + "\x13ReleaseUploadConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1d\n" + + "\n" + + "release_id\x18\x03 \x01(\tR\treleaseId\x12\x12\n" + + "\x04file\x18\x04 \x01(\tR\x04file\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12\x14\n" + + "\x05token\x18\x06 \x01(\tR\x05token\"A\n" + + "\x12ReleaseUploadInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"j\n" + + "\x13ReleaseUploadOutput\x12\x19\n" + + "\basset_id\x18\x01 \x01(\x03R\aassetId\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12\x12\n" + + "\x04size\x18\x04 \x01(\x03R\x04size\"\xa6\x01\n" + + "\x12RepoDispatchConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x1d\n" + + "\n" + + "event_type\x18\x03 \x01(\tR\teventType\x121\n" + + "\apayload\x18\x04 \x01(\v2\x17.google.protobuf.StructR\apayload\x12\x14\n" + + "\x05token\x18\x05 \x01(\tR\x05token\"@\n" + + "\x11RepoDispatchInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"}\n" + + "\x12RepoDispatchOutput\x12\x1e\n" + + "\n" + + "dispatched\x18\x01 \x01(\bR\n" + + "dispatched\x12\x1d\n" + + "\n" + + "event_type\x18\x02 \x01(\tR\teventType\x12\x14\n" + + "\x05owner\x18\x03 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x04 \x01(\tR\x04repo\"\xcd\x01\n" + + "\x16DeploymentCreateConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x10\n" + + "\x03ref\x18\x03 \x01(\tR\x03ref\x12 \n" + + "\venvironment\x18\x04 \x01(\tR\venvironment\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x1d\n" + + "\n" + + "auto_merge\x18\x06 \x01(\bR\tautoMerge\x12\x14\n" + + "\x05token\x18\a \x01(\tR\x05token\"D\n" + + "\x15DeploymentCreateInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"\x95\x01\n" + + "\x16DeploymentCreateOutput\x12#\n" + + "\rdeployment_id\x18\x01 \x01(\x03R\fdeploymentId\x12 \n" + + "\venvironment\x18\x02 \x01(\tR\venvironment\x12\x10\n" + + "\x03ref\x18\x03 \x01(\tR\x03ref\x12\x10\n" + + "\x03sha\x18\x04 \x01(\tR\x03sha\x12\x10\n" + + "\x03url\x18\x05 \x01(\tR\x03url\"{\n" + + "\x0fSecretSetConfig\x12\x14\n" + + "\x05owner\x18\x01 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x02 \x01(\tR\x04repo\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x04 \x01(\tR\x05value\x12\x14\n" + + "\x05token\x18\x05 \x01(\tR\x05token\"=\n" + + "\x0eSecretSetInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"a\n" + + "\x0fSecretSetOutput\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05owner\x18\x02 \x01(\tR\x05owner\x12\x12\n" + + "\x04repo\x18\x03 \x01(\tR\x04repo\x12\x10\n" + + "\x03set\x18\x04 \x01(\bR\x03set\"r\n" + + "\rGraphQLConfig\x12\x14\n" + + "\x05query\x18\x01 \x01(\tR\x05query\x125\n" + + "\tvariables\x18\x02 \x01(\v2\x17.google.protobuf.StructR\tvariables\x12\x14\n" + + "\x05token\x18\x03 \x01(\tR\x05token\";\n" + + "\fGraphQLInput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"T\n" + + "\rGraphQLOutput\x12+\n" + + "\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\x12\x16\n" + + "\x06status\x18\x02 \x01(\x05R\x06statusB google.protobuf.Struct + 54, // 1: workflow.plugin.github.v1.ActionTriggerInput.data:type_name -> google.protobuf.Struct + 54, // 2: workflow.plugin.github.v1.ActionStatusInput.data:type_name -> google.protobuf.Struct + 54, // 3: workflow.plugin.github.v1.ComputeGatewayConfig.labels:type_name -> google.protobuf.Struct + 54, // 4: workflow.plugin.github.v1.ComputeGatewayInput.data:type_name -> google.protobuf.Struct + 54, // 5: workflow.plugin.github.v1.CreateCheckInput.data:type_name -> google.protobuf.Struct + 54, // 6: workflow.plugin.github.v1.PRCreateInput.data:type_name -> google.protobuf.Struct + 54, // 7: workflow.plugin.github.v1.PRMergeInput.data:type_name -> google.protobuf.Struct + 54, // 8: workflow.plugin.github.v1.PRCommentInput.data:type_name -> google.protobuf.Struct + 54, // 9: workflow.plugin.github.v1.PRReviewInput.data:type_name -> google.protobuf.Struct + 54, // 10: workflow.plugin.github.v1.IssueCreateInput.data:type_name -> google.protobuf.Struct + 54, // 11: workflow.plugin.github.v1.IssueCloseInput.data:type_name -> google.protobuf.Struct + 54, // 12: workflow.plugin.github.v1.IssueLabelInput.data:type_name -> google.protobuf.Struct + 54, // 13: workflow.plugin.github.v1.ReleaseCreateInput.data:type_name -> google.protobuf.Struct + 54, // 14: workflow.plugin.github.v1.ReleaseUploadInput.data:type_name -> google.protobuf.Struct + 54, // 15: workflow.plugin.github.v1.RepoDispatchConfig.payload:type_name -> google.protobuf.Struct + 54, // 16: workflow.plugin.github.v1.RepoDispatchInput.data:type_name -> google.protobuf.Struct + 54, // 17: workflow.plugin.github.v1.DeploymentCreateInput.data:type_name -> google.protobuf.Struct + 54, // 18: workflow.plugin.github.v1.SecretSetInput.data:type_name -> google.protobuf.Struct + 54, // 19: workflow.plugin.github.v1.GraphQLConfig.variables:type_name -> google.protobuf.Struct + 54, // 20: workflow.plugin.github.v1.GraphQLInput.data:type_name -> google.protobuf.Struct + 54, // 21: workflow.plugin.github.v1.GraphQLOutput.data:type_name -> google.protobuf.Struct + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name +} + +func init() { file_github_proto_init() } +func file_github_proto_init() { + if File_github_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_github_proto_rawDesc), len(file_github_proto_rawDesc)), + NumEnums: 0, + NumMessages: 54, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_github_proto_goTypes, + DependencyIndexes: file_github_proto_depIdxs, + MessageInfos: file_github_proto_msgTypes, + }.Build() + File_github_proto = out.File + file_github_proto_goTypes = nil + file_github_proto_depIdxs = nil +} diff --git a/go.mod b/go.mod index 9e39dd4..63655c6 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/golang-jwt/jwt/v5 v5.3.1 github.com/google/go-github/v69 v69.2.0 golang.org/x/crypto v0.50.0 + google.golang.org/protobuf v1.36.11 ) require ( @@ -220,7 +221,6 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 // indirect google.golang.org/grpc v1.80.0 // indirect google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 // indirect - google.golang.org/protobuf v1.36.11 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/libc v1.70.0 // indirect modernc.org/mathutil v1.7.1 // indirect diff --git a/internal/contracts.go b/internal/contracts.go new file mode 100644 index 0000000..a738358 --- /dev/null +++ b/internal/contracts.go @@ -0,0 +1,194 @@ +package internal + +import ( + githubv1 "github.com/GoCodeAlone/workflow-plugin-github/gen" + pb "github.com/GoCodeAlone/workflow/plugin/external/proto" + sdk "github.com/GoCodeAlone/workflow/plugin/external/sdk" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/types/descriptorpb" + "google.golang.org/protobuf/types/known/structpb" +) + +// ContractRegistry returns the typed contract descriptors for all github module +// and step types. The workflow engine calls this via the sdk.ContractProvider +// interface to resolve proto message types for strict validation. +func (p *githubPlugin) ContractRegistry() *pb.ContractRegistry { + return githubContractRegistry +} + +// githubContractRegistry declares STRICT_PROTO contracts for all github module +// and step types. The FileDescriptorSet includes google.protobuf.Struct +// (used in free-form payload/data fields) so the engine can resolve all message +// types by full name. +var githubContractRegistry = &pb.ContractRegistry{ + FileDescriptorSet: &descriptorpb.FileDescriptorSet{ + File: []*descriptorpb.FileDescriptorProto{ + protodesc.ToFileDescriptorProto(structpb.File_google_protobuf_struct_proto), + protodesc.ToFileDescriptorProto(githubv1.File_github_proto), + }, + }, + Contracts: []*pb.ContractDescriptor{ + // ── modules ────────────────────────────────────────────────────────── + { + Kind: pb.ContractKind_CONTRACT_KIND_MODULE, + ModuleType: "git.webhook", + ConfigMessage: githubProtoPkg + "WebhookModuleConfig", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_MODULE, + ModuleType: "github.app", + ConfigMessage: githubProtoPkg + "GitHubAppModuleConfig", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_MODULE, + ModuleType: "github.runner_provider", + ConfigMessage: githubProtoPkg + "RunnerProviderModuleConfig", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + // ── steps ──────────────────────────────────────────────────────────── + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_action_trigger", + ConfigMessage: githubProtoPkg + "ActionTriggerConfig", + InputMessage: githubProtoPkg + "ActionTriggerInput", + OutputMessage: githubProtoPkg + "ActionTriggerOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_action_status", + ConfigMessage: githubProtoPkg + "ActionStatusConfig", + InputMessage: githubProtoPkg + "ActionStatusInput", + OutputMessage: githubProtoPkg + "ActionStatusOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_compute_gateway", + ConfigMessage: githubProtoPkg + "ComputeGatewayConfig", + InputMessage: githubProtoPkg + "ComputeGatewayInput", + OutputMessage: githubProtoPkg + "ComputeGatewayOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_create_check", + ConfigMessage: githubProtoPkg + "CreateCheckConfig", + InputMessage: githubProtoPkg + "CreateCheckInput", + OutputMessage: githubProtoPkg + "CreateCheckOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_pr_create", + ConfigMessage: githubProtoPkg + "PRCreateConfig", + InputMessage: githubProtoPkg + "PRCreateInput", + OutputMessage: githubProtoPkg + "PRCreateOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_pr_merge", + ConfigMessage: githubProtoPkg + "PRMergeConfig", + InputMessage: githubProtoPkg + "PRMergeInput", + OutputMessage: githubProtoPkg + "PRMergeOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_pr_comment", + ConfigMessage: githubProtoPkg + "PRCommentConfig", + InputMessage: githubProtoPkg + "PRCommentInput", + OutputMessage: githubProtoPkg + "PRCommentOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_pr_review", + ConfigMessage: githubProtoPkg + "PRReviewConfig", + InputMessage: githubProtoPkg + "PRReviewInput", + OutputMessage: githubProtoPkg + "PRReviewOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_issue_create", + ConfigMessage: githubProtoPkg + "IssueCreateConfig", + InputMessage: githubProtoPkg + "IssueCreateInput", + OutputMessage: githubProtoPkg + "IssueCreateOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_issue_close", + ConfigMessage: githubProtoPkg + "IssueCloseConfig", + InputMessage: githubProtoPkg + "IssueCloseInput", + OutputMessage: githubProtoPkg + "IssueCloseOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_issue_label", + ConfigMessage: githubProtoPkg + "IssueLabelConfig", + InputMessage: githubProtoPkg + "IssueLabelInput", + OutputMessage: githubProtoPkg + "IssueLabelOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_release_create", + ConfigMessage: githubProtoPkg + "ReleaseCreateConfig", + InputMessage: githubProtoPkg + "ReleaseCreateInput", + OutputMessage: githubProtoPkg + "ReleaseCreateOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_release_upload", + ConfigMessage: githubProtoPkg + "ReleaseUploadConfig", + InputMessage: githubProtoPkg + "ReleaseUploadInput", + OutputMessage: githubProtoPkg + "ReleaseUploadOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_repo_dispatch", + ConfigMessage: githubProtoPkg + "RepoDispatchConfig", + InputMessage: githubProtoPkg + "RepoDispatchInput", + OutputMessage: githubProtoPkg + "RepoDispatchOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_deployment_create", + ConfigMessage: githubProtoPkg + "DeploymentCreateConfig", + InputMessage: githubProtoPkg + "DeploymentCreateInput", + OutputMessage: githubProtoPkg + "DeploymentCreateOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_secret_set", + ConfigMessage: githubProtoPkg + "SecretSetConfig", + InputMessage: githubProtoPkg + "SecretSetInput", + OutputMessage: githubProtoPkg + "SecretSetOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + { + Kind: pb.ContractKind_CONTRACT_KIND_STEP, + StepType: "step.gh_graphql", + ConfigMessage: githubProtoPkg + "GraphQLConfig", + InputMessage: githubProtoPkg + "GraphQLInput", + OutputMessage: githubProtoPkg + "GraphQLOutput", + Mode: pb.ContractMode_CONTRACT_MODE_STRICT_PROTO, + }, + }, +} + +// githubProtoPkg is the proto package prefix for all github typed messages. +const githubProtoPkg = "workflow.plugin.github.v1." + +// Compile-time assertion: githubPlugin implements sdk.ContractProvider. +var _ sdk.ContractProvider = (*githubPlugin)(nil) diff --git a/internal/contracts_test.go b/internal/contracts_test.go new file mode 100644 index 0000000..38054d6 --- /dev/null +++ b/internal/contracts_test.go @@ -0,0 +1,106 @@ +package internal + +import ( + "testing" + + pb "github.com/GoCodeAlone/workflow/plugin/external/proto" +) + +func TestContractRegistry_NonNil(t *testing.T) { + p := &githubPlugin{} + reg := p.ContractRegistry() + if reg == nil { + t.Fatal("ContractRegistry() returned nil") + } + if reg.FileDescriptorSet == nil { + t.Fatal("ContractRegistry().FileDescriptorSet is nil") + } + if len(reg.FileDescriptorSet.File) == 0 { + t.Fatal("ContractRegistry().FileDescriptorSet.File is empty") + } + if len(reg.Contracts) == 0 { + t.Fatal("ContractRegistry().Contracts is empty") + } +} + +func TestContractRegistry_CoversAllModuleTypes(t *testing.T) { + p := &githubPlugin{} + reg := p.ContractRegistry() + + wantModules := []string{"git.webhook", "github.app", "github.runner_provider"} + found := map[string]bool{} + for _, c := range reg.Contracts { + if c.Kind == pb.ContractKind_CONTRACT_KIND_MODULE { + found[c.ModuleType] = true + if c.Mode != pb.ContractMode_CONTRACT_MODE_STRICT_PROTO { + t.Errorf("module %s contract mode = %v, want STRICT_PROTO", c.ModuleType, c.Mode) + } + if c.ConfigMessage == "" { + t.Errorf("module %s contract has empty ConfigMessage", c.ModuleType) + } + } + } + for _, want := range wantModules { + if !found[want] { + t.Errorf("no contract descriptor found for module type %s", want) + } + } +} + +func TestContractRegistry_CoversAllStepTypes(t *testing.T) { + p := &githubPlugin{} + reg := p.ContractRegistry() + + wantSteps := []string{ + "step.gh_action_trigger", + "step.gh_action_status", + "step.gh_compute_gateway", + "step.gh_create_check", + "step.gh_pr_create", + "step.gh_pr_merge", + "step.gh_pr_comment", + "step.gh_pr_review", + "step.gh_issue_create", + "step.gh_issue_close", + "step.gh_issue_label", + "step.gh_release_create", + "step.gh_release_upload", + "step.gh_repo_dispatch", + "step.gh_deployment_create", + "step.gh_secret_set", + "step.gh_graphql", + } + + found := map[string]bool{} + for _, c := range reg.Contracts { + if c.Kind == pb.ContractKind_CONTRACT_KIND_STEP { + found[c.StepType] = true + if c.Mode != pb.ContractMode_CONTRACT_MODE_STRICT_PROTO { + t.Errorf("step %s contract mode = %v, want STRICT_PROTO", c.StepType, c.Mode) + } + if c.ConfigMessage == "" { + t.Errorf("step %s contract has empty ConfigMessage", c.StepType) + } + if c.InputMessage == "" { + t.Errorf("step %s contract has empty InputMessage", c.StepType) + } + if c.OutputMessage == "" { + t.Errorf("step %s contract has empty OutputMessage", c.StepType) + } + } + } + for _, want := range wantSteps { + if !found[want] { + t.Errorf("no contract descriptor found for step type %s", want) + } + } +} + +func TestContractRegistry_ContractCount(t *testing.T) { + p := &githubPlugin{} + reg := p.ContractRegistry() + // 3 modules + 17 steps = 20 total + if len(reg.Contracts) != 20 { + t.Errorf("expected 20 contracts (3 modules + 17 steps), got %d", len(reg.Contracts)) + } +} diff --git a/plugin.contracts.json b/plugin.contracts.json new file mode 100644 index 0000000..cbb7bbd --- /dev/null +++ b/plugin.contracts.json @@ -0,0 +1,159 @@ +{ + "version": "1", + "contracts": [ + { + "kind": "module", + "type": "git.webhook", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.WebhookModuleConfig" + }, + { + "kind": "module", + "type": "github.app", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.GitHubAppModuleConfig" + }, + { + "kind": "module", + "type": "github.runner_provider", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.RunnerProviderModuleConfig" + }, + { + "kind": "step", + "type": "step.gh_action_trigger", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ActionTriggerConfig", + "input": "workflow.plugin.github.v1.ActionTriggerInput", + "output": "workflow.plugin.github.v1.ActionTriggerOutput" + }, + { + "kind": "step", + "type": "step.gh_action_status", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ActionStatusConfig", + "input": "workflow.plugin.github.v1.ActionStatusInput", + "output": "workflow.plugin.github.v1.ActionStatusOutput" + }, + { + "kind": "step", + "type": "step.gh_compute_gateway", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ComputeGatewayConfig", + "input": "workflow.plugin.github.v1.ComputeGatewayInput", + "output": "workflow.plugin.github.v1.ComputeGatewayOutput" + }, + { + "kind": "step", + "type": "step.gh_create_check", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.CreateCheckConfig", + "input": "workflow.plugin.github.v1.CreateCheckInput", + "output": "workflow.plugin.github.v1.CreateCheckOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRCreateConfig", + "input": "workflow.plugin.github.v1.PRCreateInput", + "output": "workflow.plugin.github.v1.PRCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_merge", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRMergeConfig", + "input": "workflow.plugin.github.v1.PRMergeInput", + "output": "workflow.plugin.github.v1.PRMergeOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_comment", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRCommentConfig", + "input": "workflow.plugin.github.v1.PRCommentInput", + "output": "workflow.plugin.github.v1.PRCommentOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_review", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRReviewConfig", + "input": "workflow.plugin.github.v1.PRReviewInput", + "output": "workflow.plugin.github.v1.PRReviewOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueCreateConfig", + "input": "workflow.plugin.github.v1.IssueCreateInput", + "output": "workflow.plugin.github.v1.IssueCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_close", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueCloseConfig", + "input": "workflow.plugin.github.v1.IssueCloseInput", + "output": "workflow.plugin.github.v1.IssueCloseOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_label", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueLabelConfig", + "input": "workflow.plugin.github.v1.IssueLabelInput", + "output": "workflow.plugin.github.v1.IssueLabelOutput" + }, + { + "kind": "step", + "type": "step.gh_release_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ReleaseCreateConfig", + "input": "workflow.plugin.github.v1.ReleaseCreateInput", + "output": "workflow.plugin.github.v1.ReleaseCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_release_upload", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ReleaseUploadConfig", + "input": "workflow.plugin.github.v1.ReleaseUploadInput", + "output": "workflow.plugin.github.v1.ReleaseUploadOutput" + }, + { + "kind": "step", + "type": "step.gh_repo_dispatch", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.RepoDispatchConfig", + "input": "workflow.plugin.github.v1.RepoDispatchInput", + "output": "workflow.plugin.github.v1.RepoDispatchOutput" + }, + { + "kind": "step", + "type": "step.gh_deployment_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.DeploymentCreateConfig", + "input": "workflow.plugin.github.v1.DeploymentCreateInput", + "output": "workflow.plugin.github.v1.DeploymentCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_secret_set", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.SecretSetConfig", + "input": "workflow.plugin.github.v1.SecretSetInput", + "output": "workflow.plugin.github.v1.SecretSetOutput" + }, + { + "kind": "step", + "type": "step.gh_graphql", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.GraphQLConfig", + "input": "workflow.plugin.github.v1.GraphQLInput", + "output": "workflow.plugin.github.v1.GraphQLOutput" + } + ] +} diff --git a/plugin.json b/plugin.json index c3bb9fc..69d32d9 100644 --- a/plugin.json +++ b/plugin.json @@ -10,6 +10,33 @@ "keywords": ["github", "webhook", "git", "actions", "ci", "cd", "integration", "pull-request", "release"], "homepage": "https://github.com/GoCodeAlone/workflow-plugin-github", "repository": "https://github.com/GoCodeAlone/workflow-plugin-github", + "downloads": [ + { + "os": "linux", + "arch": "amd64", + "url": "https://github.com/GoCodeAlone/workflow-plugin-github/releases/download/v1.0.1/workflow-plugin-github-linux-amd64.tar.gz" + }, + { + "os": "linux", + "arch": "arm64", + "url": "https://github.com/GoCodeAlone/workflow-plugin-github/releases/download/v1.0.1/workflow-plugin-github-linux-arm64.tar.gz" + }, + { + "os": "darwin", + "arch": "amd64", + "url": "https://github.com/GoCodeAlone/workflow-plugin-github/releases/download/v1.0.1/workflow-plugin-github-darwin-amd64.tar.gz" + }, + { + "os": "darwin", + "arch": "arm64", + "url": "https://github.com/GoCodeAlone/workflow-plugin-github/releases/download/v1.0.1/workflow-plugin-github-darwin-arm64.tar.gz" + }, + { + "os": "windows", + "arch": "amd64", + "url": "https://github.com/GoCodeAlone/workflow-plugin-github/releases/download/v1.0.1/workflow-plugin-github-windows-amd64.tar.gz" + } + ], "moduleTypes": ["git.webhook", "github.app", "github.runner_provider"], "stepTypes": [ "step.gh_action_trigger", @@ -31,6 +58,162 @@ "step.gh_graphql" ], "triggerTypes": [], + "contracts": [ + { + "kind": "module", + "type": "git.webhook", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.WebhookModuleConfig" + }, + { + "kind": "module", + "type": "github.app", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.GitHubAppModuleConfig" + }, + { + "kind": "module", + "type": "github.runner_provider", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.RunnerProviderModuleConfig" + }, + { + "kind": "step", + "type": "step.gh_action_trigger", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ActionTriggerConfig", + "input": "workflow.plugin.github.v1.ActionTriggerInput", + "output": "workflow.plugin.github.v1.ActionTriggerOutput" + }, + { + "kind": "step", + "type": "step.gh_action_status", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ActionStatusConfig", + "input": "workflow.plugin.github.v1.ActionStatusInput", + "output": "workflow.plugin.github.v1.ActionStatusOutput" + }, + { + "kind": "step", + "type": "step.gh_compute_gateway", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ComputeGatewayConfig", + "input": "workflow.plugin.github.v1.ComputeGatewayInput", + "output": "workflow.plugin.github.v1.ComputeGatewayOutput" + }, + { + "kind": "step", + "type": "step.gh_create_check", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.CreateCheckConfig", + "input": "workflow.plugin.github.v1.CreateCheckInput", + "output": "workflow.plugin.github.v1.CreateCheckOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRCreateConfig", + "input": "workflow.plugin.github.v1.PRCreateInput", + "output": "workflow.plugin.github.v1.PRCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_merge", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRMergeConfig", + "input": "workflow.plugin.github.v1.PRMergeInput", + "output": "workflow.plugin.github.v1.PRMergeOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_comment", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRCommentConfig", + "input": "workflow.plugin.github.v1.PRCommentInput", + "output": "workflow.plugin.github.v1.PRCommentOutput" + }, + { + "kind": "step", + "type": "step.gh_pr_review", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.PRReviewConfig", + "input": "workflow.plugin.github.v1.PRReviewInput", + "output": "workflow.plugin.github.v1.PRReviewOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueCreateConfig", + "input": "workflow.plugin.github.v1.IssueCreateInput", + "output": "workflow.plugin.github.v1.IssueCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_close", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueCloseConfig", + "input": "workflow.plugin.github.v1.IssueCloseInput", + "output": "workflow.plugin.github.v1.IssueCloseOutput" + }, + { + "kind": "step", + "type": "step.gh_issue_label", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.IssueLabelConfig", + "input": "workflow.plugin.github.v1.IssueLabelInput", + "output": "workflow.plugin.github.v1.IssueLabelOutput" + }, + { + "kind": "step", + "type": "step.gh_release_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ReleaseCreateConfig", + "input": "workflow.plugin.github.v1.ReleaseCreateInput", + "output": "workflow.plugin.github.v1.ReleaseCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_release_upload", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.ReleaseUploadConfig", + "input": "workflow.plugin.github.v1.ReleaseUploadInput", + "output": "workflow.plugin.github.v1.ReleaseUploadOutput" + }, + { + "kind": "step", + "type": "step.gh_repo_dispatch", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.RepoDispatchConfig", + "input": "workflow.plugin.github.v1.RepoDispatchInput", + "output": "workflow.plugin.github.v1.RepoDispatchOutput" + }, + { + "kind": "step", + "type": "step.gh_deployment_create", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.DeploymentCreateConfig", + "input": "workflow.plugin.github.v1.DeploymentCreateInput", + "output": "workflow.plugin.github.v1.DeploymentCreateOutput" + }, + { + "kind": "step", + "type": "step.gh_secret_set", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.SecretSetConfig", + "input": "workflow.plugin.github.v1.SecretSetInput", + "output": "workflow.plugin.github.v1.SecretSetOutput" + }, + { + "kind": "step", + "type": "step.gh_graphql", + "mode": "strict_proto", + "config": "workflow.plugin.github.v1.GraphQLConfig", + "input": "workflow.plugin.github.v1.GraphQLInput", + "output": "workflow.plugin.github.v1.GraphQLOutput" + } + ], "stepSchemas": [ { "type": "step.gh_action_trigger", diff --git a/proto/github/v1/github.proto b/proto/github/v1/github.proto new file mode 100644 index 0000000..5bd5b89 --- /dev/null +++ b/proto/github/v1/github.proto @@ -0,0 +1,462 @@ +syntax = "proto3"; +package workflow.plugin.github.v1; + +import "google/protobuf/struct.proto"; + +option go_package = "github.com/GoCodeAlone/workflow-plugin-github/gen;githubv1"; + +// WebhookModuleConfig is the typed config for the git.webhook module type. +// Registers an HTTP handler that validates GitHub webhook signatures and +// publishes normalized GitEvent messages to a host EventBus topic. +message WebhookModuleConfig { + // provider identifies the git provider. Default: "github". + string provider = 1; + // secret is the HMAC-SHA256 shared secret used to validate webhook payloads. + string secret = 2; + // events is the list of GitHub event types to forward (empty = all events). + repeated string events = 3; + // topic is the EventBus topic to publish normalized events to. Default: "git.events". + string topic = 4; +} + +// GitHubAppModuleConfig is the typed config for the github.app module type. +// Manages GitHub App authentication; generates installation access tokens from +// an App private key and installation ID. +message GitHubAppModuleConfig { + // app_id is the numeric GitHub App ID. + int64 app_id = 1; + // installation_id is the installation ID for the target org or user account. + int64 installation_id = 2; + // private_key is the PEM-encoded RSA private key for the GitHub App. + string private_key = 3; +} + +// RunnerProviderModuleConfig is the typed config for the github.runner_provider module type. +// Exposes an HTTP API for provisioning ephemeral GitHub Actions self-hosted runner tokens. +message RunnerProviderModuleConfig { + // token is the GitHub personal access token with actions:write scope. + string token = 1; + // provider_token is the shared secret that callers must present to the provider API. + string provider_token = 2; + // api_base_url is the GitHub API base URL. Default: "https://api.github.com". + string api_base_url = 3; + // repositories is the allowlist of "owner/repo" strings the provider will serve tokens for. + repeated string repositories = 4; +} + +// ActionTriggerConfig is the typed config for step.gh_action_trigger. +message ActionTriggerConfig { + string owner = 1; + string repo = 2; + string workflow = 3; + string ref = 4; + google.protobuf.Struct inputs = 5; + string token = 6; +} + +// ActionTriggerInput carries runtime inputs for step.gh_action_trigger. +message ActionTriggerInput { + google.protobuf.Struct data = 1; +} + +// ActionTriggerOutput holds the result of step.gh_action_trigger. +message ActionTriggerOutput { + bool triggered = 1; + string owner = 2; + string repo = 3; + string workflow = 4; + string ref = 5; +} + +// ActionStatusConfig is the typed config for step.gh_action_status. +message ActionStatusConfig { + string owner = 1; + string repo = 2; + string run_id = 3; + string token = 4; + bool wait = 5; + string poll_interval = 6; + string timeout = 7; +} + +// ActionStatusInput carries runtime inputs for step.gh_action_status. +message ActionStatusInput { + google.protobuf.Struct data = 1; +} + +// ActionStatusOutput holds the result of step.gh_action_status. +message ActionStatusOutput { + int64 run_id = 1; + string status = 2; + string conclusion = 3; + string url = 4; +} + +// ComputeGatewayConfig is the typed config for step.gh_compute_gateway. +message ComputeGatewayConfig { + string server_url = 1; + string token = 2; + string repository = 3; + string oidc_token = 4; + string workflow_run_id = 5; + string workflow_run_attempt = 6; + string workflow_job_id = 7; + string workflow_job_name = 8; + string ref = 9; + string sha = 10; + string org_id = 11; + string pool_id = 12; + string policy_id = 13; + repeated string command_args = 14; + string working_directory = 15; + repeated string artifact_allowlist = 16; + google.protobuf.Struct labels = 17; + string executor_provider = 18; + string execution_security_tier = 19; + string proof_tier = 20; + string hardware_class = 21; + bool wait = 22; + string poll_interval = 23; + string timeout = 24; + bool write_check = 25; + string check_owner = 26; + string check_repo = 27; + string check_sha = 28; + string check_name = 29; + string check_token = 30; +} + +// ComputeGatewayInput carries runtime inputs for step.gh_compute_gateway. +message ComputeGatewayInput { + google.protobuf.Struct data = 1; +} + +// ComputeGatewayOutput holds the result of step.gh_compute_gateway. +message ComputeGatewayOutput { + string task_id = 1; + string status = 2; + string conclusion = 3; + string proof_id = 4; + string artifact_hash = 5; + string contribution_id = 6; + string worker_id = 7; + int64 check_run_id = 8; + string check_url = 9; +} + +// CreateCheckConfig is the typed config for step.gh_create_check. +message CreateCheckConfig { + string owner = 1; + string repo = 2; + string sha = 3; + string name = 4; + string status = 5; + string conclusion = 6; + string title = 7; + string summary = 8; + string token = 9; +} + +// CreateCheckInput carries runtime inputs for step.gh_create_check. +message CreateCheckInput { + google.protobuf.Struct data = 1; +} + +// CreateCheckOutput holds the result of step.gh_create_check. +message CreateCheckOutput { + int64 check_run_id = 1; + string status = 2; + string url = 3; +} + +// PRCreateConfig is the typed config for step.gh_pr_create. +message PRCreateConfig { + string owner = 1; + string repo = 2; + string head = 3; + string base = 4; + string title = 5; + string body = 6; + bool draft = 7; + string token = 8; +} + +// PRCreateInput carries runtime inputs for step.gh_pr_create. +message PRCreateInput { + google.protobuf.Struct data = 1; +} + +// PRCreateOutput holds the result of step.gh_pr_create. +message PRCreateOutput { + int64 number = 1; + string url = 2; + int64 id = 3; + string state = 4; +} + +// PRMergeConfig is the typed config for step.gh_pr_merge. +message PRMergeConfig { + string owner = 1; + string repo = 2; + int64 pr_number = 3; + string commit_title = 4; + string method = 5; + string token = 6; +} + +// PRMergeInput carries runtime inputs for step.gh_pr_merge. +message PRMergeInput { + google.protobuf.Struct data = 1; +} + +// PRMergeOutput holds the result of step.gh_pr_merge. +message PRMergeOutput { + bool merged = 1; + string message = 2; + string sha = 3; +} + +// PRCommentConfig is the typed config for step.gh_pr_comment. +message PRCommentConfig { + string owner = 1; + string repo = 2; + int64 pr_number = 3; + string body = 4; + string token = 5; +} + +// PRCommentInput carries runtime inputs for step.gh_pr_comment. +message PRCommentInput { + google.protobuf.Struct data = 1; +} + +// PRCommentOutput holds the result of step.gh_pr_comment. +message PRCommentOutput { + int64 comment_id = 1; + string url = 2; +} + +// PRReviewConfig is the typed config for step.gh_pr_review. +message PRReviewConfig { + string owner = 1; + string repo = 2; + int64 pr_number = 3; + string event = 4; + string body = 5; + string token = 6; +} + +// PRReviewInput carries runtime inputs for step.gh_pr_review. +message PRReviewInput { + google.protobuf.Struct data = 1; +} + +// PRReviewOutput holds the result of step.gh_pr_review. +message PRReviewOutput { + int64 review_id = 1; + string state = 2; + string url = 3; +} + +// IssueCreateConfig is the typed config for step.gh_issue_create. +message IssueCreateConfig { + string owner = 1; + string repo = 2; + string title = 3; + string body = 4; + repeated string labels = 5; + repeated string assignees = 6; + string token = 7; +} + +// IssueCreateInput carries runtime inputs for step.gh_issue_create. +message IssueCreateInput { + google.protobuf.Struct data = 1; +} + +// IssueCreateOutput holds the result of step.gh_issue_create. +message IssueCreateOutput { + int64 number = 1; + string url = 2; + int64 id = 3; + string state = 4; +} + +// IssueCloseConfig is the typed config for step.gh_issue_close. +message IssueCloseConfig { + string owner = 1; + string repo = 2; + int64 issue_number = 3; + string comment = 4; + string token = 5; +} + +// IssueCloseInput carries runtime inputs for step.gh_issue_close. +message IssueCloseInput { + google.protobuf.Struct data = 1; +} + +// IssueCloseOutput holds the result of step.gh_issue_close. +message IssueCloseOutput { + int64 number = 1; + string state = 2; + string url = 3; +} + +// IssueLabelConfig is the typed config for step.gh_issue_label. +message IssueLabelConfig { + string owner = 1; + string repo = 2; + int64 issue_number = 3; + repeated string add = 4; + repeated string remove = 5; + string token = 6; +} + +// IssueLabelInput carries runtime inputs for step.gh_issue_label. +message IssueLabelInput { + google.protobuf.Struct data = 1; +} + +// IssueLabelOutput holds the result of step.gh_issue_label. +message IssueLabelOutput { + repeated string added = 1; + repeated string removed = 2; +} + +// ReleaseCreateConfig is the typed config for step.gh_release_create. +message ReleaseCreateConfig { + string owner = 1; + string repo = 2; + string tag = 3; + string name = 4; + string body = 5; + bool draft = 6; + bool prerelease = 7; + string token = 8; +} + +// ReleaseCreateInput carries runtime inputs for step.gh_release_create. +message ReleaseCreateInput { + google.protobuf.Struct data = 1; +} + +// ReleaseCreateOutput holds the result of step.gh_release_create. +message ReleaseCreateOutput { + int64 release_id = 1; + string url = 2; + string upload_url = 3; + string tag = 4; + bool draft = 5; + bool prerelease = 6; +} + +// ReleaseUploadConfig is the typed config for step.gh_release_upload. +message ReleaseUploadConfig { + string owner = 1; + string repo = 2; + string release_id = 3; + string file = 4; + string name = 5; + string token = 6; +} + +// ReleaseUploadInput carries runtime inputs for step.gh_release_upload. +message ReleaseUploadInput { + google.protobuf.Struct data = 1; +} + +// ReleaseUploadOutput holds the result of step.gh_release_upload. +message ReleaseUploadOutput { + int64 asset_id = 1; + string url = 2; + string name = 3; + int64 size = 4; +} + +// RepoDispatchConfig is the typed config for step.gh_repo_dispatch. +message RepoDispatchConfig { + string owner = 1; + string repo = 2; + string event_type = 3; + google.protobuf.Struct payload = 4; + string token = 5; +} + +// RepoDispatchInput carries runtime inputs for step.gh_repo_dispatch. +message RepoDispatchInput { + google.protobuf.Struct data = 1; +} + +// RepoDispatchOutput holds the result of step.gh_repo_dispatch. +message RepoDispatchOutput { + bool dispatched = 1; + string event_type = 2; + string owner = 3; + string repo = 4; +} + +// DeploymentCreateConfig is the typed config for step.gh_deployment_create. +message DeploymentCreateConfig { + string owner = 1; + string repo = 2; + string ref = 3; + string environment = 4; + string description = 5; + bool auto_merge = 6; + string token = 7; +} + +// DeploymentCreateInput carries runtime inputs for step.gh_deployment_create. +message DeploymentCreateInput { + google.protobuf.Struct data = 1; +} + +// DeploymentCreateOutput holds the result of step.gh_deployment_create. +message DeploymentCreateOutput { + int64 deployment_id = 1; + string environment = 2; + string ref = 3; + string sha = 4; + string url = 5; +} + +// SecretSetConfig is the typed config for step.gh_secret_set. +message SecretSetConfig { + string owner = 1; + string repo = 2; + string name = 3; + string value = 4; + string token = 5; +} + +// SecretSetInput carries runtime inputs for step.gh_secret_set. +message SecretSetInput { + google.protobuf.Struct data = 1; +} + +// SecretSetOutput holds the result of step.gh_secret_set. +message SecretSetOutput { + string name = 1; + string owner = 2; + string repo = 3; + bool set = 4; +} + +// GraphQLConfig is the typed config for step.gh_graphql. +message GraphQLConfig { + string query = 1; + google.protobuf.Struct variables = 2; + string token = 3; +} + +// GraphQLInput carries runtime inputs for step.gh_graphql. +message GraphQLInput { + google.protobuf.Struct data = 1; +} + +// GraphQLOutput holds the result of step.gh_graphql. +message GraphQLOutput { + google.protobuf.Struct data = 1; + int32 status = 2; +}