diff --git a/hgext/phabricator.py b/hgext/phabricator.py --- a/hgext/phabricator.py +++ b/hgext/phabricator.py @@ -115,6 +115,10 @@ eh.configitem( b'phabricator', b'curlcmd', default=None, ) +# developer config: phabricator.debug +eh.configitem( + b'phabricator', b'debug', default=False, +) # developer config: phabricator.repophid eh.configitem( b'phabricator', b'repophid', default=None, @@ -279,6 +283,21 @@ return decorate +def _debug(ui, *msg, **opts): + """write debug output for Phabricator if ``phabricator.debug`` is set + + Specifically, this avoids dumping Conduit and HTTP auth chatter that is + printed with the --debug argument. + """ + if ui.configbool(b"phabricator", b"debug"): + flag = ui.debugflag + try: + ui.debugflag = True + ui.write(*msg, **opts) + finally: + ui.debugflag = flag + + def urlencodenested(params): """like urlencode, but works with nested parameters. @@ -1216,6 +1235,7 @@ _(b'add a comment to Revisions with new/updated Diffs'), ), (b'', b'confirm', None, _(b'ask for confirmation before sending')), + (b'', b'fold', False, _(b'combine the revisions into one review')), ], _(b'REV [OPTIONS]'), helpcategory=command.CATEGORY_IMPORT_EXPORT, @@ -1244,6 +1264,12 @@ [phabsend] confirm = true + By default, a separate review will be created for each commit that is + selected, and will have the same parent/child relationship in Phabricator. + If ``--fold`` is set, multiple commits are rolled up into a single review + as if diffed from the parent of the first revision to the last. The commit + messages are concatenated in the summary field on Phabricator. + phabsend will check obsstore and the above association to decide whether to update an existing Differential Revision, or create a new one. """ @@ -1257,6 +1283,44 @@ if opts.get(b'amend'): cmdutil.checkunfinished(repo) + ctxs = [repo[rev] for rev in revs] + + fold = opts.get(b'fold') + if fold: + if len(revs) == 1: + # TODO: just switch to --no-fold instead? + raise error.Abort(_(b"cannot fold a single revision")) + + # There's no clear way to manage multiple commits with a Dxxx tag, so + # require the amend option. (We could append "_nnn", but then it + # becomes jumbled if earlier commits are added to an update.) It should + # lock the repo and ensure that the range is editable, but that would + # make the code pretty convoluted. The default behavior of `arc` is to + # create a new review anyway. + if not opts.get(b"amend"): + raise error.Abort(_(b"cannot fold with --no-amend")) + + # Ensure the local commits are an unbroken range + revrange = repo.revs(b'(first(%ld)::last(%ld))', revs, revs) + if any(r for r in revs if r not in revrange) or any( + r for r in revrange if r not in revs + ): + raise error.Abort(_(b"cannot fold non-linear revisions")) + + # It might be possible to bucketize the revisions by the DREV value, and + # iterate over those groups when posting, and then again when amending. + # But for simplicity, require all selected revisions to be for the same + # DREV (if present). Adding local revisions to an existing DREV is + # acceptable. + drevmatchers = [ + _differentialrevisiondescre.search(ctx.description()) + for ctx in ctxs + ] + if len({m.group('url') for m in drevmatchers if m}) > 1: + raise error.Abort( + _(b"cannot fold revisions with different DREV values") + ) + # {newnode: (oldnode, olddiff, olddrev} oldmap = getoldnodedrevmap(repo, [repo[r].node() for r in revs]) @@ -1289,17 +1353,25 @@ # Send patches one by one so we know their Differential Revision PHIDs and # can provide dependency relationship lastrevphid = None - for rev in revs: - ui.debug(b'sending rev %d\n' % rev) - ctx = repo[rev] + for ctx in ctxs: + if fold: + ui.debug(b'sending rev %d::%d\n' % (ctx.rev(), ctxs[-1].rev())) + else: + ui.debug(b'sending rev %d\n' % ctx.rev()) # Get Differential Revision ID oldnode, olddiff, revid = oldmap.get(ctx.node(), (None, None, None)) - oldbasenode = oldnode + oldbasenode, oldbasediff, oldbaserevid = oldnode, olddiff, revid + + if fold: + oldbasenode, oldbasediff, oldbaserevid = oldmap.get( + ctxs[-1].node(), (None, None, None) + ) + if oldnode != ctx.node() or opts.get(b'amend'): # Create or update Differential Revision revision, diff = createdifferentialrevision( - [ctx], + ctxs if fold else [ctx], revid, lastrevphid, oldbasenode, @@ -1308,7 +1380,13 @@ actions, opts.get(b'comment'), ) - diffmap[ctx.node()] = diff + + if fold: + for ctx in ctxs: + diffmap[ctx.node()] = diff + else: + diffmap[ctx.node()] = diff + newrevid = int(revision[b'object'][b'id']) newrevphid = revision[b'object'][b'phid'] if revid: @@ -1318,18 +1396,19 @@ # Create a local tag to note the association, if commit message # does not have it already - m = _differentialrevisiondescre.search(ctx.description()) - if not m or int(m.group('id')) != newrevid: - tagname = b'D%d' % newrevid - tags.tag( - repo, - tagname, - ctx.node(), - message=None, - user=None, - date=None, - local=True, - ) + if not fold: + m = _differentialrevisiondescre.search(ctx.description()) + if not m or int(m.group('id')) != newrevid: + tagname = b'D%d' % newrevid + tags.tag( + repo, + tagname, + ctx.node(), + message=None, + user=None, + date=None, + local=True, + ) else: # Nothing changed. But still set "newrevphid" so the next revision # could depend on this one and "newrevid" for the summary line. @@ -1340,6 +1419,15 @@ drevids.append(newrevid) lastrevphid = newrevphid + if fold: + for c in ctxs: + if oldmap.get(c.node(), (None, None, None)[2]): + action = b'updated' + else: + action = b'created' + _print_phabsend_action(ui, c, newrevid, action) + break + _print_phabsend_action(ui, ctx, newrevid, action) # Update commit messages and remove tags @@ -1349,11 +1437,17 @@ with repo.wlock(), repo.lock(), repo.transaction(b'phabsend'): wnode = unfi[b'.'].node() mapping = {} # {oldnode: [newnode]} + newnodes = [] + + drevid = drevids[0] + for i, rev in enumerate(revs): old = unfi[rev] - drevid = drevids[i] + if not fold: + drevid = drevids[i] drev = [d for d in drevs if int(d[b'id']) == drevid][0] - newdesc = get_amended_desc(drev, old, False) + + newdesc = get_amended_desc(drev, old, fold) # Make sure commit message contain "Differential Revision" if old.description() != newdesc: if old.phase() == phases.public: @@ -1380,21 +1474,53 @@ mapping[old.node()] = [newnode] + if fold: + # Defer updating the (single) Diff until all nodes are + # collected. No tags were created, so none need to be + # removed. + newnodes.append(newnode) + continue + _amend_diff_properties( unfi, drevid, [newnode], diffmap[old.node()] ) - # Remove local tags since it's no longer necessary - tagname = b'D%d' % drevid - if tagname in repo.tags(): - tags.tag( - repo, - tagname, - nullid, - message=None, - user=None, - date=None, - local=True, + + # Remove local tags since it's no longer necessary + tagname = b'D%d' % drevid + if tagname in repo.tags(): + tags.tag( + repo, + tagname, + nullid, + message=None, + user=None, + date=None, + local=True, + ) + elif fold: + # When folding multiple commits into one review with + # --fold, track even the commits that weren't amended, so + # that their association isn't lost if the properties are + # rewritten below. + newnodes.append(old.node()) + + if fold: + diff = diffmap[old.node()] + + # The diff object in diffmap doesn't have the local commits + # because that could be returned from differential.creatediff, + # not differential.querydiffs. So use the queried diff (if + # present), or force the amend (a new revision is being posted.) + if not olddiff or set(newnodes) != getlocalcommits(olddiff): + _debug(ui, b"updating local commit list for D%d\n" % drevid) + _amend_diff_properties(unfi, drevid, newnodes, diff) + else: + _debug( + ui, + b"local commit list for D%d is already up-to-date\n" + % drevid, ) + scmutil.cleanupnodes(repo, mapping, b'phabsend', fixphase=True) if wnode in mapping: unfi.setparents(mapping[wnode][0]) diff --git a/tests/phabricator/phabsend-fold-extend-end.json b/tests/phabricator/phabsend-fold-extend-end.json new file mode 100644 --- /dev/null +++ b/tests/phabricator/phabsend-fold-extend-end.json @@ -0,0 +1,889 @@ +{ + "version": 1, + "interactions": [ + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"299\":{\"id\":\"299\",\"revisionID\":\"228\",\"dateCreated\":\"1584540671\",\"dateModified\":\"1584540672\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"410\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"yXvxVg6uibwd\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+modified\\n\"}]},{\"id\":\"409\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"298\":{\"id\":\"298\",\"revisionID\":\"228\",\"dateCreated\":\"1584540669\",\"dateModified\":\"1584540670\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"408\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"yXvxVg6uibwd\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+modified\\n\"}]},{\"id\":\"407\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"297\":{\"id\":\"297\",\"revisionID\":\"228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540666\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"406\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parents\":[\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0},\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"}},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "5925" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:18 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22revisionIDs%22%3A+%5B228%2C+228%2C+228%5D%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "167" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.querydiffs" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"data\":[],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "157" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22global%22%5D%7D%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "187" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/diffusion.repository.search" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"diffid\":300,\"phid\":\"PHID-DIFF-wjuxqm4ki5qshuwjeslu\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/differential\\/diff\\/300\\/\"},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "168" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22file.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file.txt%22%2C+%22delLines%22%3A+1%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22-added%5Cn%2Bmod3%5Cn%22%2C+%22delLines%22%3A+1%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+1%2C+%22oldOffset%22%3A+1%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%7D%2C+%22oldPath%22%3A+%22file.txt%22%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+2%7D%2C+%22file2.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file2.txt%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Banother+mod%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+null%2C+%22sourceControlBaseRevision%22%3A+%2298d480e0d494906d9758c44c622951b429afd862%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "1707" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.creatediff" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "51" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%22730a13e820f3d9b73e76f718d60f8212b72b9abc%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+300%2C+%22name%22%3A+%22hg%3Ameta%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "480" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "51" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22730a13e820f3d9b73e76f718d60f8212b72b9abc%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22730a13e820f3d9b73e76f718d60f8212b72b9abc%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+300%2C+%22name%22%3A+%22local%3Acommits%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "1744" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"one: first commit to review\",\"testPlan\":\"LOL! What testing?!\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod1' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"one: first commit to review\"},{\"type\":\"testPlan\",\"value\":\"LOL! What testing?!\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod1' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "512" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnLOL%21++What+testing%3F%21%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "364" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"two: second commit to review\",\"testPlan\":\"Haha! yeah, right.\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod2' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"two: second commit to review\"},{\"type\":\"testPlan\",\"value\":\"Haha! yeah, right.\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod2' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "510" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22two%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnHaha%21+yeah%2C+right.%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "361" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"3: a commit with no detailed message\",\"revisionID\":228},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"3: a commit with no detailed message\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "300" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%223%3A+a+commit+with+no+detailed+message%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "260" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"four: extend the fold range\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"four: extend the fold range\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "266" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22four%3A+extend+the+fold+range%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "174" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"object\":{\"id\":228,\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-pz4ol5chxf6oznh\"},{\"phid\":\"PHID-XACT-DREV-eawnjwh77uzb3qs\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "209" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:19 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22objectIdentifier%22%3A+228%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-wjuxqm4ki5qshuwjeslu%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22one%3A+first+commit+to+review%22%7D%2C+%7B%22type%22%3A+%22testPlan%22%2C+%22value%22%3A+%22LOL%21++What+testing%3F%21%5Cn%5CnHaha%21+yeah%2C+right.%22%7D%2C+%7B%22type%22%3A+%22summary%22%2C+%22value%22%3A+%22This+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5Cntwo%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5Cn3%3A+a+commit+with+no+detailed+message%5Cn%5Cnfour%3A+extend+the+fold+range%22%7D%5D%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "780" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.revision.edit" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":[{\"id\":\"228\",\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\",\"title\":\"one: first commit to review\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/D228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584546799\",\"authorPHID\":\"PHID-USER-cdrkvn4szwoq3zqoc5qb\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":2,\"lines.removed\":1},\"branch\":\"default\",\"summary\":\"This file was modified with 'mod1' as its contents.\\n\\ntwo: second commit to review\\n\\nThis file was modified with 'mod2' as its contents.\\n\\n3: a commit with no detailed message\\n\\nfour: extend the fold range\",\"testPlan\":\"LOL! What testing?!\\n\\nHaha! yeah, right.\",\"lineCount\":\"3\",\"activeDiffPHID\":\"PHID-DIFF-wjuxqm4ki5qshuwjeslu\",\"diffs\":[\"300\",\"299\",\"298\",\"297\"],\"commits\":[],\"reviewers\":[],\"ccs\":[],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":null,\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "1960" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:20 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B228%5D%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "145" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.query" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "51" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:20 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+300%2C+%22name%22%3A+%22hg%3Ameta%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "480" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "content-length": [ + "51" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "referrer-policy": [ + "no-referrer" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "date": [ + "Wed, 18 Mar 2020 15:53:20 GMT" + ] + } + }, + "request": { + "body": "output=json&__conduit__=1¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+300%2C+%22name%22%3A+%22local%3Acommits%22%7D", + "headers": { + "content-type": [ + "application/x-www-form-urlencoded" + ], + "content-length": [ + "1744" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + } + } + ] +} \ No newline at end of file diff --git a/tests/phabricator/phabsend-fold-extend-front.json b/tests/phabricator/phabsend-fold-extend-front.json new file mode 100644 --- /dev/null +++ b/tests/phabricator/phabsend-fold-extend-front.json @@ -0,0 +1,957 @@ +{ + "version": 1, + "interactions": [ + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"300\":{\"id\":\"300\",\"revisionID\":\"228\",\"dateCreated\":\"1584546799\",\"dateModified\":\"1584546799\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"412\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"r1N4i770De9n\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+another mod\\n\"}]},{\"id\":\"411\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5e38a7505725b24df8c04c2a295c581c43b6a0b3\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"5e38a7505725b24df8c04c2a295c581c43b6a0b3\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5e38a7505725b24df8c04c2a295c581c43b6a0b3\",\"parents\":[\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"299\":{\"id\":\"299\",\"revisionID\":\"228\",\"dateCreated\":\"1584540671\",\"dateModified\":\"1584540672\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"410\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"yXvxVg6uibwd\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+modified\\n\"}]},{\"id\":\"409\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"298\":{\"id\":\"298\",\"revisionID\":\"228\",\"dateCreated\":\"1584540669\",\"dateModified\":\"1584540670\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"408\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"yXvxVg6uibwd\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+modified\\n\"}]},{\"id\":\"407\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"297\":{\"id\":\"297\",\"revisionID\":\"228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540666\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"406\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parents\":[\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0},\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"}},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "x-content-type-options": [ + "nosniff" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "date": [ + "Wed, 18 Mar 2020 17:37:59 GMT" + ], + "content-type": [ + "application/json" + ], + "cache-control": [ + "no-store" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "referrer-policy": [ + "no-referrer" + ], + "transfer-encoding": [ + "chunked" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.querydiffs", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22revisionIDs%22%3A+%5B228%2C+228%2C+228%2C+228%5D%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "174" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"data\":[],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:37:59 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "157" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/diffusion.repository.search", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22global%22%5D%7D%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "187" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"diffid\":301,\"phid\":\"PHID-DIFF-yw32d3ikk7xgrvokuybh\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/differential\\/diff\\/301\\/\"},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:37:59 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "168" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.creatediff", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22file.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file.txt%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Bmod3%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%2C+%22file2.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file2.txt%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Banother+mod%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+null%2C+%22sourceControlBaseRevision%22%3A+%220000000000000000000000000000000000000000%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "1724" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:37:59 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "51" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%2C+%5C%22parent%5C%22%3A+%5C%220000000000000000000000000000000000000000%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+301%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "480" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "51" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225e38a7505725b24df8c04c2a295c581c43b6a0b3%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%220000000000000000000000000000000000000000%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+301%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "2128" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"added file\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"added file\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "232" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22added+file%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "155" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"one: first commit to review\",\"testPlan\":\"LOL! What testing?!\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod1' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"one: first commit to review\"},{\"type\":\"testPlan\",\"value\":\"LOL! What testing?!\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod1' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "512" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnLOL%21++What+testing%3F%21%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "364" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"two: second commit to review\",\"testPlan\":\"Haha! yeah, right.\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod2' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"two: second commit to review\"},{\"type\":\"testPlan\",\"value\":\"Haha! yeah, right.\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod2' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "510" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22two%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnHaha%21+yeah%2C+right.%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "361" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"3: a commit with no detailed message\",\"revisionID\":228},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"3: a commit with no detailed message\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "300" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%223%3A+a+commit+with+no+detailed+message%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "260" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"four: extend the fold range\",\"revisionID\":228},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"four: extend the fold range\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "282" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22four%3A+extend+the+fold+range%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "251" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":{\"object\":{\"id\":229,\"phid\":\"PHID-DREV-y4ekpkv2gziziagi3mwz\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-llf5jpejbvnsni7\"},{\"phid\":\"PHID-XACT-DREV-o7wz3izqlh3f4wq\"},{\"phid\":\"PHID-XACT-DREV-7idntuw4bkhswt4\"},{\"phid\":\"PHID-XACT-DREV-aedznsiaxajtubn\"},{\"phid\":\"PHID-XACT-DREV-q3dvuhepha3n4ry\"}]},\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:00 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "335" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.revision.edit", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-yw32d3ikk7xgrvokuybh%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22added+file%22%7D%2C+%7B%22type%22%3A+%22testPlan%22%2C+%22value%22%3A+%22LOL%21++What+testing%3F%21%5Cn%5CnHaha%21+yeah%2C+right.%22%7D%2C+%7B%22type%22%3A+%22summary%22%2C+%22value%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5Cntwo%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5Cn3%3A+a+commit+with+no+detailed+message%5Cn%5Cnfour%3A+extend+the+fold+range%22%7D%5D%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "765" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":[{\"id\":\"229\",\"phid\":\"PHID-DREV-y4ekpkv2gziziagi3mwz\",\"title\":\"added file\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/D229\",\"dateCreated\":\"1584553081\",\"dateModified\":\"1584553081\",\"authorPHID\":\"PHID-USER-cdrkvn4szwoq3zqoc5qb\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":2,\"lines.removed\":0},\"branch\":\"default\",\"summary\":\"one: first commit to review\\n\\nThis file was modified with 'mod1' as its contents.\\n\\ntwo: second commit to review\\n\\nThis file was modified with 'mod2' as its contents.\\n\\n3: a commit with no detailed message\\n\\nfour: extend the fold range\",\"testPlan\":\"LOL! What testing?!\\n\\nHaha! yeah, right.\",\"lineCount\":\"2\",\"activeDiffPHID\":\"PHID-DIFF-yw32d3ikk7xgrvokuybh\",\"diffs\":[\"301\"],\"commits\":[],\"reviewers\":[],\"ccs\":[],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":null,\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:01 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "2208" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.query", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B229%5D%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "145" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:01 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "51" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%22769df1547476465dff8529eb6f951eb232d6a7ed%5C%22%2C+%5C%22parent%5C%22%3A+%5C%220000000000000000000000000000000000000000%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+301%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "480" + ] + } + } + }, + { + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + }, + "headers": { + "x-frame-options": [ + "Deny" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "cache-control": [ + "no-store" + ], + "content-type": [ + "application/json" + ], + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 17:38:01 GMT" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ], + "content-length": [ + "51" + ] + } + }, + "request": { + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty", + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%2213b0c920c66eb2cde6f3dc7b6d758057999507ae%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%2213b0c920c66eb2cde6f3dc7b6d758057999507ae%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22c4255dd7ca157aeb97f7dddeab6e04d25823a336%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22530dc5eeba61133e4e8b58d820c9e1bbe0068e5a%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22530dc5eeba61133e4e8b58d820c9e1bbe0068e5a%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%220000000000000000000000000000000000000000%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22769df1547476465dff8529eb6f951eb232d6a7ed%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22769df1547476465dff8529eb6f951eb232d6a7ed%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2213b0c920c66eb2cde6f3dc7b6d758057999507ae%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22c4255dd7ca157aeb97f7dddeab6e04d25823a336%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22c4255dd7ca157aeb97f7dddeab6e04d25823a336%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22fe3e0d15e78d1e7973b43a0ddecb6212e6ea4b09%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22fe3e0d15e78d1e7973b43a0ddecb6212e6ea4b09%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22fe3e0d15e78d1e7973b43a0ddecb6212e6ea4b09%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22530dc5eeba61133e4e8b58d820c9e1bbe0068e5a%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+301%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "accept": [ + "application/mercurial-0.1" + ], + "host": [ + "seg.attotech.com:18080" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ], + "content-length": [ + "2128" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/tests/phabricator/phabsend-fold-no-changes.json b/tests/phabricator/phabsend-fold-no-changes.json new file mode 100644 --- /dev/null +++ b/tests/phabricator/phabsend-fold-no-changes.json @@ -0,0 +1,685 @@ +{ + "version": 1, + "interactions": [ + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22revisionIDs%22%3A+%5B228%2C+228%2C+228%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "167" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.querydiffs" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "3817" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"298\":{\"id\":\"298\",\"revisionID\":\"228\",\"dateCreated\":\"1584540669\",\"dateModified\":\"1584540670\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"408\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"yXvxVg6uibwd\"},\"oldPath\":null,\"currentPath\":\"file2.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":{\"unix:filemode\":\"100644\"},\"type\":\"1\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"0\",\"hunks\":[{\"oldOffset\":\"0\",\"newOffset\":\"1\",\"oldLength\":\"0\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"+modified\\n\"}]},{\"id\":\"407\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0},\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"5bc45b43505fa35b3e7e94a4c9985cda11f71ab7\",\"parents\":[\"1c403ed53e5cbc6d39b31feeb43459c0300bc377\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"},\"297\":{\"id\":\"297\",\"revisionID\":\"228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540666\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"406\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parents\":[\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0},\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"}},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22global%22%5D%7D%7D&__conduit__=1", + "headers": { + "content-length": [ + "187" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/diffusion.repository.search" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "157" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"data\":[],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22file.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file.txt%22%2C+%22delLines%22%3A+1%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22-added%5Cn%2Bmod3%5Cn%22%2C+%22delLines%22%3A+1%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+1%2C+%22oldOffset%22%3A+1%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%7D%2C+%22oldPath%22%3A+%22file.txt%22%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+2%7D%2C+%22file2.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file2.txt%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Bmodified%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+null%2C+%22sourceControlBaseRevision%22%3A+%2298d480e0d494906d9758c44c622951b429afd862%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1704" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.creatediff" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "168" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"diffid\":299,\"phid\":\"PHID-DIFF-wyhl4c7uc6hoynlzo3fb\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/differential\\/diff\\/299\\/\"},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+299%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "480" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+299%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1360" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnLOL%21++What+testing%3F%21%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "364" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "512" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"one: first commit to review\",\"testPlan\":\"LOL! What testing?!\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod1' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"one: first commit to review\"},{\"type\":\"testPlan\",\"value\":\"LOL! What testing?!\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod1' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22two%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnHaha%21+yeah%2C+right.%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "361" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:11 GMT" + ], + "content-length": [ + "510" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"two: second commit to review\",\"testPlan\":\"Haha! yeah, right.\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod2' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"two: second commit to review\"},{\"type\":\"testPlan\",\"value\":\"Haha! yeah, right.\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod2' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%223%3A+a+commit+with+no+detailed+message%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "260" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:12 GMT" + ], + "content-length": [ + "300" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"3: a commit with no detailed message\",\"revisionID\":228},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"3: a commit with no detailed message\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22objectIdentifier%22%3A+228%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-wyhl4c7uc6hoynlzo3fb%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22one%3A+first+commit+to+review%22%7D%2C+%7B%22type%22%3A+%22testPlan%22%2C+%22value%22%3A+%22LOL%21++What+testing%3F%21%5Cn%5CnHaha%21+yeah%2C+right.%22%7D%2C+%7B%22type%22%3A+%22summary%22%2C+%22value%22%3A+%22This+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5Cntwo%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5Cn3%3A+a+commit+with+no+detailed+message%22%7D%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "743" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.revision.edit" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:12 GMT" + ], + "content-length": [ + "167" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"object\":{\"id\":228,\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-5mixabe4z6cr5j2\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B228%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "145" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.query" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:12 GMT" + ], + "content-length": [ + "1671" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":[{\"id\":\"228\",\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\",\"title\":\"one: first commit to review\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/D228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540672\",\"authorPHID\":\"PHID-USER-cdrkvn4szwoq3zqoc5qb\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":2,\"lines.removed\":1},\"branch\":\"default\",\"summary\":\"This file was modified with 'mod1' as its contents.\\n\\ntwo: second commit to review\\n\\nThis file was modified with 'mod2' as its contents.\\n\\n3: a commit with no detailed message\",\"testPlan\":\"LOL! What testing?!\\n\\nHaha! yeah, right.\",\"lineCount\":\"3\",\"activeDiffPHID\":\"PHID-DIFF-wyhl4c7uc6hoynlzo3fb\",\"diffs\":[\"299\",\"298\",\"297\"],\"commits\":[],\"reviewers\":[],\"ccs\":[],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":null,\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/phabricator/phabsend-fold-updated.json b/tests/phabricator/phabsend-fold-updated.json new file mode 100644 --- /dev/null +++ b/tests/phabricator/phabsend-fold-updated.json @@ -0,0 +1,821 @@ +{ + "version": 1, + "interactions": [ + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22revisionIDs%22%3A+%5B228%2C+228%2C+228%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "167" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.querydiffs" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:09 GMT" + ], + "content-length": [ + "1709" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"297\":{\"id\":\"297\",\"revisionID\":\"228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540666\",\"sourceControlBaseRevision\":\"98d480e0d494906d9758c44c622951b429afd862\",\"sourceControlPath\":\"\\/\",\"sourceControlSystem\":\"hg\",\"branch\":\"default\",\"bookmark\":null,\"creationMethod\":\"phabsend\",\"description\":null,\"unitStatus\":\"0\",\"lintStatus\":\"0\",\"changes\":[{\"id\":\"406\",\"metadata\":{\"line:first\":1,\"hash.effect\":\"cAKuVP31KNrx\"},\"oldPath\":\"file.txt\",\"currentPath\":\"file.txt\",\"awayPaths\":[],\"oldProperties\":[],\"newProperties\":[],\"type\":\"2\",\"fileType\":\"1\",\"commitHash\":null,\"addLines\":\"1\",\"delLines\":\"1\",\"hunks\":[{\"oldOffset\":\"1\",\"newOffset\":\"1\",\"oldLength\":\"1\",\"newLength\":\"1\",\"addLines\":null,\"delLines\":null,\"isMissingOldNewline\":null,\"isMissingNewNewline\":null,\"corpus\":\"-added\\n+mod3\\n\"}]}],\"properties\":{\"hg:meta\":{\"branch\":\"default\",\"date\":\"0 0\",\"node\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parent\":\"98d480e0d494906d9758c44c622951b429afd862\",\"user\":\"test\"},\"local:commits\":{\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"18aa8410c577ee9a972c3011d2c9ed2bac9e6df1\",\"parents\":[\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\"],\"time\":0},\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\",\"parents\":[\"98d480e0d494906d9758c44c622951b429afd862\"],\"time\":0},\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\":{\"author\":\"test\",\"authorEmail\":\"test\",\"branch\":\"default\",\"commit\":\"f4b7df7b9116d260efdf8ec41cfd2b269e0529df\",\"parents\":[\"ebffa7dae1fc179fd0f65df8368ea2a020156b50\"],\"time\":0}}},\"authorName\":\"test\",\"authorEmail\":\"test\"}},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22global%22%5D%7D%7D&__conduit__=1", + "headers": { + "content-length": [ + "187" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/diffusion.repository.search" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:09 GMT" + ], + "content-length": [ + "157" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"data\":[],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22file.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file.txt%22%2C+%22delLines%22%3A+1%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22-added%5Cn%2Bmod3%5Cn%22%2C+%22delLines%22%3A+1%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+1%2C+%22oldOffset%22%3A+1%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%7D%2C+%22oldPath%22%3A+%22file.txt%22%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+2%7D%2C+%22file2.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file2.txt%22%2C+%22delLines%22%3A+0%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22%2Bmodified%5Cn%22%2C+%22delLines%22%3A+0%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+0%2C+%22oldOffset%22%3A+0%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%22unix%3Afilemode%22%3A+%22100644%22%7D%2C+%22oldPath%22%3A+null%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+1%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+null%2C+%22sourceControlBaseRevision%22%3A+%2298d480e0d494906d9758c44c622951b429afd862%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1704" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.creatediff" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:09 GMT" + ], + "content-length": [ + "168" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"diffid\":298,\"phid\":\"PHID-DIFF-cs6d4zo5njeejvzk46l4\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/differential\\/diff\\/298\\/\"},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+298%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "480" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:09 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+298%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1360" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnLOL%21++What+testing%3F%21%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "364" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "512" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"one: first commit to review\",\"testPlan\":\"LOL! What testing?!\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod1' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"one: first commit to review\"},{\"type\":\"testPlan\",\"value\":\"LOL! What testing?!\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod1' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22two%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnHaha%21+yeah%2C+right.%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "361" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "510" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"two: second commit to review\",\"testPlan\":\"Haha! yeah, right.\",\"revisionID\":228,\"summary\":\"This file was modified with 'mod2' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"two: second commit to review\"},{\"type\":\"testPlan\",\"value\":\"Haha! yeah, right.\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod2' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%223%3A+a+commit+with+no+detailed+message%5Cn%5CnDifferential+Revision%3A+http%3A%2F%2Fseg.attotech.com%3A18080%2FD228%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "260" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "300" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"3: a commit with no detailed message\",\"revisionID\":228},\"revisionIDFieldInfo\":{\"value\":228,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"3: a commit with no detailed message\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22objectIdentifier%22%3A+228%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-cs6d4zo5njeejvzk46l4%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22one%3A+first+commit+to+review%22%7D%2C+%7B%22type%22%3A+%22testPlan%22%2C+%22value%22%3A+%22LOL%21++What+testing%3F%21%5Cn%5CnHaha%21+yeah%2C+right.%22%7D%2C+%7B%22type%22%3A+%22summary%22%2C+%22value%22%3A+%22This+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5Cntwo%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5Cn3%3A+a+commit+with+no+detailed+message%22%7D%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "743" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.revision.edit" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "167" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"object\":{\"id\":228,\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-xk6vxshjhsg3cj2\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B228%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "145" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.query" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "1665" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":[{\"id\":\"228\",\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\",\"title\":\"one: first commit to review\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/D228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540670\",\"authorPHID\":\"PHID-USER-cdrkvn4szwoq3zqoc5qb\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":2,\"lines.removed\":1},\"branch\":\"default\",\"summary\":\"This file was modified with 'mod1' as its contents.\\n\\ntwo: second commit to review\\n\\nThis file was modified with 'mod2' as its contents.\\n\\n3: a commit with no detailed message\",\"testPlan\":\"LOL! What testing?!\\n\\nHaha! yeah, right.\",\"lineCount\":\"3\",\"activeDiffPHID\":\"PHID-DIFF-cs6d4zo5njeejvzk46l4\",\"diffs\":[\"298\",\"297\"],\"commits\":[],\"reviewers\":[],\"ccs\":[],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":null,\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+298%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "480" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%225bc45b43505fa35b3e7e94a4c9985cda11f71ab7%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%221c403ed53e5cbc6d39b31feeb43459c0300bc377%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+298%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1360" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:10 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/phabricator/phabsend-initial-fold.json b/tests/phabricator/phabsend-initial-fold.json new file mode 100644 --- /dev/null +++ b/tests/phabricator/phabsend-initial-fold.json @@ -0,0 +1,753 @@ +{ + "version": 1, + "interactions": [ + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22constraints%22%3A+%7B%22callsigns%22%3A+%5B%22global%22%5D%7D%7D&__conduit__=1", + "headers": { + "content-length": [ + "187" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/diffusion.repository.search" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:05 GMT" + ], + "content-length": [ + "157" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"data\":[],\"maps\":{},\"query\":{\"queryKey\":null},\"cursor\":{\"limit\":100,\"after\":null,\"before\":null,\"order\":null}},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22bookmark%22%3A+null%2C+%22branch%22%3A+%22default%22%2C+%22changes%22%3A+%7B%22file.txt%22%3A+%7B%22addLines%22%3A+1%2C+%22awayPaths%22%3A+%5B%5D%2C+%22commitHash%22%3A+null%2C+%22currentPath%22%3A+%22file.txt%22%2C+%22delLines%22%3A+1%2C+%22fileType%22%3A+1%2C+%22hunks%22%3A+%5B%7B%22addLines%22%3A+1%2C+%22corpus%22%3A+%22-added%5Cn%2Bmod3%5Cn%22%2C+%22delLines%22%3A+1%2C+%22newLength%22%3A+1%2C+%22newOffset%22%3A+1%2C+%22oldLength%22%3A+1%2C+%22oldOffset%22%3A+1%7D%5D%2C+%22metadata%22%3A+%7B%7D%2C+%22newProperties%22%3A+%7B%7D%2C+%22oldPath%22%3A+%22file.txt%22%2C+%22oldProperties%22%3A+%7B%7D%2C+%22type%22%3A+2%7D%7D%2C+%22creationMethod%22%3A+%22phabsend%22%2C+%22lintStatus%22%3A+%22none%22%2C+%22repositoryPHID%22%3A+null%2C+%22sourceControlBaseRevision%22%3A+%2298d480e0d494906d9758c44c622951b429afd862%22%2C+%22sourceControlPath%22%3A+%22%2F%22%2C+%22sourceControlSystem%22%3A+%22hg%22%2C+%22sourceMachine%22%3A+%22%22%2C+%22sourcePath%22%3A+%22%2F%22%2C+%22unitStatus%22%3A+%22none%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1128" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.creatediff" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:05 GMT" + ], + "content-length": [ + "168" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"diffid\":297,\"phid\":\"PHID-DIFF-qxjpy75yihlwt6q4lb4u\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/differential\\/diff\\/297\\/\"},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%22d235829e802c98c0171dac4a265b4b9bad07093a%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+297%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "480" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%2224a4438154bad90603d53a4dd31d8daff7844b36%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%2224a4438154bad90603d53a4dd31d8daff7844b36%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22a959a3f69d8d498d96102cda0bc03ed89706891e%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22a959a3f69d8d498d96102cda0bc03ed89706891e%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22a959a3f69d8d498d96102cda0bc03ed89706891e%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22d235829e802c98c0171dac4a265b4b9bad07093a%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22d235829e802c98c0171dac4a265b4b9bad07093a%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2224a4438154bad90603d53a4dd31d8daff7844b36%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+297%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1360" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22one%3A+first+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnLOL%21++What+testing%3F%21%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "287" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "496" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"one: first commit to review\",\"testPlan\":\"LOL! What testing?!\",\"summary\":\"This file was modified with 'mod1' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"one: first commit to review\"},{\"type\":\"testPlan\",\"value\":\"LOL! What testing?!\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod1' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%22two%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5CnTest+Plan%3A%5CnHaha%21+yeah%2C+right.%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "284" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "494" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"two: second commit to review\",\"testPlan\":\"Haha! yeah, right.\",\"summary\":\"This file was modified with 'mod2' as its contents.\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"two: second commit to review\"},{\"type\":\"testPlan\",\"value\":\"Haha! yeah, right.\"},{\"type\":\"summary\",\"value\":\"This file was modified with 'mod2' as its contents.\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22corpus%22%3A+%223%3A+a+commit+with+no+detailed+message%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "183" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.parsecommitmessage" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "284" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"errors\":[],\"fields\":{\"title\":\"3: a commit with no detailed message\"},\"revisionIDFieldInfo\":{\"value\":null,\"validDomain\":\"http:\\/\\/seg.attotech.com:18080\"},\"transactions\":[{\"type\":\"title\",\"value\":\"3: a commit with no detailed message\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22transactions%22%3A+%5B%7B%22type%22%3A+%22update%22%2C+%22value%22%3A+%22PHID-DIFF-qxjpy75yihlwt6q4lb4u%22%7D%2C+%7B%22type%22%3A+%22title%22%2C+%22value%22%3A+%22one%3A+first+commit+to+review%22%7D%2C+%7B%22type%22%3A+%22testPlan%22%2C+%22value%22%3A+%22LOL%21++What+testing%3F%21%5Cn%5CnHaha%21+yeah%2C+right.%22%7D%2C+%7B%22type%22%3A+%22summary%22%2C+%22value%22%3A+%22This+file+was+modified+with+%27mod1%27+as+its+contents.%5Cn%5Cntwo%3A+second+commit+to+review%5Cn%5CnThis+file+was+modified+with+%27mod2%27+as+its+contents.%5Cn%5Cn3%3A+a+commit+with+no+detailed+message%22%7D%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "710" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.revision.edit" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:06 GMT" + ], + "content-length": [ + "335" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":{\"object\":{\"id\":228,\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\"},\"transactions\":[{\"phid\":\"PHID-XACT-DREV-kzah5v4mj3ftxy5\"},{\"phid\":\"PHID-XACT-DREV-l2hv4lv2yh5tpkn\"},{\"phid\":\"PHID-XACT-DREV-zuuejsihb5lpsfz\"},{\"phid\":\"PHID-XACT-DREV-llwoazew35vhu7x\"},{\"phid\":\"PHID-XACT-DREV-clxozpgqgmf6l3s\"}]},\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22ids%22%3A+%5B228%5D%7D&__conduit__=1", + "headers": { + "content-length": [ + "145" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.query" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:07 GMT" + ], + "content-length": [ + "1659" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":[{\"id\":\"228\",\"phid\":\"PHID-DREV-ga3belnqbsuyn4tvmtaa\",\"title\":\"one: first commit to review\",\"uri\":\"http:\\/\\/seg.attotech.com:18080\\/D228\",\"dateCreated\":\"1584540666\",\"dateModified\":\"1584540666\",\"authorPHID\":\"PHID-USER-cdrkvn4szwoq3zqoc5qb\",\"status\":\"0\",\"statusName\":\"Needs Review\",\"properties\":{\"draft.broadcast\":true,\"lines.added\":1,\"lines.removed\":1},\"branch\":\"default\",\"summary\":\"This file was modified with 'mod1' as its contents.\\n\\ntwo: second commit to review\\n\\nThis file was modified with 'mod2' as its contents.\\n\\n3: a commit with no detailed message\",\"testPlan\":\"LOL! What testing?!\\n\\nHaha! yeah, right.\",\"lineCount\":\"2\",\"activeDiffPHID\":\"PHID-DIFF-qxjpy75yihlwt6q4lb4u\",\"diffs\":[\"297\"],\"commits\":[],\"reviewers\":[],\"ccs\":[],\"hashes\":[[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"],[\"hgcm\",\"\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\"]],\"auxiliary\":{\"phabricator:projects\":[],\"phabricator:depends-on\":[]},\"repositoryPHID\":null,\"sourcePath\":\"\\/\"}],\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22date%5C%22%3A+%5C%220+0%5C%22%2C+%5C%22node%5C%22%3A+%5C%2218aa8410c577ee9a972c3011d2c9ed2bac9e6df1%5C%22%2C+%5C%22parent%5C%22%3A+%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%2C+%5C%22user%5C%22%3A+%5C%22test%5C%22%7D%22%2C+%22diff_id%22%3A+297%2C+%22name%22%3A+%22hg%3Ameta%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "480" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:07 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + }, + { + "request": { + "body": "output=json¶ms=%7B%22__conduit__%22%3A+%7B%22token%22%3A+%22cli-hahayouwish%22%7D%2C+%22data%22%3A+%22%7B%5C%2218aa8410c577ee9a972c3011d2c9ed2bac9e6df1%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%2218aa8410c577ee9a972c3011d2c9ed2bac9e6df1%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22f4b7df7b9116d260efdf8ec41cfd2b269e0529df%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%2298d480e0d494906d9758c44c622951b429afd862%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%2C+%5C%22f4b7df7b9116d260efdf8ec41cfd2b269e0529df%5C%22%3A+%7B%5C%22author%5C%22%3A+%5C%22test%5C%22%2C+%5C%22authorEmail%5C%22%3A+%5C%22test%5C%22%2C+%5C%22branch%5C%22%3A+%5C%22default%5C%22%2C+%5C%22commit%5C%22%3A+%5C%22f4b7df7b9116d260efdf8ec41cfd2b269e0529df%5C%22%2C+%5C%22parents%5C%22%3A+%5B%5C%22ebffa7dae1fc179fd0f65df8368ea2a020156b50%5C%22%5D%2C+%5C%22time%5C%22%3A+0%7D%7D%22%2C+%22diff_id%22%3A+297%2C+%22name%22%3A+%22local%3Acommits%22%7D&__conduit__=1", + "headers": { + "content-length": [ + "1360" + ], + "content-type": [ + "application/x-www-form-urlencoded" + ], + "host": [ + "seg.attotech.com:18080" + ], + "accept": [ + "application/mercurial-0.1" + ], + "user-agent": [ + "mercurial/proto-1.0 (Mercurial 5.3+33-bb58931d0c4f)" + ] + }, + "method": "POST", + "uri": "http://seg.attotech.com:18080/api/differential.setdiffproperty" + }, + "response": { + "status": { + "message": "OK", + "code": 200 + }, + "headers": { + "referrer-policy": [ + "no-referrer" + ], + "date": [ + "Wed, 18 Mar 2020 14:11:07 GMT" + ], + "content-length": [ + "51" + ], + "server": [ + "Apache/2.4.41 (Unix) OpenSSL/1.1.0l PHP/7.3.10" + ], + "x-frame-options": [ + "Deny" + ], + "content-type": [ + "application/json" + ], + "content-security-policy": [ + "default-src 'self' http://seg.attotech.com:18080; img-src 'self' http://seg.attotech.com:18080 data:; style-src 'self' http://seg.attotech.com:18080 'unsafe-inline'; script-src 'self' http://seg.attotech.com:18080; connect-src 'self'; frame-src 'self'; frame-ancestors 'none'; object-src 'none'; form-action 'self'; base-uri 'none'" + ], + "cache-control": [ + "no-store" + ], + "expires": [ + "Sat, 01 Jan 2000 00:00:00 GMT" + ], + "x-content-type-options": [ + "nosniff" + ], + "x-powered-by": [ + "PHP/7.3.10" + ] + }, + "body": { + "string": "{\"result\":null,\"error_code\":null,\"error_info\":null}" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/test-phabricator.t b/tests/test-phabricator.t --- a/tests/test-phabricator.t +++ b/tests/test-phabricator.t @@ -2,6 +2,9 @@ $ cat >> $HGRCPATH < [extensions] > phabricator = + > + > [phabricator] + > debug = True > EOF $ hg init repo $ cd repo @@ -312,6 +315,7 @@ $ hg config phabricator --debug invalid JSON in $TESTTMP/repo/.arcconfig read config from: */.hgrc (glob) + */.hgrc:*: phabricator.debug=True (glob) $TESTTMP/repo/.hg/hgrc:*: phabricator.url=https://phab.mercurial-scm.org/ (glob) $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=HG (glob) @@ -325,6 +329,7 @@ $ mv .hg/hgrc .hg/hgrc.bak $ hg config phabricator --debug read config from: */.hgrc (glob) + */.hgrc:*: phabricator.debug=True (glob) $TESTTMP/repo/.arcconfig: phabricator.callsign=HG $TESTTMP/repo/.arcconfig: phabricator.url=https://phab.mercurial-scm.org/ @@ -336,6 +341,7 @@ > EOF $ hg config phabricator --debug read config from: */.hgrc (glob) + */.hgrc:*: phabricator.debug=True (glob) $TESTTMP/repo/.hg/hgrc:*: phabricator.url=local (glob) $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=local (glob) $ mv .hg/hgrc.bak .hg/hgrc @@ -395,4 +401,244 @@ applying patch from D7917 applying patch from D7918 +Validate arguments with --fold + + $ hg phabsend --fold -r 1 + abort: cannot fold a single revision + [255] + $ hg phabsend --fold --no-amend -r 1:: + abort: cannot fold with --no-amend + [255] + $ hg phabsend --fold -r 0+3 + abort: cannot fold non-linear revisions + [255] + $ hg phabsend --fold -r 1:: + abort: cannot fold revisions with different DREV values + [255] + +Setup a series of commits to be folded, and include the Test Plan field multiple +times to test the concatenation logic. No Test Plan field in the last one to +ensure missing fields are skipped. + + $ hg init ../folded + $ cd ../folded + + $ echo 'added' > file.txt + $ hg ci -Aqm 'added file' + + $ cat > log.txt < one: first commit to review + > + > This file was modified with 'mod1' as its contents. + > + > Test Plan: + > LOL! What testing?! + > EOF + $ echo mod1 > file.txt + $ hg ci -l log.txt + + $ cat > log.txt < two: second commit to review + > + > This file was modified with 'mod2' as its contents. + > + > Test Plan: + > Haha! yeah, right. + > + > EOF + $ echo mod2 > file.txt + $ hg ci -l log.txt + + $ echo mod3 > file.txt + $ hg ci -m '3: a commit with no detailed message' + +The initial fold works... + + $ echo y | hg phabsend --fold --confirm -r 1:: \ + > --test-vcr "$VCR/phabsend-initial-fold.json" \ + > --config phabricator.url=http://seg.attotech.com:18080 + NEW - a959a3f69d8d: one: first commit to review + NEW - 24a4438154ba: two: second commit to review + NEW - d235829e802c: 3: a commit with no detailed message + Send the above changes to http://seg.attotech.com:18080 (yn)? y + D228 - created - a959a3f69d8d: one: first commit to review + D228 - created - 24a4438154ba: two: second commit to review + D228 - created - d235829e802c: 3: a commit with no detailed message + updating local commit list for D228 + saved backup bundle to $TESTTMP/folded/.hg/strip-backup/a959a3f69d8d-a4a24136-phabsend.hg + +... and doesn't mangle the local commits. + + $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n' + 3:18aa8410c577 + 3: a commit with no detailed message + + Differential Revision: http://seg.attotech.com:18080/D228 + 2:f4b7df7b9116 + two: second commit to review + + This file was modified with 'mod2' as its contents. + + Test Plan: + Haha! yeah, right. + + Differential Revision: http://seg.attotech.com:18080/D228 + 1:ebffa7dae1fc + one: first commit to review + + This file was modified with 'mod1' as its contents. + + Test Plan: + LOL! What testing?! + + Differential Revision: http://seg.attotech.com:18080/D228 + 0:98d480e0d494 + added file + +Setup some obsmarkers by adding a file to the middle commit. This stress tests +getoldnodedrevmap() in later phabsends. + + $ hg up '.^' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo 'modified' > file2.txt + $ hg add file2.txt + $ hg amend --config experimental.evolution=all --config extensions.amend= + 1 new orphan changesets + $ hg up 3 + obsolete feature not enabled but 1 markers found! + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg rebase --config experimental.evolution=all --config extensions.rebase= + note: not rebasing 2:f4b7df7b9116 "two: second commit to review", already in destination as 4:1c403ed53e5c "two: second commit to review" (tip) + rebasing 3:18aa8410c577 "3: a commit with no detailed message" + +When commits have changed locally, the local commit list on Phabricator is +updated. + + $ echo y | hg phabsend --fold --confirm -r 1:: \ + > --test-vcr "$VCR/phabsend-fold-updated.json" \ + > --config phabricator.url=http://seg.attotech.com:18080 + obsolete feature not enabled but 2 markers found! + D228 - ebffa7dae1fc: one: first commit to review + D228 - 1c403ed53e5c: two: second commit to review + D228 - 5bc45b43505f: 3: a commit with no detailed message + Send the above changes to http://seg.attotech.com:18080 (yn)? y + D228 - updated - ebffa7dae1fc: one: first commit to review + D228 - updated - 1c403ed53e5c: two: second commit to review + D228 - updated - 5bc45b43505f: 3: a commit with no detailed message + obsolete feature not enabled but 2 markers found! + updating local commit list for D228 + $ hg log -Tcompact + obsolete feature not enabled but 2 markers found! + 5[tip] 5bc45b43505f 1970-01-01 00:00 +0000 test + 3: a commit with no detailed message + + 4:1 1c403ed53e5c 1970-01-01 00:00 +0000 test + two: second commit to review + + 1 ebffa7dae1fc 1970-01-01 00:00 +0000 test + one: first commit to review + + 0 98d480e0d494 1970-01-01 00:00 +0000 test + added file + +When nothing has changed locally since the last phabsend, the commit list isn't +updated, and nothing is changed locally afterward. + + $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-no-changes.json" \ + > --config phabricator.url=http://seg.attotech.com:18080 + obsolete feature not enabled but 2 markers found! + D228 - updated - ebffa7dae1fc: one: first commit to review + D228 - updated - 1c403ed53e5c: two: second commit to review + D228 - updated - 5bc45b43505f: 3: a commit with no detailed message + obsolete feature not enabled but 2 markers found! + local commit list for D228 is already up-to-date + $ hg log -Tcompact + obsolete feature not enabled but 2 markers found! + 5[tip] 5bc45b43505f 1970-01-01 00:00 +0000 test + 3: a commit with no detailed message + + 4:1 1c403ed53e5c 1970-01-01 00:00 +0000 test + two: second commit to review + + 1 ebffa7dae1fc 1970-01-01 00:00 +0000 test + one: first commit to review + + 0 98d480e0d494 1970-01-01 00:00 +0000 test + added file + +Fold will accept new revisions at the end... + + $ echo 'another mod' > file2.txt + $ hg ci -m 'four: extend the fold range' + obsolete feature not enabled but 2 markers found! + $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-extend-end.json" \ + > --config experimental.evolution=all \ + > --config phabricator.url=http://seg.attotech.com:18080 + D228 - updated - ebffa7dae1fc: one: first commit to review + D228 - updated - 1c403ed53e5c: two: second commit to review + D228 - updated - 5bc45b43505f: 3: a commit with no detailed message + D228 - created - 730a13e820f3: four: extend the fold range + updating local commit list for D228 + $ hg log -r . -T '{desc}\n' + four: extend the fold range + + Differential Revision: http://seg.attotech.com:18080/D228 + $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n' -r 1:: + obsolete feature not enabled but 3 markers found! + 1 http://seg.attotech.com:18080/D228 D228 + 4 http://seg.attotech.com:18080/D228 D228 + 5 http://seg.attotech.com:18080/D228 D228 + 7 http://seg.attotech.com:18080/D228 D228 + +... and also accepts new revisions at the beginning of the range + +It's a bit unfortunate that not having a Differential URL on the first commit +causes a new Differential Revision to be created, though it isn't *entirely* +unreasonable. At least this updates the subsequent commits. + +TODO: See if it can reuse the existing Differential. + + $ hg phabsend --fold -r 0:: --test-vcr "$VCR/phabsend-fold-extend-front.json" \ + > --config experimental.evolution=all \ + > --config phabricator.url=http://seg.attotech.com:18080 + D229 - created - 98d480e0d494: added file + D229 - updated - ebffa7dae1fc: one: first commit to review + D229 - updated - 1c403ed53e5c: two: second commit to review + D229 - updated - 5bc45b43505f: 3: a commit with no detailed message + D229 - updated - 5e38a7505725: four: extend the fold range + updating local commit list for D229 + + $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n' + obsolete feature not enabled but 8 markers found! + 12:769df1547476 + four: extend the fold range + + Differential Revision: http://seg.attotech.com:18080/D229 + 11:13b0c920c66e + 3: a commit with no detailed message + + Differential Revision: http://seg.attotech.com:18080/D229 + 10:c4255dd7ca15 + two: second commit to review + + This file was modified with 'mod2' as its contents. + + Test Plan: + Haha! yeah, right. + + Differential Revision: http://seg.attotech.com:18080/D229 + 9:fe3e0d15e78d + one: first commit to review + + This file was modified with 'mod1' as its contents. + + Test Plan: + LOL! What testing?! + + Differential Revision: http://seg.attotech.com:18080/D229 + 8:530dc5eeba61 + added file + + Differential Revision: http://seg.attotech.com:18080/D229 + $ cd ..