v0.2.0 80c61e3

Dockerfile RawHistoryFolder

1ARG BASE_IMAGE=ubuntu:24.04
2FROM ${BASE_IMAGE}
3
4ENV DEBIAN_FRONTEND=noninteractive \
5    XDG_STATE_HOME=/tmp/vev-state \
6    XDG_RUNTIME_DIR=/tmp/vev-runtime \
7    PATH=/home/test/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
8    TERM=xterm-256color \
9    COLORTERM=truecolor
10
11RUN apt-get update \
12    && apt-get install -y --no-install-recommends ca-certificates openssh-client openssh-server \
13    && rm -rf /var/lib/apt/lists/* \
14    && useradd --create-home --shell /bin/bash test \
15    && usermod --password x test \
16    && install -d -m 0755 /run/sshd /tmp/vev-state /tmp/vev-runtime /home/test/bin \
17    && chmod 0777 /tmp/vev-state /tmp/vev-runtime \
18    && install -d -m 0700 -o test -g test /home/test/.ssh
19
20COPY vev /usr/local/bin/vev.real
21COPY harness /usr/local/bin/remote-picker-harness
22COPY vev-wrapper /usr/local/bin/vev
23COPY id_ed25519.pub /home/test/.ssh/authorized_keys
24
25RUN chown test:test /home/test/.ssh/authorized_keys \
26    && chmod 0600 /home/test/.ssh/authorized_keys \
27    && chmod 0755 /usr/local/bin/vev /usr/local/bin/vev.real /usr/local/bin/remote-picker-harness \
28    && printf '%s\n' \
29        'Host *' \
30        '  IdentityFile /home/test/.ssh/id_ed25519' \
31        '  StrictHostKeyChecking no' \
32        '  UserKnownHostsFile /dev/null' \
33        '  LogLevel ERROR' \
34        > /home/test/.ssh/config \
35    && chown test:test /home/test/.ssh/config \
36    && chmod 0600 /home/test/.ssh/config \
37    && printf '%s\n' \
38        'PermitRootLogin no' \
39        'PasswordAuthentication no' \
40        'KbdInteractiveAuthentication no' \
41        'PubkeyAuthentication yes' \
42        'UsePAM no' \
43        'AllowUsers test' \
44        'PrintMotd no' \
45        > /etc/ssh/sshd_config.d/vev-harness.conf \
46    && ssh-keygen -A
47
48CMD ["/usr/sbin/sshd", "-D", "-e"]

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 12

Tags 11

↑↓ moveenter openesc close