{"action":"closed","number":169,"pull_request":{"url":"https://api.github.com/repos/18F/pulse/pulls/169","id":36567481,"html_url":"https://github.com/18F/pulse/pull/169","diff_url":"https://github.com/18F/pulse/pull/169.diff","patch_url":"https://github.com/18F/pulse/pull/169.patch","issue_url":"https://api.github.com/repos/18F/pulse/issues/169","number":169,"state":"closed","locked":false,"title":"Show more HTTPS, HSTS, and TLS details","user":{"login":"konklone","id":4592,"avatar_url":"https://avatars.githubusercontent.com/u/4592?v=3","gravatar_id":"","url":"https://api.github.com/users/konklone","html_url":"https://github.com/konklone","followers_url":"https://api.github.com/users/konklone/followers","following_url":"https://api.github.com/users/konklone/following{/other_user}","gists_url":"https://api.github.com/users/konklone/gists{/gist_id}","starred_url":"https://api.github.com/users/konklone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konklone/subscriptions","organizations_url":"https://api.github.com/users/konklone/orgs","repos_url":"https://api.github.com/users/konklone/repos","events_url":"https://api.github.com/users/konklone/events{/privacy}","received_events_url":"https://api.github.com/users/konklone/received_events","type":"User","site_admin":false},"body":"This expands the extended details we provide for a domain. These only show up on the HTTPS domains table, and require the user to hit the blue `+` button to see the extended information. This information will get merged in with other fields if the table is responsively squashed down on smaller screens.\r\n\r\nExample:\r\n\r\n![screenshot from 2015-05-30 11 45 19](https://cloud.githubusercontent.com/assets/4592/7898042/96a97c6c-06c1-11e5-876e-57ca0351d42b.png)\r\n\r\nThis information is meant to make the table more humane and to provide more detailed explanation for domain owners, and especially to have a place to link to resources that can explain how to address the issues. Right now, only one of the links goes to https.cio.gov (the HSTS one), but this may point to what sections need expanding on https.cio.gov, and how they should be framed (as a fix-it guide, not just an explainer).\r\n\r\nThe following things about a domain may appear in the HTTP and TLS extended fields:\r\n\r\n* Whether it supports or enforces HTTPS.\r\n* Whether it has HSTS enabled, and how strongly.\r\n* Whether its certificate chain has validation issues. This is mostly a lack of intermediate certs, which will work _most_ of the time on _most_ devices, but which should be fixed.\r\n* Whether it supports the deprecated RC4 cipher.\r\n* Whether its (end entity) certificate is signed with SHA-1.\r\n* Whether it supports the deprecated SSLv3 protocol.\r\n* Whether it is missing support for the most modern version of TLS (1.2).\r\n* Whether the domain supports forward secrecy for at least modern clients.\r\n\r\nThe above fields all appear in the data the table loads, and the sentence/link construction is done in JavaScript.\r\n\r\nSome further work I'd like to see:\r\n\r\n* A more obvious way to expand the row to see extended details than the blue + button. I'm putting some fairly important stuff here, and it should be obvious to a domain owner that we have more to help them.\r\n* A visual indicator of when someone's doing the right thing. When we say they enforce HTTPS, or are HSTS preload-ready, this should feel different than the admonishments they get for supporting SSLv3 or whatever.","created_at":"2015-05-30T15:53:02Z","updated_at":"2015-06-01T03:26:16Z","closed_at":"2015-06-01T03:26:16Z","merged_at":"2015-06-01T03:26:16Z","merge_commit_sha":"6e2ec4d95b9bbf362ce2881f5992877a6daabb33","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/18F/pulse/pulls/169/commits","review_comments_url":"https://api.github.com/repos/18F/pulse/pulls/169/comments","review_comment_url":"https://api.github.com/repos/18F/pulse/pulls/comments{/number}","comments_url":"https://api.github.com/repos/18F/pulse/issues/169/comments","statuses_url":"https://api.github.com/repos/18F/pulse/statuses/68c737a5be5192bfccc1d04b4d7a7318ab0a39c1","head":{"label":"18F:https-details","ref":"https-details","sha":"68c737a5be5192bfccc1d04b4d7a7318ab0a39c1","user":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"repo":{"id":31670909,"name":"pulse","full_name":"18F/pulse","owner":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/18F/pulse","description":"How the .gov domain space is doing at best practices and federal requirements.","fork":false,"url":"https://api.github.com/repos/18F/pulse","forks_url":"https://api.github.com/repos/18F/pulse/forks","keys_url":"https://api.github.com/repos/18F/pulse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/18F/pulse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/18F/pulse/teams","hooks_url":"https://api.github.com/repos/18F/pulse/hooks","issue_events_url":"https://api.github.com/repos/18F/pulse/issues/events{/number}","events_url":"https://api.github.com/repos/18F/pulse/events","assignees_url":"https://api.github.com/repos/18F/pulse/assignees{/user}","branches_url":"https://api.github.com/repos/18F/pulse/branches{/branch}","tags_url":"https://api.github.com/repos/18F/pulse/tags","blobs_url":"https://api.github.com/repos/18F/pulse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/18F/pulse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/18F/pulse/git/refs{/sha}","trees_url":"https://api.github.com/repos/18F/pulse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/18F/pulse/statuses/{sha}","languages_url":"https://api.github.com/repos/18F/pulse/languages","stargazers_url":"https://api.github.com/repos/18F/pulse/stargazers","contributors_url":"https://api.github.com/repos/18F/pulse/contributors","subscribers_url":"https://api.github.com/repos/18F/pulse/subscribers","subscription_url":"https://api.github.com/repos/18F/pulse/subscription","commits_url":"https://api.github.com/repos/18F/pulse/commits{/sha}","git_commits_url":"https://api.github.com/repos/18F/pulse/git/commits{/sha}","comments_url":"https://api.github.com/repos/18F/pulse/comments{/number}","issue_comment_url":"https://api.github.com/repos/18F/pulse/issues/comments{/number}","contents_url":"https://api.github.com/repos/18F/pulse/contents/{+path}","compare_url":"https://api.github.com/repos/18F/pulse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/18F/pulse/merges","archive_url":"https://api.github.com/repos/18F/pulse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/18F/pulse/downloads","issues_url":"https://api.github.com/repos/18F/pulse/issues{/number}","pulls_url":"https://api.github.com/repos/18F/pulse/pulls{/number}","milestones_url":"https://api.github.com/repos/18F/pulse/milestones{/number}","notifications_url":"https://api.github.com/repos/18F/pulse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/18F/pulse/labels{/name}","releases_url":"https://api.github.com/repos/18F/pulse/releases{/id}","created_at":"2015-03-04T17:47:35Z","updated_at":"2015-05-27T23:34:19Z","pushed_at":"2015-06-01T03:26:16Z","git_url":"git://github.com/18F/pulse.git","ssh_url":"git@github.com:18F/pulse.git","clone_url":"https://github.com/18F/pulse.git","svn_url":"https://github.com/18F/pulse","homepage":"","size":4100,"stargazers_count":7,"watchers_count":7,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":30,"forks":1,"open_issues":30,"watchers":7,"default_branch":"master"}},"base":{"label":"18F:master","ref":"master","sha":"c8b43edb7bfc2d567a6324ffa5ebd6dfc3db6370","user":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"repo":{"id":31670909,"name":"pulse","full_name":"18F/pulse","owner":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/18F/pulse","description":"How the .gov domain space is doing at best practices and federal requirements.","fork":false,"url":"https://api.github.com/repos/18F/pulse","forks_url":"https://api.github.com/repos/18F/pulse/forks","keys_url":"https://api.github.com/repos/18F/pulse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/18F/pulse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/18F/pulse/teams","hooks_url":"https://api.github.com/repos/18F/pulse/hooks","issue_events_url":"https://api.github.com/repos/18F/pulse/issues/events{/number}","events_url":"https://api.github.com/repos/18F/pulse/events","assignees_url":"https://api.github.com/repos/18F/pulse/assignees{/user}","branches_url":"https://api.github.com/repos/18F/pulse/branches{/branch}","tags_url":"https://api.github.com/repos/18F/pulse/tags","blobs_url":"https://api.github.com/repos/18F/pulse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/18F/pulse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/18F/pulse/git/refs{/sha}","trees_url":"https://api.github.com/repos/18F/pulse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/18F/pulse/statuses/{sha}","languages_url":"https://api.github.com/repos/18F/pulse/languages","stargazers_url":"https://api.github.com/repos/18F/pulse/stargazers","contributors_url":"https://api.github.com/repos/18F/pulse/contributors","subscribers_url":"https://api.github.com/repos/18F/pulse/subscribers","subscription_url":"https://api.github.com/repos/18F/pulse/subscription","commits_url":"https://api.github.com/repos/18F/pulse/commits{/sha}","git_commits_url":"https://api.github.com/repos/18F/pulse/git/commits{/sha}","comments_url":"https://api.github.com/repos/18F/pulse/comments{/number}","issue_comment_url":"https://api.github.com/repos/18F/pulse/issues/comments{/number}","contents_url":"https://api.github.com/repos/18F/pulse/contents/{+path}","compare_url":"https://api.github.com/repos/18F/pulse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/18F/pulse/merges","archive_url":"https://api.github.com/repos/18F/pulse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/18F/pulse/downloads","issues_url":"https://api.github.com/repos/18F/pulse/issues{/number}","pulls_url":"https://api.github.com/repos/18F/pulse/pulls{/number}","milestones_url":"https://api.github.com/repos/18F/pulse/milestones{/number}","notifications_url":"https://api.github.com/repos/18F/pulse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/18F/pulse/labels{/name}","releases_url":"https://api.github.com/repos/18F/pulse/releases{/id}","created_at":"2015-03-04T17:47:35Z","updated_at":"2015-05-27T23:34:19Z","pushed_at":"2015-06-01T03:26:16Z","git_url":"git://github.com/18F/pulse.git","ssh_url":"git@github.com:18F/pulse.git","clone_url":"https://github.com/18F/pulse.git","svn_url":"https://github.com/18F/pulse","homepage":"","size":4100,"stargazers_count":7,"watchers_count":7,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":30,"forks":1,"open_issues":30,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/18F/pulse/pulls/169"},"html":{"href":"https://github.com/18F/pulse/pull/169"},"issue":{"href":"https://api.github.com/repos/18F/pulse/issues/169"},"comments":{"href":"https://api.github.com/repos/18F/pulse/issues/169/comments"},"review_comments":{"href":"https://api.github.com/repos/18F/pulse/pulls/169/comments"},"review_comment":{"href":"https://api.github.com/repos/18F/pulse/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/18F/pulse/pulls/169/commits"},"statuses":{"href":"https://api.github.com/repos/18F/pulse/statuses/68c737a5be5192bfccc1d04b4d7a7318ab0a39c1"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"juliaelman","id":955558,"avatar_url":"https://avatars.githubusercontent.com/u/955558?v=3","gravatar_id":"","url":"https://api.github.com/users/juliaelman","html_url":"https://github.com/juliaelman","followers_url":"https://api.github.com/users/juliaelman/followers","following_url":"https://api.github.com/users/juliaelman/following{/other_user}","gists_url":"https://api.github.com/users/juliaelman/gists{/gist_id}","starred_url":"https://api.github.com/users/juliaelman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juliaelman/subscriptions","organizations_url":"https://api.github.com/users/juliaelman/orgs","repos_url":"https://api.github.com/users/juliaelman/repos","events_url":"https://api.github.com/users/juliaelman/events{/privacy}","received_events_url":"https://api.github.com/users/juliaelman/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"commits":13,"additions":6939,"deletions":2049,"changed_files":7}}