feat: add approval step

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2026-03-15 19:46:33 +01:00
parent 533b738692
commit 7eb6ae7cbb
41 changed files with 7886 additions and 1724 deletions

View File

@@ -0,0 +1,79 @@
syntax = "proto3";
package forest.v1;
import "forest/v1/releases.proto";
message Trigger {
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 CreateTriggerRequest {
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 CreateTriggerResponse {
Trigger trigger = 1;
}
message UpdateTriggerRequest {
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 UpdateTriggerResponse {
Trigger trigger = 1;
}
message DeleteTriggerRequest {
Project project = 1;
string name = 2;
}
message DeleteTriggerResponse {}
message ListTriggersRequest {
Project project = 1;
}
message ListTriggersResponse {
repeated Trigger triggers = 1;
}
service TriggerService {
rpc CreateTrigger(CreateTriggerRequest) returns (CreateTriggerResponse);
rpc UpdateTrigger(UpdateTriggerRequest) returns (UpdateTriggerResponse);
rpc DeleteTrigger(DeleteTriggerRequest) returns (DeleteTriggerResponse);
rpc ListTriggers(ListTriggersRequest) returns (ListTriggersResponse);
}