Commit Briefs

407d84f179 Thomas Adam

add test_tag_changed() for got-notify-http

at the moment it is indistinguishable from the created tag.


e0d15deec7 Thomas Adam

got-notify-http: handle new tags


73797f1f62 Thomas Adam

remove trailing whitespaces


4808d170b7 Thomas Adam

got-notify-http: handle branch removals


444f59b999 Thomas Adam

http_notification.sh: add a testcase

add test_branch_created(). at the moment this is not different from a "normal" commit notification but it'll change in the future and it's handy to have it for an upcoming branch removed notification.


71b7e0f599 Thomas Adam

got-notify-http: add a type:commit field in the json

will help to differentiate these notification objects from the others.


e2e46a5258 Thomas Adam

small man page fix, spotted by op@


cd634f2d6d Thomas Adam

make 'got status' display interrupted rebase, histedit, and merge operations

When an operation is interrupted add a trailing message to status output which displays the operation and branches involved. This information will be useful when diagnosing problem reports and it helps new users with contextualizing multi-operation work tree state. ok op@


101257039a Thomas Adam

man nits; found with mandoc -Tlint


fb077d7946 Thomas Adam

forgot to unveil the log message file passed to got commit -F

found by op's regress builder



20d96a10d5 Thomas Adam

got-notify-http: refactor jsonify()

To support the other types of notifications, we can't just peek at the first byte and decide wether it's a short or long format. Refactor the parsing so that there's one main entrypoint, jsonify(), that calls jsonify_comment() or jsonify_comment_short() depending on the format of the line. Other "line types" will be added as a follow-up to support the other notification types.


dada399a5c Thomas Adam

fold some long lines


9c485a117d Thomas Adam

got-notify-http: change the layout of the json

Split the author/committer in sub-fields, rename author -> committer in the short format parser and cache the author for the long format in case it's the same user as the committer. Put a copy of the first line of the commit message in the "short_message" field. There's some redundancy now, but it's to make consuming easier. ok stsp@


7d119a7cb8 Thomas Adam

call unveil earlier in 'got tag'

We now know that unveil(2) will never traverse exec. No need to wait with unveil until the editor has been run. ok op@


587493911b Thomas Adam

call unveil earlier in 'got histedit'

We now know that unveil(2) will never traverse exec. No need to wait with unveil until the editor has been run. ok op@


95bb542a09 Thomas Adam

call unveil earlier in 'got commit'

We now know that unveil(2) will never traverse exec. No need to wait with unveil until the editor has been run. ok op@


8f9af3fc83 Thomas Adam

call unveil earlier in 'got import'

We now know that unveil(2) will never traverse exec. No need to wait with unveil until the editor has been run. ok op@


5571f6ee57 Thomas Adam

fix typo in a comment


fcfdd0a183 Thomas Adam

got-notify-http: fix unicode handling

JSON strings are made of UNICODE codepoints, of which only \, " and control characters have to be escaped, and the whole document MUST be encoded in UTF-8. The current code generates invalid strings for non-ASCII characters, so it has to be made UTF-8 aware. tedu' isu8cont() can't be used since it allows surrogate pairs and overlong sequences which will cause decoding errors on the receiving side. Similarly, mbtowc() depends on the current locale and could cause issues in -portable. Instead, bundle Björn Höhrmann's "Flexible and Economical UTF-8 Decoder" and use it to parse the text. Decoding errors results in the replacement character U+FFFD being emitted and the bytes considered so far to be discarded; the decoder is then restarted with the next byte. Git commit messages don't carry the notion of the encoding, but it's reasonable to expect UTF-8 (which is a superset of ASCII). For other more esotic encodings, the commit id can be used to manually extract the data. ok stsp@


0178cac96c Thomas Adam

http_notification regress: prettify the json

long lines are not manegeable. split the json over multiple lines, then use ed to join everything back in a single one.


86901c6390 Thomas Adam

regress: http-server: hide the HTTP headers

The http-server script is already validating the headers, doing so in the regress too is not helpful.


37038afa98 Thomas Adam

got-notify-http: reject 3XX status codes

At least for now, we don't support following redirects nor retrying the post, so consider a 3XX status a failure too.


2403c80c37 Thomas Adam

add my name in the bufio sources


c97a1399a0 Thomas Adam

adjust expected output in the regress