detached 35fc113

feat(proto): add merge request auto-merge setting, state, RPCs and events

commit
35fc1135ade38f29ee8f79a25d8ca0337fb9c2c4
author
brice · · 2026-10-20 15:43 UTC
committer
brice · · 2026-10-20 16:24 UTC
parent
b97dc86
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
11 files · +1037 -307
M docs/services.md +1 -1
@@ -5,7 +5,7 @@
55 | `RepoService` | `ListRepos`, `GetRepo`, `CreateRepo`, `UpdateRepo` (field mask, merge settings), `DeleteRepo` |
66 | `GitService` | `ListRefs`, `GetTree`, `ListPaths`, `GetBlob` (streamed), `ListCommits`, `GetCommit` (structured diff), `ResolveRevision` |
77 | `TokenService` | `CreateToken` (secret shown once), `ListTokens`, `RevokeToken` |
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` each time a result is settled for new branch tips (feature `merge_requests.mergeability`) |
8+| `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest` (modes fast-forward, squash, merge commit), `MarkRead`, `EnableAutoMerge`, `CancelAutoMerge` (merge by itself once a check passed on the head and all its runs are complete; setting `allow_auto_merge`, `MergeRequest.auto_merge`, events `MergeRequestAutoMergeEnabled` and `MergeRequestAutoMergeCancelled`, `MergeRequestMerged.auto`; feature `merge_requests.auto_merge`). Open merge requests carry `mergeability` (up to date, behind, conflict, or checking) and `Watch` publishes `MergeRequestMergeability` each time a result is settled for new branch tips (feature `merge_requests.mergeability`) |
99 | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments, merge requests naming the issue, `closed_by_merge_request`), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Features `issues`, `issues.links`. Issues share numbers with merge requests |
1010 | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) |
1111 | `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` |
@@ -5,7 +5,7 @@
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` (modes fast-forward, squash, merge commit), `MarkRead`. Open merge requests carry `mergeability` (up to date, behind, conflict, or checking) and `Watch` publishes `MergeRequestMergeability` each time a result is settled for new branch tips (feature `merge_requests.mergeability`) |8+| `MergeRequestService` | `CreateMergeRequest`, `ListMergeRequests`, `GetMergeRequest` (commits, diff, comments), `AddComment`, `EditComment`, `DeleteComment`, `ResolveComment`, `CloseMergeRequest`, `MergeMergeRequest` (modes fast-forward, squash, merge commit), `MarkRead`, `EnableAutoMerge`, `CancelAutoMerge` (merge by itself once a check passed on the head and all its runs are complete; setting `allow_auto_merge`, `MergeRequest.auto_merge`, events `MergeRequestAutoMergeEnabled` and `MergeRequestAutoMergeCancelled`, `MergeRequestMerged.auto`; feature `merge_requests.auto_merge`). Open merge requests carry `mergeability` (up to date, behind, conflict, or checking) and `Watch` publishes `MergeRequestMergeability` each time a result is settled for new branch tips (feature `merge_requests.mergeability`) |
9 | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments, merge requests naming the issue, `closed_by_merge_request`), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Features `issues`, `issues.links`. Issues share numbers with merge requests |9 | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments, merge requests naming the issue, `closed_by_merge_request`), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Features `issues`, `issues.links`. 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). Event 22: `merge_request_mergeability` |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` |
M gen/ermite/ermiteconnect/merge_request.connect.go +96 -0
@@ -62,6 +62,12 @@ const (
6262 // MergeRequestServiceMergeMergeRequestProcedure is the fully-qualified name of the
6363 // MergeRequestService's MergeMergeRequest RPC.
6464 MergeRequestServiceMergeMergeRequestProcedure = "/ermite.MergeRequestService/MergeMergeRequest"
65+ // MergeRequestServiceEnableAutoMergeProcedure is the fully-qualified name of the
66+ // MergeRequestService's EnableAutoMerge RPC.
67+ MergeRequestServiceEnableAutoMergeProcedure = "/ermite.MergeRequestService/EnableAutoMerge"
68+ // MergeRequestServiceCancelAutoMergeProcedure is the fully-qualified name of the
69+ // MergeRequestService's CancelAutoMerge RPC.
70+ MergeRequestServiceCancelAutoMergeProcedure = "/ermite.MergeRequestService/CancelAutoMerge"
6571 // MergeRequestServiceMarkReadProcedure is the fully-qualified name of the MergeRequestService's
6672 // MarkRead RPC.
6773 MergeRequestServiceMarkReadProcedure = "/ermite.MergeRequestService/MarkRead"
@@ -137,6 +143,27 @@ type MergeRequestServiceClient interface {
137143 // failed_precondition (not open). On success the server publishes
138144 // MergeRequestMerged then Pushed for the target branch.
139145 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)
146+ // EnableAutoMerge asks the server to merge an open merge request by itself
147+ // once at least one check passed on its head, every run created on that head
148+ // is complete, and the merge would be accepted whatever
149+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
150+ // token limited to branches, write access to the target branch
151+ // (permission_denied otherwise). The server records the caller, the mode and
152+ // the current head; it merges as the caller, after resolving the caller
153+ // again, and cancels the auto-merge if the caller can no longer merge, if the
154+ // mode is no longer allowed, if the source branch moves or if the setting is
155+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
156+ // and with failed_precondition if the merge request is not open, is a draft,
157+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
158+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
159+ // Publishes MergeRequestAutoMergeEnabled. Needs the
160+ // "merge_requests.auto_merge" feature.
161+ EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error)
162+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
163+ // Needs the mr:merge scope and, for a token limited to branches, write access
164+ // to the target branch. Fails with failed_precondition if auto-merge is not
165+ // enabled. Publishes MergeRequestAutoMergeCancelled.
166+ CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error)
140167 // MarkRead records the head the caller has reviewed, for the since_last_read
141168 // option of GetMergeRequest. There is one read position per merge request,
142169 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -209,6 +236,18 @@ func NewMergeRequestServiceClient(httpClient connect.HTTPClient, baseURL string,
209236 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),
210237 connect.WithClientOptions(opts...),
211238 ),
239+ enableAutoMerge: connect.NewClient[ermite.EnableAutoMergeRequest, ermite.EnableAutoMergeResponse](
240+ httpClient,
241+ baseURL+MergeRequestServiceEnableAutoMergeProcedure,
242+ connect.WithSchema(mergeRequestServiceMethods.ByName("EnableAutoMerge")),
243+ connect.WithClientOptions(opts...),
244+ ),
245+ cancelAutoMerge: connect.NewClient[ermite.CancelAutoMergeRequest, ermite.CancelAutoMergeResponse](
246+ httpClient,
247+ baseURL+MergeRequestServiceCancelAutoMergeProcedure,
248+ connect.WithSchema(mergeRequestServiceMethods.ByName("CancelAutoMerge")),
249+ connect.WithClientOptions(opts...),
250+ ),
212251 markRead: connect.NewClient[ermite.MarkReadRequest, ermite.MarkReadResponse](
213252 httpClient,
214253 baseURL+MergeRequestServiceMarkReadProcedure,
@@ -229,6 +268,8 @@ type mergeRequestServiceClient struct {
229268 resolveComment *connect.Client[ermite.ResolveCommentRequest, ermite.ResolveCommentResponse]
230269 closeMergeRequest *connect.Client[ermite.CloseMergeRequestRequest, ermite.CloseMergeRequestResponse]
231270 mergeMergeRequest *connect.Client[ermite.MergeMergeRequestRequest, ermite.MergeMergeRequestResponse]
271+ enableAutoMerge *connect.Client[ermite.EnableAutoMergeRequest, ermite.EnableAutoMergeResponse]
272+ cancelAutoMerge *connect.Client[ermite.CancelAutoMergeRequest, ermite.CancelAutoMergeResponse]
232273 markRead *connect.Client[ermite.MarkReadRequest, ermite.MarkReadResponse]
233274 }
234275
@@ -277,6 +318,16 @@ func (c *mergeRequestServiceClient) MergeMergeRequest(ctx context.Context, req *
277318 return c.mergeMergeRequest.CallUnary(ctx, req)
278319 }
279320
321+// EnableAutoMerge calls ermite.MergeRequestService.EnableAutoMerge.
322+func (c *mergeRequestServiceClient) EnableAutoMerge(ctx context.Context, req *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error) {
323+ return c.enableAutoMerge.CallUnary(ctx, req)
324+}
325+
326+// CancelAutoMerge calls ermite.MergeRequestService.CancelAutoMerge.
327+func (c *mergeRequestServiceClient) CancelAutoMerge(ctx context.Context, req *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error) {
328+ return c.cancelAutoMerge.CallUnary(ctx, req)
329+}
330+
280331 // MarkRead calls ermite.MergeRequestService.MarkRead.
281332 func (c *mergeRequestServiceClient) MarkRead(ctx context.Context, req *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {
282333 return c.markRead.CallUnary(ctx, req)
@@ -352,6 +403,27 @@ type MergeRequestServiceHandler interface {
352403 // failed_precondition (not open). On success the server publishes
353404 // MergeRequestMerged then Pushed for the target branch.
354405 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)
406+ // EnableAutoMerge asks the server to merge an open merge request by itself
407+ // once at least one check passed on its head, every run created on that head
408+ // is complete, and the merge would be accepted whatever
409+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
410+ // token limited to branches, write access to the target branch
411+ // (permission_denied otherwise). The server records the caller, the mode and
412+ // the current head; it merges as the caller, after resolving the caller
413+ // again, and cancels the auto-merge if the caller can no longer merge, if the
414+ // mode is no longer allowed, if the source branch moves or if the setting is
415+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
416+ // and with failed_precondition if the merge request is not open, is a draft,
417+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
418+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
419+ // Publishes MergeRequestAutoMergeEnabled. Needs the
420+ // "merge_requests.auto_merge" feature.
421+ EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error)
422+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
423+ // Needs the mr:merge scope and, for a token limited to branches, write access
424+ // to the target branch. Fails with failed_precondition if auto-merge is not
425+ // enabled. Publishes MergeRequestAutoMergeCancelled.
426+ CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error)
355427 // MarkRead records the head the caller has reviewed, for the since_last_read
356428 // option of GetMergeRequest. There is one read position per merge request,
357429 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -420,6 +492,18 @@ func NewMergeRequestServiceHandler(svc MergeRequestServiceHandler, opts ...conne
420492 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),
421493 connect.WithHandlerOptions(opts...),
422494 )
495+ mergeRequestServiceEnableAutoMergeHandler := connect.NewUnaryHandler(
496+ MergeRequestServiceEnableAutoMergeProcedure,
497+ svc.EnableAutoMerge,
498+ connect.WithSchema(mergeRequestServiceMethods.ByName("EnableAutoMerge")),
499+ connect.WithHandlerOptions(opts...),
500+ )
501+ mergeRequestServiceCancelAutoMergeHandler := connect.NewUnaryHandler(
502+ MergeRequestServiceCancelAutoMergeProcedure,
503+ svc.CancelAutoMerge,
504+ connect.WithSchema(mergeRequestServiceMethods.ByName("CancelAutoMerge")),
505+ connect.WithHandlerOptions(opts...),
506+ )
423507 mergeRequestServiceMarkReadHandler := connect.NewUnaryHandler(
424508 MergeRequestServiceMarkReadProcedure,
425509 svc.MarkRead,
@@ -446,6 +530,10 @@ func NewMergeRequestServiceHandler(svc MergeRequestServiceHandler, opts ...conne
446530 mergeRequestServiceCloseMergeRequestHandler.ServeHTTP(w, r)
447531 case MergeRequestServiceMergeMergeRequestProcedure:
448532 mergeRequestServiceMergeMergeRequestHandler.ServeHTTP(w, r)
533+ case MergeRequestServiceEnableAutoMergeProcedure:
534+ mergeRequestServiceEnableAutoMergeHandler.ServeHTTP(w, r)
535+ case MergeRequestServiceCancelAutoMergeProcedure:
536+ mergeRequestServiceCancelAutoMergeHandler.ServeHTTP(w, r)
449537 case MergeRequestServiceMarkReadProcedure:
450538 mergeRequestServiceMarkReadHandler.ServeHTTP(w, r)
451539 default:
@@ -493,6 +581,14 @@ func (UnimplementedMergeRequestServiceHandler) MergeMergeRequest(context.Context
493581 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MergeMergeRequest is not implemented"))
494582 }
495583
584+func (UnimplementedMergeRequestServiceHandler) EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error) {
585+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.EnableAutoMerge is not implemented"))
586+}
587+
588+func (UnimplementedMergeRequestServiceHandler) CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error) {
589+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.CancelAutoMerge is not implemented"))
590+}
591+
496592 func (UnimplementedMergeRequestServiceHandler) MarkRead(context.Context, *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {
497593 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MarkRead is not implemented"))
498594 }
@@ -62,6 +62,12 @@ const (
62 // MergeRequestServiceMergeMergeRequestProcedure is the fully-qualified name of the62 // MergeRequestServiceMergeMergeRequestProcedure is the fully-qualified name of the
63 // MergeRequestService's MergeMergeRequest RPC.63 // MergeRequestService's MergeMergeRequest RPC.
64 MergeRequestServiceMergeMergeRequestProcedure = "/ermite.MergeRequestService/MergeMergeRequest"64 MergeRequestServiceMergeMergeRequestProcedure = "/ermite.MergeRequestService/MergeMergeRequest"
65+ // MergeRequestServiceEnableAutoMergeProcedure is the fully-qualified name of the
66+ // MergeRequestService's EnableAutoMerge RPC.
67+ MergeRequestServiceEnableAutoMergeProcedure = "/ermite.MergeRequestService/EnableAutoMerge"
68+ // MergeRequestServiceCancelAutoMergeProcedure is the fully-qualified name of the
69+ // MergeRequestService's CancelAutoMerge RPC.
70+ MergeRequestServiceCancelAutoMergeProcedure = "/ermite.MergeRequestService/CancelAutoMerge"
65 // MergeRequestServiceMarkReadProcedure is the fully-qualified name of the MergeRequestService's71 // MergeRequestServiceMarkReadProcedure is the fully-qualified name of the MergeRequestService's
66 // MarkRead RPC.72 // MarkRead RPC.
67 MergeRequestServiceMarkReadProcedure = "/ermite.MergeRequestService/MarkRead"73 MergeRequestServiceMarkReadProcedure = "/ermite.MergeRequestService/MarkRead"
@@ -137,6 +143,27 @@ type MergeRequestServiceClient interface {
137 // failed_precondition (not open). On success the server publishes143 // failed_precondition (not open). On success the server publishes
138 // MergeRequestMerged then Pushed for the target branch.144 // MergeRequestMerged then Pushed for the target branch.
139 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)145 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)
146+ // EnableAutoMerge asks the server to merge an open merge request by itself
147+ // once at least one check passed on its head, every run created on that head
148+ // is complete, and the merge would be accepted whatever
149+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
150+ // token limited to branches, write access to the target branch
151+ // (permission_denied otherwise). The server records the caller, the mode and
152+ // the current head; it merges as the caller, after resolving the caller
153+ // again, and cancels the auto-merge if the caller can no longer merge, if the
154+ // mode is no longer allowed, if the source branch moves or if the setting is
155+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
156+ // and with failed_precondition if the merge request is not open, is a draft,
157+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
158+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
159+ // Publishes MergeRequestAutoMergeEnabled. Needs the
160+ // "merge_requests.auto_merge" feature.
161+ EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error)
162+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
163+ // Needs the mr:merge scope and, for a token limited to branches, write access
164+ // to the target branch. Fails with failed_precondition if auto-merge is not
165+ // enabled. Publishes MergeRequestAutoMergeCancelled.
166+ CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error)
140 // MarkRead records the head the caller has reviewed, for the since_last_read167 // MarkRead records the head the caller has reviewed, for the since_last_read
141 // option of GetMergeRequest. There is one read position per merge request,168 // option of GetMergeRequest. There is one read position per merge request,
142 // the reviewer's. Needs the mr:write scope. Marking a commit that does not169 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -209,6 +236,18 @@ func NewMergeRequestServiceClient(httpClient connect.HTTPClient, baseURL string,
209 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),236 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),
210 connect.WithClientOptions(opts...),237 connect.WithClientOptions(opts...),
211 ),238 ),
239+ enableAutoMerge: connect.NewClient[ermite.EnableAutoMergeRequest, ermite.EnableAutoMergeResponse](
240+ httpClient,
241+ baseURL+MergeRequestServiceEnableAutoMergeProcedure,
242+ connect.WithSchema(mergeRequestServiceMethods.ByName("EnableAutoMerge")),
243+ connect.WithClientOptions(opts...),
244+ ),
245+ cancelAutoMerge: connect.NewClient[ermite.CancelAutoMergeRequest, ermite.CancelAutoMergeResponse](
246+ httpClient,
247+ baseURL+MergeRequestServiceCancelAutoMergeProcedure,
248+ connect.WithSchema(mergeRequestServiceMethods.ByName("CancelAutoMerge")),
249+ connect.WithClientOptions(opts...),
250+ ),
212 markRead: connect.NewClient[ermite.MarkReadRequest, ermite.MarkReadResponse](251 markRead: connect.NewClient[ermite.MarkReadRequest, ermite.MarkReadResponse](
213 httpClient,252 httpClient,
214 baseURL+MergeRequestServiceMarkReadProcedure,253 baseURL+MergeRequestServiceMarkReadProcedure,
@@ -229,6 +268,8 @@ type mergeRequestServiceClient struct {
229 resolveComment *connect.Client[ermite.ResolveCommentRequest, ermite.ResolveCommentResponse]268 resolveComment *connect.Client[ermite.ResolveCommentRequest, ermite.ResolveCommentResponse]
230 closeMergeRequest *connect.Client[ermite.CloseMergeRequestRequest, ermite.CloseMergeRequestResponse]269 closeMergeRequest *connect.Client[ermite.CloseMergeRequestRequest, ermite.CloseMergeRequestResponse]
231 mergeMergeRequest *connect.Client[ermite.MergeMergeRequestRequest, ermite.MergeMergeRequestResponse]270 mergeMergeRequest *connect.Client[ermite.MergeMergeRequestRequest, ermite.MergeMergeRequestResponse]
271+ enableAutoMerge *connect.Client[ermite.EnableAutoMergeRequest, ermite.EnableAutoMergeResponse]
272+ cancelAutoMerge *connect.Client[ermite.CancelAutoMergeRequest, ermite.CancelAutoMergeResponse]
232 markRead *connect.Client[ermite.MarkReadRequest, ermite.MarkReadResponse]273 markRead *connect.Client[ermite.MarkReadRequest, ermite.MarkReadResponse]
233 }274 }
234 275
@@ -277,6 +318,16 @@ func (c *mergeRequestServiceClient) MergeMergeRequest(ctx context.Context, req *
277 return c.mergeMergeRequest.CallUnary(ctx, req)318 return c.mergeMergeRequest.CallUnary(ctx, req)
278 }319 }
279 320
321+// EnableAutoMerge calls ermite.MergeRequestService.EnableAutoMerge.
322+func (c *mergeRequestServiceClient) EnableAutoMerge(ctx context.Context, req *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error) {
323+ return c.enableAutoMerge.CallUnary(ctx, req)
324+}
325+
326+// CancelAutoMerge calls ermite.MergeRequestService.CancelAutoMerge.
327+func (c *mergeRequestServiceClient) CancelAutoMerge(ctx context.Context, req *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error) {
328+ return c.cancelAutoMerge.CallUnary(ctx, req)
329+}
330+
280 // MarkRead calls ermite.MergeRequestService.MarkRead.331 // MarkRead calls ermite.MergeRequestService.MarkRead.
281 func (c *mergeRequestServiceClient) MarkRead(ctx context.Context, req *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {332 func (c *mergeRequestServiceClient) MarkRead(ctx context.Context, req *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {
282 return c.markRead.CallUnary(ctx, req)333 return c.markRead.CallUnary(ctx, req)
@@ -352,6 +403,27 @@ type MergeRequestServiceHandler interface {
352 // failed_precondition (not open). On success the server publishes403 // failed_precondition (not open). On success the server publishes
353 // MergeRequestMerged then Pushed for the target branch.404 // MergeRequestMerged then Pushed for the target branch.
354 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)405 MergeMergeRequest(context.Context, *connect.Request[ermite.MergeMergeRequestRequest]) (*connect.Response[ermite.MergeMergeRequestResponse], error)
406+ // EnableAutoMerge asks the server to merge an open merge request by itself
407+ // once at least one check passed on its head, every run created on that head
408+ // is complete, and the merge would be accepted whatever
409+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
410+ // token limited to branches, write access to the target branch
411+ // (permission_denied otherwise). The server records the caller, the mode and
412+ // the current head; it merges as the caller, after resolving the caller
413+ // again, and cancels the auto-merge if the caller can no longer merge, if the
414+ // mode is no longer allowed, if the source branch moves or if the setting is
415+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
416+ // and with failed_precondition if the merge request is not open, is a draft,
417+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
418+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
419+ // Publishes MergeRequestAutoMergeEnabled. Needs the
420+ // "merge_requests.auto_merge" feature.
421+ EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error)
422+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
423+ // Needs the mr:merge scope and, for a token limited to branches, write access
424+ // to the target branch. Fails with failed_precondition if auto-merge is not
425+ // enabled. Publishes MergeRequestAutoMergeCancelled.
426+ CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error)
355 // MarkRead records the head the caller has reviewed, for the since_last_read427 // MarkRead records the head the caller has reviewed, for the since_last_read
356 // option of GetMergeRequest. There is one read position per merge request,428 // option of GetMergeRequest. There is one read position per merge request,
357 // the reviewer's. Needs the mr:write scope. Marking a commit that does not429 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -420,6 +492,18 @@ func NewMergeRequestServiceHandler(svc MergeRequestServiceHandler, opts ...conne
420 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),492 connect.WithSchema(mergeRequestServiceMethods.ByName("MergeMergeRequest")),
421 connect.WithHandlerOptions(opts...),493 connect.WithHandlerOptions(opts...),
422 )494 )
495+ mergeRequestServiceEnableAutoMergeHandler := connect.NewUnaryHandler(
496+ MergeRequestServiceEnableAutoMergeProcedure,
497+ svc.EnableAutoMerge,
498+ connect.WithSchema(mergeRequestServiceMethods.ByName("EnableAutoMerge")),
499+ connect.WithHandlerOptions(opts...),
500+ )
501+ mergeRequestServiceCancelAutoMergeHandler := connect.NewUnaryHandler(
502+ MergeRequestServiceCancelAutoMergeProcedure,
503+ svc.CancelAutoMerge,
504+ connect.WithSchema(mergeRequestServiceMethods.ByName("CancelAutoMerge")),
505+ connect.WithHandlerOptions(opts...),
506+ )
423 mergeRequestServiceMarkReadHandler := connect.NewUnaryHandler(507 mergeRequestServiceMarkReadHandler := connect.NewUnaryHandler(
424 MergeRequestServiceMarkReadProcedure,508 MergeRequestServiceMarkReadProcedure,
425 svc.MarkRead,509 svc.MarkRead,
@@ -446,6 +530,10 @@ func NewMergeRequestServiceHandler(svc MergeRequestServiceHandler, opts ...conne
446 mergeRequestServiceCloseMergeRequestHandler.ServeHTTP(w, r)530 mergeRequestServiceCloseMergeRequestHandler.ServeHTTP(w, r)
447 case MergeRequestServiceMergeMergeRequestProcedure:531 case MergeRequestServiceMergeMergeRequestProcedure:
448 mergeRequestServiceMergeMergeRequestHandler.ServeHTTP(w, r)532 mergeRequestServiceMergeMergeRequestHandler.ServeHTTP(w, r)
533+ case MergeRequestServiceEnableAutoMergeProcedure:
534+ mergeRequestServiceEnableAutoMergeHandler.ServeHTTP(w, r)
535+ case MergeRequestServiceCancelAutoMergeProcedure:
536+ mergeRequestServiceCancelAutoMergeHandler.ServeHTTP(w, r)
449 case MergeRequestServiceMarkReadProcedure:537 case MergeRequestServiceMarkReadProcedure:
450 mergeRequestServiceMarkReadHandler.ServeHTTP(w, r)538 mergeRequestServiceMarkReadHandler.ServeHTTP(w, r)
451 default:539 default:
@@ -493,6 +581,14 @@ func (UnimplementedMergeRequestServiceHandler) MergeMergeRequest(context.Context
493 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MergeMergeRequest is not implemented"))581 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MergeMergeRequest is not implemented"))
494 }582 }
495 583
584+func (UnimplementedMergeRequestServiceHandler) EnableAutoMerge(context.Context, *connect.Request[ermite.EnableAutoMergeRequest]) (*connect.Response[ermite.EnableAutoMergeResponse], error) {
585+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.EnableAutoMerge is not implemented"))
586+}
587+
588+func (UnimplementedMergeRequestServiceHandler) CancelAutoMerge(context.Context, *connect.Request[ermite.CancelAutoMergeRequest]) (*connect.Response[ermite.CancelAutoMergeResponse], error) {
589+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.CancelAutoMerge is not implemented"))
590+}
591+
496 func (UnimplementedMergeRequestServiceHandler) MarkRead(context.Context, *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {592 func (UnimplementedMergeRequestServiceHandler) MarkRead(context.Context, *connect.Request[ermite.MarkReadRequest]) (*connect.Response[ermite.MarkReadResponse], error) {
497 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MarkRead is not implemented"))593 return nil, connect.NewError(connect.CodeUnimplemented, errors.New("ermite.MergeRequestService.MarkRead is not implemented"))
498 }594 }
M gen/ermite/event.pb.go +296 -133 generated file: collapsed
M gen/ermite/merge_request.pb.go +508 -160
@@ -371,6 +371,82 @@ func (x *Mergeability) GetCheckedAt() *timestamppb.Timestamp {
371371 return nil
372372 }
373373
374+// AutoMerge is the pending auto-merge of an open merge request: the server
375+// merges it by itself once its checks pass. Set only by servers with the
376+// "merge_requests.auto_merge" feature.
377+type AutoMerge struct {
378+ state protoimpl.MessageState `protogen:"open.v1"`
379+ // Mode is the merge mode used. Never MERGE_MODE_UNSPECIFIED.
380+ Mode MergeMode `protobuf:"varint,1,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
381+ // HeadId is the head the auto-merge was enabled for. A new head cancels the
382+ // auto-merge.
383+ HeadId string `protobuf:"bytes,2,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
384+ // EnabledBy names who enabled the auto-merge, like MergeRequest.author.
385+ EnabledBy string `protobuf:"bytes,3,opt,name=enabled_by,json=enabledBy,proto3" json:"enabled_by,omitempty"`
386+ // EnabledAt is when the auto-merge was enabled.
387+ EnabledAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=enabled_at,json=enabledAt,proto3" json:"enabled_at,omitempty"`
388+ unknownFields protoimpl.UnknownFields
389+ sizeCache protoimpl.SizeCache
390+}
391+
392+func (x *AutoMerge) Reset() {
393+ *x = AutoMerge{}
394+ mi := &file_ermite_merge_request_proto_msgTypes[1]
395+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
396+ ms.StoreMessageInfo(mi)
397+}
398+
399+func (x *AutoMerge) String() string {
400+ return protoimpl.X.MessageStringOf(x)
401+}
402+
403+func (*AutoMerge) ProtoMessage() {}
404+
405+func (x *AutoMerge) ProtoReflect() protoreflect.Message {
406+ mi := &file_ermite_merge_request_proto_msgTypes[1]
407+ if x != nil {
408+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
409+ if ms.LoadMessageInfo() == nil {
410+ ms.StoreMessageInfo(mi)
411+ }
412+ return ms
413+ }
414+ return mi.MessageOf(x)
415+}
416+
417+// Deprecated: Use AutoMerge.ProtoReflect.Descriptor instead.
418+func (*AutoMerge) Descriptor() ([]byte, []int) {
419+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
420+}
421+
422+func (x *AutoMerge) GetMode() MergeMode {
423+ if x != nil {
424+ return x.Mode
425+ }
426+ return MergeMode_MERGE_MODE_UNSPECIFIED
427+}
428+
429+func (x *AutoMerge) GetHeadId() string {
430+ if x != nil {
431+ return x.HeadId
432+ }
433+ return ""
434+}
435+
436+func (x *AutoMerge) GetEnabledBy() string {
437+ if x != nil {
438+ return x.EnabledBy
439+ }
440+ return ""
441+}
442+
443+func (x *AutoMerge) GetEnabledAt() *timestamppb.Timestamp {
444+ if x != nil {
445+ return x.EnabledAt
446+ }
447+ return nil
448+}
449+
374450 // MergeRequest asks to merge one branch of a repository into another branch
375451 // of the same repository. It is about a branch, not about who wrote it.
376452 type MergeRequest struct {
@@ -421,14 +497,21 @@ type MergeRequest struct {
421497 // a result for the current tips; never set once merged or closed. It is a
422498 // hint: MergeMergeRequest checks again. Set only by servers with the
423499 // "merge_requests.mergeability" feature.
424- Mergeability *Mergeability `protobuf:"bytes,14,opt,name=mergeability,proto3" json:"mergeability,omitempty"`
500+ Mergeability *Mergeability `protobuf:"bytes,14,opt,name=mergeability,proto3" json:"mergeability,omitempty"`
501+ // AutoMerge is the pending auto-merge. Set only while the merge request is
502+ // OPEN and auto-merge is enabled; unset once merged or closed. Set only by
503+ // servers with the "merge_requests.auto_merge" feature.
504+ AutoMerge *AutoMerge `protobuf:"bytes,15,opt,name=auto_merge,json=autoMerge,proto3" json:"auto_merge,omitempty"`
505+ // AutoMerged is true when the server merged the merge request by auto-merge.
506+ // Always false unless state is MERGED.
507+ AutoMerged bool `protobuf:"varint,16,opt,name=auto_merged,json=autoMerged,proto3" json:"auto_merged,omitempty"`
425508 unknownFields protoimpl.UnknownFields
426509 sizeCache protoimpl.SizeCache
427510 }
428511
429512 func (x *MergeRequest) Reset() {
430513 *x = MergeRequest{}
431- mi := &file_ermite_merge_request_proto_msgTypes[1]
514+ mi := &file_ermite_merge_request_proto_msgTypes[2]
432515 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
433516 ms.StoreMessageInfo(mi)
434517 }
@@ -440,7 +523,7 @@ func (x *MergeRequest) String() string {
440523 func (*MergeRequest) ProtoMessage() {}
441524
442525 func (x *MergeRequest) ProtoReflect() protoreflect.Message {
443- mi := &file_ermite_merge_request_proto_msgTypes[1]
526+ mi := &file_ermite_merge_request_proto_msgTypes[2]
444527 if x != nil {
445528 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
446529 if ms.LoadMessageInfo() == nil {
@@ -453,7 +536,7 @@ func (x *MergeRequest) ProtoReflect() protoreflect.Message {
453536
454537 // Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.
455538 func (*MergeRequest) Descriptor() ([]byte, []int) {
456- return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
539+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
457540 }
458541
459542 func (x *MergeRequest) GetRepo() string {
@@ -554,6 +637,20 @@ func (x *MergeRequest) GetMergeability() *Mergeability {
554637 return nil
555638 }
556639
640+func (x *MergeRequest) GetAutoMerge() *AutoMerge {
641+ if x != nil {
642+ return x.AutoMerge
643+ }
644+ return nil
645+}
646+
647+func (x *MergeRequest) GetAutoMerged() bool {
648+ if x != nil {
649+ return x.AutoMerged
650+ }
651+ return false
652+}
653+
557654 // Comment is a note on a merge request, either general or attached to a line
558655 // of its diff.
559656 type Comment struct {
@@ -606,7 +703,7 @@ type Comment struct {
606703
607704 func (x *Comment) Reset() {
608705 *x = Comment{}
609- mi := &file_ermite_merge_request_proto_msgTypes[2]
706+ mi := &file_ermite_merge_request_proto_msgTypes[3]
610707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
611708 ms.StoreMessageInfo(mi)
612709 }
@@ -618,7 +715,7 @@ func (x *Comment) String() string {
618715 func (*Comment) ProtoMessage() {}
619716
620717 func (x *Comment) ProtoReflect() protoreflect.Message {
621- mi := &file_ermite_merge_request_proto_msgTypes[2]
718+ mi := &file_ermite_merge_request_proto_msgTypes[3]
622719 if x != nil {
623720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
624721 if ms.LoadMessageInfo() == nil {
@@ -631,7 +728,7 @@ func (x *Comment) ProtoReflect() protoreflect.Message {
631728
632729 // Deprecated: Use Comment.ProtoReflect.Descriptor instead.
633730 func (*Comment) Descriptor() ([]byte, []int) {
634- return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
731+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
635732 }
636733
637734 func (x *Comment) GetId() string {
@@ -755,7 +852,7 @@ type AuthorVerdict struct {
755852
756853 func (x *AuthorVerdict) Reset() {
757854 *x = AuthorVerdict{}
758- mi := &file_ermite_merge_request_proto_msgTypes[3]
855+ mi := &file_ermite_merge_request_proto_msgTypes[4]
759856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
760857 ms.StoreMessageInfo(mi)
761858 }
@@ -767,7 +864,7 @@ func (x *AuthorVerdict) String() string {
767864 func (*AuthorVerdict) ProtoMessage() {}
768865
769866 func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
770- mi := &file_ermite_merge_request_proto_msgTypes[3]
867+ mi := &file_ermite_merge_request_proto_msgTypes[4]
771868 if x != nil {
772869 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
773870 if ms.LoadMessageInfo() == nil {
@@ -780,7 +877,7 @@ func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
780877
781878 // Deprecated: Use AuthorVerdict.ProtoReflect.Descriptor instead.
782879 func (*AuthorVerdict) Descriptor() ([]byte, []int) {
783- return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
880+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
784881 }
785882
786883 func (x *AuthorVerdict) GetAuthor() string {
@@ -847,7 +944,7 @@ type CreateMergeRequestRequest struct {
847944
848945 func (x *CreateMergeRequestRequest) Reset() {
849946 *x = CreateMergeRequestRequest{}
850- mi := &file_ermite_merge_request_proto_msgTypes[4]
947+ mi := &file_ermite_merge_request_proto_msgTypes[5]
851948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
852949 ms.StoreMessageInfo(mi)
853950 }
@@ -859,7 +956,7 @@ func (x *CreateMergeRequestRequest) String() string {
859956 func (*CreateMergeRequestRequest) ProtoMessage() {}
860957
861958 func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
862- mi := &file_ermite_merge_request_proto_msgTypes[4]
959+ mi := &file_ermite_merge_request_proto_msgTypes[5]
863960 if x != nil {
864961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
865962 if ms.LoadMessageInfo() == nil {
@@ -872,7 +969,7 @@ func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
872969
873970 // Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.
874971 func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {
875- return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
972+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
876973 }
877974
878975 func (x *CreateMergeRequestRequest) GetRepo() string {
@@ -921,7 +1018,7 @@ type CreateMergeRequestResponse struct {
9211018
9221019 func (x *CreateMergeRequestResponse) Reset() {
9231020 *x = CreateMergeRequestResponse{}
924- mi := &file_ermite_merge_request_proto_msgTypes[5]
1021+ mi := &file_ermite_merge_request_proto_msgTypes[6]
9251022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
9261023 ms.StoreMessageInfo(mi)
9271024 }
@@ -933,7 +1030,7 @@ func (x *CreateMergeRequestResponse) String() string {
9331030 func (*CreateMergeRequestResponse) ProtoMessage() {}
9341031
9351032 func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
936- mi := &file_ermite_merge_request_proto_msgTypes[5]
1033+ mi := &file_ermite_merge_request_proto_msgTypes[6]
9371034 if x != nil {
9381035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
9391036 if ms.LoadMessageInfo() == nil {
@@ -946,7 +1043,7 @@ func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
9461043
9471044 // Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.
9481045 func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {
949- return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
1046+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
9501047 }
9511048
9521049 func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -976,7 +1073,7 @@ type ListMergeRequestsRequest struct {
9761073
9771074 func (x *ListMergeRequestsRequest) Reset() {
9781075 *x = ListMergeRequestsRequest{}
979- mi := &file_ermite_merge_request_proto_msgTypes[6]
1076+ mi := &file_ermite_merge_request_proto_msgTypes[7]
9801077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
9811078 ms.StoreMessageInfo(mi)
9821079 }
@@ -988,7 +1085,7 @@ func (x *ListMergeRequestsRequest) String() string {
9881085 func (*ListMergeRequestsRequest) ProtoMessage() {}
9891086
9901087 func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
991- mi := &file_ermite_merge_request_proto_msgTypes[6]
1088+ mi := &file_ermite_merge_request_proto_msgTypes[7]
9921089 if x != nil {
9931090 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
9941091 if ms.LoadMessageInfo() == nil {
@@ -1001,7 +1098,7 @@ func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
10011098
10021099 // Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.
10031100 func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {
1004- return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
1101+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
10051102 }
10061103
10071104 func (x *ListMergeRequestsRequest) GetRepo() string {
@@ -1046,7 +1143,7 @@ type ListMergeRequestsResponse struct {
10461143
10471144 func (x *ListMergeRequestsResponse) Reset() {
10481145 *x = ListMergeRequestsResponse{}
1049- mi := &file_ermite_merge_request_proto_msgTypes[7]
1146+ mi := &file_ermite_merge_request_proto_msgTypes[8]
10501147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
10511148 ms.StoreMessageInfo(mi)
10521149 }
@@ -1058,7 +1155,7 @@ func (x *ListMergeRequestsResponse) String() string {
10581155 func (*ListMergeRequestsResponse) ProtoMessage() {}
10591156
10601157 func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
1061- mi := &file_ermite_merge_request_proto_msgTypes[7]
1158+ mi := &file_ermite_merge_request_proto_msgTypes[8]
10621159 if x != nil {
10631160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
10641161 if ms.LoadMessageInfo() == nil {
@@ -1071,7 +1168,7 @@ func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
10711168
10721169 // Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.
10731170 func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {
1074- return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
1171+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
10751172 }
10761173
10771174 func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {
@@ -1108,7 +1205,7 @@ type GetMergeRequestRequest struct {
11081205
11091206 func (x *GetMergeRequestRequest) Reset() {
11101207 *x = GetMergeRequestRequest{}
1111- mi := &file_ermite_merge_request_proto_msgTypes[8]
1208+ mi := &file_ermite_merge_request_proto_msgTypes[9]
11121209 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
11131210 ms.StoreMessageInfo(mi)
11141211 }
@@ -1120,7 +1217,7 @@ func (x *GetMergeRequestRequest) String() string {
11201217 func (*GetMergeRequestRequest) ProtoMessage() {}
11211218
11221219 func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
1123- mi := &file_ermite_merge_request_proto_msgTypes[8]
1220+ mi := &file_ermite_merge_request_proto_msgTypes[9]
11241221 if x != nil {
11251222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
11261223 if ms.LoadMessageInfo() == nil {
@@ -1133,7 +1230,7 @@ func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
11331230
11341231 // Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.
11351232 func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {
1136- return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
1233+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
11371234 }
11381235
11391236 func (x *GetMergeRequestRequest) GetRepo() string {
@@ -1199,7 +1296,7 @@ type GetMergeRequestResponse struct {
11991296
12001297 func (x *GetMergeRequestResponse) Reset() {
12011298 *x = GetMergeRequestResponse{}
1202- mi := &file_ermite_merge_request_proto_msgTypes[9]
1299+ mi := &file_ermite_merge_request_proto_msgTypes[10]
12031300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
12041301 ms.StoreMessageInfo(mi)
12051302 }
@@ -1211,7 +1308,7 @@ func (x *GetMergeRequestResponse) String() string {
12111308 func (*GetMergeRequestResponse) ProtoMessage() {}
12121309
12131310 func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
1214- mi := &file_ermite_merge_request_proto_msgTypes[9]
1311+ mi := &file_ermite_merge_request_proto_msgTypes[10]
12151312 if x != nil {
12161313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
12171314 if ms.LoadMessageInfo() == nil {
@@ -1224,7 +1321,7 @@ func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
12241321
12251322 // Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.
12261323 func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {
1227- return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
1324+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
12281325 }
12291326
12301327 func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -1333,7 +1430,7 @@ type AddCommentRequest struct {
13331430
13341431 func (x *AddCommentRequest) Reset() {
13351432 *x = AddCommentRequest{}
1336- mi := &file_ermite_merge_request_proto_msgTypes[10]
1433+ mi := &file_ermite_merge_request_proto_msgTypes[11]
13371434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
13381435 ms.StoreMessageInfo(mi)
13391436 }
@@ -1345,7 +1442,7 @@ func (x *AddCommentRequest) String() string {
13451442 func (*AddCommentRequest) ProtoMessage() {}
13461443
13471444 func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
1348- mi := &file_ermite_merge_request_proto_msgTypes[10]
1445+ mi := &file_ermite_merge_request_proto_msgTypes[11]
13491446 if x != nil {
13501447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
13511448 if ms.LoadMessageInfo() == nil {
@@ -1358,7 +1455,7 @@ func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
13581455
13591456 // Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.
13601457 func (*AddCommentRequest) Descriptor() ([]byte, []int) {
1361- return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
1458+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
13621459 }
13631460
13641461 func (x *AddCommentRequest) GetRepo() string {
@@ -1435,7 +1532,7 @@ type AddCommentResponse struct {
14351532
14361533 func (x *AddCommentResponse) Reset() {
14371534 *x = AddCommentResponse{}
1438- mi := &file_ermite_merge_request_proto_msgTypes[11]
1535+ mi := &file_ermite_merge_request_proto_msgTypes[12]
14391536 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
14401537 ms.StoreMessageInfo(mi)
14411538 }
@@ -1447,7 +1544,7 @@ func (x *AddCommentResponse) String() string {
14471544 func (*AddCommentResponse) ProtoMessage() {}
14481545
14491546 func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1450- mi := &file_ermite_merge_request_proto_msgTypes[11]
1547+ mi := &file_ermite_merge_request_proto_msgTypes[12]
14511548 if x != nil {
14521549 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
14531550 if ms.LoadMessageInfo() == nil {
@@ -1460,7 +1557,7 @@ func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
14601557
14611558 // Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.
14621559 func (*AddCommentResponse) Descriptor() ([]byte, []int) {
1463- return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
1560+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
14641561 }
14651562
14661563 func (x *AddCommentResponse) GetComment() *Comment {
@@ -1488,7 +1585,7 @@ type EditCommentRequest struct {
14881585
14891586 func (x *EditCommentRequest) Reset() {
14901587 *x = EditCommentRequest{}
1491- mi := &file_ermite_merge_request_proto_msgTypes[12]
1588+ mi := &file_ermite_merge_request_proto_msgTypes[13]
14921589 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
14931590 ms.StoreMessageInfo(mi)
14941591 }
@@ -1500,7 +1597,7 @@ func (x *EditCommentRequest) String() string {
15001597 func (*EditCommentRequest) ProtoMessage() {}
15011598
15021599 func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
1503- mi := &file_ermite_merge_request_proto_msgTypes[12]
1600+ mi := &file_ermite_merge_request_proto_msgTypes[13]
15041601 if x != nil {
15051602 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
15061603 if ms.LoadMessageInfo() == nil {
@@ -1513,7 +1610,7 @@ func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
15131610
15141611 // Deprecated: Use EditCommentRequest.ProtoReflect.Descriptor instead.
15151612 func (*EditCommentRequest) Descriptor() ([]byte, []int) {
1516- return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
1613+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
15171614 }
15181615
15191616 func (x *EditCommentRequest) GetRepo() string {
@@ -1555,7 +1652,7 @@ type EditCommentResponse struct {
15551652
15561653 func (x *EditCommentResponse) Reset() {
15571654 *x = EditCommentResponse{}
1558- mi := &file_ermite_merge_request_proto_msgTypes[13]
1655+ mi := &file_ermite_merge_request_proto_msgTypes[14]
15591656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
15601657 ms.StoreMessageInfo(mi)
15611658 }
@@ -1567,7 +1664,7 @@ func (x *EditCommentResponse) String() string {
15671664 func (*EditCommentResponse) ProtoMessage() {}
15681665
15691666 func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
1570- mi := &file_ermite_merge_request_proto_msgTypes[13]
1667+ mi := &file_ermite_merge_request_proto_msgTypes[14]
15711668 if x != nil {
15721669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
15731670 if ms.LoadMessageInfo() == nil {
@@ -1580,7 +1677,7 @@ func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
15801677
15811678 // Deprecated: Use EditCommentResponse.ProtoReflect.Descriptor instead.
15821679 func (*EditCommentResponse) Descriptor() ([]byte, []int) {
1583- return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
1680+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
15841681 }
15851682
15861683 func (x *EditCommentResponse) GetComment() *Comment {
@@ -1605,7 +1702,7 @@ type DeleteCommentRequest struct {
16051702
16061703 func (x *DeleteCommentRequest) Reset() {
16071704 *x = DeleteCommentRequest{}
1608- mi := &file_ermite_merge_request_proto_msgTypes[14]
1705+ mi := &file_ermite_merge_request_proto_msgTypes[15]
16091706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
16101707 ms.StoreMessageInfo(mi)
16111708 }
@@ -1617,7 +1714,7 @@ func (x *DeleteCommentRequest) String() string {
16171714 func (*DeleteCommentRequest) ProtoMessage() {}
16181715
16191716 func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
1620- mi := &file_ermite_merge_request_proto_msgTypes[14]
1717+ mi := &file_ermite_merge_request_proto_msgTypes[15]
16211718 if x != nil {
16221719 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
16231720 if ms.LoadMessageInfo() == nil {
@@ -1630,7 +1727,7 @@ func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
16301727
16311728 // Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.
16321729 func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {
1633- return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
1730+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
16341731 }
16351732
16361733 func (x *DeleteCommentRequest) GetRepo() string {
@@ -1665,7 +1762,7 @@ type DeleteCommentResponse struct {
16651762
16661763 func (x *DeleteCommentResponse) Reset() {
16671764 *x = DeleteCommentResponse{}
1668- mi := &file_ermite_merge_request_proto_msgTypes[15]
1765+ mi := &file_ermite_merge_request_proto_msgTypes[16]
16691766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
16701767 ms.StoreMessageInfo(mi)
16711768 }
@@ -1677,7 +1774,7 @@ func (x *DeleteCommentResponse) String() string {
16771774 func (*DeleteCommentResponse) ProtoMessage() {}
16781775
16791776 func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
1680- mi := &file_ermite_merge_request_proto_msgTypes[15]
1777+ mi := &file_ermite_merge_request_proto_msgTypes[16]
16811778 if x != nil {
16821779 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
16831780 if ms.LoadMessageInfo() == nil {
@@ -1690,7 +1787,7 @@ func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
16901787
16911788 // Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.
16921789 func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {
1693- return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
1790+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
16941791 }
16951792
16961793 func (x *DeleteCommentResponse) GetComment() *Comment {
@@ -1717,7 +1814,7 @@ type ResolveCommentRequest struct {
17171814
17181815 func (x *ResolveCommentRequest) Reset() {
17191816 *x = ResolveCommentRequest{}
1720- mi := &file_ermite_merge_request_proto_msgTypes[16]
1817+ mi := &file_ermite_merge_request_proto_msgTypes[17]
17211818 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
17221819 ms.StoreMessageInfo(mi)
17231820 }
@@ -1729,7 +1826,7 @@ func (x *ResolveCommentRequest) String() string {
17291826 func (*ResolveCommentRequest) ProtoMessage() {}
17301827
17311828 func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
1732- mi := &file_ermite_merge_request_proto_msgTypes[16]
1829+ mi := &file_ermite_merge_request_proto_msgTypes[17]
17331830 if x != nil {
17341831 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
17351832 if ms.LoadMessageInfo() == nil {
@@ -1742,7 +1839,7 @@ func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
17421839
17431840 // Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.
17441841 func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {
1745- return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
1842+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
17461843 }
17471844
17481845 func (x *ResolveCommentRequest) GetRepo() string {
@@ -1784,7 +1881,7 @@ type ResolveCommentResponse struct {
17841881
17851882 func (x *ResolveCommentResponse) Reset() {
17861883 *x = ResolveCommentResponse{}
1787- mi := &file_ermite_merge_request_proto_msgTypes[17]
1884+ mi := &file_ermite_merge_request_proto_msgTypes[18]
17881885 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
17891886 ms.StoreMessageInfo(mi)
17901887 }
@@ -1796,7 +1893,7 @@ func (x *ResolveCommentResponse) String() string {
17961893 func (*ResolveCommentResponse) ProtoMessage() {}
17971894
17981895 func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
1799- mi := &file_ermite_merge_request_proto_msgTypes[17]
1896+ mi := &file_ermite_merge_request_proto_msgTypes[18]
18001897 if x != nil {
18011898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
18021899 if ms.LoadMessageInfo() == nil {
@@ -1809,7 +1906,7 @@ func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
18091906
18101907 // Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.
18111908 func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {
1812- return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
1909+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}
18131910 }
18141911
18151912 func (x *ResolveCommentResponse) GetComment() *Comment {
@@ -1832,7 +1929,7 @@ type CloseMergeRequestRequest struct {
18321929
18331930 func (x *CloseMergeRequestRequest) Reset() {
18341931 *x = CloseMergeRequestRequest{}
1835- mi := &file_ermite_merge_request_proto_msgTypes[18]
1932+ mi := &file_ermite_merge_request_proto_msgTypes[19]
18361933 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
18371934 ms.StoreMessageInfo(mi)
18381935 }
@@ -1844,7 +1941,7 @@ func (x *CloseMergeRequestRequest) String() string {
18441941 func (*CloseMergeRequestRequest) ProtoMessage() {}
18451942
18461943 func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
1847- mi := &file_ermite_merge_request_proto_msgTypes[18]
1944+ mi := &file_ermite_merge_request_proto_msgTypes[19]
18481945 if x != nil {
18491946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
18501947 if ms.LoadMessageInfo() == nil {
@@ -1857,7 +1954,7 @@ func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
18571954
18581955 // Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.
18591956 func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {
1860- return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}
1957+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}
18611958 }
18621959
18631960 func (x *CloseMergeRequestRequest) GetRepo() string {
@@ -1885,7 +1982,7 @@ type CloseMergeRequestResponse struct {
18851982
18861983 func (x *CloseMergeRequestResponse) Reset() {
18871984 *x = CloseMergeRequestResponse{}
1888- mi := &file_ermite_merge_request_proto_msgTypes[19]
1985+ mi := &file_ermite_merge_request_proto_msgTypes[20]
18891986 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
18901987 ms.StoreMessageInfo(mi)
18911988 }
@@ -1897,7 +1994,7 @@ func (x *CloseMergeRequestResponse) String() string {
18971994 func (*CloseMergeRequestResponse) ProtoMessage() {}
18981995
18991996 func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
1900- mi := &file_ermite_merge_request_proto_msgTypes[19]
1997+ mi := &file_ermite_merge_request_proto_msgTypes[20]
19011998 if x != nil {
19021999 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
19032000 if ms.LoadMessageInfo() == nil {
@@ -1910,7 +2007,7 @@ func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
19102007
19112008 // Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.
19122009 func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {
1913- return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}
2010+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}
19142011 }
19152012
19162013 func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -1946,7 +2043,7 @@ type MergeMergeRequestRequest struct {
19462043
19472044 func (x *MergeMergeRequestRequest) Reset() {
19482045 *x = MergeMergeRequestRequest{}
1949- mi := &file_ermite_merge_request_proto_msgTypes[20]
2046+ mi := &file_ermite_merge_request_proto_msgTypes[21]
19502047 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
19512048 ms.StoreMessageInfo(mi)
19522049 }
@@ -1958,7 +2055,7 @@ func (x *MergeMergeRequestRequest) String() string {
19582055 func (*MergeMergeRequestRequest) ProtoMessage() {}
19592056
19602057 func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
1961- mi := &file_ermite_merge_request_proto_msgTypes[20]
2058+ mi := &file_ermite_merge_request_proto_msgTypes[21]
19622059 if x != nil {
19632060 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
19642061 if ms.LoadMessageInfo() == nil {
@@ -1971,7 +2068,7 @@ func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
19712068
19722069 // Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.
19732070 func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {
1974- return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}
2071+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}
19752072 }
19762073
19772074 func (x *MergeMergeRequestRequest) GetRepo() string {
@@ -2028,7 +2125,7 @@ type MergeMergeRequestResponse struct {
20282125
20292126 func (x *MergeMergeRequestResponse) Reset() {
20302127 *x = MergeMergeRequestResponse{}
2031- mi := &file_ermite_merge_request_proto_msgTypes[21]
2128+ mi := &file_ermite_merge_request_proto_msgTypes[22]
20322129 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
20332130 ms.StoreMessageInfo(mi)
20342131 }
@@ -2040,7 +2137,7 @@ func (x *MergeMergeRequestResponse) String() string {
20402137 func (*MergeMergeRequestResponse) ProtoMessage() {}
20412138
20422139 func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
2043- mi := &file_ermite_merge_request_proto_msgTypes[21]
2140+ mi := &file_ermite_merge_request_proto_msgTypes[22]
20442141 if x != nil {
20452142 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
20462143 if ms.LoadMessageInfo() == nil {
@@ -2053,7 +2150,7 @@ func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
20532150
20542151 // Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.
20552152 func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {
2056- return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}
2153+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}
20572154 }
20582155
20592156 func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -2070,6 +2167,218 @@ func (x *MergeMergeRequestResponse) GetSourceBranchDeleted() bool {
20702167 return false
20712168 }
20722169
2170+// EnableAutoMergeRequest describes the auto-merge to enable.
2171+type EnableAutoMergeRequest struct {
2172+ state protoimpl.MessageState `protogen:"open.v1"`
2173+ // Repo is the repository name.
2174+ Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2175+ // Number is the merge request number.
2176+ Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2177+ // Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
2178+ // must be in RepoSettings.allowed_merge_modes of the repository.
2179+ Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
2180+ unknownFields protoimpl.UnknownFields
2181+ sizeCache protoimpl.SizeCache
2182+}
2183+
2184+func (x *EnableAutoMergeRequest) Reset() {
2185+ *x = EnableAutoMergeRequest{}
2186+ mi := &file_ermite_merge_request_proto_msgTypes[23]
2187+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2188+ ms.StoreMessageInfo(mi)
2189+}
2190+
2191+func (x *EnableAutoMergeRequest) String() string {
2192+ return protoimpl.X.MessageStringOf(x)
2193+}
2194+
2195+func (*EnableAutoMergeRequest) ProtoMessage() {}
2196+
2197+func (x *EnableAutoMergeRequest) ProtoReflect() protoreflect.Message {
2198+ mi := &file_ermite_merge_request_proto_msgTypes[23]
2199+ if x != nil {
2200+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2201+ if ms.LoadMessageInfo() == nil {
2202+ ms.StoreMessageInfo(mi)
2203+ }
2204+ return ms
2205+ }
2206+ return mi.MessageOf(x)
2207+}
2208+
2209+// Deprecated: Use EnableAutoMergeRequest.ProtoReflect.Descriptor instead.
2210+func (*EnableAutoMergeRequest) Descriptor() ([]byte, []int) {
2211+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{23}
2212+}
2213+
2214+func (x *EnableAutoMergeRequest) GetRepo() string {
2215+ if x != nil {
2216+ return x.Repo
2217+ }
2218+ return ""
2219+}
2220+
2221+func (x *EnableAutoMergeRequest) GetNumber() int64 {
2222+ if x != nil {
2223+ return x.Number
2224+ }
2225+ return 0
2226+}
2227+
2228+func (x *EnableAutoMergeRequest) GetMode() MergeMode {
2229+ if x != nil {
2230+ return x.Mode
2231+ }
2232+ return MergeMode_MERGE_MODE_UNSPECIFIED
2233+}
2234+
2235+// EnableAutoMergeResponse holds the merge request with auto-merge enabled.
2236+type EnableAutoMergeResponse struct {
2237+ state protoimpl.MessageState `protogen:"open.v1"`
2238+ // MergeRequest is the merge request, with auto_merge set.
2239+ MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2240+ unknownFields protoimpl.UnknownFields
2241+ sizeCache protoimpl.SizeCache
2242+}
2243+
2244+func (x *EnableAutoMergeResponse) Reset() {
2245+ *x = EnableAutoMergeResponse{}
2246+ mi := &file_ermite_merge_request_proto_msgTypes[24]
2247+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2248+ ms.StoreMessageInfo(mi)
2249+}
2250+
2251+func (x *EnableAutoMergeResponse) String() string {
2252+ return protoimpl.X.MessageStringOf(x)
2253+}
2254+
2255+func (*EnableAutoMergeResponse) ProtoMessage() {}
2256+
2257+func (x *EnableAutoMergeResponse) ProtoReflect() protoreflect.Message {
2258+ mi := &file_ermite_merge_request_proto_msgTypes[24]
2259+ if x != nil {
2260+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2261+ if ms.LoadMessageInfo() == nil {
2262+ ms.StoreMessageInfo(mi)
2263+ }
2264+ return ms
2265+ }
2266+ return mi.MessageOf(x)
2267+}
2268+
2269+// Deprecated: Use EnableAutoMergeResponse.ProtoReflect.Descriptor instead.
2270+func (*EnableAutoMergeResponse) Descriptor() ([]byte, []int) {
2271+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{24}
2272+}
2273+
2274+func (x *EnableAutoMergeResponse) GetMergeRequest() *MergeRequest {
2275+ if x != nil {
2276+ return x.MergeRequest
2277+ }
2278+ return nil
2279+}
2280+
2281+// CancelAutoMergeRequest names the merge request whose auto-merge to cancel.
2282+type CancelAutoMergeRequest struct {
2283+ state protoimpl.MessageState `protogen:"open.v1"`
2284+ // Repo is the repository name.
2285+ Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2286+ // Number is the merge request number.
2287+ Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2288+ unknownFields protoimpl.UnknownFields
2289+ sizeCache protoimpl.SizeCache
2290+}
2291+
2292+func (x *CancelAutoMergeRequest) Reset() {
2293+ *x = CancelAutoMergeRequest{}
2294+ mi := &file_ermite_merge_request_proto_msgTypes[25]
2295+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2296+ ms.StoreMessageInfo(mi)
2297+}
2298+
2299+func (x *CancelAutoMergeRequest) String() string {
2300+ return protoimpl.X.MessageStringOf(x)
2301+}
2302+
2303+func (*CancelAutoMergeRequest) ProtoMessage() {}
2304+
2305+func (x *CancelAutoMergeRequest) ProtoReflect() protoreflect.Message {
2306+ mi := &file_ermite_merge_request_proto_msgTypes[25]
2307+ if x != nil {
2308+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2309+ if ms.LoadMessageInfo() == nil {
2310+ ms.StoreMessageInfo(mi)
2311+ }
2312+ return ms
2313+ }
2314+ return mi.MessageOf(x)
2315+}
2316+
2317+// Deprecated: Use CancelAutoMergeRequest.ProtoReflect.Descriptor instead.
2318+func (*CancelAutoMergeRequest) Descriptor() ([]byte, []int) {
2319+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{25}
2320+}
2321+
2322+func (x *CancelAutoMergeRequest) GetRepo() string {
2323+ if x != nil {
2324+ return x.Repo
2325+ }
2326+ return ""
2327+}
2328+
2329+func (x *CancelAutoMergeRequest) GetNumber() int64 {
2330+ if x != nil {
2331+ return x.Number
2332+ }
2333+ return 0
2334+}
2335+
2336+// CancelAutoMergeResponse holds the merge request after the cancellation.
2337+type CancelAutoMergeResponse struct {
2338+ state protoimpl.MessageState `protogen:"open.v1"`
2339+ // MergeRequest is the merge request, with auto_merge unset.
2340+ MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2341+ unknownFields protoimpl.UnknownFields
2342+ sizeCache protoimpl.SizeCache
2343+}
2344+
2345+func (x *CancelAutoMergeResponse) Reset() {
2346+ *x = CancelAutoMergeResponse{}
2347+ mi := &file_ermite_merge_request_proto_msgTypes[26]
2348+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2349+ ms.StoreMessageInfo(mi)
2350+}
2351+
2352+func (x *CancelAutoMergeResponse) String() string {
2353+ return protoimpl.X.MessageStringOf(x)
2354+}
2355+
2356+func (*CancelAutoMergeResponse) ProtoMessage() {}
2357+
2358+func (x *CancelAutoMergeResponse) ProtoReflect() protoreflect.Message {
2359+ mi := &file_ermite_merge_request_proto_msgTypes[26]
2360+ if x != nil {
2361+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2362+ if ms.LoadMessageInfo() == nil {
2363+ ms.StoreMessageInfo(mi)
2364+ }
2365+ return ms
2366+ }
2367+ return mi.MessageOf(x)
2368+}
2369+
2370+// Deprecated: Use CancelAutoMergeResponse.ProtoReflect.Descriptor instead.
2371+func (*CancelAutoMergeResponse) Descriptor() ([]byte, []int) {
2372+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{26}
2373+}
2374+
2375+func (x *CancelAutoMergeResponse) GetMergeRequest() *MergeRequest {
2376+ if x != nil {
2377+ return x.MergeRequest
2378+ }
2379+ return nil
2380+}
2381+
20732382 // MarkReadRequest records a read position.
20742383 type MarkReadRequest struct {
20752384 state protoimpl.MessageState `protogen:"open.v1"`
@@ -2087,7 +2396,7 @@ type MarkReadRequest struct {
20872396
20882397 func (x *MarkReadRequest) Reset() {
20892398 *x = MarkReadRequest{}
2090- mi := &file_ermite_merge_request_proto_msgTypes[22]
2399+ mi := &file_ermite_merge_request_proto_msgTypes[27]
20912400 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
20922401 ms.StoreMessageInfo(mi)
20932402 }
@@ -2099,7 +2408,7 @@ func (x *MarkReadRequest) String() string {
20992408 func (*MarkReadRequest) ProtoMessage() {}
21002409
21012410 func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
2102- mi := &file_ermite_merge_request_proto_msgTypes[22]
2411+ mi := &file_ermite_merge_request_proto_msgTypes[27]
21032412 if x != nil {
21042413 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
21052414 if ms.LoadMessageInfo() == nil {
@@ -2112,7 +2421,7 @@ func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
21122421
21132422 // Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.
21142423 func (*MarkReadRequest) Descriptor() ([]byte, []int) {
2115- return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}
2424+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{27}
21162425 }
21172426
21182427 func (x *MarkReadRequest) GetRepo() string {
@@ -2145,7 +2454,7 @@ type MarkReadResponse struct {
21452454
21462455 func (x *MarkReadResponse) Reset() {
21472456 *x = MarkReadResponse{}
2148- mi := &file_ermite_merge_request_proto_msgTypes[23]
2457+ mi := &file_ermite_merge_request_proto_msgTypes[28]
21492458 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
21502459 ms.StoreMessageInfo(mi)
21512460 }
@@ -2157,7 +2466,7 @@ func (x *MarkReadResponse) String() string {
21572466 func (*MarkReadResponse) ProtoMessage() {}
21582467
21592468 func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
2160- mi := &file_ermite_merge_request_proto_msgTypes[23]
2469+ mi := &file_ermite_merge_request_proto_msgTypes[28]
21612470 if x != nil {
21622471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
21632472 if ms.LoadMessageInfo() == nil {
@@ -2170,7 +2479,7 @@ func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
21702479
21712480 // Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.
21722481 func (*MarkReadResponse) Descriptor() ([]byte, []int) {
2173- return file_ermite_merge_request_proto_rawDescGZIP(), []int{23}
2482+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{28}
21742483 }
21752484
21762485 var File_ermite_merge_request_proto protoreflect.FileDescriptor
@@ -2187,7 +2496,14 @@ const file_ermite_merge_request_proto_rawDesc = "" +
21872496 "\x0econflict_paths\x18\x06 \x03(\tR\rconflictPaths\x128\n" +
21882497 "\x18conflict_paths_truncated\x18\a \x01(\bR\x16conflictPathsTruncated\x129\n" +
21892498 "\n" +
2190- "checked_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\xaa\x04\n" +
2499+ "checked_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\xa5\x01\n" +
2500+ "\tAutoMerge\x12%\n" +
2501+ "\x04mode\x18\x01 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
2502+ "\ahead_id\x18\x02 \x01(\tR\x06headId\x12\x1d\n" +
2503+ "\n" +
2504+ "enabled_by\x18\x03 \x01(\tR\tenabledBy\x129\n" +
2505+ "\n" +
2506+ "enabled_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tenabledAt\"\xfd\x04\n" +
21912507 "\fMergeRequest\x12\x12\n" +
21922508 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
21932509 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
@@ -2206,7 +2522,11 @@ const file_ermite_merge_request_proto_rawDesc = "" +
22062522 "\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +
22072523 "\n" +
22082524 "merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\x128\n" +
2209- "\fmergeability\x18\x0e \x01(\v2\x14.ermite.MergeabilityR\fmergeability\"\xbf\x03\n" +
2525+ "\fmergeability\x18\x0e \x01(\v2\x14.ermite.MergeabilityR\fmergeability\x120\n" +
2526+ "\n" +
2527+ "auto_merge\x18\x0f \x01(\v2\x11.ermite.AutoMergeR\tautoMerge\x12\x1f\n" +
2528+ "\vauto_merged\x18\x10 \x01(\bR\n" +
2529+ "autoMerged\"\xbf\x03\n" +
22102530 "\aComment\x12\x0e\n" +
22112531 "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
22122532 "\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
@@ -2318,7 +2638,18 @@ const file_ermite_merge_request_proto_rawDesc = "" +
23182638 "\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\"\x8a\x01\n" +
23192639 "\x19MergeMergeRequestResponse\x129\n" +
23202640 "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +
2321- "\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"V\n" +
2641+ "\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"k\n" +
2642+ "\x16EnableAutoMergeRequest\x12\x12\n" +
2643+ "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2644+ "\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
2645+ "\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\"T\n" +
2646+ "\x17EnableAutoMergeResponse\x129\n" +
2647+ "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"D\n" +
2648+ "\x16CancelAutoMergeRequest\x12\x12\n" +
2649+ "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2650+ "\x06number\x18\x02 \x01(\x03R\x06number\"T\n" +
2651+ "\x17CancelAutoMergeResponse\x129\n" +
2652+ "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"V\n" +
23222653 "\x0fMarkReadRequest\x12\x12\n" +
23232654 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
23242655 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +
@@ -2342,7 +2673,7 @@ const file_ermite_merge_request_proto_rawDesc = "" +
23422673 "\x1bMERGEABILITY_STATE_CHECKING\x10\x01\x12!\n" +
23432674 "\x1dMERGEABILITY_STATE_UP_TO_DATE\x10\x02\x12\x1d\n" +
23442675 "\x19MERGEABILITY_STATE_BEHIND\x10\x03\x12\x1f\n" +
2345- "\x1bMERGEABILITY_STATE_CONFLICT\x10\x042\xbf\x06\n" +
2676+ "\x1bMERGEABILITY_STATE_CONFLICT\x10\x042\xe7\a\n" +
23462677 "\x13MergeRequestService\x12[\n" +
23472678 "\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +
23482679 "\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +
@@ -2353,7 +2684,9 @@ const file_ermite_merge_request_proto_rawDesc = "" +
23532684 "\rDeleteComment\x12\x1c.ermite.DeleteCommentRequest\x1a\x1d.ermite.DeleteCommentResponse\x12O\n" +
23542685 "\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +
23552686 "\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12X\n" +
2356- "\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12=\n" +
2687+ "\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12R\n" +
2688+ "\x0fEnableAutoMerge\x12\x1e.ermite.EnableAutoMergeRequest\x1a\x1f.ermite.EnableAutoMergeResponse\x12R\n" +
2689+ "\x0fCancelAutoMerge\x12\x1e.ermite.CancelAutoMergeRequest\x1a\x1f.ermite.CancelAutoMergeResponse\x12=\n" +
23572690 "\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +
23582691 "\n" +
23592692 "com.ermiteB\x11MergeRequestProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
@@ -2371,99 +2704,114 @@ func file_ermite_merge_request_proto_rawDescGZIP() []byte {
23712704 }
23722705
23732706 var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
2374-var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
2707+var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
23752708 var file_ermite_merge_request_proto_goTypes = []any{
23762709 (MergeRequestState)(0), // 0: ermite.MergeRequestState
23772710 (DiffSide)(0), // 1: ermite.DiffSide
23782711 (Verdict)(0), // 2: ermite.Verdict
23792712 (MergeabilityState)(0), // 3: ermite.MergeabilityState
23802713 (*Mergeability)(nil), // 4: ermite.Mergeability
2381- (*MergeRequest)(nil), // 5: ermite.MergeRequest
2382- (*Comment)(nil), // 6: ermite.Comment
2383- (*AuthorVerdict)(nil), // 7: ermite.AuthorVerdict
2384- (*CreateMergeRequestRequest)(nil), // 8: ermite.CreateMergeRequestRequest
2385- (*CreateMergeRequestResponse)(nil), // 9: ermite.CreateMergeRequestResponse
2386- (*ListMergeRequestsRequest)(nil), // 10: ermite.ListMergeRequestsRequest
2387- (*ListMergeRequestsResponse)(nil), // 11: ermite.ListMergeRequestsResponse
2388- (*GetMergeRequestRequest)(nil), // 12: ermite.GetMergeRequestRequest
2389- (*GetMergeRequestResponse)(nil), // 13: ermite.GetMergeRequestResponse
2390- (*AddCommentRequest)(nil), // 14: ermite.AddCommentRequest
2391- (*AddCommentResponse)(nil), // 15: ermite.AddCommentResponse
2392- (*EditCommentRequest)(nil), // 16: ermite.EditCommentRequest
2393- (*EditCommentResponse)(nil), // 17: ermite.EditCommentResponse
2394- (*DeleteCommentRequest)(nil), // 18: ermite.DeleteCommentRequest
2395- (*DeleteCommentResponse)(nil), // 19: ermite.DeleteCommentResponse
2396- (*ResolveCommentRequest)(nil), // 20: ermite.ResolveCommentRequest
2397- (*ResolveCommentResponse)(nil), // 21: ermite.ResolveCommentResponse
2398- (*CloseMergeRequestRequest)(nil), // 22: ermite.CloseMergeRequestRequest
2399- (*CloseMergeRequestResponse)(nil), // 23: ermite.CloseMergeRequestResponse
2400- (*MergeMergeRequestRequest)(nil), // 24: ermite.MergeMergeRequestRequest
2401- (*MergeMergeRequestResponse)(nil), // 25: ermite.MergeMergeRequestResponse
2402- (*MarkReadRequest)(nil), // 26: ermite.MarkReadRequest
2403- (*MarkReadResponse)(nil), // 27: ermite.MarkReadResponse
2404- (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp
2405- (MergeMode)(0), // 29: ermite.MergeMode
2406- (*Commit)(nil), // 30: ermite.Commit
2407- (*DiffStats)(nil), // 31: ermite.DiffStats
2408- (*Diff)(nil), // 32: ermite.Diff
2714+ (*AutoMerge)(nil), // 5: ermite.AutoMerge
2715+ (*MergeRequest)(nil), // 6: ermite.MergeRequest
2716+ (*Comment)(nil), // 7: ermite.Comment
2717+ (*AuthorVerdict)(nil), // 8: ermite.AuthorVerdict
2718+ (*CreateMergeRequestRequest)(nil), // 9: ermite.CreateMergeRequestRequest
2719+ (*CreateMergeRequestResponse)(nil), // 10: ermite.CreateMergeRequestResponse
2720+ (*ListMergeRequestsRequest)(nil), // 11: ermite.ListMergeRequestsRequest
2721+ (*ListMergeRequestsResponse)(nil), // 12: ermite.ListMergeRequestsResponse
2722+ (*GetMergeRequestRequest)(nil), // 13: ermite.GetMergeRequestRequest
2723+ (*GetMergeRequestResponse)(nil), // 14: ermite.GetMergeRequestResponse
2724+ (*AddCommentRequest)(nil), // 15: ermite.AddCommentRequest
2725+ (*AddCommentResponse)(nil), // 16: ermite.AddCommentResponse
2726+ (*EditCommentRequest)(nil), // 17: ermite.EditCommentRequest
2727+ (*EditCommentResponse)(nil), // 18: ermite.EditCommentResponse
2728+ (*DeleteCommentRequest)(nil), // 19: ermite.DeleteCommentRequest
2729+ (*DeleteCommentResponse)(nil), // 20: ermite.DeleteCommentResponse
2730+ (*ResolveCommentRequest)(nil), // 21: ermite.ResolveCommentRequest
2731+ (*ResolveCommentResponse)(nil), // 22: ermite.ResolveCommentResponse
2732+ (*CloseMergeRequestRequest)(nil), // 23: ermite.CloseMergeRequestRequest
2733+ (*CloseMergeRequestResponse)(nil), // 24: ermite.CloseMergeRequestResponse
2734+ (*MergeMergeRequestRequest)(nil), // 25: ermite.MergeMergeRequestRequest
2735+ (*MergeMergeRequestResponse)(nil), // 26: ermite.MergeMergeRequestResponse
2736+ (*EnableAutoMergeRequest)(nil), // 27: ermite.EnableAutoMergeRequest
2737+ (*EnableAutoMergeResponse)(nil), // 28: ermite.EnableAutoMergeResponse
2738+ (*CancelAutoMergeRequest)(nil), // 29: ermite.CancelAutoMergeRequest
2739+ (*CancelAutoMergeResponse)(nil), // 30: ermite.CancelAutoMergeResponse
2740+ (*MarkReadRequest)(nil), // 31: ermite.MarkReadRequest
2741+ (*MarkReadResponse)(nil), // 32: ermite.MarkReadResponse
2742+ (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp
2743+ (MergeMode)(0), // 34: ermite.MergeMode
2744+ (*Commit)(nil), // 35: ermite.Commit
2745+ (*DiffStats)(nil), // 36: ermite.DiffStats
2746+ (*Diff)(nil), // 37: ermite.Diff
24092747 }
24102748 var file_ermite_merge_request_proto_depIdxs = []int32{
24112749 3, // 0: ermite.Mergeability.state:type_name -> ermite.MergeabilityState
2412- 28, // 1: ermite.Mergeability.checked_at:type_name -> google.protobuf.Timestamp
2413- 0, // 2: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
2414- 28, // 3: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
2415- 28, // 4: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
2416- 29, // 5: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
2417- 4, // 6: ermite.MergeRequest.mergeability:type_name -> ermite.Mergeability
2418- 1, // 7: ermite.Comment.side:type_name -> ermite.DiffSide
2419- 28, // 8: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
2420- 2, // 9: ermite.Comment.verdict:type_name -> ermite.Verdict
2421- 28, // 10: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp
2422- 2, // 11: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict
2423- 28, // 12: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp
2424- 5, // 13: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2425- 0, // 14: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
2426- 5, // 15: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
2427- 5, // 16: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2428- 30, // 17: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
2429- 31, // 18: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
2430- 32, // 19: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
2431- 6, // 20: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
2432- 7, // 21: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict
2433- 1, // 22: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
2434- 2, // 23: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict
2435- 6, // 24: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
2436- 6, // 25: ermite.EditCommentResponse.comment:type_name -> ermite.Comment
2437- 6, // 26: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment
2438- 6, // 27: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
2439- 5, // 28: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2440- 29, // 29: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
2441- 5, // 30: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2442- 8, // 31: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
2443- 10, // 32: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
2444- 12, // 33: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
2445- 14, // 34: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
2446- 16, // 35: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest
2447- 18, // 36: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest
2448- 20, // 37: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
2449- 22, // 38: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
2450- 24, // 39: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
2451- 26, // 40: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
2452- 9, // 41: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
2453- 11, // 42: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
2454- 13, // 43: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
2455- 15, // 44: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
2456- 17, // 45: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse
2457- 19, // 46: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse
2458- 21, // 47: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
2459- 23, // 48: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
2460- 25, // 49: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
2461- 27, // 50: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
2462- 41, // [41:51] is the sub-list for method output_type
2463- 31, // [31:41] is the sub-list for method input_type
2464- 31, // [31:31] is the sub-list for extension type_name
2465- 31, // [31:31] is the sub-list for extension extendee
2466- 0, // [0:31] is the sub-list for field type_name
2750+ 33, // 1: ermite.Mergeability.checked_at:type_name -> google.protobuf.Timestamp
2751+ 34, // 2: ermite.AutoMerge.mode:type_name -> ermite.MergeMode
2752+ 33, // 3: ermite.AutoMerge.enabled_at:type_name -> google.protobuf.Timestamp
2753+ 0, // 4: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
2754+ 33, // 5: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
2755+ 33, // 6: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
2756+ 34, // 7: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
2757+ 4, // 8: ermite.MergeRequest.mergeability:type_name -> ermite.Mergeability
2758+ 5, // 9: ermite.MergeRequest.auto_merge:type_name -> ermite.AutoMerge
2759+ 1, // 10: ermite.Comment.side:type_name -> ermite.DiffSide
2760+ 33, // 11: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
2761+ 2, // 12: ermite.Comment.verdict:type_name -> ermite.Verdict
2762+ 33, // 13: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp
2763+ 2, // 14: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict
2764+ 33, // 15: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp
2765+ 6, // 16: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2766+ 0, // 17: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
2767+ 6, // 18: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
2768+ 6, // 19: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2769+ 35, // 20: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
2770+ 36, // 21: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
2771+ 37, // 22: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
2772+ 7, // 23: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
2773+ 8, // 24: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict
2774+ 1, // 25: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
2775+ 2, // 26: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict
2776+ 7, // 27: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
2777+ 7, // 28: ermite.EditCommentResponse.comment:type_name -> ermite.Comment
2778+ 7, // 29: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment
2779+ 7, // 30: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
2780+ 6, // 31: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2781+ 34, // 32: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
2782+ 6, // 33: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2783+ 34, // 34: ermite.EnableAutoMergeRequest.mode:type_name -> ermite.MergeMode
2784+ 6, // 35: ermite.EnableAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
2785+ 6, // 36: ermite.CancelAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
2786+ 9, // 37: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
2787+ 11, // 38: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
2788+ 13, // 39: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
2789+ 15, // 40: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
2790+ 17, // 41: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest
2791+ 19, // 42: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest
2792+ 21, // 43: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
2793+ 23, // 44: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
2794+ 25, // 45: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
2795+ 27, // 46: ermite.MergeRequestService.EnableAutoMerge:input_type -> ermite.EnableAutoMergeRequest
2796+ 29, // 47: ermite.MergeRequestService.CancelAutoMerge:input_type -> ermite.CancelAutoMergeRequest
2797+ 31, // 48: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
2798+ 10, // 49: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
2799+ 12, // 50: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
2800+ 14, // 51: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
2801+ 16, // 52: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
2802+ 18, // 53: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse
2803+ 20, // 54: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse
2804+ 22, // 55: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
2805+ 24, // 56: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
2806+ 26, // 57: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
2807+ 28, // 58: ermite.MergeRequestService.EnableAutoMerge:output_type -> ermite.EnableAutoMergeResponse
2808+ 30, // 59: ermite.MergeRequestService.CancelAutoMerge:output_type -> ermite.CancelAutoMergeResponse
2809+ 32, // 60: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
2810+ 49, // [49:61] is the sub-list for method output_type
2811+ 37, // [37:49] is the sub-list for method input_type
2812+ 37, // [37:37] is the sub-list for extension type_name
2813+ 37, // [37:37] is the sub-list for extension extendee
2814+ 0, // [0:37] is the sub-list for field type_name
24672815 }
24682816
24692817 func init() { file_ermite_merge_request_proto_init() }
@@ -2479,7 +2827,7 @@ func file_ermite_merge_request_proto_init() {
24792827 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
24802828 RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),
24812829 NumEnums: 4,
2482- NumMessages: 24,
2830+ NumMessages: 29,
24832831 NumExtensions: 0,
24842832 NumServices: 1,
24852833 },
@@ -371,6 +371,82 @@ func (x *Mergeability) GetCheckedAt() *timestamppb.Timestamp {
371 return nil371 return nil
372 }372 }
373 373
374+// AutoMerge is the pending auto-merge of an open merge request: the server
375+// merges it by itself once its checks pass. Set only by servers with the
376+// "merge_requests.auto_merge" feature.
377+type AutoMerge struct {
378+ state protoimpl.MessageState `protogen:"open.v1"`
379+ // Mode is the merge mode used. Never MERGE_MODE_UNSPECIFIED.
380+ Mode MergeMode `protobuf:"varint,1,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
381+ // HeadId is the head the auto-merge was enabled for. A new head cancels the
382+ // auto-merge.
383+ HeadId string `protobuf:"bytes,2,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
384+ // EnabledBy names who enabled the auto-merge, like MergeRequest.author.
385+ EnabledBy string `protobuf:"bytes,3,opt,name=enabled_by,json=enabledBy,proto3" json:"enabled_by,omitempty"`
386+ // EnabledAt is when the auto-merge was enabled.
387+ EnabledAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=enabled_at,json=enabledAt,proto3" json:"enabled_at,omitempty"`
388+ unknownFields protoimpl.UnknownFields
389+ sizeCache protoimpl.SizeCache
390+}
391+
392+func (x *AutoMerge) Reset() {
393+ *x = AutoMerge{}
394+ mi := &file_ermite_merge_request_proto_msgTypes[1]
395+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
396+ ms.StoreMessageInfo(mi)
397+}
398+
399+func (x *AutoMerge) String() string {
400+ return protoimpl.X.MessageStringOf(x)
401+}
402+
403+func (*AutoMerge) ProtoMessage() {}
404+
405+func (x *AutoMerge) ProtoReflect() protoreflect.Message {
406+ mi := &file_ermite_merge_request_proto_msgTypes[1]
407+ if x != nil {
408+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
409+ if ms.LoadMessageInfo() == nil {
410+ ms.StoreMessageInfo(mi)
411+ }
412+ return ms
413+ }
414+ return mi.MessageOf(x)
415+}
416+
417+// Deprecated: Use AutoMerge.ProtoReflect.Descriptor instead.
418+func (*AutoMerge) Descriptor() ([]byte, []int) {
419+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
420+}
421+
422+func (x *AutoMerge) GetMode() MergeMode {
423+ if x != nil {
424+ return x.Mode
425+ }
426+ return MergeMode_MERGE_MODE_UNSPECIFIED
427+}
428+
429+func (x *AutoMerge) GetHeadId() string {
430+ if x != nil {
431+ return x.HeadId
432+ }
433+ return ""
434+}
435+
436+func (x *AutoMerge) GetEnabledBy() string {
437+ if x != nil {
438+ return x.EnabledBy
439+ }
440+ return ""
441+}
442+
443+func (x *AutoMerge) GetEnabledAt() *timestamppb.Timestamp {
444+ if x != nil {
445+ return x.EnabledAt
446+ }
447+ return nil
448+}
449+
374 // MergeRequest asks to merge one branch of a repository into another branch450 // MergeRequest asks to merge one branch of a repository into another branch
375 // of the same repository. It is about a branch, not about who wrote it.451 // of the same repository. It is about a branch, not about who wrote it.
376 type MergeRequest struct {452 type MergeRequest struct {
@@ -421,14 +497,21 @@ type MergeRequest struct {
421 // a result for the current tips; never set once merged or closed. It is a497 // a result for the current tips; never set once merged or closed. It is a
422 // hint: MergeMergeRequest checks again. Set only by servers with the498 // hint: MergeMergeRequest checks again. Set only by servers with the
423 // "merge_requests.mergeability" feature.499 // "merge_requests.mergeability" feature.
424- Mergeability *Mergeability `protobuf:"bytes,14,opt,name=mergeability,proto3" json:"mergeability,omitempty"`500+ Mergeability *Mergeability `protobuf:"bytes,14,opt,name=mergeability,proto3" json:"mergeability,omitempty"`
501+ // AutoMerge is the pending auto-merge. Set only while the merge request is
502+ // OPEN and auto-merge is enabled; unset once merged or closed. Set only by
503+ // servers with the "merge_requests.auto_merge" feature.
504+ AutoMerge *AutoMerge `protobuf:"bytes,15,opt,name=auto_merge,json=autoMerge,proto3" json:"auto_merge,omitempty"`
505+ // AutoMerged is true when the server merged the merge request by auto-merge.
506+ // Always false unless state is MERGED.
507+ AutoMerged bool `protobuf:"varint,16,opt,name=auto_merged,json=autoMerged,proto3" json:"auto_merged,omitempty"`
425 unknownFields protoimpl.UnknownFields508 unknownFields protoimpl.UnknownFields
426 sizeCache protoimpl.SizeCache509 sizeCache protoimpl.SizeCache
427 }510 }
428 511
429 func (x *MergeRequest) Reset() {512 func (x *MergeRequest) Reset() {
430 *x = MergeRequest{}513 *x = MergeRequest{}
431- mi := &file_ermite_merge_request_proto_msgTypes[1]514+ mi := &file_ermite_merge_request_proto_msgTypes[2]
432 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))515 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
433 ms.StoreMessageInfo(mi)516 ms.StoreMessageInfo(mi)
434 }517 }
@@ -440,7 +523,7 @@ func (x *MergeRequest) String() string {
440 func (*MergeRequest) ProtoMessage() {}523 func (*MergeRequest) ProtoMessage() {}
441 524
442 func (x *MergeRequest) ProtoReflect() protoreflect.Message {525 func (x *MergeRequest) ProtoReflect() protoreflect.Message {
443- mi := &file_ermite_merge_request_proto_msgTypes[1]526+ mi := &file_ermite_merge_request_proto_msgTypes[2]
444 if x != nil {527 if x != nil {
445 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))528 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
446 if ms.LoadMessageInfo() == nil {529 if ms.LoadMessageInfo() == nil {
@@ -453,7 +536,7 @@ func (x *MergeRequest) ProtoReflect() protoreflect.Message {
453 536
454 // Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.537 // Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.
455 func (*MergeRequest) Descriptor() ([]byte, []int) {538 func (*MergeRequest) Descriptor() ([]byte, []int) {
456- return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}539+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
457 }540 }
458 541
459 func (x *MergeRequest) GetRepo() string {542 func (x *MergeRequest) GetRepo() string {
@@ -554,6 +637,20 @@ func (x *MergeRequest) GetMergeability() *Mergeability {
554 return nil637 return nil
555 }638 }
556 639
640+func (x *MergeRequest) GetAutoMerge() *AutoMerge {
641+ if x != nil {
642+ return x.AutoMerge
643+ }
644+ return nil
645+}
646+
647+func (x *MergeRequest) GetAutoMerged() bool {
648+ if x != nil {
649+ return x.AutoMerged
650+ }
651+ return false
652+}
653+
557 // Comment is a note on a merge request, either general or attached to a line654 // Comment is a note on a merge request, either general or attached to a line
558 // of its diff.655 // of its diff.
559 type Comment struct {656 type Comment struct {
@@ -606,7 +703,7 @@ type Comment struct {
606 703
607 func (x *Comment) Reset() {704 func (x *Comment) Reset() {
608 *x = Comment{}705 *x = Comment{}
609- mi := &file_ermite_merge_request_proto_msgTypes[2]706+ mi := &file_ermite_merge_request_proto_msgTypes[3]
610 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
611 ms.StoreMessageInfo(mi)708 ms.StoreMessageInfo(mi)
612 }709 }
@@ -618,7 +715,7 @@ func (x *Comment) String() string {
618 func (*Comment) ProtoMessage() {}715 func (*Comment) ProtoMessage() {}
619 716
620 func (x *Comment) ProtoReflect() protoreflect.Message {717 func (x *Comment) ProtoReflect() protoreflect.Message {
621- mi := &file_ermite_merge_request_proto_msgTypes[2]718+ mi := &file_ermite_merge_request_proto_msgTypes[3]
622 if x != nil {719 if x != nil {
623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
624 if ms.LoadMessageInfo() == nil {721 if ms.LoadMessageInfo() == nil {
@@ -631,7 +728,7 @@ func (x *Comment) ProtoReflect() protoreflect.Message {
631 728
632 // Deprecated: Use Comment.ProtoReflect.Descriptor instead.729 // Deprecated: Use Comment.ProtoReflect.Descriptor instead.
633 func (*Comment) Descriptor() ([]byte, []int) {730 func (*Comment) Descriptor() ([]byte, []int) {
634- return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}731+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
635 }732 }
636 733
637 func (x *Comment) GetId() string {734 func (x *Comment) GetId() string {
@@ -755,7 +852,7 @@ type AuthorVerdict struct {
755 852
756 func (x *AuthorVerdict) Reset() {853 func (x *AuthorVerdict) Reset() {
757 *x = AuthorVerdict{}854 *x = AuthorVerdict{}
758- mi := &file_ermite_merge_request_proto_msgTypes[3]855+ mi := &file_ermite_merge_request_proto_msgTypes[4]
759 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
760 ms.StoreMessageInfo(mi)857 ms.StoreMessageInfo(mi)
761 }858 }
@@ -767,7 +864,7 @@ func (x *AuthorVerdict) String() string {
767 func (*AuthorVerdict) ProtoMessage() {}864 func (*AuthorVerdict) ProtoMessage() {}
768 865
769 func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {866 func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
770- mi := &file_ermite_merge_request_proto_msgTypes[3]867+ mi := &file_ermite_merge_request_proto_msgTypes[4]
771 if x != nil {868 if x != nil {
772 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))869 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
773 if ms.LoadMessageInfo() == nil {870 if ms.LoadMessageInfo() == nil {
@@ -780,7 +877,7 @@ func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
780 877
781 // Deprecated: Use AuthorVerdict.ProtoReflect.Descriptor instead.878 // Deprecated: Use AuthorVerdict.ProtoReflect.Descriptor instead.
782 func (*AuthorVerdict) Descriptor() ([]byte, []int) {879 func (*AuthorVerdict) Descriptor() ([]byte, []int) {
783- return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}880+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
784 }881 }
785 882
786 func (x *AuthorVerdict) GetAuthor() string {883 func (x *AuthorVerdict) GetAuthor() string {
@@ -847,7 +944,7 @@ type CreateMergeRequestRequest struct {
847 944
848 func (x *CreateMergeRequestRequest) Reset() {945 func (x *CreateMergeRequestRequest) Reset() {
849 *x = CreateMergeRequestRequest{}946 *x = CreateMergeRequestRequest{}
850- mi := &file_ermite_merge_request_proto_msgTypes[4]947+ mi := &file_ermite_merge_request_proto_msgTypes[5]
851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
852 ms.StoreMessageInfo(mi)949 ms.StoreMessageInfo(mi)
853 }950 }
@@ -859,7 +956,7 @@ func (x *CreateMergeRequestRequest) String() string {
859 func (*CreateMergeRequestRequest) ProtoMessage() {}956 func (*CreateMergeRequestRequest) ProtoMessage() {}
860 957
861 func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {958 func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
862- mi := &file_ermite_merge_request_proto_msgTypes[4]959+ mi := &file_ermite_merge_request_proto_msgTypes[5]
863 if x != nil {960 if x != nil {
864 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))961 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
865 if ms.LoadMessageInfo() == nil {962 if ms.LoadMessageInfo() == nil {
@@ -872,7 +969,7 @@ func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
872 969
873 // Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.970 // Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.
874 func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {971 func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {
875- return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}972+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
876 }973 }
877 974
878 func (x *CreateMergeRequestRequest) GetRepo() string {975 func (x *CreateMergeRequestRequest) GetRepo() string {
@@ -921,7 +1018,7 @@ type CreateMergeRequestResponse struct {
921 1018
922 func (x *CreateMergeRequestResponse) Reset() {1019 func (x *CreateMergeRequestResponse) Reset() {
923 *x = CreateMergeRequestResponse{}1020 *x = CreateMergeRequestResponse{}
924- mi := &file_ermite_merge_request_proto_msgTypes[5]1021+ mi := &file_ermite_merge_request_proto_msgTypes[6]
925 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
926 ms.StoreMessageInfo(mi)1023 ms.StoreMessageInfo(mi)
927 }1024 }
@@ -933,7 +1030,7 @@ func (x *CreateMergeRequestResponse) String() string {
933 func (*CreateMergeRequestResponse) ProtoMessage() {}1030 func (*CreateMergeRequestResponse) ProtoMessage() {}
934 1031
935 func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {1032 func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
936- mi := &file_ermite_merge_request_proto_msgTypes[5]1033+ mi := &file_ermite_merge_request_proto_msgTypes[6]
937 if x != nil {1034 if x != nil {
938 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1035 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
939 if ms.LoadMessageInfo() == nil {1036 if ms.LoadMessageInfo() == nil {
@@ -946,7 +1043,7 @@ func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
946 1043
947 // Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.1044 // Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.
948 func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {1045 func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {
949- return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}1046+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
950 }1047 }
951 1048
952 func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {1049 func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -976,7 +1073,7 @@ type ListMergeRequestsRequest struct {
976 1073
977 func (x *ListMergeRequestsRequest) Reset() {1074 func (x *ListMergeRequestsRequest) Reset() {
978 *x = ListMergeRequestsRequest{}1075 *x = ListMergeRequestsRequest{}
979- mi := &file_ermite_merge_request_proto_msgTypes[6]1076+ mi := &file_ermite_merge_request_proto_msgTypes[7]
980 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1077 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
981 ms.StoreMessageInfo(mi)1078 ms.StoreMessageInfo(mi)
982 }1079 }
@@ -988,7 +1085,7 @@ func (x *ListMergeRequestsRequest) String() string {
988 func (*ListMergeRequestsRequest) ProtoMessage() {}1085 func (*ListMergeRequestsRequest) ProtoMessage() {}
989 1086
990 func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {1087 func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
991- mi := &file_ermite_merge_request_proto_msgTypes[6]1088+ mi := &file_ermite_merge_request_proto_msgTypes[7]
992 if x != nil {1089 if x != nil {
993 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1090 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
994 if ms.LoadMessageInfo() == nil {1091 if ms.LoadMessageInfo() == nil {
@@ -1001,7 +1098,7 @@ func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
1001 1098
1002 // Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.1099 // Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.
1003 func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {1100 func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {
1004- return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}1101+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
1005 }1102 }
1006 1103
1007 func (x *ListMergeRequestsRequest) GetRepo() string {1104 func (x *ListMergeRequestsRequest) GetRepo() string {
@@ -1046,7 +1143,7 @@ type ListMergeRequestsResponse struct {
1046 1143
1047 func (x *ListMergeRequestsResponse) Reset() {1144 func (x *ListMergeRequestsResponse) Reset() {
1048 *x = ListMergeRequestsResponse{}1145 *x = ListMergeRequestsResponse{}
1049- mi := &file_ermite_merge_request_proto_msgTypes[7]1146+ mi := &file_ermite_merge_request_proto_msgTypes[8]
1050 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1147 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1051 ms.StoreMessageInfo(mi)1148 ms.StoreMessageInfo(mi)
1052 }1149 }
@@ -1058,7 +1155,7 @@ func (x *ListMergeRequestsResponse) String() string {
1058 func (*ListMergeRequestsResponse) ProtoMessage() {}1155 func (*ListMergeRequestsResponse) ProtoMessage() {}
1059 1156
1060 func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {1157 func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
1061- mi := &file_ermite_merge_request_proto_msgTypes[7]1158+ mi := &file_ermite_merge_request_proto_msgTypes[8]
1062 if x != nil {1159 if x != nil {
1063 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1160 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1064 if ms.LoadMessageInfo() == nil {1161 if ms.LoadMessageInfo() == nil {
@@ -1071,7 +1168,7 @@ func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
1071 1168
1072 // Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.1169 // Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.
1073 func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {1170 func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {
1074- return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}1171+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
1075 }1172 }
1076 1173
1077 func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {1174 func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {
@@ -1108,7 +1205,7 @@ type GetMergeRequestRequest struct {
1108 1205
1109 func (x *GetMergeRequestRequest) Reset() {1206 func (x *GetMergeRequestRequest) Reset() {
1110 *x = GetMergeRequestRequest{}1207 *x = GetMergeRequestRequest{}
1111- mi := &file_ermite_merge_request_proto_msgTypes[8]1208+ mi := &file_ermite_merge_request_proto_msgTypes[9]
1112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1209 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1113 ms.StoreMessageInfo(mi)1210 ms.StoreMessageInfo(mi)
1114 }1211 }
@@ -1120,7 +1217,7 @@ func (x *GetMergeRequestRequest) String() string {
1120 func (*GetMergeRequestRequest) ProtoMessage() {}1217 func (*GetMergeRequestRequest) ProtoMessage() {}
1121 1218
1122 func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {1219 func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
1123- mi := &file_ermite_merge_request_proto_msgTypes[8]1220+ mi := &file_ermite_merge_request_proto_msgTypes[9]
1124 if x != nil {1221 if x != nil {
1125 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1126 if ms.LoadMessageInfo() == nil {1223 if ms.LoadMessageInfo() == nil {
@@ -1133,7 +1230,7 @@ func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
1133 1230
1134 // Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.1231 // Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.
1135 func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {1232 func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {
1136- return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}1233+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
1137 }1234 }
1138 1235
1139 func (x *GetMergeRequestRequest) GetRepo() string {1236 func (x *GetMergeRequestRequest) GetRepo() string {
@@ -1199,7 +1296,7 @@ type GetMergeRequestResponse struct {
1199 1296
1200 func (x *GetMergeRequestResponse) Reset() {1297 func (x *GetMergeRequestResponse) Reset() {
1201 *x = GetMergeRequestResponse{}1298 *x = GetMergeRequestResponse{}
1202- mi := &file_ermite_merge_request_proto_msgTypes[9]1299+ mi := &file_ermite_merge_request_proto_msgTypes[10]
1203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1204 ms.StoreMessageInfo(mi)1301 ms.StoreMessageInfo(mi)
1205 }1302 }
@@ -1211,7 +1308,7 @@ func (x *GetMergeRequestResponse) String() string {
1211 func (*GetMergeRequestResponse) ProtoMessage() {}1308 func (*GetMergeRequestResponse) ProtoMessage() {}
1212 1309
1213 func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {1310 func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
1214- mi := &file_ermite_merge_request_proto_msgTypes[9]1311+ mi := &file_ermite_merge_request_proto_msgTypes[10]
1215 if x != nil {1312 if x != nil {
1216 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1217 if ms.LoadMessageInfo() == nil {1314 if ms.LoadMessageInfo() == nil {
@@ -1224,7 +1321,7 @@ func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
1224 1321
1225 // Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.1322 // Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.
1226 func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {1323 func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {
1227- return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}1324+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
1228 }1325 }
1229 1326
1230 func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {1327 func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -1333,7 +1430,7 @@ type AddCommentRequest struct {
1333 1430
1334 func (x *AddCommentRequest) Reset() {1431 func (x *AddCommentRequest) Reset() {
1335 *x = AddCommentRequest{}1432 *x = AddCommentRequest{}
1336- mi := &file_ermite_merge_request_proto_msgTypes[10]1433+ mi := &file_ermite_merge_request_proto_msgTypes[11]
1337 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1338 ms.StoreMessageInfo(mi)1435 ms.StoreMessageInfo(mi)
1339 }1436 }
@@ -1345,7 +1442,7 @@ func (x *AddCommentRequest) String() string {
1345 func (*AddCommentRequest) ProtoMessage() {}1442 func (*AddCommentRequest) ProtoMessage() {}
1346 1443
1347 func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {1444 func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
1348- mi := &file_ermite_merge_request_proto_msgTypes[10]1445+ mi := &file_ermite_merge_request_proto_msgTypes[11]
1349 if x != nil {1446 if x != nil {
1350 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1447 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1351 if ms.LoadMessageInfo() == nil {1448 if ms.LoadMessageInfo() == nil {
@@ -1358,7 +1455,7 @@ func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
1358 1455
1359 // Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.1456 // Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.
1360 func (*AddCommentRequest) Descriptor() ([]byte, []int) {1457 func (*AddCommentRequest) Descriptor() ([]byte, []int) {
1361- return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}1458+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
1362 }1459 }
1363 1460
1364 func (x *AddCommentRequest) GetRepo() string {1461 func (x *AddCommentRequest) GetRepo() string {
@@ -1435,7 +1532,7 @@ type AddCommentResponse struct {
1435 1532
1436 func (x *AddCommentResponse) Reset() {1533 func (x *AddCommentResponse) Reset() {
1437 *x = AddCommentResponse{}1534 *x = AddCommentResponse{}
1438- mi := &file_ermite_merge_request_proto_msgTypes[11]1535+ mi := &file_ermite_merge_request_proto_msgTypes[12]
1439 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1536 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1440 ms.StoreMessageInfo(mi)1537 ms.StoreMessageInfo(mi)
1441 }1538 }
@@ -1447,7 +1544,7 @@ func (x *AddCommentResponse) String() string {
1447 func (*AddCommentResponse) ProtoMessage() {}1544 func (*AddCommentResponse) ProtoMessage() {}
1448 1545
1449 func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {1546 func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1450- mi := &file_ermite_merge_request_proto_msgTypes[11]1547+ mi := &file_ermite_merge_request_proto_msgTypes[12]
1451 if x != nil {1548 if x != nil {
1452 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1549 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1453 if ms.LoadMessageInfo() == nil {1550 if ms.LoadMessageInfo() == nil {
@@ -1460,7 +1557,7 @@ func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1460 1557
1461 // Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.1558 // Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.
1462 func (*AddCommentResponse) Descriptor() ([]byte, []int) {1559 func (*AddCommentResponse) Descriptor() ([]byte, []int) {
1463- return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}1560+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
1464 }1561 }
1465 1562
1466 func (x *AddCommentResponse) GetComment() *Comment {1563 func (x *AddCommentResponse) GetComment() *Comment {
@@ -1488,7 +1585,7 @@ type EditCommentRequest struct {
1488 1585
1489 func (x *EditCommentRequest) Reset() {1586 func (x *EditCommentRequest) Reset() {
1490 *x = EditCommentRequest{}1587 *x = EditCommentRequest{}
1491- mi := &file_ermite_merge_request_proto_msgTypes[12]1588+ mi := &file_ermite_merge_request_proto_msgTypes[13]
1492 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1589 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1493 ms.StoreMessageInfo(mi)1590 ms.StoreMessageInfo(mi)
1494 }1591 }
@@ -1500,7 +1597,7 @@ func (x *EditCommentRequest) String() string {
1500 func (*EditCommentRequest) ProtoMessage() {}1597 func (*EditCommentRequest) ProtoMessage() {}
1501 1598
1502 func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {1599 func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
1503- mi := &file_ermite_merge_request_proto_msgTypes[12]1600+ mi := &file_ermite_merge_request_proto_msgTypes[13]
1504 if x != nil {1601 if x != nil {
1505 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1602 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1506 if ms.LoadMessageInfo() == nil {1603 if ms.LoadMessageInfo() == nil {
@@ -1513,7 +1610,7 @@ func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
1513 1610
1514 // Deprecated: Use EditCommentRequest.ProtoReflect.Descriptor instead.1611 // Deprecated: Use EditCommentRequest.ProtoReflect.Descriptor instead.
1515 func (*EditCommentRequest) Descriptor() ([]byte, []int) {1612 func (*EditCommentRequest) Descriptor() ([]byte, []int) {
1516- return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}1613+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
1517 }1614 }
1518 1615
1519 func (x *EditCommentRequest) GetRepo() string {1616 func (x *EditCommentRequest) GetRepo() string {
@@ -1555,7 +1652,7 @@ type EditCommentResponse struct {
1555 1652
1556 func (x *EditCommentResponse) Reset() {1653 func (x *EditCommentResponse) Reset() {
1557 *x = EditCommentResponse{}1654 *x = EditCommentResponse{}
1558- mi := &file_ermite_merge_request_proto_msgTypes[13]1655+ mi := &file_ermite_merge_request_proto_msgTypes[14]
1559 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1560 ms.StoreMessageInfo(mi)1657 ms.StoreMessageInfo(mi)
1561 }1658 }
@@ -1567,7 +1664,7 @@ func (x *EditCommentResponse) String() string {
1567 func (*EditCommentResponse) ProtoMessage() {}1664 func (*EditCommentResponse) ProtoMessage() {}
1568 1665
1569 func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {1666 func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
1570- mi := &file_ermite_merge_request_proto_msgTypes[13]1667+ mi := &file_ermite_merge_request_proto_msgTypes[14]
1571 if x != nil {1668 if x != nil {
1572 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1573 if ms.LoadMessageInfo() == nil {1670 if ms.LoadMessageInfo() == nil {
@@ -1580,7 +1677,7 @@ func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
1580 1677
1581 // Deprecated: Use EditCommentResponse.ProtoReflect.Descriptor instead.1678 // Deprecated: Use EditCommentResponse.ProtoReflect.Descriptor instead.
1582 func (*EditCommentResponse) Descriptor() ([]byte, []int) {1679 func (*EditCommentResponse) Descriptor() ([]byte, []int) {
1583- return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}1680+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
1584 }1681 }
1585 1682
1586 func (x *EditCommentResponse) GetComment() *Comment {1683 func (x *EditCommentResponse) GetComment() *Comment {
@@ -1605,7 +1702,7 @@ type DeleteCommentRequest struct {
1605 1702
1606 func (x *DeleteCommentRequest) Reset() {1703 func (x *DeleteCommentRequest) Reset() {
1607 *x = DeleteCommentRequest{}1704 *x = DeleteCommentRequest{}
1608- mi := &file_ermite_merge_request_proto_msgTypes[14]1705+ mi := &file_ermite_merge_request_proto_msgTypes[15]
1609 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1610 ms.StoreMessageInfo(mi)1707 ms.StoreMessageInfo(mi)
1611 }1708 }
@@ -1617,7 +1714,7 @@ func (x *DeleteCommentRequest) String() string {
1617 func (*DeleteCommentRequest) ProtoMessage() {}1714 func (*DeleteCommentRequest) ProtoMessage() {}
1618 1715
1619 func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {1716 func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
1620- mi := &file_ermite_merge_request_proto_msgTypes[14]1717+ mi := &file_ermite_merge_request_proto_msgTypes[15]
1621 if x != nil {1718 if x != nil {
1622 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1719 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1623 if ms.LoadMessageInfo() == nil {1720 if ms.LoadMessageInfo() == nil {
@@ -1630,7 +1727,7 @@ func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
1630 1727
1631 // Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.1728 // Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.
1632 func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {1729 func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {
1633- return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}1730+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
1634 }1731 }
1635 1732
1636 func (x *DeleteCommentRequest) GetRepo() string {1733 func (x *DeleteCommentRequest) GetRepo() string {
@@ -1665,7 +1762,7 @@ type DeleteCommentResponse struct {
1665 1762
1666 func (x *DeleteCommentResponse) Reset() {1763 func (x *DeleteCommentResponse) Reset() {
1667 *x = DeleteCommentResponse{}1764 *x = DeleteCommentResponse{}
1668- mi := &file_ermite_merge_request_proto_msgTypes[15]1765+ mi := &file_ermite_merge_request_proto_msgTypes[16]
1669 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1766 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1670 ms.StoreMessageInfo(mi)1767 ms.StoreMessageInfo(mi)
1671 }1768 }
@@ -1677,7 +1774,7 @@ func (x *DeleteCommentResponse) String() string {
1677 func (*DeleteCommentResponse) ProtoMessage() {}1774 func (*DeleteCommentResponse) ProtoMessage() {}
1678 1775
1679 func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {1776 func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
1680- mi := &file_ermite_merge_request_proto_msgTypes[15]1777+ mi := &file_ermite_merge_request_proto_msgTypes[16]
1681 if x != nil {1778 if x != nil {
1682 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1779 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1683 if ms.LoadMessageInfo() == nil {1780 if ms.LoadMessageInfo() == nil {
@@ -1690,7 +1787,7 @@ func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
1690 1787
1691 // Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.1788 // Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.
1692 func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {1789 func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {
1693- return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}1790+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
1694 }1791 }
1695 1792
1696 func (x *DeleteCommentResponse) GetComment() *Comment {1793 func (x *DeleteCommentResponse) GetComment() *Comment {
@@ -1717,7 +1814,7 @@ type ResolveCommentRequest struct {
1717 1814
1718 func (x *ResolveCommentRequest) Reset() {1815 func (x *ResolveCommentRequest) Reset() {
1719 *x = ResolveCommentRequest{}1816 *x = ResolveCommentRequest{}
1720- mi := &file_ermite_merge_request_proto_msgTypes[16]1817+ mi := &file_ermite_merge_request_proto_msgTypes[17]
1721 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1818 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1722 ms.StoreMessageInfo(mi)1819 ms.StoreMessageInfo(mi)
1723 }1820 }
@@ -1729,7 +1826,7 @@ func (x *ResolveCommentRequest) String() string {
1729 func (*ResolveCommentRequest) ProtoMessage() {}1826 func (*ResolveCommentRequest) ProtoMessage() {}
1730 1827
1731 func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {1828 func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
1732- mi := &file_ermite_merge_request_proto_msgTypes[16]1829+ mi := &file_ermite_merge_request_proto_msgTypes[17]
1733 if x != nil {1830 if x != nil {
1734 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1831 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1735 if ms.LoadMessageInfo() == nil {1832 if ms.LoadMessageInfo() == nil {
@@ -1742,7 +1839,7 @@ func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
1742 1839
1743 // Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.1840 // Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.
1744 func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {1841 func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {
1745- return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}1842+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
1746 }1843 }
1747 1844
1748 func (x *ResolveCommentRequest) GetRepo() string {1845 func (x *ResolveCommentRequest) GetRepo() string {
@@ -1784,7 +1881,7 @@ type ResolveCommentResponse struct {
1784 1881
1785 func (x *ResolveCommentResponse) Reset() {1882 func (x *ResolveCommentResponse) Reset() {
1786 *x = ResolveCommentResponse{}1883 *x = ResolveCommentResponse{}
1787- mi := &file_ermite_merge_request_proto_msgTypes[17]1884+ mi := &file_ermite_merge_request_proto_msgTypes[18]
1788 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1885 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1789 ms.StoreMessageInfo(mi)1886 ms.StoreMessageInfo(mi)
1790 }1887 }
@@ -1796,7 +1893,7 @@ func (x *ResolveCommentResponse) String() string {
1796 func (*ResolveCommentResponse) ProtoMessage() {}1893 func (*ResolveCommentResponse) ProtoMessage() {}
1797 1894
1798 func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {1895 func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
1799- mi := &file_ermite_merge_request_proto_msgTypes[17]1896+ mi := &file_ermite_merge_request_proto_msgTypes[18]
1800 if x != nil {1897 if x != nil {
1801 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1898 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1802 if ms.LoadMessageInfo() == nil {1899 if ms.LoadMessageInfo() == nil {
@@ -1809,7 +1906,7 @@ func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
1809 1906
1810 // Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.1907 // Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.
1811 func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {1908 func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {
1812- return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}1909+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}
1813 }1910 }
1814 1911
1815 func (x *ResolveCommentResponse) GetComment() *Comment {1912 func (x *ResolveCommentResponse) GetComment() *Comment {
@@ -1832,7 +1929,7 @@ type CloseMergeRequestRequest struct {
1832 1929
1833 func (x *CloseMergeRequestRequest) Reset() {1930 func (x *CloseMergeRequestRequest) Reset() {
1834 *x = CloseMergeRequestRequest{}1931 *x = CloseMergeRequestRequest{}
1835- mi := &file_ermite_merge_request_proto_msgTypes[18]1932+ mi := &file_ermite_merge_request_proto_msgTypes[19]
1836 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1933 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1837 ms.StoreMessageInfo(mi)1934 ms.StoreMessageInfo(mi)
1838 }1935 }
@@ -1844,7 +1941,7 @@ func (x *CloseMergeRequestRequest) String() string {
1844 func (*CloseMergeRequestRequest) ProtoMessage() {}1941 func (*CloseMergeRequestRequest) ProtoMessage() {}
1845 1942
1846 func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {1943 func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
1847- mi := &file_ermite_merge_request_proto_msgTypes[18]1944+ mi := &file_ermite_merge_request_proto_msgTypes[19]
1848 if x != nil {1945 if x != nil {
1849 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1850 if ms.LoadMessageInfo() == nil {1947 if ms.LoadMessageInfo() == nil {
@@ -1857,7 +1954,7 @@ func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
1857 1954
1858 // Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.1955 // Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.
1859 func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {1956 func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {
1860- return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}1957+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}
1861 }1958 }
1862 1959
1863 func (x *CloseMergeRequestRequest) GetRepo() string {1960 func (x *CloseMergeRequestRequest) GetRepo() string {
@@ -1885,7 +1982,7 @@ type CloseMergeRequestResponse struct {
1885 1982
1886 func (x *CloseMergeRequestResponse) Reset() {1983 func (x *CloseMergeRequestResponse) Reset() {
1887 *x = CloseMergeRequestResponse{}1984 *x = CloseMergeRequestResponse{}
1888- mi := &file_ermite_merge_request_proto_msgTypes[19]1985+ mi := &file_ermite_merge_request_proto_msgTypes[20]
1889 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1986 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1890 ms.StoreMessageInfo(mi)1987 ms.StoreMessageInfo(mi)
1891 }1988 }
@@ -1897,7 +1994,7 @@ func (x *CloseMergeRequestResponse) String() string {
1897 func (*CloseMergeRequestResponse) ProtoMessage() {}1994 func (*CloseMergeRequestResponse) ProtoMessage() {}
1898 1995
1899 func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {1996 func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
1900- mi := &file_ermite_merge_request_proto_msgTypes[19]1997+ mi := &file_ermite_merge_request_proto_msgTypes[20]
1901 if x != nil {1998 if x != nil {
1902 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1999 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1903 if ms.LoadMessageInfo() == nil {2000 if ms.LoadMessageInfo() == nil {
@@ -1910,7 +2007,7 @@ func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
1910 2007
1911 // Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.2008 // Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.
1912 func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {2009 func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {
1913- return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}2010+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}
1914 }2011 }
1915 2012
1916 func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {2013 func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -1946,7 +2043,7 @@ type MergeMergeRequestRequest struct {
1946 2043
1947 func (x *MergeMergeRequestRequest) Reset() {2044 func (x *MergeMergeRequestRequest) Reset() {
1948 *x = MergeMergeRequestRequest{}2045 *x = MergeMergeRequestRequest{}
1949- mi := &file_ermite_merge_request_proto_msgTypes[20]2046+ mi := &file_ermite_merge_request_proto_msgTypes[21]
1950 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2047 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1951 ms.StoreMessageInfo(mi)2048 ms.StoreMessageInfo(mi)
1952 }2049 }
@@ -1958,7 +2055,7 @@ func (x *MergeMergeRequestRequest) String() string {
1958 func (*MergeMergeRequestRequest) ProtoMessage() {}2055 func (*MergeMergeRequestRequest) ProtoMessage() {}
1959 2056
1960 func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {2057 func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
1961- mi := &file_ermite_merge_request_proto_msgTypes[20]2058+ mi := &file_ermite_merge_request_proto_msgTypes[21]
1962 if x != nil {2059 if x != nil {
1963 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2060 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1964 if ms.LoadMessageInfo() == nil {2061 if ms.LoadMessageInfo() == nil {
@@ -1971,7 +2068,7 @@ func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
1971 2068
1972 // Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.2069 // Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.
1973 func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {2070 func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {
1974- return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}2071+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}
1975 }2072 }
1976 2073
1977 func (x *MergeMergeRequestRequest) GetRepo() string {2074 func (x *MergeMergeRequestRequest) GetRepo() string {
@@ -2028,7 +2125,7 @@ type MergeMergeRequestResponse struct {
2028 2125
2029 func (x *MergeMergeRequestResponse) Reset() {2126 func (x *MergeMergeRequestResponse) Reset() {
2030 *x = MergeMergeRequestResponse{}2127 *x = MergeMergeRequestResponse{}
2031- mi := &file_ermite_merge_request_proto_msgTypes[21]2128+ mi := &file_ermite_merge_request_proto_msgTypes[22]
2032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2129 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2033 ms.StoreMessageInfo(mi)2130 ms.StoreMessageInfo(mi)
2034 }2131 }
@@ -2040,7 +2137,7 @@ func (x *MergeMergeRequestResponse) String() string {
2040 func (*MergeMergeRequestResponse) ProtoMessage() {}2137 func (*MergeMergeRequestResponse) ProtoMessage() {}
2041 2138
2042 func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {2139 func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
2043- mi := &file_ermite_merge_request_proto_msgTypes[21]2140+ mi := &file_ermite_merge_request_proto_msgTypes[22]
2044 if x != nil {2141 if x != nil {
2045 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2142 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2046 if ms.LoadMessageInfo() == nil {2143 if ms.LoadMessageInfo() == nil {
@@ -2053,7 +2150,7 @@ func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
2053 2150
2054 // Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.2151 // Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.
2055 func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {2152 func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {
2056- return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}2153+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}
2057 }2154 }
2058 2155
2059 func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {2156 func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {
@@ -2070,6 +2167,218 @@ func (x *MergeMergeRequestResponse) GetSourceBranchDeleted() bool {
2070 return false2167 return false
2071 }2168 }
2072 2169
2170+// EnableAutoMergeRequest describes the auto-merge to enable.
2171+type EnableAutoMergeRequest struct {
2172+ state protoimpl.MessageState `protogen:"open.v1"`
2173+ // Repo is the repository name.
2174+ Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2175+ // Number is the merge request number.
2176+ Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2177+ // Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
2178+ // must be in RepoSettings.allowed_merge_modes of the repository.
2179+ Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
2180+ unknownFields protoimpl.UnknownFields
2181+ sizeCache protoimpl.SizeCache
2182+}
2183+
2184+func (x *EnableAutoMergeRequest) Reset() {
2185+ *x = EnableAutoMergeRequest{}
2186+ mi := &file_ermite_merge_request_proto_msgTypes[23]
2187+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2188+ ms.StoreMessageInfo(mi)
2189+}
2190+
2191+func (x *EnableAutoMergeRequest) String() string {
2192+ return protoimpl.X.MessageStringOf(x)
2193+}
2194+
2195+func (*EnableAutoMergeRequest) ProtoMessage() {}
2196+
2197+func (x *EnableAutoMergeRequest) ProtoReflect() protoreflect.Message {
2198+ mi := &file_ermite_merge_request_proto_msgTypes[23]
2199+ if x != nil {
2200+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2201+ if ms.LoadMessageInfo() == nil {
2202+ ms.StoreMessageInfo(mi)
2203+ }
2204+ return ms
2205+ }
2206+ return mi.MessageOf(x)
2207+}
2208+
2209+// Deprecated: Use EnableAutoMergeRequest.ProtoReflect.Descriptor instead.
2210+func (*EnableAutoMergeRequest) Descriptor() ([]byte, []int) {
2211+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{23}
2212+}
2213+
2214+func (x *EnableAutoMergeRequest) GetRepo() string {
2215+ if x != nil {
2216+ return x.Repo
2217+ }
2218+ return ""
2219+}
2220+
2221+func (x *EnableAutoMergeRequest) GetNumber() int64 {
2222+ if x != nil {
2223+ return x.Number
2224+ }
2225+ return 0
2226+}
2227+
2228+func (x *EnableAutoMergeRequest) GetMode() MergeMode {
2229+ if x != nil {
2230+ return x.Mode
2231+ }
2232+ return MergeMode_MERGE_MODE_UNSPECIFIED
2233+}
2234+
2235+// EnableAutoMergeResponse holds the merge request with auto-merge enabled.
2236+type EnableAutoMergeResponse struct {
2237+ state protoimpl.MessageState `protogen:"open.v1"`
2238+ // MergeRequest is the merge request, with auto_merge set.
2239+ MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2240+ unknownFields protoimpl.UnknownFields
2241+ sizeCache protoimpl.SizeCache
2242+}
2243+
2244+func (x *EnableAutoMergeResponse) Reset() {
2245+ *x = EnableAutoMergeResponse{}
2246+ mi := &file_ermite_merge_request_proto_msgTypes[24]
2247+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2248+ ms.StoreMessageInfo(mi)
2249+}
2250+
2251+func (x *EnableAutoMergeResponse) String() string {
2252+ return protoimpl.X.MessageStringOf(x)
2253+}
2254+
2255+func (*EnableAutoMergeResponse) ProtoMessage() {}
2256+
2257+func (x *EnableAutoMergeResponse) ProtoReflect() protoreflect.Message {
2258+ mi := &file_ermite_merge_request_proto_msgTypes[24]
2259+ if x != nil {
2260+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2261+ if ms.LoadMessageInfo() == nil {
2262+ ms.StoreMessageInfo(mi)
2263+ }
2264+ return ms
2265+ }
2266+ return mi.MessageOf(x)
2267+}
2268+
2269+// Deprecated: Use EnableAutoMergeResponse.ProtoReflect.Descriptor instead.
2270+func (*EnableAutoMergeResponse) Descriptor() ([]byte, []int) {
2271+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{24}
2272+}
2273+
2274+func (x *EnableAutoMergeResponse) GetMergeRequest() *MergeRequest {
2275+ if x != nil {
2276+ return x.MergeRequest
2277+ }
2278+ return nil
2279+}
2280+
2281+// CancelAutoMergeRequest names the merge request whose auto-merge to cancel.
2282+type CancelAutoMergeRequest struct {
2283+ state protoimpl.MessageState `protogen:"open.v1"`
2284+ // Repo is the repository name.
2285+ Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2286+ // Number is the merge request number.
2287+ Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2288+ unknownFields protoimpl.UnknownFields
2289+ sizeCache protoimpl.SizeCache
2290+}
2291+
2292+func (x *CancelAutoMergeRequest) Reset() {
2293+ *x = CancelAutoMergeRequest{}
2294+ mi := &file_ermite_merge_request_proto_msgTypes[25]
2295+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2296+ ms.StoreMessageInfo(mi)
2297+}
2298+
2299+func (x *CancelAutoMergeRequest) String() string {
2300+ return protoimpl.X.MessageStringOf(x)
2301+}
2302+
2303+func (*CancelAutoMergeRequest) ProtoMessage() {}
2304+
2305+func (x *CancelAutoMergeRequest) ProtoReflect() protoreflect.Message {
2306+ mi := &file_ermite_merge_request_proto_msgTypes[25]
2307+ if x != nil {
2308+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2309+ if ms.LoadMessageInfo() == nil {
2310+ ms.StoreMessageInfo(mi)
2311+ }
2312+ return ms
2313+ }
2314+ return mi.MessageOf(x)
2315+}
2316+
2317+// Deprecated: Use CancelAutoMergeRequest.ProtoReflect.Descriptor instead.
2318+func (*CancelAutoMergeRequest) Descriptor() ([]byte, []int) {
2319+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{25}
2320+}
2321+
2322+func (x *CancelAutoMergeRequest) GetRepo() string {
2323+ if x != nil {
2324+ return x.Repo
2325+ }
2326+ return ""
2327+}
2328+
2329+func (x *CancelAutoMergeRequest) GetNumber() int64 {
2330+ if x != nil {
2331+ return x.Number
2332+ }
2333+ return 0
2334+}
2335+
2336+// CancelAutoMergeResponse holds the merge request after the cancellation.
2337+type CancelAutoMergeResponse struct {
2338+ state protoimpl.MessageState `protogen:"open.v1"`
2339+ // MergeRequest is the merge request, with auto_merge unset.
2340+ MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2341+ unknownFields protoimpl.UnknownFields
2342+ sizeCache protoimpl.SizeCache
2343+}
2344+
2345+func (x *CancelAutoMergeResponse) Reset() {
2346+ *x = CancelAutoMergeResponse{}
2347+ mi := &file_ermite_merge_request_proto_msgTypes[26]
2348+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2349+ ms.StoreMessageInfo(mi)
2350+}
2351+
2352+func (x *CancelAutoMergeResponse) String() string {
2353+ return protoimpl.X.MessageStringOf(x)
2354+}
2355+
2356+func (*CancelAutoMergeResponse) ProtoMessage() {}
2357+
2358+func (x *CancelAutoMergeResponse) ProtoReflect() protoreflect.Message {
2359+ mi := &file_ermite_merge_request_proto_msgTypes[26]
2360+ if x != nil {
2361+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2362+ if ms.LoadMessageInfo() == nil {
2363+ ms.StoreMessageInfo(mi)
2364+ }
2365+ return ms
2366+ }
2367+ return mi.MessageOf(x)
2368+}
2369+
2370+// Deprecated: Use CancelAutoMergeResponse.ProtoReflect.Descriptor instead.
2371+func (*CancelAutoMergeResponse) Descriptor() ([]byte, []int) {
2372+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{26}
2373+}
2374+
2375+func (x *CancelAutoMergeResponse) GetMergeRequest() *MergeRequest {
2376+ if x != nil {
2377+ return x.MergeRequest
2378+ }
2379+ return nil
2380+}
2381+
2073 // MarkReadRequest records a read position.2382 // MarkReadRequest records a read position.
2074 type MarkReadRequest struct {2383 type MarkReadRequest struct {
2075 state protoimpl.MessageState `protogen:"open.v1"`2384 state protoimpl.MessageState `protogen:"open.v1"`
@@ -2087,7 +2396,7 @@ type MarkReadRequest struct {
2087 2396
2088 func (x *MarkReadRequest) Reset() {2397 func (x *MarkReadRequest) Reset() {
2089 *x = MarkReadRequest{}2398 *x = MarkReadRequest{}
2090- mi := &file_ermite_merge_request_proto_msgTypes[22]2399+ mi := &file_ermite_merge_request_proto_msgTypes[27]
2091 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2400 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2092 ms.StoreMessageInfo(mi)2401 ms.StoreMessageInfo(mi)
2093 }2402 }
@@ -2099,7 +2408,7 @@ func (x *MarkReadRequest) String() string {
2099 func (*MarkReadRequest) ProtoMessage() {}2408 func (*MarkReadRequest) ProtoMessage() {}
2100 2409
2101 func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {2410 func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
2102- mi := &file_ermite_merge_request_proto_msgTypes[22]2411+ mi := &file_ermite_merge_request_proto_msgTypes[27]
2103 if x != nil {2412 if x != nil {
2104 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2413 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2105 if ms.LoadMessageInfo() == nil {2414 if ms.LoadMessageInfo() == nil {
@@ -2112,7 +2421,7 @@ func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
2112 2421
2113 // Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.2422 // Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.
2114 func (*MarkReadRequest) Descriptor() ([]byte, []int) {2423 func (*MarkReadRequest) Descriptor() ([]byte, []int) {
2115- return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}2424+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{27}
2116 }2425 }
2117 2426
2118 func (x *MarkReadRequest) GetRepo() string {2427 func (x *MarkReadRequest) GetRepo() string {
@@ -2145,7 +2454,7 @@ type MarkReadResponse struct {
2145 2454
2146 func (x *MarkReadResponse) Reset() {2455 func (x *MarkReadResponse) Reset() {
2147 *x = MarkReadResponse{}2456 *x = MarkReadResponse{}
2148- mi := &file_ermite_merge_request_proto_msgTypes[23]2457+ mi := &file_ermite_merge_request_proto_msgTypes[28]
2149 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2458 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2150 ms.StoreMessageInfo(mi)2459 ms.StoreMessageInfo(mi)
2151 }2460 }
@@ -2157,7 +2466,7 @@ func (x *MarkReadResponse) String() string {
2157 func (*MarkReadResponse) ProtoMessage() {}2466 func (*MarkReadResponse) ProtoMessage() {}
2158 2467
2159 func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {2468 func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
2160- mi := &file_ermite_merge_request_proto_msgTypes[23]2469+ mi := &file_ermite_merge_request_proto_msgTypes[28]
2161 if x != nil {2470 if x != nil {
2162 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2163 if ms.LoadMessageInfo() == nil {2472 if ms.LoadMessageInfo() == nil {
@@ -2170,7 +2479,7 @@ func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
2170 2479
2171 // Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.2480 // Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.
2172 func (*MarkReadResponse) Descriptor() ([]byte, []int) {2481 func (*MarkReadResponse) Descriptor() ([]byte, []int) {
2173- return file_ermite_merge_request_proto_rawDescGZIP(), []int{23}2482+ return file_ermite_merge_request_proto_rawDescGZIP(), []int{28}
2174 }2483 }
2175 2484
2176 var File_ermite_merge_request_proto protoreflect.FileDescriptor2485 var File_ermite_merge_request_proto protoreflect.FileDescriptor
@@ -2187,7 +2496,14 @@ const file_ermite_merge_request_proto_rawDesc = "" +
2187 "\x0econflict_paths\x18\x06 \x03(\tR\rconflictPaths\x128\n" +2496 "\x0econflict_paths\x18\x06 \x03(\tR\rconflictPaths\x128\n" +
2188 "\x18conflict_paths_truncated\x18\a \x01(\bR\x16conflictPathsTruncated\x129\n" +2497 "\x18conflict_paths_truncated\x18\a \x01(\bR\x16conflictPathsTruncated\x129\n" +
2189 "\n" +2498 "\n" +
2190- "checked_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\xaa\x04\n" +2499+ "checked_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\xa5\x01\n" +
2500+ "\tAutoMerge\x12%\n" +
2501+ "\x04mode\x18\x01 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
2502+ "\ahead_id\x18\x02 \x01(\tR\x06headId\x12\x1d\n" +
2503+ "\n" +
2504+ "enabled_by\x18\x03 \x01(\tR\tenabledBy\x129\n" +
2505+ "\n" +
2506+ "enabled_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tenabledAt\"\xfd\x04\n" +
2191 "\fMergeRequest\x12\x12\n" +2507 "\fMergeRequest\x12\x12\n" +
2192 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +2508 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2193 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +2509 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
@@ -2206,7 +2522,11 @@ const file_ermite_merge_request_proto_rawDesc = "" +
2206 "\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +2522 "\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +
2207 "\n" +2523 "\n" +
2208 "merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\x128\n" +2524 "merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\x128\n" +
2209- "\fmergeability\x18\x0e \x01(\v2\x14.ermite.MergeabilityR\fmergeability\"\xbf\x03\n" +2525+ "\fmergeability\x18\x0e \x01(\v2\x14.ermite.MergeabilityR\fmergeability\x120\n" +
2526+ "\n" +
2527+ "auto_merge\x18\x0f \x01(\v2\x11.ermite.AutoMergeR\tautoMerge\x12\x1f\n" +
2528+ "\vauto_merged\x18\x10 \x01(\bR\n" +
2529+ "autoMerged\"\xbf\x03\n" +
2210 "\aComment\x12\x0e\n" +2530 "\aComment\x12\x0e\n" +
2211 "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +2531 "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
2212 "\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +2532 "\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
@@ -2318,7 +2638,18 @@ const file_ermite_merge_request_proto_rawDesc = "" +
2318 "\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\"\x8a\x01\n" +2638 "\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\"\x8a\x01\n" +
2319 "\x19MergeMergeRequestResponse\x129\n" +2639 "\x19MergeMergeRequestResponse\x129\n" +
2320 "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +2640 "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +
2321- "\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"V\n" +2641+ "\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"k\n" +
2642+ "\x16EnableAutoMergeRequest\x12\x12\n" +
2643+ "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2644+ "\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
2645+ "\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\"T\n" +
2646+ "\x17EnableAutoMergeResponse\x129\n" +
2647+ "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"D\n" +
2648+ "\x16CancelAutoMergeRequest\x12\x12\n" +
2649+ "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2650+ "\x06number\x18\x02 \x01(\x03R\x06number\"T\n" +
2651+ "\x17CancelAutoMergeResponse\x129\n" +
2652+ "\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"V\n" +
2322 "\x0fMarkReadRequest\x12\x12\n" +2653 "\x0fMarkReadRequest\x12\x12\n" +
2323 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +2654 "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2324 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +2655 "\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +
@@ -2342,7 +2673,7 @@ const file_ermite_merge_request_proto_rawDesc = "" +
2342 "\x1bMERGEABILITY_STATE_CHECKING\x10\x01\x12!\n" +2673 "\x1bMERGEABILITY_STATE_CHECKING\x10\x01\x12!\n" +
2343 "\x1dMERGEABILITY_STATE_UP_TO_DATE\x10\x02\x12\x1d\n" +2674 "\x1dMERGEABILITY_STATE_UP_TO_DATE\x10\x02\x12\x1d\n" +
2344 "\x19MERGEABILITY_STATE_BEHIND\x10\x03\x12\x1f\n" +2675 "\x19MERGEABILITY_STATE_BEHIND\x10\x03\x12\x1f\n" +
2345- "\x1bMERGEABILITY_STATE_CONFLICT\x10\x042\xbf\x06\n" +2676+ "\x1bMERGEABILITY_STATE_CONFLICT\x10\x042\xe7\a\n" +
2346 "\x13MergeRequestService\x12[\n" +2677 "\x13MergeRequestService\x12[\n" +
2347 "\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +2678 "\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +
2348 "\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +2679 "\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +
@@ -2353,7 +2684,9 @@ const file_ermite_merge_request_proto_rawDesc = "" +
2353 "\rDeleteComment\x12\x1c.ermite.DeleteCommentRequest\x1a\x1d.ermite.DeleteCommentResponse\x12O\n" +2684 "\rDeleteComment\x12\x1c.ermite.DeleteCommentRequest\x1a\x1d.ermite.DeleteCommentResponse\x12O\n" +
2354 "\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +2685 "\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +
2355 "\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12X\n" +2686 "\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12X\n" +
2356- "\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12=\n" +2687+ "\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12R\n" +
2688+ "\x0fEnableAutoMerge\x12\x1e.ermite.EnableAutoMergeRequest\x1a\x1f.ermite.EnableAutoMergeResponse\x12R\n" +
2689+ "\x0fCancelAutoMerge\x12\x1e.ermite.CancelAutoMergeRequest\x1a\x1f.ermite.CancelAutoMergeResponse\x12=\n" +
2357 "\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +2690 "\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +
2358 "\n" +2691 "\n" +
2359 "com.ermiteB\x11MergeRequestProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"2692 "com.ermiteB\x11MergeRequestProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
@@ -2371,99 +2704,114 @@ func file_ermite_merge_request_proto_rawDescGZIP() []byte {
2371 }2704 }
2372 2705
2373 var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 4)2706 var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
2374-var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 24)2707+var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
2375 var file_ermite_merge_request_proto_goTypes = []any{2708 var file_ermite_merge_request_proto_goTypes = []any{
2376 (MergeRequestState)(0), // 0: ermite.MergeRequestState2709 (MergeRequestState)(0), // 0: ermite.MergeRequestState
2377 (DiffSide)(0), // 1: ermite.DiffSide2710 (DiffSide)(0), // 1: ermite.DiffSide
2378 (Verdict)(0), // 2: ermite.Verdict2711 (Verdict)(0), // 2: ermite.Verdict
2379 (MergeabilityState)(0), // 3: ermite.MergeabilityState2712 (MergeabilityState)(0), // 3: ermite.MergeabilityState
2380 (*Mergeability)(nil), // 4: ermite.Mergeability2713 (*Mergeability)(nil), // 4: ermite.Mergeability
2381- (*MergeRequest)(nil), // 5: ermite.MergeRequest2714+ (*AutoMerge)(nil), // 5: ermite.AutoMerge
2382- (*Comment)(nil), // 6: ermite.Comment2715+ (*MergeRequest)(nil), // 6: ermite.MergeRequest
2383- (*AuthorVerdict)(nil), // 7: ermite.AuthorVerdict2716+ (*Comment)(nil), // 7: ermite.Comment
2384- (*CreateMergeRequestRequest)(nil), // 8: ermite.CreateMergeRequestRequest2717+ (*AuthorVerdict)(nil), // 8: ermite.AuthorVerdict
2385- (*CreateMergeRequestResponse)(nil), // 9: ermite.CreateMergeRequestResponse2718+ (*CreateMergeRequestRequest)(nil), // 9: ermite.CreateMergeRequestRequest
2386- (*ListMergeRequestsRequest)(nil), // 10: ermite.ListMergeRequestsRequest2719+ (*CreateMergeRequestResponse)(nil), // 10: ermite.CreateMergeRequestResponse
2387- (*ListMergeRequestsResponse)(nil), // 11: ermite.ListMergeRequestsResponse2720+ (*ListMergeRequestsRequest)(nil), // 11: ermite.ListMergeRequestsRequest
2388- (*GetMergeRequestRequest)(nil), // 12: ermite.GetMergeRequestRequest2721+ (*ListMergeRequestsResponse)(nil), // 12: ermite.ListMergeRequestsResponse
2389- (*GetMergeRequestResponse)(nil), // 13: ermite.GetMergeRequestResponse2722+ (*GetMergeRequestRequest)(nil), // 13: ermite.GetMergeRequestRequest
2390- (*AddCommentRequest)(nil), // 14: ermite.AddCommentRequest2723+ (*GetMergeRequestResponse)(nil), // 14: ermite.GetMergeRequestResponse
2391- (*AddCommentResponse)(nil), // 15: ermite.AddCommentResponse2724+ (*AddCommentRequest)(nil), // 15: ermite.AddCommentRequest
2392- (*EditCommentRequest)(nil), // 16: ermite.EditCommentRequest2725+ (*AddCommentResponse)(nil), // 16: ermite.AddCommentResponse
2393- (*EditCommentResponse)(nil), // 17: ermite.EditCommentResponse2726+ (*EditCommentRequest)(nil), // 17: ermite.EditCommentRequest
2394- (*DeleteCommentRequest)(nil), // 18: ermite.DeleteCommentRequest2727+ (*EditCommentResponse)(nil), // 18: ermite.EditCommentResponse
2395- (*DeleteCommentResponse)(nil), // 19: ermite.DeleteCommentResponse2728+ (*DeleteCommentRequest)(nil), // 19: ermite.DeleteCommentRequest
2396- (*ResolveCommentRequest)(nil), // 20: ermite.ResolveCommentRequest2729+ (*DeleteCommentResponse)(nil), // 20: ermite.DeleteCommentResponse
2397- (*ResolveCommentResponse)(nil), // 21: ermite.ResolveCommentResponse2730+ (*ResolveCommentRequest)(nil), // 21: ermite.ResolveCommentRequest
2398- (*CloseMergeRequestRequest)(nil), // 22: ermite.CloseMergeRequestRequest2731+ (*ResolveCommentResponse)(nil), // 22: ermite.ResolveCommentResponse
2399- (*CloseMergeRequestResponse)(nil), // 23: ermite.CloseMergeRequestResponse2732+ (*CloseMergeRequestRequest)(nil), // 23: ermite.CloseMergeRequestRequest
2400- (*MergeMergeRequestRequest)(nil), // 24: ermite.MergeMergeRequestRequest2733+ (*CloseMergeRequestResponse)(nil), // 24: ermite.CloseMergeRequestResponse
2401- (*MergeMergeRequestResponse)(nil), // 25: ermite.MergeMergeRequestResponse2734+ (*MergeMergeRequestRequest)(nil), // 25: ermite.MergeMergeRequestRequest
2402- (*MarkReadRequest)(nil), // 26: ermite.MarkReadRequest2735+ (*MergeMergeRequestResponse)(nil), // 26: ermite.MergeMergeRequestResponse
2403- (*MarkReadResponse)(nil), // 27: ermite.MarkReadResponse2736+ (*EnableAutoMergeRequest)(nil), // 27: ermite.EnableAutoMergeRequest
2404- (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp2737+ (*EnableAutoMergeResponse)(nil), // 28: ermite.EnableAutoMergeResponse
2405- (MergeMode)(0), // 29: ermite.MergeMode2738+ (*CancelAutoMergeRequest)(nil), // 29: ermite.CancelAutoMergeRequest
2406- (*Commit)(nil), // 30: ermite.Commit2739+ (*CancelAutoMergeResponse)(nil), // 30: ermite.CancelAutoMergeResponse
2407- (*DiffStats)(nil), // 31: ermite.DiffStats2740+ (*MarkReadRequest)(nil), // 31: ermite.MarkReadRequest
2408- (*Diff)(nil), // 32: ermite.Diff2741+ (*MarkReadResponse)(nil), // 32: ermite.MarkReadResponse
2742+ (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp
2743+ (MergeMode)(0), // 34: ermite.MergeMode
2744+ (*Commit)(nil), // 35: ermite.Commit
2745+ (*DiffStats)(nil), // 36: ermite.DiffStats
2746+ (*Diff)(nil), // 37: ermite.Diff
2409 }2747 }
2410 var file_ermite_merge_request_proto_depIdxs = []int32{2748 var file_ermite_merge_request_proto_depIdxs = []int32{
2411 3, // 0: ermite.Mergeability.state:type_name -> ermite.MergeabilityState2749 3, // 0: ermite.Mergeability.state:type_name -> ermite.MergeabilityState
2412- 28, // 1: ermite.Mergeability.checked_at:type_name -> google.protobuf.Timestamp2750+ 33, // 1: ermite.Mergeability.checked_at:type_name -> google.protobuf.Timestamp
2413- 0, // 2: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState2751+ 34, // 2: ermite.AutoMerge.mode:type_name -> ermite.MergeMode
2414- 28, // 3: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp2752+ 33, // 3: ermite.AutoMerge.enabled_at:type_name -> google.protobuf.Timestamp
2415- 28, // 4: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp2753+ 0, // 4: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
2416- 29, // 5: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode2754+ 33, // 5: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
2417- 4, // 6: ermite.MergeRequest.mergeability:type_name -> ermite.Mergeability2755+ 33, // 6: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
2418- 1, // 7: ermite.Comment.side:type_name -> ermite.DiffSide2756+ 34, // 7: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
2419- 28, // 8: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp2757+ 4, // 8: ermite.MergeRequest.mergeability:type_name -> ermite.Mergeability
2420- 2, // 9: ermite.Comment.verdict:type_name -> ermite.Verdict2758+ 5, // 9: ermite.MergeRequest.auto_merge:type_name -> ermite.AutoMerge
2421- 28, // 10: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp2759+ 1, // 10: ermite.Comment.side:type_name -> ermite.DiffSide
2422- 2, // 11: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict2760+ 33, // 11: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
2423- 28, // 12: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp2761+ 2, // 12: ermite.Comment.verdict:type_name -> ermite.Verdict
2424- 5, // 13: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest2762+ 33, // 13: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp
2425- 0, // 14: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState2763+ 2, // 14: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict
2426- 5, // 15: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest2764+ 33, // 15: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp
2427- 5, // 16: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest2765+ 6, // 16: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2428- 30, // 17: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit2766+ 0, // 17: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
2429- 31, // 18: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats2767+ 6, // 18: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
2430- 32, // 19: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff2768+ 6, // 19: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2431- 6, // 20: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment2769+ 35, // 20: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
2432- 7, // 21: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict2770+ 36, // 21: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
2433- 1, // 22: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide2771+ 37, // 22: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
2434- 2, // 23: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict2772+ 7, // 23: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
2435- 6, // 24: ermite.AddCommentResponse.comment:type_name -> ermite.Comment2773+ 8, // 24: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict
2436- 6, // 25: ermite.EditCommentResponse.comment:type_name -> ermite.Comment2774+ 1, // 25: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
2437- 6, // 26: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment2775+ 2, // 26: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict
2438- 6, // 27: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment2776+ 7, // 27: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
2439- 5, // 28: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest2777+ 7, // 28: ermite.EditCommentResponse.comment:type_name -> ermite.Comment
2440- 29, // 29: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode2778+ 7, // 29: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment
2441- 5, // 30: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest2779+ 7, // 30: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
2442- 8, // 31: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest2780+ 6, // 31: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2443- 10, // 32: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest2781+ 34, // 32: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
2444- 12, // 33: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest2782+ 6, // 33: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2445- 14, // 34: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest2783+ 34, // 34: ermite.EnableAutoMergeRequest.mode:type_name -> ermite.MergeMode
2446- 16, // 35: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest2784+ 6, // 35: ermite.EnableAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
2447- 18, // 36: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest2785+ 6, // 36: ermite.CancelAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
2448- 20, // 37: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest2786+ 9, // 37: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
2449- 22, // 38: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest2787+ 11, // 38: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
2450- 24, // 39: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest2788+ 13, // 39: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
2451- 26, // 40: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest2789+ 15, // 40: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
2452- 9, // 41: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse2790+ 17, // 41: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest
2453- 11, // 42: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse2791+ 19, // 42: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest
2454- 13, // 43: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse2792+ 21, // 43: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
2455- 15, // 44: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse2793+ 23, // 44: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
2456- 17, // 45: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse2794+ 25, // 45: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
2457- 19, // 46: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse2795+ 27, // 46: ermite.MergeRequestService.EnableAutoMerge:input_type -> ermite.EnableAutoMergeRequest
2458- 21, // 47: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse2796+ 29, // 47: ermite.MergeRequestService.CancelAutoMerge:input_type -> ermite.CancelAutoMergeRequest
2459- 23, // 48: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse2797+ 31, // 48: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
2460- 25, // 49: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse2798+ 10, // 49: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
2461- 27, // 50: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse2799+ 12, // 50: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
2462- 41, // [41:51] is the sub-list for method output_type2800+ 14, // 51: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
2463- 31, // [31:41] is the sub-list for method input_type2801+ 16, // 52: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
2464- 31, // [31:31] is the sub-list for extension type_name2802+ 18, // 53: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse
2465- 31, // [31:31] is the sub-list for extension extendee2803+ 20, // 54: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse
2466- 0, // [0:31] is the sub-list for field type_name2804+ 22, // 55: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
2805+ 24, // 56: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
2806+ 26, // 57: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
2807+ 28, // 58: ermite.MergeRequestService.EnableAutoMerge:output_type -> ermite.EnableAutoMergeResponse
2808+ 30, // 59: ermite.MergeRequestService.CancelAutoMerge:output_type -> ermite.CancelAutoMergeResponse
2809+ 32, // 60: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
2810+ 49, // [49:61] is the sub-list for method output_type
2811+ 37, // [37:49] is the sub-list for method input_type
2812+ 37, // [37:37] is the sub-list for extension type_name
2813+ 37, // [37:37] is the sub-list for extension extendee
2814+ 0, // [0:37] is the sub-list for field type_name
2467 }2815 }
2468 2816
2469 func init() { file_ermite_merge_request_proto_init() }2817 func init() { file_ermite_merge_request_proto_init() }
@@ -2479,7 +2827,7 @@ func file_ermite_merge_request_proto_init() {
2479 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),2827 GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2480 RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),2828 RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),
2481 NumEnums: 4,2829 NumEnums: 4,
2482- NumMessages: 24,2830+ NumMessages: 29,
2483 NumExtensions: 0,2831 NumExtensions: 0,
2484 NumServices: 1,2832 NumServices: 1,
2485 },2833 },
M gen/ermite/repo.pb.go +20 -8 generated file: collapsed
M gen/ermite/server.pb.go +5 -1 generated file: collapsed
M gen_test.go +2 -0
@@ -54,6 +54,8 @@ func TestProcedures(t *testing.T) {
5454 {ermiteconnect.MergeRequestServiceCloseMergeRequestProcedure, "/ermite.MergeRequestService/CloseMergeRequest"},
5555 {ermiteconnect.MergeRequestServiceMergeMergeRequestProcedure, "/ermite.MergeRequestService/MergeMergeRequest"},
5656 {ermiteconnect.MergeRequestServiceMarkReadProcedure, "/ermite.MergeRequestService/MarkRead"},
57+ {ermiteconnect.MergeRequestServiceEnableAutoMergeProcedure, "/ermite.MergeRequestService/EnableAutoMerge"},
58+ {ermiteconnect.MergeRequestServiceCancelAutoMergeProcedure, "/ermite.MergeRequestService/CancelAutoMerge"},
5759 {ermiteconnect.SessionServiceCreateLoginLinkProcedure, "/ermite.SessionService/CreateLoginLink"},
5860 {ermiteconnect.SessionServiceSignOutEverywhereProcedure, "/ermite.SessionService/SignOutEverywhere"},
5961 {ermiteconnect.ServerServiceGetVersionProcedure, "/ermite.ServerService/GetVersion"},
@@ -54,6 +54,8 @@ func TestProcedures(t *testing.T) {
54 {ermiteconnect.MergeRequestServiceCloseMergeRequestProcedure, "/ermite.MergeRequestService/CloseMergeRequest"},54 {ermiteconnect.MergeRequestServiceCloseMergeRequestProcedure, "/ermite.MergeRequestService/CloseMergeRequest"},
55 {ermiteconnect.MergeRequestServiceMergeMergeRequestProcedure, "/ermite.MergeRequestService/MergeMergeRequest"},55 {ermiteconnect.MergeRequestServiceMergeMergeRequestProcedure, "/ermite.MergeRequestService/MergeMergeRequest"},
56 {ermiteconnect.MergeRequestServiceMarkReadProcedure, "/ermite.MergeRequestService/MarkRead"},56 {ermiteconnect.MergeRequestServiceMarkReadProcedure, "/ermite.MergeRequestService/MarkRead"},
57+ {ermiteconnect.MergeRequestServiceEnableAutoMergeProcedure, "/ermite.MergeRequestService/EnableAutoMerge"},
58+ {ermiteconnect.MergeRequestServiceCancelAutoMergeProcedure, "/ermite.MergeRequestService/CancelAutoMerge"},
57 {ermiteconnect.SessionServiceCreateLoginLinkProcedure, "/ermite.SessionService/CreateLoginLink"},59 {ermiteconnect.SessionServiceCreateLoginLinkProcedure, "/ermite.SessionService/CreateLoginLink"},
58 {ermiteconnect.SessionServiceSignOutEverywhereProcedure, "/ermite.SessionService/SignOutEverywhere"},60 {ermiteconnect.SessionServiceSignOutEverywhereProcedure, "/ermite.SessionService/SignOutEverywhere"},
59 {ermiteconnect.ServerServiceGetVersionProcedure, "/ermite.ServerService/GetVersion"},61 {ermiteconnect.ServerServiceGetVersionProcedure, "/ermite.ServerService/GetVersion"},
M proto/ermite/event.proto +23 -0
@@ -140,6 +140,11 @@ message Event {
140140 MirrorFailed mirror_failed = 23;
141141 // MirrorRecovered: a failing or paused mirror succeeded again.
142142 MirrorRecovered mirror_recovered = 24;
143+ // MergeRequestAutoMergeEnabled: auto-merge was enabled on a merge request.
144+ MergeRequestAutoMergeEnabled merge_request_auto_merge_enabled = 25;
145+ // MergeRequestAutoMergeCancelled: the auto-merge of a merge request was
146+ // cancelled.
147+ MergeRequestAutoMergeCancelled merge_request_auto_merge_cancelled = 26;
143148 }
144149 }
145150
@@ -190,6 +195,24 @@ message MergeRequestOpened {
190195 message MergeRequestMerged {
191196 // MergeRequest is the merge request after the merge.
192197 MergeRequest merge_request = 1;
198+ // Auto is true when the server merged it by auto-merge.
199+ bool auto = 2;
200+}
201+
202+// MergeRequestAutoMergeEnabled reports auto-merge enabled on an open merge
203+// request. It is published again when auto-merge is enabled again.
204+message MergeRequestAutoMergeEnabled {
205+ // MergeRequest is the merge request, with auto_merge set.
206+ MergeRequest merge_request = 1;
207+}
208+
209+// MergeRequestAutoMergeCancelled reports the auto-merge of a merge request
210+// cancelled, by a caller or by the server.
211+message MergeRequestAutoMergeCancelled {
212+ // MergeRequest is the merge request, with auto_merge unset.
213+ MergeRequest merge_request = 1;
214+ // Reason says in one line why it was cancelled. For display only.
215+ string reason = 2;
193216 }
194217
195218 // MergeRequestMergeability reports the mergeability of an open merge request.
@@ -140,6 +140,11 @@ message Event {
140 MirrorFailed mirror_failed = 23;140 MirrorFailed mirror_failed = 23;
141 // MirrorRecovered: a failing or paused mirror succeeded again.141 // MirrorRecovered: a failing or paused mirror succeeded again.
142 MirrorRecovered mirror_recovered = 24;142 MirrorRecovered mirror_recovered = 24;
143+ // MergeRequestAutoMergeEnabled: auto-merge was enabled on a merge request.
144+ MergeRequestAutoMergeEnabled merge_request_auto_merge_enabled = 25;
145+ // MergeRequestAutoMergeCancelled: the auto-merge of a merge request was
146+ // cancelled.
147+ MergeRequestAutoMergeCancelled merge_request_auto_merge_cancelled = 26;
143 }148 }
144 }149 }
145 150
@@ -190,6 +195,24 @@ message MergeRequestOpened {
190 message MergeRequestMerged {195 message MergeRequestMerged {
191 // MergeRequest is the merge request after the merge.196 // MergeRequest is the merge request after the merge.
192 MergeRequest merge_request = 1;197 MergeRequest merge_request = 1;
198+ // Auto is true when the server merged it by auto-merge.
199+ bool auto = 2;
200+}
201+
202+// MergeRequestAutoMergeEnabled reports auto-merge enabled on an open merge
203+// request. It is published again when auto-merge is enabled again.
204+message MergeRequestAutoMergeEnabled {
205+ // MergeRequest is the merge request, with auto_merge set.
206+ MergeRequest merge_request = 1;
207+}
208+
209+// MergeRequestAutoMergeCancelled reports the auto-merge of a merge request
210+// cancelled, by a caller or by the server.
211+message MergeRequestAutoMergeCancelled {
212+ // MergeRequest is the merge request, with auto_merge unset.
213+ MergeRequest merge_request = 1;
214+ // Reason says in one line why it was cancelled. For display only.
215+ string reason = 2;
193 }216 }
194 217
195 // MergeRequestMergeability reports the mergeability of an open merge request.218 // MergeRequestMergeability reports the mergeability of an open merge request.
M proto/ermite/merge_request.proto +74 -0
@@ -88,6 +88,21 @@ message Mergeability {
8888 google.protobuf.Timestamp checked_at = 8;
8989 }
9090
91+// AutoMerge is the pending auto-merge of an open merge request: the server
92+// merges it by itself once its checks pass. Set only by servers with the
93+// "merge_requests.auto_merge" feature.
94+message AutoMerge {
95+ // Mode is the merge mode used. Never MERGE_MODE_UNSPECIFIED.
96+ MergeMode mode = 1;
97+ // HeadId is the head the auto-merge was enabled for. A new head cancels the
98+ // auto-merge.
99+ string head_id = 2;
100+ // EnabledBy names who enabled the auto-merge, like MergeRequest.author.
101+ string enabled_by = 3;
102+ // EnabledAt is when the auto-merge was enabled.
103+ google.protobuf.Timestamp enabled_at = 4;
104+}
105+
91106 // MergeRequest asks to merge one branch of a repository into another branch
92107 // of the same repository. It is about a branch, not about who wrote it.
93108 message MergeRequest {
@@ -138,6 +153,13 @@ message MergeRequest {
138153 // hint: MergeMergeRequest checks again. Set only by servers with the
139154 // "merge_requests.mergeability" feature.
140155 Mergeability mergeability = 14;
156+ // AutoMerge is the pending auto-merge. Set only while the merge request is
157+ // OPEN and auto-merge is enabled; unset once merged or closed. Set only by
158+ // servers with the "merge_requests.auto_merge" feature.
159+ AutoMerge auto_merge = 15;
160+ // AutoMerged is true when the server merged the merge request by auto-merge.
161+ // Always false unless state is MERGED.
162+ bool auto_merged = 16;
141163 }
142164
143165 // Comment is a note on a merge request, either general or attached to a line
@@ -294,6 +316,27 @@ service MergeRequestService {
294316 // failed_precondition (not open). On success the server publishes
295317 // MergeRequestMerged then Pushed for the target branch.
296318 rpc MergeMergeRequest(MergeMergeRequestRequest) returns (MergeMergeRequestResponse);
319+ // EnableAutoMerge asks the server to merge an open merge request by itself
320+ // once at least one check passed on its head, every run created on that head
321+ // is complete, and the merge would be accepted whatever
322+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
323+ // token limited to branches, write access to the target branch
324+ // (permission_denied otherwise). The server records the caller, the mode and
325+ // the current head; it merges as the caller, after resolving the caller
326+ // again, and cancels the auto-merge if the caller can no longer merge, if the
327+ // mode is no longer allowed, if the source branch moves or if the setting is
328+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
329+ // and with failed_precondition if the merge request is not open, is a draft,
330+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
331+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
332+ // Publishes MergeRequestAutoMergeEnabled. Needs the
333+ // "merge_requests.auto_merge" feature.
334+ rpc EnableAutoMerge(EnableAutoMergeRequest) returns (EnableAutoMergeResponse);
335+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
336+ // Needs the mr:merge scope and, for a token limited to branches, write access
337+ // to the target branch. Fails with failed_precondition if auto-merge is not
338+ // enabled. Publishes MergeRequestAutoMergeCancelled.
339+ rpc CancelAutoMerge(CancelAutoMergeRequest) returns (CancelAutoMergeResponse);
297340 // MarkRead records the head the caller has reviewed, for the since_last_read
298341 // option of GetMergeRequest. There is one read position per merge request,
299342 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -539,6 +582,37 @@ message MergeMergeRequestResponse {
539582 bool source_branch_deleted = 2;
540583 }
541584
585+// EnableAutoMergeRequest describes the auto-merge to enable.
586+message EnableAutoMergeRequest {
587+ // Repo is the repository name.
588+ string repo = 1;
589+ // Number is the merge request number.
590+ int64 number = 2;
591+ // Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
592+ // must be in RepoSettings.allowed_merge_modes of the repository.
593+ MergeMode mode = 3;
594+}
595+
596+// EnableAutoMergeResponse holds the merge request with auto-merge enabled.
597+message EnableAutoMergeResponse {
598+ // MergeRequest is the merge request, with auto_merge set.
599+ MergeRequest merge_request = 1;
600+}
601+
602+// CancelAutoMergeRequest names the merge request whose auto-merge to cancel.
603+message CancelAutoMergeRequest {
604+ // Repo is the repository name.
605+ string repo = 1;
606+ // Number is the merge request number.
607+ int64 number = 2;
608+}
609+
610+// CancelAutoMergeResponse holds the merge request after the cancellation.
611+message CancelAutoMergeResponse {
612+ // MergeRequest is the merge request, with auto_merge unset.
613+ MergeRequest merge_request = 1;
614+}
615+
542616 // MarkReadRequest records a read position.
543617 message MarkReadRequest {
544618 // Repo is the repository name.
@@ -88,6 +88,21 @@ message Mergeability {
88 google.protobuf.Timestamp checked_at = 8;88 google.protobuf.Timestamp checked_at = 8;
89 }89 }
90 90
91+// AutoMerge is the pending auto-merge of an open merge request: the server
92+// merges it by itself once its checks pass. Set only by servers with the
93+// "merge_requests.auto_merge" feature.
94+message AutoMerge {
95+ // Mode is the merge mode used. Never MERGE_MODE_UNSPECIFIED.
96+ MergeMode mode = 1;
97+ // HeadId is the head the auto-merge was enabled for. A new head cancels the
98+ // auto-merge.
99+ string head_id = 2;
100+ // EnabledBy names who enabled the auto-merge, like MergeRequest.author.
101+ string enabled_by = 3;
102+ // EnabledAt is when the auto-merge was enabled.
103+ google.protobuf.Timestamp enabled_at = 4;
104+}
105+
91 // MergeRequest asks to merge one branch of a repository into another branch106 // MergeRequest asks to merge one branch of a repository into another branch
92 // of the same repository. It is about a branch, not about who wrote it.107 // of the same repository. It is about a branch, not about who wrote it.
93 message MergeRequest {108 message MergeRequest {
@@ -138,6 +153,13 @@ message MergeRequest {
138 // hint: MergeMergeRequest checks again. Set only by servers with the153 // hint: MergeMergeRequest checks again. Set only by servers with the
139 // "merge_requests.mergeability" feature.154 // "merge_requests.mergeability" feature.
140 Mergeability mergeability = 14;155 Mergeability mergeability = 14;
156+ // AutoMerge is the pending auto-merge. Set only while the merge request is
157+ // OPEN and auto-merge is enabled; unset once merged or closed. Set only by
158+ // servers with the "merge_requests.auto_merge" feature.
159+ AutoMerge auto_merge = 15;
160+ // AutoMerged is true when the server merged the merge request by auto-merge.
161+ // Always false unless state is MERGED.
162+ bool auto_merged = 16;
141 }163 }
142 164
143 // Comment is a note on a merge request, either general or attached to a line165 // Comment is a note on a merge request, either general or attached to a line
@@ -294,6 +316,27 @@ service MergeRequestService {
294 // failed_precondition (not open). On success the server publishes316 // failed_precondition (not open). On success the server publishes
295 // MergeRequestMerged then Pushed for the target branch.317 // MergeRequestMerged then Pushed for the target branch.
296 rpc MergeMergeRequest(MergeMergeRequestRequest) returns (MergeMergeRequestResponse);318 rpc MergeMergeRequest(MergeMergeRequestRequest) returns (MergeMergeRequestResponse);
319+ // EnableAutoMerge asks the server to merge an open merge request by itself
320+ // once at least one check passed on its head, every run created on that head
321+ // is complete, and the merge would be accepted whatever
322+ // RepoSettings.failing_checks_block says. Needs the mr:merge scope and, for a
323+ // token limited to branches, write access to the target branch
324+ // (permission_denied otherwise). The server records the caller, the mode and
325+ // the current head; it merges as the caller, after resolving the caller
326+ // again, and cancels the auto-merge if the caller can no longer merge, if the
327+ // mode is no longer allowed, if the source branch moves or if the setting is
328+ // turned off. Fails with invalid_argument if the mode is not a merge mode,
329+ // and with failed_precondition if the merge request is not open, is a draft,
330+ // RepoSettings.allow_auto_merge is off, the mode is not allowed by
331+ // RepoSettings, or the server has no CI. Enabling again replaces the mode.
332+ // Publishes MergeRequestAutoMergeEnabled. Needs the
333+ // "merge_requests.auto_merge" feature.
334+ rpc EnableAutoMerge(EnableAutoMergeRequest) returns (EnableAutoMergeResponse);
335+ // CancelAutoMerge cancels the pending auto-merge of an open merge request.
336+ // Needs the mr:merge scope and, for a token limited to branches, write access
337+ // to the target branch. Fails with failed_precondition if auto-merge is not
338+ // enabled. Publishes MergeRequestAutoMergeCancelled.
339+ rpc CancelAutoMerge(CancelAutoMergeRequest) returns (CancelAutoMergeResponse);
297 // MarkRead records the head the caller has reviewed, for the since_last_read340 // MarkRead records the head the caller has reviewed, for the since_last_read
298 // option of GetMergeRequest. There is one read position per merge request,341 // option of GetMergeRequest. There is one read position per merge request,
299 // the reviewer's. Needs the mr:write scope. Marking a commit that does not342 // the reviewer's. Needs the mr:write scope. Marking a commit that does not
@@ -539,6 +582,37 @@ message MergeMergeRequestResponse {
539 bool source_branch_deleted = 2;582 bool source_branch_deleted = 2;
540 }583 }
541 584
585+// EnableAutoMergeRequest describes the auto-merge to enable.
586+message EnableAutoMergeRequest {
587+ // Repo is the repository name.
588+ string repo = 1;
589+ // Number is the merge request number.
590+ int64 number = 2;
591+ // Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
592+ // must be in RepoSettings.allowed_merge_modes of the repository.
593+ MergeMode mode = 3;
594+}
595+
596+// EnableAutoMergeResponse holds the merge request with auto-merge enabled.
597+message EnableAutoMergeResponse {
598+ // MergeRequest is the merge request, with auto_merge set.
599+ MergeRequest merge_request = 1;
600+}
601+
602+// CancelAutoMergeRequest names the merge request whose auto-merge to cancel.
603+message CancelAutoMergeRequest {
604+ // Repo is the repository name.
605+ string repo = 1;
606+ // Number is the merge request number.
607+ int64 number = 2;
608+}
609+
610+// CancelAutoMergeResponse holds the merge request after the cancellation.
611+message CancelAutoMergeResponse {
612+ // MergeRequest is the merge request, with auto_merge unset.
613+ MergeRequest merge_request = 1;
614+}
615+
542 // MarkReadRequest records a read position.616 // MarkReadRequest records a read position.
543 message MarkReadRequest {617 message MarkReadRequest {
544 // Repo is the repository name.618 // Repo is the repository name.
M proto/ermite/repo.proto +7 -3
@@ -47,6 +47,10 @@ message RepoSettings {
4747 bool failing_checks_block = 2;
4848 // Issues is the issue participation mode of the repository.
4949 IssuesMode issues = 3;
50+ // AllowAutoMerge says whether auto-merge can be enabled on the merge requests
51+ // of the repository (see MergeRequestService.EnableAutoMerge). It is false by
52+ // default. Set only by servers with the "merge_requests.auto_merge" feature.
53+ bool allow_auto_merge = 4;
5054 }
5155
5256 // Repo is the metadata of a repository. Git-owned state (refs, trees, history)
@@ -166,9 +170,9 @@ message UpdateRepoRequest {
166170 // the call fails with failed_precondition.
167171 string default_branch = 4;
168172 // UpdateMask lists the fields to change: "description", "visibility",
169- // "default_branch", "topics", "settings.allowed_merge_modes" and/or
170- // "settings.failing_checks_block". "settings" stands for both merge settings
171- // paths. It must not be empty unless issues is set. Other paths are
173+ // "default_branch", "topics", "settings.allowed_merge_modes",
174+ // "settings.failing_checks_block" and/or "settings.allow_auto_merge".
175+ // "settings" stands for the three merge settings paths. It must not be empty unless issues is set. Other paths are
172176 // invalid_argument, including "settings.issues" and "issues": the issues
173177 // field is applied outside the mask.
174178 google.protobuf.FieldMask update_mask = 5;
@@ -47,6 +47,10 @@ message RepoSettings {
47 bool failing_checks_block = 2;47 bool failing_checks_block = 2;
48 // Issues is the issue participation mode of the repository.48 // Issues is the issue participation mode of the repository.
49 IssuesMode issues = 3;49 IssuesMode issues = 3;
50+ // AllowAutoMerge says whether auto-merge can be enabled on the merge requests
51+ // of the repository (see MergeRequestService.EnableAutoMerge). It is false by
52+ // default. Set only by servers with the "merge_requests.auto_merge" feature.
53+ bool allow_auto_merge = 4;
50 }54 }
51 55
52 // Repo is the metadata of a repository. Git-owned state (refs, trees, history)56 // Repo is the metadata of a repository. Git-owned state (refs, trees, history)
@@ -166,9 +170,9 @@ message UpdateRepoRequest {
166 // the call fails with failed_precondition.170 // the call fails with failed_precondition.
167 string default_branch = 4;171 string default_branch = 4;
168 // UpdateMask lists the fields to change: "description", "visibility",172 // UpdateMask lists the fields to change: "description", "visibility",
169- // "default_branch", "topics", "settings.allowed_merge_modes" and/or173+ // "default_branch", "topics", "settings.allowed_merge_modes",
170- // "settings.failing_checks_block". "settings" stands for both merge settings174+ // "settings.failing_checks_block" and/or "settings.allow_auto_merge".
171- // paths. It must not be empty unless issues is set. Other paths are175+ // "settings" stands for the three merge settings paths. It must not be empty unless issues is set. Other paths are
172 // invalid_argument, including "settings.issues" and "issues": the issues176 // invalid_argument, including "settings.issues" and "issues": the issues
173 // field is applied outside the mask.177 // field is applied outside the mask.
174 google.protobuf.FieldMask update_mask = 5;178 google.protobuf.FieldMask update_mask = 5;
M proto/ermite/server.proto +5 -1
@@ -60,7 +60,11 @@ message GetVersionResponse {
6060 // and "ci.artifacts" (JobArtifactService and ArtifactService). The merge
6161 // request identifier "merge_requests.mergeability" covers
6262 // MergeRequest.mergeability, the MergeRequestMergeability event and
63- // MERGE_MODE_MERGE_COMMIT.
63+ // MERGE_MODE_MERGE_COMMIT. "merge_requests.auto_merge" covers
64+ // RepoSettings.allow_auto_merge, MergeRequest.auto_merge and auto_merged,
65+ // the EnableAutoMerge and CancelAutoMerge RPCs, the
66+ // MergeRequestAutoMergeEnabled and MergeRequestAutoMergeCancelled events
67+ // and MergeRequestMerged.auto.
6468 repeated string features = 2;
6569 }
6670
@@ -60,7 +60,11 @@ message GetVersionResponse {
60 // and "ci.artifacts" (JobArtifactService and ArtifactService). The merge60 // and "ci.artifacts" (JobArtifactService and ArtifactService). The merge
61 // request identifier "merge_requests.mergeability" covers61 // request identifier "merge_requests.mergeability" covers
62 // MergeRequest.mergeability, the MergeRequestMergeability event and62 // MergeRequest.mergeability, the MergeRequestMergeability event and
63- // MERGE_MODE_MERGE_COMMIT.63+ // MERGE_MODE_MERGE_COMMIT. "merge_requests.auto_merge" covers
64+ // RepoSettings.allow_auto_merge, MergeRequest.auto_merge and auto_merged,
65+ // the EnableAutoMerge and CancelAutoMerge RPCs, the
66+ // MergeRequestAutoMergeEnabled and MergeRequestAutoMergeCancelled events
67+ // and MergeRequestMerged.auto.
64 repeated string features = 2;68 repeated string features = 2;
65 }69 }
66 70

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 18

↑↓ moveenter openesc close