{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/comments/223857390","pull_request_review_id":163086161,"id":223857390,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMzg1NzM5MA==","diff_hunk":"@@ -906,6 +916,264 @@ func queryWithTimestamp(ctx context.Context, w io.Writer, client *spanner.Client\n \n // [END spanner_query_data_with_timestamp_column]\n \n+// [START spanner_dml_standard_insert]\n+\n+func insertUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `INSERT Singers (SingerId, FirstName, LastName)\n+\t\t\t\t\t\t\t\t\t\tVALUES (10, 'Virginia', 'Watson')`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) inserted.\\n\", rowCount)\n+\t\t\treturn nil\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_standard_insert]\n+\n+// [START spanner_dml_standard_update]\n+\n+func updateUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `UPDATE Albums\n+\t\t\t\t\t\t\t\tSET MarketingBudget = MarketingBudget * 2\n+\t\t\t\t\t\t\t\tWHERE SingerId = 1 and AlbumId = 1`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) updated.\\n\", rowCount)\n+\t\t\treturn nil\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_standard_update]\n+\n+// [START spanner_dml_standard_delete]\n+\n+func deleteUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `DELETE Singers WHERE FirstName = 'Alice'`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) deleted.\\n\", rowCount)\n+\t\t\treturn nil\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_standard_delete]\n+\n+// [START spanner_dml_standard_update_with_timestamp]\n+\n+func updateUsingDMLWithTimestamp(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `UPDATE Albums\n+\t\t\t\t\t\t\t\tSET LastUpdateTime = PENDING_COMMIT_TIMESTAMP()\n+\t\t\t\t\t\t\t\tWHERE SingerId = 1`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) updated.\\n\", rowCount)\n+\t\t\treturn nil\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_standard_update_with_timestamp]\n+\n+// [START spanner_dml_write_then_read]\n+\n+func writeAndReadUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\t// Insert Record\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `INSERT Singers (SingerId, FirstName, LastName)\n+\t\t\t\t\t\t\t\tVALUES (11, 'Timothy', 'Campbell')`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) inserted.\\n\", rowCount)\n+\n+\t\t\t// Read newly inserted record\n+\t\t\titer := txn.Query(ctx, spanner.Statement{\n+\t\t\t\tSQL: `SELECT FirstName, LastName FROM Singers WHERE SingerId = 11`})\n+\t\t\tdefer iter.Stop()\n+\n+\t\t\tfor {\n+\t\t\t\trow, err := iter.Next()\n+\t\t\t\tif err == iterator.Done || err != nil {\n+\t\t\t\t\tbreak\n+\t\t\t\t}\n+\t\t\t\tvar firstName, lastName string\n+\t\t\t\tif err := row.ColumnByName(\"FirstName\", &firstName); err != nil {\n+\t\t\t\t\treturn err\n+\t\t\t\t}\n+\t\t\t\tif err := row.ColumnByName(\"LastName\", &lastName); err != nil {\n+\t\t\t\t\treturn err\n+\t\t\t\t}\n+\t\t\t\tfmt.Fprintf(w, \"Found record name with %s, %s\", firstName, lastName)\n+\t\t\t}\n+\t\t\treturn err\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_write_then_read]\n+\n+// [START spanner_dml_structs]\n+\n+func updateUsingDMLStruct(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\n+\t\t\ttype nameStruct struct {\n+\t\t\t\tFirstName string\n+\t\t\t\tLastName  string\n+\t\t\t}\n+\t\t\tvar singerInfo = nameStruct{\"Timothy\", \"Campbell\"}\n+\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `Update Singers Set LastName = 'Grant' \n+\t\t\t\t\t\tWHERE STRUCT<FirstName String, LastName String>(Firstname, LastName) = @name`,\n+\t\t\t\tParams: map[string]interface{}{\"name\": singerInfo},\n+\t\t\t})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) inserted.\\n\", rowCount)\n+\t\t\treturn nil\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_structs]\n+\n+// [START spanner_dml_getting_started_insert]\n+\n+func writeUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\trowCount, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\tSQL: `INSERT Singers (SingerId, FirstName, LastName) VALUES\n+\t\t\t\t\t\t\t\t(12, 'Melissa', 'Garcia'),\n+\t\t\t\t\t\t\t\t(13, 'Russell', 'Morales'),\n+\t\t\t\t\t\t\t\t(14, 'Jacqueline', 'Long'),\n+\t\t\t\t\t\t\t\t(15, 'Dylan', 'Shaw')`})\n+\t\t\tif err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tfmt.Fprintf(w, \"%d record(s) inserted.\\n\", rowCount)\n+\t\t\treturn err\n+\t\t})\n+\treturn err\n+}\n+\n+// [END spanner_dml_getting_started_insert]\n+\n+// [START spanner_dml_getting_started_update]\n+\n+func writeWithTransactionUsingDML(ctx context.Context, w io.Writer, client *spanner.Client) error {\n+\t_, err := client.ReadWriteTransaction(\n+\t\tctx, func(ctx context.Context, txn *spanner.ReadWriteTransaction) error {\n+\t\t\t// Helper function for retrieving the budget of a record\n+\t\t\tgetBudget := func(key spanner.Key) (int64, error) {\n+\t\t\t\trow, err := txn.ReadRow(ctx, \"Albums\", key, []string{\"MarketingBudget\"})\n+\t\t\t\tif err != nil {\n+\t\t\t\t\treturn 0, err\n+\t\t\t\t}\n+\t\t\t\tvar budget int64\n+\t\t\t\tif err := row.Column(0, &budget); err != nil {\n+\t\t\t\t\treturn 0, err\n+\t\t\t\t}\n+\t\t\t\treturn budget, nil\n+\t\t\t}\n+\t\t\t// Helper function for updating the budget of a record.\n+\t\t\tupdateBudget := func(singerId, albumId, albumBudget int64) error {\n+\t\t\t\t_, err := txn.Update(ctx, spanner.Statement{\n+\t\t\t\t\tSQL: `UPDATE Albums\n+\t\t\t\t\t\t\t\t\tSET MarketingBudget = @AlbumBudget\n+\t\t\t\t\t\t\t\t\tWHERE SingerId = @SingerId and AlbumId = @AlbumId`,\n+\t\t\t\t\tParams: map[string]interface{}{\n+\t\t\t\t\t\t\"SingerId\":    singerId,\n+\t\t\t\t\t\t\"AlbumId\":     albumId,\n+\t\t\t\t\t\t\"AlbumBudget\": albumBudget,\n+\t\t\t\t\t},\n+\t\t\t\t})\n+\t\t\t\treturn err\n+\t\t\t}\n+\n+\t\t\t// Transfer the marketing budget from one album to another. By keeping the actions\n+\t\t\t// in a single transaction, it ensures the movement is atomic.\n+\t\t\tconst transferAmt = 200000\n+\t\t\tvar album1budget, album2budget int64\n+\t\t\tvar err error\n+\t\t\tif album1budget, err = getBudget(spanner.Key{1, 1}); err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\t// Transaction will only be committed if this condition still holds at the time of","path":"spanner/spanner_snippets/snippet.go","position":228,"original_position":228,"commit_id":"3ce77811b12d5610e10bd0511b6642717fc96869","original_commit_id":"3ce77811b12d5610e10bd0511b6642717fc96869","user":{"login":"tbpg","id":26876514,"node_id":"MDQ6VXNlcjI2ODc2NTE0","avatar_url":"https://avatars0.githubusercontent.com/u/26876514?v=4","gravatar_id":"","url":"https://api.github.com/users/tbpg","html_url":"https://github.com/tbpg","followers_url":"https://api.github.com/users/tbpg/followers","following_url":"https://api.github.com/users/tbpg/following{/other_user}","gists_url":"https://api.github.com/users/tbpg/gists{/gist_id}","starred_url":"https://api.github.com/users/tbpg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbpg/subscriptions","organizations_url":"https://api.github.com/users/tbpg/orgs","repos_url":"https://api.github.com/users/tbpg/repos","events_url":"https://api.github.com/users/tbpg/events{/privacy}","received_events_url":"https://api.github.com/users/tbpg/received_events","type":"User","site_admin":false},"body":"The transaction","created_at":"2018-10-09T20:46:43Z","updated_at":"2018-10-09T20:50:38Z","html_url":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643#discussion_r223857390","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/comments/223857390"},"html":{"href":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643#discussion_r223857390"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643","id":221521464,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIxNTIxNDY0","html_url":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643","diff_url":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643.diff","patch_url":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/643","number":643,"state":"open","locked":false,"title":"Added Spanner DML/PDML samples.","user":{"login":"kurtisvg","id":31518063,"node_id":"MDQ6VXNlcjMxNTE4MDYz","avatar_url":"https://avatars3.githubusercontent.com/u/31518063?v=4","gravatar_id":"","url":"https://api.github.com/users/kurtisvg","html_url":"https://github.com/kurtisvg","followers_url":"https://api.github.com/users/kurtisvg/followers","following_url":"https://api.github.com/users/kurtisvg/following{/other_user}","gists_url":"https://api.github.com/users/kurtisvg/gists{/gist_id}","starred_url":"https://api.github.com/users/kurtisvg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kurtisvg/subscriptions","organizations_url":"https://api.github.com/users/kurtisvg/orgs","repos_url":"https://api.github.com/users/kurtisvg/repos","events_url":"https://api.github.com/users/kurtisvg/events{/privacy}","received_events_url":"https://api.github.com/users/kurtisvg/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-10-09T17:23:31Z","updated_at":"2018-10-09T20:50:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"90b2adc69ed947646b7cd2fc261a440df87e17e7","assignee":null,"assignees":[],"requested_reviewers":[{"login":"jsimonweb","id":2709164,"node_id":"MDQ6VXNlcjI3MDkxNjQ=","avatar_url":"https://avatars1.githubusercontent.com/u/2709164?v=4","gravatar_id":"","url":"https://api.github.com/users/jsimonweb","html_url":"https://github.com/jsimonweb","followers_url":"https://api.github.com/users/jsimonweb/followers","following_url":"https://api.github.com/users/jsimonweb/following{/other_user}","gists_url":"https://api.github.com/users/jsimonweb/gists{/gist_id}","starred_url":"https://api.github.com/users/jsimonweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsimonweb/subscriptions","organizations_url":"https://api.github.com/users/jsimonweb/orgs","repos_url":"https://api.github.com/users/jsimonweb/repos","events_url":"https://api.github.com/users/jsimonweb/events{/privacy}","received_events_url":"https://api.github.com/users/jsimonweb/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":898457307,"node_id":"MDU6TGFiZWw4OTg0NTczMDc=","url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/labels/cla:%20yes","name":"cla: yes","color":"46c94f","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/643/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/statuses/3ce77811b12d5610e10bd0511b6642717fc96869","head":{"label":"GoogleCloudPlatform:spanner-dml","ref":"spanner-dml","sha":"3ce77811b12d5610e10bd0511b6642717fc96869","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","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":43332504,"node_id":"MDEwOlJlcG9zaXRvcnk0MzMzMjUwNA==","name":"golang-samples","full_name":"GoogleCloudPlatform/golang-samples","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","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},"html_url":"https://github.com/GoogleCloudPlatform/golang-samples","description":"Sample apps and code written for Google Cloud in the Go programming language.","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/deployments","created_at":"2015-09-28T23:20:08Z","updated_at":"2018-10-09T08:07:49Z","pushed_at":"2018-10-09T19:32:52Z","git_url":"git://github.com/GoogleCloudPlatform/golang-samples.git","ssh_url":"git@github.com:GoogleCloudPlatform/golang-samples.git","clone_url":"https://github.com/GoogleCloudPlatform/golang-samples.git","svn_url":"https://github.com/GoogleCloudPlatform/golang-samples","homepage":"","size":4400,"stargazers_count":978,"watchers_count":978,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":423,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":423,"open_issues":29,"watchers":978,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"6eda621a524f8d75e262117052e7d63ce570cb7c","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","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":43332504,"node_id":"MDEwOlJlcG9zaXRvcnk0MzMzMjUwNA==","name":"golang-samples","full_name":"GoogleCloudPlatform/golang-samples","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","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},"html_url":"https://github.com/GoogleCloudPlatform/golang-samples","description":"Sample apps and code written for Google Cloud in the Go programming language.","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/deployments","created_at":"2015-09-28T23:20:08Z","updated_at":"2018-10-09T08:07:49Z","pushed_at":"2018-10-09T19:32:52Z","git_url":"git://github.com/GoogleCloudPlatform/golang-samples.git","ssh_url":"git@github.com:GoogleCloudPlatform/golang-samples.git","clone_url":"https://github.com/GoogleCloudPlatform/golang-samples.git","svn_url":"https://github.com/GoogleCloudPlatform/golang-samples","homepage":"","size":4400,"stargazers_count":978,"watchers_count":978,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":423,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"other","name":"NOASSERTION","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":423,"open_issues":29,"watchers":978,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643"},"html":{"href":"https://github.com/GoogleCloudPlatform/golang-samples/pull/643"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/643"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/issues/643/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/pulls/643/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/golang-samples/statuses/3ce77811b12d5610e10bd0511b6642717fc96869"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"tbpg"}}