{"action":"created","comment":{"url":"https://api.github.com/repos/koding/koding/pulls/comments/87603704","pull_request_review_id":8211966,"id":87603704,"diff_hunk":"@@ -0,0 +1,125 @@\n+package softlayer_test\n+\n+import (\n+\t\"os\"\n+\t\"testing\"\n+\n+\t\"github.com/koding/kite\"\n+\t\"github.com/koding/kite/testkeys\"\n+\n+\t\"koding/kites/kloud/contexthelper/publickeys\"\n+\t\"koding/kites/kloud/contexthelper/session\"\n+\t\"koding/kites/kloud/keycreator\"\n+\t\"koding/kites/kloud/provider/softlayer\"\n+\t\"koding/kites/kloud/stack\"\n+\t\"koding/kites/kloud/stack/provider\"\n+\t\"koding/kites/kloud/userdata\"\n+)\n+\n+var minimumTemplate = `\n+{\n+\t\"resource\": {\n+\t\t\"softlayer_virtual_guest\": {\n+\t\t\t\"test\": {\n+\t\t\t\t\"name\": \"test\"\n+\t\t\t}\n+\t\t}\n+\t}\n+}\n+`\n+\n+func newBaseStack() (*provider.BaseStack, error) {\n+\tt, err := provider.ParseTemplate(minimumTemplate, nil)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\n+\ts := &provider.BaseStack{\n+\t\tProvider: softlayer.Provider,\n+\t\tReq: &kite.Request{\n+\t\t\tUsername: \"testuser\",\n+\t\t},\n+\t\tArg: &stack.BootstrapRequest{\n+\t\t\tProvider:  \"softlayer\",\n+\t\t\tGroupName: \"testgroup\",\n+\t\t},\n+\t\tKeys: &publickeys.Keys{\n+\t\t\tPublicKey: \"random-publickey\",\n+\t\t},\n+\t\tBuilder: &provider.Builder{\n+\t\t\tTemplate: t,\n+\t\t},\n+\t\tSession: &session.Session{\n+\t\t\tUserdata: &userdata.Userdata{\n+\t\t\t\tKlientURL: \"https://example-klient.com\",\n+\t\t\t\tKeycreator: &keycreator.Key{\n+\t\t\t\t\tKontrolURL:        \"https://example-kontrol.com\",\n+\t\t\t\t\tKontrolPrivateKey: testkeys.Private,\n+\t\t\t\t\tKontrolPublicKey:  testkeys.Public,\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t\tKlientIDs: stack.KiteMap(map[string]string{}),\n+\t}\n+\treturn s, nil\n+}\n+\n+func TestNewBaseStack(t *testing.T) {\n+\t_, err := newBaseStack()\n+\tif err != nil {\n+\t\tt.Fatal(err)\n+\t}\n+}\n+\n+func TestVerifyCredential(t *testing.T) {\n+\tbs, _ := newBaseStack()\n+\ts := &softlayer.Stack{BaseStack: bs}\n+\n+\tc := &stack.Credential{\n+\t\tCredential: &softlayer.Credential{\n+\t\t\tUsername: os.Getenv(\"SL_USERNAME\"),\n+\t\t\tApiKey:   os.Getenv(\"SL_API_KEY\"),\n+\t\t},\n+\t}\n+\n+\tif err := s.VerifyCredential(c); err != nil {\n+\t\tt.Fatal(err)\n+\t}\n+}\n+\n+func TestBootstrapTemplates(t *testing.T) {\n+\tbs, _ := newBaseStack()\n+\ts := &softlayer.Stack{BaseStack: bs}\n+\n+\tc := &stack.Credential{\n+\t\tCredential: &softlayer.Credential{\n+\t\t\tUsername: os.Getenv(\"SL_USERNAME\"),\n+\t\t\tApiKey:   os.Getenv(\"SL_API_KEY\"),\n+\t\t},\n+\t}\n+\n+\t_, err := s.BootstrapTemplates(c)\n+\tif err != nil {\n+\t\tt.Fatal(err)\n+\t}\n+}\n+\n+func TestApplyTemplate(t *testing.T) {","path":"go/src/koding/kites/kloud/provider/softlayer/stack_test.go","position":107,"original_position":107,"commit_id":"89c603481bb831c10a70f4ed52b75c5e9462ae19","original_commit_id":"89c603481bb831c10a70f4ed52b75c5e9462ae19","user":{"login":"acbodine","id":7049554,"avatar_url":"https://avatars.githubusercontent.com/u/7049554?v=3","gravatar_id":"","url":"https://api.github.com/users/acbodine","html_url":"https://github.com/acbodine","followers_url":"https://api.github.com/users/acbodine/followers","following_url":"https://api.github.com/users/acbodine/following{/other_user}","gists_url":"https://api.github.com/users/acbodine/gists{/gist_id}","starred_url":"https://api.github.com/users/acbodine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acbodine/subscriptions","organizations_url":"https://api.github.com/users/acbodine/orgs","repos_url":"https://api.github.com/users/acbodine/repos","events_url":"https://api.github.com/users/acbodine/events{/privacy}","received_events_url":"https://api.github.com/users/acbodine/received_events","type":"User","site_admin":false},"body":"I'll get this test added in asap.","created_at":"2016-11-11T15:17:58Z","updated_at":"2016-11-11T15:17:58Z","html_url":"https://github.com/koding/koding/pull/9543#discussion_r87603704","pull_request_url":"https://api.github.com/repos/koding/koding/pulls/9543","_links":{"self":{"href":"https://api.github.com/repos/koding/koding/pulls/comments/87603704"},"html":{"href":"https://github.com/koding/koding/pull/9543#discussion_r87603704"},"pull_request":{"href":"https://api.github.com/repos/koding/koding/pulls/9543"}}},"pull_request":{"url":"https://api.github.com/repos/koding/koding/pulls/9543","id":93280791,"html_url":"https://github.com/koding/koding/pull/9543","diff_url":"https://github.com/koding/koding/pull/9543.diff","patch_url":"https://github.com/koding/koding/pull/9543.patch","issue_url":"https://api.github.com/repos/koding/koding/issues/9543","number":9543,"state":"open","locked":false,"title":"kloud/provider: Add SoftLayer Support","user":{"login":"acbodine","id":7049554,"avatar_url":"https://avatars.githubusercontent.com/u/7049554?v=3","gravatar_id":"","url":"https://api.github.com/users/acbodine","html_url":"https://github.com/acbodine","followers_url":"https://api.github.com/users/acbodine/followers","following_url":"https://api.github.com/users/acbodine/following{/other_user}","gists_url":"https://api.github.com/users/acbodine/gists{/gist_id}","starred_url":"https://api.github.com/users/acbodine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acbodine/subscriptions","organizations_url":"https://api.github.com/users/acbodine/orgs","repos_url":"https://api.github.com/users/acbodine/repos","events_url":"https://api.github.com/users/acbodine/events{/privacy}","received_events_url":"https://api.github.com/users/acbodine/received_events","type":"User","site_admin":false},"body":"Adds SoftLayer support as a kloud provider, and necessary frontend changes.\r\n\r\n## Description\r\nFollowing the example here [https://github.com/koding/kloud-provider-example](https://github.com/koding/kloud-provider-example) and the PRs for [DigitalOcean](https://github.com/koding/koding/pull/9187) and [Google](https://github.com/koding/koding/pull/9185) support, this PR include the necessary changes to enable SoftLayer provider support for kloud.\r\n\r\nPart of this PR includes updates to the vendor Terraform source in this repository, and essentially consists of getting the SoftLayer provider directory from Terraform's master branch and dropping it in place here. The current SoftLayer support that Terraform has is basically provisioning virtual guests (or vms) and managing ssh keys.\r\n\r\nThis PR also includes most (maybe all?) of the UI/frontend changes necessary for a user to use Koding with SoftLayer.\r\n\r\n## Motivation and Context\r\nImplement a solution to #9073.\r\n\r\n## How Has This Been Tested?\r\n- Unit tests to validate basic functionality for `stack` `machine` and `schema` definitions\r\n- Integration tests that rely on environment variables to actually call SoftLayer apis where necessary in validating `stack` and `machine` definitions\r\n- I found mentions on Slack channel about the `downtowork` koding development deployment, so I created a development environment [http://downtowork-acbodine.koding.team:8090](http://downtowork-acbodine.koding.team:8090). In order to test my changes with the whole system I simply pulled my changes into this enviroment and rebuilt/re-ran the necessary Docker containers. You can create a team there, or use the one I have been developing with [http://dragons.downtowork-acbodine.koding.team:8090](http://dragons.downtowork-acbodine.koding.team:8090) and you can leverage the SoftLayer stack I have in that team `Voltorb SoftLayer Stack`\r\n- The frontend/user testing that I did has been manual so far in order to verify that I could\r\n  1. Verify Credentials user enters\r\n  2. Save SoftLayer stack and generate Bootstrap resources, verified in SoftLayer UI\r\n  3. Initialize SoftLayer virtual guest, and verified connectivity back to Koding client/UI\r\n  4. Tested Koding UI displaying accurate virtual guest state info, as well as stop/start actions\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n- [ ] My change requires a change to the documentation.\r\n- [ ] I have updated the documentation accordingly.\r\n- [x] I have added tests to cover my changes.\r\n- [x] All new and existing tests passed.\r\n","created_at":"2016-11-11T05:18:23Z","updated_at":"2016-11-11T15:17:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"94f8a7fc65ae1e76894f94768b825671ecf48dc5","assignee":{"login":"gokmen","id":42368,"avatar_url":"https://avatars.githubusercontent.com/u/42368?v=3","gravatar_id":"","url":"https://api.github.com/users/gokmen","html_url":"https://github.com/gokmen","followers_url":"https://api.github.com/users/gokmen/followers","following_url":"https://api.github.com/users/gokmen/following{/other_user}","gists_url":"https://api.github.com/users/gokmen/gists{/gist_id}","starred_url":"https://api.github.com/users/gokmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gokmen/subscriptions","organizations_url":"https://api.github.com/users/gokmen/orgs","repos_url":"https://api.github.com/users/gokmen/repos","events_url":"https://api.github.com/users/gokmen/events{/privacy}","received_events_url":"https://api.github.com/users/gokmen/received_events","type":"User","site_admin":false},"assignees":[{"login":"gokmen","id":42368,"avatar_url":"https://avatars.githubusercontent.com/u/42368?v=3","gravatar_id":"","url":"https://api.github.com/users/gokmen","html_url":"https://github.com/gokmen","followers_url":"https://api.github.com/users/gokmen/followers","following_url":"https://api.github.com/users/gokmen/following{/other_user}","gists_url":"https://api.github.com/users/gokmen/gists{/gist_id}","starred_url":"https://api.github.com/users/gokmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gokmen/subscriptions","organizations_url":"https://api.github.com/users/gokmen/orgs","repos_url":"https://api.github.com/users/gokmen/repos","events_url":"https://api.github.com/users/gokmen/events{/privacy}","received_events_url":"https://api.github.com/users/gokmen/received_events","type":"User","site_admin":false},{"login":"rjeczalik","id":1162017,"avatar_url":"https://avatars.githubusercontent.com/u/1162017?v=3","gravatar_id":"","url":"https://api.github.com/users/rjeczalik","html_url":"https://github.com/rjeczalik","followers_url":"https://api.github.com/users/rjeczalik/followers","following_url":"https://api.github.com/users/rjeczalik/following{/other_user}","gists_url":"https://api.github.com/users/rjeczalik/gists{/gist_id}","starred_url":"https://api.github.com/users/rjeczalik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjeczalik/subscriptions","organizations_url":"https://api.github.com/users/rjeczalik/orgs","repos_url":"https://api.github.com/users/rjeczalik/repos","events_url":"https://api.github.com/users/rjeczalik/events{/privacy}","received_events_url":"https://api.github.com/users/rjeczalik/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/koding/koding/pulls/9543/commits","review_comments_url":"https://api.github.com/repos/koding/koding/pulls/9543/comments","review_comment_url":"https://api.github.com/repos/koding/koding/pulls/comments{/number}","comments_url":"https://api.github.com/repos/koding/koding/issues/9543/comments","statuses_url":"https://api.github.com/repos/koding/koding/statuses/89c603481bb831c10a70f4ed52b75c5e9462ae19","head":{"label":"acbodine:softlayer-provider","ref":"softlayer-provider","sha":"89c603481bb831c10a70f4ed52b75c5e9462ae19","user":{"login":"acbodine","id":7049554,"avatar_url":"https://avatars.githubusercontent.com/u/7049554?v=3","gravatar_id":"","url":"https://api.github.com/users/acbodine","html_url":"https://github.com/acbodine","followers_url":"https://api.github.com/users/acbodine/followers","following_url":"https://api.github.com/users/acbodine/following{/other_user}","gists_url":"https://api.github.com/users/acbodine/gists{/gist_id}","starred_url":"https://api.github.com/users/acbodine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acbodine/subscriptions","organizations_url":"https://api.github.com/users/acbodine/orgs","repos_url":"https://api.github.com/users/acbodine/repos","events_url":"https://api.github.com/users/acbodine/events{/privacy}","received_events_url":"https://api.github.com/users/acbodine/received_events","type":"User","site_admin":false},"repo":{"id":70191445,"name":"koding","full_name":"acbodine/koding","owner":{"login":"acbodine","id":7049554,"avatar_url":"https://avatars.githubusercontent.com/u/7049554?v=3","gravatar_id":"","url":"https://api.github.com/users/acbodine","html_url":"https://github.com/acbodine","followers_url":"https://api.github.com/users/acbodine/followers","following_url":"https://api.github.com/users/acbodine/following{/other_user}","gists_url":"https://api.github.com/users/acbodine/gists{/gist_id}","starred_url":"https://api.github.com/users/acbodine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acbodine/subscriptions","organizations_url":"https://api.github.com/users/acbodine/orgs","repos_url":"https://api.github.com/users/acbodine/repos","events_url":"https://api.github.com/users/acbodine/events{/privacy}","received_events_url":"https://api.github.com/users/acbodine/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/acbodine/koding","description":"The Simplest Way to Manage Your Entire Dev Infrastructure!","fork":true,"url":"https://api.github.com/repos/acbodine/koding","forks_url":"https://api.github.com/repos/acbodine/koding/forks","keys_url":"https://api.github.com/repos/acbodine/koding/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acbodine/koding/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acbodine/koding/teams","hooks_url":"https://api.github.com/repos/acbodine/koding/hooks","issue_events_url":"https://api.github.com/repos/acbodine/koding/issues/events{/number}","events_url":"https://api.github.com/repos/acbodine/koding/events","assignees_url":"https://api.github.com/repos/acbodine/koding/assignees{/user}","branches_url":"https://api.github.com/repos/acbodine/koding/branches{/branch}","tags_url":"https://api.github.com/repos/acbodine/koding/tags","blobs_url":"https://api.github.com/repos/acbodine/koding/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acbodine/koding/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acbodine/koding/git/refs{/sha}","trees_url":"https://api.github.com/repos/acbodine/koding/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acbodine/koding/statuses/{sha}","languages_url":"https://api.github.com/repos/acbodine/koding/languages","stargazers_url":"https://api.github.com/repos/acbodine/koding/stargazers","contributors_url":"https://api.github.com/repos/acbodine/koding/contributors","subscribers_url":"https://api.github.com/repos/acbodine/koding/subscribers","subscription_url":"https://api.github.com/repos/acbodine/koding/subscription","commits_url":"https://api.github.com/repos/acbodine/koding/commits{/sha}","git_commits_url":"https://api.github.com/repos/acbodine/koding/git/commits{/sha}","comments_url":"https://api.github.com/repos/acbodine/koding/comments{/number}","issue_comment_url":"https://api.github.com/repos/acbodine/koding/issues/comments{/number}","contents_url":"https://api.github.com/repos/acbodine/koding/contents/{+path}","compare_url":"https://api.github.com/repos/acbodine/koding/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acbodine/koding/merges","archive_url":"https://api.github.com/repos/acbodine/koding/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acbodine/koding/downloads","issues_url":"https://api.github.com/repos/acbodine/koding/issues{/number}","pulls_url":"https://api.github.com/repos/acbodine/koding/pulls{/number}","milestones_url":"https://api.github.com/repos/acbodine/koding/milestones{/number}","notifications_url":"https://api.github.com/repos/acbodine/koding/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acbodine/koding/labels{/name}","releases_url":"https://api.github.com/repos/acbodine/koding/releases{/id}","deployments_url":"https://api.github.com/repos/acbodine/koding/deployments","created_at":"2016-10-06T20:43:41Z","updated_at":"2016-10-06T20:43:55Z","pushed_at":"2016-11-11T04:33:52Z","git_url":"git://github.com/acbodine/koding.git","ssh_url":"git@github.com:acbodine/koding.git","clone_url":"https://github.com/acbodine/koding.git","svn_url":"https://github.com/acbodine/koding","homepage":"https://www.koding.com","size":793223,"stargazers_count":0,"watchers_count":0,"language":"CoffeeScript","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":"koding:master","ref":"master","sha":"3eb50f8e725c6ee6b77efa9a75150737c8653fa6","user":{"login":"koding","id":1066754,"avatar_url":"https://avatars.githubusercontent.com/u/1066754?v=3","gravatar_id":"","url":"https://api.github.com/users/koding","html_url":"https://github.com/koding","followers_url":"https://api.github.com/users/koding/followers","following_url":"https://api.github.com/users/koding/following{/other_user}","gists_url":"https://api.github.com/users/koding/gists{/gist_id}","starred_url":"https://api.github.com/users/koding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koding/subscriptions","organizations_url":"https://api.github.com/users/koding/orgs","repos_url":"https://api.github.com/users/koding/repos","events_url":"https://api.github.com/users/koding/events{/privacy}","received_events_url":"https://api.github.com/users/koding/received_events","type":"Organization","site_admin":false},"repo":{"id":21317360,"name":"koding","full_name":"koding/koding","owner":{"login":"koding","id":1066754,"avatar_url":"https://avatars.githubusercontent.com/u/1066754?v=3","gravatar_id":"","url":"https://api.github.com/users/koding","html_url":"https://github.com/koding","followers_url":"https://api.github.com/users/koding/followers","following_url":"https://api.github.com/users/koding/following{/other_user}","gists_url":"https://api.github.com/users/koding/gists{/gist_id}","starred_url":"https://api.github.com/users/koding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koding/subscriptions","organizations_url":"https://api.github.com/users/koding/orgs","repos_url":"https://api.github.com/users/koding/repos","events_url":"https://api.github.com/users/koding/events{/privacy}","received_events_url":"https://api.github.com/users/koding/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/koding/koding","description":"The Simplest Way to Manage Your Entire Dev Infrastructure!","fork":false,"url":"https://api.github.com/repos/koding/koding","forks_url":"https://api.github.com/repos/koding/koding/forks","keys_url":"https://api.github.com/repos/koding/koding/keys{/key_id}","collaborators_url":"https://api.github.com/repos/koding/koding/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/koding/koding/teams","hooks_url":"https://api.github.com/repos/koding/koding/hooks","issue_events_url":"https://api.github.com/repos/koding/koding/issues/events{/number}","events_url":"https://api.github.com/repos/koding/koding/events","assignees_url":"https://api.github.com/repos/koding/koding/assignees{/user}","branches_url":"https://api.github.com/repos/koding/koding/branches{/branch}","tags_url":"https://api.github.com/repos/koding/koding/tags","blobs_url":"https://api.github.com/repos/koding/koding/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/koding/koding/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/koding/koding/git/refs{/sha}","trees_url":"https://api.github.com/repos/koding/koding/git/trees{/sha}","statuses_url":"https://api.github.com/repos/koding/koding/statuses/{sha}","languages_url":"https://api.github.com/repos/koding/koding/languages","stargazers_url":"https://api.github.com/repos/koding/koding/stargazers","contributors_url":"https://api.github.com/repos/koding/koding/contributors","subscribers_url":"https://api.github.com/repos/koding/koding/subscribers","subscription_url":"https://api.github.com/repos/koding/koding/subscription","commits_url":"https://api.github.com/repos/koding/koding/commits{/sha}","git_commits_url":"https://api.github.com/repos/koding/koding/git/commits{/sha}","comments_url":"https://api.github.com/repos/koding/koding/comments{/number}","issue_comment_url":"https://api.github.com/repos/koding/koding/issues/comments{/number}","contents_url":"https://api.github.com/repos/koding/koding/contents/{+path}","compare_url":"https://api.github.com/repos/koding/koding/compare/{base}...{head}","merges_url":"https://api.github.com/repos/koding/koding/merges","archive_url":"https://api.github.com/repos/koding/koding/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/koding/koding/downloads","issues_url":"https://api.github.com/repos/koding/koding/issues{/number}","pulls_url":"https://api.github.com/repos/koding/koding/pulls{/number}","milestones_url":"https://api.github.com/repos/koding/koding/milestones{/number}","notifications_url":"https://api.github.com/repos/koding/koding/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/koding/koding/labels{/name}","releases_url":"https://api.github.com/repos/koding/koding/releases{/id}","deployments_url":"https://api.github.com/repos/koding/koding/deployments","created_at":"2014-06-29T05:46:24Z","updated_at":"2016-11-10T16:16:05Z","pushed_at":"2016-11-11T15:17:01Z","git_url":"git://github.com/koding/koding.git","ssh_url":"git@github.com:koding/koding.git","clone_url":"https://github.com/koding/koding.git","svn_url":"https://github.com/koding/koding","homepage":"https://www.koding.com","size":807612,"stargazers_count":454,"watchers_count":454,"language":"CoffeeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":57,"mirror_url":null,"open_issues_count":208,"forks":57,"open_issues":208,"watchers":454,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/koding/koding/pulls/9543"},"html":{"href":"https://github.com/koding/koding/pull/9543"},"issue":{"href":"https://api.github.com/repos/koding/koding/issues/9543"},"comments":{"href":"https://api.github.com/repos/koding/koding/issues/9543/comments"},"review_comments":{"href":"https://api.github.com/repos/koding/koding/pulls/9543/comments"},"review_comment":{"href":"https://api.github.com/repos/koding/koding/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/koding/koding/pulls/9543/commits"},"statuses":{"href":"https://api.github.com/repos/koding/koding/statuses/89c603481bb831c10a70f4ed52b75c5e9462ae19"}}}}
{"actor":{"display_login":"acbodine"}}