blob: 200662a426807de6eaecf185680ae131330fbb65 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package project_mgmt;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/project_mgmt";
// Defines ACLs for a project's builders.
message BuildbucketAcls {
// A list of LUCI Auth Service groups that can view a project's builds.
repeated string buildbucket_readers = 1;
}
// Describes the location of a local manifest file.
// See https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md#local-manifests.
message LocalManifest {
// URL of the repo with the local manifest. E.g.
// https://chrome-internal.googlesource.com/chromeos/project/...
string repo_url = 1;
// Path to the local manifest.
// Relative to the repo.
string manifest_path = 2;
}
// Defines the metadata for a project, which ultimately controls how this
// project is managed throughout the infrastructure.
//
// NEXT ID: 8
message Project {
// Defines the human-readable name for the project.
string name = 1;
// Defines the git-repo path for the project.
string repo = 2;
// Defines the path that stores all of the project configuration.
// Relative to the git-repo
string config_path = 3;
// Defines the path the repo is checked out to in the source tree, i.e. the
// "path" attribute in the manifest.
string repo_checkout_path = 4;
// Defines ACLs for a project's builders.
BuildbucketAcls buildbucket_acls = 5;
// Define the project's local_manifest.
LocalManifest local_manifest = 6;
// The Google Storage bucket for artifacts from the project's builds.
string gs_bucket = 7;
}
message ProjectList {
repeated Project value = 1;
}