{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments/54220262","id":54220262,"diff_hunk":"@@ -0,0 +1,1268 @@\n+/*\n+ * Copyright 2016 Google Inc. All Rights Reserved.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *       http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package com.google.gcloud.dns;\n+\n+import static org.junit.Assert.assertEquals;\n+import static org.junit.Assert.assertFalse;\n+import static org.junit.Assert.assertNotNull;\n+import static org.junit.Assert.assertNull;\n+import static org.junit.Assert.assertTrue;\n+import static org.junit.Assert.fail;\n+\n+import com.google.common.collect.ImmutableList;\n+import com.google.gcloud.Page;\n+\n+import org.junit.After;\n+import org.junit.AfterClass;\n+import org.junit.BeforeClass;\n+import org.junit.Test;\n+\n+import java.util.Iterator;\n+import java.util.LinkedList;\n+import java.util.List;\n+import java.util.UUID;\n+import java.util.concurrent.TimeUnit;\n+\n+public class ITDnsTest {\n+\n+  // todo(mderka) Implement test for creating invalid change when DnsException is finished. #673\n+\n+  public static final int TIME_LIMIT = 10;\n+  public static final String PREFIX = \"gcldjvit-\";\n+  public static final Dns DNS = DnsOptions.builder().build().service();\n+  public static final String PROJECT_ID = DNS.options().projectId();\n+  public static final String ZONE_NAME1 = (PREFIX + UUID.randomUUID()).substring(0, 32);\n+  public static final String ZONE_NAME_EMPTY_DESCRIPTION =\n+      (\"gcldjvit-\" + UUID.randomUUID()).substring(0, 32);\n+  public static final String ZONE_NAME_TOO_LONG = (PREFIX + UUID.randomUUID());\n+  public static final String ZONE_DESCRIPTION1 = \"first zone\";\n+  public static final String ZONE_DNS_NAME1 = ZONE_NAME1 + \".com.\";\n+  public static final String ZONE_DNS_EMPTY_DESCRIPTION = ZONE_NAME_EMPTY_DESCRIPTION + \".com.\";\n+  public static final String ZONE_DNS_NAME_NO_PERIOD = ZONE_NAME1 + \".com\";\n+  public static final ZoneInfo ZONE1 = ZoneInfo.builder(ZONE_NAME1)\n+      .description(ZONE_DESCRIPTION1)\n+      .dnsName(ZONE_DNS_EMPTY_DESCRIPTION)\n+      .build();\n+  public static final ZoneInfo ZONE_EMPTY_DESCRIPTION =\n+      ZoneInfo.builder(ZONE_NAME_EMPTY_DESCRIPTION)\n+          .description(ZONE_DESCRIPTION1)\n+          .dnsName(ZONE_DNS_NAME1)\n+          .build();\n+  public static final ZoneInfo ZONE_NAME_ERROR =\n+      ZoneInfo.builder(ZONE_NAME_TOO_LONG)\n+          .description(ZONE_DESCRIPTION1)\n+          .dnsName(ZONE_DNS_NAME1)\n+          .build();\n+  public static final ZoneInfo ZONE_MISSING_DESCRIPTION =\n+      ZoneInfo.builder(ZONE_NAME1)\n+          .dnsName(ZONE_DNS_NAME1)\n+          .build();\n+  public static final ZoneInfo ZONE_MISSING_DNS_NAME =\n+      ZoneInfo.builder(ZONE_NAME1)\n+          .description(ZONE_DESCRIPTION1)\n+          .build();\n+  public static final ZoneInfo ZONE_DNS_NO_PERIOD =\n+      ZoneInfo.builder(ZONE_NAME1)\n+          .description(ZONE_DESCRIPTION1)\n+          .dnsName(ZONE_DNS_NAME_NO_PERIOD)\n+          .build();\n+  public static final DnsRecord A_RECORD_ZONE1 = DnsRecord\n+      .builder(\"www.\" + ZONE1.dnsName(), DnsRecord.Type.A)\n+      .records(ImmutableList.of(\"123.123.55.1\"))\n+      .ttl(25, TimeUnit.SECONDS)\n+      .build();\n+  public static final DnsRecord AAAA_RECORD_ZONE1 = DnsRecord\n+      .builder(\"www.\" + ZONE1.dnsName(), DnsRecord.Type.AAAA)\n+      .records(ImmutableList.of(\"ed:ed:12:aa:36:3:3:105\"))\n+      .ttl(25, TimeUnit.SECONDS)\n+      .build();\n+  public static final ChangeRequest CHANGE_ADD_ZONE1 = ChangeRequest.builder()\n+      .add(A_RECORD_ZONE1)\n+      .add(AAAA_RECORD_ZONE1)\n+      .build();\n+  public static final ChangeRequest CHANGE_DELETE_ZONE1 = ChangeRequest.builder()\n+      .delete(A_RECORD_ZONE1)\n+      .delete(AAAA_RECORD_ZONE1)\n+      .build();\n+\n+  public static void purge() {\n+    Page<Zone> zones = DNS.listZones();\n+    Iterator<Zone> zoneIterator = zones.iterateAll();\n+    while (zoneIterator.hasNext()) {\n+      Zone zone = zoneIterator.next();\n+      List<DnsRecord> toDelete = new LinkedList<>();\n+      if (zone.name().startsWith(PREFIX)) {\n+        Iterator<DnsRecord> dnsRecordIterator = zone.listDnsRecords().iterateAll();\n+        while (dnsRecordIterator.hasNext()) {\n+          DnsRecord record = dnsRecordIterator.next();\n+          if (!ImmutableList.of(DnsRecord.Type.NS, DnsRecord.Type.SOA).contains(record.type())) {\n+            toDelete.add(record);\n+          }\n+        }\n+        if (!toDelete.isEmpty()) {\n+          zone.applyChangeRequest(ChangeRequest.builder().deletions(toDelete).build());\n+        }\n+        zone.delete();\n+      }\n+    }\n+  }\n+\n+  private static List<Zone> filter(Iterator<Zone> iterator) {\n+    List<Zone> result = new LinkedList<>();\n+    while (iterator.hasNext()) {\n+      Zone zone = iterator.next();\n+      if (zone.name().startsWith(PREFIX)) {\n+        result.add(zone);\n+      }\n+    }\n+    return result;\n+  }\n+\n+  @BeforeClass\n+  public static void before() {\n+    purge();\n+  }\n+\n+  @AfterClass\n+  public static void after() {\n+    purge();\n+  }\n+\n+  @Test\n+  public void testCreateValidZone() {\n+    Zone created = DNS.create(ZONE1);\n+    assertEquals(ZONE1.description(), created.description());\n+    assertEquals(ZONE1.dnsName(), created.dnsName());\n+    assertEquals(ZONE1.name(), created.name());\n+    assertNotNull(created.creationTimeMillis());\n+    assertNotNull(created.nameServers());\n+    assertNull(created.nameServerSet());\n+    assertNotNull(created.id());\n+    Zone retrieved = DNS.getZone(ZONE1.name());\n+    assertEquals(created, retrieved);\n+    created = DNS.create(ZONE_EMPTY_DESCRIPTION);\n+    assertEquals(ZONE_EMPTY_DESCRIPTION.description(), created.description());\n+    assertEquals(ZONE_EMPTY_DESCRIPTION.dnsName(), created.dnsName());\n+    assertEquals(ZONE_EMPTY_DESCRIPTION.name(), created.name());\n+    assertNotNull(created.creationTimeMillis());\n+    assertNotNull(created.nameServers());\n+    assertNull(created.nameServerSet());\n+    assertNotNull(created.id());\n+    retrieved = DNS.getZone(ZONE_EMPTY_DESCRIPTION.name());\n+    assertEquals(created, retrieved);\n+  }\n+\n+  @After\n+  public void tearDown() {\n+    purge();\n+  }\n+\n+  @Test\n+  public void testCreateZoneWithErrors() {\n+    try {\n+      DNS.create(ZONE_MISSING_DNS_NAME);\n+      fail(\"Zone is missing DNS name. The service returns an error.\");\n+    } catch (DnsException ex) {\n+      // expected\n+      // todo(mderka) test non-retryable when implemented within #593\n+    }\n+    try {\n+      DNS.create(ZONE_MISSING_DESCRIPTION);\n+      fail(\"Zone is missing description name. The service returns an error.\");\n+    } catch (DnsException ex) {\n+      // expected\n+      // todo(mderka) test non-retryable when implemented within #593\n+    }\n+    try {\n+      DNS.create(ZONE_NAME_ERROR);\n+      fail(\"Zone name is missing a period. The service returns an error.\");\n+    } catch (DnsException ex) {\n+      // expected\n+      // todo(mderka) test non-retryable when implemented within #593\n+    }\n+    try {\n+      DNS.create(ZONE_DNS_NO_PERIOD);\n+      fail(\"Zone name is missing a period. The service returns an error.\");\n+    } catch (DnsException ex) {\n+      // expected\n+      // todo(mderka) test non-retryable when implemented within #593\n+    }\n+  }\n+\n+  @Test\n+  public void testCreateZoneWithOptions() {\n+    Zone created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.CREATION_TIME));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNotNull(created.creationTimeMillis());\n+    assertNull(created.description());\n+    assertNull(created.dnsName());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNull(created.nameServerSet());\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.DESCRIPTION));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertEquals(ZONE1.description(), created.description());\n+    assertNull(created.dnsName());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNull(created.nameServerSet());\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.DNS_NAME));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertEquals(ZONE1.dnsName(), created.dnsName());\n+    assertNull(created.description());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNull(created.nameServerSet());\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.NAME));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertNull(created.dnsName());\n+    assertNull(created.description());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNull(created.nameServerSet());\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.NAME_SERVER_SET));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertNull(created.dnsName());\n+    assertNull(created.description());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNull(created.nameServerSet()); // we did not set it\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.NAME_SERVERS));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertNull(created.dnsName());\n+    assertNull(created.description());\n+    assertFalse(created.nameServers().isEmpty());\n+    assertNull(created.nameServerSet());\n+    assertNull(created.id());\n+    created.delete();\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.ZONE_ID));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertNull(created.dnsName());\n+    assertNull(created.description());\n+    assertNotNull(created.nameServers());\n+    assertTrue(created.nameServers().isEmpty()); // never returns null\n+    assertNotNull(created.id());\n+    created.delete();\n+    // combination of multiple things\n+    created = DNS.create(ZONE1, Dns.ZoneOption.fields(Dns.ZoneField.ZONE_ID,\n+        Dns.ZoneField.NAME_SERVERS, Dns.ZoneField.NAME_SERVER_SET, Dns.ZoneField.DESCRIPTION));\n+    assertEquals(ZONE1.name(), created.name()); // always returned\n+    assertNull(created.creationTimeMillis());\n+    assertNull(created.dnsName());\n+    assertEquals(ZONE1.description(), created.description());\n+    assertFalse(created.nameServers().isEmpty());\n+    assertNull(created.nameServerSet()); // we did not set it\n+    assertNotNull(created.id());\n+  }\n+\n+  @Test\n+  public void testZoneReload() {","path":"gcloud-java-dns/src/test/java/com/google/gcloud/dns/ITDnsTest.java","position":284,"original_position":284,"commit_id":"cbf737da9a05d69355199bf979e8e2b950aa56e1","original_commit_id":"cbf737da9a05d69355199bf979e8e2b950aa56e1","user":{"login":"mziccard","id":450933,"avatar_url":"https://avatars.githubusercontent.com/u/450933?v=3","gravatar_id":"","url":"https://api.github.com/users/mziccard","html_url":"https://github.com/mziccard","followers_url":"https://api.github.com/users/mziccard/followers","following_url":"https://api.github.com/users/mziccard/following{/other_user}","gists_url":"https://api.github.com/users/mziccard/gists{/gist_id}","starred_url":"https://api.github.com/users/mziccard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mziccard/subscriptions","organizations_url":"https://api.github.com/users/mziccard/orgs","repos_url":"https://api.github.com/users/mziccard/repos","events_url":"https://api.github.com/users/mziccard/events{/privacy}","received_events_url":"https://api.github.com/users/mziccard/received_events","type":"User","site_admin":false},"body":"I am not sure we need integration tests for this, we already have unit tests for Zone that mock the dns service and integration tests for `dns.getZone`","created_at":"2016-02-26T09:22:17Z","updated_at":"2016-02-26T09:22:17Z","html_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674#discussion_r54220262","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments/54220262"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674#discussion_r54220262"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674","id":60758486,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674","diff_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674.diff","patch_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/674","number":674,"state":"open","locked":false,"title":"Added integration tests.","user":{"login":"mderka","id":1192586,"avatar_url":"https://avatars.githubusercontent.com/u/1192586?v=3","gravatar_id":"","url":"https://api.github.com/users/mderka","html_url":"https://github.com/mderka","followers_url":"https://api.github.com/users/mderka/followers","following_url":"https://api.github.com/users/mderka/following{/other_user}","gists_url":"https://api.github.com/users/mderka/gists{/gist_id}","starred_url":"https://api.github.com/users/mderka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mderka/subscriptions","organizations_url":"https://api.github.com/users/mderka/orgs","repos_url":"https://api.github.com/users/mderka/repos","events_url":"https://api.github.com/users/mderka/events{/privacy}","received_events_url":"https://api.github.com/users/mderka/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-02-25T22:26:25Z","updated_at":"2016-02-26T09:22:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d99a55ba1d0622e32d40d3eafa9cf0389699fb26","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/674/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/cbf737da9a05d69355199bf979e8e2b950aa56e1","head":{"label":"mderka:integration","ref":"integration","sha":"cbf737da9a05d69355199bf979e8e2b950aa56e1","user":{"login":"mderka","id":1192586,"avatar_url":"https://avatars.githubusercontent.com/u/1192586?v=3","gravatar_id":"","url":"https://api.github.com/users/mderka","html_url":"https://github.com/mderka","followers_url":"https://api.github.com/users/mderka/followers","following_url":"https://api.github.com/users/mderka/following{/other_user}","gists_url":"https://api.github.com/users/mderka/gists{/gist_id}","starred_url":"https://api.github.com/users/mderka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mderka/subscriptions","organizations_url":"https://api.github.com/users/mderka/orgs","repos_url":"https://api.github.com/users/mderka/repos","events_url":"https://api.github.com/users/mderka/events{/privacy}","received_events_url":"https://api.github.com/users/mderka/received_events","type":"User","site_admin":false},"repo":{"id":49172330,"name":"gcloud-java","full_name":"mderka/gcloud-java","owner":{"login":"mderka","id":1192586,"avatar_url":"https://avatars.githubusercontent.com/u/1192586?v=3","gravatar_id":"","url":"https://api.github.com/users/mderka","html_url":"https://github.com/mderka","followers_url":"https://api.github.com/users/mderka/followers","following_url":"https://api.github.com/users/mderka/following{/other_user}","gists_url":"https://api.github.com/users/mderka/gists{/gist_id}","starred_url":"https://api.github.com/users/mderka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mderka/subscriptions","organizations_url":"https://api.github.com/users/mderka/orgs","repos_url":"https://api.github.com/users/mderka/repos","events_url":"https://api.github.com/users/mderka/events{/privacy}","received_events_url":"https://api.github.com/users/mderka/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mderka/gcloud-java","description":"Google Cloud Client Library for Java","fork":true,"url":"https://api.github.com/repos/mderka/gcloud-java","forks_url":"https://api.github.com/repos/mderka/gcloud-java/forks","keys_url":"https://api.github.com/repos/mderka/gcloud-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mderka/gcloud-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mderka/gcloud-java/teams","hooks_url":"https://api.github.com/repos/mderka/gcloud-java/hooks","issue_events_url":"https://api.github.com/repos/mderka/gcloud-java/issues/events{/number}","events_url":"https://api.github.com/repos/mderka/gcloud-java/events","assignees_url":"https://api.github.com/repos/mderka/gcloud-java/assignees{/user}","branches_url":"https://api.github.com/repos/mderka/gcloud-java/branches{/branch}","tags_url":"https://api.github.com/repos/mderka/gcloud-java/tags","blobs_url":"https://api.github.com/repos/mderka/gcloud-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mderka/gcloud-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mderka/gcloud-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/mderka/gcloud-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mderka/gcloud-java/statuses/{sha}","languages_url":"https://api.github.com/repos/mderka/gcloud-java/languages","stargazers_url":"https://api.github.com/repos/mderka/gcloud-java/stargazers","contributors_url":"https://api.github.com/repos/mderka/gcloud-java/contributors","subscribers_url":"https://api.github.com/repos/mderka/gcloud-java/subscribers","subscription_url":"https://api.github.com/repos/mderka/gcloud-java/subscription","commits_url":"https://api.github.com/repos/mderka/gcloud-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/mderka/gcloud-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/mderka/gcloud-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/mderka/gcloud-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/mderka/gcloud-java/contents/{+path}","compare_url":"https://api.github.com/repos/mderka/gcloud-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mderka/gcloud-java/merges","archive_url":"https://api.github.com/repos/mderka/gcloud-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mderka/gcloud-java/downloads","issues_url":"https://api.github.com/repos/mderka/gcloud-java/issues{/number}","pulls_url":"https://api.github.com/repos/mderka/gcloud-java/pulls{/number}","milestones_url":"https://api.github.com/repos/mderka/gcloud-java/milestones{/number}","notifications_url":"https://api.github.com/repos/mderka/gcloud-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mderka/gcloud-java/labels{/name}","releases_url":"https://api.github.com/repos/mderka/gcloud-java/releases{/id}","deployments_url":"https://api.github.com/repos/mderka/gcloud-java/deployments","created_at":"2016-01-07T01:16:58Z","updated_at":"2016-01-11T19:05:33Z","pushed_at":"2016-02-25T22:24:40Z","git_url":"git://github.com/mderka/gcloud-java.git","ssh_url":"git@github.com:mderka/gcloud-java.git","clone_url":"https://github.com/mderka/gcloud-java.git","svn_url":"https://github.com/mderka/gcloud-java","homepage":"http://googlecloudplatform.github.io/gcloud-java/","size":23831,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:dns-alpha","ref":"dns-alpha","sha":"fa081accf9226519ddad731b74aaa2563654f5b4","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":26181278,"name":"gcloud-java","full_name":"GoogleCloudPlatform/gcloud-java","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-java","description":"Google Cloud Client Library for Java","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/deployments","created_at":"2014-11-04T17:57:16Z","updated_at":"2016-02-23T23:41:21Z","pushed_at":"2016-02-26T00:11:50Z","git_url":"git://github.com/GoogleCloudPlatform/gcloud-java.git","ssh_url":"git@github.com:GoogleCloudPlatform/gcloud-java.git","clone_url":"https://github.com/GoogleCloudPlatform/gcloud-java.git","svn_url":"https://github.com/GoogleCloudPlatform/gcloud-java","homepage":"http://googlecloudplatform.github.io/gcloud-java/","size":214791,"stargazers_count":65,"watchers_count":65,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":36,"mirror_url":null,"open_issues_count":116,"forks":36,"open_issues":116,"watchers":65,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/674"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/674"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/674/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/674/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/cbf737da9a05d69355199bf979e8e2b950aa56e1"}}}}