detached 2159ae5

Merge 5e05d65caece9a3677c109ffa343ad00358d4405 into 6d3fb04738056fb79e0d5474ac3bdf2f90fbb138

commit
2159ae58f8035121c7cff6842eba03eb4cb65a48
author
ermite · · 2026-10-19 15:59 UTC
merge of
6d3fb04 + 5e05d65 · diff against the first parent
signature
unsigned
3 files · +7 -5
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` when it changes (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`. 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), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. 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` when it changes (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`. 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), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. Issues share numbers with merge requests |9 | `IssueService` | `CreateIssue`, `ListIssues`, `GetIssue` (comments), `AddIssueComment`, `CloseIssue`, `ReopenIssue`; owner only: `ListPendingIssues`, `ApproveIssue`, `RejectIssue`. Feature `issues`. Issues share numbers with merge requests |
10 | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) |10 | `SessionService` | `CreateLoginLink`, `SignOutEverywhere` (owner only) |
11 | `EventService` | `Watch` (streamed, resumable). Topics `home`, `repo:<name>` and `owner` (owner rights only). Events 17–21: `issue_opened`, `issue_closed`, `issue_reopened`, `issue_commented`, and `issue_submitted` (only on `owner`, no content). 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/event.pb.go +3 -2
@@ -904,8 +904,9 @@ func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest {
904904 }
905905
906906 // MergeRequestMergeability reports the mergeability of an open merge request.
907-// It is published when the state changes, or when a check settles a result
908-// that readers had not seen yet (they saw CHECKING), not on every push.
907+// It is published each time the server settles a result for new tips of the
908+// source or target branch, so the state may be the same as the previous
909+// event's. A push that moves neither branch publishes nothing.
909910 type MergeRequestMergeability struct {
910911 state protoimpl.MessageState `protogen:"open.v1"`
911912 // Repo is the name of the repository.
@@ -904,8 +904,9 @@ func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest {
904 }904 }
905 905
906 // MergeRequestMergeability reports the mergeability of an open merge request.906 // MergeRequestMergeability reports the mergeability of an open merge request.
907-// It is published when the state changes, or when a check settles a result907+// It is published each time the server settles a result for new tips of the
908-// that readers had not seen yet (they saw CHECKING), not on every push.908+// source or target branch, so the state may be the same as the previous
909+// event's. A push that moves neither branch publishes nothing.
909 type MergeRequestMergeability struct {910 type MergeRequestMergeability struct {
910 state protoimpl.MessageState `protogen:"open.v1"`911 state protoimpl.MessageState `protogen:"open.v1"`
911 // Repo is the name of the repository.912 // Repo is the name of the repository.
M proto/ermite/event.proto +3 -2
@@ -188,8 +188,9 @@ message MergeRequestMerged {
188188 }
189189
190190 // MergeRequestMergeability reports the mergeability of an open merge request.
191-// It is published when the state changes, or when a check settles a result
192-// that readers had not seen yet (they saw CHECKING), not on every push.
191+// It is published each time the server settles a result for new tips of the
192+// source or target branch, so the state may be the same as the previous
193+// event's. A push that moves neither branch publishes nothing.
193194 message MergeRequestMergeability {
194195 // Repo is the name of the repository.
195196 string repo = 1;
@@ -188,8 +188,9 @@ message MergeRequestMerged {
188 }188 }
189 189
190 // MergeRequestMergeability reports the mergeability of an open merge request.190 // MergeRequestMergeability reports the mergeability of an open merge request.
191-// It is published when the state changes, or when a check settles a result191+// It is published each time the server settles a result for new tips of the
192-// that readers had not seen yet (they saw CHECKING), not on every push.192+// source or target branch, so the state may be the same as the previous
193+// event's. A push that moves neither branch publishes nothing.
193 message MergeRequestMergeability {194 message MergeRequestMergeability {
194 // Repo is the name of the repository.195 // Repo is the name of the repository.
195 string repo = 1;196 string repo = 1;

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