Commit e98a837815

e98a837815cc55c15380a134ab12b523b9af746a

parent: e6f9e31742

Verified · cmc

cmc <hello@cleberg.net> · 2026-08-31 20:14 UTC

Parity, API: merge request timing and resolution

Reviews and checks report when they last changed, ci/<job> checks
report how long the build ran, and a resolved merge request names who
merged or closed it and when. krz/gitbay!137, krz/gitbay-ios!37.

Layout: unified · split

API.org +3 −1
@@ -107,7 +107,9 @@ gitbay status list <owner/name> <sha> --json # {"combined": "...", "statuses"
107One row per (commit, context): re-reporting updates in place. States: 107One row per (commit, context): re-reporting updates in place. States:
108=pending=, =success=, =failure=, =error=; the combined state is the 108=pending=, =success=, =failure=, =error=; the combined state is the
109worst of them. Statuses appear on commit pages, MR pages, and 109worst of them. Statuses appear on commit pages, MR pages, and
110=mr show=. With =repo settings require-checks <repo> on=, merging 110=mr show=, each with =updated_at=; a =ci/<job>= status also carries
111=duration=, read from the build behind it, once that build has
112finished. With =repo settings require-checks <repo> on=, merging
111requires the MR head to carry statuses and all of them green. Each 113requires the MR head to carry statuses and all of them green. Each
112report also emits a =status= event to webhooks. 114report also emits a =status= event to webhooks.
113 115
Parity.org +11
@@ -30,6 +30,8 @@ browser-only and the iOS build screen unable to say more than the log.
30| capability | cli | web | ios | 30| capability | cli | web | ios |
31|------------------------+-----+-----+-----| 31|------------------------+-----+-----+-----|
32| read, diff, commits | yes | yes | yes | 32| read, diff, commits | yes | yes | yes |
33| review and check times | yes | yes | yes |
34| who resolved it, when | yes | yes | yes |
33| comment | yes | yes | yes | 35| comment | yes | yes | yes |
34| edit title and body | yes | yes | yes | 36| edit title and body | yes | yes | yes |
35| review (approve etc.) | yes | yes | yes | 37| review (approve etc.) | yes | yes | yes |
@@ -43,6 +45,15 @@ browser-only and the iOS build screen unable to say more than the log.
43| milestone | yes | yes | yes | 45| milestone | yes | yes | yes |
44| choose body markup | yes | no | no | 46| choose body markup | yes | no | no |
45 47
48Reviews and checks carry the time they last said something, and a
49=ci/<job>= check carries how long its build ran, so a merge request
50reads without opening the build. Statuses posted through =status set=
51have no build and report only the time. A merged or closed merge
52request names who resolved it and when; a row without that stamp — a
53=migrate= import, or one merged before krz/gitbay!137 with no
54=mr.merged= event to backfill from — says neither rather than
55inventing a time.
56
46Creating from a fork works anywhere the source can be typed as 57Creating from a fork works anywhere the source can be typed as
47=owner/name:branch=; only the web lacks it. Retargeting moves an open 58=owner/name:branch=; only the web lacks it. Retargeting moves an open
48merge request onto another branch of the same repository and stales the 59merge request onto another branch of the same repository and stales the