detached 355c90a

ci(release): publish releases, Flatpak and AUR packages from ermite

GoReleaser publishes to git.bnema.dev from ermite CI and keeps its github.com defaults on the GitHub mirror, which still gets a copy of each release for the current updater (dumber#1). Flatpak and AUR jobs run on ermite only and read release assets from the forge; install.sh, the AUR PKGBUILDs and the docs point to git.bnema.dev.
commit
355c90acdaeb4c6592d2078d5858bff0dbedefbf
author
brice · · 2026-10-22 08:12 UTC
parent
57f21d6
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
checks
10/10
12 files · +62 -54
M .github/workflows/aur.yml +9 -8
@@ -14,7 +14,9 @@ jobs:
1414 publish-aur-git:
1515 name: Publish dumber-browser-git to AUR
1616 runs-on: ubuntu-latest
17+ # AUR packages are published from ermite only (git.bnema.dev).
1718 if: >
19+ github.server_url != 'https://github.com' &&
1820 github.event.workflow_run.name == 'CI' &&
1921 github.event.workflow_run.conclusion == 'success' &&
2022 github.event.workflow_run.head_branch == 'main'
@@ -49,7 +51,7 @@ jobs:
4951 'pkgrel=1' \
5052 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \
5153 "arch=('x86_64')" \
52- 'url="https://github.com/bnema/dumber"' \
54+ 'url="https://git.bnema.dev/dumber"' \
5355 "license=('MIT')" \
5456 "makedepends=('go>=1.27' 'git' 'brotli')" \
5557 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \
@@ -72,7 +74,7 @@ jobs:
7274 ')' \
7375 "provides=('dumber-browser' 'dumber')" \
7476 "conflicts=('dumber-browser' 'dumber-browser-bin')" \
75- 'source=("git+https://github.com/bnema/dumber.git")' \
77+ 'source=("git+https://git.bnema.dev/dumber.git")' \
7678 "sha256sums=('SKIP')" \
7779 '' \
7880 'pkgver() {' \
@@ -116,6 +118,7 @@ jobs:
116118 name: Publish dumber-browser-bin to AUR
117119 runs-on: ubuntu-latest
118120 if: >
121+ github.server_url != 'https://github.com' &&
119122 github.event.workflow_run.name == 'Flatpak' &&
120123 github.event.workflow_run.conclusion == 'success'
121124 concurrency:
@@ -147,19 +150,17 @@ jobs:
147150 - name: Verify release still exists
148151 run: |
149152 TAG="${{ steps.release.outputs.tag }}"
150- if ! gh release view "$TAG" &>/dev/null; then
153+ if ! curl -fsS -o /dev/null "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}"; then
151154 echo "::error::Release $TAG no longer exists. Aborting AUR publish."
152155 exit 1
153156 fi
154157 echo "Release $TAG verified, proceeding with AUR publish."
155- env:
156- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
157158
158159 - name: Download checksums
159160 id: checksum
160161 run: |
161162 TAG="${{ steps.release.outputs.tag }}"
162- curl -sL "https://github.com/bnema/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt
163+ curl -fsSL "${GITHUB_SERVER_URL}/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt
163164 cat checksums.txt
164165 SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1)
165166 if [ -z "$SHA256" ]; then
@@ -184,7 +185,7 @@ jobs:
184185 'pkgrel=1' \
185186 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \
186187 "arch=('x86_64')" \
187- 'url="https://github.com/bnema/dumber"' \
188+ 'url="https://git.bnema.dev/dumber"' \
188189 "license=('MIT')" \
189190 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \
190191 'optdepends=(' \
@@ -206,7 +207,7 @@ jobs:
206207 ')' \
207208 "provides=('dumber-browser' 'dumber')" \
208209 "conflicts=('dumber-browser' 'dumber-browser-git')" \
209- 'source=("${pkgname}-${pkgver}.tar.gz::https://github.com/bnema/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \
210+ 'source=("${pkgname}-${pkgver}.tar.gz::https://git.bnema.dev/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \
210211 "sha256sums=('${SHA256}')" \
211212 '' \
212213 'package() {' \
@@ -14,7 +14,9 @@ jobs:
14 publish-aur-git:14 publish-aur-git:
15 name: Publish dumber-browser-git to AUR15 name: Publish dumber-browser-git to AUR
16 runs-on: ubuntu-latest16 runs-on: ubuntu-latest
17+ # AUR packages are published from ermite only (git.bnema.dev).
17 if: >18 if: >
19+ github.server_url != 'https://github.com' &&
18 github.event.workflow_run.name == 'CI' &&20 github.event.workflow_run.name == 'CI' &&
19 github.event.workflow_run.conclusion == 'success' &&21 github.event.workflow_run.conclusion == 'success' &&
20 github.event.workflow_run.head_branch == 'main'22 github.event.workflow_run.head_branch == 'main'
@@ -49,7 +51,7 @@ jobs:
49 'pkgrel=1' \51 'pkgrel=1' \
50 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \52 'pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"' \
51 "arch=('x86_64')" \53 "arch=('x86_64')" \
52- 'url="https://github.com/bnema/dumber"' \54+ 'url="https://git.bnema.dev/dumber"' \
53 "license=('MIT')" \55 "license=('MIT')" \
54 "makedepends=('go>=1.27' 'git' 'brotli')" \56 "makedepends=('go>=1.27' 'git' 'brotli')" \
55 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \57 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \
@@ -72,7 +74,7 @@ jobs:
72 ')' \74 ')' \
73 "provides=('dumber-browser' 'dumber')" \75 "provides=('dumber-browser' 'dumber')" \
74 "conflicts=('dumber-browser' 'dumber-browser-bin')" \76 "conflicts=('dumber-browser' 'dumber-browser-bin')" \
75- 'source=("git+https://github.com/bnema/dumber.git")' \77+ 'source=("git+https://git.bnema.dev/dumber.git")' \
76 "sha256sums=('SKIP')" \78 "sha256sums=('SKIP')" \
77 '' \79 '' \
78 'pkgver() {' \80 'pkgver() {' \
@@ -116,6 +118,7 @@ jobs:
116 name: Publish dumber-browser-bin to AUR118 name: Publish dumber-browser-bin to AUR
117 runs-on: ubuntu-latest119 runs-on: ubuntu-latest
118 if: >120 if: >
121+ github.server_url != 'https://github.com' &&
119 github.event.workflow_run.name == 'Flatpak' &&122 github.event.workflow_run.name == 'Flatpak' &&
120 github.event.workflow_run.conclusion == 'success'123 github.event.workflow_run.conclusion == 'success'
121 concurrency:124 concurrency:
@@ -147,19 +150,17 @@ jobs:
147 - name: Verify release still exists150 - name: Verify release still exists
148 run: |151 run: |
149 TAG="${{ steps.release.outputs.tag }}"152 TAG="${{ steps.release.outputs.tag }}"
150- if ! gh release view "$TAG" &>/dev/null; then153+ if ! curl -fsS -o /dev/null "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}"; then
151 echo "::error::Release $TAG no longer exists. Aborting AUR publish."154 echo "::error::Release $TAG no longer exists. Aborting AUR publish."
152 exit 1155 exit 1
153 fi156 fi
154 echo "Release $TAG verified, proceeding with AUR publish."157 echo "Release $TAG verified, proceeding with AUR publish."
155- env:
156- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
157 158
158 - name: Download checksums159 - name: Download checksums
159 id: checksum160 id: checksum
160 run: |161 run: |
161 TAG="${{ steps.release.outputs.tag }}"162 TAG="${{ steps.release.outputs.tag }}"
162- curl -sL "https://github.com/bnema/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt163+ curl -fsSL "${GITHUB_SERVER_URL}/dumber/releases/download/${TAG}/checksums.txt" -o checksums.txt
163 cat checksums.txt164 cat checksums.txt
164 SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1)165 SHA256=$(grep 'dumber_linux_x86_64.tar.gz' checksums.txt | cut -d' ' -f1)
165 if [ -z "$SHA256" ]; then166 if [ -z "$SHA256" ]; then
@@ -184,7 +185,7 @@ jobs:
184 'pkgrel=1' \185 'pkgrel=1' \
185 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \186 'pkgdesc="A minimal keyboard-driven browser for tiling WMs"' \
186 "arch=('x86_64')" \187 "arch=('x86_64')" \
187- 'url="https://github.com/bnema/dumber"' \188+ 'url="https://git.bnema.dev/dumber"' \
188 "license=('MIT')" \189 "license=('MIT')" \
189 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \190 "depends=('gtk4' 'cef' 'webkitgtk-6.0')" \
190 'optdepends=(' \191 'optdepends=(' \
@@ -206,7 +207,7 @@ jobs:
206 ')' \207 ')' \
207 "provides=('dumber-browser' 'dumber')" \208 "provides=('dumber-browser' 'dumber')" \
208 "conflicts=('dumber-browser' 'dumber-browser-git')" \209 "conflicts=('dumber-browser' 'dumber-browser-git')" \
209- 'source=("${pkgname}-${pkgver}.tar.gz::https://github.com/bnema/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \210+ 'source=("${pkgname}-${pkgver}.tar.gz::https://git.bnema.dev/dumber/releases/download/v${pkgver}/dumber_linux_x86_64.tar.gz")' \
210 "sha256sums=('${SHA256}')" \211 "sha256sums=('${SHA256}')" \
211 '' \212 '' \
212 'package() {' \213 'package() {' \
M .github/workflows/flatpak.yml +8 -3
@@ -14,8 +14,11 @@ permissions:
1414 contents: write
1515
1616 jobs:
17+ # ermite (git.bnema.dev) builds the Flatpak; the GitHub mirror only gets a
18+ # copy of the release for older updaters (see release.yml).
1719 flatpak:
1820 name: Build Flatpak
21+ if: github.server_url != 'https://github.com'
1922 runs-on: ubuntu-latest
2023 container:
2124 image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48
@@ -37,7 +40,8 @@ jobs:
3740 - name: Wait for release assets
3841 run: |
3942 VERSION="${{ steps.version.outputs.version }}"
40- URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
43+ # The job reaches the forge at GITHUB_SERVER_URL (the runner relay).
44+ URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
4145 echo "Waiting for release asset: $URL"
4246 for i in $(seq 1 30); do
4347 if curl -sL --fail -o /dev/null "$URL"; then
@@ -54,7 +58,8 @@ jobs:
5458 id: sha256
5559 run: |
5660 VERSION="${{ steps.version.outputs.version }}"
57- URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
61+ # The job reaches the forge at GITHUB_SERVER_URL (the runner relay).
62+ URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
5863 SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1)
5964 echo "sha256=$SHA256" >> $GITHUB_OUTPUT
6065 echo "SHA256: $SHA256"
@@ -91,7 +96,7 @@ jobs:
9196 - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml
9297 sources:
9398 - type: archive
94- url: https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz
99+ url: ${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz
95100 sha256: ${SHA256}
96101 - type: file
97102 path: flatpak/dev.bnema.Dumber.desktop
@@ -14,8 +14,11 @@ permissions:
14 contents: write14 contents: write
15 15
16 jobs:16 jobs:
17+ # ermite (git.bnema.dev) builds the Flatpak; the GitHub mirror only gets a
18+ # copy of the release for older updaters (see release.yml).
17 flatpak:19 flatpak:
18 name: Build Flatpak20 name: Build Flatpak
21+ if: github.server_url != 'https://github.com'
19 runs-on: ubuntu-latest22 runs-on: ubuntu-latest
20 container:23 container:
21 image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-4824 image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48
@@ -37,7 +40,8 @@ jobs:
37 - name: Wait for release assets40 - name: Wait for release assets
38 run: |41 run: |
39 VERSION="${{ steps.version.outputs.version }}"42 VERSION="${{ steps.version.outputs.version }}"
40- URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"43+ # The job reaches the forge at GITHUB_SERVER_URL (the runner relay).
44+ URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
41 echo "Waiting for release asset: $URL"45 echo "Waiting for release asset: $URL"
42 for i in $(seq 1 30); do46 for i in $(seq 1 30); do
43 if curl -sL --fail -o /dev/null "$URL"; then47 if curl -sL --fail -o /dev/null "$URL"; then
@@ -54,7 +58,8 @@ jobs:
54 id: sha25658 id: sha256
55 run: |59 run: |
56 VERSION="${{ steps.version.outputs.version }}"60 VERSION="${{ steps.version.outputs.version }}"
57- URL="https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"61+ # The job reaches the forge at GITHUB_SERVER_URL (the runner relay).
62+ URL="${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz"
58 SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1)63 SHA256=$(curl -sL "$URL" | sha256sum | cut -d' ' -f1)
59 echo "sha256=$SHA256" >> $GITHUB_OUTPUT64 echo "sha256=$SHA256" >> $GITHUB_OUTPUT
60 echo "SHA256: $SHA256"65 echo "SHA256: $SHA256"
@@ -91,7 +96,7 @@ jobs:
91 - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml96 - install -Dm644 dev.bnema.Dumber.metainfo.xml /app/share/metainfo/dev.bnema.Dumber.metainfo.xml
92 sources:97 sources:
93 - type: archive98 - type: archive
94- url: https://github.com/bnema/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz99+ url: ${GITHUB_SERVER_URL}/dumber/releases/download/${VERSION}/dumber_linux_x86_64.tar.gz
95 sha256: ${SHA256}100 sha256: ${SHA256}
96 - type: file101 - type: file
97 path: flatpak/dev.bnema.Dumber.desktop102 path: flatpak/dev.bnema.Dumber.desktop
M .github/workflows/release.yml +5 -2
@@ -1,4 +1,3 @@
1-
21 name: Release
32
43 on:
@@ -10,6 +9,10 @@ permissions:
109 contents: write
1110
1211 jobs:
12+ # ermite (git.bnema.dev) publishes the release, the Flatpak and the AUR
13+ # packages. The GitHub mirror also runs this job for each mirrored tag: its
14+ # copy of the release keeps older builds updating, since their updater only
15+ # reads GitHub. Flatpak and AUR run on ermite only.
1316 release:
1417 runs-on: ubuntu-latest
1518 steps:
@@ -19,7 +22,7 @@ jobs:
1922
2023 - uses: actions/setup-go@v7
2124 with:
22- go-version: stable
25+ go-version-file: go.mod
2326
2427 - uses: actions/setup-node@v7
2528 with:
@@ -1,4 +1,3 @@
1-
2 name: Release1 name: Release
3 2
4 on:3 on:
@@ -10,6 +9,10 @@ permissions:
10 contents: write9 contents: write
11 10
12 jobs:11 jobs:
12+ # ermite (git.bnema.dev) publishes the release, the Flatpak and the AUR
13+ # packages. The GitHub mirror also runs this job for each mirrored tag: its
14+ # copy of the release keeps older builds updating, since their updater only
15+ # reads GitHub. Flatpak and AUR run on ermite only.
13 release:16 release:
14 runs-on: ubuntu-latest17 runs-on: ubuntu-latest
15 steps:18 steps:
@@ -19,7 +22,7 @@ jobs:
19 22
20 - uses: actions/setup-go@v723 - uses: actions/setup-go@v7
21 with:24 with:
22- go-version: stable25+ go-version-file: go.mod
23 26
24 - uses: actions/setup-node@v727 - uses: actions/setup-node@v7
25 with:28 with:
M .goreleaser.yaml +12 -6
@@ -2,6 +2,16 @@
22 # https://goreleaser.com
33 version: 2
44
5+# Releases are published on ermite. In CI the runner sets GITHUB_API_URL and
6+# GITHUB_SERVER_URL to an address the job can reach; the public URLs are the
7+# fallback for a local run. The release workflow also runs on the GitHub
8+# mirror, so older builds, whose updater only reads GitHub, still update:
9+# there GoReleaser keeps its github.com defaults.
10+github_urls:
11+ api: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://api.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}{{ end }}/'
12+ upload: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://uploads.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads{{ end }}/'
13+ download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/'
14+
515 before:
616 hooks:
717 # Build and verify systemviews assets before building binaries
@@ -61,7 +71,7 @@ snapshot:
6171
6272 changelog:
6373 sort: asc
64- use: github
74+ use: git
6575 filters:
6676 exclude:
6777 - '^docs:'
@@ -116,7 +126,7 @@ release:
116126 ### Linux (x86_64/amd64)
117127 ```bash
118128 # Download latest release
119- wget https://github.com/bnema/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz
129+ wget https://git.bnema.dev/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz
120130
121131 # Extract and install to ~/.local/bin (enables auto-updates)
122132 tar -xzf dumber_linux_x86_64.tar.gz
@@ -158,10 +168,6 @@ release:
158168 sudo apt install gstreamer1.0-vaapi va-driver-all
159169 ```
160170
161- ---
162-
163- **Full Changelog**: https://github.com/bnema/dumber/compare/{{.PreviousTag}}...{{.Tag}}
164-
165171 # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.)
166172 prerelease: auto
167173
@@ -2,6 +2,16 @@
2 # https://goreleaser.com2 # https://goreleaser.com
3 version: 23 version: 2
4 4
5+# Releases are published on ermite. In CI the runner sets GITHUB_API_URL and
6+# GITHUB_SERVER_URL to an address the job can reach; the public URLs are the
7+# fallback for a local run. The release workflow also runs on the GitHub
8+# mirror, so older builds, whose updater only reads GitHub, still update:
9+# there GoReleaser keeps its github.com defaults.
10+github_urls:
11+ api: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://api.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}{{ end }}/'
12+ upload: '{{ if eq (index .Env "GITHUB_SERVER_URL") "https://github.com" }}https://uploads.github.com{{ else }}{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads{{ end }}/'
13+ download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/'
14+
5 before:15 before:
6 hooks:16 hooks:
7 # Build and verify systemviews assets before building binaries17 # Build and verify systemviews assets before building binaries
@@ -61,7 +71,7 @@ snapshot:
61 71
62 changelog:72 changelog:
63 sort: asc73 sort: asc
64- use: github74+ use: git
65 filters:75 filters:
66 exclude:76 exclude:
67 - '^docs:'77 - '^docs:'
@@ -116,7 +126,7 @@ release:
116 ### Linux (x86_64/amd64)126 ### Linux (x86_64/amd64)
117 ```bash127 ```bash
118 # Download latest release128 # Download latest release
119- wget https://github.com/bnema/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz129+ wget https://git.bnema.dev/dumber/releases/latest/download/dumber_linux_x86_64.tar.gz
120 130
121 # Extract and install to ~/.local/bin (enables auto-updates)131 # Extract and install to ~/.local/bin (enables auto-updates)
122 tar -xzf dumber_linux_x86_64.tar.gz132 tar -xzf dumber_linux_x86_64.tar.gz
@@ -158,10 +168,6 @@ release:
158 sudo apt install gstreamer1.0-vaapi va-driver-all168 sudo apt install gstreamer1.0-vaapi va-driver-all
159 ```169 ```
160 170
161- ---
162-
163- **Full Changelog**: https://github.com/bnema/dumber/compare/{{.PreviousTag}}...{{.Tag}}
164-
165 # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.)171 # Auto-detect prerelease from version (v1.0.0-rc1, v1.0.0-alpha, etc.)
166 prerelease: auto172 prerelease: auto
167 173
M README.md +5 -5
@@ -2,7 +2,7 @@
22
33 <p align="center">
44 <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a>
5- <a href="https://github.com/bnema/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a>
5+ <a href="https://git.bnema.dev/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a>
66 <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a>
77 <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a>
88 </p>
@@ -67,7 +67,7 @@ The browser chrome stays out of the way by default. Open the omnibox when you wa
6767 ### Install script
6868
6969 ```bash
70-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash
70+curl -fsSL https://git.bnema.dev/dumber/raw/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash
7171 dumber browse
7272 ```
7373
@@ -81,7 +81,7 @@ yay -S dumber-browser-git # Build from source
8181 ### Flatpak
8282
8383 ```bash
84-wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak
84+wget https://git.bnema.dev/dumber/releases/latest/download/dumber.flatpak
8585 flatpak install --user dumber.flatpak
8686 flatpak run dev.bnema.Dumber browse
8787 ```
@@ -216,7 +216,7 @@ Set `ENV=dev` to isolate the development process under `.dev/dumber/`. Dumber se
216216 Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required.
217217
218218 ```bash
219-git clone https://github.com/bnema/dumber
219+git clone https://git.bnema.dev/dumber
220220 cd dumber
221221 make build
222222 ./dist/dumber browse
@@ -249,7 +249,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
249249 ## Community
250250
251251 - [Report bugs](https://github.com/bnema/dumber/issues)
252-- [Releases](https://github.com/bnema/dumber/releases): notes for each version
252+- [Releases](https://git.bnema.dev/dumber/releases): notes for each version
253253
254254 ## License
255255
@@ -2,7 +2,7 @@
2 2
3 <p align="center">3 <p align="center">
4 <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a>4 <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a>
5- <a href="https://github.com/bnema/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a>5+ <a href="https://git.bnema.dev/dumber/releases"><img src="https://img.shields.io/badge/platform-Linux%20Wayland%20only-blue?style=flat-square" alt="Platform: Linux Wayland"></a>
6 <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a>6 <a href="https://github.com/bnema/dumber/commits/main"><img src="https://badgen.net/github/last-commit/bnema/dumber/main?icon=github" alt="Last commit"></a>
7 <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a>7 <a href="https://github.com/bnema/dumber/stargazers"><img src="https://badgen.net/github/stars/bnema/dumber?icon=github" alt="GitHub stars"></a>
8 </p>8 </p>
@@ -67,7 +67,7 @@ The browser chrome stays out of the way by default. Open the omnibox when you wa
67 ### Install script67 ### Install script
68 68
69 ```bash69 ```bash
70-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash70+curl -fsSL https://git.bnema.dev/dumber/raw/v0.33.0/install.sh | DUMBER_VERSION=v0.33.0 bash
71 dumber browse71 dumber browse
72 ```72 ```
73 73
@@ -81,7 +81,7 @@ yay -S dumber-browser-git # Build from source
81 ### Flatpak81 ### Flatpak
82 82
83 ```bash83 ```bash
84-wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak84+wget https://git.bnema.dev/dumber/releases/latest/download/dumber.flatpak
85 flatpak install --user dumber.flatpak85 flatpak install --user dumber.flatpak
86 flatpak run dev.bnema.Dumber browse86 flatpak run dev.bnema.Dumber browse
87 ```87 ```
@@ -216,7 +216,7 @@ Set `ENV=dev` to isolate the development process under `.dev/dumber/`. Dumber se
216 Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required.216 Systemviews assets are generated with `go tool templ` and Go's `js/wasm` toolchain; no root Node toolchain is required.
217 217
218 ```bash218 ```bash
219-git clone https://github.com/bnema/dumber219+git clone https://git.bnema.dev/dumber
220 cd dumber220 cd dumber
221 make build221 make build
222 ./dist/dumber browse222 ./dist/dumber browse
@@ -249,7 +249,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
249 ## Community249 ## Community
250 250
251 - [Report bugs](https://github.com/bnema/dumber/issues)251 - [Report bugs](https://github.com/bnema/dumber/issues)
252-- [Releases](https://github.com/bnema/dumber/releases): notes for each version252+- [Releases](https://git.bnema.dev/dumber/releases): notes for each version
253 253
254 ## License254 ## License
255 255
M aur/dumber-browser-bin/.SRCINFO +1 -1
@@ -2,7 +2,7 @@ pkgbase = dumber-browser-bin
22 pkgdesc = A minimal keyboard-driven browser for tiling WMs
33 pkgver = 0.23.2
44 pkgrel = 3
5- url = https://github.com/bnema/dumber
5+ url = https://git.bnema.dev/dumber
66 arch = x86_64
77 license = MIT
88 depends = gtk4
@@ -2,7 +2,7 @@ pkgbase = dumber-browser-bin
2 pkgdesc = A minimal keyboard-driven browser for tiling WMs2 pkgdesc = A minimal keyboard-driven browser for tiling WMs
3 pkgver = 0.23.23 pkgver = 0.23.2
4 pkgrel = 34 pkgrel = 3
5- url = https://github.com/bnema/dumber5+ url = https://git.bnema.dev/dumber
6 arch = x86_646 arch = x86_64
7 license = MIT7 license = MIT
8 depends = gtk48 depends = gtk4
M aur/dumber-browser-bin/PKGBUILD +1 -1
@@ -4,7 +4,7 @@ pkgver=0.23.2
44 pkgrel=3
55 pkgdesc="A minimal keyboard-driven browser for tiling WMs"
66 arch=('x86_64')
7-url="https://github.com/bnema/dumber"
7+url="https://git.bnema.dev/dumber"
88 license=('MIT')
99 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')
1010 optdepends=(
@@ -4,7 +4,7 @@ pkgver=0.23.2
4 pkgrel=34 pkgrel=3
5 pkgdesc="A minimal keyboard-driven browser for tiling WMs"5 pkgdesc="A minimal keyboard-driven browser for tiling WMs"
6 arch=('x86_64')6 arch=('x86_64')
7-url="https://github.com/bnema/dumber"7+url="https://git.bnema.dev/dumber"
8 license=('MIT')8 license=('MIT')
9 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')9 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')
10 optdepends=(10 optdepends=(
M aur/dumber-browser-git/.SRCINFO +2 -2
@@ -2,7 +2,7 @@ pkgbase = dumber-browser-git
22 pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version)
33 pkgver = 0.28.0.r367.g6066b2a7
44 pkgrel = 2
5- url = https://github.com/bnema/dumber
5+ url = https://git.bnema.dev/dumber
66 arch = x86_64
77 license = MIT
88 makedepends = go>=1.27
@@ -31,7 +31,7 @@ pkgbase = dumber-browser-git
3131 provides = dumber
3232 conflicts = dumber-browser
3333 conflicts = dumber-browser-bin
34- source = git+https://github.com/bnema/dumber.git
34+ source = git+https://git.bnema.dev/dumber.git
3535 sha256sums = SKIP
3636
3737 pkgname = dumber-browser-git
@@ -2,7 +2,7 @@ pkgbase = dumber-browser-git
2 pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version)2 pkgdesc = A minimal keyboard-driven browser for tiling WMs (git version)
3 pkgver = 0.28.0.r367.g6066b2a73 pkgver = 0.28.0.r367.g6066b2a7
4 pkgrel = 24 pkgrel = 2
5- url = https://github.com/bnema/dumber5+ url = https://git.bnema.dev/dumber
6 arch = x86_646 arch = x86_64
7 license = MIT7 license = MIT
8 makedepends = go>=1.278 makedepends = go>=1.27
@@ -31,7 +31,7 @@ pkgbase = dumber-browser-git
31 provides = dumber31 provides = dumber
32 conflicts = dumber-browser32 conflicts = dumber-browser
33 conflicts = dumber-browser-bin33 conflicts = dumber-browser-bin
34- source = git+https://github.com/bnema/dumber.git34+ source = git+https://git.bnema.dev/dumber.git
35 sha256sums = SKIP35 sha256sums = SKIP
36 36
37 pkgname = dumber-browser-git37 pkgname = dumber-browser-git
M aur/dumber-browser-git/PKGBUILD +2 -2
@@ -4,7 +4,7 @@ pkgver=0.32.0.r5.gcbc3a47f
44 pkgrel=1
55 pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"
66 arch=('x86_64')
7-url="https://github.com/bnema/dumber"
7+url="https://git.bnema.dev/dumber"
88 license=('MIT')
99 makedepends=('go>=1.27' 'git' 'brotli')
1010 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')
@@ -27,7 +27,7 @@ optdepends=(
2727 )
2828 provides=('dumber-browser' 'dumber')
2929 conflicts=('dumber-browser' 'dumber-browser-bin')
30-source=("git+https://github.com/bnema/dumber.git")
30+source=("git+https://git.bnema.dev/dumber.git")
3131 sha256sums=('SKIP')
3232
3333 pkgver() {
@@ -4,7 +4,7 @@ pkgver=0.32.0.r5.gcbc3a47f
4 pkgrel=14 pkgrel=1
5 pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"5 pkgdesc="A minimal keyboard-driven browser for tiling WMs (git version)"
6 arch=('x86_64')6 arch=('x86_64')
7-url="https://github.com/bnema/dumber"7+url="https://git.bnema.dev/dumber"
8 license=('MIT')8 license=('MIT')
9 makedepends=('go>=1.27' 'git' 'brotli')9 makedepends=('go>=1.27' 'git' 'brotli')
10 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')10 depends=('gtk4' 'cef' 'webkitgtk-6.0' 'libwebp')
@@ -27,7 +27,7 @@ optdepends=(
27 )27 )
28 provides=('dumber-browser' 'dumber')28 provides=('dumber-browser' 'dumber')
29 conflicts=('dumber-browser' 'dumber-browser-bin')29 conflicts=('dumber-browser' 'dumber-browser-bin')
30-source=("git+https://github.com/bnema/dumber.git")30+source=("git+https://git.bnema.dev/dumber.git")
31 sha256sums=('SKIP')31 sha256sums=('SKIP')
32 32
33 pkgver() {33 pkgver() {
M docs/installation.md +5 -5
@@ -3,7 +3,7 @@
33 ## Quick Install (Linux x86_64)
44
55 ```bash
6-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | bash
6+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | bash
77 ```
88
99 Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo).
@@ -13,19 +13,19 @@ Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires su
1313 Install a specific version:
1414
1515 ```bash
16-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.26.2 bash
16+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.26.2 bash
1717 ```
1818
1919 Install the latest prerelease:
2020
2121 ```bash
22-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 bash
22+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 bash
2323 ```
2424
2525 Combine both to install a specific prerelease:
2626
2727 ```bash
28-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash
28+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash
2929 ```
3030
3131 ## Flatpak
@@ -41,7 +41,7 @@ flatpak install dumber.flatpak
4141 ## From Source
4242
4343 ```bash
44-git clone https://github.com/bnema/dumber
44+git clone https://git.bnema.dev/dumber
4545 cd dumber
4646 make build
4747 ./dist/dumber browse
@@ -3,7 +3,7 @@
3 ## Quick Install (Linux x86_64)3 ## Quick Install (Linux x86_64)
4 4
5 ```bash5 ```bash
6-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | bash6+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | bash
7 ```7 ```
8 8
9 Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo).9 Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires sudo).
@@ -13,19 +13,19 @@ Installs to `~/.local/bin` if available, otherwise `/usr/local/bin` (requires su
13 Install a specific version:13 Install a specific version:
14 14
15 ```bash15 ```bash
16-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.26.2 bash16+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.26.2 bash
17 ```17 ```
18 18
19 Install the latest prerelease:19 Install the latest prerelease:
20 20
21 ```bash21 ```bash
22-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 bash22+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 bash
23 ```23 ```
24 24
25 Combine both to install a specific prerelease:25 Combine both to install a specific prerelease:
26 26
27 ```bash27 ```bash
28-curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash28+curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_VERSION=v0.27.0-rc.1 DUMBER_PRERELEASE=1 bash
29 ```29 ```
30 30
31 ## Flatpak31 ## Flatpak
@@ -41,7 +41,7 @@ flatpak install dumber.flatpak
41 ## From Source41 ## From Source
42 42
43 ```bash43 ```bash
44-git clone https://github.com/bnema/dumber44+git clone https://git.bnema.dev/dumber
45 cd dumber45 cd dumber
46 make build46 make build
47 ./dist/dumber browse47 ./dist/dumber browse
M flatpak/dev.bnema.Dumber.metainfo.xml +2 -2
@@ -26,9 +26,9 @@
2626 </ul>
2727 </description>
2828 <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable>
29- <url type="homepage">https://github.com/bnema/dumber</url>
29+ <url type="homepage">https://git.bnema.dev/dumber</url>
3030 <url type="bugtracker">https://github.com/bnema/dumber/issues</url>
31- <url type="vcs-browser">https://github.com/bnema/dumber</url>
31+ <url type="vcs-browser">https://git.bnema.dev/dumber</url>
3232 <developer id="dev.bnema">
3333 <name>bnema</name>
3434 </developer>
@@ -26,9 +26,9 @@
26 </ul>26 </ul>
27 </description>27 </description>
28 <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable>28 <launchable type="desktop-id">dev.bnema.Dumber.desktop</launchable>
29- <url type="homepage">https://github.com/bnema/dumber</url>29+ <url type="homepage">https://git.bnema.dev/dumber</url>
30 <url type="bugtracker">https://github.com/bnema/dumber/issues</url>30 <url type="bugtracker">https://github.com/bnema/dumber/issues</url>
31- <url type="vcs-browser">https://github.com/bnema/dumber</url>31+ <url type="vcs-browser">https://git.bnema.dev/dumber</url>
32 <developer id="dev.bnema">32 <developer id="dev.bnema">
33 <name>bnema</name>33 <name>bnema</name>
34 </developer>34 </developer>
M install.sh +10 -17
@@ -2,10 +2,11 @@
22 set -e
33
44 # Dumber installer script
5-# Usage: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | sh
6-# Usage with pre-release: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 sh
5+# Usage: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | sh
6+# Usage with pre-release: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 sh
77
88 REPO="bnema/dumber"
9+FORGE="https://git.bnema.dev"
910 VERSION="${DUMBER_VERSION:-latest}"
1011
1112 # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin
@@ -42,9 +43,9 @@ TARBALL="dumber_linux_x86_64.tar.gz"
4243 # Determine version to download
4344 if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then
4445 echo "Finding latest pre-release..."
45- RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "")
46+ RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "")
4647 if [ -z "$RELEASE_DATA" ]; then
47- echo "Error: Failed to fetch release information from GitHub API"
48+ echo "Error: Failed to fetch release information from ${FORGE}"
4849 exit 1
4950 fi
5051 # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION.
@@ -77,23 +78,15 @@ if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then
7778 echo "Using pre-release version: ${VERSION}"
7879 elif [ "$VERSION" = "latest" ]; then
7980 echo "Using latest stable release"
80- RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null || echo "")
81+ RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases/latest" 2>/dev/null || echo "")
8182 if [ -z "$RELEASE_DATA" ]; then
82- echo "Error: Failed to fetch latest release information from GitHub API"
83+ echo "Error: Failed to fetch latest release information from ${FORGE}"
8384 exit 1
8485 fi
8586 if command -v jq >/dev/null 2>&1; then
8687 VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name')
8788 else
88- VERSION=$(echo "$RELEASE_DATA" | awk '
89- /"tag_name"[[:space:]]*:/ {
90- tag = $0
91- sub(/.*"tag_name"[[:space:]]*:[[:space:]]*"/, "", tag)
92- sub(/".*/, "", tag)
93- print tag
94- exit
95- }
96- ')
89+ VERSION=$(echo "$RELEASE_DATA" | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -n 1)
9790 fi
9891 if [ -z "$VERSION" ]; then
9992 echo "Error: Could not determine latest stable version"
@@ -104,14 +97,14 @@ else
10497 echo "Using version: ${VERSION}"
10598 fi
10699
107-DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}"
100+DOWNLOAD_URL="${FORGE}/dumber/releases/download/${VERSION}/${TARBALL}"
108101
109102 # Create temporary directory
110103 TMP_DIR=$(mktemp -d)
111104 trap 'rm -rf "$TMP_DIR"' EXIT
112105
113106 # Download checksums file
114-CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt"
107+CHECKSUMS_URL="${FORGE}/dumber/releases/download/${VERSION}/checksums.txt"
115108 echo "Downloading checksums..."
116109 if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then
117110 echo "Error: Failed to download checksums file"
@@ -2,10 +2,11 @@
2 set -e2 set -e
3 3
4 # Dumber installer script4 # Dumber installer script
5-# Usage: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | sh5+# Usage: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | sh
6-# Usage with pre-release: curl -fsSL https://raw.githubusercontent.com/bnema/dumber/main/install.sh | DUMBER_PRERELEASE=1 sh6+# Usage with pre-release: curl -fsSL https://git.bnema.dev/dumber/raw/main/install.sh | DUMBER_PRERELEASE=1 sh
7 7
8 REPO="bnema/dumber"8 REPO="bnema/dumber"
9+FORGE="https://git.bnema.dev"
9 VERSION="${DUMBER_VERSION:-latest}"10 VERSION="${DUMBER_VERSION:-latest}"
10 11
11 # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin12 # Prefer ~/.local/bin if it exists and is in PATH, otherwise /usr/local/bin
@@ -42,9 +43,9 @@ TARBALL="dumber_linux_x86_64.tar.gz"
42 # Determine version to download43 # Determine version to download
43 if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then44 if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then
44 echo "Finding latest pre-release..."45 echo "Finding latest pre-release..."
45- RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "")46+ RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases?per_page=100" 2>/dev/null || echo "")
46 if [ -z "$RELEASE_DATA" ]; then47 if [ -z "$RELEASE_DATA" ]; then
47- echo "Error: Failed to fetch release information from GitHub API"48+ echo "Error: Failed to fetch release information from ${FORGE}"
48 exit 149 exit 1
49 fi50 fi
50 # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION.51 # Prefer jq for reliable JSON parsing of RELEASE_DATA into VERSION.
@@ -77,23 +78,15 @@ if [ "$VERSION" = "latest" ] && [ -n "$DUMBER_PRERELEASE" ]; then
77 echo "Using pre-release version: ${VERSION}"78 echo "Using pre-release version: ${VERSION}"
78 elif [ "$VERSION" = "latest" ]; then79 elif [ "$VERSION" = "latest" ]; then
79 echo "Using latest stable release"80 echo "Using latest stable release"
80- RELEASE_DATA=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null || echo "")81+ RELEASE_DATA=$(curl -fsSL "${FORGE}/-/github/api/repos/${REPO}/releases/latest" 2>/dev/null || echo "")
81 if [ -z "$RELEASE_DATA" ]; then82 if [ -z "$RELEASE_DATA" ]; then
82- echo "Error: Failed to fetch latest release information from GitHub API"83+ echo "Error: Failed to fetch latest release information from ${FORGE}"
83 exit 184 exit 1
84 fi85 fi
85 if command -v jq >/dev/null 2>&1; then86 if command -v jq >/dev/null 2>&1; then
86 VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name')87 VERSION=$(echo "$RELEASE_DATA" | jq -r '.tag_name')
87 else88 else
88- VERSION=$(echo "$RELEASE_DATA" | awk '89+ VERSION=$(echo "$RELEASE_DATA" | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -n 1)
89- /"tag_name"[[:space:]]*:/ {
90- tag = $0
91- sub(/.*"tag_name"[[:space:]]*:[[:space:]]*"/, "", tag)
92- sub(/".*/, "", tag)
93- print tag
94- exit
95- }
96- ')
97 fi90 fi
98 if [ -z "$VERSION" ]; then91 if [ -z "$VERSION" ]; then
99 echo "Error: Could not determine latest stable version"92 echo "Error: Could not determine latest stable version"
@@ -104,14 +97,14 @@ else
104 echo "Using version: ${VERSION}"97 echo "Using version: ${VERSION}"
105 fi98 fi
106 99
107-DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}/${TARBALL}"100+DOWNLOAD_URL="${FORGE}/dumber/releases/download/${VERSION}/${TARBALL}"
108 101
109 # Create temporary directory102 # Create temporary directory
110 TMP_DIR=$(mktemp -d)103 TMP_DIR=$(mktemp -d)
111 trap 'rm -rf "$TMP_DIR"' EXIT104 trap 'rm -rf "$TMP_DIR"' EXIT
112 105
113 # Download checksums file106 # Download checksums file
114-CHECKSUMS_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt"107+CHECKSUMS_URL="${FORGE}/dumber/releases/download/${VERSION}/checksums.txt"
115 echo "Downloading checksums..."108 echo "Downloading checksums..."
116 if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then109 if ! curl -fsSL "$CHECKSUMS_URL" -o "$TMP_DIR/checksums.txt"; then
117 echo "Error: Failed to download checksums file"110 echo "Error: Failed to download checksums file"

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 8

Tags 42

↑↓ moveenter openesc close