This changes the authentication mechanism from passing an authorization token / API key to using basic auth. Basic auth didn’t work when I initially tested the upload API, but hopefully GitHub has since added it (I did request it, but didn’t get a reply, so no idea if the omission was an oversight or by design).
Creating a release with attachment is non-atomic in that the release is first created and then we upload to that release but our build file has it as a single action, so this action should be able to handle partial success from a previous execution.
It now takes key path and destination (github repostiory) as arguments. The generated build.ninja assumes the user local build.ninja sets these variables.