fdbea383d6
Attention set is returned by default in change details. Background: https://www.gerritcodereview.com/design-docs/attention-set.html Upcoming further changes: - Add to index - Extend ReviewInput API to add reviewers - Add invariants (e.g. user must be reviewer) - Send notifications in *Attention*Op#postUpdate() - Consider adding NotificationHandling in AttentionInput - Consider adding validation listeners Change-Id: I52ae870a94852ac98f731fef63f65cd2a7064742
301 lines
8.0 KiB
Protocol Buffer
301 lines
8.0 KiB
Protocol Buffer
// Copyright (C) 2018 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package gerrit.cache;
|
|
|
|
option java_package = "com.google.gerrit.server.cache.proto";
|
|
|
|
// Serialized form of com.google.gerrit.server.change.CHangeKindCacheImpl.Key.
|
|
// Next ID: 4
|
|
message ChangeKindKeyProto {
|
|
bytes prior = 1;
|
|
bytes next = 2;
|
|
string strategy_name = 3;
|
|
}
|
|
|
|
// Serialized form of
|
|
// com.google.gerrit.server.change.MergeabilityCacheImpl.EntryKey.
|
|
// Next ID: 5
|
|
message MergeabilityKeyProto {
|
|
bytes commit = 1;
|
|
bytes into = 2;
|
|
string submit_type = 3;
|
|
string merge_strategy = 4;
|
|
}
|
|
|
|
// Serialized form of com.google.gerrit.extensions.auth.oauth.OAuthToken.
|
|
// Next ID: 6
|
|
message OAuthTokenProto {
|
|
string token = 1;
|
|
string secret = 2;
|
|
string raw = 3;
|
|
// Epoch millis.
|
|
int64 expires_at_millis = 4;
|
|
string provider_id = 5;
|
|
}
|
|
|
|
|
|
// Serialized form of com.google.gerrit.server.notedb.ChangeNotesCache.Key.
|
|
// Next ID: 4
|
|
message ChangeNotesKeyProto {
|
|
string project = 1;
|
|
int32 change_id = 2;
|
|
bytes id = 3;
|
|
}
|
|
|
|
// Serialized from of com.google.gerrit.server.notedb.ChangeNotesState.
|
|
//
|
|
// Note on embedded protos: this is just for storing in a cache, so some formats
|
|
// were chosen ease of coding the initial implementation. In particular, where
|
|
// there already exists another serialization mechanism in Gerrit for
|
|
// serializing a particular field, we use that rather than defining a new proto
|
|
// type. This includes types that can be serialized to proto using
|
|
// ProtoConverters as well as NoteDb and indexed types that are serialized using
|
|
// JSON. We can always revisit this decision later; it just requires bumping the
|
|
// cache version.
|
|
//
|
|
// Note on nullability: there are a lot of nullable fields in ChangeNotesState
|
|
// and its dependencies. It's likely we could make some of them non-nullable,
|
|
// but each one of those would be a potentially significant amount of cleanup,
|
|
// and there's no guarantee we'd be able to eliminate all of them. (For a less
|
|
// complex class, it's likely the cleanup would be more feasible.)
|
|
//
|
|
// Instead, we just take the tedious yet simple approach of having a "has_foo"
|
|
// field for each nullable field "foo", indicating whether or not foo is null.
|
|
//
|
|
// Next ID: 24
|
|
message ChangeNotesStateProto {
|
|
// Effectively required, even though the corresponding ChangeNotesState field
|
|
// is optional, since the field is only absent when NoteDb is disabled, in
|
|
// which case attempting to use the ChangeNotesCache is programmer error.
|
|
bytes meta_id = 1;
|
|
|
|
int32 change_id = 2;
|
|
|
|
// Next ID: 26
|
|
message ChangeColumnsProto {
|
|
string change_key = 1;
|
|
|
|
// Epoch millis.
|
|
int64 created_on_millis = 2;
|
|
|
|
// Epoch millis.
|
|
int64 last_updated_on_millis = 3;
|
|
|
|
int32 owner = 4;
|
|
|
|
string branch = 5;
|
|
|
|
int32 current_patch_set_id = 6;
|
|
bool has_current_patch_set_id = 7;
|
|
|
|
string subject = 8;
|
|
|
|
string topic = 9;
|
|
bool has_topic = 10;
|
|
|
|
string original_subject = 11;
|
|
bool has_original_subject = 12;
|
|
|
|
string submission_id = 13;
|
|
bool has_submission_id = 14;
|
|
|
|
reserved 15; // assignee
|
|
reserved 16; // has_assignee
|
|
|
|
string status = 17;
|
|
bool has_status = 18;
|
|
|
|
bool is_private = 19;
|
|
|
|
bool work_in_progress = 20;
|
|
|
|
bool review_started = 21;
|
|
|
|
int32 revert_of = 22;
|
|
bool has_revert_of = 23;
|
|
|
|
string cherry_pick_of = 24;
|
|
bool has_cherry_pick_of = 25;
|
|
}
|
|
// Effectively required, even though the corresponding ChangeNotesState field
|
|
// is optional, since the field is only absent when NoteDb is disabled, in
|
|
// which case attempting to use the ChangeNotesCache is programmer error.
|
|
ChangeColumnsProto columns = 3;
|
|
|
|
reserved 4; // past_assignee
|
|
|
|
repeated string hashtag = 5;
|
|
|
|
// Raw PatchSet proto as produced by PatchSetProtoConverter.
|
|
repeated bytes patch_set = 6;
|
|
|
|
// Raw PatchSetApproval proto as produced by PatchSetApprovalProtoConverter.
|
|
repeated bytes approval = 7;
|
|
|
|
// Next ID: 4
|
|
message ReviewerSetEntryProto {
|
|
string state = 1;
|
|
int32 account_id = 2;
|
|
// Epoch millis.
|
|
int64 timestamp_millis = 3;
|
|
}
|
|
repeated ReviewerSetEntryProto reviewer = 8;
|
|
|
|
// Next ID: 4
|
|
message ReviewerByEmailSetEntryProto {
|
|
string state = 1;
|
|
string address = 2;
|
|
// Epoch millis.
|
|
int64 timestamp_millis = 3;
|
|
}
|
|
repeated ReviewerByEmailSetEntryProto reviewer_by_email = 9;
|
|
|
|
repeated ReviewerSetEntryProto pending_reviewer = 10;
|
|
|
|
repeated ReviewerByEmailSetEntryProto pending_reviewer_by_email = 11;
|
|
|
|
repeated int32 past_reviewer = 12;
|
|
|
|
// Next ID: 5
|
|
message ReviewerStatusUpdateProto {
|
|
// Epoch millis.
|
|
int64 timestamp_millis = 1;
|
|
int32 updated_by = 2;
|
|
int32 reviewer = 3;
|
|
string state = 4;
|
|
}
|
|
repeated ReviewerStatusUpdateProto reviewer_update = 13;
|
|
|
|
// JSON produced from
|
|
// com.google.gerrit.server.index.change.ChangeField.StoredSubmitRecord.
|
|
repeated string submit_record = 14;
|
|
|
|
// Raw ChangeMessage proto as produced by ChangeMessageProtoConverter.
|
|
repeated bytes change_message = 15;
|
|
|
|
// JSON produced from com.google.gerrit.entities.Comment.
|
|
repeated string published_comment = 16;
|
|
|
|
reserved 17; // read_only_until
|
|
reserved 18; // has_read_only_until
|
|
|
|
// Number of updates to the change's meta ref.
|
|
int32 update_count = 19;
|
|
|
|
string server_id = 20;
|
|
bool has_server_id = 21;
|
|
|
|
message AssigneeStatusUpdateProto {
|
|
// Epoch millis.
|
|
int64 timestamp_millis = 1;
|
|
int32 updated_by = 2;
|
|
int32 current_assignee = 3;
|
|
bool has_current_assignee = 4;
|
|
}
|
|
repeated AssigneeStatusUpdateProto assignee_update = 22;
|
|
|
|
// An update to the attention set of the change. See class AttentionSetUpdate
|
|
// for context.
|
|
message AttentionSetUpdateProto {
|
|
// Epoch millis.
|
|
int64 timestamp_millis = 1;
|
|
int32 account = 2;
|
|
// Maps to enum AttentionSetUpdate.Operation
|
|
string operation = 3;
|
|
string reason = 4;
|
|
}
|
|
repeated AttentionSetUpdateProto attention_set_update = 23;
|
|
}
|
|
|
|
// Serialized form of com.google.gerrit.server.query.change.ConflictKey
|
|
message ConflictKeyProto {
|
|
bytes commit = 1;
|
|
bytes other_commit = 2;
|
|
string submit_type = 3;
|
|
bool content_merge = 4;
|
|
}
|
|
|
|
// Serialized form of com.google.gerrit.server.query.git.TagSetHolder.
|
|
// Next ID: 3
|
|
message TagSetHolderProto {
|
|
string project_name = 1;
|
|
|
|
// Next ID: 4
|
|
message TagSetProto {
|
|
string project_name = 1;
|
|
|
|
// Next ID: 3
|
|
message CachedRefProto {
|
|
bytes id = 1;
|
|
int32 flag = 2;
|
|
}
|
|
map<string, CachedRefProto> ref = 2;
|
|
|
|
// Next ID: 3
|
|
message TagProto {
|
|
bytes id = 1;
|
|
bytes flags = 2;
|
|
}
|
|
repeated TagProto tag = 3;
|
|
}
|
|
TagSetProto tags = 2;
|
|
}
|
|
|
|
// Serialized form of
|
|
// com.google.gerrit.server.account.externalids.AllExternalIds.
|
|
// Next ID: 2
|
|
message AllExternalIdsProto {
|
|
// Next ID: 6
|
|
message ExternalIdProto {
|
|
string key = 1;
|
|
int32 accountId = 2;
|
|
string email = 3;
|
|
string password = 4;
|
|
bytes blobId = 5;
|
|
}
|
|
repeated ExternalIdProto external_id = 1;
|
|
}
|
|
|
|
// Key for com.google.gerrit.server.git.PureRevertCache.
|
|
// Next ID: 4
|
|
message PureRevertKeyProto {
|
|
string project = 1;
|
|
bytes claimed_original = 2;
|
|
bytes claimed_revert = 3;
|
|
}
|
|
|
|
// Key for com.google.gerrit.server.account.ProjectWatches.ProjectWatcheKey.
|
|
// Next ID: 3
|
|
message ProjectWatchKeyProto {
|
|
string project = 1;
|
|
string filter = 2;
|
|
}
|
|
|
|
// Serialized form of
|
|
// com.google.gerrit.entities.Account.
|
|
// Next ID: 9
|
|
message AccountProto {
|
|
int32 id = 1;
|
|
int64 registered_on = 2;
|
|
string full_name = 3;
|
|
string display_name = 4;
|
|
string preferred_email = 5;
|
|
bool inactive = 6;
|
|
string status = 7;
|
|
string meta_id = 8;
|
|
}
|