598 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			598 lines
		
	
	
		
			16 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: 25
 | 
						|
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;
 | 
						|
  }
 | 
						|
  // Only includes the most recent attention set update for each user.
 | 
						|
  repeated AttentionSetUpdateProto attention_set_update = 23;
 | 
						|
 | 
						|
  // Includes all attention set updates.
 | 
						|
  repeated AttentionSetUpdateProto all_attention_set_update = 24;
 | 
						|
}
 | 
						|
 | 
						|
// 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;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of a list of com.google.gerrit.entities.AccountGroup.UUID
 | 
						|
// Next ID: 2
 | 
						|
message AllExternalGroupsProto {
 | 
						|
  message ExternalGroupProto {
 | 
						|
    string groupUuid = 1;
 | 
						|
  }
 | 
						|
  repeated ExternalGroupProto external_group = 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.
 | 
						|
// Next ID: 4
 | 
						|
message ProjectWatchProto {
 | 
						|
  string project = 1;
 | 
						|
  string filter = 2;
 | 
						|
  repeated string notify_type = 3;
 | 
						|
}
 | 
						|
 | 
						|
// 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;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.account.CachedAccountDetails.Key.
 | 
						|
// Next ID: 3
 | 
						|
message AccountKeyProto {
 | 
						|
  int32 account_id = 1;
 | 
						|
  bytes id = 2;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.account.CachedAccountDetails.
 | 
						|
// Next ID: 4
 | 
						|
message AccountDetailsProto {
 | 
						|
  AccountProto account = 1;
 | 
						|
  repeated ProjectWatchProto project_watch_proto = 2;
 | 
						|
  string user_preferences = 3;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.Project.
 | 
						|
// Next ID: 11
 | 
						|
message ProjectProto {
 | 
						|
  string name = 1;
 | 
						|
  string description = 2;
 | 
						|
  map<string, string> boolean_configs = 3;
 | 
						|
  string submit_type = 4; // ENUM as String
 | 
						|
  string state = 5; // ENUM as String
 | 
						|
  string parent = 6;
 | 
						|
  string max_object_size_limit = 7;
 | 
						|
  string default_dashboard = 8;
 | 
						|
  string local_default_dashboard = 9;
 | 
						|
  string config_ref_state = 10;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.GroupReference.
 | 
						|
// Next ID: 3
 | 
						|
message GroupReferenceProto {
 | 
						|
  string uuid = 1;
 | 
						|
  string name = 2;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.PermissionRule.
 | 
						|
// Next ID: 6
 | 
						|
message PermissionRuleProto {
 | 
						|
  string action = 1; // ENUM as String
 | 
						|
  bool force = 2;
 | 
						|
  int32 min = 3;
 | 
						|
  int32 max = 4;
 | 
						|
  GroupReferenceProto group = 5;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.Permission.
 | 
						|
// Next ID: 4
 | 
						|
message PermissionProto {
 | 
						|
  string name = 1;
 | 
						|
  bool exclusive_group = 2;
 | 
						|
  repeated PermissionRuleProto rules = 3;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.AccessSection.
 | 
						|
// Next ID: 3
 | 
						|
message AccessSectionProto {
 | 
						|
  string name = 1;
 | 
						|
  repeated PermissionProto permissions = 2;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.git.BranchOrderSection.
 | 
						|
// Next ID: 2
 | 
						|
message BranchOrderSectionProto {
 | 
						|
  repeated string branches_in_order = 1;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.ContributorAgreement.
 | 
						|
// Next ID: 8
 | 
						|
message ContributorAgreementProto {
 | 
						|
  string name = 1;
 | 
						|
  string description = 2;
 | 
						|
  repeated PermissionRuleProto accepted = 3;
 | 
						|
  GroupReferenceProto auto_verify = 4;
 | 
						|
  string url = 5;
 | 
						|
  repeated string exclude_regular_expressions = 6;
 | 
						|
  repeated string match_regular_expressions = 7;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.Address.
 | 
						|
// Next ID: 3
 | 
						|
message AddressProto {
 | 
						|
  string name = 1;
 | 
						|
  string email = 2;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.NotifyConfig.
 | 
						|
// Next ID: 7
 | 
						|
message NotifyConfigProto {
 | 
						|
  string name = 1;
 | 
						|
  repeated string type = 2; // ENUM as String
 | 
						|
  string filter = 3;
 | 
						|
  string header = 4; // ENUM as String
 | 
						|
  repeated GroupReferenceProto groups = 5;
 | 
						|
  repeated AddressProto addresses = 6;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.LabelValue.
 | 
						|
// Next ID: 3
 | 
						|
message LabelValueProto {
 | 
						|
  string text = 1;
 | 
						|
  int32 value = 2;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.LabelType.
 | 
						|
// Next ID: 19
 | 
						|
message LabelTypeProto {
 | 
						|
  string name = 1;
 | 
						|
  string function = 2; // ENUM as String
 | 
						|
  bool copy_any_score = 3;
 | 
						|
  bool copy_min_score = 4;
 | 
						|
  bool copy_max_score = 5;
 | 
						|
  bool copy_all_scores_on_merge_first_parent_update = 6;
 | 
						|
  bool copy_all_scores_on_trivial_rebase = 7;
 | 
						|
  bool copy_all_scores_if_no_code_change = 8;
 | 
						|
  bool copy_all_scores_if_no_change = 9;
 | 
						|
  repeated int32 copy_values = 10;
 | 
						|
  bool allow_post_submit = 11;
 | 
						|
  bool ignore_self_approval = 12;
 | 
						|
  int32 default_value = 13;
 | 
						|
  repeated LabelValueProto values = 14;
 | 
						|
  int32 max_negative = 15;
 | 
						|
  int32 max_positive = 16;
 | 
						|
  bool can_override = 17;
 | 
						|
  repeated string ref_patterns = 18;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.project.ConfiguredMimeTypes.
 | 
						|
// Next ID: 4
 | 
						|
message ConfiguredMimeTypeProto {
 | 
						|
  string type = 1;
 | 
						|
  string pattern = 2;
 | 
						|
  bool is_regular_expression = 3;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.common.data.SubscribeSection.
 | 
						|
// Next ID: 4
 | 
						|
message SubscribeSectionProto {
 | 
						|
  string project_name = 1;
 | 
						|
  repeated string multi_match_ref_specs = 2;
 | 
						|
  repeated string matching_ref_specs = 3;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.StoredCommentLinkInfo.
 | 
						|
// Next ID: 7
 | 
						|
message StoredCommentLinkInfoProto {
 | 
						|
  string name = 1;
 | 
						|
  string match = 2;
 | 
						|
  string link = 3;
 | 
						|
  string html = 4;
 | 
						|
  bool enabled = 5;
 | 
						|
  bool override_only = 6;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.entities.CachedProjectConfigProto.
 | 
						|
// Next ID: 19
 | 
						|
message CachedProjectConfigProto {
 | 
						|
  ProjectProto project = 1;
 | 
						|
  repeated GroupReferenceProto group_list = 2;
 | 
						|
  repeated PermissionRuleProto accounts_section = 3;
 | 
						|
  repeated AccessSectionProto access_sections = 4;
 | 
						|
  BranchOrderSectionProto branch_order_section = 5;
 | 
						|
  repeated ContributorAgreementProto contributor_agreements = 6;
 | 
						|
  repeated NotifyConfigProto notify_configs = 7;
 | 
						|
  repeated LabelTypeProto label_sections = 8;
 | 
						|
  repeated ConfiguredMimeTypeProto mime_types = 9;
 | 
						|
  repeated SubscribeSectionProto subscribe_sections = 10;
 | 
						|
  repeated StoredCommentLinkInfoProto comment_links = 11;
 | 
						|
  bytes rules_id = 12;
 | 
						|
  bytes revision = 13;
 | 
						|
  int64 max_object_size_limit = 14;
 | 
						|
  bool check_received_objects = 15;
 | 
						|
  map<string, ExtensionPanelSectionProto> extension_panels = 16;
 | 
						|
  map<string, string> plugin_configs = 17;
 | 
						|
  map<string, string> project_level_configs = 18;
 | 
						|
 | 
						|
  // Next ID: 2
 | 
						|
  message ExtensionPanelSectionProto {
 | 
						|
    repeated string section = 1;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// Serialized key for com.google.gerrit.server.project.ProjectCacheImpl.
 | 
						|
// Next ID: 4
 | 
						|
message ProjectCacheKeyProto {
 | 
						|
  string project = 1;
 | 
						|
  bytes revision = 2;
 | 
						|
  bytes global_config_revision = 3; // Hash of All-Projects-projects.config. This
 | 
						|
                                    // will only be populated for All-Projects.
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.comment.CommentContextCacheImpl.Key
 | 
						|
// Next ID: 6
 | 
						|
message CommentContextKeyProto {
 | 
						|
  string project = 1;
 | 
						|
  string change_id = 2;
 | 
						|
  int32 patchset = 3;
 | 
						|
  string commentId = 4;
 | 
						|
 | 
						|
  // hashed with the murmur3_128 hash function
 | 
						|
  string path_hash = 5;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of a list of com.google.gerrit.extensions.common.ContextLineInfo
 | 
						|
// Next ID: 2
 | 
						|
message AllCommentContextProto {
 | 
						|
  message CommentContextProto {
 | 
						|
    int32 line_number = 1;
 | 
						|
    string context_line = 2;
 | 
						|
  }
 | 
						|
  repeated CommentContextProto context = 1;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized key for
 | 
						|
// com.google.gerrit.server.patch.gitdiff.GitModifiedFilesCacheKey
 | 
						|
// Next ID: 5
 | 
						|
message GitModifiedFilesKeyProto {
 | 
						|
  string project = 1;
 | 
						|
  bytes a_tree = 2; // SHA-1 hash of the left git tree ID in the diff
 | 
						|
  bytes b_tree = 3; // SHA-1 hash of the right git tree ID in the diff
 | 
						|
  int32 rename_score = 4;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized key for
 | 
						|
// com.google.gerrit.server.patch.diff.ModifiedFilesCacheKey
 | 
						|
// Next ID: 5
 | 
						|
message ModifiedFilesKeyProto {
 | 
						|
  string project = 1;
 | 
						|
  bytes a_commit = 2; // SHA-1 hash of the left commit ID in the diff
 | 
						|
  bytes b_commit = 3; // SHA-1 hash of the right commit ID in the diff
 | 
						|
  int32 rename_score = 4;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.patch.gitdiff.ModifiedFile
 | 
						|
// Next ID: 4
 | 
						|
message ModifiedFileProto {
 | 
						|
  string change_type = 1; // ENUM as string
 | 
						|
  string old_path = 2;
 | 
						|
  string new_path = 3;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of a collection of
 | 
						|
// com.google.gerrit.server.patch.gitdiff.ModifiedFile
 | 
						|
// Next ID: 2
 | 
						|
message ModifiedFilesProto {
 | 
						|
  repeated ModifiedFileProto modifiedFile = 1;
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of a collection of
 | 
						|
// com.google.gerrit.server.patch.gitfilediff.GitFileDiffCacheImpl.Key
 | 
						|
// Next ID: 8
 | 
						|
message GitFileDiffKeyProto {
 | 
						|
  string project = 1;
 | 
						|
  bytes a_tree = 2;
 | 
						|
  bytes b_tree = 3;
 | 
						|
  string file_path = 4;
 | 
						|
  int32 rename_score = 5;
 | 
						|
  string diff_algorithm = 6; // ENUM as string
 | 
						|
  string whitepsace = 7; // ENUM as string
 | 
						|
}
 | 
						|
 | 
						|
// Serialized form of com.google.gerrit.server.patch.gitfilediff.GitFileDiff
 | 
						|
// Next ID: 11
 | 
						|
message GitFileDiffProto {
 | 
						|
  message Edit {
 | 
						|
    int32 begin_a = 1;
 | 
						|
    int32 end_a = 2;
 | 
						|
    int32 begin_b = 3;
 | 
						|
    int32 end_b = 4;
 | 
						|
  }
 | 
						|
  repeated Edit edits = 1;
 | 
						|
  string file_header = 2;
 | 
						|
  string old_path = 3;
 | 
						|
  string new_path = 4;
 | 
						|
  bytes old_id = 5;
 | 
						|
  bytes new_id = 6;
 | 
						|
  string old_mode = 7; // ENUM as string
 | 
						|
  string new_mode = 8; // ENUM as string
 | 
						|
  string change_type = 9; // ENUM as string
 | 
						|
  string patch_type = 10; // ENUM as string
 | 
						|
}
 |