{"action":"created","comment":{"url":"https://api.github.com/repos/azkaban/azkaban/pulls/comments/77033573","id":77033573,"diff_hunk":"@@ -129,57 +131,158 @@ public void cronDayLightChangeTestSucceed() {\n     String expr = timeChecker.getId() + \".eval()\";\n     Condition cond = new Condition(checkers, expr);\n \n-    DateTime spring2020 = new DateTime(2020, 3, 8, 10, 30, 0, DateTimeZone.UTC);\n-    assertTrue(cond.getNextCheckTime() == spring2020.getMillis());\n+    DateTime spring2020UTC = new DateTime(2020, 3, 8, 10, 30, 0, DateTimeZone.UTC);\n+    DateTime spring2020PDT = new DateTime(2020, 3, 8, 3, 30, 0, DateTimeZone.forID(\"America/Los_Angeles\"));\n+    assertTrue(cond.getNextCheckTime() == spring2020UTC.getMillis());\n+    assertTrue(cond.getNextCheckTime() == spring2020PDT.getMillis());\n   }\n \n   /**\n    * Test when PST-->PDT happens in 2020. -8:00 -> -7:00\n    * See details why confusion happens during this change: https://en.wikipedia.org/wiki/Pacific_Time_Zone\n    *\n-   * This test demonstrates that 2:30 AM will not happen on Cron settings under PDT/PST.\n+   * This test demonstrates that 2:30 AM will not happen during the daylight saving day on Cron settings under PDT/PST.\n+   * Since we let the cron triggered both at March 8th, and 9th, it will execute at March 9th.\n    */\n-  @Test(expected=IllegalStateException.class)\n-  public void cronDayLightChangeTestFailure() {\n+  @Test\n+  public void cronDayLightSkipTest() {\n \n     Map<String, ConditionChecker> checkers =\n         new HashMap<String, ConditionChecker>();\n \n     DateTime now = DateTime.now();\n \n-    String cronExpression = \"0 30 2 8 3 ? 2020\";\n+    String cronExpression = \"0 30 2 8,9 3 ? 2020\";\n \n     // Since no 2:30 PST in March 8th in that day, IllegalStateException will always throw.\n     BasicTimeChecker timeChecker =\n+        new BasicTimeChecker(\"BasicTimeChecker_1\", now.getMillis(),\n+            DateTimeZone.forID(\"America/Los_Angeles\"), true, true, null, cronExpression);\n+    System.out.println(\"getNextCheckTime = \" + timeChecker.getNextCheckTime());\n+\n+    checkers.put(timeChecker.getId(), timeChecker);\n+    String expr = timeChecker.getId() + \".eval()\";\n+    Condition cond = new Condition(checkers, expr);\n+\n+    DateTime aTime = new DateTime(2020, 3, 9, 2, 30, 0, DateTimeZone.forID(\"America/Los_Angeles\"));\n+    assertTrue(cond.getNextCheckTime() == aTime.getMillis());\n+  }\n+\n+  /**\n+   * Test when PDT-->PST happens in 2020. -7:00 -> -8:00\n+   * See details why confusion happens during this change: https://en.wikipedia.org/wiki/Pacific_Time_Zone\n+   *\n+   * This test cronDayLightPacificWinter1 is in order to compare against the cronDayLightPacificWinter2.\n+   *\n+   * In this Test, we let job run at 1:00 at Nov.1st, 2020. We know that we will have two 1:00 at that day.\n+   * The test shows the 1:00 at that day will be based on PST, not PDT. It means that the first 1:00 is skipped at that day.\n+   */\n+  @Test\n+  public void cronDayLightPacificWinter1() {\n+\n+    Map<String, ConditionChecker> checkers =\n+        new HashMap<String, ConditionChecker>();\n+\n+    DateTime now = DateTime.now();\n+\n+    // 9:00 UTC == 1:00 PST (difference is 8 hours)\n+    String cronExpression = \"0 0 1 1,2 11 ? 2020\";\n+\n+    BasicTimeChecker timeChecker =\n         new BasicTimeChecker(\"BasicTimeChecket_1\", now.getMillis(),\n             DateTimeZone.forID(\"America/Los_Angeles\"), true, true, null, cronExpression);\n+    System.out.println(\"getNextCheckTime = \" + timeChecker.getNextCheckTime());\n+\n+    checkers.put(timeChecker.getId(), timeChecker);\n+    String expr = timeChecker.getId() + \".eval()\";\n+    Condition cond = new Condition(checkers, expr);\n+\n+    DateTime winter2020 = new DateTime(2020, 11, 1, 9, 0, 0, DateTimeZone.UTC);\n+\n+    DateTime winter2020_2 = new DateTime(2020, 11, 1, 1, 0, 0, DateTimeZone.forID(\"America/Los_Angeles\"));\n+    DateTime winter2020_3 = new DateTime(2020, 11, 1, 2, 0, 0, DateTimeZone.forID(\"America/Los_Angeles\"));\n+    assertTrue(cond.getNextCheckTime() == winter2020.getMillis());\n+\n+    // Both 1 and 2 o'clock can not pass the test.\n+    assertFalse(cond.getNextCheckTime() == winter2020_2.getMillis());\n+    assertFalse(cond.getNextCheckTime() == winter2020_3.getMillis());\n   }\n \n+\n   /**\n    * Test when PDT-->PST happens in 2020. -7:00 -> -8:00\n    * See details why confusion happens during this change: https://en.wikipedia.org/wiki/Pacific_Time_Zone\n+   *\n+   * This test cronDayLightPacificWinter2 is in order to be compared against the cronDayLightPacificWinter1.\n+   *\n+   * In this Test, we let job run at 0:59 at Nov.1st, 2020. it shows that it is 7:59 UTC\n+   * The test shows 7:59 UTC jump to 9:00 UTC.\n    */\n   @Test\n-  public void cronDayLightChangeSucceed2() {\n+  public void cronDayLightPacificWinter2() {\n \n     Map<String, ConditionChecker> checkers =\n         new HashMap<String, ConditionChecker>();\n \n     DateTime now = DateTime.now();\n \n-    // 8:30 UTC == 1:30 PDT\n-    String cronExpression = \"0 30 8 1 11 ? 2020\";\n+    // 7:59 UTC == 0:59 PDT (difference is 7 hours)\n+    String cronExpression = \"0 59 0 1,2 11 ? 2020\";\n \n     BasicTimeChecker timeChecker =\n         new BasicTimeChecker(\"BasicTimeChecket_1\", now.getMillis(),\n-            DateTimeZone.UTC, true, true, null, cronExpression);\n+            DateTimeZone.forID(\"America/Los_Angeles\"), true, true, null, cronExpression);\n+    System.out.println(\"getNextCheckTime = \" + timeChecker.getNextCheckTime());\n+\n+    checkers.put(timeChecker.getId(), timeChecker);\n+    String expr = timeChecker.getId() + \".eval()\";\n+    Condition cond = new Condition(checkers, expr);\n+\n+    DateTime winter2020 = new DateTime(2020, 11, 1, 7, 59, 0, DateTimeZone.UTC);\n+    DateTime winter2020_2 = new DateTime(2020, 11, 1, 0, 59, 0, DateTimeZone.forID(\"America/Los_Angeles\"));","path":"azkaban-common/src/test/java/azkaban/trigger/BasicTimeCheckerTest.java","position":null,"original_position":161,"commit_id":"b17aa96475346da80e8a58339f179d76129ddeb7","original_commit_id":"8bd9d9f6049d1734f7e9c8682bb52a6e015b98c5","user":{"login":"HappyRay","id":6646529,"avatar_url":"https://avatars.githubusercontent.com/u/6646529?v=3","gravatar_id":"","url":"https://api.github.com/users/HappyRay","html_url":"https://github.com/HappyRay","followers_url":"https://api.github.com/users/HappyRay/followers","following_url":"https://api.github.com/users/HappyRay/following{/other_user}","gists_url":"https://api.github.com/users/HappyRay/gists{/gist_id}","starred_url":"https://api.github.com/users/HappyRay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HappyRay/subscriptions","organizations_url":"https://api.github.com/users/HappyRay/orgs","repos_url":"https://api.github.com/users/HappyRay/repos","events_url":"https://api.github.com/users/HappyRay/events{/privacy}","received_events_url":"https://api.github.com/users/HappyRay/received_events","type":"User","site_admin":false},"body":"Add a comment highlighting that the local time remains the same.","created_at":"2016-08-31T17:30:53Z","updated_at":"2016-08-31T17:30:53Z","html_url":"https://github.com/azkaban/azkaban/pull/704#discussion_r77033573","pull_request_url":"https://api.github.com/repos/azkaban/azkaban/pulls/704","_links":{"self":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/comments/77033573"},"html":{"href":"https://github.com/azkaban/azkaban/pull/704#discussion_r77033573"},"pull_request":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/704"}}},"pull_request":{"url":"https://api.github.com/repos/azkaban/azkaban/pulls/704","id":81003910,"html_url":"https://github.com/azkaban/azkaban/pull/704","diff_url":"https://github.com/azkaban/azkaban/pull/704.diff","patch_url":"https://github.com/azkaban/azkaban/pull/704.patch","issue_url":"https://api.github.com/repos/azkaban/azkaban/issues/704","number":704,"state":"open","locked":false,"title":"fix comment from pull request #698","user":{"login":"fsi206914","id":2895882,"avatar_url":"https://avatars.githubusercontent.com/u/2895882?v=3","gravatar_id":"","url":"https://api.github.com/users/fsi206914","html_url":"https://github.com/fsi206914","followers_url":"https://api.github.com/users/fsi206914/followers","following_url":"https://api.github.com/users/fsi206914/following{/other_user}","gists_url":"https://api.github.com/users/fsi206914/gists{/gist_id}","starred_url":"https://api.github.com/users/fsi206914/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsi206914/subscriptions","organizations_url":"https://api.github.com/users/fsi206914/orgs","repos_url":"https://api.github.com/users/fsi206914/repos","events_url":"https://api.github.com/users/fsi206914/events{/privacy}","received_events_url":"https://api.github.com/users/fsi206914/received_events","type":"User","site_admin":false},"body":"Will try adding more cron tests.","created_at":"2016-08-11T18:11:20Z","updated_at":"2016-08-31T17:30:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f80eebbacea8acd09da9dd0b841f073dcc894f4d","assignee":{"login":"fsi206914","id":2895882,"avatar_url":"https://avatars.githubusercontent.com/u/2895882?v=3","gravatar_id":"","url":"https://api.github.com/users/fsi206914","html_url":"https://github.com/fsi206914","followers_url":"https://api.github.com/users/fsi206914/followers","following_url":"https://api.github.com/users/fsi206914/following{/other_user}","gists_url":"https://api.github.com/users/fsi206914/gists{/gist_id}","starred_url":"https://api.github.com/users/fsi206914/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsi206914/subscriptions","organizations_url":"https://api.github.com/users/fsi206914/orgs","repos_url":"https://api.github.com/users/fsi206914/repos","events_url":"https://api.github.com/users/fsi206914/events{/privacy}","received_events_url":"https://api.github.com/users/fsi206914/received_events","type":"User","site_admin":false},"assignees":[{"login":"fsi206914","id":2895882,"avatar_url":"https://avatars.githubusercontent.com/u/2895882?v=3","gravatar_id":"","url":"https://api.github.com/users/fsi206914","html_url":"https://github.com/fsi206914","followers_url":"https://api.github.com/users/fsi206914/followers","following_url":"https://api.github.com/users/fsi206914/following{/other_user}","gists_url":"https://api.github.com/users/fsi206914/gists{/gist_id}","starred_url":"https://api.github.com/users/fsi206914/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsi206914/subscriptions","organizations_url":"https://api.github.com/users/fsi206914/orgs","repos_url":"https://api.github.com/users/fsi206914/repos","events_url":"https://api.github.com/users/fsi206914/events{/privacy}","received_events_url":"https://api.github.com/users/fsi206914/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/azkaban/azkaban/pulls/704/commits","review_comments_url":"https://api.github.com/repos/azkaban/azkaban/pulls/704/comments","review_comment_url":"https://api.github.com/repos/azkaban/azkaban/pulls/comments{/number}","comments_url":"https://api.github.com/repos/azkaban/azkaban/issues/704/comments","statuses_url":"https://api.github.com/repos/azkaban/azkaban/statuses/b17aa96475346da80e8a58339f179d76129ddeb7","head":{"label":"fsi206914:newFlexibleScheduling","ref":"newFlexibleScheduling","sha":"b17aa96475346da80e8a58339f179d76129ddeb7","user":{"login":"fsi206914","id":2895882,"avatar_url":"https://avatars.githubusercontent.com/u/2895882?v=3","gravatar_id":"","url":"https://api.github.com/users/fsi206914","html_url":"https://github.com/fsi206914","followers_url":"https://api.github.com/users/fsi206914/followers","following_url":"https://api.github.com/users/fsi206914/following{/other_user}","gists_url":"https://api.github.com/users/fsi206914/gists{/gist_id}","starred_url":"https://api.github.com/users/fsi206914/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsi206914/subscriptions","organizations_url":"https://api.github.com/users/fsi206914/orgs","repos_url":"https://api.github.com/users/fsi206914/repos","events_url":"https://api.github.com/users/fsi206914/events{/privacy}","received_events_url":"https://api.github.com/users/fsi206914/received_events","type":"User","site_admin":false},"repo":{"id":61070884,"name":"azkaban","full_name":"fsi206914/azkaban","owner":{"login":"fsi206914","id":2895882,"avatar_url":"https://avatars.githubusercontent.com/u/2895882?v=3","gravatar_id":"","url":"https://api.github.com/users/fsi206914","html_url":"https://github.com/fsi206914","followers_url":"https://api.github.com/users/fsi206914/followers","following_url":"https://api.github.com/users/fsi206914/following{/other_user}","gists_url":"https://api.github.com/users/fsi206914/gists{/gist_id}","starred_url":"https://api.github.com/users/fsi206914/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fsi206914/subscriptions","organizations_url":"https://api.github.com/users/fsi206914/orgs","repos_url":"https://api.github.com/users/fsi206914/repos","events_url":"https://api.github.com/users/fsi206914/events{/privacy}","received_events_url":"https://api.github.com/users/fsi206914/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fsi206914/azkaban","description":"Azkaban workflow manager.","fork":true,"url":"https://api.github.com/repos/fsi206914/azkaban","forks_url":"https://api.github.com/repos/fsi206914/azkaban/forks","keys_url":"https://api.github.com/repos/fsi206914/azkaban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fsi206914/azkaban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fsi206914/azkaban/teams","hooks_url":"https://api.github.com/repos/fsi206914/azkaban/hooks","issue_events_url":"https://api.github.com/repos/fsi206914/azkaban/issues/events{/number}","events_url":"https://api.github.com/repos/fsi206914/azkaban/events","assignees_url":"https://api.github.com/repos/fsi206914/azkaban/assignees{/user}","branches_url":"https://api.github.com/repos/fsi206914/azkaban/branches{/branch}","tags_url":"https://api.github.com/repos/fsi206914/azkaban/tags","blobs_url":"https://api.github.com/repos/fsi206914/azkaban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fsi206914/azkaban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fsi206914/azkaban/git/refs{/sha}","trees_url":"https://api.github.com/repos/fsi206914/azkaban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fsi206914/azkaban/statuses/{sha}","languages_url":"https://api.github.com/repos/fsi206914/azkaban/languages","stargazers_url":"https://api.github.com/repos/fsi206914/azkaban/stargazers","contributors_url":"https://api.github.com/repos/fsi206914/azkaban/contributors","subscribers_url":"https://api.github.com/repos/fsi206914/azkaban/subscribers","subscription_url":"https://api.github.com/repos/fsi206914/azkaban/subscription","commits_url":"https://api.github.com/repos/fsi206914/azkaban/commits{/sha}","git_commits_url":"https://api.github.com/repos/fsi206914/azkaban/git/commits{/sha}","comments_url":"https://api.github.com/repos/fsi206914/azkaban/comments{/number}","issue_comment_url":"https://api.github.com/repos/fsi206914/azkaban/issues/comments{/number}","contents_url":"https://api.github.com/repos/fsi206914/azkaban/contents/{+path}","compare_url":"https://api.github.com/repos/fsi206914/azkaban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fsi206914/azkaban/merges","archive_url":"https://api.github.com/repos/fsi206914/azkaban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fsi206914/azkaban/downloads","issues_url":"https://api.github.com/repos/fsi206914/azkaban/issues{/number}","pulls_url":"https://api.github.com/repos/fsi206914/azkaban/pulls{/number}","milestones_url":"https://api.github.com/repos/fsi206914/azkaban/milestones{/number}","notifications_url":"https://api.github.com/repos/fsi206914/azkaban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fsi206914/azkaban/labels{/name}","releases_url":"https://api.github.com/repos/fsi206914/azkaban/releases{/id}","deployments_url":"https://api.github.com/repos/fsi206914/azkaban/deployments","created_at":"2016-06-13T21:26:53Z","updated_at":"2016-06-13T21:26:58Z","pushed_at":"2016-08-30T19:17:26Z","git_url":"git://github.com/fsi206914/azkaban.git","ssh_url":"git@github.com:fsi206914/azkaban.git","clone_url":"https://github.com/fsi206914/azkaban.git","svn_url":"https://github.com/fsi206914/azkaban","homepage":"https://azkaban.github.io","size":33109,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"azkaban:master","ref":"master","sha":"e94d5a332d5e7f28bf568935d741a612c9a58d45","user":{"login":"azkaban","id":213618,"avatar_url":"https://avatars.githubusercontent.com/u/213618?v=3","gravatar_id":"","url":"https://api.github.com/users/azkaban","html_url":"https://github.com/azkaban","followers_url":"https://api.github.com/users/azkaban/followers","following_url":"https://api.github.com/users/azkaban/following{/other_user}","gists_url":"https://api.github.com/users/azkaban/gists{/gist_id}","starred_url":"https://api.github.com/users/azkaban/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azkaban/subscriptions","organizations_url":"https://api.github.com/users/azkaban/orgs","repos_url":"https://api.github.com/users/azkaban/repos","events_url":"https://api.github.com/users/azkaban/events{/privacy}","received_events_url":"https://api.github.com/users/azkaban/received_events","type":"Organization","site_admin":false},"repo":{"id":6271421,"name":"azkaban","full_name":"azkaban/azkaban","owner":{"login":"azkaban","id":213618,"avatar_url":"https://avatars.githubusercontent.com/u/213618?v=3","gravatar_id":"","url":"https://api.github.com/users/azkaban","html_url":"https://github.com/azkaban","followers_url":"https://api.github.com/users/azkaban/followers","following_url":"https://api.github.com/users/azkaban/following{/other_user}","gists_url":"https://api.github.com/users/azkaban/gists{/gist_id}","starred_url":"https://api.github.com/users/azkaban/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azkaban/subscriptions","organizations_url":"https://api.github.com/users/azkaban/orgs","repos_url":"https://api.github.com/users/azkaban/repos","events_url":"https://api.github.com/users/azkaban/events{/privacy}","received_events_url":"https://api.github.com/users/azkaban/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/azkaban/azkaban","description":"Azkaban workflow manager.","fork":false,"url":"https://api.github.com/repos/azkaban/azkaban","forks_url":"https://api.github.com/repos/azkaban/azkaban/forks","keys_url":"https://api.github.com/repos/azkaban/azkaban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/azkaban/azkaban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/azkaban/azkaban/teams","hooks_url":"https://api.github.com/repos/azkaban/azkaban/hooks","issue_events_url":"https://api.github.com/repos/azkaban/azkaban/issues/events{/number}","events_url":"https://api.github.com/repos/azkaban/azkaban/events","assignees_url":"https://api.github.com/repos/azkaban/azkaban/assignees{/user}","branches_url":"https://api.github.com/repos/azkaban/azkaban/branches{/branch}","tags_url":"https://api.github.com/repos/azkaban/azkaban/tags","blobs_url":"https://api.github.com/repos/azkaban/azkaban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/azkaban/azkaban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/azkaban/azkaban/git/refs{/sha}","trees_url":"https://api.github.com/repos/azkaban/azkaban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/azkaban/azkaban/statuses/{sha}","languages_url":"https://api.github.com/repos/azkaban/azkaban/languages","stargazers_url":"https://api.github.com/repos/azkaban/azkaban/stargazers","contributors_url":"https://api.github.com/repos/azkaban/azkaban/contributors","subscribers_url":"https://api.github.com/repos/azkaban/azkaban/subscribers","subscription_url":"https://api.github.com/repos/azkaban/azkaban/subscription","commits_url":"https://api.github.com/repos/azkaban/azkaban/commits{/sha}","git_commits_url":"https://api.github.com/repos/azkaban/azkaban/git/commits{/sha}","comments_url":"https://api.github.com/repos/azkaban/azkaban/comments{/number}","issue_comment_url":"https://api.github.com/repos/azkaban/azkaban/issues/comments{/number}","contents_url":"https://api.github.com/repos/azkaban/azkaban/contents/{+path}","compare_url":"https://api.github.com/repos/azkaban/azkaban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/azkaban/azkaban/merges","archive_url":"https://api.github.com/repos/azkaban/azkaban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/azkaban/azkaban/downloads","issues_url":"https://api.github.com/repos/azkaban/azkaban/issues{/number}","pulls_url":"https://api.github.com/repos/azkaban/azkaban/pulls{/number}","milestones_url":"https://api.github.com/repos/azkaban/azkaban/milestones{/number}","notifications_url":"https://api.github.com/repos/azkaban/azkaban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/azkaban/azkaban/labels{/name}","releases_url":"https://api.github.com/repos/azkaban/azkaban/releases{/id}","deployments_url":"https://api.github.com/repos/azkaban/azkaban/deployments","created_at":"2012-10-18T01:34:53Z","updated_at":"2016-08-31T08:20:41Z","pushed_at":"2016-08-30T18:10:31Z","git_url":"git://github.com/azkaban/azkaban.git","ssh_url":"git@github.com:azkaban/azkaban.git","clone_url":"https://github.com/azkaban/azkaban.git","svn_url":"https://github.com/azkaban/azkaban","homepage":"https://azkaban.github.io","size":34245,"stargazers_count":774,"watchers_count":774,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":442,"mirror_url":null,"open_issues_count":256,"forks":442,"open_issues":256,"watchers":774,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/704"},"html":{"href":"https://github.com/azkaban/azkaban/pull/704"},"issue":{"href":"https://api.github.com/repos/azkaban/azkaban/issues/704"},"comments":{"href":"https://api.github.com/repos/azkaban/azkaban/issues/704/comments"},"review_comments":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/704/comments"},"review_comment":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/azkaban/azkaban/pulls/704/commits"},"statuses":{"href":"https://api.github.com/repos/azkaban/azkaban/statuses/b17aa96475346da80e8a58339f179d76129ddeb7"}}}}
{"actor":{"display_login":"HappyRay"}}