Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support policy checks #69

Merged
merged 28 commits into from
Feb 26, 2024
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
63634d0
Add BreakingState and ReviewState to ListLabelHistoryResponse
bufdev Feb 13, 2024
40e9a5f
Merge branch 'main' into breaking-review-labels
bufdev Feb 13, 2024
e346d75
Take two
bufdev Feb 13, 2024
abae8ae
format
bufdev Feb 13, 2024
451ee8c
fixes
bufdev Feb 13, 2024
88530ad
fix
bufdev Feb 13, 2024
94a8cfd
newline
bufdev Feb 13, 2024
b0403a8
comment
bufdev Feb 13, 2024
9b136e4
LabelReviewState -> CommitReviewState and update docs
nicksnyder Feb 15, 2024
dc29366
commit -> Commit
nicksnyder Feb 15, 2024
855d3d0
lint
nicksnyder Feb 15, 2024
f2007cd
clarify docs for Label.commit_id
nicksnyder Feb 15, 2024
b826484
Standardize on "governance workflow"
nicksnyder Feb 16, 2024
4368113
CommitReviewState -> GovernanceWorkflowState
nicksnyder Feb 16, 2024
2f7a199
lint
nicksnyder Feb 16, 2024
347ea32
Support GovernanceWorkflowState being blocked on another governance w…
nicksnyder Feb 16, 2024
f3d9cb2
clarify docs for blocked commits
nicksnyder Feb 16, 2024
a0a968a
Update buf/registry/module/v1beta1/label.proto
nicksnyder Feb 16, 2024
3eeb39c
clarify behavior of blocked state
nicksnyder Feb 16, 2024
f7687d9
governance flow -> policy checks
nicksnyder Feb 16, 2024
03c229f
accepted -> approved
nicksnyder Feb 16, 2024
ed33e9c
validation rule
nicksnyder Feb 16, 2024
f42ba0c
Rename PolicyChecks{State|Status} to PolicyCheck{State|Status}
nicksnyder Feb 26, 2024
da077c5
Merge branch 'main' into breaking-review-labels
nicksnyder Feb 26, 2024
d126dac
Merge branch 'main' into breaking-review-labels
bufdev Feb 26, 2024
4546866
Merge branch 'breaking-review-labels' of https://github.com/bufbuild/…
bufdev Feb 26, 2024
46300fc
commit
bufdev Feb 26, 2024
108b279
commit
bufdev Feb 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 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 governance workflow is enabled, this will point to the most recent Commit that passed or accepted Commit.
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
// 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,47 @@ message Label {
(buf.validate.field).required = true,
(buf.validate.field).string.uuid = true
];
// Whether or not governance workflow is enabled for this Label.
//
// Governance workflow is an enterprise-only feature - contact us to learn more!
bool governance_workflow_enabled = 10;
// The governance workflow state of the Commit the Label points to.
//
// This field will only be set if governance workflow was enabled on this Label when this Commit was pushed.
GovernanceWorkflowState governance_workflow_state = 11;
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
}

// The state of a Commit in the governance workflow for a particular Label.
//
// Governance workflow is an enterprise-only feature - contact us to learn more!
message GovernanceWorkflowState {
// The status of the workflow.
GovernanceWorkflowStatus status = 1 [(buf.validate.field).enum.defined_only = true];

// The time the status was last updated.
google.protobuf.Timestamp status_updated_at = 3 [(buf.validate.field).required = true];

// The ids of Commits that have governance workflows blocking this governance workflow.
//
// This field will only be set if the status is blocked.
repeated string blocked_on_commit_ids = 2 [(buf.validate.field).string.uuid = true];
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
}

// The status of a GovernanceWorkflowState.
//
// Governance workflow is an enterprise-only feature - contact us to learn more!
enum GovernanceWorkflowStatus {
GOVERNANCE_WORKFLOW_STATUS_UNSPECIFIED = 0;
// The Commit did not fail any governance checks and therefore did not need review.
GOVERNANCE_WORKFLOW_STATUS_PASSED = 1;
// The Commit was reviewed after failing governance checks and was accepted.
GOVERNANCE_WORKFLOW_STATUS_ACCEPTED = 2;
// The Commit was reviewed after failing governance checks and was rejected.
GOVERNANCE_WORKFLOW_STATUS_REJECTED = 3;
// The Commit has not yet been reviewed after failing governance checks and is pending.
GOVERNANCE_WORKFLOW_STATUS_PENDING = 4;
// The governance workflow for this Commit is blocked on the governance workflow for another Commit.
GOVERNANCE_WORKFLOW_STATUS_BLOCKED = 5;
}

// LabelRef is a reference to a Label, either an id or a fully-qualified name.
Expand Down
22 changes: 19 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,9 @@ 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.
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
// - If a Commit is referenced, all Labels for the Commit are returned.
// - If a Commit is referenced, all Labels for the Commit are returned. Note that this will
// not return any Labels where the Commit is currently rejected or pending, it will only
// return Labels for Commits that are passed or accepted.
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
ResourceRef resource_ref = 3 [(buf.validate.field).required = true];
// The order to return the Labels.
//
Expand All @@ -106,6 +108,10 @@ 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 GovernanceWorkflowStatus values.
//
// If not set, Labels that point to a Commit with any GovernanceWorkflowStatus value are returned.
repeated GovernanceWorkflowStatus governance_workflow_statuses = 5;
}

message ListLabelsResponse {
Expand Down Expand Up @@ -157,12 +163,22 @@ message ListLabelHistoryRequest {
}

message ListLabelHistoryResponse {
message Value {
// The Commit.
Commit commit = 1 [(buf.validate.field).required = true];

// The GovernanceWorkflowState for this Commit on this Label.
//
// This field will only be set if governance workflow was enabled on this Label when this Commit was pushed.
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved
GovernanceWorkflowState governance_workflow_state = 2;
}
nicksnyder marked this conversation as resolved.
Show resolved Hide resolved

// 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
Loading