go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/resultdb/internal/proto/redis.proto (about)

     1  // Copyright 2019 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  syntax = "proto3";
    16  
    17  package luci.resultdb.internal;
    18  
    19  import "go.chromium.org/luci/resultdb/proto/v1/invocation.proto";
    20  
    21  option go_package = "go.chromium.org/luci/resultdb/internal/proto;internalpb";
    22  
    23  
    24  // ReachableInvocations captures the invocations reachable from a root
    25  // invocation (including the invocation itself). It is stored as a value
    26  // in redis for finalized invocations alongside the ID of that invocation.
    27  message ReachableInvocations {
    28      message ReachableInvocation {
    29          // The invocation ID.
    30          string invocation_id = 1;
    31          // Whether the invocation has any test results.
    32          bool has_test_results = 2;
    33          // Whether the invocation has any test exonerations.
    34          bool has_test_exonerations = 3;
    35          // The realm of the invocation.
    36          string realm = 4;
    37          // The offset of this invocation's resolved sources
    38          // in ReachableInvocations.sources.
    39          // 0 indicates there are no sources, 1 indicates the
    40          // sources are at ReachableInvocations.sources[0], 2 indicates
    41          // the sources are at ReachableInvocations.sources[1] and so on.
    42          int64 source_offset = 5;
    43      }
    44      // The invocations reachable. This includes the root invocation
    45      // (the invocation for which this cache entry is) itself.
    46      repeated ReachableInvocation invocations = 1;
    47  
    48      // The distinct sources in the reachable invocation graph.
    49      // As many invocations will have the same sources, this
    50      // is used to reduce the stored size.
    51      repeated luci.resultdb.v1.Sources sources = 2;
    52  }