Commits
- Commit:
e0d15deec7a74bfc8dacd62134cf0ffeec5efe4b
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
got-notify-http: handle new tags
- Commit:
4808d170b7770ea1a53f09653147b56eb63e54f5
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
got-notify-http: handle branch removals
- Commit:
71b7e0f5998716a56a93bcd86d2469d29d48186d
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
got-notify-http: add a type:commit field in the json
will help to differentiate these notification objects from the
others.
- Commit:
20d96a10d5e54c5ff61a9ce5a53439d063a0805c
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
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.
- Commit:
9c485a117d54fcaae2d9cfc14cb90bbd5fbec161
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
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@
- Commit:
fcfdd0a183387d3aa708939ecbed113759de09dc
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
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@
- Commit:
37038afa98389d7b612d7077ce821d951e55034b
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
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.
- Commit:
94a3f4e9292a2c4019c2e68c242efa31f3e1fe4f
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
add got-notify-http
ok stsp@