feat(proto): merge request mergeability, its Watch event and the merge commit mode
- commit
- c671ff44c6025b2c1819dced069baee101b836c1
- author
- brice · · 2026-10-19 12:32 UTC
- committer
- brice · · 2026-10-19 14:35 UTC
- parent
- 2aff1f7
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
14 files · +717 -298
M docs/services.md +2 -2
| @@ -5,10 +5,10 @@ | |||
| 5 | 5 | | `RepoService` | `ListRepos`, `GetRepo`, `CreateRepo`, `UpdateRepo` (field mask, merge settings), `DeleteRepo` | | |
| 6 | 6 | | `GitService` | `ListRefs`, `GetTree`, `ListPaths`, `GetBlob` (streamed), `ListCommits`, `GetCommit` (structured diff), `ResolveRevision` | | |
| 7 | 7 | | `TokenService` | `CreateToken` (secret shown once), `ListTokens`, `RevokeToken` | | |
| 8 | - | | `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest`, `MarkRead` | | |
| 8 | + | | `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest` (modes fast-forward, squash, merge commit), `MarkRead`. Open merge requests carry `mergeability` (up to date, behind, conflict, or checking) and `Watch` publishes `MergeRequestMergeability` when it changes (feature `merge_requests.mergeability`) | | |
| 9 | 9 | | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. Issues share numbers with merge requests | | |
| 10 | 10 | | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) | | |
| 11 | - | | `EventService` | `Watch` (streamed, resumable). Topics `home`, `repo:<name>` and `owner` (owner rights only). Events 17–21: `issue_opened`, `issue_closed`, `issue_reopened`, `issue_commented`, and `issue_submitted` (only on `owner`, no content) | | |
| 11 | + | | `EventService` | `Watch` (streamed, resumable). Topics `home`, `repo:<name>` and `owner` (owner rights only). Events 17–21: `issue_opened`, `issue_closed`, `issue_reopened`, `issue_commented`, and `issue_submitted` (only on `owner`, no content). Event 22: `merge_request_mergeability` | | |
| 12 | 12 | | `ServerService` | `GetVersion` (version and features), `GetSigningKey`, `RotateOIDCKey` (owner only) | | |
| 13 | 13 | | `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) | | |
| 14 | 14 | | `RunService` | `ListRuns`, `GetRun`, `GetJob`, `GetJobLog` (streamed, follow), `ListAnnotations`, `GetStepSummaries`, `CancelRun`, `RerunRun`, `DispatchWorkflow`, `ListWorkflows`, `DisableWorkflow`, `EnableWorkflow`, `ListChecks`, `ListRunners`, `RemoveRunner` | | |
| @@ -5,10 +5,10 @@ | |||||
| 5 | | `RepoService` | `ListRepos`, `GetRepo`, `CreateRepo`, `UpdateRepo` (field mask, merge settings), `DeleteRepo` | | 5 | | `RepoService` | `ListRepos`, `GetRepo`, `CreateRepo`, `UpdateRepo` (field mask, merge settings), `DeleteRepo` | | ||
| 6 | | `GitService` | `ListRefs`, `GetTree`, `ListPaths`, `GetBlob` (streamed), `ListCommits`, `GetCommit` (structured diff), `ResolveRevision` | | 6 | | `GitService` | `ListRefs`, `GetTree`, `ListPaths`, `GetBlob` (streamed), `ListCommits`, `GetCommit` (structured diff), `ResolveRevision` | | ||
| 7 | | `TokenService` | `CreateToken` (secret shown once), `ListTokens`, `RevokeToken` | | 7 | | `TokenService` | `CreateToken` (secret shown once), `ListTokens`, `RevokeToken` | | ||
| 8 | - | | `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest`, `MarkRead` | | 8 | + | | `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest` (modes fast-forward, squash, merge commit), `MarkRead`. Open merge requests carry `mergeability` (up to date, behind, conflict, or checking) and `Watch` publishes `MergeRequestMergeability` when it changes (feature `merge_requests.mergeability`) | |
| 9 | | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. Issues share numbers with merge requests | | 9 | | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. Issues share numbers with merge requests | | ||
| 10 | | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) | | 10 | | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) | | ||
| 11 | - | | `EventService` | `Watch` (streamed, resumable). Topics `home`, `repo:<name>` and `owner` (owner rights only). Events 17–21: `issue_opened`, `issue_closed`, `issue_reopened`, `issue_commented`, and `issue_submitted` (only on `owner`, no content) | | 11 | + | | `EventService` | `Watch` (streamed, resumable). Topics `home`, `repo:<name>` and `owner` (owner rights only). Events 17–21: `issue_opened`, `issue_closed`, `issue_reopened`, `issue_commented`, and `issue_submitted` (only on `owner`, no content). Event 22: `merge_request_mergeability` | |
| 12 | | `ServerService` | `GetVersion` (version and features), `GetSigningKey`, `RotateOIDCKey` (owner only) | | 12 | | `ServerService` | `GetVersion` (version and features), `GetSigningKey`, `RotateOIDCKey` (owner only) | | ||
| 13 | | `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) | | 13 | | `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) | | ||
| 14 | | `RunService` | `ListRuns`, `GetRun`, `GetJob`, `GetJobLog` (streamed, follow), `ListAnnotations`, `GetStepSummaries`, `CancelRun`, `RerunRun`, `DispatchWorkflow`, `ListWorkflows`, `DisableWorkflow`, `EnableWorkflow`, `ListChecks`, `ListRunners`, `RemoveRunner` | | 14 | | `RunService` | `ListRuns`, `GetRun`, `GetJob`, `GetJobLog` (streamed, follow), `ListAnnotations`, `GetStepSummaries`, `CancelRun`, `RerunRun`, `DispatchWorkflow`, `ListWorkflows`, `DisableWorkflow`, `EnableWorkflow`, `ListChecks`, `ListRunners`, `RemoveRunner` | | ||
M gen/ermite/ermiteconnect/merge_request.connect.go +12 -6
| @@ -127,9 +127,12 @@ type MergeRequestServiceClient interface { | |||
| 127 | 127 | // never merged unseen. Fails with invalid_argument if head_id is empty or | |
| 128 | 128 | // not a commit id, and with failed_precondition if the merge request is not | |
| 129 | 129 | // open, if the source branch no longer points to head_id ("branch moved, | |
| 130 | - | // read again"), if the target is not an ancestor of the head (rebase and | |
| 131 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | |
| 132 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | |
| 130 | + | // read again"), if the mode is fast-forward and the target is not an | |
| 131 | + | // ancestor of the head (rebase and push again, or merge with squash or | |
| 132 | + | // merge commit), if the mode is squash or merge commit and the head | |
| 133 | + | // conflicts with the target or shares no history with it (rebase and push | |
| 134 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |
| 135 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |
| 133 | 136 | // repository run one at a time. Repeating a call that succeeded fails with | |
| 134 | 137 | // failed_precondition (not open). On success the server publishes | |
| 135 | 138 | // MergeRequestMerged then Pushed for the target branch. | |
| @@ -339,9 +342,12 @@ type MergeRequestServiceHandler interface { | |||
| 339 | 342 | // never merged unseen. Fails with invalid_argument if head_id is empty or | |
| 340 | 343 | // not a commit id, and with failed_precondition if the merge request is not | |
| 341 | 344 | // open, if the source branch no longer points to head_id ("branch moved, | |
| 342 | - | // read again"), if the target is not an ancestor of the head (rebase and | |
| 343 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | |
| 344 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | |
| 345 | + | // read again"), if the mode is fast-forward and the target is not an | |
| 346 | + | // ancestor of the head (rebase and push again, or merge with squash or | |
| 347 | + | // merge commit), if the mode is squash or merge commit and the head | |
| 348 | + | // conflicts with the target or shares no history with it (rebase and push | |
| 349 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |
| 350 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |
| 345 | 351 | // repository run one at a time. Repeating a call that succeeded fails with | |
| 346 | 352 | // failed_precondition (not open). On success the server publishes | |
| 347 | 353 | // MergeRequestMerged then Pushed for the target branch. | |
| @@ -127,9 +127,12 @@ type MergeRequestServiceClient interface { | |||||
| 127 | // never merged unseen. Fails with invalid_argument if head_id is empty or | 127 | // never merged unseen. Fails with invalid_argument if head_id is empty or | ||
| 128 | // not a commit id, and with failed_precondition if the merge request is not | 128 | // not a commit id, and with failed_precondition if the merge request is not | ||
| 129 | // open, if the source branch no longer points to head_id ("branch moved, | 129 | // open, if the source branch no longer points to head_id ("branch moved, | ||
| 130 | - | // read again"), if the target is not an ancestor of the head (rebase and | 130 | + | // read again"), if the mode is fast-forward and the target is not an |
| 131 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | 131 | + | // ancestor of the head (rebase and push again, or merge with squash or |
| 132 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | 132 | + | // merge commit), if the mode is squash or merge commit and the head |
| 133 | + | // conflicts with the target or shares no history with it (rebase and push | |||
| 134 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |||
| 135 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |||
| 133 | // repository run one at a time. Repeating a call that succeeded fails with | 136 | // repository run one at a time. Repeating a call that succeeded fails with | ||
| 134 | // failed_precondition (not open). On success the server publishes | 137 | // failed_precondition (not open). On success the server publishes | ||
| 135 | // MergeRequestMerged then Pushed for the target branch. | 138 | // MergeRequestMerged then Pushed for the target branch. | ||
| @@ -339,9 +342,12 @@ type MergeRequestServiceHandler interface { | |||||
| 339 | // never merged unseen. Fails with invalid_argument if head_id is empty or | 342 | // never merged unseen. Fails with invalid_argument if head_id is empty or | ||
| 340 | // not a commit id, and with failed_precondition if the merge request is not | 343 | // not a commit id, and with failed_precondition if the merge request is not | ||
| 341 | // open, if the source branch no longer points to head_id ("branch moved, | 344 | // open, if the source branch no longer points to head_id ("branch moved, | ||
| 342 | - | // read again"), if the target is not an ancestor of the head (rebase and | 345 | + | // read again"), if the mode is fast-forward and the target is not an |
| 343 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | 346 | + | // ancestor of the head (rebase and push again, or merge with squash or |
| 344 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | 347 | + | // merge commit), if the mode is squash or merge commit and the head |
| 348 | + | // conflicts with the target or shares no history with it (rebase and push | |||
| 349 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |||
| 350 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |||
| 345 | // repository run one at a time. Repeating a call that succeeded fails with | 351 | // repository run one at a time. Repeating a call that succeeded fails with | ||
| 346 | // failed_precondition (not open). On success the server publishes | 352 | // failed_precondition (not open). On success the server publishes | ||
| 347 | // MergeRequestMerged then Pushed for the target branch. | 353 | // MergeRequestMerged then Pushed for the target branch. | ||
M gen/ermite/ermiteconnect/server.connect.go +2 -2
| @@ -53,7 +53,7 @@ type ServerServiceClient interface { | |||
| 53 | 53 | // it first to check compatibility. | |
| 54 | 54 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | |
| 55 | 55 | // GetSigningKey returns the public key with which the server signs the | |
| 56 | - | // commits it creates (squash merges, see MergeMode). It needs no | |
| 56 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no | |
| 57 | 57 | // authentication: the key is public, and anyone verifying a commit needs it. | |
| 58 | 58 | // Servers that implement it list "signing_key" in | |
| 59 | 59 | // GetVersionResponse.features. | |
| @@ -132,7 +132,7 @@ type ServerServiceHandler interface { | |||
| 132 | 132 | // it first to check compatibility. | |
| 133 | 133 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | |
| 134 | 134 | // GetSigningKey returns the public key with which the server signs the | |
| 135 | - | // commits it creates (squash merges, see MergeMode). It needs no | |
| 135 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no | |
| 136 | 136 | // authentication: the key is public, and anyone verifying a commit needs it. | |
| 137 | 137 | // Servers that implement it list "signing_key" in | |
| 138 | 138 | // GetVersionResponse.features. | |
| @@ -53,7 +53,7 @@ type ServerServiceClient interface { | |||||
| 53 | // it first to check compatibility. | 53 | // it first to check compatibility. | ||
| 54 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | 54 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | ||
| 55 | // GetSigningKey returns the public key with which the server signs the | 55 | // GetSigningKey returns the public key with which the server signs the | ||
| 56 | - | // commits it creates (squash merges, see MergeMode). It needs no | 56 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no |
| 57 | // authentication: the key is public, and anyone verifying a commit needs it. | 57 | // authentication: the key is public, and anyone verifying a commit needs it. | ||
| 58 | // Servers that implement it list "signing_key" in | 58 | // Servers that implement it list "signing_key" in | ||
| 59 | // GetVersionResponse.features. | 59 | // GetVersionResponse.features. | ||
| @@ -132,7 +132,7 @@ type ServerServiceHandler interface { | |||||
| 132 | // it first to check compatibility. | 132 | // it first to check compatibility. | ||
| 133 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | 133 | GetVersion(context.Context, *connect.Request[ermite.GetVersionRequest]) (*connect.Response[ermite.GetVersionResponse], error) | ||
| 134 | // GetSigningKey returns the public key with which the server signs the | 134 | // GetSigningKey returns the public key with which the server signs the | ||
| 135 | - | // commits it creates (squash merges, see MergeMode). It needs no | 135 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no |
| 136 | // authentication: the key is public, and anyone verifying a commit needs it. | 136 | // authentication: the key is public, and anyone verifying a commit needs it. | ||
| 137 | // Servers that implement it list "signing_key" in | 137 | // Servers that implement it list "signing_key" in | ||
| 138 | // GetVersionResponse.features. | 138 | // GetVersionResponse.features. | ||
M gen/ermite/event.pb.go +207 -112
| @@ -170,6 +170,7 @@ type Event struct { | |||
| 170 | 170 | // *Event_IssueReopened | |
| 171 | 171 | // *Event_IssueCommented | |
| 172 | 172 | // *Event_IssueSubmitted | |
| 173 | + | // *Event_MergeRequestMergeability | |
| 173 | 174 | Kind isEvent_Kind `protobuf_oneof:"kind"` | |
| 174 | 175 | unknownFields protoimpl.UnknownFields | |
| 175 | 176 | sizeCache protoimpl.SizeCache | |
| @@ -397,6 +398,15 @@ func (x *Event) GetIssueSubmitted() *IssueSubmitted { | |||
| 397 | 398 | return nil | |
| 398 | 399 | } | |
| 399 | 400 | ||
| 401 | + | func (x *Event) GetMergeRequestMergeability() *MergeRequestMergeability { | |
| 402 | + | if x != nil { | |
| 403 | + | if x, ok := x.Kind.(*Event_MergeRequestMergeability); ok { | |
| 404 | + | return x.MergeRequestMergeability | |
| 405 | + | } | |
| 406 | + | } | |
| 407 | + | return nil | |
| 408 | + | } | |
| 409 | + | ||
| 400 | 410 | type isEvent_Kind interface { | |
| 401 | 411 | isEvent_Kind() | |
| 402 | 412 | } | |
| @@ -497,6 +507,12 @@ type Event_IssueSubmitted struct { | |||
| 497 | 507 | IssueSubmitted *IssueSubmitted `protobuf:"bytes,21,opt,name=issue_submitted,json=issueSubmitted,proto3,oneof"` | |
| 498 | 508 | } | |
| 499 | 509 | ||
| 510 | + | type Event_MergeRequestMergeability struct { | |
| 511 | + | // MergeRequestMergeability: the mergeability of an open merge request | |
| 512 | + | // changed. | |
| 513 | + | MergeRequestMergeability *MergeRequestMergeability `protobuf:"bytes,22,opt,name=merge_request_mergeability,json=mergeRequestMergeability,proto3,oneof"` | |
| 514 | + | } | |
| 515 | + | ||
| 500 | 516 | func (*Event_RepoCreated) isEvent_Kind() {} | |
| 501 | 517 | ||
| 502 | 518 | func (*Event_RepoUpdated) isEvent_Kind() {} | |
| @@ -535,6 +551,8 @@ func (*Event_IssueCommented) isEvent_Kind() {} | |||
| 535 | 551 | ||
| 536 | 552 | func (*Event_IssueSubmitted) isEvent_Kind() {} | |
| 537 | 553 | ||
| 554 | + | func (*Event_MergeRequestMergeability) isEvent_Kind() {} | |
| 555 | + | ||
| 538 | 556 | // RepoCreated reports a new repository. | |
| 539 | 557 | type RepoCreated struct { | |
| 540 | 558 | state protoimpl.MessageState `protogen:"open.v1"` | |
| @@ -885,6 +903,72 @@ func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest { | |||
| 885 | 903 | return nil | |
| 886 | 904 | } | |
| 887 | 905 | ||
| 906 | + | // MergeRequestMergeability reports the mergeability of an open merge request. | |
| 907 | + | // It is published when the state changes, or when a check settles a result | |
| 908 | + | // that readers had not seen yet (they saw CHECKING), not on every push. | |
| 909 | + | type MergeRequestMergeability struct { | |
| 910 | + | state protoimpl.MessageState `protogen:"open.v1"` | |
| 911 | + | // Repo is the name of the repository. | |
| 912 | + | Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` | |
| 913 | + | // Number is the number of the merge request. | |
| 914 | + | Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` | |
| 915 | + | // Mergeability is the new result. | |
| 916 | + | Mergeability *Mergeability `protobuf:"bytes,3,opt,name=mergeability,proto3" json:"mergeability,omitempty"` | |
| 917 | + | unknownFields protoimpl.UnknownFields | |
| 918 | + | sizeCache protoimpl.SizeCache | |
| 919 | + | } | |
| 920 | + | ||
| 921 | + | func (x *MergeRequestMergeability) Reset() { | |
| 922 | + | *x = MergeRequestMergeability{} | |
| 923 | + | mi := &file_ermite_event_proto_msgTypes[10] | |
| 924 | + | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 925 | + | ms.StoreMessageInfo(mi) | |
| 926 | + | } | |
| 927 | + | ||
| 928 | + | func (x *MergeRequestMergeability) String() string { | |
| 929 | + | return protoimpl.X.MessageStringOf(x) | |
| 930 | + | } | |
| 931 | + | ||
| 932 | + | func (*MergeRequestMergeability) ProtoMessage() {} | |
| 933 | + | ||
| 934 | + | func (x *MergeRequestMergeability) ProtoReflect() protoreflect.Message { | |
| 935 | + | mi := &file_ermite_event_proto_msgTypes[10] | |
| 936 | + | if x != nil { | |
| 937 | + | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 938 | + | if ms.LoadMessageInfo() == nil { | |
| 939 | + | ms.StoreMessageInfo(mi) | |
| 940 | + | } | |
| 941 | + | return ms | |
| 942 | + | } | |
| 943 | + | return mi.MessageOf(x) | |
| 944 | + | } | |
| 945 | + | ||
| 946 | + | // Deprecated: Use MergeRequestMergeability.ProtoReflect.Descriptor instead. | |
| 947 | + | func (*MergeRequestMergeability) Descriptor() ([]byte, []int) { | |
| 948 | + | return file_ermite_event_proto_rawDescGZIP(), []int{10} | |
| 949 | + | } | |
| 950 | + | ||
| 951 | + | func (x *MergeRequestMergeability) GetRepo() string { | |
| 952 | + | if x != nil { | |
| 953 | + | return x.Repo | |
| 954 | + | } | |
| 955 | + | return "" | |
| 956 | + | } | |
| 957 | + | ||
| 958 | + | func (x *MergeRequestMergeability) GetNumber() int64 { | |
| 959 | + | if x != nil { | |
| 960 | + | return x.Number | |
| 961 | + | } | |
| 962 | + | return 0 | |
| 963 | + | } | |
| 964 | + | ||
| 965 | + | func (x *MergeRequestMergeability) GetMergeability() *Mergeability { | |
| 966 | + | if x != nil { | |
| 967 | + | return x.Mergeability | |
| 968 | + | } | |
| 969 | + | return nil | |
| 970 | + | } | |
| 971 | + | ||
| 888 | 972 | // MergeRequestClosed reports a merge request closed without merging. | |
| 889 | 973 | type MergeRequestClosed struct { | |
| 890 | 974 | state protoimpl.MessageState `protogen:"open.v1"` | |
| @@ -896,7 +980,7 @@ type MergeRequestClosed struct { | |||
| 896 | 980 | ||
| 897 | 981 | func (x *MergeRequestClosed) Reset() { | |
| 898 | 982 | *x = MergeRequestClosed{} | |
| 899 | - | mi := &file_ermite_event_proto_msgTypes[10] | |
| 983 | + | mi := &file_ermite_event_proto_msgTypes[11] | |
| 900 | 984 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 901 | 985 | ms.StoreMessageInfo(mi) | |
| 902 | 986 | } | |
| @@ -908,7 +992,7 @@ func (x *MergeRequestClosed) String() string { | |||
| 908 | 992 | func (*MergeRequestClosed) ProtoMessage() {} | |
| 909 | 993 | ||
| 910 | 994 | func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message { | |
| 911 | - | mi := &file_ermite_event_proto_msgTypes[10] | |
| 995 | + | mi := &file_ermite_event_proto_msgTypes[11] | |
| 912 | 996 | if x != nil { | |
| 913 | 997 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 914 | 998 | if ms.LoadMessageInfo() == nil { | |
| @@ -921,7 +1005,7 @@ func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message { | |||
| 921 | 1005 | ||
| 922 | 1006 | // Deprecated: Use MergeRequestClosed.ProtoReflect.Descriptor instead. | |
| 923 | 1007 | func (*MergeRequestClosed) Descriptor() ([]byte, []int) { | |
| 924 | - | return file_ermite_event_proto_rawDescGZIP(), []int{10} | |
| 1008 | + | return file_ermite_event_proto_rawDescGZIP(), []int{11} | |
| 925 | 1009 | } | |
| 926 | 1010 | ||
| 927 | 1011 | func (x *MergeRequestClosed) GetMergeRequest() *MergeRequest { | |
| @@ -946,7 +1030,7 @@ type CommentAdded struct { | |||
| 946 | 1030 | ||
| 947 | 1031 | func (x *CommentAdded) Reset() { | |
| 948 | 1032 | *x = CommentAdded{} | |
| 949 | - | mi := &file_ermite_event_proto_msgTypes[11] | |
| 1033 | + | mi := &file_ermite_event_proto_msgTypes[12] | |
| 950 | 1034 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 951 | 1035 | ms.StoreMessageInfo(mi) | |
| 952 | 1036 | } | |
| @@ -958,7 +1042,7 @@ func (x *CommentAdded) String() string { | |||
| 958 | 1042 | func (*CommentAdded) ProtoMessage() {} | |
| 959 | 1043 | ||
| 960 | 1044 | func (x *CommentAdded) ProtoReflect() protoreflect.Message { | |
| 961 | - | mi := &file_ermite_event_proto_msgTypes[11] | |
| 1045 | + | mi := &file_ermite_event_proto_msgTypes[12] | |
| 962 | 1046 | if x != nil { | |
| 963 | 1047 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 964 | 1048 | if ms.LoadMessageInfo() == nil { | |
| @@ -971,7 +1055,7 @@ func (x *CommentAdded) ProtoReflect() protoreflect.Message { | |||
| 971 | 1055 | ||
| 972 | 1056 | // Deprecated: Use CommentAdded.ProtoReflect.Descriptor instead. | |
| 973 | 1057 | func (*CommentAdded) Descriptor() ([]byte, []int) { | |
| 974 | - | return file_ermite_event_proto_rawDescGZIP(), []int{11} | |
| 1058 | + | return file_ermite_event_proto_rawDescGZIP(), []int{12} | |
| 975 | 1059 | } | |
| 976 | 1060 | ||
| 977 | 1061 | func (x *CommentAdded) GetRepo() string { | |
| @@ -1010,7 +1094,7 @@ type CommentEdited struct { | |||
| 1010 | 1094 | ||
| 1011 | 1095 | func (x *CommentEdited) Reset() { | |
| 1012 | 1096 | *x = CommentEdited{} | |
| 1013 | - | mi := &file_ermite_event_proto_msgTypes[12] | |
| 1097 | + | mi := &file_ermite_event_proto_msgTypes[13] | |
| 1014 | 1098 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1015 | 1099 | ms.StoreMessageInfo(mi) | |
| 1016 | 1100 | } | |
| @@ -1022,7 +1106,7 @@ func (x *CommentEdited) String() string { | |||
| 1022 | 1106 | func (*CommentEdited) ProtoMessage() {} | |
| 1023 | 1107 | ||
| 1024 | 1108 | func (x *CommentEdited) ProtoReflect() protoreflect.Message { | |
| 1025 | - | mi := &file_ermite_event_proto_msgTypes[12] | |
| 1109 | + | mi := &file_ermite_event_proto_msgTypes[13] | |
| 1026 | 1110 | if x != nil { | |
| 1027 | 1111 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1028 | 1112 | if ms.LoadMessageInfo() == nil { | |
| @@ -1035,7 +1119,7 @@ func (x *CommentEdited) ProtoReflect() protoreflect.Message { | |||
| 1035 | 1119 | ||
| 1036 | 1120 | // Deprecated: Use CommentEdited.ProtoReflect.Descriptor instead. | |
| 1037 | 1121 | func (*CommentEdited) Descriptor() ([]byte, []int) { | |
| 1038 | - | return file_ermite_event_proto_rawDescGZIP(), []int{12} | |
| 1122 | + | return file_ermite_event_proto_rawDescGZIP(), []int{13} | |
| 1039 | 1123 | } | |
| 1040 | 1124 | ||
| 1041 | 1125 | func (x *CommentEdited) GetRepo() string { | |
| @@ -1075,7 +1159,7 @@ type CommentDeleted struct { | |||
| 1075 | 1159 | ||
| 1076 | 1160 | func (x *CommentDeleted) Reset() { | |
| 1077 | 1161 | *x = CommentDeleted{} | |
| 1078 | - | mi := &file_ermite_event_proto_msgTypes[13] | |
| 1162 | + | mi := &file_ermite_event_proto_msgTypes[14] | |
| 1079 | 1163 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1080 | 1164 | ms.StoreMessageInfo(mi) | |
| 1081 | 1165 | } | |
| @@ -1087,7 +1171,7 @@ func (x *CommentDeleted) String() string { | |||
| 1087 | 1171 | func (*CommentDeleted) ProtoMessage() {} | |
| 1088 | 1172 | ||
| 1089 | 1173 | func (x *CommentDeleted) ProtoReflect() protoreflect.Message { | |
| 1090 | - | mi := &file_ermite_event_proto_msgTypes[13] | |
| 1174 | + | mi := &file_ermite_event_proto_msgTypes[14] | |
| 1091 | 1175 | if x != nil { | |
| 1092 | 1176 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1093 | 1177 | if ms.LoadMessageInfo() == nil { | |
| @@ -1100,7 +1184,7 @@ func (x *CommentDeleted) ProtoReflect() protoreflect.Message { | |||
| 1100 | 1184 | ||
| 1101 | 1185 | // Deprecated: Use CommentDeleted.ProtoReflect.Descriptor instead. | |
| 1102 | 1186 | func (*CommentDeleted) Descriptor() ([]byte, []int) { | |
| 1103 | - | return file_ermite_event_proto_rawDescGZIP(), []int{13} | |
| 1187 | + | return file_ermite_event_proto_rawDescGZIP(), []int{14} | |
| 1104 | 1188 | } | |
| 1105 | 1189 | ||
| 1106 | 1190 | func (x *CommentDeleted) GetRepo() string { | |
| @@ -1140,7 +1224,7 @@ type CommentResolved struct { | |||
| 1140 | 1224 | ||
| 1141 | 1225 | func (x *CommentResolved) Reset() { | |
| 1142 | 1226 | *x = CommentResolved{} | |
| 1143 | - | mi := &file_ermite_event_proto_msgTypes[14] | |
| 1227 | + | mi := &file_ermite_event_proto_msgTypes[15] | |
| 1144 | 1228 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1145 | 1229 | ms.StoreMessageInfo(mi) | |
| 1146 | 1230 | } | |
| @@ -1152,7 +1236,7 @@ func (x *CommentResolved) String() string { | |||
| 1152 | 1236 | func (*CommentResolved) ProtoMessage() {} | |
| 1153 | 1237 | ||
| 1154 | 1238 | func (x *CommentResolved) ProtoReflect() protoreflect.Message { | |
| 1155 | - | mi := &file_ermite_event_proto_msgTypes[14] | |
| 1239 | + | mi := &file_ermite_event_proto_msgTypes[15] | |
| 1156 | 1240 | if x != nil { | |
| 1157 | 1241 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1158 | 1242 | if ms.LoadMessageInfo() == nil { | |
| @@ -1165,7 +1249,7 @@ func (x *CommentResolved) ProtoReflect() protoreflect.Message { | |||
| 1165 | 1249 | ||
| 1166 | 1250 | // Deprecated: Use CommentResolved.ProtoReflect.Descriptor instead. | |
| 1167 | 1251 | func (*CommentResolved) Descriptor() ([]byte, []int) { | |
| 1168 | - | return file_ermite_event_proto_rawDescGZIP(), []int{14} | |
| 1252 | + | return file_ermite_event_proto_rawDescGZIP(), []int{15} | |
| 1169 | 1253 | } | |
| 1170 | 1254 | ||
| 1171 | 1255 | func (x *CommentResolved) GetRepo() string { | |
| @@ -1200,7 +1284,7 @@ type IssueOpened struct { | |||
| 1200 | 1284 | ||
| 1201 | 1285 | func (x *IssueOpened) Reset() { | |
| 1202 | 1286 | *x = IssueOpened{} | |
| 1203 | - | mi := &file_ermite_event_proto_msgTypes[15] | |
| 1287 | + | mi := &file_ermite_event_proto_msgTypes[16] | |
| 1204 | 1288 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1205 | 1289 | ms.StoreMessageInfo(mi) | |
| 1206 | 1290 | } | |
| @@ -1212,7 +1296,7 @@ func (x *IssueOpened) String() string { | |||
| 1212 | 1296 | func (*IssueOpened) ProtoMessage() {} | |
| 1213 | 1297 | ||
| 1214 | 1298 | func (x *IssueOpened) ProtoReflect() protoreflect.Message { | |
| 1215 | - | mi := &file_ermite_event_proto_msgTypes[15] | |
| 1299 | + | mi := &file_ermite_event_proto_msgTypes[16] | |
| 1216 | 1300 | if x != nil { | |
| 1217 | 1301 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1218 | 1302 | if ms.LoadMessageInfo() == nil { | |
| @@ -1225,7 +1309,7 @@ func (x *IssueOpened) ProtoReflect() protoreflect.Message { | |||
| 1225 | 1309 | ||
| 1226 | 1310 | // Deprecated: Use IssueOpened.ProtoReflect.Descriptor instead. | |
| 1227 | 1311 | func (*IssueOpened) Descriptor() ([]byte, []int) { | |
| 1228 | - | return file_ermite_event_proto_rawDescGZIP(), []int{15} | |
| 1312 | + | return file_ermite_event_proto_rawDescGZIP(), []int{16} | |
| 1229 | 1313 | } | |
| 1230 | 1314 | ||
| 1231 | 1315 | func (x *IssueOpened) GetIssue() *Issue { | |
| @@ -1246,7 +1330,7 @@ type IssueClosed struct { | |||
| 1246 | 1330 | ||
| 1247 | 1331 | func (x *IssueClosed) Reset() { | |
| 1248 | 1332 | *x = IssueClosed{} | |
| 1249 | - | mi := &file_ermite_event_proto_msgTypes[16] | |
| 1333 | + | mi := &file_ermite_event_proto_msgTypes[17] | |
| 1250 | 1334 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1251 | 1335 | ms.StoreMessageInfo(mi) | |
| 1252 | 1336 | } | |
| @@ -1258,7 +1342,7 @@ func (x *IssueClosed) String() string { | |||
| 1258 | 1342 | func (*IssueClosed) ProtoMessage() {} | |
| 1259 | 1343 | ||
| 1260 | 1344 | func (x *IssueClosed) ProtoReflect() protoreflect.Message { | |
| 1261 | - | mi := &file_ermite_event_proto_msgTypes[16] | |
| 1345 | + | mi := &file_ermite_event_proto_msgTypes[17] | |
| 1262 | 1346 | if x != nil { | |
| 1263 | 1347 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1264 | 1348 | if ms.LoadMessageInfo() == nil { | |
| @@ -1271,7 +1355,7 @@ func (x *IssueClosed) ProtoReflect() protoreflect.Message { | |||
| 1271 | 1355 | ||
| 1272 | 1356 | // Deprecated: Use IssueClosed.ProtoReflect.Descriptor instead. | |
| 1273 | 1357 | func (*IssueClosed) Descriptor() ([]byte, []int) { | |
| 1274 | - | return file_ermite_event_proto_rawDescGZIP(), []int{16} | |
| 1358 | + | return file_ermite_event_proto_rawDescGZIP(), []int{17} | |
| 1275 | 1359 | } | |
| 1276 | 1360 | ||
| 1277 | 1361 | func (x *IssueClosed) GetIssue() *Issue { | |
| @@ -1292,7 +1376,7 @@ type IssueReopened struct { | |||
| 1292 | 1376 | ||
| 1293 | 1377 | func (x *IssueReopened) Reset() { | |
| 1294 | 1378 | *x = IssueReopened{} | |
| 1295 | - | mi := &file_ermite_event_proto_msgTypes[17] | |
| 1379 | + | mi := &file_ermite_event_proto_msgTypes[18] | |
| 1296 | 1380 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1297 | 1381 | ms.StoreMessageInfo(mi) | |
| 1298 | 1382 | } | |
| @@ -1304,7 +1388,7 @@ func (x *IssueReopened) String() string { | |||
| 1304 | 1388 | func (*IssueReopened) ProtoMessage() {} | |
| 1305 | 1389 | ||
| 1306 | 1390 | func (x *IssueReopened) ProtoReflect() protoreflect.Message { | |
| 1307 | - | mi := &file_ermite_event_proto_msgTypes[17] | |
| 1391 | + | mi := &file_ermite_event_proto_msgTypes[18] | |
| 1308 | 1392 | if x != nil { | |
| 1309 | 1393 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1310 | 1394 | if ms.LoadMessageInfo() == nil { | |
| @@ -1317,7 +1401,7 @@ func (x *IssueReopened) ProtoReflect() protoreflect.Message { | |||
| 1317 | 1401 | ||
| 1318 | 1402 | // Deprecated: Use IssueReopened.ProtoReflect.Descriptor instead. | |
| 1319 | 1403 | func (*IssueReopened) Descriptor() ([]byte, []int) { | |
| 1320 | - | return file_ermite_event_proto_rawDescGZIP(), []int{17} | |
| 1404 | + | return file_ermite_event_proto_rawDescGZIP(), []int{18} | |
| 1321 | 1405 | } | |
| 1322 | 1406 | ||
| 1323 | 1407 | func (x *IssueReopened) GetIssue() *Issue { | |
| @@ -1342,7 +1426,7 @@ type IssueCommented struct { | |||
| 1342 | 1426 | ||
| 1343 | 1427 | func (x *IssueCommented) Reset() { | |
| 1344 | 1428 | *x = IssueCommented{} | |
| 1345 | - | mi := &file_ermite_event_proto_msgTypes[18] | |
| 1429 | + | mi := &file_ermite_event_proto_msgTypes[19] | |
| 1346 | 1430 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1347 | 1431 | ms.StoreMessageInfo(mi) | |
| 1348 | 1432 | } | |
| @@ -1354,7 +1438,7 @@ func (x *IssueCommented) String() string { | |||
| 1354 | 1438 | func (*IssueCommented) ProtoMessage() {} | |
| 1355 | 1439 | ||
| 1356 | 1440 | func (x *IssueCommented) ProtoReflect() protoreflect.Message { | |
| 1357 | - | mi := &file_ermite_event_proto_msgTypes[18] | |
| 1441 | + | mi := &file_ermite_event_proto_msgTypes[19] | |
| 1358 | 1442 | if x != nil { | |
| 1359 | 1443 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1360 | 1444 | if ms.LoadMessageInfo() == nil { | |
| @@ -1367,7 +1451,7 @@ func (x *IssueCommented) ProtoReflect() protoreflect.Message { | |||
| 1367 | 1451 | ||
| 1368 | 1452 | // Deprecated: Use IssueCommented.ProtoReflect.Descriptor instead. | |
| 1369 | 1453 | func (*IssueCommented) Descriptor() ([]byte, []int) { | |
| 1370 | - | return file_ermite_event_proto_rawDescGZIP(), []int{18} | |
| 1454 | + | return file_ermite_event_proto_rawDescGZIP(), []int{19} | |
| 1371 | 1455 | } | |
| 1372 | 1456 | ||
| 1373 | 1457 | func (x *IssueCommented) GetRepo() string { | |
| @@ -1406,7 +1490,7 @@ type IssueSubmitted struct { | |||
| 1406 | 1490 | ||
| 1407 | 1491 | func (x *IssueSubmitted) Reset() { | |
| 1408 | 1492 | *x = IssueSubmitted{} | |
| 1409 | - | mi := &file_ermite_event_proto_msgTypes[19] | |
| 1493 | + | mi := &file_ermite_event_proto_msgTypes[20] | |
| 1410 | 1494 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1411 | 1495 | ms.StoreMessageInfo(mi) | |
| 1412 | 1496 | } | |
| @@ -1418,7 +1502,7 @@ func (x *IssueSubmitted) String() string { | |||
| 1418 | 1502 | func (*IssueSubmitted) ProtoMessage() {} | |
| 1419 | 1503 | ||
| 1420 | 1504 | func (x *IssueSubmitted) ProtoReflect() protoreflect.Message { | |
| 1421 | - | mi := &file_ermite_event_proto_msgTypes[19] | |
| 1505 | + | mi := &file_ermite_event_proto_msgTypes[20] | |
| 1422 | 1506 | if x != nil { | |
| 1423 | 1507 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1424 | 1508 | if ms.LoadMessageInfo() == nil { | |
| @@ -1431,7 +1515,7 @@ func (x *IssueSubmitted) ProtoReflect() protoreflect.Message { | |||
| 1431 | 1515 | ||
| 1432 | 1516 | // Deprecated: Use IssueSubmitted.ProtoReflect.Descriptor instead. | |
| 1433 | 1517 | func (*IssueSubmitted) Descriptor() ([]byte, []int) { | |
| 1434 | - | return file_ermite_event_proto_rawDescGZIP(), []int{19} | |
| 1518 | + | return file_ermite_event_proto_rawDescGZIP(), []int{20} | |
| 1435 | 1519 | } | |
| 1436 | 1520 | ||
| 1437 | 1521 | func (x *IssueSubmitted) GetRepo() string { | |
| @@ -1461,7 +1545,7 @@ type Gap struct { | |||
| 1461 | 1545 | ||
| 1462 | 1546 | func (x *Gap) Reset() { | |
| 1463 | 1547 | *x = Gap{} | |
| 1464 | - | mi := &file_ermite_event_proto_msgTypes[20] | |
| 1548 | + | mi := &file_ermite_event_proto_msgTypes[21] | |
| 1465 | 1549 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1466 | 1550 | ms.StoreMessageInfo(mi) | |
| 1467 | 1551 | } | |
| @@ -1473,7 +1557,7 @@ func (x *Gap) String() string { | |||
| 1473 | 1557 | func (*Gap) ProtoMessage() {} | |
| 1474 | 1558 | ||
| 1475 | 1559 | func (x *Gap) ProtoReflect() protoreflect.Message { | |
| 1476 | - | mi := &file_ermite_event_proto_msgTypes[20] | |
| 1560 | + | mi := &file_ermite_event_proto_msgTypes[21] | |
| 1477 | 1561 | if x != nil { | |
| 1478 | 1562 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1479 | 1563 | if ms.LoadMessageInfo() == nil { | |
| @@ -1486,7 +1570,7 @@ func (x *Gap) ProtoReflect() protoreflect.Message { | |||
| 1486 | 1570 | ||
| 1487 | 1571 | // Deprecated: Use Gap.ProtoReflect.Descriptor instead. | |
| 1488 | 1572 | func (*Gap) Descriptor() ([]byte, []int) { | |
| 1489 | - | return file_ermite_event_proto_rawDescGZIP(), []int{20} | |
| 1573 | + | return file_ermite_event_proto_rawDescGZIP(), []int{21} | |
| 1490 | 1574 | } | |
| 1491 | 1575 | ||
| 1492 | 1576 | // RunUpdated reports a CI run that was created or whose status, conclusion or | |
| @@ -1501,7 +1585,7 @@ type RunUpdated struct { | |||
| 1501 | 1585 | ||
| 1502 | 1586 | func (x *RunUpdated) Reset() { | |
| 1503 | 1587 | *x = RunUpdated{} | |
| 1504 | - | mi := &file_ermite_event_proto_msgTypes[21] | |
| 1588 | + | mi := &file_ermite_event_proto_msgTypes[22] | |
| 1505 | 1589 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1506 | 1590 | ms.StoreMessageInfo(mi) | |
| 1507 | 1591 | } | |
| @@ -1513,7 +1597,7 @@ func (x *RunUpdated) String() string { | |||
| 1513 | 1597 | func (*RunUpdated) ProtoMessage() {} | |
| 1514 | 1598 | ||
| 1515 | 1599 | func (x *RunUpdated) ProtoReflect() protoreflect.Message { | |
| 1516 | - | mi := &file_ermite_event_proto_msgTypes[21] | |
| 1600 | + | mi := &file_ermite_event_proto_msgTypes[22] | |
| 1517 | 1601 | if x != nil { | |
| 1518 | 1602 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1519 | 1603 | if ms.LoadMessageInfo() == nil { | |
| @@ -1526,7 +1610,7 @@ func (x *RunUpdated) ProtoReflect() protoreflect.Message { | |||
| 1526 | 1610 | ||
| 1527 | 1611 | // Deprecated: Use RunUpdated.ProtoReflect.Descriptor instead. | |
| 1528 | 1612 | func (*RunUpdated) Descriptor() ([]byte, []int) { | |
| 1529 | - | return file_ermite_event_proto_rawDescGZIP(), []int{21} | |
| 1613 | + | return file_ermite_event_proto_rawDescGZIP(), []int{22} | |
| 1530 | 1614 | } | |
| 1531 | 1615 | ||
| 1532 | 1616 | func (x *RunUpdated) GetRun() *Run { | |
| @@ -1548,7 +1632,7 @@ type JobUpdated struct { | |||
| 1548 | 1632 | ||
| 1549 | 1633 | func (x *JobUpdated) Reset() { | |
| 1550 | 1634 | *x = JobUpdated{} | |
| 1551 | - | mi := &file_ermite_event_proto_msgTypes[22] | |
| 1635 | + | mi := &file_ermite_event_proto_msgTypes[23] | |
| 1552 | 1636 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1553 | 1637 | ms.StoreMessageInfo(mi) | |
| 1554 | 1638 | } | |
| @@ -1560,7 +1644,7 @@ func (x *JobUpdated) String() string { | |||
| 1560 | 1644 | func (*JobUpdated) ProtoMessage() {} | |
| 1561 | 1645 | ||
| 1562 | 1646 | func (x *JobUpdated) ProtoReflect() protoreflect.Message { | |
| 1563 | - | mi := &file_ermite_event_proto_msgTypes[22] | |
| 1647 | + | mi := &file_ermite_event_proto_msgTypes[23] | |
| 1564 | 1648 | if x != nil { | |
| 1565 | 1649 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| 1566 | 1650 | if ms.LoadMessageInfo() == nil { | |
| @@ -1573,7 +1657,7 @@ func (x *JobUpdated) ProtoReflect() protoreflect.Message { | |||
| 1573 | 1657 | ||
| 1574 | 1658 | // Deprecated: Use JobUpdated.ProtoReflect.Descriptor instead. | |
| 1575 | 1659 | func (*JobUpdated) Descriptor() ([]byte, []int) { | |
| 1576 | - | return file_ermite_event_proto_rawDescGZIP(), []int{22} | |
| 1660 | + | return file_ermite_event_proto_rawDescGZIP(), []int{23} | |
| 1577 | 1661 | } | |
| 1578 | 1662 | ||
| 1579 | 1663 | func (x *JobUpdated) GetJob() *RunJob { | |
| @@ -1592,7 +1676,8 @@ const file_ermite_event_proto_rawDesc = "" + | |||
| 1592 | 1676 | "\x06topics\x18\x01 \x03(\tR\x06topics\x12!\n" + | |
| 1593 | 1677 | "\fresume_after\x18\x02 \x01(\tR\vresumeAfter\"4\n" + | |
| 1594 | 1678 | "\rWatchResponse\x12#\n" + | |
| 1595 | - | "\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xe6\t\n" + | |
| 1679 | + | "\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xc8\n" + | |
| 1680 | + | "\n" + | |
| 1596 | 1681 | "\x05Event\x12\x0e\n" + | |
| 1597 | 1682 | "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + | |
| 1598 | 1683 | "\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x128\n" + | |
| @@ -1617,7 +1702,8 @@ const file_ermite_event_proto_rawDesc = "" + | |||
| 1617 | 1702 | "\fissue_closed\x18\x12 \x01(\v2\x13.ermite.IssueClosedH\x00R\vissueClosed\x12>\n" + | |
| 1618 | 1703 | "\x0eissue_reopened\x18\x13 \x01(\v2\x15.ermite.IssueReopenedH\x00R\rissueReopened\x12A\n" + | |
| 1619 | 1704 | "\x0fissue_commented\x18\x14 \x01(\v2\x16.ermite.IssueCommentedH\x00R\x0eissueCommented\x12A\n" + | |
| 1620 | - | "\x0fissue_submitted\x18\x15 \x01(\v2\x16.ermite.IssueSubmittedH\x00R\x0eissueSubmittedB\x06\n" + | |
| 1705 | + | "\x0fissue_submitted\x18\x15 \x01(\v2\x16.ermite.IssueSubmittedH\x00R\x0eissueSubmitted\x12`\n" + | |
| 1706 | + | "\x1amerge_request_mergeability\x18\x16 \x01(\v2 .ermite.MergeRequestMergeabilityH\x00R\x18mergeRequestMergeabilityB\x06\n" + | |
| 1621 | 1707 | "\x04kind\"/\n" + | |
| 1622 | 1708 | "\vRepoCreated\x12 \n" + | |
| 1623 | 1709 | "\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"/\n" + | |
| @@ -1636,7 +1722,11 @@ const file_ermite_event_proto_rawDesc = "" + | |||
| 1636 | 1722 | "\x12MergeRequestOpened\x129\n" + | |
| 1637 | 1723 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" + | |
| 1638 | 1724 | "\x12MergeRequestMerged\x129\n" + | |
| 1639 | - | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" + | |
| 1725 | + | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x80\x01\n" + | |
| 1726 | + | "\x18MergeRequestMergeability\x12\x12\n" + | |
| 1727 | + | "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" + | |
| 1728 | + | "\x06number\x18\x02 \x01(\x03R\x06number\x128\n" + | |
| 1729 | + | "\fmergeability\x18\x03 \x01(\v2\x14.ermite.MergeabilityR\fmergeability\"O\n" + | |
| 1640 | 1730 | "\x12MergeRequestClosed\x129\n" + | |
| 1641 | 1731 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"e\n" + | |
| 1642 | 1732 | "\fCommentAdded\x12\x12\n" + | |
| @@ -1693,85 +1783,89 @@ func file_ermite_event_proto_rawDescGZIP() []byte { | |||
| 1693 | 1783 | return file_ermite_event_proto_rawDescData | |
| 1694 | 1784 | } | |
| 1695 | 1785 | ||
| 1696 | - | var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 23) | |
| 1786 | + | var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 24) | |
| 1697 | 1787 | var file_ermite_event_proto_goTypes = []any{ | |
| 1698 | - | (*WatchRequest)(nil), // 0: ermite.WatchRequest | |
| 1699 | - | (*WatchResponse)(nil), // 1: ermite.WatchResponse | |
| 1700 | - | (*Event)(nil), // 2: ermite.Event | |
| 1701 | - | (*RepoCreated)(nil), // 3: ermite.RepoCreated | |
| 1702 | - | (*RepoUpdated)(nil), // 4: ermite.RepoUpdated | |
| 1703 | - | (*RepoDeleted)(nil), // 5: ermite.RepoDeleted | |
| 1704 | - | (*Pushed)(nil), // 6: ermite.Pushed | |
| 1705 | - | (*RefUpdate)(nil), // 7: ermite.RefUpdate | |
| 1706 | - | (*MergeRequestOpened)(nil), // 8: ermite.MergeRequestOpened | |
| 1707 | - | (*MergeRequestMerged)(nil), // 9: ermite.MergeRequestMerged | |
| 1708 | - | (*MergeRequestClosed)(nil), // 10: ermite.MergeRequestClosed | |
| 1709 | - | (*CommentAdded)(nil), // 11: ermite.CommentAdded | |
| 1710 | - | (*CommentEdited)(nil), // 12: ermite.CommentEdited | |
| 1711 | - | (*CommentDeleted)(nil), // 13: ermite.CommentDeleted | |
| 1712 | - | (*CommentResolved)(nil), // 14: ermite.CommentResolved | |
| 1713 | - | (*IssueOpened)(nil), // 15: ermite.IssueOpened | |
| 1714 | - | (*IssueClosed)(nil), // 16: ermite.IssueClosed | |
| 1715 | - | (*IssueReopened)(nil), // 17: ermite.IssueReopened | |
| 1716 | - | (*IssueCommented)(nil), // 18: ermite.IssueCommented | |
| 1717 | - | (*IssueSubmitted)(nil), // 19: ermite.IssueSubmitted | |
| 1718 | - | (*Gap)(nil), // 20: ermite.Gap | |
| 1719 | - | (*RunUpdated)(nil), // 21: ermite.RunUpdated | |
| 1720 | - | (*JobUpdated)(nil), // 22: ermite.JobUpdated | |
| 1721 | - | (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp | |
| 1722 | - | (*Repo)(nil), // 24: ermite.Repo | |
| 1723 | - | (*MergeRequest)(nil), // 25: ermite.MergeRequest | |
| 1724 | - | (*Comment)(nil), // 26: ermite.Comment | |
| 1725 | - | (*Issue)(nil), // 27: ermite.Issue | |
| 1726 | - | (*IssueComment)(nil), // 28: ermite.IssueComment | |
| 1727 | - | (*Run)(nil), // 29: ermite.Run | |
| 1728 | - | (*RunJob)(nil), // 30: ermite.RunJob | |
| 1788 | + | (*WatchRequest)(nil), // 0: ermite.WatchRequest | |
| 1789 | + | (*WatchResponse)(nil), // 1: ermite.WatchResponse | |
| 1790 | + | (*Event)(nil), // 2: ermite.Event | |
| 1791 | + | (*RepoCreated)(nil), // 3: ermite.RepoCreated | |
| 1792 | + | (*RepoUpdated)(nil), // 4: ermite.RepoUpdated | |
| 1793 | + | (*RepoDeleted)(nil), // 5: ermite.RepoDeleted | |
| 1794 | + | (*Pushed)(nil), // 6: ermite.Pushed | |
| 1795 | + | (*RefUpdate)(nil), // 7: ermite.RefUpdate | |
| 1796 | + | (*MergeRequestOpened)(nil), // 8: ermite.MergeRequestOpened | |
| 1797 | + | (*MergeRequestMerged)(nil), // 9: ermite.MergeRequestMerged | |
| 1798 | + | (*MergeRequestMergeability)(nil), // 10: ermite.MergeRequestMergeability | |
| 1799 | + | (*MergeRequestClosed)(nil), // 11: ermite.MergeRequestClosed | |
| 1800 | + | (*CommentAdded)(nil), // 12: ermite.CommentAdded | |
| 1801 | + | (*CommentEdited)(nil), // 13: ermite.CommentEdited | |
| 1802 | + | (*CommentDeleted)(nil), // 14: ermite.CommentDeleted | |
| 1803 | + | (*CommentResolved)(nil), // 15: ermite.CommentResolved | |
| 1804 | + | (*IssueOpened)(nil), // 16: ermite.IssueOpened | |
| 1805 | + | (*IssueClosed)(nil), // 17: ermite.IssueClosed | |
| 1806 | + | (*IssueReopened)(nil), // 18: ermite.IssueReopened | |
| 1807 | + | (*IssueCommented)(nil), // 19: ermite.IssueCommented | |
| 1808 | + | (*IssueSubmitted)(nil), // 20: ermite.IssueSubmitted | |
| 1809 | + | (*Gap)(nil), // 21: ermite.Gap | |
| 1810 | + | (*RunUpdated)(nil), // 22: ermite.RunUpdated | |
| 1811 | + | (*JobUpdated)(nil), // 23: ermite.JobUpdated | |
| 1812 | + | (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp | |
| 1813 | + | (*Repo)(nil), // 25: ermite.Repo | |
| 1814 | + | (*MergeRequest)(nil), // 26: ermite.MergeRequest | |
| 1815 | + | (*Mergeability)(nil), // 27: ermite.Mergeability | |
| 1816 | + | (*Comment)(nil), // 28: ermite.Comment | |
| 1817 | + | (*Issue)(nil), // 29: ermite.Issue | |
| 1818 | + | (*IssueComment)(nil), // 30: ermite.IssueComment | |
| 1819 | + | (*Run)(nil), // 31: ermite.Run | |
| 1820 | + | (*RunJob)(nil), // 32: ermite.RunJob | |
| 1729 | 1821 | } | |
| 1730 | 1822 | var file_ermite_event_proto_depIdxs = []int32{ | |
| 1731 | 1823 | 2, // 0: ermite.WatchResponse.event:type_name -> ermite.Event | |
| 1732 | - | 23, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp | |
| 1824 | + | 24, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp | |
| 1733 | 1825 | 3, // 2: ermite.Event.repo_created:type_name -> ermite.RepoCreated | |
| 1734 | 1826 | 4, // 3: ermite.Event.repo_updated:type_name -> ermite.RepoUpdated | |
| 1735 | 1827 | 5, // 4: ermite.Event.repo_deleted:type_name -> ermite.RepoDeleted | |
| 1736 | 1828 | 6, // 5: ermite.Event.pushed:type_name -> ermite.Pushed | |
| 1737 | - | 20, // 6: ermite.Event.gap:type_name -> ermite.Gap | |
| 1829 | + | 21, // 6: ermite.Event.gap:type_name -> ermite.Gap | |
| 1738 | 1830 | 8, // 7: ermite.Event.merge_request_opened:type_name -> ermite.MergeRequestOpened | |
| 1739 | 1831 | 9, // 8: ermite.Event.merge_request_merged:type_name -> ermite.MergeRequestMerged | |
| 1740 | - | 10, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed | |
| 1741 | - | 11, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded | |
| 1742 | - | 21, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated | |
| 1743 | - | 22, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated | |
| 1744 | - | 12, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited | |
| 1745 | - | 13, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted | |
| 1746 | - | 14, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved | |
| 1747 | - | 15, // 16: ermite.Event.issue_opened:type_name -> ermite.IssueOpened | |
| 1748 | - | 16, // 17: ermite.Event.issue_closed:type_name -> ermite.IssueClosed | |
| 1749 | - | 17, // 18: ermite.Event.issue_reopened:type_name -> ermite.IssueReopened | |
| 1750 | - | 18, // 19: ermite.Event.issue_commented:type_name -> ermite.IssueCommented | |
| 1751 | - | 19, // 20: ermite.Event.issue_submitted:type_name -> ermite.IssueSubmitted | |
| 1752 | - | 24, // 21: ermite.RepoCreated.repo:type_name -> ermite.Repo | |
| 1753 | - | 24, // 22: ermite.RepoUpdated.repo:type_name -> ermite.Repo | |
| 1754 | - | 7, // 23: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate | |
| 1755 | - | 25, // 24: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest | |
| 1756 | - | 25, // 25: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest | |
| 1757 | - | 25, // 26: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest | |
| 1758 | - | 26, // 27: ermite.CommentAdded.comment:type_name -> ermite.Comment | |
| 1759 | - | 26, // 28: ermite.CommentEdited.comment:type_name -> ermite.Comment | |
| 1760 | - | 26, // 29: ermite.CommentDeleted.comment:type_name -> ermite.Comment | |
| 1761 | - | 26, // 30: ermite.CommentResolved.comment:type_name -> ermite.Comment | |
| 1762 | - | 27, // 31: ermite.IssueOpened.issue:type_name -> ermite.Issue | |
| 1763 | - | 27, // 32: ermite.IssueClosed.issue:type_name -> ermite.Issue | |
| 1764 | - | 27, // 33: ermite.IssueReopened.issue:type_name -> ermite.Issue | |
| 1765 | - | 28, // 34: ermite.IssueCommented.comment:type_name -> ermite.IssueComment | |
| 1766 | - | 29, // 35: ermite.RunUpdated.run:type_name -> ermite.Run | |
| 1767 | - | 30, // 36: ermite.JobUpdated.job:type_name -> ermite.RunJob | |
| 1768 | - | 0, // 37: ermite.EventService.Watch:input_type -> ermite.WatchRequest | |
| 1769 | - | 1, // 38: ermite.EventService.Watch:output_type -> ermite.WatchResponse | |
| 1770 | - | 38, // [38:39] is the sub-list for method output_type | |
| 1771 | - | 37, // [37:38] is the sub-list for method input_type | |
| 1772 | - | 37, // [37:37] is the sub-list for extension type_name | |
| 1773 | - | 37, // [37:37] is the sub-list for extension extendee | |
| 1774 | - | 0, // [0:37] is the sub-list for field type_name | |
| 1832 | + | 11, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed | |
| 1833 | + | 12, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded | |
| 1834 | + | 22, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated | |
| 1835 | + | 23, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated | |
| 1836 | + | 13, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited | |
| 1837 | + | 14, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted | |
| 1838 | + | 15, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved | |
| 1839 | + | 16, // 16: ermite.Event.issue_opened:type_name -> ermite.IssueOpened | |
| 1840 | + | 17, // 17: ermite.Event.issue_closed:type_name -> ermite.IssueClosed | |
| 1841 | + | 18, // 18: ermite.Event.issue_reopened:type_name -> ermite.IssueReopened | |
| 1842 | + | 19, // 19: ermite.Event.issue_commented:type_name -> ermite.IssueCommented | |
| 1843 | + | 20, // 20: ermite.Event.issue_submitted:type_name -> ermite.IssueSubmitted | |
| 1844 | + | 10, // 21: ermite.Event.merge_request_mergeability:type_name -> ermite.MergeRequestMergeability | |
| 1845 | + | 25, // 22: ermite.RepoCreated.repo:type_name -> ermite.Repo | |
| 1846 | + | 25, // 23: ermite.RepoUpdated.repo:type_name -> ermite.Repo | |
| 1847 | + | 7, // 24: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate | |
| 1848 | + | 26, // 25: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest | |
| 1849 | + | 26, // 26: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest | |
| 1850 | + | 27, // 27: ermite.MergeRequestMergeability.mergeability:type_name -> ermite.Mergeability | |
| 1851 | + | 26, // 28: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest | |
| 1852 | + | 28, // 29: ermite.CommentAdded.comment:type_name -> ermite.Comment | |
| 1853 | + | 28, // 30: ermite.CommentEdited.comment:type_name -> ermite.Comment | |
| 1854 | + | 28, // 31: ermite.CommentDeleted.comment:type_name -> ermite.Comment | |
| 1855 | + | 28, // 32: ermite.CommentResolved.comment:type_name -> ermite.Comment | |
| 1856 | + | 29, // 33: ermite.IssueOpened.issue:type_name -> ermite.Issue | |
| 1857 | + | 29, // 34: ermite.IssueClosed.issue:type_name -> ermite.Issue | |
| 1858 | + | 29, // 35: ermite.IssueReopened.issue:type_name -> ermite.Issue | |
| 1859 | + | 30, // 36: ermite.IssueCommented.comment:type_name -> ermite.IssueComment | |
| 1860 | + | 31, // 37: ermite.RunUpdated.run:type_name -> ermite.Run | |
| 1861 | + | 32, // 38: ermite.JobUpdated.job:type_name -> ermite.RunJob | |
| 1862 | + | 0, // 39: ermite.EventService.Watch:input_type -> ermite.WatchRequest | |
| 1863 | + | 1, // 40: ermite.EventService.Watch:output_type -> ermite.WatchResponse | |
| 1864 | + | 40, // [40:41] is the sub-list for method output_type | |
| 1865 | + | 39, // [39:40] is the sub-list for method input_type | |
| 1866 | + | 39, // [39:39] is the sub-list for extension type_name | |
| 1867 | + | 39, // [39:39] is the sub-list for extension extendee | |
| 1868 | + | 0, // [0:39] is the sub-list for field type_name | |
| 1775 | 1869 | } | |
| 1776 | 1870 | ||
| 1777 | 1871 | func init() { file_ermite_event_proto_init() } | |
| @@ -1803,6 +1897,7 @@ func file_ermite_event_proto_init() { | |||
| 1803 | 1897 | (*Event_IssueReopened)(nil), | |
| 1804 | 1898 | (*Event_IssueCommented)(nil), | |
| 1805 | 1899 | (*Event_IssueSubmitted)(nil), | |
| 1900 | + | (*Event_MergeRequestMergeability)(nil), | |
| 1806 | 1901 | } | |
| 1807 | 1902 | type x struct{} | |
| 1808 | 1903 | out := protoimpl.TypeBuilder{ | |
| @@ -1810,7 +1905,7 @@ func file_ermite_event_proto_init() { | |||
| 1810 | 1905 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | |
| 1811 | 1906 | RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)), | |
| 1812 | 1907 | NumEnums: 0, | |
| 1813 | - | NumMessages: 23, | |
| 1908 | + | NumMessages: 24, | |
| 1814 | 1909 | NumExtensions: 0, | |
| 1815 | 1910 | NumServices: 1, | |
| 1816 | 1911 | }, | |
| @@ -170,6 +170,7 @@ type Event struct { | |||||
| 170 | // *Event_IssueReopened | 170 | // *Event_IssueReopened | ||
| 171 | // *Event_IssueCommented | 171 | // *Event_IssueCommented | ||
| 172 | // *Event_IssueSubmitted | 172 | // *Event_IssueSubmitted | ||
| 173 | + | // *Event_MergeRequestMergeability | |||
| 173 | Kind isEvent_Kind `protobuf_oneof:"kind"` | 174 | Kind isEvent_Kind `protobuf_oneof:"kind"` | ||
| 174 | unknownFields protoimpl.UnknownFields | 175 | unknownFields protoimpl.UnknownFields | ||
| 175 | sizeCache protoimpl.SizeCache | 176 | sizeCache protoimpl.SizeCache | ||
| @@ -397,6 +398,15 @@ func (x *Event) GetIssueSubmitted() *IssueSubmitted { | |||||
| 397 | return nil | 398 | return nil | ||
| 398 | } | 399 | } | ||
| 399 | 400 | ||||
| 401 | + | func (x *Event) GetMergeRequestMergeability() *MergeRequestMergeability { | |||
| 402 | + | if x != nil { | |||
| 403 | + | if x, ok := x.Kind.(*Event_MergeRequestMergeability); ok { | |||
| 404 | + | return x.MergeRequestMergeability | |||
| 405 | + | } | |||
| 406 | + | } | |||
| 407 | + | return nil | |||
| 408 | + | } | |||
| 409 | + | ||||
| 400 | type isEvent_Kind interface { | 410 | type isEvent_Kind interface { | ||
| 401 | isEvent_Kind() | 411 | isEvent_Kind() | ||
| 402 | } | 412 | } | ||
| @@ -497,6 +507,12 @@ type Event_IssueSubmitted struct { | |||||
| 497 | IssueSubmitted *IssueSubmitted `protobuf:"bytes,21,opt,name=issue_submitted,json=issueSubmitted,proto3,oneof"` | 507 | IssueSubmitted *IssueSubmitted `protobuf:"bytes,21,opt,name=issue_submitted,json=issueSubmitted,proto3,oneof"` | ||
| 498 | } | 508 | } | ||
| 499 | 509 | ||||
| 510 | + | type Event_MergeRequestMergeability struct { | |||
| 511 | + | // MergeRequestMergeability: the mergeability of an open merge request | |||
| 512 | + | // changed. | |||
| 513 | + | MergeRequestMergeability *MergeRequestMergeability `protobuf:"bytes,22,opt,name=merge_request_mergeability,json=mergeRequestMergeability,proto3,oneof"` | |||
| 514 | + | } | |||
| 515 | + | ||||
| 500 | func (*Event_RepoCreated) isEvent_Kind() {} | 516 | func (*Event_RepoCreated) isEvent_Kind() {} | ||
| 501 | 517 | ||||
| 502 | func (*Event_RepoUpdated) isEvent_Kind() {} | 518 | func (*Event_RepoUpdated) isEvent_Kind() {} | ||
| @@ -535,6 +551,8 @@ func (*Event_IssueCommented) isEvent_Kind() {} | |||||
| 535 | 551 | ||||
| 536 | func (*Event_IssueSubmitted) isEvent_Kind() {} | 552 | func (*Event_IssueSubmitted) isEvent_Kind() {} | ||
| 537 | 553 | ||||
| 554 | + | func (*Event_MergeRequestMergeability) isEvent_Kind() {} | |||
| 555 | + | ||||
| 538 | // RepoCreated reports a new repository. | 556 | // RepoCreated reports a new repository. | ||
| 539 | type RepoCreated struct { | 557 | type RepoCreated struct { | ||
| 540 | state protoimpl.MessageState `protogen:"open.v1"` | 558 | state protoimpl.MessageState `protogen:"open.v1"` | ||
| @@ -885,6 +903,72 @@ func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest { | |||||
| 885 | return nil | 903 | return nil | ||
| 886 | } | 904 | } | ||
| 887 | 905 | ||||
| 906 | + | // MergeRequestMergeability reports the mergeability of an open merge request. | |||
| 907 | + | // It is published when the state changes, or when a check settles a result | |||
| 908 | + | // that readers had not seen yet (they saw CHECKING), not on every push. | |||
| 909 | + | type MergeRequestMergeability struct { | |||
| 910 | + | state protoimpl.MessageState `protogen:"open.v1"` | |||
| 911 | + | // Repo is the name of the repository. | |||
| 912 | + | Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` | |||
| 913 | + | // Number is the number of the merge request. | |||
| 914 | + | Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` | |||
| 915 | + | // Mergeability is the new result. | |||
| 916 | + | Mergeability *Mergeability `protobuf:"bytes,3,opt,name=mergeability,proto3" json:"mergeability,omitempty"` | |||
| 917 | + | unknownFields protoimpl.UnknownFields | |||
| 918 | + | sizeCache protoimpl.SizeCache | |||
| 919 | + | } | |||
| 920 | + | ||||
| 921 | + | func (x *MergeRequestMergeability) Reset() { | |||
| 922 | + | *x = MergeRequestMergeability{} | |||
| 923 | + | mi := &file_ermite_event_proto_msgTypes[10] | |||
| 924 | + | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| 925 | + | ms.StoreMessageInfo(mi) | |||
| 926 | + | } | |||
| 927 | + | ||||
| 928 | + | func (x *MergeRequestMergeability) String() string { | |||
| 929 | + | return protoimpl.X.MessageStringOf(x) | |||
| 930 | + | } | |||
| 931 | + | ||||
| 932 | + | func (*MergeRequestMergeability) ProtoMessage() {} | |||
| 933 | + | ||||
| 934 | + | func (x *MergeRequestMergeability) ProtoReflect() protoreflect.Message { | |||
| 935 | + | mi := &file_ermite_event_proto_msgTypes[10] | |||
| 936 | + | if x != nil { | |||
| 937 | + | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |||
| 938 | + | if ms.LoadMessageInfo() == nil { | |||
| 939 | + | ms.StoreMessageInfo(mi) | |||
| 940 | + | } | |||
| 941 | + | return ms | |||
| 942 | + | } | |||
| 943 | + | return mi.MessageOf(x) | |||
| 944 | + | } | |||
| 945 | + | ||||
| 946 | + | // Deprecated: Use MergeRequestMergeability.ProtoReflect.Descriptor instead. | |||
| 947 | + | func (*MergeRequestMergeability) Descriptor() ([]byte, []int) { | |||
| 948 | + | return file_ermite_event_proto_rawDescGZIP(), []int{10} | |||
| 949 | + | } | |||
| 950 | + | ||||
| 951 | + | func (x *MergeRequestMergeability) GetRepo() string { | |||
| 952 | + | if x != nil { | |||
| 953 | + | return x.Repo | |||
| 954 | + | } | |||
| 955 | + | return "" | |||
| 956 | + | } | |||
| 957 | + | ||||
| 958 | + | func (x *MergeRequestMergeability) GetNumber() int64 { | |||
| 959 | + | if x != nil { | |||
| 960 | + | return x.Number | |||
| 961 | + | } | |||
| 962 | + | return 0 | |||
| 963 | + | } | |||
| 964 | + | ||||
| 965 | + | func (x *MergeRequestMergeability) GetMergeability() *Mergeability { | |||
| 966 | + | if x != nil { | |||
| 967 | + | return x.Mergeability | |||
| 968 | + | } | |||
| 969 | + | return nil | |||
| 970 | + | } | |||
| 971 | + | ||||
| 888 | // MergeRequestClosed reports a merge request closed without merging. | 972 | // MergeRequestClosed reports a merge request closed without merging. | ||
| 889 | type MergeRequestClosed struct { | 973 | type MergeRequestClosed struct { | ||
| 890 | state protoimpl.MessageState `protogen:"open.v1"` | 974 | state protoimpl.MessageState `protogen:"open.v1"` | ||
| @@ -896,7 +980,7 @@ type MergeRequestClosed struct { | |||||
| 896 | 980 | ||||
| 897 | func (x *MergeRequestClosed) Reset() { | 981 | func (x *MergeRequestClosed) Reset() { | ||
| 898 | *x = MergeRequestClosed{} | 982 | *x = MergeRequestClosed{} | ||
| 899 | - | mi := &file_ermite_event_proto_msgTypes[10] | 983 | + | mi := &file_ermite_event_proto_msgTypes[11] |
| 900 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 984 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 901 | ms.StoreMessageInfo(mi) | 985 | ms.StoreMessageInfo(mi) | ||
| 902 | } | 986 | } | ||
| @@ -908,7 +992,7 @@ func (x *MergeRequestClosed) String() string { | |||||
| 908 | func (*MergeRequestClosed) ProtoMessage() {} | 992 | func (*MergeRequestClosed) ProtoMessage() {} | ||
| 909 | 993 | ||||
| 910 | func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message { | 994 | func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message { | ||
| 911 | - | mi := &file_ermite_event_proto_msgTypes[10] | 995 | + | mi := &file_ermite_event_proto_msgTypes[11] |
| 912 | if x != nil { | 996 | if x != nil { | ||
| 913 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 997 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 914 | if ms.LoadMessageInfo() == nil { | 998 | if ms.LoadMessageInfo() == nil { | ||
| @@ -921,7 +1005,7 @@ func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message { | |||||
| 921 | 1005 | ||||
| 922 | // Deprecated: Use MergeRequestClosed.ProtoReflect.Descriptor instead. | 1006 | // Deprecated: Use MergeRequestClosed.ProtoReflect.Descriptor instead. | ||
| 923 | func (*MergeRequestClosed) Descriptor() ([]byte, []int) { | 1007 | func (*MergeRequestClosed) Descriptor() ([]byte, []int) { | ||
| 924 | - | return file_ermite_event_proto_rawDescGZIP(), []int{10} | 1008 | + | return file_ermite_event_proto_rawDescGZIP(), []int{11} |
| 925 | } | 1009 | } | ||
| 926 | 1010 | ||||
| 927 | func (x *MergeRequestClosed) GetMergeRequest() *MergeRequest { | 1011 | func (x *MergeRequestClosed) GetMergeRequest() *MergeRequest { | ||
| @@ -946,7 +1030,7 @@ type CommentAdded struct { | |||||
| 946 | 1030 | ||||
| 947 | func (x *CommentAdded) Reset() { | 1031 | func (x *CommentAdded) Reset() { | ||
| 948 | *x = CommentAdded{} | 1032 | *x = CommentAdded{} | ||
| 949 | - | mi := &file_ermite_event_proto_msgTypes[11] | 1033 | + | mi := &file_ermite_event_proto_msgTypes[12] |
| 950 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1034 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 951 | ms.StoreMessageInfo(mi) | 1035 | ms.StoreMessageInfo(mi) | ||
| 952 | } | 1036 | } | ||
| @@ -958,7 +1042,7 @@ func (x *CommentAdded) String() string { | |||||
| 958 | func (*CommentAdded) ProtoMessage() {} | 1042 | func (*CommentAdded) ProtoMessage() {} | ||
| 959 | 1043 | ||||
| 960 | func (x *CommentAdded) ProtoReflect() protoreflect.Message { | 1044 | func (x *CommentAdded) ProtoReflect() protoreflect.Message { | ||
| 961 | - | mi := &file_ermite_event_proto_msgTypes[11] | 1045 | + | mi := &file_ermite_event_proto_msgTypes[12] |
| 962 | if x != nil { | 1046 | if x != nil { | ||
| 963 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1047 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 964 | if ms.LoadMessageInfo() == nil { | 1048 | if ms.LoadMessageInfo() == nil { | ||
| @@ -971,7 +1055,7 @@ func (x *CommentAdded) ProtoReflect() protoreflect.Message { | |||||
| 971 | 1055 | ||||
| 972 | // Deprecated: Use CommentAdded.ProtoReflect.Descriptor instead. | 1056 | // Deprecated: Use CommentAdded.ProtoReflect.Descriptor instead. | ||
| 973 | func (*CommentAdded) Descriptor() ([]byte, []int) { | 1057 | func (*CommentAdded) Descriptor() ([]byte, []int) { | ||
| 974 | - | return file_ermite_event_proto_rawDescGZIP(), []int{11} | 1058 | + | return file_ermite_event_proto_rawDescGZIP(), []int{12} |
| 975 | } | 1059 | } | ||
| 976 | 1060 | ||||
| 977 | func (x *CommentAdded) GetRepo() string { | 1061 | func (x *CommentAdded) GetRepo() string { | ||
| @@ -1010,7 +1094,7 @@ type CommentEdited struct { | |||||
| 1010 | 1094 | ||||
| 1011 | func (x *CommentEdited) Reset() { | 1095 | func (x *CommentEdited) Reset() { | ||
| 1012 | *x = CommentEdited{} | 1096 | *x = CommentEdited{} | ||
| 1013 | - | mi := &file_ermite_event_proto_msgTypes[12] | 1097 | + | mi := &file_ermite_event_proto_msgTypes[13] |
| 1014 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1098 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1015 | ms.StoreMessageInfo(mi) | 1099 | ms.StoreMessageInfo(mi) | ||
| 1016 | } | 1100 | } | ||
| @@ -1022,7 +1106,7 @@ func (x *CommentEdited) String() string { | |||||
| 1022 | func (*CommentEdited) ProtoMessage() {} | 1106 | func (*CommentEdited) ProtoMessage() {} | ||
| 1023 | 1107 | ||||
| 1024 | func (x *CommentEdited) ProtoReflect() protoreflect.Message { | 1108 | func (x *CommentEdited) ProtoReflect() protoreflect.Message { | ||
| 1025 | - | mi := &file_ermite_event_proto_msgTypes[12] | 1109 | + | mi := &file_ermite_event_proto_msgTypes[13] |
| 1026 | if x != nil { | 1110 | if x != nil { | ||
| 1027 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1111 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1028 | if ms.LoadMessageInfo() == nil { | 1112 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1035,7 +1119,7 @@ func (x *CommentEdited) ProtoReflect() protoreflect.Message { | |||||
| 1035 | 1119 | ||||
| 1036 | // Deprecated: Use CommentEdited.ProtoReflect.Descriptor instead. | 1120 | // Deprecated: Use CommentEdited.ProtoReflect.Descriptor instead. | ||
| 1037 | func (*CommentEdited) Descriptor() ([]byte, []int) { | 1121 | func (*CommentEdited) Descriptor() ([]byte, []int) { | ||
| 1038 | - | return file_ermite_event_proto_rawDescGZIP(), []int{12} | 1122 | + | return file_ermite_event_proto_rawDescGZIP(), []int{13} |
| 1039 | } | 1123 | } | ||
| 1040 | 1124 | ||||
| 1041 | func (x *CommentEdited) GetRepo() string { | 1125 | func (x *CommentEdited) GetRepo() string { | ||
| @@ -1075,7 +1159,7 @@ type CommentDeleted struct { | |||||
| 1075 | 1159 | ||||
| 1076 | func (x *CommentDeleted) Reset() { | 1160 | func (x *CommentDeleted) Reset() { | ||
| 1077 | *x = CommentDeleted{} | 1161 | *x = CommentDeleted{} | ||
| 1078 | - | mi := &file_ermite_event_proto_msgTypes[13] | 1162 | + | mi := &file_ermite_event_proto_msgTypes[14] |
| 1079 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1163 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1080 | ms.StoreMessageInfo(mi) | 1164 | ms.StoreMessageInfo(mi) | ||
| 1081 | } | 1165 | } | ||
| @@ -1087,7 +1171,7 @@ func (x *CommentDeleted) String() string { | |||||
| 1087 | func (*CommentDeleted) ProtoMessage() {} | 1171 | func (*CommentDeleted) ProtoMessage() {} | ||
| 1088 | 1172 | ||||
| 1089 | func (x *CommentDeleted) ProtoReflect() protoreflect.Message { | 1173 | func (x *CommentDeleted) ProtoReflect() protoreflect.Message { | ||
| 1090 | - | mi := &file_ermite_event_proto_msgTypes[13] | 1174 | + | mi := &file_ermite_event_proto_msgTypes[14] |
| 1091 | if x != nil { | 1175 | if x != nil { | ||
| 1092 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1176 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1093 | if ms.LoadMessageInfo() == nil { | 1177 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1100,7 +1184,7 @@ func (x *CommentDeleted) ProtoReflect() protoreflect.Message { | |||||
| 1100 | 1184 | ||||
| 1101 | // Deprecated: Use CommentDeleted.ProtoReflect.Descriptor instead. | 1185 | // Deprecated: Use CommentDeleted.ProtoReflect.Descriptor instead. | ||
| 1102 | func (*CommentDeleted) Descriptor() ([]byte, []int) { | 1186 | func (*CommentDeleted) Descriptor() ([]byte, []int) { | ||
| 1103 | - | return file_ermite_event_proto_rawDescGZIP(), []int{13} | 1187 | + | return file_ermite_event_proto_rawDescGZIP(), []int{14} |
| 1104 | } | 1188 | } | ||
| 1105 | 1189 | ||||
| 1106 | func (x *CommentDeleted) GetRepo() string { | 1190 | func (x *CommentDeleted) GetRepo() string { | ||
| @@ -1140,7 +1224,7 @@ type CommentResolved struct { | |||||
| 1140 | 1224 | ||||
| 1141 | func (x *CommentResolved) Reset() { | 1225 | func (x *CommentResolved) Reset() { | ||
| 1142 | *x = CommentResolved{} | 1226 | *x = CommentResolved{} | ||
| 1143 | - | mi := &file_ermite_event_proto_msgTypes[14] | 1227 | + | mi := &file_ermite_event_proto_msgTypes[15] |
| 1144 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1228 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1145 | ms.StoreMessageInfo(mi) | 1229 | ms.StoreMessageInfo(mi) | ||
| 1146 | } | 1230 | } | ||
| @@ -1152,7 +1236,7 @@ func (x *CommentResolved) String() string { | |||||
| 1152 | func (*CommentResolved) ProtoMessage() {} | 1236 | func (*CommentResolved) ProtoMessage() {} | ||
| 1153 | 1237 | ||||
| 1154 | func (x *CommentResolved) ProtoReflect() protoreflect.Message { | 1238 | func (x *CommentResolved) ProtoReflect() protoreflect.Message { | ||
| 1155 | - | mi := &file_ermite_event_proto_msgTypes[14] | 1239 | + | mi := &file_ermite_event_proto_msgTypes[15] |
| 1156 | if x != nil { | 1240 | if x != nil { | ||
| 1157 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1241 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1158 | if ms.LoadMessageInfo() == nil { | 1242 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1165,7 +1249,7 @@ func (x *CommentResolved) ProtoReflect() protoreflect.Message { | |||||
| 1165 | 1249 | ||||
| 1166 | // Deprecated: Use CommentResolved.ProtoReflect.Descriptor instead. | 1250 | // Deprecated: Use CommentResolved.ProtoReflect.Descriptor instead. | ||
| 1167 | func (*CommentResolved) Descriptor() ([]byte, []int) { | 1251 | func (*CommentResolved) Descriptor() ([]byte, []int) { | ||
| 1168 | - | return file_ermite_event_proto_rawDescGZIP(), []int{14} | 1252 | + | return file_ermite_event_proto_rawDescGZIP(), []int{15} |
| 1169 | } | 1253 | } | ||
| 1170 | 1254 | ||||
| 1171 | func (x *CommentResolved) GetRepo() string { | 1255 | func (x *CommentResolved) GetRepo() string { | ||
| @@ -1200,7 +1284,7 @@ type IssueOpened struct { | |||||
| 1200 | 1284 | ||||
| 1201 | func (x *IssueOpened) Reset() { | 1285 | func (x *IssueOpened) Reset() { | ||
| 1202 | *x = IssueOpened{} | 1286 | *x = IssueOpened{} | ||
| 1203 | - | mi := &file_ermite_event_proto_msgTypes[15] | 1287 | + | mi := &file_ermite_event_proto_msgTypes[16] |
| 1204 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1288 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1205 | ms.StoreMessageInfo(mi) | 1289 | ms.StoreMessageInfo(mi) | ||
| 1206 | } | 1290 | } | ||
| @@ -1212,7 +1296,7 @@ func (x *IssueOpened) String() string { | |||||
| 1212 | func (*IssueOpened) ProtoMessage() {} | 1296 | func (*IssueOpened) ProtoMessage() {} | ||
| 1213 | 1297 | ||||
| 1214 | func (x *IssueOpened) ProtoReflect() protoreflect.Message { | 1298 | func (x *IssueOpened) ProtoReflect() protoreflect.Message { | ||
| 1215 | - | mi := &file_ermite_event_proto_msgTypes[15] | 1299 | + | mi := &file_ermite_event_proto_msgTypes[16] |
| 1216 | if x != nil { | 1300 | if x != nil { | ||
| 1217 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1301 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1218 | if ms.LoadMessageInfo() == nil { | 1302 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1225,7 +1309,7 @@ func (x *IssueOpened) ProtoReflect() protoreflect.Message { | |||||
| 1225 | 1309 | ||||
| 1226 | // Deprecated: Use IssueOpened.ProtoReflect.Descriptor instead. | 1310 | // Deprecated: Use IssueOpened.ProtoReflect.Descriptor instead. | ||
| 1227 | func (*IssueOpened) Descriptor() ([]byte, []int) { | 1311 | func (*IssueOpened) Descriptor() ([]byte, []int) { | ||
| 1228 | - | return file_ermite_event_proto_rawDescGZIP(), []int{15} | 1312 | + | return file_ermite_event_proto_rawDescGZIP(), []int{16} |
| 1229 | } | 1313 | } | ||
| 1230 | 1314 | ||||
| 1231 | func (x *IssueOpened) GetIssue() *Issue { | 1315 | func (x *IssueOpened) GetIssue() *Issue { | ||
| @@ -1246,7 +1330,7 @@ type IssueClosed struct { | |||||
| 1246 | 1330 | ||||
| 1247 | func (x *IssueClosed) Reset() { | 1331 | func (x *IssueClosed) Reset() { | ||
| 1248 | *x = IssueClosed{} | 1332 | *x = IssueClosed{} | ||
| 1249 | - | mi := &file_ermite_event_proto_msgTypes[16] | 1333 | + | mi := &file_ermite_event_proto_msgTypes[17] |
| 1250 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1334 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1251 | ms.StoreMessageInfo(mi) | 1335 | ms.StoreMessageInfo(mi) | ||
| 1252 | } | 1336 | } | ||
| @@ -1258,7 +1342,7 @@ func (x *IssueClosed) String() string { | |||||
| 1258 | func (*IssueClosed) ProtoMessage() {} | 1342 | func (*IssueClosed) ProtoMessage() {} | ||
| 1259 | 1343 | ||||
| 1260 | func (x *IssueClosed) ProtoReflect() protoreflect.Message { | 1344 | func (x *IssueClosed) ProtoReflect() protoreflect.Message { | ||
| 1261 | - | mi := &file_ermite_event_proto_msgTypes[16] | 1345 | + | mi := &file_ermite_event_proto_msgTypes[17] |
| 1262 | if x != nil { | 1346 | if x != nil { | ||
| 1263 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1347 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1264 | if ms.LoadMessageInfo() == nil { | 1348 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1271,7 +1355,7 @@ func (x *IssueClosed) ProtoReflect() protoreflect.Message { | |||||
| 1271 | 1355 | ||||
| 1272 | // Deprecated: Use IssueClosed.ProtoReflect.Descriptor instead. | 1356 | // Deprecated: Use IssueClosed.ProtoReflect.Descriptor instead. | ||
| 1273 | func (*IssueClosed) Descriptor() ([]byte, []int) { | 1357 | func (*IssueClosed) Descriptor() ([]byte, []int) { | ||
| 1274 | - | return file_ermite_event_proto_rawDescGZIP(), []int{16} | 1358 | + | return file_ermite_event_proto_rawDescGZIP(), []int{17} |
| 1275 | } | 1359 | } | ||
| 1276 | 1360 | ||||
| 1277 | func (x *IssueClosed) GetIssue() *Issue { | 1361 | func (x *IssueClosed) GetIssue() *Issue { | ||
| @@ -1292,7 +1376,7 @@ type IssueReopened struct { | |||||
| 1292 | 1376 | ||||
| 1293 | func (x *IssueReopened) Reset() { | 1377 | func (x *IssueReopened) Reset() { | ||
| 1294 | *x = IssueReopened{} | 1378 | *x = IssueReopened{} | ||
| 1295 | - | mi := &file_ermite_event_proto_msgTypes[17] | 1379 | + | mi := &file_ermite_event_proto_msgTypes[18] |
| 1296 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1380 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1297 | ms.StoreMessageInfo(mi) | 1381 | ms.StoreMessageInfo(mi) | ||
| 1298 | } | 1382 | } | ||
| @@ -1304,7 +1388,7 @@ func (x *IssueReopened) String() string { | |||||
| 1304 | func (*IssueReopened) ProtoMessage() {} | 1388 | func (*IssueReopened) ProtoMessage() {} | ||
| 1305 | 1389 | ||||
| 1306 | func (x *IssueReopened) ProtoReflect() protoreflect.Message { | 1390 | func (x *IssueReopened) ProtoReflect() protoreflect.Message { | ||
| 1307 | - | mi := &file_ermite_event_proto_msgTypes[17] | 1391 | + | mi := &file_ermite_event_proto_msgTypes[18] |
| 1308 | if x != nil { | 1392 | if x != nil { | ||
| 1309 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1393 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1310 | if ms.LoadMessageInfo() == nil { | 1394 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1317,7 +1401,7 @@ func (x *IssueReopened) ProtoReflect() protoreflect.Message { | |||||
| 1317 | 1401 | ||||
| 1318 | // Deprecated: Use IssueReopened.ProtoReflect.Descriptor instead. | 1402 | // Deprecated: Use IssueReopened.ProtoReflect.Descriptor instead. | ||
| 1319 | func (*IssueReopened) Descriptor() ([]byte, []int) { | 1403 | func (*IssueReopened) Descriptor() ([]byte, []int) { | ||
| 1320 | - | return file_ermite_event_proto_rawDescGZIP(), []int{17} | 1404 | + | return file_ermite_event_proto_rawDescGZIP(), []int{18} |
| 1321 | } | 1405 | } | ||
| 1322 | 1406 | ||||
| 1323 | func (x *IssueReopened) GetIssue() *Issue { | 1407 | func (x *IssueReopened) GetIssue() *Issue { | ||
| @@ -1342,7 +1426,7 @@ type IssueCommented struct { | |||||
| 1342 | 1426 | ||||
| 1343 | func (x *IssueCommented) Reset() { | 1427 | func (x *IssueCommented) Reset() { | ||
| 1344 | *x = IssueCommented{} | 1428 | *x = IssueCommented{} | ||
| 1345 | - | mi := &file_ermite_event_proto_msgTypes[18] | 1429 | + | mi := &file_ermite_event_proto_msgTypes[19] |
| 1346 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1430 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1347 | ms.StoreMessageInfo(mi) | 1431 | ms.StoreMessageInfo(mi) | ||
| 1348 | } | 1432 | } | ||
| @@ -1354,7 +1438,7 @@ func (x *IssueCommented) String() string { | |||||
| 1354 | func (*IssueCommented) ProtoMessage() {} | 1438 | func (*IssueCommented) ProtoMessage() {} | ||
| 1355 | 1439 | ||||
| 1356 | func (x *IssueCommented) ProtoReflect() protoreflect.Message { | 1440 | func (x *IssueCommented) ProtoReflect() protoreflect.Message { | ||
| 1357 | - | mi := &file_ermite_event_proto_msgTypes[18] | 1441 | + | mi := &file_ermite_event_proto_msgTypes[19] |
| 1358 | if x != nil { | 1442 | if x != nil { | ||
| 1359 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1443 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1360 | if ms.LoadMessageInfo() == nil { | 1444 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1367,7 +1451,7 @@ func (x *IssueCommented) ProtoReflect() protoreflect.Message { | |||||
| 1367 | 1451 | ||||
| 1368 | // Deprecated: Use IssueCommented.ProtoReflect.Descriptor instead. | 1452 | // Deprecated: Use IssueCommented.ProtoReflect.Descriptor instead. | ||
| 1369 | func (*IssueCommented) Descriptor() ([]byte, []int) { | 1453 | func (*IssueCommented) Descriptor() ([]byte, []int) { | ||
| 1370 | - | return file_ermite_event_proto_rawDescGZIP(), []int{18} | 1454 | + | return file_ermite_event_proto_rawDescGZIP(), []int{19} |
| 1371 | } | 1455 | } | ||
| 1372 | 1456 | ||||
| 1373 | func (x *IssueCommented) GetRepo() string { | 1457 | func (x *IssueCommented) GetRepo() string { | ||
| @@ -1406,7 +1490,7 @@ type IssueSubmitted struct { | |||||
| 1406 | 1490 | ||||
| 1407 | func (x *IssueSubmitted) Reset() { | 1491 | func (x *IssueSubmitted) Reset() { | ||
| 1408 | *x = IssueSubmitted{} | 1492 | *x = IssueSubmitted{} | ||
| 1409 | - | mi := &file_ermite_event_proto_msgTypes[19] | 1493 | + | mi := &file_ermite_event_proto_msgTypes[20] |
| 1410 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1494 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1411 | ms.StoreMessageInfo(mi) | 1495 | ms.StoreMessageInfo(mi) | ||
| 1412 | } | 1496 | } | ||
| @@ -1418,7 +1502,7 @@ func (x *IssueSubmitted) String() string { | |||||
| 1418 | func (*IssueSubmitted) ProtoMessage() {} | 1502 | func (*IssueSubmitted) ProtoMessage() {} | ||
| 1419 | 1503 | ||||
| 1420 | func (x *IssueSubmitted) ProtoReflect() protoreflect.Message { | 1504 | func (x *IssueSubmitted) ProtoReflect() protoreflect.Message { | ||
| 1421 | - | mi := &file_ermite_event_proto_msgTypes[19] | 1505 | + | mi := &file_ermite_event_proto_msgTypes[20] |
| 1422 | if x != nil { | 1506 | if x != nil { | ||
| 1423 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1507 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1424 | if ms.LoadMessageInfo() == nil { | 1508 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1431,7 +1515,7 @@ func (x *IssueSubmitted) ProtoReflect() protoreflect.Message { | |||||
| 1431 | 1515 | ||||
| 1432 | // Deprecated: Use IssueSubmitted.ProtoReflect.Descriptor instead. | 1516 | // Deprecated: Use IssueSubmitted.ProtoReflect.Descriptor instead. | ||
| 1433 | func (*IssueSubmitted) Descriptor() ([]byte, []int) { | 1517 | func (*IssueSubmitted) Descriptor() ([]byte, []int) { | ||
| 1434 | - | return file_ermite_event_proto_rawDescGZIP(), []int{19} | 1518 | + | return file_ermite_event_proto_rawDescGZIP(), []int{20} |
| 1435 | } | 1519 | } | ||
| 1436 | 1520 | ||||
| 1437 | func (x *IssueSubmitted) GetRepo() string { | 1521 | func (x *IssueSubmitted) GetRepo() string { | ||
| @@ -1461,7 +1545,7 @@ type Gap struct { | |||||
| 1461 | 1545 | ||||
| 1462 | func (x *Gap) Reset() { | 1546 | func (x *Gap) Reset() { | ||
| 1463 | *x = Gap{} | 1547 | *x = Gap{} | ||
| 1464 | - | mi := &file_ermite_event_proto_msgTypes[20] | 1548 | + | mi := &file_ermite_event_proto_msgTypes[21] |
| 1465 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1549 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1466 | ms.StoreMessageInfo(mi) | 1550 | ms.StoreMessageInfo(mi) | ||
| 1467 | } | 1551 | } | ||
| @@ -1473,7 +1557,7 @@ func (x *Gap) String() string { | |||||
| 1473 | func (*Gap) ProtoMessage() {} | 1557 | func (*Gap) ProtoMessage() {} | ||
| 1474 | 1558 | ||||
| 1475 | func (x *Gap) ProtoReflect() protoreflect.Message { | 1559 | func (x *Gap) ProtoReflect() protoreflect.Message { | ||
| 1476 | - | mi := &file_ermite_event_proto_msgTypes[20] | 1560 | + | mi := &file_ermite_event_proto_msgTypes[21] |
| 1477 | if x != nil { | 1561 | if x != nil { | ||
| 1478 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1562 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1479 | if ms.LoadMessageInfo() == nil { | 1563 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1486,7 +1570,7 @@ func (x *Gap) ProtoReflect() protoreflect.Message { | |||||
| 1486 | 1570 | ||||
| 1487 | // Deprecated: Use Gap.ProtoReflect.Descriptor instead. | 1571 | // Deprecated: Use Gap.ProtoReflect.Descriptor instead. | ||
| 1488 | func (*Gap) Descriptor() ([]byte, []int) { | 1572 | func (*Gap) Descriptor() ([]byte, []int) { | ||
| 1489 | - | return file_ermite_event_proto_rawDescGZIP(), []int{20} | 1573 | + | return file_ermite_event_proto_rawDescGZIP(), []int{21} |
| 1490 | } | 1574 | } | ||
| 1491 | 1575 | ||||
| 1492 | // RunUpdated reports a CI run that was created or whose status, conclusion or | 1576 | // RunUpdated reports a CI run that was created or whose status, conclusion or | ||
| @@ -1501,7 +1585,7 @@ type RunUpdated struct { | |||||
| 1501 | 1585 | ||||
| 1502 | func (x *RunUpdated) Reset() { | 1586 | func (x *RunUpdated) Reset() { | ||
| 1503 | *x = RunUpdated{} | 1587 | *x = RunUpdated{} | ||
| 1504 | - | mi := &file_ermite_event_proto_msgTypes[21] | 1588 | + | mi := &file_ermite_event_proto_msgTypes[22] |
| 1505 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1589 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1506 | ms.StoreMessageInfo(mi) | 1590 | ms.StoreMessageInfo(mi) | ||
| 1507 | } | 1591 | } | ||
| @@ -1513,7 +1597,7 @@ func (x *RunUpdated) String() string { | |||||
| 1513 | func (*RunUpdated) ProtoMessage() {} | 1597 | func (*RunUpdated) ProtoMessage() {} | ||
| 1514 | 1598 | ||||
| 1515 | func (x *RunUpdated) ProtoReflect() protoreflect.Message { | 1599 | func (x *RunUpdated) ProtoReflect() protoreflect.Message { | ||
| 1516 | - | mi := &file_ermite_event_proto_msgTypes[21] | 1600 | + | mi := &file_ermite_event_proto_msgTypes[22] |
| 1517 | if x != nil { | 1601 | if x != nil { | ||
| 1518 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1602 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1519 | if ms.LoadMessageInfo() == nil { | 1603 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1526,7 +1610,7 @@ func (x *RunUpdated) ProtoReflect() protoreflect.Message { | |||||
| 1526 | 1610 | ||||
| 1527 | // Deprecated: Use RunUpdated.ProtoReflect.Descriptor instead. | 1611 | // Deprecated: Use RunUpdated.ProtoReflect.Descriptor instead. | ||
| 1528 | func (*RunUpdated) Descriptor() ([]byte, []int) { | 1612 | func (*RunUpdated) Descriptor() ([]byte, []int) { | ||
| 1529 | - | return file_ermite_event_proto_rawDescGZIP(), []int{21} | 1613 | + | return file_ermite_event_proto_rawDescGZIP(), []int{22} |
| 1530 | } | 1614 | } | ||
| 1531 | 1615 | ||||
| 1532 | func (x *RunUpdated) GetRun() *Run { | 1616 | func (x *RunUpdated) GetRun() *Run { | ||
| @@ -1548,7 +1632,7 @@ type JobUpdated struct { | |||||
| 1548 | 1632 | ||||
| 1549 | func (x *JobUpdated) Reset() { | 1633 | func (x *JobUpdated) Reset() { | ||
| 1550 | *x = JobUpdated{} | 1634 | *x = JobUpdated{} | ||
| 1551 | - | mi := &file_ermite_event_proto_msgTypes[22] | 1635 | + | mi := &file_ermite_event_proto_msgTypes[23] |
| 1552 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1636 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1553 | ms.StoreMessageInfo(mi) | 1637 | ms.StoreMessageInfo(mi) | ||
| 1554 | } | 1638 | } | ||
| @@ -1560,7 +1644,7 @@ func (x *JobUpdated) String() string { | |||||
| 1560 | func (*JobUpdated) ProtoMessage() {} | 1644 | func (*JobUpdated) ProtoMessage() {} | ||
| 1561 | 1645 | ||||
| 1562 | func (x *JobUpdated) ProtoReflect() protoreflect.Message { | 1646 | func (x *JobUpdated) ProtoReflect() protoreflect.Message { | ||
| 1563 | - | mi := &file_ermite_event_proto_msgTypes[22] | 1647 | + | mi := &file_ermite_event_proto_msgTypes[23] |
| 1564 | if x != nil { | 1648 | if x != nil { | ||
| 1565 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | 1649 | ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
| 1566 | if ms.LoadMessageInfo() == nil { | 1650 | if ms.LoadMessageInfo() == nil { | ||
| @@ -1573,7 +1657,7 @@ func (x *JobUpdated) ProtoReflect() protoreflect.Message { | |||||
| 1573 | 1657 | ||||
| 1574 | // Deprecated: Use JobUpdated.ProtoReflect.Descriptor instead. | 1658 | // Deprecated: Use JobUpdated.ProtoReflect.Descriptor instead. | ||
| 1575 | func (*JobUpdated) Descriptor() ([]byte, []int) { | 1659 | func (*JobUpdated) Descriptor() ([]byte, []int) { | ||
| 1576 | - | return file_ermite_event_proto_rawDescGZIP(), []int{22} | 1660 | + | return file_ermite_event_proto_rawDescGZIP(), []int{23} |
| 1577 | } | 1661 | } | ||
| 1578 | 1662 | ||||
| 1579 | func (x *JobUpdated) GetJob() *RunJob { | 1663 | func (x *JobUpdated) GetJob() *RunJob { | ||
| @@ -1592,7 +1676,8 @@ const file_ermite_event_proto_rawDesc = "" + | |||||
| 1592 | "\x06topics\x18\x01 \x03(\tR\x06topics\x12!\n" + | 1676 | "\x06topics\x18\x01 \x03(\tR\x06topics\x12!\n" + | ||
| 1593 | "\fresume_after\x18\x02 \x01(\tR\vresumeAfter\"4\n" + | 1677 | "\fresume_after\x18\x02 \x01(\tR\vresumeAfter\"4\n" + | ||
| 1594 | "\rWatchResponse\x12#\n" + | 1678 | "\rWatchResponse\x12#\n" + | ||
| 1595 | - | "\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xe6\t\n" + | 1679 | + | "\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xc8\n" + |
| 1680 | + | "\n" + | |||
| 1596 | "\x05Event\x12\x0e\n" + | 1681 | "\x05Event\x12\x0e\n" + | ||
| 1597 | "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + | 1682 | "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + | ||
| 1598 | "\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x128\n" + | 1683 | "\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x128\n" + | ||
| @@ -1617,7 +1702,8 @@ const file_ermite_event_proto_rawDesc = "" + | |||||
| 1617 | "\fissue_closed\x18\x12 \x01(\v2\x13.ermite.IssueClosedH\x00R\vissueClosed\x12>\n" + | 1702 | "\fissue_closed\x18\x12 \x01(\v2\x13.ermite.IssueClosedH\x00R\vissueClosed\x12>\n" + | ||
| 1618 | "\x0eissue_reopened\x18\x13 \x01(\v2\x15.ermite.IssueReopenedH\x00R\rissueReopened\x12A\n" + | 1703 | "\x0eissue_reopened\x18\x13 \x01(\v2\x15.ermite.IssueReopenedH\x00R\rissueReopened\x12A\n" + | ||
| 1619 | "\x0fissue_commented\x18\x14 \x01(\v2\x16.ermite.IssueCommentedH\x00R\x0eissueCommented\x12A\n" + | 1704 | "\x0fissue_commented\x18\x14 \x01(\v2\x16.ermite.IssueCommentedH\x00R\x0eissueCommented\x12A\n" + | ||
| 1620 | - | "\x0fissue_submitted\x18\x15 \x01(\v2\x16.ermite.IssueSubmittedH\x00R\x0eissueSubmittedB\x06\n" + | 1705 | + | "\x0fissue_submitted\x18\x15 \x01(\v2\x16.ermite.IssueSubmittedH\x00R\x0eissueSubmitted\x12`\n" + |
| 1706 | + | "\x1amerge_request_mergeability\x18\x16 \x01(\v2 .ermite.MergeRequestMergeabilityH\x00R\x18mergeRequestMergeabilityB\x06\n" + | |||
| 1621 | "\x04kind\"/\n" + | 1707 | "\x04kind\"/\n" + | ||
| 1622 | "\vRepoCreated\x12 \n" + | 1708 | "\vRepoCreated\x12 \n" + | ||
| 1623 | "\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"/\n" + | 1709 | "\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"/\n" + | ||
| @@ -1636,7 +1722,11 @@ const file_ermite_event_proto_rawDesc = "" + | |||||
| 1636 | "\x12MergeRequestOpened\x129\n" + | 1722 | "\x12MergeRequestOpened\x129\n" + | ||
| 1637 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" + | 1723 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" + | ||
| 1638 | "\x12MergeRequestMerged\x129\n" + | 1724 | "\x12MergeRequestMerged\x129\n" + | ||
| 1639 | - | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" + | 1725 | + | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x80\x01\n" + |
| 1726 | + | "\x18MergeRequestMergeability\x12\x12\n" + | |||
| 1727 | + | "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" + | |||
| 1728 | + | "\x06number\x18\x02 \x01(\x03R\x06number\x128\n" + | |||
| 1729 | + | "\fmergeability\x18\x03 \x01(\v2\x14.ermite.MergeabilityR\fmergeability\"O\n" + | |||
| 1640 | "\x12MergeRequestClosed\x129\n" + | 1730 | "\x12MergeRequestClosed\x129\n" + | ||
| 1641 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"e\n" + | 1731 | "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"e\n" + | ||
| 1642 | "\fCommentAdded\x12\x12\n" + | 1732 | "\fCommentAdded\x12\x12\n" + | ||
| @@ -1693,85 +1783,89 @@ func file_ermite_event_proto_rawDescGZIP() []byte { | |||||
| 1693 | return file_ermite_event_proto_rawDescData | 1783 | return file_ermite_event_proto_rawDescData | ||
| 1694 | } | 1784 | } | ||
| 1695 | 1785 | ||||
| 1696 | - | var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 23) | 1786 | + | var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 24) |
| 1697 | var file_ermite_event_proto_goTypes = []any{ | 1787 | var file_ermite_event_proto_goTypes = []any{ | ||
| 1698 | - | (*WatchRequest)(nil), // 0: ermite.WatchRequest | 1788 | + | (*WatchRequest)(nil), // 0: ermite.WatchRequest |
| 1699 | - | (*WatchResponse)(nil), // 1: ermite.WatchResponse | 1789 | + | (*WatchResponse)(nil), // 1: ermite.WatchResponse |
| 1700 | - | (*Event)(nil), // 2: ermite.Event | 1790 | + | (*Event)(nil), // 2: ermite.Event |
| 1701 | - | (*RepoCreated)(nil), // 3: ermite.RepoCreated | 1791 | + | (*RepoCreated)(nil), // 3: ermite.RepoCreated |
| 1702 | - | (*RepoUpdated)(nil), // 4: ermite.RepoUpdated | 1792 | + | (*RepoUpdated)(nil), // 4: ermite.RepoUpdated |
| 1703 | - | (*RepoDeleted)(nil), // 5: ermite.RepoDeleted | 1793 | + | (*RepoDeleted)(nil), // 5: ermite.RepoDeleted |
| 1704 | - | (*Pushed)(nil), // 6: ermite.Pushed | 1794 | + | (*Pushed)(nil), // 6: ermite.Pushed |
| 1705 | - | (*RefUpdate)(nil), // 7: ermite.RefUpdate | 1795 | + | (*RefUpdate)(nil), // 7: ermite.RefUpdate |
| 1706 | - | (*MergeRequestOpened)(nil), // 8: ermite.MergeRequestOpened | 1796 | + | (*MergeRequestOpened)(nil), // 8: ermite.MergeRequestOpened |
| 1707 | - | (*MergeRequestMerged)(nil), // 9: ermite.MergeRequestMerged | 1797 | + | (*MergeRequestMerged)(nil), // 9: ermite.MergeRequestMerged |
| 1708 | - | (*MergeRequestClosed)(nil), // 10: ermite.MergeRequestClosed | 1798 | + | (*MergeRequestMergeability)(nil), // 10: ermite.MergeRequestMergeability |
| 1709 | - | (*CommentAdded)(nil), // 11: ermite.CommentAdded | 1799 | + | (*MergeRequestClosed)(nil), // 11: ermite.MergeRequestClosed |
| 1710 | - | (*CommentEdited)(nil), // 12: ermite.CommentEdited | 1800 | + | (*CommentAdded)(nil), // 12: ermite.CommentAdded |
| 1711 | - | (*CommentDeleted)(nil), // 13: ermite.CommentDeleted | 1801 | + | (*CommentEdited)(nil), // 13: ermite.CommentEdited |
| 1712 | - | (*CommentResolved)(nil), // 14: ermite.CommentResolved | 1802 | + | (*CommentDeleted)(nil), // 14: ermite.CommentDeleted |
| 1713 | - | (*IssueOpened)(nil), // 15: ermite.IssueOpened | 1803 | + | (*CommentResolved)(nil), // 15: ermite.CommentResolved |
| 1714 | - | (*IssueClosed)(nil), // 16: ermite.IssueClosed | 1804 | + | (*IssueOpened)(nil), // 16: ermite.IssueOpened |
| 1715 | - | (*IssueReopened)(nil), // 17: ermite.IssueReopened | 1805 | + | (*IssueClosed)(nil), // 17: ermite.IssueClosed |
| 1716 | - | (*IssueCommented)(nil), // 18: ermite.IssueCommented | 1806 | + | (*IssueReopened)(nil), // 18: ermite.IssueReopened |
| 1717 | - | (*IssueSubmitted)(nil), // 19: ermite.IssueSubmitted | 1807 | + | (*IssueCommented)(nil), // 19: ermite.IssueCommented |
| 1718 | - | (*Gap)(nil), // 20: ermite.Gap | 1808 | + | (*IssueSubmitted)(nil), // 20: ermite.IssueSubmitted |
| 1719 | - | (*RunUpdated)(nil), // 21: ermite.RunUpdated | 1809 | + | (*Gap)(nil), // 21: ermite.Gap |
| 1720 | - | (*JobUpdated)(nil), // 22: ermite.JobUpdated | 1810 | + | (*RunUpdated)(nil), // 22: ermite.RunUpdated |
| 1721 | - | (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp | 1811 | + | (*JobUpdated)(nil), // 23: ermite.JobUpdated |
| 1722 | - | (*Repo)(nil), // 24: ermite.Repo | 1812 | + | (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp |
| 1723 | - | (*MergeRequest)(nil), // 25: ermite.MergeRequest | 1813 | + | (*Repo)(nil), // 25: ermite.Repo |
| 1724 | - | (*Comment)(nil), // 26: ermite.Comment | 1814 | + | (*MergeRequest)(nil), // 26: ermite.MergeRequest |
| 1725 | - | (*Issue)(nil), // 27: ermite.Issue | 1815 | + | (*Mergeability)(nil), // 27: ermite.Mergeability |
| 1726 | - | (*IssueComment)(nil), // 28: ermite.IssueComment | 1816 | + | (*Comment)(nil), // 28: ermite.Comment |
| 1727 | - | (*Run)(nil), // 29: ermite.Run | 1817 | + | (*Issue)(nil), // 29: ermite.Issue |
| 1728 | - | (*RunJob)(nil), // 30: ermite.RunJob | 1818 | + | (*IssueComment)(nil), // 30: ermite.IssueComment |
| 1819 | + | (*Run)(nil), // 31: ermite.Run | |||
| 1820 | + | (*RunJob)(nil), // 32: ermite.RunJob | |||
| 1729 | } | 1821 | } | ||
| 1730 | var file_ermite_event_proto_depIdxs = []int32{ | 1822 | var file_ermite_event_proto_depIdxs = []int32{ | ||
| 1731 | 2, // 0: ermite.WatchResponse.event:type_name -> ermite.Event | 1823 | 2, // 0: ermite.WatchResponse.event:type_name -> ermite.Event | ||
| 1732 | - | 23, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp | 1824 | + | 24, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp |
| 1733 | 3, // 2: ermite.Event.repo_created:type_name -> ermite.RepoCreated | 1825 | 3, // 2: ermite.Event.repo_created:type_name -> ermite.RepoCreated | ||
| 1734 | 4, // 3: ermite.Event.repo_updated:type_name -> ermite.RepoUpdated | 1826 | 4, // 3: ermite.Event.repo_updated:type_name -> ermite.RepoUpdated | ||
| 1735 | 5, // 4: ermite.Event.repo_deleted:type_name -> ermite.RepoDeleted | 1827 | 5, // 4: ermite.Event.repo_deleted:type_name -> ermite.RepoDeleted | ||
| 1736 | 6, // 5: ermite.Event.pushed:type_name -> ermite.Pushed | 1828 | 6, // 5: ermite.Event.pushed:type_name -> ermite.Pushed | ||
| 1737 | - | 20, // 6: ermite.Event.gap:type_name -> ermite.Gap | 1829 | + | 21, // 6: ermite.Event.gap:type_name -> ermite.Gap |
| 1738 | 8, // 7: ermite.Event.merge_request_opened:type_name -> ermite.MergeRequestOpened | 1830 | 8, // 7: ermite.Event.merge_request_opened:type_name -> ermite.MergeRequestOpened | ||
| 1739 | 9, // 8: ermite.Event.merge_request_merged:type_name -> ermite.MergeRequestMerged | 1831 | 9, // 8: ermite.Event.merge_request_merged:type_name -> ermite.MergeRequestMerged | ||
| 1740 | - | 10, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed | 1832 | + | 11, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed |
| 1741 | - | 11, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded | 1833 | + | 12, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded |
| 1742 | - | 21, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated | 1834 | + | 22, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated |
| 1743 | - | 22, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated | 1835 | + | 23, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated |
| 1744 | - | 12, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited | 1836 | + | 13, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited |
| 1745 | - | 13, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted | 1837 | + | 14, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted |
| 1746 | - | 14, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved | 1838 | + | 15, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved |
| 1747 | - | 15, // 16: ermite.Event.issue_opened:type_name -> ermite.IssueOpened | 1839 | + | 16, // 16: ermite.Event.issue_opened:type_name -> ermite.IssueOpened |
| 1748 | - | 16, // 17: ermite.Event.issue_closed:type_name -> ermite.IssueClosed | 1840 | + | 17, // 17: ermite.Event.issue_closed:type_name -> ermite.IssueClosed |
| 1749 | - | 17, // 18: ermite.Event.issue_reopened:type_name -> ermite.IssueReopened | 1841 | + | 18, // 18: ermite.Event.issue_reopened:type_name -> ermite.IssueReopened |
| 1750 | - | 18, // 19: ermite.Event.issue_commented:type_name -> ermite.IssueCommented | 1842 | + | 19, // 19: ermite.Event.issue_commented:type_name -> ermite.IssueCommented |
| 1751 | - | 19, // 20: ermite.Event.issue_submitted:type_name -> ermite.IssueSubmitted | 1843 | + | 20, // 20: ermite.Event.issue_submitted:type_name -> ermite.IssueSubmitted |
| 1752 | - | 24, // 21: ermite.RepoCreated.repo:type_name -> ermite.Repo | 1844 | + | 10, // 21: ermite.Event.merge_request_mergeability:type_name -> ermite.MergeRequestMergeability |
| 1753 | - | 24, // 22: ermite.RepoUpdated.repo:type_name -> ermite.Repo | 1845 | + | 25, // 22: ermite.RepoCreated.repo:type_name -> ermite.Repo |
| 1754 | - | 7, // 23: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate | 1846 | + | 25, // 23: ermite.RepoUpdated.repo:type_name -> ermite.Repo |
| 1755 | - | 25, // 24: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest | 1847 | + | 7, // 24: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate |
| 1756 | - | 25, // 25: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest | 1848 | + | 26, // 25: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest |
| 1757 | - | 25, // 26: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest | 1849 | + | 26, // 26: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest |
| 1758 | - | 26, // 27: ermite.CommentAdded.comment:type_name -> ermite.Comment | 1850 | + | 27, // 27: ermite.MergeRequestMergeability.mergeability:type_name -> ermite.Mergeability |
| 1759 | - | 26, // 28: ermite.CommentEdited.comment:type_name -> ermite.Comment | 1851 | + | 26, // 28: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest |
| 1760 | - | 26, // 29: ermite.CommentDeleted.comment:type_name -> ermite.Comment | 1852 | + | 28, // 29: ermite.CommentAdded.comment:type_name -> ermite.Comment |
| 1761 | - | 26, // 30: ermite.CommentResolved.comment:type_name -> ermite.Comment | 1853 | + | 28, // 30: ermite.CommentEdited.comment:type_name -> ermite.Comment |
| 1762 | - | 27, // 31: ermite.IssueOpened.issue:type_name -> ermite.Issue | 1854 | + | 28, // 31: ermite.CommentDeleted.comment:type_name -> ermite.Comment |
| 1763 | - | 27, // 32: ermite.IssueClosed.issue:type_name -> ermite.Issue | 1855 | + | 28, // 32: ermite.CommentResolved.comment:type_name -> ermite.Comment |
| 1764 | - | 27, // 33: ermite.IssueReopened.issue:type_name -> ermite.Issue | 1856 | + | 29, // 33: ermite.IssueOpened.issue:type_name -> ermite.Issue |
| 1765 | - | 28, // 34: ermite.IssueCommented.comment:type_name -> ermite.IssueComment | 1857 | + | 29, // 34: ermite.IssueClosed.issue:type_name -> ermite.Issue |
| 1766 | - | 29, // 35: ermite.RunUpdated.run:type_name -> ermite.Run | 1858 | + | 29, // 35: ermite.IssueReopened.issue:type_name -> ermite.Issue |
| 1767 | - | 30, // 36: ermite.JobUpdated.job:type_name -> ermite.RunJob | 1859 | + | 30, // 36: ermite.IssueCommented.comment:type_name -> ermite.IssueComment |
| 1768 | - | 0, // 37: ermite.EventService.Watch:input_type -> ermite.WatchRequest | 1860 | + | 31, // 37: ermite.RunUpdated.run:type_name -> ermite.Run |
| 1769 | - | 1, // 38: ermite.EventService.Watch:output_type -> ermite.WatchResponse | 1861 | + | 32, // 38: ermite.JobUpdated.job:type_name -> ermite.RunJob |
| 1770 | - | 38, // [38:39] is the sub-list for method output_type | 1862 | + | 0, // 39: ermite.EventService.Watch:input_type -> ermite.WatchRequest |
| 1771 | - | 37, // [37:38] is the sub-list for method input_type | 1863 | + | 1, // 40: ermite.EventService.Watch:output_type -> ermite.WatchResponse |
| 1772 | - | 37, // [37:37] is the sub-list for extension type_name | 1864 | + | 40, // [40:41] is the sub-list for method output_type |
| 1773 | - | 37, // [37:37] is the sub-list for extension extendee | 1865 | + | 39, // [39:40] is the sub-list for method input_type |
| 1774 | - | 0, // [0:37] is the sub-list for field type_name | 1866 | + | 39, // [39:39] is the sub-list for extension type_name |
| 1867 | + | 39, // [39:39] is the sub-list for extension extendee | |||
| 1868 | + | 0, // [0:39] is the sub-list for field type_name | |||
| 1775 | } | 1869 | } | ||
| 1776 | 1870 | ||||
| 1777 | func init() { file_ermite_event_proto_init() } | 1871 | func init() { file_ermite_event_proto_init() } | ||
| @@ -1803,6 +1897,7 @@ func file_ermite_event_proto_init() { | |||||
| 1803 | (*Event_IssueReopened)(nil), | 1897 | (*Event_IssueReopened)(nil), | ||
| 1804 | (*Event_IssueCommented)(nil), | 1898 | (*Event_IssueCommented)(nil), | ||
| 1805 | (*Event_IssueSubmitted)(nil), | 1899 | (*Event_IssueSubmitted)(nil), | ||
| 1900 | + | (*Event_MergeRequestMergeability)(nil), | |||
| 1806 | } | 1901 | } | ||
| 1807 | type x struct{} | 1902 | type x struct{} | ||
| 1808 | out := protoimpl.TypeBuilder{ | 1903 | out := protoimpl.TypeBuilder{ | ||
| @@ -1810,7 +1905,7 @@ func file_ermite_event_proto_init() { | |||||
| 1810 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | 1905 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | ||
| 1811 | RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)), | 1906 | RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)), | ||
| 1812 | NumEnums: 0, | 1907 | NumEnums: 0, | ||
| 1813 | - | NumMessages: 23, | 1908 | + | NumMessages: 24, |
| 1814 | NumExtensions: 0, | 1909 | NumExtensions: 0, | ||
| 1815 | NumServices: 1, | 1910 | NumServices: 1, | ||
| 1816 | }, | 1911 | }, | ||
M gen/ermite/merge_request.pb.go +375 -159 generated file: collapsed
M gen/ermite/repo.pb.go +1 -1 generated file: collapsed
M gen/ermite/server.pb.go +4 -1 generated file: collapsed
M gen/ermite/types.pb.go +17 -5 generated file: collapsed
M gen_test.go +6 -0
| @@ -114,6 +114,12 @@ func TestEnumNumbers(t *testing.T) { | |||
| 114 | 114 | if got := ermite.MergeMode_MERGE_MODE_SQUASH; got != 2 { | |
| 115 | 115 | t.Errorf("MERGE_MODE_SQUASH = %d, want 2", got) | |
| 116 | 116 | } | |
| 117 | + | if got := ermite.MergeMode_MERGE_MODE_MERGE_COMMIT; got != 3 { | |
| 118 | + | t.Errorf("MERGE_MODE_MERGE_COMMIT = %d, want 3", got) | |
| 119 | + | } | |
| 120 | + | if got := ermite.MergeabilityState_MERGEABILITY_STATE_CONFLICT; got != 4 { | |
| 121 | + | t.Errorf("MERGEABILITY_STATE_CONFLICT = %d, want 4", got) | |
| 122 | + | } | |
| 117 | 123 | if got := ermite.MergeRequestState_MERGE_REQUEST_STATE_CLOSED; got != 3 { | |
| 118 | 124 | t.Errorf("MERGE_REQUEST_STATE_CLOSED = %d, want 3", got) | |
| 119 | 125 | } | |
| @@ -114,6 +114,12 @@ func TestEnumNumbers(t *testing.T) { | |||||
| 114 | if got := ermite.MergeMode_MERGE_MODE_SQUASH; got != 2 { | 114 | if got := ermite.MergeMode_MERGE_MODE_SQUASH; got != 2 { | ||
| 115 | t.Errorf("MERGE_MODE_SQUASH = %d, want 2", got) | 115 | t.Errorf("MERGE_MODE_SQUASH = %d, want 2", got) | ||
| 116 | } | 116 | } | ||
| 117 | + | if got := ermite.MergeMode_MERGE_MODE_MERGE_COMMIT; got != 3 { | |||
| 118 | + | t.Errorf("MERGE_MODE_MERGE_COMMIT = %d, want 3", got) | |||
| 119 | + | } | |||
| 120 | + | if got := ermite.MergeabilityState_MERGEABILITY_STATE_CONFLICT; got != 4 { | |||
| 121 | + | t.Errorf("MERGEABILITY_STATE_CONFLICT = %d, want 4", got) | |||
| 122 | + | } | |||
| 117 | if got := ermite.MergeRequestState_MERGE_REQUEST_STATE_CLOSED; got != 3 { | 123 | if got := ermite.MergeRequestState_MERGE_REQUEST_STATE_CLOSED; got != 3 { | ||
| 118 | t.Errorf("MERGE_REQUEST_STATE_CLOSED = %d, want 3", got) | 124 | t.Errorf("MERGE_REQUEST_STATE_CLOSED = %d, want 3", got) | ||
| 119 | } | 125 | } | ||
M proto/ermite/event.proto +15 -0
| @@ -132,6 +132,9 @@ message Event { | |||
| 132 | 132 | // IssueSubmitted: an issue is awaiting moderation. Delivered only on the | |
| 133 | 133 | // "owner" topic, never on "home" or "repo:<name>", and carries no content. | |
| 134 | 134 | IssueSubmitted issue_submitted = 21; | |
| 135 | + | // MergeRequestMergeability: the mergeability of an open merge request | |
| 136 | + | // changed. | |
| 137 | + | MergeRequestMergeability merge_request_mergeability = 22; | |
| 135 | 138 | } | |
| 136 | 139 | } | |
| 137 | 140 | ||
| @@ -184,6 +187,18 @@ message MergeRequestMerged { | |||
| 184 | 187 | MergeRequest merge_request = 1; | |
| 185 | 188 | } | |
| 186 | 189 | ||
| 190 | + | // MergeRequestMergeability reports the mergeability of an open merge request. | |
| 191 | + | // It is published when the state changes, or when a check settles a result | |
| 192 | + | // that readers had not seen yet (they saw CHECKING), not on every push. | |
| 193 | + | message MergeRequestMergeability { | |
| 194 | + | // Repo is the name of the repository. | |
| 195 | + | string repo = 1; | |
| 196 | + | // Number is the number of the merge request. | |
| 197 | + | int64 number = 2; | |
| 198 | + | // Mergeability is the new result. | |
| 199 | + | Mergeability mergeability = 3; | |
| 200 | + | } | |
| 201 | + | ||
| 187 | 202 | // MergeRequestClosed reports a merge request closed without merging. | |
| 188 | 203 | message MergeRequestClosed { | |
| 189 | 204 | // MergeRequest is the merge request after closing. | |
| @@ -132,6 +132,9 @@ message Event { | |||||
| 132 | // IssueSubmitted: an issue is awaiting moderation. Delivered only on the | 132 | // IssueSubmitted: an issue is awaiting moderation. Delivered only on the | ||
| 133 | // "owner" topic, never on "home" or "repo:<name>", and carries no content. | 133 | // "owner" topic, never on "home" or "repo:<name>", and carries no content. | ||
| 134 | IssueSubmitted issue_submitted = 21; | 134 | IssueSubmitted issue_submitted = 21; | ||
| 135 | + | // MergeRequestMergeability: the mergeability of an open merge request | |||
| 136 | + | // changed. | |||
| 137 | + | MergeRequestMergeability merge_request_mergeability = 22; | |||
| 135 | } | 138 | } | ||
| 136 | } | 139 | } | ||
| 137 | 140 | ||||
| @@ -184,6 +187,18 @@ message MergeRequestMerged { | |||||
| 184 | MergeRequest merge_request = 1; | 187 | MergeRequest merge_request = 1; | ||
| 185 | } | 188 | } | ||
| 186 | 189 | ||||
| 190 | + | // MergeRequestMergeability reports the mergeability of an open merge request. | |||
| 191 | + | // It is published when the state changes, or when a check settles a result | |||
| 192 | + | // that readers had not seen yet (they saw CHECKING), not on every push. | |||
| 193 | + | message MergeRequestMergeability { | |||
| 194 | + | // Repo is the name of the repository. | |||
| 195 | + | string repo = 1; | |||
| 196 | + | // Number is the number of the merge request. | |||
| 197 | + | int64 number = 2; | |||
| 198 | + | // Mergeability is the new result. | |||
| 199 | + | Mergeability mergeability = 3; | |||
| 200 | + | } | |||
| 201 | + | ||||
| 187 | // MergeRequestClosed reports a merge request closed without merging. | 202 | // MergeRequestClosed reports a merge request closed without merging. | ||
| 188 | message MergeRequestClosed { | 203 | message MergeRequestClosed { | ||
| 189 | // MergeRequest is the merge request after closing. | 204 | // MergeRequest is the merge request after closing. | ||
M proto/ermite/merge_request.proto +58 -4
| @@ -44,6 +44,50 @@ enum Verdict { | |||
| 44 | 44 | VERDICT_CHANGES_REQUESTED = 2; | |
| 45 | 45 | } | |
| 46 | 46 | ||
| 47 | + | // MergeabilityState tells whether the head of an open merge request can be | |
| 48 | + | // merged into its target. | |
| 49 | + | enum MergeabilityState { | |
| 50 | + | // Not set. | |
| 51 | + | MERGEABILITY_STATE_UNSPECIFIED = 0; | |
| 52 | + | // The server has no result yet for the current tips of both branches. It | |
| 53 | + | // is replaced by another state when the check completes. | |
| 54 | + | MERGEABILITY_STATE_CHECKING = 1; | |
| 55 | + | // The target is an ancestor of the head: every mode can merge. | |
| 56 | + | MERGEABILITY_STATE_UP_TO_DATE = 2; | |
| 57 | + | // The target has commits the head lacks, but the head merges cleanly: | |
| 58 | + | // squash and merge commit can merge, fast-forward cannot. | |
| 59 | + | MERGEABILITY_STATE_BEHIND = 3; | |
| 60 | + | // The head does not merge cleanly into the target, or the branches share no | |
| 61 | + | // history: no mode can merge. | |
| 62 | + | MERGEABILITY_STATE_CONFLICT = 4; | |
| 63 | + | } | |
| 64 | + | ||
| 65 | + | // Mergeability is the result of checking an open merge request against the | |
| 66 | + | // tips of its branches. | |
| 67 | + | message Mergeability { | |
| 68 | + | // State is the result. | |
| 69 | + | MergeabilityState state = 1; | |
| 70 | + | // TargetId is the commit the target branch pointed to when checked. Empty | |
| 71 | + | // while CHECKING. | |
| 72 | + | string target_id = 2; | |
| 73 | + | // HeadId is the commit the source branch pointed to when checked. Empty | |
| 74 | + | // while CHECKING. | |
| 75 | + | string head_id = 3; | |
| 76 | + | // Behind is the number of commits of the target that the head lacks. Set | |
| 77 | + | // only when state is BEHIND. | |
| 78 | + | int32 behind = 4; | |
| 79 | + | // BehindCapped says that Behind is a lower bound: the server stops counting | |
| 80 | + | // at 1,000. | |
| 81 | + | bool behind_capped = 5; | |
| 82 | + | // ConflictPaths are the paths that conflict, at most 20. Set only when | |
| 83 | + | // state is CONFLICT; empty when the branches share no history. | |
| 84 | + | repeated string conflict_paths = 6; | |
| 85 | + | // ConflictPathsTruncated says that more paths conflict than listed. | |
| 86 | + | bool conflict_paths_truncated = 7; | |
| 87 | + | // CheckedAt is when the server computed the result. Unset while CHECKING. | |
| 88 | + | google.protobuf.Timestamp checked_at = 8; | |
| 89 | + | } | |
| 90 | + | ||
| 47 | 91 | // MergeRequest asks to merge one branch of a repository into another branch | |
| 48 | 92 | // of the same repository. It is about a branch, not about who wrote it. | |
| 49 | 93 | message MergeRequest { | |
| @@ -81,12 +125,19 @@ message MergeRequest { | |||
| 81 | 125 | // merged or closed it is the head at that moment. | |
| 82 | 126 | string head_id = 11; | |
| 83 | 127 | // MergedCommitId is the id of the commit the target branch points to after | |
| 84 | - | // the merge: the head for a fast-forward, the new commit for a squash. | |
| 128 | + | // the merge: the head for a fast-forward, the new commit for a squash or a | |
| 129 | + | // merge commit. | |
| 85 | 130 | // Empty unless state is MERGED. | |
| 86 | 131 | string merged_commit_id = 12; | |
| 87 | 132 | // MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED | |
| 88 | 133 | // unless state is MERGED. | |
| 89 | 134 | MergeMode merge_mode = 13; | |
| 135 | + | // Mergeability tells whether the head can be merged into the target. Set | |
| 136 | + | // while the merge request is OPEN, with state CHECKING until the server has | |
| 137 | + | // a result for the current tips; never set once merged or closed. It is a | |
| 138 | + | // hint: MergeMergeRequest checks again. Set only by servers with the | |
| 139 | + | // "merge_requests.mergeability" feature. | |
| 140 | + | Mergeability mergeability = 14; | |
| 90 | 141 | } | |
| 91 | 142 | ||
| 92 | 143 | // Comment is a note on a merge request, either general or attached to a line | |
| @@ -233,9 +284,12 @@ service MergeRequestService { | |||
| 233 | 284 | // never merged unseen. Fails with invalid_argument if head_id is empty or | |
| 234 | 285 | // not a commit id, and with failed_precondition if the merge request is not | |
| 235 | 286 | // open, if the source branch no longer points to head_id ("branch moved, | |
| 236 | - | // read again"), if the target is not an ancestor of the head (rebase and | |
| 237 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | |
| 238 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | |
| 287 | + | // read again"), if the mode is fast-forward and the target is not an | |
| 288 | + | // ancestor of the head (rebase and push again, or merge with squash or | |
| 289 | + | // merge commit), if the mode is squash or merge commit and the head | |
| 290 | + | // conflicts with the target or shares no history with it (rebase and push | |
| 291 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |
| 292 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |
| 239 | 293 | // repository run one at a time. Repeating a call that succeeded fails with | |
| 240 | 294 | // failed_precondition (not open). On success the server publishes | |
| 241 | 295 | // MergeRequestMerged then Pushed for the target branch. | |
| @@ -44,6 +44,50 @@ enum Verdict { | |||||
| 44 | VERDICT_CHANGES_REQUESTED = 2; | 44 | VERDICT_CHANGES_REQUESTED = 2; | ||
| 45 | } | 45 | } | ||
| 46 | 46 | ||||
| 47 | + | // MergeabilityState tells whether the head of an open merge request can be | |||
| 48 | + | // merged into its target. | |||
| 49 | + | enum MergeabilityState { | |||
| 50 | + | // Not set. | |||
| 51 | + | MERGEABILITY_STATE_UNSPECIFIED = 0; | |||
| 52 | + | // The server has no result yet for the current tips of both branches. It | |||
| 53 | + | // is replaced by another state when the check completes. | |||
| 54 | + | MERGEABILITY_STATE_CHECKING = 1; | |||
| 55 | + | // The target is an ancestor of the head: every mode can merge. | |||
| 56 | + | MERGEABILITY_STATE_UP_TO_DATE = 2; | |||
| 57 | + | // The target has commits the head lacks, but the head merges cleanly: | |||
| 58 | + | // squash and merge commit can merge, fast-forward cannot. | |||
| 59 | + | MERGEABILITY_STATE_BEHIND = 3; | |||
| 60 | + | // The head does not merge cleanly into the target, or the branches share no | |||
| 61 | + | // history: no mode can merge. | |||
| 62 | + | MERGEABILITY_STATE_CONFLICT = 4; | |||
| 63 | + | } | |||
| 64 | + | ||||
| 65 | + | // Mergeability is the result of checking an open merge request against the | |||
| 66 | + | // tips of its branches. | |||
| 67 | + | message Mergeability { | |||
| 68 | + | // State is the result. | |||
| 69 | + | MergeabilityState state = 1; | |||
| 70 | + | // TargetId is the commit the target branch pointed to when checked. Empty | |||
| 71 | + | // while CHECKING. | |||
| 72 | + | string target_id = 2; | |||
| 73 | + | // HeadId is the commit the source branch pointed to when checked. Empty | |||
| 74 | + | // while CHECKING. | |||
| 75 | + | string head_id = 3; | |||
| 76 | + | // Behind is the number of commits of the target that the head lacks. Set | |||
| 77 | + | // only when state is BEHIND. | |||
| 78 | + | int32 behind = 4; | |||
| 79 | + | // BehindCapped says that Behind is a lower bound: the server stops counting | |||
| 80 | + | // at 1,000. | |||
| 81 | + | bool behind_capped = 5; | |||
| 82 | + | // ConflictPaths are the paths that conflict, at most 20. Set only when | |||
| 83 | + | // state is CONFLICT; empty when the branches share no history. | |||
| 84 | + | repeated string conflict_paths = 6; | |||
| 85 | + | // ConflictPathsTruncated says that more paths conflict than listed. | |||
| 86 | + | bool conflict_paths_truncated = 7; | |||
| 87 | + | // CheckedAt is when the server computed the result. Unset while CHECKING. | |||
| 88 | + | google.protobuf.Timestamp checked_at = 8; | |||
| 89 | + | } | |||
| 90 | + | ||||
| 47 | // MergeRequest asks to merge one branch of a repository into another branch | 91 | // MergeRequest asks to merge one branch of a repository into another branch | ||
| 48 | // of the same repository. It is about a branch, not about who wrote it. | 92 | // of the same repository. It is about a branch, not about who wrote it. | ||
| 49 | message MergeRequest { | 93 | message MergeRequest { | ||
| @@ -81,12 +125,19 @@ message MergeRequest { | |||||
| 81 | // merged or closed it is the head at that moment. | 125 | // merged or closed it is the head at that moment. | ||
| 82 | string head_id = 11; | 126 | string head_id = 11; | ||
| 83 | // MergedCommitId is the id of the commit the target branch points to after | 127 | // MergedCommitId is the id of the commit the target branch points to after | ||
| 84 | - | // the merge: the head for a fast-forward, the new commit for a squash. | 128 | + | // the merge: the head for a fast-forward, the new commit for a squash or a |
| 129 | + | // merge commit. | |||
| 85 | // Empty unless state is MERGED. | 130 | // Empty unless state is MERGED. | ||
| 86 | string merged_commit_id = 12; | 131 | string merged_commit_id = 12; | ||
| 87 | // MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED | 132 | // MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED | ||
| 88 | // unless state is MERGED. | 133 | // unless state is MERGED. | ||
| 89 | MergeMode merge_mode = 13; | 134 | MergeMode merge_mode = 13; | ||
| 135 | + | // Mergeability tells whether the head can be merged into the target. Set | |||
| 136 | + | // while the merge request is OPEN, with state CHECKING until the server has | |||
| 137 | + | // a result for the current tips; never set once merged or closed. It is a | |||
| 138 | + | // hint: MergeMergeRequest checks again. Set only by servers with the | |||
| 139 | + | // "merge_requests.mergeability" feature. | |||
| 140 | + | Mergeability mergeability = 14; | |||
| 90 | } | 141 | } | ||
| 91 | 142 | ||||
| 92 | // Comment is a note on a merge request, either general or attached to a line | 143 | // Comment is a note on a merge request, either general or attached to a line | ||
| @@ -233,9 +284,12 @@ service MergeRequestService { | |||||
| 233 | // never merged unseen. Fails with invalid_argument if head_id is empty or | 284 | // never merged unseen. Fails with invalid_argument if head_id is empty or | ||
| 234 | // not a commit id, and with failed_precondition if the merge request is not | 285 | // not a commit id, and with failed_precondition if the merge request is not | ||
| 235 | // open, if the source branch no longer points to head_id ("branch moved, | 286 | // open, if the source branch no longer points to head_id ("branch moved, | ||
| 236 | - | // read again"), if the target is not an ancestor of the head (rebase and | 287 | + | // read again"), if the mode is fast-forward and the target is not an |
| 237 | - | // push again), if the mode is not allowed by RepoSettings, or if a check | 288 | + | // ancestor of the head (rebase and push again, or merge with squash or |
| 238 | - | // fails and RepoSettings.failing_checks_block is set. Merges of one | 289 | + | // merge commit), if the mode is squash or merge commit and the head |
| 290 | + | // conflicts with the target or shares no history with it (rebase and push | |||
| 291 | + | // again), if the mode is not allowed by RepoSettings, or if a check fails | |||
| 292 | + | // and RepoSettings.failing_checks_block is set. Merges of one | |||
| 239 | // repository run one at a time. Repeating a call that succeeded fails with | 293 | // repository run one at a time. Repeating a call that succeeded fails with | ||
| 240 | // failed_precondition (not open). On success the server publishes | 294 | // failed_precondition (not open). On success the server publishes | ||
| 241 | // MergeRequestMerged then Pushed for the target branch. | 295 | // MergeRequestMerged then Pushed for the target branch. | ||
M proto/ermite/repo.proto +1 -1
| @@ -38,7 +38,7 @@ message RepoSettings { | |||
| 38 | 38 | // AllowedMergeModes are the modes with which a merge request of the | |
| 39 | 39 | // repository may be merged. It is never empty in a response and has no | |
| 40 | 40 | // duplicate. Both MERGE_MODE_FAST_FORWARD and MERGE_MODE_SQUASH are allowed | |
| 41 | - | // by default. MERGE_MODE_UNSPECIFIED is rejected. | |
| 41 | + | // by default; MERGE_MODE_MERGE_COMMIT is allowed only when listed. MERGE_MODE_UNSPECIFIED is rejected. | |
| 42 | 42 | repeated MergeMode allowed_merge_modes = 1; | |
| 43 | 43 | // FailingChecksBlock says whether a merge request whose checks fail cannot be | |
| 44 | 44 | // merged. It is true at creation of the repository and always stored | |
| @@ -38,7 +38,7 @@ message RepoSettings { | |||||
| 38 | // AllowedMergeModes are the modes with which a merge request of the | 38 | // AllowedMergeModes are the modes with which a merge request of the | ||
| 39 | // repository may be merged. It is never empty in a response and has no | 39 | // repository may be merged. It is never empty in a response and has no | ||
| 40 | // duplicate. Both MERGE_MODE_FAST_FORWARD and MERGE_MODE_SQUASH are allowed | 40 | // duplicate. Both MERGE_MODE_FAST_FORWARD and MERGE_MODE_SQUASH are allowed | ||
| 41 | - | // by default. MERGE_MODE_UNSPECIFIED is rejected. | 41 | + | // by default; MERGE_MODE_MERGE_COMMIT is allowed only when listed. MERGE_MODE_UNSPECIFIED is rejected. |
| 42 | repeated MergeMode allowed_merge_modes = 1; | 42 | repeated MergeMode allowed_merge_modes = 1; | ||
| 43 | // FailingChecksBlock says whether a merge request whose checks fail cannot be | 43 | // FailingChecksBlock says whether a merge request whose checks fail cannot be | ||
| 44 | // merged. It is true at creation of the repository and always stored | 44 | // merged. It is true at creation of the repository and always stored | ||
M proto/ermite/server.proto +5 -2
| @@ -13,7 +13,7 @@ service ServerService { | |||
| 13 | 13 | // it first to check compatibility. | |
| 14 | 14 | rpc GetVersion(GetVersionRequest) returns (GetVersionResponse); | |
| 15 | 15 | // GetSigningKey returns the public key with which the server signs the | |
| 16 | - | // commits it creates (squash merges, see MergeMode). It needs no | |
| 16 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no | |
| 17 | 17 | // authentication: the key is public, and anyone verifying a commit needs it. | |
| 18 | 18 | // Servers that implement it list "signing_key" in | |
| 19 | 19 | // GetVersionResponse.features. | |
| @@ -57,7 +57,10 @@ message GetVersionResponse { | |||
| 57 | 57 | // secrets, vars, environment, permissions and trusted fields and Run.trusted), | |
| 58 | 58 | // "ci.dispatch" (RunService.DispatchWorkflow), "ci.concurrency" | |
| 59 | 59 | // (CI_STATUS_PENDING and RunJob.concurrency_group), "ci.cache" (Job.cache) | |
| 60 | - | // and "ci.artifacts" (JobArtifactService and ArtifactService). | |
| 60 | + | // and "ci.artifacts" (JobArtifactService and ArtifactService). The merge | |
| 61 | + | // request identifier "merge_requests.mergeability" covers | |
| 62 | + | // MergeRequest.mergeability, the MergeRequestMergeability event and | |
| 63 | + | // MERGE_MODE_MERGE_COMMIT. | |
| 61 | 64 | repeated string features = 2; | |
| 62 | 65 | } | |
| 63 | 66 | ||
| @@ -13,7 +13,7 @@ service ServerService { | |||||
| 13 | // it first to check compatibility. | 13 | // it first to check compatibility. | ||
| 14 | rpc GetVersion(GetVersionRequest) returns (GetVersionResponse); | 14 | rpc GetVersion(GetVersionRequest) returns (GetVersionResponse); | ||
| 15 | // GetSigningKey returns the public key with which the server signs the | 15 | // GetSigningKey returns the public key with which the server signs the | ||
| 16 | - | // commits it creates (squash merges, see MergeMode). It needs no | 16 | + | // commits it creates (squash and merge commits, see MergeMode). It needs no |
| 17 | // authentication: the key is public, and anyone verifying a commit needs it. | 17 | // authentication: the key is public, and anyone verifying a commit needs it. | ||
| 18 | // Servers that implement it list "signing_key" in | 18 | // Servers that implement it list "signing_key" in | ||
| 19 | // GetVersionResponse.features. | 19 | // GetVersionResponse.features. | ||
| @@ -57,7 +57,10 @@ message GetVersionResponse { | |||||
| 57 | // secrets, vars, environment, permissions and trusted fields and Run.trusted), | 57 | // secrets, vars, environment, permissions and trusted fields and Run.trusted), | ||
| 58 | // "ci.dispatch" (RunService.DispatchWorkflow), "ci.concurrency" | 58 | // "ci.dispatch" (RunService.DispatchWorkflow), "ci.concurrency" | ||
| 59 | // (CI_STATUS_PENDING and RunJob.concurrency_group), "ci.cache" (Job.cache) | 59 | // (CI_STATUS_PENDING and RunJob.concurrency_group), "ci.cache" (Job.cache) | ||
| 60 | - | // and "ci.artifacts" (JobArtifactService and ArtifactService). | 60 | + | // and "ci.artifacts" (JobArtifactService and ArtifactService). The merge |
| 61 | + | // request identifier "merge_requests.mergeability" covers | |||
| 62 | + | // MergeRequest.mergeability, the MergeRequestMergeability event and | |||
| 63 | + | // MERGE_MODE_MERGE_COMMIT. | |||
| 61 | repeated string features = 2; | 64 | repeated string features = 2; | ||
| 62 | } | 65 | } | ||
| 63 | 66 | ||||
M proto/ermite/types.proto +12 -3
| @@ -40,9 +40,11 @@ message Commit { | |||
| 40 | 40 | CommitVerification verification = 7; | |
| 41 | 41 | } | |
| 42 | 42 | ||
| 43 | - | // MergeMode is how a merge request is merged. Both modes need the target to | |
| 44 | - | // be an ancestor of the head: a branch behind its target is rebased by its | |
| 45 | - | // author and pushed again, the server never rebases nor creates merge commits. | |
| 43 | + | // MergeMode is how a merge request is merged. Fast-forward needs the target | |
| 44 | + | // to be an ancestor of the head. Squash and merge commit need the head to | |
| 45 | + | // merge cleanly into the target, which holds when the branch is behind its | |
| 46 | + | // target without conflict. The server never rebases: a branch that conflicts | |
| 47 | + | // is rebased by its author and pushed again. | |
| 46 | 48 | enum MergeMode { | |
| 47 | 49 | // Not set. In MergeMergeRequestRequest.mode it means fast-forward. Rejected | |
| 48 | 50 | // in RepoSettings.allowed_merge_modes. Returned on a merge request that was | |
| @@ -58,4 +60,11 @@ enum MergeMode { | |||
| 58 | 60 | // title, " (!<number>)", a blank line and the list of the squashed commits' | |
| 59 | 61 | // summaries. | |
| 60 | 62 | MERGE_MODE_SQUASH = 2; | |
| 63 | + | // One new commit is created with two parents, the target tip then the head, | |
| 64 | + | // and the tree of the merge. It is signed by the server's key (see | |
| 65 | + | // ServerService.GetSigningKey); its author and committer are the server | |
| 66 | + | // identity. Its message is "Merge branch '<source>' into <target> (!<n>)", | |
| 67 | + | // a blank line and the title. The signatures of the branch's commits are | |
| 68 | + | // kept. Needs the "merge_requests.mergeability" feature. | |
| 69 | + | MERGE_MODE_MERGE_COMMIT = 3; | |
| 61 | 70 | } | |
| @@ -40,9 +40,11 @@ message Commit { | |||||
| 40 | CommitVerification verification = 7; | 40 | CommitVerification verification = 7; | ||
| 41 | } | 41 | } | ||
| 42 | 42 | ||||
| 43 | - | // MergeMode is how a merge request is merged. Both modes need the target to | 43 | + | // MergeMode is how a merge request is merged. Fast-forward needs the target |
| 44 | - | // be an ancestor of the head: a branch behind its target is rebased by its | 44 | + | // to be an ancestor of the head. Squash and merge commit need the head to |
| 45 | - | // author and pushed again, the server never rebases nor creates merge commits. | 45 | + | // merge cleanly into the target, which holds when the branch is behind its |
| 46 | + | // target without conflict. The server never rebases: a branch that conflicts | |||
| 47 | + | // is rebased by its author and pushed again. | |||
| 46 | enum MergeMode { | 48 | enum MergeMode { | ||
| 47 | // Not set. In MergeMergeRequestRequest.mode it means fast-forward. Rejected | 49 | // Not set. In MergeMergeRequestRequest.mode it means fast-forward. Rejected | ||
| 48 | // in RepoSettings.allowed_merge_modes. Returned on a merge request that was | 50 | // in RepoSettings.allowed_merge_modes. Returned on a merge request that was | ||
| @@ -58,4 +60,11 @@ enum MergeMode { | |||||
| 58 | // title, " (!<number>)", a blank line and the list of the squashed commits' | 60 | // title, " (!<number>)", a blank line and the list of the squashed commits' | ||
| 59 | // summaries. | 61 | // summaries. | ||
| 60 | MERGE_MODE_SQUASH = 2; | 62 | MERGE_MODE_SQUASH = 2; | ||
| 63 | + | // One new commit is created with two parents, the target tip then the head, | |||
| 64 | + | // and the tree of the merge. It is signed by the server's key (see | |||
| 65 | + | // ServerService.GetSigningKey); its author and committer are the server | |||
| 66 | + | // identity. Its message is "Merge branch '<source>' into <target> (!<n>)", | |||
| 67 | + | // a blank line and the title. The signatures of the branch's commits are | |||
| 68 | + | // kept. Needs the "merge_requests.mergeability" feature. | |||
| 69 | + | MERGE_MODE_MERGE_COMMIT = 3; | |||
| 61 | } | 70 | } | ||