Skip to content

Commit e595f9e

Browse files
committed
feat(stovepipe): define GetProjectStatusByURI API
1 parent 9292e3c commit e595f9e

6 files changed

Lines changed: 624 additions & 43 deletions

File tree

api/stovepipe/proto/stovepipe.proto

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,64 @@ message IngestResponse {
5454
string id = 1;
5555
}
5656

57+
// ValidationResult is the immutable validation verdict for one scope.
58+
message ValidationResult {
59+
// Degree measures how broken the scope is on [0.0, 1.0]. Zero is fully
60+
// green and one is fully broken.
61+
double degree = 1;
62+
}
63+
64+
// GetProjectStatusByURIRequest selects the authoritative validation for an exact commit URI.
65+
message GetProjectStatusByURIRequest {
66+
// Logical queue containing the request.
67+
string queue = 1;
68+
// Exact VCS-agnostic commit URI whose authoritative request is selected.
69+
string change_uri = 2;
70+
// Optional exact project scope. When absent, one page of planned projects is returned.
71+
optional string project = 3;
72+
// Maximum projects to return. Zero selects the server default.
73+
int32 page_size = 4;
74+
// Opaque continuation token. Empty selects the first page.
75+
string page_token = 5;
76+
}
77+
78+
// ProjectValidation is the recorded validation for one planned project.
79+
message ProjectValidation {
80+
// Stable project identifier.
81+
string project = 1;
82+
// Immutable verdict for the project. Unset until its fact is recorded.
83+
ValidationResult result = 2;
84+
}
85+
86+
// GetProjectStatusByURIResponse contains the authoritative request's current validation projection.
87+
message GetProjectStatusByURIResponse {
88+
// Globally unique identifier of the authoritative request.
89+
string request_id = 1;
90+
// Logical queue containing the request.
91+
string queue = 2;
92+
// VCS-agnostic commit URI validated by the request.
93+
string change_uri = 3;
94+
// Baseline URI for incremental validation. Empty for a full build.
95+
string base_uri = 4;
96+
// Stable public lifecycle state of the request.
97+
string request_state = 5;
98+
// Immutable whole-repository verdict. Unset until its fact is recorded.
99+
ValidationResult repository_result = 6;
100+
// Whether every planned project has one durable result and completion is recorded.
101+
bool project_results_complete = 7;
102+
// Planned projects in stable project order, with any recorded verdicts.
103+
repeated ProjectValidation projects = 8;
104+
// Opaque continuation token. Empty on the final page.
105+
string next_page_token = 9;
106+
}
107+
57108
// Stovepipe provides the Stovepipe API.
58109
service Stovepipe {
59110
// Ping returns a response indicating the service is alive
60111
rpc Ping(PingRequest) returns (PingResponse) {}
61112
// Ingest admits a queue's newly observed commit into the validation pipeline and returns
62113
// the minted request ID. The caller hands off asynchronously; validation happens later.
63114
rpc Ingest(IngestRequest) returns (IngestResponse) {}
115+
// GetProjectStatusByURI returns current validation for an exact commit URI's authoritative request.
116+
rpc GetProjectStatusByURI(GetProjectStatusByURIRequest) returns (GetProjectStatusByURIResponse) {}
64117
}

0 commit comments

Comments
 (0)