There are two concepts here and that should be more clearly indicated.
Introduce the file format with some examples, then talk about where
those files are found.
I need to introduce the idea that "projects" are actually file paths,
and that these paths are the keys for the key-value stores that are the
config files.
...but without saying "HashMap" because that's really an implementation
detail.
The auth tokens can now be loaded from the config files, so I need to
mention that.
I took the opportunity to revise the explanation of when auth is
required. Now it has a more obvious example of how it depends on
instance configuration.
I don't need to have nearly so much information explaining how to use
optional command line arguments. The quirk about the "repo" needing to
be a URL fragment somewhat justified the extra explanation, but that's
gone now.
Instead, a short, up-front section stating which bits are required and
where the program will try to get them.
There's a new inconsistency, however. The previous URL and FQRN
arguments are no longer mandatory but their description makes it seem
as though they are.
I need some kind of automated testing, and Cargo has a test framework
built-in. This isn't the smartest test and depends upon another
test-less function.
Building a mocking environment is possible but means I'm trying to
emulate some behavior I don't fully understand -- that's why I need
tests in the first place. That path leads to tests for my tests and
that's stupid.
Instead, I'm having the test read config from the environment and hit a
real Gitea server. It's up to the user to ensure they have one.