Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rauhryan/6d0f0d1c7f30dd41111c5c77a29dd8ce to your computer and use it in GitHub Desktop.
Save rauhryan/6d0f0d1c7f30dd41111c5c77a29dd8ce to your computer and use it in GitHub Desktop.
Hookshot bug report
{
"action": "assigned",
"issue": {
"url": "https://api.github.com/repos/huboard/pitch-deck/issues/1",
"repository_url": "https://api.github.com/repos/huboard/pitch-deck",
"labels_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/labels{/name}",
"comments_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/comments",
"events_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/events",
"html_url": "https://github.com/huboard/pitch-deck/issues/1",
"id": 153544094,
"number": 1,
"title": "Lol new",
"user": {
"login": "rauhryan",
"id": 68954,
"avatar_url": "https://avatars.githubusercontent.com/u/68954?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/rauhryan",
"html_url": "https://github.com/rauhryan",
"followers_url": "https://api.github.com/users/rauhryan/followers",
"following_url": "https://api.github.com/users/rauhryan/following{/other_user}",
"gists_url": "https://api.github.com/users/rauhryan/gists{/gist_id}",
"starred_url": "https://api.github.com/users/rauhryan/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/rauhryan/subscriptions",
"organizations_url": "https://api.github.com/users/rauhryan/orgs",
"repos_url": "https://api.github.com/users/rauhryan/repos",
"events_url": "https://api.github.com/users/rauhryan/events{/privacy}",
"received_events_url": "https://api.github.com/users/rauhryan/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
"url": "https://api.github.com/repos/huboard/pitch-deck/labels/0%20-%20Backlog",
"name": "0 - Backlog",
"color": "CCCCCC"
}
],
"state": "open",
"locked": false,
"assignee": {
"login": "discorick",
"id": 1130665,
"avatar_url": "https://avatars.githubusercontent.com/u/1130665?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/discorick",
"html_url": "https://github.com/discorick",
"followers_url": "https://api.github.com/users/discorick/followers",
"following_url": "https://api.github.com/users/discorick/following{/other_user}",
"gists_url": "https://api.github.com/users/discorick/gists{/gist_id}",
"starred_url": "https://api.github.com/users/discorick/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/discorick/subscriptions",
"organizations_url": "https://api.github.com/users/discorick/orgs",
"repos_url": "https://api.github.com/users/discorick/repos",
"events_url": "https://api.github.com/users/discorick/events{/privacy}",
"received_events_url": "https://api.github.com/users/discorick/received_events",
"type": "User",
"site_admin": false
},
"milestone": null,
"comments": 0,
"created_at": "2016-05-06T21:43:45Z",
"updated_at": "2016-05-06T22:15:12Z",
"closed_at": null,
"body": "\r\n\r\n<!---\r\n@huboard:{}\r\n-->\r\n"
},
"assignee": {
"login": "discorick",
"id": 1130665,
"avatar_url": "https://avatars.githubusercontent.com/u/1130665?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/discorick",
"html_url": "https://github.com/discorick",
"followers_url": "https://api.github.com/users/discorick/followers",
"following_url": "https://api.github.com/users/discorick/following{/other_user}",
"gists_url": "https://api.github.com/users/discorick/gists{/gist_id}",
"starred_url": "https://api.github.com/users/discorick/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/discorick/subscriptions",
"organizations_url": "https://api.github.com/users/discorick/orgs",
"repos_url": "https://api.github.com/users/discorick/repos",
"events_url": "https://api.github.com/users/discorick/events{/privacy}",
"received_events_url": "https://api.github.com/users/discorick/received_events",
"type": "User",
"site_admin": false
},
"repository": {
"id": 47418710,
"name": "pitch-deck",
"full_name": "huboard/pitch-deck",
"owner": {
"login": "huboard",
"id": 1236155,
"avatar_url": "https://avatars.githubusercontent.com/u/1236155?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/huboard",
"html_url": "https://github.com/huboard",
"followers_url": "https://api.github.com/users/huboard/followers",
"following_url": "https://api.github.com/users/huboard/following{/other_user}",
"gists_url": "https://api.github.com/users/huboard/gists{/gist_id}",
"starred_url": "https://api.github.com/users/huboard/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/huboard/subscriptions",
"organizations_url": "https://api.github.com/users/huboard/orgs",
"repos_url": "https://api.github.com/users/huboard/repos",
"events_url": "https://api.github.com/users/huboard/events{/privacy}",
"received_events_url": "https://api.github.com/users/huboard/received_events",
"type": "Organization",
"site_admin": false
},
"private": false,
"html_url": "https://github.com/huboard/pitch-deck",
"description": "Showoff slides for our pitch deck",
"fork": false,
"url": "https://api.github.com/repos/huboard/pitch-deck",
"forks_url": "https://api.github.com/repos/huboard/pitch-deck/forks",
"keys_url": "https://api.github.com/repos/huboard/pitch-deck/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/huboard/pitch-deck/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/huboard/pitch-deck/teams",
"hooks_url": "https://api.github.com/repos/huboard/pitch-deck/hooks",
"issue_events_url": "https://api.github.com/repos/huboard/pitch-deck/issues/events{/number}",
"events_url": "https://api.github.com/repos/huboard/pitch-deck/events",
"assignees_url": "https://api.github.com/repos/huboard/pitch-deck/assignees{/user}",
"branches_url": "https://api.github.com/repos/huboard/pitch-deck/branches{/branch}",
"tags_url": "https://api.github.com/repos/huboard/pitch-deck/tags",
"blobs_url": "https://api.github.com/repos/huboard/pitch-deck/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/huboard/pitch-deck/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/huboard/pitch-deck/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/huboard/pitch-deck/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/huboard/pitch-deck/statuses/{sha}",
"languages_url": "https://api.github.com/repos/huboard/pitch-deck/languages",
"stargazers_url": "https://api.github.com/repos/huboard/pitch-deck/stargazers",
"contributors_url": "https://api.github.com/repos/huboard/pitch-deck/contributors",
"subscribers_url": "https://api.github.com/repos/huboard/pitch-deck/subscribers",
"subscription_url": "https://api.github.com/repos/huboard/pitch-deck/subscription",
"commits_url": "https://api.github.com/repos/huboard/pitch-deck/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/huboard/pitch-deck/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/huboard/pitch-deck/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/huboard/pitch-deck/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/huboard/pitch-deck/contents/{+path}",
"compare_url": "https://api.github.com/repos/huboard/pitch-deck/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/huboard/pitch-deck/merges",
"archive_url": "https://api.github.com/repos/huboard/pitch-deck/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/huboard/pitch-deck/downloads",
"issues_url": "https://api.github.com/repos/huboard/pitch-deck/issues{/number}",
"pulls_url": "https://api.github.com/repos/huboard/pitch-deck/pulls{/number}",
"milestones_url": "https://api.github.com/repos/huboard/pitch-deck/milestones{/number}",
"notifications_url": "https://api.github.com/repos/huboard/pitch-deck/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/huboard/pitch-deck/labels{/name}",
"releases_url": "https://api.github.com/repos/huboard/pitch-deck/releases{/id}",
"deployments_url": "https://api.github.com/repos/huboard/pitch-deck/deployments",
"created_at": "2015-12-04T17:21:30Z",
"updated_at": "2015-12-04T17:21:55Z",
"pushed_at": "2015-12-04T17:22:51Z",
"git_url": "git://github.com/huboard/pitch-deck.git",
"ssh_url": "git@github.com:huboard/pitch-deck.git",
"clone_url": "https://github.com/huboard/pitch-deck.git",
"svn_url": "https://github.com/huboard/pitch-deck",
"homepage": null,
"size": 6858,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Ruby",
"has_issues": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"forks_count": 0,
"mirror_url": null,
"open_issues_count": 1,
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "master"
},
"organization": {
"login": "huboard",
"id": 1236155,
"url": "https://api.github.com/orgs/huboard",
"repos_url": "https://api.github.com/orgs/huboard/repos",
"events_url": "https://api.github.com/orgs/huboard/events",
"hooks_url": "https://api.github.com/orgs/huboard/hooks",
"issues_url": "https://api.github.com/orgs/huboard/issues",
"members_url": "https://api.github.com/orgs/huboard/members{/member}",
"public_members_url": "https://api.github.com/orgs/huboard/public_members{/member}",
"avatar_url": "https://avatars.githubusercontent.com/u/1236155?v=3",
"description": "Open source task management platform built directly on top of your existing GitHub repositories"
},
"sender": {
"login": "rauhryan",
"id": 68954,
"avatar_url": "https://avatars.githubusercontent.com/u/68954?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/rauhryan",
"html_url": "https://github.com/rauhryan",
"followers_url": "https://api.github.com/users/rauhryan/followers",
"following_url": "https://api.github.com/users/rauhryan/following{/other_user}",
"gists_url": "https://api.github.com/users/rauhryan/gists{/gist_id}",
"starred_url": "https://api.github.com/users/rauhryan/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/rauhryan/subscriptions",
"organizations_url": "https://api.github.com/users/rauhryan/orgs",
"repos_url": "https://api.github.com/users/rauhryan/repos",
"events_url": "https://api.github.com/users/rauhryan/events{/privacy}",
"received_events_url": "https://api.github.com/users/rauhryan/received_events",
"type": "User",
"site_admin": false
}
}
Headers
Request URL: https://api.huboard.com/site/webhook/issues
Request method: POST
content-type: application/x-www-form-urlencoded
Expect:
User-Agent: GitHub-Hookshot/e4028f5
X-GitHub-Delivery: 00489800-13d8-11e6-92ae-4f265fd8327f
X-GitHub-Event: issues
{
"action": "unassigned",
"issue": {
"url": "https://api.github.com/repos/huboard/pitch-deck/issues/1",
"repository_url": "https://api.github.com/repos/huboard/pitch-deck",
"labels_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/labels{/name}",
"comments_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/comments",
"events_url": "https://api.github.com/repos/huboard/pitch-deck/issues/1/events",
"html_url": "https://github.com/huboard/pitch-deck/issues/1",
"id": 153544094,
"number": 1,
"title": "Lol new",
"user": {
"login": "rauhryan",
"id": 68954,
"avatar_url": "https://avatars.githubusercontent.com/u/68954?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/rauhryan",
"html_url": "https://github.com/rauhryan",
"followers_url": "https://api.github.com/users/rauhryan/followers",
"following_url": "https://api.github.com/users/rauhryan/following{/other_user}",
"gists_url": "https://api.github.com/users/rauhryan/gists{/gist_id}",
"starred_url": "https://api.github.com/users/rauhryan/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/rauhryan/subscriptions",
"organizations_url": "https://api.github.com/users/rauhryan/orgs",
"repos_url": "https://api.github.com/users/rauhryan/repos",
"events_url": "https://api.github.com/users/rauhryan/events{/privacy}",
"received_events_url": "https://api.github.com/users/rauhryan/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
"url": "https://api.github.com/repos/huboard/pitch-deck/labels/0%20-%20Backlog",
"name": "0 - Backlog",
"color": "CCCCCC"
}
],
"state": "open",
"locked": false,
"assignee": {
"login": "huboardci",
"id": 9271287,
"avatar_url": "https://avatars.githubusercontent.com/u/9271287?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/huboardci",
"html_url": "https://github.com/huboardci",
"followers_url": "https://api.github.com/users/huboardci/followers",
"following_url": "https://api.github.com/users/huboardci/following{/other_user}",
"gists_url": "https://api.github.com/users/huboardci/gists{/gist_id}",
"starred_url": "https://api.github.com/users/huboardci/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/huboardci/subscriptions",
"organizations_url": "https://api.github.com/users/huboardci/orgs",
"repos_url": "https://api.github.com/users/huboardci/repos",
"events_url": "https://api.github.com/users/huboardci/events{/privacy}",
"received_events_url": "https://api.github.com/users/huboardci/received_events",
"type": "User",
"site_admin": false
},
"milestone": null,
"comments": 0,
"created_at": "2016-05-06T21:43:45Z",
"updated_at": "2016-05-06T22:12:55Z",
"closed_at": null,
"body": "\r\n\r\n<!---\r\n@huboard:{}\r\n-->\r\n"
},
"assignee": {
"login": "huboardci",
"id": 9271287,
"avatar_url": "https://avatars.githubusercontent.com/u/9271287?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/huboardci",
"html_url": "https://github.com/huboardci",
"followers_url": "https://api.github.com/users/huboardci/followers",
"following_url": "https://api.github.com/users/huboardci/following{/other_user}",
"gists_url": "https://api.github.com/users/huboardci/gists{/gist_id}",
"starred_url": "https://api.github.com/users/huboardci/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/huboardci/subscriptions",
"organizations_url": "https://api.github.com/users/huboardci/orgs",
"repos_url": "https://api.github.com/users/huboardci/repos",
"events_url": "https://api.github.com/users/huboardci/events{/privacy}",
"received_events_url": "https://api.github.com/users/huboardci/received_events",
"type": "User",
"site_admin": false
},
"repository": {
"id": 47418710,
"name": "pitch-deck",
"full_name": "huboard/pitch-deck",
"owner": {
"login": "huboard",
"id": 1236155,
"avatar_url": "https://avatars.githubusercontent.com/u/1236155?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/huboard",
"html_url": "https://github.com/huboard",
"followers_url": "https://api.github.com/users/huboard/followers",
"following_url": "https://api.github.com/users/huboard/following{/other_user}",
"gists_url": "https://api.github.com/users/huboard/gists{/gist_id}",
"starred_url": "https://api.github.com/users/huboard/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/huboard/subscriptions",
"organizations_url": "https://api.github.com/users/huboard/orgs",
"repos_url": "https://api.github.com/users/huboard/repos",
"events_url": "https://api.github.com/users/huboard/events{/privacy}",
"received_events_url": "https://api.github.com/users/huboard/received_events",
"type": "Organization",
"site_admin": false
},
"private": false,
"html_url": "https://github.com/huboard/pitch-deck",
"description": "Showoff slides for our pitch deck",
"fork": false,
"url": "https://api.github.com/repos/huboard/pitch-deck",
"forks_url": "https://api.github.com/repos/huboard/pitch-deck/forks",
"keys_url": "https://api.github.com/repos/huboard/pitch-deck/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/huboard/pitch-deck/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/huboard/pitch-deck/teams",
"hooks_url": "https://api.github.com/repos/huboard/pitch-deck/hooks",
"issue_events_url": "https://api.github.com/repos/huboard/pitch-deck/issues/events{/number}",
"events_url": "https://api.github.com/repos/huboard/pitch-deck/events",
"assignees_url": "https://api.github.com/repos/huboard/pitch-deck/assignees{/user}",
"branches_url": "https://api.github.com/repos/huboard/pitch-deck/branches{/branch}",
"tags_url": "https://api.github.com/repos/huboard/pitch-deck/tags",
"blobs_url": "https://api.github.com/repos/huboard/pitch-deck/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/huboard/pitch-deck/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/huboard/pitch-deck/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/huboard/pitch-deck/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/huboard/pitch-deck/statuses/{sha}",
"languages_url": "https://api.github.com/repos/huboard/pitch-deck/languages",
"stargazers_url": "https://api.github.com/repos/huboard/pitch-deck/stargazers",
"contributors_url": "https://api.github.com/repos/huboard/pitch-deck/contributors",
"subscribers_url": "https://api.github.com/repos/huboard/pitch-deck/subscribers",
"subscription_url": "https://api.github.com/repos/huboard/pitch-deck/subscription",
"commits_url": "https://api.github.com/repos/huboard/pitch-deck/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/huboard/pitch-deck/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/huboard/pitch-deck/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/huboard/pitch-deck/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/huboard/pitch-deck/contents/{+path}",
"compare_url": "https://api.github.com/repos/huboard/pitch-deck/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/huboard/pitch-deck/merges",
"archive_url": "https://api.github.com/repos/huboard/pitch-deck/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/huboard/pitch-deck/downloads",
"issues_url": "https://api.github.com/repos/huboard/pitch-deck/issues{/number}",
"pulls_url": "https://api.github.com/repos/huboard/pitch-deck/pulls{/number}",
"milestones_url": "https://api.github.com/repos/huboard/pitch-deck/milestones{/number}",
"notifications_url": "https://api.github.com/repos/huboard/pitch-deck/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/huboard/pitch-deck/labels{/name}",
"releases_url": "https://api.github.com/repos/huboard/pitch-deck/releases{/id}",
"deployments_url": "https://api.github.com/repos/huboard/pitch-deck/deployments",
"created_at": "2015-12-04T17:21:30Z",
"updated_at": "2015-12-04T17:21:55Z",
"pushed_at": "2015-12-04T17:22:51Z",
"git_url": "git://github.com/huboard/pitch-deck.git",
"ssh_url": "git@github.com:huboard/pitch-deck.git",
"clone_url": "https://github.com/huboard/pitch-deck.git",
"svn_url": "https://github.com/huboard/pitch-deck",
"homepage": null,
"size": 6858,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Ruby",
"has_issues": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"forks_count": 0,
"mirror_url": null,
"open_issues_count": 1,
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "master"
},
"organization": {
"login": "huboard",
"id": 1236155,
"url": "https://api.github.com/orgs/huboard",
"repos_url": "https://api.github.com/orgs/huboard/repos",
"events_url": "https://api.github.com/orgs/huboard/events",
"hooks_url": "https://api.github.com/orgs/huboard/hooks",
"issues_url": "https://api.github.com/orgs/huboard/issues",
"members_url": "https://api.github.com/orgs/huboard/members{/member}",
"public_members_url": "https://api.github.com/orgs/huboard/public_members{/member}",
"avatar_url": "https://avatars.githubusercontent.com/u/1236155?v=3",
"description": "Open source task management platform built directly on top of your existing GitHub repositories"
},
"sender": {
"login": "rauhryan",
"id": 68954,
"avatar_url": "https://avatars.githubusercontent.com/u/68954?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/rauhryan",
"html_url": "https://github.com/rauhryan",
"followers_url": "https://api.github.com/users/rauhryan/followers",
"following_url": "https://api.github.com/users/rauhryan/following{/other_user}",
"gists_url": "https://api.github.com/users/rauhryan/gists{/gist_id}",
"starred_url": "https://api.github.com/users/rauhryan/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/rauhryan/subscriptions",
"organizations_url": "https://api.github.com/users/rauhryan/orgs",
"repos_url": "https://api.github.com/users/rauhryan/repos",
"events_url": "https://api.github.com/users/rauhryan/events{/privacy}",
"received_events_url": "https://api.github.com/users/rauhryan/received_events",
"type": "User",
"site_admin": false
}
}
Headers
Request URL: https://api.huboard.com/site/webhook/issues
Request method: POST
content-type: application/x-www-form-urlencoded
Expect:
User-Agent: GitHub-Hookshot/e4028f5
X-GitHub-Delivery: 00489800-13d8-11e6-9328-72619931c800
X-GitHub-Event: issues

