From 3f53c8ecf4705d37fc35ab08a9d480cd5e59a49c Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Thu, 27 May 2021 19:10:18 +0000 Subject: [PATCH] Don't even query Bugzilla for non-Bugzilla projects Follow-up to #272. Apply the is-a-Bugzilla-using-project check to the code which parses Bugzilla references and queries details for each from Bugzilla, too. The test suite fallout is larger this time because we need to patch the repo slug in the other-org tests, which means we can't reuse the existing payloads (at least not without introducing a "read this other payload, do a search&replace, and serve it instead" mechanism). --- .../github/notdlang_bar_merged_12347.json | 449 ++++++++++++++++++ .../hooks/github/notdlang_foo_open_12346.json | 432 +++++++++++++++++ ...b_repos_notdlang_bar_issues_12347_comments | 254 ++++++++++ ...hub_repos_notdlang_bar_pulls_12347_commits | 72 +++ ...b_repos_notdlang_foo_issues_12346_comments | 2 + ...hub_repos_notdlang_foo_issues_12346_labels | 3 + ...hub_repos_notdlang_foo_pulls_12346_commits | 72 +++ source/dlangbot/app.d | 2 +- test/bugzilla.d | 20 +- 9 files changed, 1292 insertions(+), 14 deletions(-) create mode 100644 data/hooks/github/notdlang_bar_merged_12347.json create mode 100644 data/hooks/github/notdlang_foo_open_12346.json create mode 100644 data/payloads/github_repos_notdlang_bar_issues_12347_comments create mode 100644 data/payloads/github_repos_notdlang_bar_pulls_12347_commits create mode 100644 data/payloads/github_repos_notdlang_foo_issues_12346_comments create mode 100644 data/payloads/github_repos_notdlang_foo_issues_12346_labels create mode 100644 data/payloads/github_repos_notdlang_foo_pulls_12346_commits diff --git a/data/hooks/github/notdlang_bar_merged_12347.json b/data/hooks/github/notdlang_bar_merged_12347.json new file mode 100644 index 0000000..58af0b5 --- /dev/null +++ b/data/hooks/github/notdlang_bar_merged_12347.json @@ -0,0 +1,449 @@ +{ + "action": "closed", + "number": 12347, + "pull_request": { + "url": "https://api.github.com/repos/notdlang/bar/pulls/12347", + "id": 98410165, + "html_url": "https://github.com/notdlang/bar/pull/12347", + "diff_url": "https://github.com/notdlang/bar/pull/12347.diff", + "patch_url": "https://github.com/notdlang/bar/pull/12347.patch", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "number": 12347, + "state": "closed", + "locked": false, + "title": "[DEMO for DIP1005] Converted imports to selective imports in std.array", + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "body": "For the second demo I managed to replace all imports with selective imports in std.array. It was a major effort that involved grepping for heuristics such as \"static if\", \"typeof\", \"^if\", \"compiles\", \"has\", \"\\Wis\" etc. A few examples of the difficulties for fun:\r\n\r\n1. Remove `isStaticArray` from the import list. The error is:\r\n\r\n```\r\nstd/conv.d(4169): Error: static assert \"DirIteratorImpl cannot be emplaced from (string, SpanMode, bool).\"\r\nstd/conv.d(4250): instantiated from here: emplaceRef!(DirIteratorImpl, DirIteratorImpl, string, SpanMode, bool)\r\nstd/typecons.d(4998): instantiated from here: emplace!(DirIteratorImpl, string, SpanMode, bool)\r\nstd/typecons.d(5091): instantiated from here: initialize!(string, SpanMode, bool)\r\nstd/file.d(3802): instantiated from here: __ctor!(string, SpanMode, bool)\r\n```\r\n\r\nThis alone took me some 15-20 minutes and almost had me give up.\r\n\r\n2, Remove `hasElaborateAssign` from the import list. The error is:\r\n\r\n```\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3812): Error: template instance std.conv.textImpl!(string, string, const(char)[]) error instantiating\r\nstd/format.d(912): instantiated from here: text!(string, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(103): Error: template instance std.format.FormatSpec!(immutable(char)) error instantiating\r\nstd/conv.d(939): instantiated from here: toStr!(string, dchar)\r\nstd/conv.d(172): instantiated from here: toImpl!(string, dchar)\r\nstd/conv.d(3857): instantiated from here: to!dchar\r\nstd/conv.d(3812): ... (4 instantiations, -v to show) ...\r\nstd/format.d(977): instantiated from here: parse!(int, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3812): Error: template instance std.conv.textImpl!(string, string, string, string) error instantiating\r\nstd/conv.d(58): instantiated from here: text!(string, string, string)\r\nstd/conv.d(2072): instantiated from here: convError!(const(char)[], int)\r\nstd/format.d(977): instantiated from here: parse!(int, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(2072): Error: template instance std.conv.convError!(const(char)[], uint) error instantiating\r\nstd/format.d(990): instantiated from here: parse!(uint, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/format.d(1011): Error: template instance std.conv.parse!(ubyte, const(char)[]) error instantiating\r\n```\r\n\r\n3. Remove `isAssignable`. Error message is:\r\n\r\n```\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3812): Error: template instance std.conv.textImpl!(string, string, const(char)[]) error instantiating\r\nstd/format.d(912): instantiated from here: text!(string, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(103): Error: template instance std.format.FormatSpec!(immutable(char)) error instantiating\r\nstd/conv.d(939): instantiated from here: toStr!(string, dchar)\r\nstd/conv.d(172): instantiated from here: toImpl!(string, dchar)\r\nstd/conv.d(3857): instantiated from here: to!dchar\r\nstd/conv.d(3812): ... (4 instantiations, -v to show) ...\r\nstd/format.d(977): instantiated from here: parse!(int, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3857): Error: template std.array.Appender!string.Appender.put cannot deduce function from argument types !()(string), candidates are:\r\nstd/array.d(2823): std.array.Appender!string.Appender.put(U)(U item) if (canPutItem!U)\r\nstd/array.d(2851): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutConstRange!Range)\r\nstd/array.d(2860): std.array.Appender!string.Appender.put(Range)(Range items) if (canPutRange!Range)\r\nstd/conv.d(3812): Error: template instance std.conv.textImpl!(string, string, string, string) error instantiating\r\nstd/conv.d(58): instantiated from here: text!(string, string, string)\r\nstd/conv.d(2072): instantiated from here: convError!(const(char)[], int)\r\nstd/format.d(977): instantiated from here: parse!(int, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/conv.d(2072): Error: template instance std.conv.convError!(const(char)[], uint) error instantiating\r\nstd/format.d(990): instantiated from here: parse!(uint, const(char)[])\r\nstd/bigint.d(867): instantiated from here: FormatSpec!char\r\nstd/format.d(1011): Error: template instance std.conv.parse!(ubyte, const(char)[]) error instantiating\r\n```\r\n\r\n4. Remove `isImplicitlyConvertible` with the result:\r\n\r\n```\r\nstd/range/primitives.d(347): Error: static assert \"Cannot put a const(char) into a Appender!string.\"\r\nstd/format.d(1452): instantiated from here: put!(Appender!string, const(char))\r\nstd/format.d(3485): instantiated from here: formatValue!(Appender!string, ulong, char)\r\nstd/format.d(464): instantiated from here: formatGeneric!(Appender!string, ulong, char)\r\nstd/format.d(6482): ... (1 instantiations, -v to show) ...\r\nstd/typecons.d(400): instantiated from here: format!(char, ulong, ulong)\r\nstd/encoding.d(3468): instantiated from here: Tuple!(BOM, \"schema\", ubyte[], \"sequence\")\r\n```\r\n\r\n", + "created_at": "2016-12-16T22:02:22Z", + "updated_at": "2016-12-17T17:26:17Z", + "closed_at": "2016-12-17T17:26:17Z", + "merged_at": "2016-12-17T17:26:17Z", + "merge_commit_sha": "996543316ee5d6212151b5dda2cb3489e3b31c5c", + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "commits_url": "https://api.github.com/repos/notdlang/bar/pulls/12347/commits", + "review_comments_url": "https://api.github.com/repos/notdlang/bar/pulls/12347/comments", + "review_comment_url": "https://api.github.com/repos/notdlang/bar/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/notdlang/bar/issues/12347/comments", + "statuses_url": "https://api.github.com/repos/notdlang/bar/statuses/e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "head": { + "label": "andralex:selective_import_demo", + "ref": "selective_import_demo", + "sha": "e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1415983, + "name": "bar", + "full_name": "andralex/bar", + "owner": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/andralex/bar", + "description": "Runtime library for the D programming language", + "fork": true, + "url": "https://api.github.com/repos/andralex/bar", + "forks_url": "https://api.github.com/repos/andralex/bar/forks", + "keys_url": "https://api.github.com/repos/andralex/bar/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/andralex/bar/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/andralex/bar/teams", + "hooks_url": "https://api.github.com/repos/andralex/bar/hooks", + "issue_events_url": "https://api.github.com/repos/andralex/bar/issues/events{/number}", + "events_url": "https://api.github.com/repos/andralex/bar/events", + "assignees_url": "https://api.github.com/repos/andralex/bar/assignees{/user}", + "branches_url": "https://api.github.com/repos/andralex/bar/branches{/branch}", + "tags_url": "https://api.github.com/repos/andralex/bar/tags", + "blobs_url": "https://api.github.com/repos/andralex/bar/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/andralex/bar/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/andralex/bar/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/andralex/bar/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/andralex/bar/statuses/{sha}", + "languages_url": "https://api.github.com/repos/andralex/bar/languages", + "stargazers_url": "https://api.github.com/repos/andralex/bar/stargazers", + "contributors_url": "https://api.github.com/repos/andralex/bar/contributors", + "subscribers_url": "https://api.github.com/repos/andralex/bar/subscribers", + "subscription_url": "https://api.github.com/repos/andralex/bar/subscription", + "commits_url": "https://api.github.com/repos/andralex/bar/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/andralex/bar/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/andralex/bar/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/andralex/bar/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/andralex/bar/contents/{+path}", + "compare_url": "https://api.github.com/repos/andralex/bar/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/andralex/bar/merges", + "archive_url": "https://api.github.com/repos/andralex/bar/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/andralex/bar/downloads", + "issues_url": "https://api.github.com/repos/andralex/bar/issues{/number}", + "pulls_url": "https://api.github.com/repos/andralex/bar/pulls{/number}", + "milestones_url": "https://api.github.com/repos/andralex/bar/milestones{/number}", + "notifications_url": "https://api.github.com/repos/andralex/bar/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/andralex/bar/labels{/name}", + "releases_url": "https://api.github.com/repos/andralex/bar/releases{/id}", + "deployments_url": "https://api.github.com/repos/andralex/bar/deployments", + "created_at": "2011-02-26T21:18:12Z", + "updated_at": "2015-09-27T06:56:02Z", + "pushed_at": "2016-12-17T16:50:22Z", + "git_url": "git://github.com/andralex/bar.git", + "ssh_url": "git@github.com:andralex/bar.git", + "clone_url": "https://github.com/andralex/bar.git", + "svn_url": "https://github.com/andralex/bar", + "homepage": "d-programming-language.org", + "size": 47965, + "stargazers_count": 24, + "watchers_count": 24, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 4, + "mirror_url": null, + "open_issues_count": 0, + "forks": 4, + "open_issues": 0, + "watchers": 24, + "default_branch": "master" + } + }, + "base": { + "label": "notdlang:master", + "ref": "master", + "sha": "f3a840144a156fce5efee82ca13152c2ac1ef1c3", + "user": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 1257084, + "name": "bar", + "full_name": "notdlang/bar", + "owner": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/notdlang/bar", + "description": "The standard library of the D programming language", + "fork": false, + "url": "https://api.github.com/repos/notdlang/bar", + "forks_url": "https://api.github.com/repos/notdlang/bar/forks", + "keys_url": "https://api.github.com/repos/notdlang/bar/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/notdlang/bar/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/notdlang/bar/teams", + "hooks_url": "https://api.github.com/repos/notdlang/bar/hooks", + "issue_events_url": "https://api.github.com/repos/notdlang/bar/issues/events{/number}", + "events_url": "https://api.github.com/repos/notdlang/bar/events", + "assignees_url": "https://api.github.com/repos/notdlang/bar/assignees{/user}", + "branches_url": "https://api.github.com/repos/notdlang/bar/branches{/branch}", + "tags_url": "https://api.github.com/repos/notdlang/bar/tags", + "blobs_url": "https://api.github.com/repos/notdlang/bar/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/notdlang/bar/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/notdlang/bar/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/notdlang/bar/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/notdlang/bar/statuses/{sha}", + "languages_url": "https://api.github.com/repos/notdlang/bar/languages", + "stargazers_url": "https://api.github.com/repos/notdlang/bar/stargazers", + "contributors_url": "https://api.github.com/repos/notdlang/bar/contributors", + "subscribers_url": "https://api.github.com/repos/notdlang/bar/subscribers", + "subscription_url": "https://api.github.com/repos/notdlang/bar/subscription", + "commits_url": "https://api.github.com/repos/notdlang/bar/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/notdlang/bar/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/notdlang/bar/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/notdlang/bar/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/notdlang/bar/contents/{+path}", + "compare_url": "https://api.github.com/repos/notdlang/bar/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/notdlang/bar/merges", + "archive_url": "https://api.github.com/repos/notdlang/bar/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/notdlang/bar/downloads", + "issues_url": "https://api.github.com/repos/notdlang/bar/issues{/number}", + "pulls_url": "https://api.github.com/repos/notdlang/bar/pulls{/number}", + "milestones_url": "https://api.github.com/repos/notdlang/bar/milestones{/number}", + "notifications_url": "https://api.github.com/repos/notdlang/bar/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/notdlang/bar/labels{/name}", + "releases_url": "https://api.github.com/repos/notdlang/bar/releases{/id}", + "deployments_url": "https://api.github.com/repos/notdlang/bar/deployments", + "created_at": "2011-01-15T07:00:06Z", + "updated_at": "2016-12-17T02:47:12Z", + "pushed_at": "2016-12-17T17:26:17Z", + "git_url": "git://github.com/notdlang/bar.git", + "ssh_url": "git@github.com:notdlang/bar.git", + "clone_url": "https://github.com/notdlang/bar.git", + "svn_url": "https://github.com/notdlang/bar", + "homepage": "notdlang.org/bar", + "size": 47676, + "stargazers_count": 761, + "watchers_count": 761, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 524, + "mirror_url": null, + "open_issues_count": 85, + "forks": 524, + "open_issues": 85, + "watchers": 761, + "default_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/notdlang/bar/pulls/12347" + }, + "html": { + "href": "https://github.com/notdlang/bar/pull/12347" + }, + "issue": { + "href": "https://api.github.com/repos/notdlang/bar/issues/12347" + }, + "comments": { + "href": "https://api.github.com/repos/notdlang/bar/issues/12347/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/notdlang/bar/pulls/12347/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/notdlang/bar/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/notdlang/bar/pulls/12347/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/notdlang/bar/statuses/e064d5664f92c4b2f0866c08f6d0290ba66825ed" + } + }, + "merged": true, + "mergeable": null, + "mergeable_state": "unknown", + "merged_by": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "comments": 4, + "review_comments": 0, + "commits": 1, + "additions": 14, + "deletions": 8, + "changed_files": 1 + }, + "repository": { + "id": 1257084, + "name": "bar", + "full_name": "notdlang/bar", + "owner": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/notdlang/bar", + "description": "The standard library of the D programming language", + "fork": false, + "url": "https://api.github.com/repos/notdlang/bar", + "forks_url": "https://api.github.com/repos/notdlang/bar/forks", + "keys_url": "https://api.github.com/repos/notdlang/bar/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/notdlang/bar/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/notdlang/bar/teams", + "hooks_url": "https://api.github.com/repos/notdlang/bar/hooks", + "issue_events_url": "https://api.github.com/repos/notdlang/bar/issues/events{/number}", + "events_url": "https://api.github.com/repos/notdlang/bar/events", + "assignees_url": "https://api.github.com/repos/notdlang/bar/assignees{/user}", + "branches_url": "https://api.github.com/repos/notdlang/bar/branches{/branch}", + "tags_url": "https://api.github.com/repos/notdlang/bar/tags", + "blobs_url": "https://api.github.com/repos/notdlang/bar/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/notdlang/bar/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/notdlang/bar/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/notdlang/bar/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/notdlang/bar/statuses/{sha}", + "languages_url": "https://api.github.com/repos/notdlang/bar/languages", + "stargazers_url": "https://api.github.com/repos/notdlang/bar/stargazers", + "contributors_url": "https://api.github.com/repos/notdlang/bar/contributors", + "subscribers_url": "https://api.github.com/repos/notdlang/bar/subscribers", + "subscription_url": "https://api.github.com/repos/notdlang/bar/subscription", + "commits_url": "https://api.github.com/repos/notdlang/bar/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/notdlang/bar/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/notdlang/bar/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/notdlang/bar/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/notdlang/bar/contents/{+path}", + "compare_url": "https://api.github.com/repos/notdlang/bar/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/notdlang/bar/merges", + "archive_url": "https://api.github.com/repos/notdlang/bar/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/notdlang/bar/downloads", + "issues_url": "https://api.github.com/repos/notdlang/bar/issues{/number}", + "pulls_url": "https://api.github.com/repos/notdlang/bar/pulls{/number}", + "milestones_url": "https://api.github.com/repos/notdlang/bar/milestones{/number}", + "notifications_url": "https://api.github.com/repos/notdlang/bar/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/notdlang/bar/labels{/name}", + "releases_url": "https://api.github.com/repos/notdlang/bar/releases{/id}", + "deployments_url": "https://api.github.com/repos/notdlang/bar/deployments", + "created_at": "2011-01-15T07:00:06Z", + "updated_at": "2016-12-17T02:47:12Z", + "pushed_at": "2016-12-17T17:26:17Z", + "git_url": "git://github.com/notdlang/bar.git", + "ssh_url": "git@github.com:notdlang/bar.git", + "clone_url": "https://github.com/notdlang/bar.git", + "svn_url": "https://github.com/notdlang/bar", + "homepage": "notdlang.org/bar", + "size": 47676, + "stargazers_count": 761, + "watchers_count": 761, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 524, + "mirror_url": null, + "open_issues_count": 85, + "forks": 524, + "open_issues": 85, + "watchers": 761, + "default_branch": "master" + }, + "organization": { + "login": "notdlang", + "id": 565913, + "url": "https://api.github.com/orgs/notdlang", + "repos_url": "https://api.github.com/orgs/notdlang/repos", + "events_url": "https://api.github.com/orgs/notdlang/events", + "hooks_url": "https://api.github.com/orgs/notdlang/hooks", + "issues_url": "https://api.github.com/orgs/notdlang/issues", + "members_url": "https://api.github.com/orgs/notdlang/members{/member}", + "public_members_url": "https://api.github.com/orgs/notdlang/public_members{/member}", + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "description": null + }, + "sender": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + } +} \ No newline at end of file diff --git a/data/hooks/github/notdlang_foo_open_12346.json b/data/hooks/github/notdlang_foo_open_12346.json new file mode 100644 index 0000000..3c76ccd --- /dev/null +++ b/data/hooks/github/notdlang_foo_open_12346.json @@ -0,0 +1,432 @@ +{ + "action": "opened", + "number": 12346, + "pull_request": { + "url": "https://api.github.com/repos/notdlang/foo/pulls/12346", + "id": 99308457, + "html_url": "https://github.com/notdlang/foo/pull/12346", + "diff_url": "https://github.com/notdlang/foo/pull/12346.diff", + "patch_url": "https://github.com/notdlang/foo/pull/12346.patch", + "issue_url": "https://api.github.com/repos/notdlang/foo/issues/12346", + "number": 12346, + "state": "open", + "locked": false, + "title": "fix Issue 16794 - foo not working on Ubuntu 16.10", + "user": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + }, + "body": "- enable PIC by default on amd64 linux (no significant overhead, full\n PIC/PIE support)\n- also see https://github.com/notdlang/installer/pull/207", + "created_at": "2016-12-24T18:00:40Z", + "updated_at": "2016-12-24T18:00:40Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": null, + "assignee": null, + "assignees": [ + + ], + "milestone": null, + "commits_url": "https://api.github.com/repos/notdlang/foo/pulls/12346/commits", + "review_comments_url": "https://api.github.com/repos/notdlang/foo/pulls/12346/comments", + "review_comment_url": "https://api.github.com/repos/notdlang/foo/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/notdlang/foo/issues/12346/comments", + "statuses_url": "https://api.github.com/repos/notdlang/foo/statuses/9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "head": { + "label": "MartinNowak:fix16794", + "ref": "fix16794", + "sha": "9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "user": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1494042, + "name": "foo", + "full_name": "MartinNowak/foo", + "owner": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/MartinNowak/foo", + "description": "foo D Programming Language compiler", + "fork": true, + "url": "https://api.github.com/repos/MartinNowak/foo", + "forks_url": "https://api.github.com/repos/MartinNowak/foo/forks", + "keys_url": "https://api.github.com/repos/MartinNowak/foo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MartinNowak/foo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MartinNowak/foo/teams", + "hooks_url": "https://api.github.com/repos/MartinNowak/foo/hooks", + "issue_events_url": "https://api.github.com/repos/MartinNowak/foo/issues/events{/number}", + "events_url": "https://api.github.com/repos/MartinNowak/foo/events", + "assignees_url": "https://api.github.com/repos/MartinNowak/foo/assignees{/user}", + "branches_url": "https://api.github.com/repos/MartinNowak/foo/branches{/branch}", + "tags_url": "https://api.github.com/repos/MartinNowak/foo/tags", + "blobs_url": "https://api.github.com/repos/MartinNowak/foo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MartinNowak/foo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MartinNowak/foo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MartinNowak/foo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MartinNowak/foo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MartinNowak/foo/languages", + "stargazers_url": "https://api.github.com/repos/MartinNowak/foo/stargazers", + "contributors_url": "https://api.github.com/repos/MartinNowak/foo/contributors", + "subscribers_url": "https://api.github.com/repos/MartinNowak/foo/subscribers", + "subscription_url": "https://api.github.com/repos/MartinNowak/foo/subscription", + "commits_url": "https://api.github.com/repos/MartinNowak/foo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MartinNowak/foo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MartinNowak/foo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MartinNowak/foo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MartinNowak/foo/contents/{+path}", + "compare_url": "https://api.github.com/repos/MartinNowak/foo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MartinNowak/foo/merges", + "archive_url": "https://api.github.com/repos/MartinNowak/foo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MartinNowak/foo/downloads", + "issues_url": "https://api.github.com/repos/MartinNowak/foo/issues{/number}", + "pulls_url": "https://api.github.com/repos/MartinNowak/foo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MartinNowak/foo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MartinNowak/foo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MartinNowak/foo/labels{/name}", + "releases_url": "https://api.github.com/repos/MartinNowak/foo/releases{/id}", + "deployments_url": "https://api.github.com/repos/MartinNowak/foo/deployments", + "created_at": "2011-03-17T23:58:29Z", + "updated_at": "2015-09-02T08:37:46Z", + "pushed_at": "2016-12-24T18:00:40Z", + "git_url": "git://github.com/MartinNowak/foo.git", + "ssh_url": "git@github.com:MartinNowak/foo.git", + "clone_url": "https://github.com/MartinNowak/foo.git", + "svn_url": "https://github.com/MartinNowak/foo", + "homepage": "d-programming-language.org", + "size": 67448, + "stargazers_count": 1, + "watchers_count": 1, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 1, + "default_branch": "master" + } + }, + "base": { + "label": "notdlang:stable", + "ref": "stable", + "sha": "907e2eff63da664406b2250566738be5aafaf043", + "user": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 1257070, + "name": "foo", + "full_name": "notdlang/foo", + "owner": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/notdlang/foo", + "description": "foo D Programming Language compiler", + "fork": false, + "url": "https://api.github.com/repos/notdlang/foo", + "forks_url": "https://api.github.com/repos/notdlang/foo/forks", + "keys_url": "https://api.github.com/repos/notdlang/foo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/notdlang/foo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/notdlang/foo/teams", + "hooks_url": "https://api.github.com/repos/notdlang/foo/hooks", + "issue_events_url": "https://api.github.com/repos/notdlang/foo/issues/events{/number}", + "events_url": "https://api.github.com/repos/notdlang/foo/events", + "assignees_url": "https://api.github.com/repos/notdlang/foo/assignees{/user}", + "branches_url": "https://api.github.com/repos/notdlang/foo/branches{/branch}", + "tags_url": "https://api.github.com/repos/notdlang/foo/tags", + "blobs_url": "https://api.github.com/repos/notdlang/foo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/notdlang/foo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/notdlang/foo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/notdlang/foo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/notdlang/foo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/notdlang/foo/languages", + "stargazers_url": "https://api.github.com/repos/notdlang/foo/stargazers", + "contributors_url": "https://api.github.com/repos/notdlang/foo/contributors", + "subscribers_url": "https://api.github.com/repos/notdlang/foo/subscribers", + "subscription_url": "https://api.github.com/repos/notdlang/foo/subscription", + "commits_url": "https://api.github.com/repos/notdlang/foo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/notdlang/foo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/notdlang/foo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/notdlang/foo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/notdlang/foo/contents/{+path}", + "compare_url": "https://api.github.com/repos/notdlang/foo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/notdlang/foo/merges", + "archive_url": "https://api.github.com/repos/notdlang/foo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/notdlang/foo/downloads", + "issues_url": "https://api.github.com/repos/notdlang/foo/issues{/number}", + "pulls_url": "https://api.github.com/repos/notdlang/foo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/notdlang/foo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/notdlang/foo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/notdlang/foo/labels{/name}", + "releases_url": "https://api.github.com/repos/notdlang/foo/releases{/id}", + "deployments_url": "https://api.github.com/repos/notdlang/foo/deployments", + "created_at": "2011-01-15T06:53:53Z", + "updated_at": "2016-12-21T14:16:08Z", + "pushed_at": "2016-12-24T17:40:24Z", + "git_url": "git://github.com/notdlang/foo.git", + "ssh_url": "git@github.com:notdlang/foo.git", + "clone_url": "https://github.com/notdlang/foo.git", + "svn_url": "https://github.com/notdlang/foo", + "homepage": "notdlang.org", + "size": 67924, + "stargazers_count": 1315, + "watchers_count": 1315, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 389, + "mirror_url": null, + "open_issues_count": 144, + "forks": 389, + "open_issues": 144, + "watchers": 1315, + "default_branch": "master" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/notdlang/foo/pulls/12346" + }, + "html": { + "href": "https://github.com/notdlang/foo/pull/12346" + }, + "issue": { + "href": "https://api.github.com/repos/notdlang/foo/issues/12346" + }, + "comments": { + "href": "https://api.github.com/repos/notdlang/foo/issues/12346/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/notdlang/foo/pulls/12346/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/notdlang/foo/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/notdlang/foo/pulls/12346/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/notdlang/foo/statuses/9fbce55814bdc8f78d6fead3243db657eafc4ec7" + } + }, + "merged": false, + "mergeable": null, + "mergeable_state": "unknown", + "merged_by": null, + "comments": 0, + "review_comments": 0, + "maintainer_can_modify": true, + "commits": 1, + "additions": 1, + "deletions": 1, + "changed_files": 1 + }, + "repository": { + "id": 1257070, + "name": "foo", + "full_name": "notdlang/foo", + "owner": { + "login": "notdlang", + "id": 565913, + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/notdlang", + "html_url": "https://github.com/notdlang", + "followers_url": "https://api.github.com/users/notdlang/followers", + "following_url": "https://api.github.com/users/notdlang/following{/other_user}", + "gists_url": "https://api.github.com/users/notdlang/gists{/gist_id}", + "starred_url": "https://api.github.com/users/notdlang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/notdlang/subscriptions", + "organizations_url": "https://api.github.com/users/notdlang/orgs", + "repos_url": "https://api.github.com/users/notdlang/repos", + "events_url": "https://api.github.com/users/notdlang/events{/privacy}", + "received_events_url": "https://api.github.com/users/notdlang/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/notdlang/foo", + "description": "foo D Programming Language compiler", + "fork": false, + "url": "https://api.github.com/repos/notdlang/foo", + "forks_url": "https://api.github.com/repos/notdlang/foo/forks", + "keys_url": "https://api.github.com/repos/notdlang/foo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/notdlang/foo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/notdlang/foo/teams", + "hooks_url": "https://api.github.com/repos/notdlang/foo/hooks", + "issue_events_url": "https://api.github.com/repos/notdlang/foo/issues/events{/number}", + "events_url": "https://api.github.com/repos/notdlang/foo/events", + "assignees_url": "https://api.github.com/repos/notdlang/foo/assignees{/user}", + "branches_url": "https://api.github.com/repos/notdlang/foo/branches{/branch}", + "tags_url": "https://api.github.com/repos/notdlang/foo/tags", + "blobs_url": "https://api.github.com/repos/notdlang/foo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/notdlang/foo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/notdlang/foo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/notdlang/foo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/notdlang/foo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/notdlang/foo/languages", + "stargazers_url": "https://api.github.com/repos/notdlang/foo/stargazers", + "contributors_url": "https://api.github.com/repos/notdlang/foo/contributors", + "subscribers_url": "https://api.github.com/repos/notdlang/foo/subscribers", + "subscription_url": "https://api.github.com/repos/notdlang/foo/subscription", + "commits_url": "https://api.github.com/repos/notdlang/foo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/notdlang/foo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/notdlang/foo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/notdlang/foo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/notdlang/foo/contents/{+path}", + "compare_url": "https://api.github.com/repos/notdlang/foo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/notdlang/foo/merges", + "archive_url": "https://api.github.com/repos/notdlang/foo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/notdlang/foo/downloads", + "issues_url": "https://api.github.com/repos/notdlang/foo/issues{/number}", + "pulls_url": "https://api.github.com/repos/notdlang/foo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/notdlang/foo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/notdlang/foo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/notdlang/foo/labels{/name}", + "releases_url": "https://api.github.com/repos/notdlang/foo/releases{/id}", + "deployments_url": "https://api.github.com/repos/notdlang/foo/deployments", + "created_at": "2011-01-15T06:53:53Z", + "updated_at": "2016-12-21T14:16:08Z", + "pushed_at": "2016-12-24T17:40:24Z", + "git_url": "git://github.com/notdlang/foo.git", + "ssh_url": "git@github.com:notdlang/foo.git", + "clone_url": "https://github.com/notdlang/foo.git", + "svn_url": "https://github.com/notdlang/foo", + "homepage": "notdlang.org", + "size": 67924, + "stargazers_count": 1315, + "watchers_count": 1315, + "language": "D", + "has_issues": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 389, + "mirror_url": null, + "open_issues_count": 144, + "forks": 389, + "open_issues": 144, + "watchers": 1315, + "default_branch": "master" + }, + "organization": { + "login": "notdlang", + "id": 565913, + "url": "https://api.github.com/orgs/notdlang", + "repos_url": "https://api.github.com/orgs/notdlang/repos", + "events_url": "https://api.github.com/orgs/notdlang/events", + "hooks_url": "https://api.github.com/orgs/notdlang/hooks", + "issues_url": "https://api.github.com/orgs/notdlang/issues", + "members_url": "https://api.github.com/orgs/notdlang/members{/member}", + "public_members_url": "https://api.github.com/orgs/notdlang/public_members{/member}", + "avatar_url": "https://avatars.githubusercontent.com/u/565913?v=3", + "description": null + }, + "sender": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + } +} diff --git a/data/payloads/github_repos_notdlang_bar_issues_12347_comments b/data/payloads/github_repos_notdlang_bar_issues_12347_comments new file mode 100644 index 0000000..780ccb2 --- /dev/null +++ b/data/payloads/github_repos_notdlang_bar_issues_12347_comments @@ -0,0 +1,254 @@ +[ + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267737793", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267737793", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267737793, + "user": { + "login": "timotheecour", + "id": 2194784, + "avatar_url": "https://avatars.githubusercontent.com/u/2194784?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/timotheecour", + "html_url": "https://github.com/timotheecour", + "followers_url": "https://api.github.com/users/timotheecour/followers", + "following_url": "https://api.github.com/users/timotheecour/following{/other_user}", + "gists_url": "https://api.github.com/users/timotheecour/gists{/gist_id}", + "starred_url": "https://api.github.com/users/timotheecour/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/timotheecour/subscriptions", + "organizations_url": "https://api.github.com/users/timotheecour/orgs", + "repos_url": "https://api.github.com/users/timotheecour/repos", + "events_url": "https://api.github.com/users/timotheecour/events{/privacy}", + "received_events_url": "https://api.github.com/users/timotheecour/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T02:37:29Z", + "updated_at": "2016-12-17T02:37:29Z", + "body": "couldn't that be done with tooling ? (if not with existing traits, at least via instrumenting foo)" + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267759950", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267759950", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267759950, + "user": { + "login": "WalterBright", + "id": 568298, + "avatar_url": "https://avatars.githubusercontent.com/u/568298?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/WalterBright", + "html_url": "https://github.com/WalterBright", + "followers_url": "https://api.github.com/users/WalterBright/followers", + "following_url": "https://api.github.com/users/WalterBright/following{/other_user}", + "gists_url": "https://api.github.com/users/WalterBright/gists{/gist_id}", + "starred_url": "https://api.github.com/users/WalterBright/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/WalterBright/subscriptions", + "organizations_url": "https://api.github.com/users/WalterBright/orgs", + "repos_url": "https://api.github.com/users/WalterBright/repos", + "events_url": "https://api.github.com/users/WalterBright/events{/privacy}", + "received_events_url": "https://api.github.com/users/WalterBright/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T12:22:46Z", + "updated_at": "2016-12-17T12:22:46Z", + "body": "Why not pull it?" + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267772880", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267772880", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267772880, + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T16:49:06Z", + "updated_at": "2016-12-17T16:49:06Z", + "body": "@timotheecour it could, but @WalterBright warned the tool would be highly nontrivial.\r\n\r\n@WalterBright good idea, I'll pull." + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267773560", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267773560", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267773560, + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T16:58:13Z", + "updated_at": "2016-12-17T16:58:13Z", + "body": "Auto-merge toggled on" + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267775518", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267775518", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267775518, + "user": { + "login": "CyberShadow", + "id": 160894, + "avatar_url": "https://avatars.githubusercontent.com/u/160894?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/CyberShadow", + "html_url": "https://github.com/CyberShadow", + "followers_url": "https://api.github.com/users/CyberShadow/followers", + "following_url": "https://api.github.com/users/CyberShadow/following{/other_user}", + "gists_url": "https://api.github.com/users/CyberShadow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CyberShadow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CyberShadow/subscriptions", + "organizations_url": "https://api.github.com/users/CyberShadow/orgs", + "repos_url": "https://api.github.com/users/CyberShadow/repos", + "events_url": "https://api.github.com/users/CyberShadow/events{/privacy}", + "received_events_url": "https://api.github.com/users/CyberShadow/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T17:34:32Z", + "updated_at": "2016-12-17T17:34:32Z", + "body": "> @timotheecour it could, but @WalterBright warned the tool would be highly nontrivial.\r\n\r\nJust brute-force it.\r\n\r\nExpand all imports to selective imports of all symbols, then wrap imports in a DustMite comment block and run it through DustMite. We did something similar at DConf 2016 to minimize imports in dfoo." + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267775601", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267775601", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267775601, + "user": { + "login": "CyberShadow", + "id": 160894, + "avatar_url": "https://avatars.githubusercontent.com/u/160894?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/CyberShadow", + "html_url": "https://github.com/CyberShadow", + "followers_url": "https://api.github.com/users/CyberShadow/followers", + "following_url": "https://api.github.com/users/CyberShadow/following{/other_user}", + "gists_url": "https://api.github.com/users/CyberShadow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CyberShadow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CyberShadow/subscriptions", + "organizations_url": "https://api.github.com/users/CyberShadow/orgs", + "repos_url": "https://api.github.com/users/CyberShadow/repos", + "events_url": "https://api.github.com/users/CyberShadow/events{/privacy}", + "received_events_url": "https://api.github.com/users/CyberShadow/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T17:36:10Z", + "updated_at": "2016-12-17T17:36:10Z", + "body": "Which Phobos modules do you want this done on? I could do this in bulk. (After my current reduction finishes.)" + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267779176", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267779176", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267779176, + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T18:38:17Z", + "updated_at": "2016-12-17T18:38:17Z", + "body": "@CyberShadow the point of this experiment is to illustrates the steps (and the ongoing maintenance) needed to take advantage of lazy imports, which have not been implemented. As of now, doing this is just giving us more maintenance to do of these lists." + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267780746", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267780746", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267780746, + "user": { + "login": "CyberShadow", + "id": 160894, + "avatar_url": "https://avatars.githubusercontent.com/u/160894?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/CyberShadow", + "html_url": "https://github.com/CyberShadow", + "followers_url": "https://api.github.com/users/CyberShadow/followers", + "following_url": "https://api.github.com/users/CyberShadow/following{/other_user}", + "gists_url": "https://api.github.com/users/CyberShadow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CyberShadow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CyberShadow/subscriptions", + "organizations_url": "https://api.github.com/users/CyberShadow/orgs", + "repos_url": "https://api.github.com/users/CyberShadow/repos", + "events_url": "https://api.github.com/users/CyberShadow/events{/privacy}", + "received_events_url": "https://api.github.com/users/CyberShadow/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T19:01:45Z", + "updated_at": "2016-12-17T19:01:45Z", + "body": "Sorry, I don't get it? Was this PR made to prove some point?\r\n\r\n> It was a major effort\r\n\r\nWell... all I'm saying is that it didn't need to be.\r\n\r\nIs there any practical reason why I shouldn't have a go at replacing module imports with selective imports throughout Phobos? Really shouldn't take much effort, just some setup and CPU time to do the reduction.\r\n\r\nI'm confused, if this change was not good, then why was it merged? And if it was good, then why shouldn't we have more of it, especially if there's an easy way to do it?" + }, + { + "url": "https://api.github.com/repos/notdlang/bar/issues/comments/267781743", + "html_url": "https://github.com/notdlang/bar/pull/12347#issuecomment-267781743", + "issue_url": "https://api.github.com/repos/notdlang/bar/issues/12347", + "id": 267781743, + "user": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-12-17T19:21:20Z", + "updated_at": "2016-12-17T19:21:20Z", + "body": ">Sorry, I don't get it? Was this PR made to prove some point?\r\n\r\nYes. The point was to preview the kind of setup that would have all explicit declarations.\r\n\r\n>> It was a major effort\r\n\r\n>Well... all I'm saying is that it didn't need to be.\r\n\r\nUnderstood, thanks.\r\n\r\n>Is there any practical reason why I shouldn't have a go at replacing module imports with selective imports throughout Phobos?\r\n\r\nThe replacement has no value except it adds one extra chore to maintain.\r\n\r\n>I'm confused, if this change was not good, then why was it merged? And if it was good, then why shouldn't we have more of it, especially if there's an easy way to do it?\r\n\r\nI will undo the PR." + } +] diff --git a/data/payloads/github_repos_notdlang_bar_pulls_12347_commits b/data/payloads/github_repos_notdlang_bar_pulls_12347_commits new file mode 100644 index 0000000..c6c1d9e --- /dev/null +++ b/data/payloads/github_repos_notdlang_bar_pulls_12347_commits @@ -0,0 +1,72 @@ +[ + { + "sha": "e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "commit": { + "author": { + "name": "Andrei Alexandrescu", + "email": "andrei@erdani.com", + "date": "2016-12-16T21:54:13Z" + }, + "committer": { + "name": "Andrei Alexandrescu", + "email": "andrei@erdani.com", + "date": "2016-12-17T16:50:16Z" + }, + "message": "[DEMO][DONOTPULL] Converted imports to selective imports in std.array", + "tree": { + "sha": "b3106d04851a8f349b6cfdcfd7c9db663edbbfcb", + "url": "https://api.github.com/repos/notdlang/bar/git/trees/b3106d04851a8f349b6cfdcfd7c9db663edbbfcb" + }, + "url": "https://api.github.com/repos/notdlang/bar/git/commits/e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/notdlang/bar/commits/e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "html_url": "https://github.com/notdlang/bar/commit/e064d5664f92c4b2f0866c08f6d0290ba66825ed", + "comments_url": "https://api.github.com/repos/notdlang/bar/commits/e064d5664f92c4b2f0866c08f6d0290ba66825ed/comments", + "author": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "andralex", + "id": 566679, + "avatar_url": "https://avatars.githubusercontent.com/u/566679?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/andralex", + "html_url": "https://github.com/andralex", + "followers_url": "https://api.github.com/users/andralex/followers", + "following_url": "https://api.github.com/users/andralex/following{/other_user}", + "gists_url": "https://api.github.com/users/andralex/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andralex/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andralex/subscriptions", + "organizations_url": "https://api.github.com/users/andralex/orgs", + "repos_url": "https://api.github.com/users/andralex/repos", + "events_url": "https://api.github.com/users/andralex/events{/privacy}", + "received_events_url": "https://api.github.com/users/andralex/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "19445fc71e8aabdbd42f0ad8a571a57601a5ff39", + "url": "https://api.github.com/repos/notdlang/bar/commits/19445fc71e8aabdbd42f0ad8a571a57601a5ff39", + "html_url": "https://github.com/notdlang/bar/commit/19445fc71e8aabdbd42f0ad8a571a57601a5ff39" + } + ] + } +] diff --git a/data/payloads/github_repos_notdlang_foo_issues_12346_comments b/data/payloads/github_repos_notdlang_foo_issues_12346_comments new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/data/payloads/github_repos_notdlang_foo_issues_12346_comments @@ -0,0 +1,2 @@ +[ +] diff --git a/data/payloads/github_repos_notdlang_foo_issues_12346_labels b/data/payloads/github_repos_notdlang_foo_issues_12346_labels new file mode 100644 index 0000000..41b42e6 --- /dev/null +++ b/data/payloads/github_repos_notdlang_foo_issues_12346_labels @@ -0,0 +1,3 @@ +[ + +] diff --git a/data/payloads/github_repos_notdlang_foo_pulls_12346_commits b/data/payloads/github_repos_notdlang_foo_pulls_12346_commits new file mode 100644 index 0000000..a3853f7 --- /dev/null +++ b/data/payloads/github_repos_notdlang_foo_pulls_12346_commits @@ -0,0 +1,72 @@ +[ + { + "sha": "9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "commit": { + "author": { + "name": "Martin Nowak", + "email": "code@dawg.eu", + "date": "2016-12-24T17:58:32Z" + }, + "committer": { + "name": "Martin Nowak", + "email": "code@dawg.eu", + "date": "2016-12-24T17:58:32Z" + }, + "message": "fix Issue 16794 - foo not working on Ubuntu 16.10\n\n- enable PIC by default on amd64 linux (no significant overhead, full\n PIC/PIE support)\n- also see https://github.com/notdlang/installer/pull/207", + "tree": { + "sha": "7fe104c3fc612cb2b527eab295f858d2e14796a3", + "url": "https://api.github.com/repos/notdlang/foo/git/trees/7fe104c3fc612cb2b527eab295f858d2e14796a3" + }, + "url": "https://api.github.com/repos/notdlang/foo/git/commits/9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/notdlang/foo/commits/9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "html_url": "https://github.com/notdlang/foo/commit/9fbce55814bdc8f78d6fead3243db657eafc4ec7", + "comments_url": "https://api.github.com/repos/notdlang/foo/commits/9fbce55814bdc8f78d6fead3243db657eafc4ec7/comments", + "author": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "MartinNowak", + "id": 288976, + "avatar_url": "https://avatars.githubusercontent.com/u/288976?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/MartinNowak", + "html_url": "https://github.com/MartinNowak", + "followers_url": "https://api.github.com/users/MartinNowak/followers", + "following_url": "https://api.github.com/users/MartinNowak/following{/other_user}", + "gists_url": "https://api.github.com/users/MartinNowak/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MartinNowak/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MartinNowak/subscriptions", + "organizations_url": "https://api.github.com/users/MartinNowak/orgs", + "repos_url": "https://api.github.com/users/MartinNowak/repos", + "events_url": "https://api.github.com/users/MartinNowak/events{/privacy}", + "received_events_url": "https://api.github.com/users/MartinNowak/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "907e2eff63da664406b2250566738be5aafaf043", + "url": "https://api.github.com/repos/notdlang/foo/commits/907e2eff63da664406b2250566738be5aafaf043", + "html_url": "https://github.com/notdlang/foo/commit/907e2eff63da664406b2250566738be5aafaf043" + } + ] + } +] \ No newline at end of file diff --git a/source/dlangbot/app.d b/source/dlangbot/app.d index d104bd4..2390781 100644 --- a/source/dlangbot/app.d +++ b/source/dlangbot/app.d @@ -241,7 +241,7 @@ void handlePR(string action, PullRequest* _pr) UserMessage[] msgs; IssueRef[] refs; Issue[] descs; - if (pr.base.repo.get().owner.login.among("dlang", "dlang-bots")) + if (bugzillaProjectSlugs.canFind(pr.repoSlug)) { refs = getIssueRefs(commits); descs = getDescriptions(refs); diff --git a/test/bugzilla.d b/test/bugzilla.d index 8a94664..ccf849a 100644 --- a/test/bugzilla.d +++ b/test/bugzilla.d @@ -114,15 +114,13 @@ EOF".chomp; unittest { setAPIExpectations( - "/github/repos/dlang/phobos/pulls/4963/commits", (ref Json j) { + "/github/repos/notdlang/bar/pulls/12347/commits", (ref Json j) { j[0]["commit"]["message"] = "Do something with Issue 17564"; }, - "/github/repos/dlang/phobos/issues/4963/comments", + "/github/repos/notdlang/bar/issues/12347/comments", ); - postGitHubHook("dlang_phobos_merged_4963.json", "pull_request", (ref Json j, scope req) { - j["pull_request"]["base"]["repo"]["owner"]["login"] = "dlang-community"; - }); + postGitHubHook("notdlang_bar_merged_12347.json"); } @("after-merge-dont-comment-non-bugzilla") @@ -135,9 +133,7 @@ unittest "/github/repos/dlang/dub/issues/12345/comments", ); - postGitHubHook("dlang_dub_merged_12345.json", "pull_request", (ref Json j, scope req) { - j["pull_request"]["base"]["repo"]["owner"]["login"] = "dlang-community"; - }); + postGitHubHook("dlang_dub_merged_12345.json"); } @("after-merge-dont-spam-bugzilla") @@ -298,13 +294,11 @@ unittest unittest { setAPIExpectations( - "/github/repos/dlang/dmd/pulls/6359/commits", - "/github/repos/dlang/dmd/issues/6359/comments", + "/github/repos/notdlang/foo/pulls/12346/commits", + "/github/repos/notdlang/foo/issues/12346/comments", ); - postGitHubHook("dlang_dmd_open_6359.json", "pull_request", (ref Json j, scope req) { - j["pull_request"]["base"]["repo"]["owner"]["login"] = "dlang-community"; - }); + postGitHubHook("notdlang_foo_open_12346.json"); } @("pr-open-dont-spam-closed-bugzilla-issues")