CLI input of github://SomeUser/SomeRepository is passed to makeUrl (via commands/make.lua)
makeUrl replaces the user and repository name with the above string that hardcodes the master branch
makeUrl assigns the makeHttp handler (due to the https;// prefix of the resulting string)
The handler fetches the unavailable address and fails with a 404 error
Bonus The CLI gets stuck in the event loop instead of exiting (separate issue)
Since people can rename their deployment branch this was never a perfect solution, but now that there are at least the two default branch names to consider it completely breaks down.
Brainstorming ideas for a solution:
Request both default URLs and hope one of them exists? (not great)
Fetch whatever is the latest release, via GitHub API? (might be complicated)
Simply fetch the latest commit (HEAD) instead of a proper release? (seems like a workaround/hack)
GitHub has updated all repositories to use
main
as their default branch name, but lit seems to always want to accessmaster
(and subsequently fails to install the package):I believe this might be the relevant portion of the code: https://github.com/luvit/lit/blob/52abe66dedcae2952d8a95faecbbad6529eaec88/libs/core.lua#L504-L505
I think the problematic flow is as follows:
github://SomeUser/SomeRepository
is passed tomakeUrl
(viacommands/make.lua
)makeUrl
replaces the user and repository name with the above string that hardcodes themaster
branchmakeUrl
assigns themakeHttp
handler (due to thehttps;//
prefix of the resulting string)Since people can rename their deployment branch this was never a perfect solution, but now that there are at least the two default branch names to consider it completely breaks down.
Brainstorming ideas for a solution:
HEAD
) instead of a proper release? (seems like a workaround/hack)