{"action":"closed","number":781,"pull_request":{"url":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781","id":93551031,"html_url":"https://github.com/aptible/dashboard.aptible.com/pull/781","diff_url":"https://github.com/aptible/dashboard.aptible.com/pull/781.diff","patch_url":"https://github.com/aptible/dashboard.aptible.com/pull/781.patch","issue_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/781","number":781,"state":"closed","locked":false,"title":"New Endpoint: use service process type, not handle","user":{"login":"krallin","id":1737686,"avatar_url":"https://avatars.githubusercontent.com/u/1737686?v=3","gravatar_id":"","url":"https://api.github.com/users/krallin","html_url":"https://github.com/krallin","followers_url":"https://api.github.com/users/krallin/followers","following_url":"https://api.github.com/users/krallin/following{/other_user}","gists_url":"https://api.github.com/users/krallin/gists{/gist_id}","starred_url":"https://api.github.com/users/krallin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krallin/subscriptions","organizations_url":"https://api.github.com/users/krallin/orgs","repos_url":"https://api.github.com/users/krallin/repos","events_url":"https://api.github.com/users/krallin/events{/privacy}","received_events_url":"https://api.github.com/users/krallin/received_events","type":"User","site_admin":false},"body":"The handle for a service isn't ideal to let users differentiate between\r\nservices, mainly because:\r\n\r\n- It includes a lot of redundant or useless information (namely, it\r\n  includes the app handle and a random string).\r\n- It is truncated to 32 characters, so it might not even include the\r\n  relevant information (the process type).\r\n\r\nThis is presumably why we don't use it anywhere in the UI (at least that\r\nI know of), except on the New Endpoint page. This can be a problem,\r\nbecause it means users sometimes can't tell which service is which.\r\n\r\nThis patch fixes the issue by instead using the process type and\r\nappending the command (so that it's shown if there is room), which\r\nshould make it easier for users to interact with this.\r\n\r\nI've also added tests to ensure this selector actually works (which was\r\na little more involved than I anticipated, since the mocks here were\r\nbeing created in two different places).\r\n\r\n---\r\n\r\ncc @sandersonet, for review\r\ncc @fancyremarker, we talked about this last week: https://aptible-support.slack.com/archives/general/p1478811311000983","created_at":"2016-11-14T11:37:05Z","updated_at":"2016-11-14T17:00:00Z","closed_at":"2016-11-14T17:00:00Z","merged_at":"2016-11-14T17:00:00Z","merge_commit_sha":"b8fb9ca1cbba6ed9d27d98b7a5124ae02c77c592","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781/commits","review_comments_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781/comments","review_comment_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/781/comments","statuses_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/statuses/42af0fa43e81413ccbe16b2239db1ededb333438","head":{"label":"krallin:vhost-new-service-command","ref":"vhost-new-service-command","sha":"42af0fa43e81413ccbe16b2239db1ededb333438","user":{"login":"krallin","id":1737686,"avatar_url":"https://avatars.githubusercontent.com/u/1737686?v=3","gravatar_id":"","url":"https://api.github.com/users/krallin","html_url":"https://github.com/krallin","followers_url":"https://api.github.com/users/krallin/followers","following_url":"https://api.github.com/users/krallin/following{/other_user}","gists_url":"https://api.github.com/users/krallin/gists{/gist_id}","starred_url":"https://api.github.com/users/krallin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krallin/subscriptions","organizations_url":"https://api.github.com/users/krallin/orgs","repos_url":"https://api.github.com/users/krallin/repos","events_url":"https://api.github.com/users/krallin/events{/privacy}","received_events_url":"https://api.github.com/users/krallin/received_events","type":"User","site_admin":false},"repo":{"id":50362094,"name":"dashboard.aptible.com","full_name":"krallin/dashboard.aptible.com","owner":{"login":"krallin","id":1737686,"avatar_url":"https://avatars.githubusercontent.com/u/1737686?v=3","gravatar_id":"","url":"https://api.github.com/users/krallin","html_url":"https://github.com/krallin","followers_url":"https://api.github.com/users/krallin/followers","following_url":"https://api.github.com/users/krallin/following{/other_user}","gists_url":"https://api.github.com/users/krallin/gists{/gist_id}","starred_url":"https://api.github.com/users/krallin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krallin/subscriptions","organizations_url":"https://api.github.com/users/krallin/orgs","repos_url":"https://api.github.com/users/krallin/repos","events_url":"https://api.github.com/users/krallin/events{/privacy}","received_events_url":"https://api.github.com/users/krallin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/krallin/dashboard.aptible.com","description":"Ember.js dashboard for the Aptible PaaS","fork":true,"url":"https://api.github.com/repos/krallin/dashboard.aptible.com","forks_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/forks","keys_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/teams","hooks_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/hooks","issue_events_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/issues/events{/number}","events_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/events","assignees_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/assignees{/user}","branches_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/branches{/branch}","tags_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/tags","blobs_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/statuses/{sha}","languages_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/languages","stargazers_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/stargazers","contributors_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/contributors","subscribers_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/subscribers","subscription_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/subscription","commits_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/contents/{+path}","compare_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/merges","archive_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/downloads","issues_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/issues{/number}","pulls_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/pulls{/number}","milestones_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/milestones{/number}","notifications_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/labels{/name}","releases_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/releases{/id}","deployments_url":"https://api.github.com/repos/krallin/dashboard.aptible.com/deployments","created_at":"2016-01-25T15:59:48Z","updated_at":"2016-01-25T15:59:50Z","pushed_at":"2016-11-14T15:36:57Z","git_url":"git://github.com/krallin/dashboard.aptible.com.git","ssh_url":"git@github.com:krallin/dashboard.aptible.com.git","clone_url":"https://github.com/krallin/dashboard.aptible.com.git","svn_url":"https://github.com/krallin/dashboard.aptible.com","homepage":"https://dashboard.aptible.com","size":4024,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"aptible:master","ref":"master","sha":"17b08b3737389f73b21b869b633bd2843372cd07","user":{"login":"aptible","id":4594193,"avatar_url":"https://avatars.githubusercontent.com/u/4594193?v=3","gravatar_id":"","url":"https://api.github.com/users/aptible","html_url":"https://github.com/aptible","followers_url":"https://api.github.com/users/aptible/followers","following_url":"https://api.github.com/users/aptible/following{/other_user}","gists_url":"https://api.github.com/users/aptible/gists{/gist_id}","starred_url":"https://api.github.com/users/aptible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aptible/subscriptions","organizations_url":"https://api.github.com/users/aptible/orgs","repos_url":"https://api.github.com/users/aptible/repos","events_url":"https://api.github.com/users/aptible/events{/privacy}","received_events_url":"https://api.github.com/users/aptible/received_events","type":"Organization","site_admin":false},"repo":{"id":26767408,"name":"dashboard.aptible.com","full_name":"aptible/dashboard.aptible.com","owner":{"login":"aptible","id":4594193,"avatar_url":"https://avatars.githubusercontent.com/u/4594193?v=3","gravatar_id":"","url":"https://api.github.com/users/aptible","html_url":"https://github.com/aptible","followers_url":"https://api.github.com/users/aptible/followers","following_url":"https://api.github.com/users/aptible/following{/other_user}","gists_url":"https://api.github.com/users/aptible/gists{/gist_id}","starred_url":"https://api.github.com/users/aptible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aptible/subscriptions","organizations_url":"https://api.github.com/users/aptible/orgs","repos_url":"https://api.github.com/users/aptible/repos","events_url":"https://api.github.com/users/aptible/events{/privacy}","received_events_url":"https://api.github.com/users/aptible/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aptible/dashboard.aptible.com","description":"Ember.js dashboard for the Aptible PaaS","fork":false,"url":"https://api.github.com/repos/aptible/dashboard.aptible.com","forks_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/forks","keys_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/teams","hooks_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/hooks","issue_events_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/events{/number}","events_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/events","assignees_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/assignees{/user}","branches_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/branches{/branch}","tags_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/tags","blobs_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/statuses/{sha}","languages_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/languages","stargazers_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/stargazers","contributors_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/contributors","subscribers_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/subscribers","subscription_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/subscription","commits_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/contents/{+path}","compare_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/merges","archive_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/downloads","issues_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues{/number}","pulls_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls{/number}","milestones_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/milestones{/number}","notifications_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/labels{/name}","releases_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/releases{/id}","deployments_url":"https://api.github.com/repos/aptible/dashboard.aptible.com/deployments","created_at":"2014-11-17T17:06:45Z","updated_at":"2016-11-05T08:42:58Z","pushed_at":"2016-11-14T17:00:00Z","git_url":"git://github.com/aptible/dashboard.aptible.com.git","ssh_url":"git@github.com:aptible/dashboard.aptible.com.git","clone_url":"https://github.com/aptible/dashboard.aptible.com.git","svn_url":"https://github.com/aptible/dashboard.aptible.com","homepage":"https://dashboard.aptible.com","size":4141,"stargazers_count":83,"watchers_count":83,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":73,"forks":35,"open_issues":73,"watchers":83,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781"},"html":{"href":"https://github.com/aptible/dashboard.aptible.com/pull/781"},"issue":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/781"},"comments":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/issues/781/comments"},"review_comments":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781/comments"},"review_comment":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/pulls/781/commits"},"statuses":{"href":"https://api.github.com/repos/aptible/dashboard.aptible.com/statuses/42af0fa43e81413ccbe16b2239db1ededb333438"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"krallin","id":1737686,"avatar_url":"https://avatars.githubusercontent.com/u/1737686?v=3","gravatar_id":"","url":"https://api.github.com/users/krallin","html_url":"https://github.com/krallin","followers_url":"https://api.github.com/users/krallin/followers","following_url":"https://api.github.com/users/krallin/following{/other_user}","gists_url":"https://api.github.com/users/krallin/gists{/gist_id}","starred_url":"https://api.github.com/users/krallin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krallin/subscriptions","organizations_url":"https://api.github.com/users/krallin/orgs","repos_url":"https://api.github.com/users/krallin/repos","events_url":"https://api.github.com/users/krallin/events{/privacy}","received_events_url":"https://api.github.com/users/krallin/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"commits":1,"additions":100,"deletions":29,"changed_files":3}}
{"actor":{"display_login":"krallin"}}