Files
client/interface/proto/forest/v1/auto_release_policies.proto
2026-03-08 23:00:03 +01:00

80 lines
2.5 KiB
Protocol Buffer

syntax = "proto3";
package forest.v1;
import "forest/v1/releases.proto";
message AutoReleasePolicy {
string id = 1;
string name = 2;
bool enabled = 3;
optional string branch_pattern = 4;
optional string title_pattern = 5;
optional string author_pattern = 6;
optional string commit_message_pattern = 7;
optional string source_type_pattern = 8;
repeated string target_environments = 9;
repeated string target_destinations = 10;
bool force_release = 11;
string created_at = 12;
string updated_at = 13;
// When true, trigger the project's release pipeline instead of
// deploying directly to target destinations/environments.
bool use_pipeline = 14;
}
message CreateAutoReleasePolicyRequest {
Project project = 1;
string name = 2;
optional string branch_pattern = 3;
optional string title_pattern = 4;
optional string author_pattern = 5;
optional string commit_message_pattern = 6;
optional string source_type_pattern = 7;
repeated string target_environments = 8;
repeated string target_destinations = 9;
bool force_release = 10;
bool use_pipeline = 11;
}
message CreateAutoReleasePolicyResponse {
AutoReleasePolicy policy = 1;
}
message UpdateAutoReleasePolicyRequest {
Project project = 1;
string name = 2;
optional bool enabled = 3;
optional string branch_pattern = 4;
optional string title_pattern = 5;
optional string author_pattern = 6;
optional string commit_message_pattern = 7;
optional string source_type_pattern = 8;
repeated string target_environments = 9;
repeated string target_destinations = 10;
optional bool force_release = 11;
optional bool use_pipeline = 12;
}
message UpdateAutoReleasePolicyResponse {
AutoReleasePolicy policy = 1;
}
message DeleteAutoReleasePolicyRequest {
Project project = 1;
string name = 2;
}
message DeleteAutoReleasePolicyResponse {}
message ListAutoReleasePoliciesRequest {
Project project = 1;
}
message ListAutoReleasePoliciesResponse {
repeated AutoReleasePolicy policies = 1;
}
service AutoReleasePolicyService {
rpc CreateAutoReleasePolicy(CreateAutoReleasePolicyRequest) returns (CreateAutoReleasePolicyResponse);
rpc UpdateAutoReleasePolicy(UpdateAutoReleasePolicyRequest) returns (UpdateAutoReleasePolicyResponse);
rpc DeleteAutoReleasePolicy(DeleteAutoReleasePolicyRequest) returns (DeleteAutoReleasePolicyResponse);
rpc ListAutoReleasePolicies(ListAutoReleasePoliciesRequest) returns (ListAutoReleasePoliciesResponse);
}