@@ -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.
58109service 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