Commit Briefs

c29409f9fb Thomas Adam

require -u option when invoking got-notify-http

The authenticated username is always available so it makes little sense to treat it as an optional parameter. Suggested by op@


bdf7ef6f88 Thomas Adam

expose authenticated gotd user account in HTTP notifications

ok op@


a6cc387fec Thomas Adam

regress: use standard shell idiom for default values


f56b35c742 Thomas Adam

gotwebd: add the magic ".git" handling

like gotd, assume an implicit ".git" if the repo doesn't exist. Merge gotweb_init_repo_dir() and gotweb_load_got_path() since the former only sets repo_dir->name, and we don't realistically know the name until we've opened the directory. While here, unbreak the git worktree handling too. Realistically, moving forward, we should issue a redirect to the canonical URL or at least set the correct metadata in the document to avoid having multiple URLs for the same content. ok stsp; tiny change to repo_dir->name handling done after the ok.


74a9db5be0 Thomas Adam

regress: allow to customize GOT_TEST_HTTP_PORT


f571fea284 Thomas Adam

redo "got-fetch-http: fix GET request URL", without breaking tests

My previous fix for ~user in SSH URLs broke ~user in HTTP URLs, as used on sourcehut. Sanitize the amount of leading and embedded slashes in URLs to make things work in all cases. The root cause of the test problem with naddy's previous diff was likely in the http-server script itself, where a request like GET //repo//info/refs?service=git-upload-pack somehow ended up as GET $testroot///info/refs. We work around this here by avoiding the double slashes.


c7d1a4d98c Thomas Adam

got-fetch-http: backout GET request URL fix

It broke the clone regression test.


1bce54cf7c Thomas Adam

got-fetch-http: fix GET request URL

Add a leading '/' and do not produce a double "//" after the path. ok op


3779dc8f30 Thomas Adam

backout got stage -R option addition

The stage command is usually used in a recursive manner, like 'got commit'. Forcing users to specify -R all the time is deemed too inconvenient in practice. discussed on IRC with Lorenz (xha), Omar, and Lucas


c02f62d5c9 Thomas Adam

fix an fd leak in gotd's notify process

This leak resulted in the gotd notify process spinning on CPU in an imsg_read() -> EAGAIN loop once it ran out of file descriptors.


2671aa26ce Thomas Adam

fix previous: "ssh" accidentally named "git"


a2dbf179c8 Thomas Adam

update protocol lists

Document http and https protocols in got.conf(5). Copied from got(1) except reworded the part that referred to got.conf(5). Change "send directive" to "send block" in got(1), since got.conf(5) says there's "one configuration directive per line". Adjust table widths: longest protocol name is now "https".


4fab33118e Thomas Adam

got-notify-http: fix I/O with TLS (again)

We try to handle early replies from the server, so we call tls_read() at each "tick" of the event loop. For the TLS case, however, bufio_read() will set bio->wantev, and if we rely only on it we can deadlock trying to read data from the server without having sent all the request. Found out the hard way while trying to send several notifications in one go. ok stsp


6d3ee6a573 Thomas Adam

revert part of previous commit; the parent process is not ephemeral

pointed out by op@


7ede118f9c Thomas Adam

prevent gotd notification process from exiting due to EPIPE

Ephermeral processes on the other end of a pipe might decide to exit which results in EPIPE when writing. This is not a fatal error but is somewhat expected during normal operation (at least until we improve the inter-process communication about notifications).



0005db920d Thomas Adam

got-notify-http: consistetly use fatal instead of err


655201dd7a Thomas Adam

got-notify-http: make unexpected EOF more useful


4c2c912121 Thomas Adam

portable: enable SHA256

This allows the use of native SHA256 functions. From naddy@


8d2e954c7b Thomas Adam

portable: disable SHA384/SHA512

This isn't used in got, so may as well disable from compat. From naddy@


ffc3cf8e5a Thomas Adam

portable: CI: remove --enable-gotd flag

This is now implied; the option no longer exists.


797e49084b Thomas Adam

fix got-fetch-http when chunked encoding is not used

We would end up raising a spurious error when the server had no more data to send and would abort the clone operation, while everything was fine in fact. Problem reported by vazub via IRC, thanks!


62e037f1de Thomas Adam

portable: README: mention libtls dependencies


e9ac8ffb81 Thomas Adam

portable: compile gotd unconditionally

For some time now, gotd was only ever available if one used the --enable-gotd flag to configure. This was fine back when gotd was still under development -- but it's now very usable, and deserves to be enabled by default.


34a6d6398b Omar Polo

portable: sandbox got-notify-* helpers

"looks good to me" thomas