go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/common/proto/config/project_config.proto (about)

     1  // Copyright 2014 The LUCI Authors. All rights reserved.
     2  // Use of this source code is governed under the Apache License, Version 2.0
     3  // that can be found in the LICENSE file.
     4  
     5  // Schemas for some of config files in projects/<project_id> config sets.
     6  
     7  syntax = "proto3";
     8  
     9  option go_package = "go.chromium.org/luci/common/proto/config";
    10  
    11  package config;
    12  
    13  import "go.chromium.org/luci/common/proto/options.proto";
    14  
    15  option (luci.file_metadata) = {
    16    doc_url: "https://config.luci.app/schemas/projects:project.cfg";
    17  };
    18  
    19  // Schema for project.cfg
    20  message ProjectCfg {
    21    // Full name of the project.
    22    string name = 1;
    23    // A list of identities that have read-only access to the project.
    24    //
    25    // An element is one of:
    26    // * "group:<group>", where group is defined on auth server.
    27    // * "<email>"
    28    // * "<kind>:<value>" (for non-email identities)
    29    //
    30    // If not specified, only admins and trusted services have access.
    31    // Talk to admins to determine the group name appropriate for your project.
    32    repeated string access = 2;
    33  
    34    // Populated when the config is generated by `lucicfg`.
    35    //
    36    // Contains information about how the config was generated.
    37    GeneratorMetadata lucicfg = 3 [(luci.lucicfg_ignore) = true];
    38  }
    39  
    40  // GeneratorMetadata is produced by lucicfg to describe how it generated the
    41  // config.
    42  message GeneratorMetadata {
    43    // Version of lucicfg binary used to generate the config.
    44    string version = 1;
    45    // Path to the main package relative to project.cfg.
    46    string package_dir = 5;
    47    // Directory with generated LUCI project configs relative to the main package.
    48    string config_dir = 2;
    49    // Name of the entry point Starlark file at the root of the main package.
    50    string entry_point = 3;
    51    // Set of vars passed to lucicfg as "-var ...".
    52    map<string, string> vars = 4;
    53    // Set of enabled lucicfg experiments.
    54    repeated string experiments = 6;
    55  }
    56  
    57  // DEPRECATED per crbug/924803. DO NOT USE in your project.
    58  // Contact luci-team@ if you have a need for this.
    59  //
    60  // Schema of refs.cfg.
    61  message RefsCfg {
    62    message Ref {
    63      // Name of the ref. Must start with "refs/".
    64      string name = 1;
    65      // Path to config directory for the ref. Defaults to "infra/config".
    66      string config_path = 3;
    67    }
    68    // List of refs that have configuration files and need to be fetched into
    69    // luci-config. Refs are accessible through get_refs() API endpoint.
    70    // A CI service can read all refs of all projects and build them.
    71    repeated Ref refs = 1;
    72  }