Suspected bug in Hookshot - GitHub-Hookshot/e4028f5

We just got a weird bug report from a HuBoard user huboard/huboard#658

I've included the payloads that we received from Hookshot

What I've been able to discover is that when you changed the assignee property from the GitHub API, hookshot sends you two events. 1 assigned and 1 unassigned

Steps to reproduce:

  1. Create an issue
  2. Assign issue x user #=> x == "@huboardci"
  3. Change the assignee property through the REST API to y person #=> y == "@discorick"

Expected results:

Should receive two events from Hookshot

the payload of the unassigned event expectations:

  • payload.issue.assignee == @discorick <= the new assignee
  • payload.assignee == @huboardci <= the old assignee

the payload of the assigned event expectations:

  • payload.issue.assignee == @discorick <= the new assignee
  • payload.assignee == @discorick <= the old assignee

My best guess at what's going on

If you look closely at 00489800-13d8-11e6-9328-72619931c800.payload.json

payload.issue.updated_at == "2016-05-06T22:12:55Z"

And then look closely at 00489800-13d8-11e6-92ae-4f265fd8327f.payload.json

payload.issue.updated_at == "2016-05-06T22:15:12Z"

There appears to be an edge case or a slight bug where the unassigned event is sending back the old version of the issue instead of the updated issue

I would expect the updated_at timestamps to be the same for both events.

Can you please revert the behavior back to the previous logic?

NOTE: If I change the assignee property directly from the GitHub interface, the event payloads are as expected. There is inconsistent behavior between mutations from the GitHub UI and the GitHub API

Edit: /s/insteaded/instead

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment