Skip to content

Commit

Permalink
Merge branch 'main' into pkw/relax-v1-buf-yaml-required
Browse files Browse the repository at this point in the history
  • Loading branch information
pkwarren committed Feb 27, 2024
2 parents 35f527a + 641cb69 commit f52d86e
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 50 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ BIN := .tmp/bin
export PATH := $(BIN):$(PATH)
export GOBIN := $(abspath $(BIN))

BUF_VERSION := v1.28.1
BUF_VERSION := v1.29.0
COPYRIGHT_YEARS := 2023-2024

.PHONY: help
Expand Down
42 changes: 24 additions & 18 deletions buf/registry/legacy/federation/v1beta1/upload_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,27 @@ service UploadService {
// See the package documentation for more details. You should likely use buf.registry.module.v1beta1
// and not this package.
message UploadRequest {
// A dependency of Content, either referencing another Content message, or referencing
// a Commit that already exists.
// A dependency of one or more references specified by Contents.
//
// Dependencies between Contents are implicit and do not need to be specified. The BSR will detect
// dependencies between Contents via .proto imports.
message DepRef {
// The Module of the dep.
buf.registry.module.v1beta1.ModuleRef module_ref = 1 [(buf.validate.field).required = true];
// The commit_id of the Commit, if this is referencing a Commit that already exists.
//
// If the ModuleRef refers to a Module that has associated Content, this field should *not*
// be set, and setting it is an error.
string commit_id = 2 [(buf.validate.field).string.uuid = true];
// The registry hostname of the dep.
string registry = 3 [(buf.validate.field).required = true];
// The commit_id of the dependency.
string commit_id = 1 [
(buf.validate.field).required = true,
(buf.validate.field).string.uuid = true
];
// The registry hostname of the dependency.
string registry = 2 [(buf.validate.field).required = true];
}
// Content to upload for a given reference.
message Content {
// The Module of the reference.
buf.registry.module.v1beta1.ModuleRef module_ref = 1 [(buf.validate.field).required = true];
// The dependencies of the reference.
//
// This will include all transitive dependencies.
repeated DepRef dep_refs = 2;
// The Files of the Content.
//
// This will consist of the .proto files, license files, and documentation files.
repeated buf.registry.module.v1beta1.File files = 3 [(buf.validate.field).repeated.min_items = 1];
repeated buf.registry.module.v1beta1.File files = 2 [(buf.validate.field).repeated.min_items = 1];
// The labels to associate with the Commit for the Content.
//
// If an id is set, this id must represent a Label that already exists and is
Expand All @@ -76,19 +72,29 @@ message UploadRequest {
//
// If the Labels do not exist, they will be created.
// If the Labels were archived, they will be unarchived.
repeated buf.registry.module.v1beta1.ScopedLabelRef scoped_label_refs = 4;
repeated buf.registry.module.v1beta1.ScopedLabelRef scoped_label_refs = 3;
// The URL of the source control commit to associate with the Commit for this Content.
//
// BSR users can navigate to this link to find source control information that is relevant to this Commit
// (e.g. commit description, PR discussion, authors, approvers, etc.).
string source_control_url = 5 [
string source_control_url = 4 [
(buf.validate.field).string.uri = true,
(buf.validate.field).string.max_len = 255,
(buf.validate.field).ignore = IGNORE_IF_UNPOPULATED
];
}
// The Contents of all references.
repeated Content contents = 1 [(buf.validate.field).repeated.min_items = 1];
// The dependencies of the references specified by Contents.
//
// This will include all transitive dependencies.
//
// Dependencies between Contents are implicit and do not need to be specified. The BSR will detect
// dependencies between Contents via .proto imports.
//
// Commits should be unique by Module, that is no two dep_refs should have the same Module but
// different Commit IDs.
repeated DepRef dep_refs = 2;
}

// See the package documentation for more details. You should likely use buf.registry.module.v1beta1
Expand Down
14 changes: 7 additions & 7 deletions buf/registry/module/v1beta1/download_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,19 @@ message DownloadRequest {
//
// If false, it is an error to specify non-existent file paths.
bool paths_allow_not_exist = 4;
// The DigestType to return for the Commit of this reference.
//
// If this DigestType is not available, an error is returned.
// Note that certain DigestTypes may be deprecated over time.
//
// If not set, the latest DigestType is used, currently B5.
DigestType digest_type = 5 [(buf.validate.field).enum.defined_only = true];
}
// The references to get contents for.
repeated Value values = 1 [
(buf.validate.field).repeated.min_items = 1,
(buf.validate.field).repeated.max_items = 250
];
// The DigestType to return for the Commits of the references.
//
// If this DigestType is not available, an error is returned.
// Note that certain DigestTypes may be deprecated over time.
//
// If not set, the latest DigestType is used, currently B5.
DigestType digest_type = 2 [(buf.validate.field).enum.defined_only = true];
}

message DownloadResponse {
Expand Down
40 changes: 40 additions & 0 deletions buf/registry/module/v1beta1/label.proto
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ message Label {
];
// The id of the Commit currently associated with the Label.
//
// If policy checks are enabled, this will point to the most recent Commit that passed or was approved.
// To get the history of the Commits that have been associated with a Label, use ListLabelHistory.
string commit_id = 8 [
(buf.validate.field).required = true,
Expand All @@ -71,6 +72,45 @@ message Label {
(buf.validate.field).required = true,
(buf.validate.field).string.uuid = true
];
// The CommitCheckState for the Commit the Label points to.
//
// The CommitCheckStatus will always be disabled, passed, or approved, since Labels will
// never point to pending or rejected Commits.
//
// TODO: Add custom CEL validation to validate the status field is one of DISABLED, PASSED, APPROVED.
CommitCheckState commit_check_state = 10 [(buf.validate.field).required = true];
}

// The state of a Commit's policy checks for a particular Label.
//
// Policy checks are an enterprise-only feature - contact us to learn more!
message CommitCheckState {
// The status of the policy check.
CommitCheckStatus status = 1 [
(buf.validate.field).enum.defined_only = true,
(buf.validate.field).required = true
];
// The time the policy check state was last updated.
//
// If the status is disabled, this will be equal to the Commit create_time.
google.protobuf.Timestamp update_time = 3 [(buf.validate.field).required = true];
}

// A check status for a Commit.
//
// Policy checks are an enterprise-only feature - contact us to learn more!
enum CommitCheckStatus {
COMMIT_CHECK_STATUS_UNSPECIFIED = 0;
// Policy checks were not enabled when the Commit was created.
COMMIT_CHECK_STATUS_DISABLED = 1;
// The Commit did not fail any policy checks and therefore did not need review.
COMMIT_CHECK_STATUS_PASSED = 2;
// The Commit has not yet been reviewed after failing policy checks and is pending.
COMMIT_CHECK_STATUS_PENDING = 3;
// The Commit was reviewed after failing policy checks and was rejected.
COMMIT_CHECK_STATUS_REJECTED = 4;
// The Commit was reviewed after failing policy checks and was approved.
COMMIT_CHECK_STATUS_APPROVED = 5;
}

// LabelRef is a reference to a Label, either an id or a fully-qualified name.
Expand Down
23 changes: 20 additions & 3 deletions buf/registry/module/v1beta1/label_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ message ListLabelsRequest {
// Once the resource is resolved, the following Labels are listed:
// - If a Module is referenced, all Labels for the Module are returned.
// - If a Label is referenced, this Label is returned.
// - If a Commit is referenced, all Labels for the Commit are returned.
// - If a Commit is referenced, all Labels that currently point to the Commit are returned. Note that
// Labels only point to passed or approved Commits, or Commits where policy checks were disabled.
ResourceRef resource_ref = 3 [(buf.validate.field).required = true];
// The order to return the Labels.
//
Expand All @@ -106,6 +107,15 @@ message ListLabelsRequest {
// TODO: We are purposefully not making the default the zero enum value, however
// we may want to consider this.
Order order = 4 [(buf.validate.field).enum.defined_only = true];
// Only return Labels that point to a Commit with one of these CommitCheckStatus values.
//
// If not set, Labels that point to a Commit with any CommitCheckStatus value are returned.
//
// It is an error to filter on CommitCheckStatuses of pending or rejected, as Labels will only
// point to Commits that are passed or approved, or that have policy checks disabled.
//
// TODO: Add custom CEL validation to validate the status field is one of DISABLED, PASSED, APPROVED.
repeated CommitCheckStatus commit_check_statuses = 5 [(buf.validate.field).repeated.items.enum.defined_only = true];
}

message ListLabelsResponse {
Expand Down Expand Up @@ -157,12 +167,19 @@ message ListLabelHistoryRequest {
}

message ListLabelHistoryResponse {
message Value {
// The Commit.
Commit commit = 1 [(buf.validate.field).required = true];
// The CommitCheckState for this Commit on this Label.
CommitCheckState commit_check_state = 2 [(buf.validate.field).required = true];
}

// The next page token.
//
/// If empty, there are no more pages.
string next_page_token = 1 [(buf.validate.field).string.max_len = 4096];
// The listed Commits that represent the history of the Label.
repeated Commit commits = 2;
// The ordered history of the Label.
repeated Value values = 2;
}

message CreateOrUpdateLabelsRequest {
Expand Down
34 changes: 13 additions & 21 deletions buf/registry/module/v1beta1/upload_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,14 @@ service UploadService {
}

message UploadRequest {
// A dependency of Content, either referencing another Content message, or referencing
// a Commit that already exists.
message DepRef {
// The Module of the dep.
ModuleRef module_ref = 1 [(buf.validate.field).required = true];
// The commit_id of the Commit, if this is referencing a Commit that already exists.
//
// If the ModuleRef refers to a Module that has associated Content, this field should be empty,
// and setting a value is an error.
string commit_id = 2 [
(buf.validate.field).string.uuid = true,
(buf.validate.field).ignore_empty = true
];
}
// Content to upload for a given reference.
message Content {
// The Module of the reference.
ModuleRef module_ref = 1 [(buf.validate.field).required = true];
// The dependencies of the reference.
//
// This will include all transitive dependencies.
repeated DepRef dep_refs = 2;
// The Files of the Content.
//
// This will consist of the .proto files, license files, and documentation files.
repeated File files = 3 [(buf.validate.field).repeated.min_items = 1];
repeated File files = 2 [(buf.validate.field).repeated.min_items = 1];
// The labels to associate with the Commit for the Content.
//
// If an id is set, this id must represent a Label that already exists and is
Expand All @@ -69,19 +51,29 @@ message UploadRequest {
//
// If the Labels do not exist, they will be created.
// If the Labels were archived, they will be unarchived.
repeated ScopedLabelRef scoped_label_refs = 4;
repeated ScopedLabelRef scoped_label_refs = 3;
// The URL of the source control commit to associate with the Commit for this Content.
//
// BSR users can navigate to this link to find source control information that is relevant to this Commit
// (e.g. commit description, PR discussion, authors, approvers, etc.).
string source_control_url = 5 [
string source_control_url = 4 [
(buf.validate.field).string.uri = true,
(buf.validate.field).string.max_len = 255,
(buf.validate.field).ignore = IGNORE_IF_UNPOPULATED
];
}
// The Contents of all references.
repeated Content contents = 1 [(buf.validate.field).repeated.min_items = 1];
// The dependencies of the references specified by Contents.
//
// Dependencies between Contents are implicit and do not need to be specified. The BSR will detect
// dependencies between Contenta via .proto imports.
//
// This will include all transitive dependencies.
//
// Commits should be unique by Module, that is no two dep_commit_ids should have the same Module but
// different Commit IDs.
repeated string dep_commit_ids = 2 [(buf.validate.field).repeated.items.string.uuid = true];
}

message UploadResponse {
Expand Down

0 comments on commit f52d86e

Please sign in to comment.