GitFetch -- fetch GitHub releases on an Amiga, without any hassle
================================================================
Nearly all new Amiga software is published through GitHub releases, which
is awkward since there is no way to download the releases on the machine
itself: no browser for the platform can handle the CSS and JavaScript
Github.com relies on. Getting to the newest .lha usually means walking
over to a modern computer and transfer it back to your Amiga (what is
your method of choice?)
GitFetch does that part for you. Type a GitHub address or owner/repo,
pick a release and a file, and it lands on your hard drive.
It downloads, and nothing else. Unpacking and installing stay in your own
hands, with the tools you already trust.
WHAT IT DOES
- a ReAction window with three lists: repositories you have saved,
the releases in one of them, and the files in that release
- saved repositories kept as plain text in ENVARC:, so you can edit the
list by hand or copy it to another Amiga
- accepts anything you paste: owner/repo, github.com/owner/repo, a full
https address, or a link that ends in /releases/latest
- capitals do not matter: boingball/mintprint finds boingball/MintPRINT,
and a repository already saved is not added twice for being typed
differently
- choose how many releases to fetch, which keeps the traffic down
- asks before overwriting a file, and warns when the volume looks too
full to hold it
- downloads run in a process of their own, so the window stays
responsive and Stop works during a transfer; you can iconify it and
the download carries on
- checks the system clock before connecting, because a wrong date makes
TLS fail in a way that says nothing about dates
- remembers where you left the window
- English interface, ready for translation through locale catalogs
TWO WAYS TO REACH GITHUB WITH GITFETCH
There are two options to download from your favorite repo, switchable in
the settings.
Directly, through AmiSSL. No server of your own needed. GitHub sends its
full reply (around 240 KB for 25 releases), mostly release notes that get
thrown away -- and all of it passes through TLS decryption on a 68k.
Through a proxy. A small Python script, included, using only the standard
library. It turns the same reply into about 5 KB of plain text, already
converted to the Amiga character set, and caches it so GitHub's limit of
60 requests per hour is not an issue. Faster and lighter, but it only
works while that server runs.
The setting for how many releases to fetch matters most on a direct
connection: "latest" costs a fraction of "all".
Fields that do not apply to your choice are greyed out: with a direct
connection the proxy details are irrelevant, and the other way round the
certificate check is.
REQUIREMENTS
- AmigaOS 3.5 or newer, for the ReAction classes
- Recommended: 68020 or better
- A screen of 640x400 or larger
- A TCP/IP stack: Roadshow, AmiTCP, Miami or Genesis
- AmiSSL 5 or newer, from Aminet
- A correctly set system clock, for the SSL negotiation to work
That last one is easy to overlook. An Amiga without a working
battery-backed clock starts in 1978, and every TLS certificate then looks
"not yet valid", so the connection fails with an error that says nothing
about dates. GitFetch checks the date before connecting and says so
plainly. It does not set the clock itself; that belongs to a proper time
program such as the NTP client built into Roadshow.
date
date 24-aug-26 12:00:00
If you would rather not deal with AmiSSL or the clock at all, the included
proxy needs neither.
INSTALLING
Unpack and double-click Install, or copy the GitFetch drawer wherever you
like -- it does not care where it lives. Copying by hand, set the
executable bit yourself:
Protect GitFetch +e
The archive format does not carry that bit, and without it the Shell
refuses to start the program.
Settings live in ENVARC:GitFetch/ and survive a reboot.
Full documentation is in GitFetch.guide; open it with MultiView.
KNOWN BUGS
None yet. If you find one, please report it with your AmigaOS version,
your TCP/IP stack, and whether you were using a direct connection or the
proxy. Those three narrow it down considerably.
THANKS
Jens Maus and everyone behind AmiSSL, everyone at the Amiga Cafe
(https://amiga.cafe), RVO for my Amiga revival, Darren Banfi whose Mint
projects started this, and every (vibe) coder still keeping our old
girlfriend alive. And you for using it!
LICENCE
Freeware. Use it, share it, take it apart.
Source, issues and newer versions:
https://github.com/MathieuSEO/GitFetch
GitFetch can fetch its own updates: that repository is in the saved list
from the start.
This archive always carries the newest version under the same name, so a
new release replaces the previous one here. Older versions stay available
on GitHub under Releases.
(c) 2026 Mathieu Burgerhout
|