onebox 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +476 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +3 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +92 -0
  11. data/Rakefile +22 -0
  12. data/lib/onebox.rb +33 -0
  13. data/lib/onebox/engine.rb +93 -0
  14. data/lib/onebox/engine/amazon_onebox.rb +25 -0
  15. data/lib/onebox/engine/bliptv_onebox.rb +26 -0
  16. data/lib/onebox/engine/clikthrough_onebox.rb +23 -0
  17. data/lib/onebox/engine/college_humor_onebox.rb +26 -0
  18. data/lib/onebox/engine/dailymotion_onebox.rb +26 -0
  19. data/lib/onebox/engine/dotsub_onebox.rb +25 -0
  20. data/lib/onebox/engine/example_onebox.rb +25 -0
  21. data/lib/onebox/engine/flickr_onebox.rb +25 -0
  22. data/lib/onebox/engine/funny_or_die_onebox.rb +26 -0
  23. data/lib/onebox/engine/html.rb +11 -0
  24. data/lib/onebox/engine/hulu_onebox.rb +26 -0
  25. data/lib/onebox/engine/nfb_onebox.rb +25 -0
  26. data/lib/onebox/engine/open_graph.rb +11 -0
  27. data/lib/onebox/engine/qik_onebox.rb +23 -0
  28. data/lib/onebox/engine/revision3_onebox.rb +26 -0
  29. data/lib/onebox/engine/slideshare_onebox.rb +25 -0
  30. data/lib/onebox/engine/sound_cloud_onebox.rb +25 -0
  31. data/lib/onebox/engine/stack_exchange_onebox.rb +23 -0
  32. data/lib/onebox/engine/ted_onebox.rb +25 -0
  33. data/lib/onebox/engine/viddler_onebox.rb +26 -0
  34. data/lib/onebox/engine/vimeo_onebox.rb +26 -0
  35. data/lib/onebox/engine/wikipedia_onebox.rb +24 -0
  36. data/lib/onebox/engine/yfrog_onebox.rb +25 -0
  37. data/lib/onebox/matcher.rb +13 -0
  38. data/lib/onebox/preview.rb +31 -0
  39. data/lib/onebox/version.rb +3 -0
  40. data/onebox.gemspec +36 -0
  41. data/spec/fixtures/amazon.response +3098 -0
  42. data/spec/fixtures/android.response +138 -0
  43. data/spec/fixtures/apple.response +391 -0
  44. data/spec/fixtures/bliptv.response +724 -0
  45. data/spec/fixtures/clickthrough.response +1472 -0
  46. data/spec/fixtures/clikthrough.response +1472 -0
  47. data/spec/fixtures/collegehumor.response +1272 -0
  48. data/spec/fixtures/dailymotion.response +575 -0
  49. data/spec/fixtures/dotsub.response +1257 -0
  50. data/spec/fixtures/example.response +50 -0
  51. data/spec/fixtures/flickr.response +1292 -0
  52. data/spec/fixtures/funnyordie.response +2010 -0
  53. data/spec/fixtures/gist.response +282 -0
  54. data/spec/fixtures/github_blob.response +706 -0
  55. data/spec/fixtures/github_commit.response +881 -0
  56. data/spec/fixtures/github_pullrequest.response +1619 -0
  57. data/spec/fixtures/hulu.response +339 -0
  58. data/spec/fixtures/image.response +0 -0
  59. data/spec/fixtures/imgur.response +892 -0
  60. data/spec/fixtures/kinomap.response +299 -0
  61. data/spec/fixtures/nfb.response +810 -0
  62. data/spec/fixtures/opengraph.response +27 -0
  63. data/spec/fixtures/qik.response +371 -0
  64. data/spec/fixtures/revision3.response +985 -0
  65. data/spec/fixtures/rottentomatoes_fresh.response +3275 -0
  66. data/spec/fixtures/rottentomatoes_incomplete.response +2313 -0
  67. data/spec/fixtures/rottentomatoes_rotten.response +3549 -0
  68. data/spec/fixtures/slideshare.response +1745 -0
  69. data/spec/fixtures/soundcloud.response +1409 -0
  70. data/spec/fixtures/stackexchange.response +1889 -0
  71. data/spec/fixtures/ted.response +1341 -0
  72. data/spec/fixtures/twitter.response +1712 -0
  73. data/spec/fixtures/viddler.response +442 -0
  74. data/spec/fixtures/video.response +0 -0
  75. data/spec/fixtures/vimeo.response +571 -0
  76. data/spec/fixtures/wikipedia.response +1236 -0
  77. data/spec/fixtures/wikipedia_redirected.response +899 -0
  78. data/spec/fixtures/yfrog.response +464 -0
  79. data/spec/lib/onebox/engine/amazon_spec.rb +34 -0
  80. data/spec/lib/onebox/engine/bliptv_spec.rb +34 -0
  81. data/spec/lib/onebox/engine/clikthrough_spec.rb +26 -0
  82. data/spec/lib/onebox/engine/college_humor_spec.rb +34 -0
  83. data/spec/lib/onebox/engine/dailymotion_spec.rb +36 -0
  84. data/spec/lib/onebox/engine/dotsub_spec.rb +36 -0
  85. data/spec/lib/onebox/engine/example_spec.rb +18 -0
  86. data/spec/lib/onebox/engine/flickr_spec.rb +30 -0
  87. data/spec/lib/onebox/engine/funny_or_die_spec.rb +34 -0
  88. data/spec/lib/onebox/engine/hulu_spec.rb +34 -0
  89. data/spec/lib/onebox/engine/nfb_spec.rb +35 -0
  90. data/spec/lib/onebox/engine/qik_spec.rb +35 -0
  91. data/spec/lib/onebox/engine/revision3_spec.rb +36 -0
  92. data/spec/lib/onebox/engine/slideshare_spec.rb +30 -0
  93. data/spec/lib/onebox/engine/sound_cloud_spec.rb +36 -0
  94. data/spec/lib/onebox/engine/stack_exchange_spec.rb +27 -0
  95. data/spec/lib/onebox/engine/ted_spec.rb +30 -0
  96. data/spec/lib/onebox/engine/viddler_spec.rb +36 -0
  97. data/spec/lib/onebox/engine/vimeo_spec.rb +34 -0
  98. data/spec/lib/onebox/engine/wikipedia_spec.rb +30 -0
  99. data/spec/lib/onebox/engine/yfrog_spec.rb +30 -0
  100. data/spec/lib/onebox/engine_spec.rb +78 -0
  101. data/spec/lib/onebox/matcher_spec.rb +20 -0
  102. data/spec/lib/onebox/preview_spec.rb +21 -0
  103. data/spec/lib/onebox_spec.rb +49 -0
  104. data/spec/spec_helper.rb +26 -0
  105. data/spec/support/html_spec_helper.rb +17 -0
  106. data/templates/amazon.handlebars +9 -0
  107. data/templates/bliptv.handlebars +10 -0
  108. data/templates/clickthrough.handlebars +8 -0
  109. data/templates/clikthrough.handlebars +8 -0
  110. data/templates/collegehumor.handlebars +9 -0
  111. data/templates/dailymotion.handlebars +9 -0
  112. data/templates/dotsub.handlebars +9 -0
  113. data/templates/flickr.handlebars +8 -0
  114. data/templates/funnyordie.handlebars +9 -0
  115. data/templates/hulu.handlebars +9 -0
  116. data/templates/nfb.handlebars +8 -0
  117. data/templates/qik.handlebars +7 -0
  118. data/templates/revision3.handlebars +9 -0
  119. data/templates/slideshare.handlebars +8 -0
  120. data/templates/soundcloud.handlebars +9 -0
  121. data/templates/stackexchange.handlebars +7 -0
  122. data/templates/ted.handlebars +8 -0
  123. data/templates/viddler.handlebars +9 -0
  124. data/templates/vimeo.handlebars +9 -0
  125. data/templates/wikipedia.handlebars +8 -0
  126. data/templates/yfrog.handlebars +8 -0
  127. metadata +447 -0
@@ -0,0 +1,881 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#">
4
+ <meta charset='utf-8'>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <title>Fixed GitHub auth, GitHub can provide us with a valid email - so automat... · 803d023 · discourse/discourse · GitHub</title>
7
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
8
+ <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
9
+ <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
10
+ <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
11
+ <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
12
+ <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
13
+ <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
14
+ <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png">
15
+ <meta name="hostname" content="fe13.rs.github.com">
16
+ <link rel="assets" href="https://github.global.ssl.fastly.net/">
17
+ <link rel="xhr-socket" href="/_sockets" />
18
+ <meta name="msapplication-TileImage" content="/windows-tile.png" />
19
+ <meta name="msapplication-TileColor" content="#ffffff" />
20
+ <meta name="selected-link" value="repo_commits" data-pjax-transient />
21
+ <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" />
22
+ <link rel="icon" type="image/x-icon" href="/favicon.ico" />
23
+ <meta content="authenticity_token" name="csrf-param" />
24
+ <meta content="0sGI0CikZ/keSqYzInhq4SBDu+0H0dkIhlnO92oxyTQ=" name="csrf-token" />
25
+ <link href="https://github.global.ssl.fastly.net/assets/github-c6ca95663cba6496fe7a5bdd98671b82cd956df3.css" media="all" rel="stylesheet" type="text/css" />
26
+ <link href="https://github.global.ssl.fastly.net/assets/github2-d35b02ba3940bde9b9f2c3e58f2dfb1ceff5886c.css" media="all" rel="stylesheet" type="text/css" />
27
+ <script src="https://github.global.ssl.fastly.net/assets/frameworks-eae23340ab2a6ba722166712e699c87aaf60ad8f.js" type="text/javascript"></script>
28
+ <script src="https://github.global.ssl.fastly.net/assets/github-a72a714a307592a4803dc7bed1e49523e71ff53e.js" type="text/javascript"></script>
29
+ <meta http-equiv="x-pjax-version" content="babad972cb81ce7ba9200a9ccc34ae98">
30
+ <link data-pjax-transient rel='alternate' type='text/plain+diff' href="&#x2F;discourse&#x2F;discourse&#x2F;commit&#x2F;803d023e2307309f8b776ab3b8b7e38ba91c0919.diff">
31
+ <link data-pjax-transient rel='alternate' type='text/plain+patch' href="&#x2F;discourse&#x2F;discourse&#x2F;commit&#x2F;803d023e2307309f8b776ab3b8b7e38ba91c0919.patch">
32
+ <link data-pjax-transient rel='permalink' type='text/html' href="&#x2F;discourse&#x2F;discourse&#x2F;commit&#x2F;803d023e2307309f8b776ab3b8b7e38ba91c0919">
33
+ <meta property="og:title" content="discourse"/>
34
+ <meta property="og:type" content="githubog:gitrepository"/>
35
+ <meta property="og:url" content="https://github.com/discourse/discourse"/>
36
+ <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/>
37
+ <meta property="og:site_name" content="GitHub"/>
38
+ <meta property="og:description" content="discourse - A platform for community discussion. Free, open, simple."/>
39
+ <meta name="description" content="discourse - A platform for community discussion. Free, open, simple." />
40
+ <meta content="3220138" name="octolytics-dimension-user_id" /><meta content="discourse" name="octolytics-dimension-user_login" /><meta content="7569578" name="octolytics-dimension-repository_id" /><meta content="discourse/discourse" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="7569578" name="octolytics-dimension-repository_network_root_id" /><meta content="discourse/discourse" name="octolytics-dimension-repository_network_root_nwo" />
41
+ <link href="https://github.com/discourse/discourse/commits/803d023e2307309f8b776ab3b8b7e38ba91c0919.atom" rel="alternate" title="Recent Commits to discourse:803d023e2307309f8b776ab3b8b7e38ba91c0919" type="application/atom+xml" />
42
+ </head>
43
+ <body class="logged_out vis-public env-production ">
44
+ <div class="wrapper">
45
+ <div class="header header-logged-out">
46
+ <div class="container clearfix">
47
+ <a class="header-logo-wordmark" href="https://github.com/">
48
+ <span class="mega-octicon octicon-logo-github"></span>
49
+ </a>
50
+ <div class="header-actions">
51
+ <a class="button primary" href="/signup">Sign up</a>
52
+ <a class="button" href="/login?return_to=%2Fdiscourse%2Fdiscourse%2Fcommit%2F803d023e2307309f8b776ab3b8b7e38ba91c0919">Sign in</a>
53
+ </div>
54
+ <div class="command-bar js-command-bar in-repository">
55
+ <ul class="top-nav">
56
+ <li class="explore"><a href="/explore">Explore</a></li>
57
+ <li class="features"><a href="/features">Features</a></li>
58
+ <li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
59
+ <li class="blog"><a href="/blog">Blog</a></li>
60
+ </ul>
61
+ <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">
62
+ <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"
63
+ data-repo="discourse/discourse"
64
+ data-branch=""
65
+ data-sha="8e0f3e17bb5ee3edc5701229dc1ad82dc5a41de6"
66
+ >
67
+ <input type="hidden" name="nwo" value="discourse/discourse" />
68
+ <div class="select-menu js-menu-container js-select-menu search-context-select-menu">
69
+ <span class="minibutton select-menu-button js-menu-target">
70
+ <span class="js-select-button">This repository</span>
71
+ </span>
72
+ <div class="select-menu-modal-holder js-menu-content js-navigation-container">
73
+ <div class="select-menu-modal">
74
+ <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
75
+ <span class="select-menu-item-icon octicon octicon-check"></span>
76
+ <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
77
+ <div class="select-menu-item-text js-select-button-text">This repository</div>
78
+ </div> <!-- /.select-menu-item -->
79
+ <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
80
+ <span class="select-menu-item-icon octicon octicon-check"></span>
81
+ <input type="radio" name="search_target" value="global" />
82
+ <div class="select-menu-item-text js-select-button-text">All repositories</div>
83
+ </div> <!-- /.select-menu-item -->
84
+ </div>
85
+ </div>
86
+ </div>
87
+ <span class="octicon help tooltipped downwards" title="Show command bar help">
88
+ <span class="octicon octicon-question"></span>
89
+ </span>
90
+ <input type="hidden" name="ref" value="cmdform">
91
+ </form>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <div class="site" itemscope itemtype="http://schema.org/WebPage">
96
+ <div class="pagehead repohead instapaper_ignore readability-menu">
97
+ <div class="container">
98
+ <ul class="pagehead-actions">
99
+ <li>
100
+ <a href="/login?return_to=%2Fdiscourse%2Fdiscourse"
101
+ class="minibutton with-count js-toggler-target star-button entice tooltipped upwards "
102
+ title="You must be signed in to use this feature" rel="nofollow">
103
+ <span class="octicon octicon-star"></span>Star
104
+ </a>
105
+ <a class="social-count js-social-count" href="/discourse/discourse/stargazers">
106
+ 7,265
107
+ </a>
108
+ </li>
109
+ <li>
110
+ <a href="/login?return_to=%2Fdiscourse%2Fdiscourse"
111
+ class="minibutton with-count js-toggler-target fork-button entice tooltipped upwards"
112
+ title="You must be signed in to fork a repository" rel="nofollow">
113
+ <span class="octicon octicon-git-branch"></span>Fork
114
+ </a>
115
+ <a href="/discourse/discourse/network" class="social-count">
116
+ 1,663
117
+ </a>
118
+ </li>
119
+ </ul>
120
+ <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
121
+ <span class="repo-label"><span>public</span></span>
122
+ <span class="mega-octicon octicon-repo"></span>
123
+ <span class="author">
124
+ <a href="/discourse" class="url fn" itemprop="url" rel="author"><span itemprop="title">discourse</span></a></span
125
+ ><span class="repohead-name-divider">/</span><strong
126
+ ><a href="/discourse/discourse" class="js-current-repository js-repo-home-link">discourse</a></strong>
127
+ <span class="page-context-loader">
128
+ <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
129
+ </span>
130
+ </h1>
131
+ </div><!-- /.container -->
132
+ </div><!-- /.repohead -->
133
+ <div class="container">
134
+ <div class="repository-with-sidebar repo-container ">
135
+ <div class="repository-sidebar">
136
+ <div class="repo-nav repo-nav-full js-repository-container-pjax js-octicon-loaders">
137
+ <div class="repo-nav-contents">
138
+ <ul class="repo-menu">
139
+ <li class="tooltipped leftwards" title="Code">
140
+ <a href="/discourse/discourse" aria-label="Code" class="js-selected-navigation-item selected" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /discourse/discourse">
141
+ <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
142
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
143
+ </a> </li>
144
+ <li class="tooltipped leftwards" title="Issues">
145
+ <a href="/discourse/discourse/issues" aria-label="Issues" class="js-selected-navigation-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /discourse/discourse/issues">
146
+ <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
147
+ <span class='counter'>28</span>
148
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
149
+ </a> </li>
150
+ <li class="tooltipped leftwards" title="Pull Requests"><a href="/discourse/discourse/pulls" aria-label="Pull Requests" class="js-selected-navigation-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /discourse/discourse/pulls">
151
+ <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
152
+ <span class='counter'>7</span>
153
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
154
+ </a> </li>
155
+ <li class="tooltipped leftwards" title="Wiki">
156
+ <a href="/discourse/discourse/wiki" aria-label="Wiki" class="js-selected-navigation-item " data-pjax="true" data-selected-links="repo_wiki /discourse/discourse/wiki">
157
+ <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span>
158
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
159
+ </a> </li>
160
+ </ul>
161
+ <div class="repo-menu-separator"></div>
162
+ <ul class="repo-menu">
163
+ <li class="tooltipped leftwards" title="Pulse">
164
+ <a href="/discourse/discourse/pulse" aria-label="Pulse" class="js-selected-navigation-item " data-pjax="true" data-selected-links="pulse /discourse/discourse/pulse">
165
+ <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
166
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
167
+ </a> </li>
168
+ <li class="tooltipped leftwards" title="Graphs">
169
+ <a href="/discourse/discourse/graphs" aria-label="Graphs" class="js-selected-navigation-item " data-pjax="true" data-selected-links="repo_graphs repo_contributors /discourse/discourse/graphs">
170
+ <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
171
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
172
+ </a> </li>
173
+ <li class="tooltipped leftwards" title="Network">
174
+ <a href="/discourse/discourse/network" aria-label="Network" class="js-selected-navigation-item js-disable-pjax" data-selected-links="repo_network /discourse/discourse/network">
175
+ <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
176
+ <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
177
+ </a> </li>
178
+ </ul>
179
+ </div>
180
+ </div>
181
+ <div class="only-with-full-nav">
182
+ <div class="clone-url open"
183
+ data-protocol-type="http"
184
+ data-url="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone">
185
+ <h3><strong>HTTPS</strong> clone URL</h3>
186
+ <input type="text" class="clone js-url-field"
187
+ value="https://github.com/discourse/discourse.git" readonly="readonly">
188
+ <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/discourse/discourse.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
189
+ </div>
190
+ <div class="clone-url "
191
+ data-protocol-type="subversion"
192
+ data-url="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone">
193
+ <h3><strong>Subversion</strong> checkout URL</h3>
194
+ <input type="text" class="clone js-url-field"
195
+ value="https://github.com/discourse/discourse" readonly="readonly">
196
+ <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/discourse/discourse" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
197
+ </div>
198
+ <p class="clone-options">You can clone with
199
+ <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
200
+ <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>,
201
+ and <a href="https://help.github.com/articles/which-remote-url-should-i-use">other methods.</a>
202
+ </p>
203
+ <a href="/discourse/discourse/archive/803d023e2307309f8b776ab3b8b7e38ba91c0919.zip"
204
+ class="minibutton sidebar-button"
205
+ title="Download this repository as a zip file"
206
+ rel="nofollow">
207
+ <span class="octicon octicon-cloud-download"></span>
208
+ Download ZIP
209
+ </a>
210
+ </div>
211
+ </div><!-- /.repository-sidebar -->
212
+ <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
213
+ <div class="commit full-commit ">
214
+ <a href="/discourse/discourse/tree/803d023e2307309f8b776ab3b8b7e38ba91c0919" class="browse-button" title="Browse the code at this point in the history" rel="nofollow">Browse code</a>
215
+ <p class="commit-title">
216
+ Fixed GitHub auth, GitHub can provide us with a valid email - so auto…
217
+ </p>
218
+ <div class="commit-desc"><pre>&#8230;matically log in for those cases</pre></div>
219
+ <div class="commit-branches">
220
+ <span class="octicon octicon-git-branch"></span>
221
+ <ul class="branches-list">
222
+ <li class="branch"><a href="/discourse/discourse">master</a></li>
223
+ </ul>
224
+ </div>
225
+ <div class="commit-meta clearfix">
226
+ <span class="sha-block">commit <span class="sha js-selectable-text">803d023e2307309f8b776ab3b8b7e38ba91c0919</span></span>
227
+ <span class="sha-block" data-pjax>
228
+ 1 parent
229
+ <a href="/discourse/discourse/commit/cf333268d5b48946a659f173716aecc1096d7e66" class="sha" data-hotkey="p">cf33326</a>
230
+ </span>
231
+ <div class="authorship">
232
+ <img class="gravatar" height="24" src="https://secure.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce?s=140&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" width="24" />
233
+ <span class="author-name"><a href="/SamSaffron" rel="author">SamSaffron</a></span>
234
+ authored <time class="js-relative-date" datetime="2013-08-01T19:03:53-07:00" title="2013-08-01 19:03:53">August 01, 2013</time>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ <a name="diff-stat"></a>
239
+ <div id='toc' class="details-collapse js-details-container ">
240
+ <p class="explain">
241
+ <span class="octicon octicon-diff"></span>Showing <strong>1 changed file</strong>
242
+ with <strong>18 additions</strong>
243
+ and <strong>2 deletions</strong>.
244
+ <a href="#" class="minibutton show-diff-stats js-details-target">Show Diff Stats</a>
245
+ <a href="#" class="minibutton hide-diff-stats js-details-target">Hide Diff Stats</a></p>
246
+ <ol class="content collapse js-transitionable">
247
+ <li>
248
+ <span class="diffstat">
249
+ <a href="#diff-0" class="tooltipped leftwards" title="18 additions &amp; 2 deletions">
250
+ 20
251
+ <span class="diffstat-bar"> <i class='plus'>&#xf053;&#xf053;&#xf053;&#xf053;</i>&#xf053; </span>
252
+ </a>
253
+ </span>
254
+ <span class='octicon octicon-diff-modified' title='modified'></span> <a href="#diff-0">app/controllers/users/omniauth_callbacks_controller.rb</a>
255
+ </li>
256
+ </ol>
257
+ </div>
258
+ <div id="files" class="diff-view commentable">
259
+ <a name="diff-a4275c3adf0e6810f2de8c6b215f6645"></a>
260
+ <div id="diff-0" class="file js-details-container" data-diff-num="0">
261
+ <div class="meta" data-path="app/controllers/users/omniauth_callbacks_controller.rb">
262
+ <div class="info">
263
+ <span class="diffstat tooltipped rightwards" title="18 additions &amp; 2 deletions">20 <span class="diffstat-bar"><i class='plus'>&#xf053;&#xf053;&#xf053;&#xf053;</i>&#xf053;</span></span>
264
+ <span class="js-selectable-text css-truncate css-truncate-target" title="app/controllers/users/omniauth_callbacks_controller.rb">
265
+ app/controllers/users/omniauth_callbacks_controller.rb
266
+ </span>
267
+ </div>
268
+ <div class="actions">
269
+ <span class="show-inline-notes">
270
+ <label>
271
+ <input type="checkbox" checked="checked" class="js-show-inline-comments-toggle">
272
+ show inline notes
273
+ </label>
274
+ </span>
275
+ <div class="button-group">
276
+ <a href="/discourse/discourse/blob/803d023e2307309f8b776ab3b8b7e38ba91c0919/app/controllers/users/omniauth_callbacks_controller.rb" class="minibutton" rel="nofollow">View file @ <code>803d023</code></a>
277
+ </div>
278
+ </div>
279
+ </div>
280
+ <div class="data highlight ">
281
+ <table class="file-code file-diff ">
282
+ <tr class="file-diff-line gc" data-position='0'>
283
+ <td id="L0L209" class="diff-line-num linkable-line-number">
284
+ <span class="line-num-content">...</span>
285
+ </td>
286
+ <td id="L0R209" class="diff-line-num linkable-line-number">
287
+ <span class="line-num-content">...</span>
288
+ </td>
289
+ <td class="diff-line-code">
290
+ @@&nbsp;-210,6&nbsp;+210,8&nbsp;@@&nbsp;def&nbsp;create_or_sign_on_user_using_openid(auth_token)
291
+ </td>
292
+ </tr>
293
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P1" data-position="1">
294
+ <td id="L0L210" class="diff-line-num linkable-line-number" data-line-number="210">
295
+ <span class="line-num-content">210</span>
296
+ </td>
297
+ <td id="L0R210" class="diff-line-num linkable-line-number" data-line-number="210">
298
+ <span class="line-num-content">210</span>
299
+ </td>
300
+ <td class="diff-line-code">
301
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=1&amp;line=210"></b>
302
+ &nbsp;
303
+ </td>
304
+ </tr>
305
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P2" data-position="2">
306
+ <td id="L0L211" class="diff-line-num linkable-line-number" data-line-number="211">
307
+ <span class="line-num-content">211</span>
308
+ </td>
309
+ <td id="L0R211" class="diff-line-num linkable-line-number" data-line-number="211">
310
+ <span class="line-num-content">211</span>
311
+ </td>
312
+ <td class="diff-line-code">
313
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=2&amp;line=211"></b>
314
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;user_open_id.blank?&nbsp;&amp;&amp;&nbsp;user&nbsp;=&nbsp;User.find_by_email(email)
315
+ </td>
316
+ </tr>
317
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P3" data-position="3">
318
+ <td id="L0L212" class="diff-line-num linkable-line-number" data-line-number="212">
319
+ <span class="line-num-content">212</span>
320
+ </td>
321
+ <td id="L0R212" class="diff-line-num linkable-line-number" data-line-number="212">
322
+ <span class="line-num-content">212</span>
323
+ </td>
324
+ <td class="diff-line-code">
325
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=3&amp;line=212"></b>
326
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;we&nbsp;trust&nbsp;so&nbsp;do&nbsp;an&nbsp;email&nbsp;lookup
327
+ </td>
328
+ </tr>
329
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P4" data-position="4">
330
+ <td id="L0L212" class="diff-line-num linkable-line-number empty-cell" data-line-number="212">
331
+ <span class="line-num-content">&nbsp;</span>
332
+ </td>
333
+ <td id="L0R213" class="diff-line-num linkable-line-number" data-line-number="213">
334
+ <span class="line-num-content">213</span>
335
+ </td>
336
+ <td class="diff-line-code">
337
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=4&amp;line=213"></b>
338
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;TODO&nbsp;some&nbsp;openid&nbsp;providers&nbsp;may&nbsp;not&nbsp;be&nbsp;trust&nbsp;worthy,&nbsp;allow&nbsp;for&nbsp;that
339
+ </td>
340
+ </tr>
341
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P5" data-position="5">
342
+ <td id="L0L212" class="diff-line-num linkable-line-number empty-cell" data-line-number="212">
343
+ <span class="line-num-content">&nbsp;</span>
344
+ </td>
345
+ <td id="L0R214" class="diff-line-num linkable-line-number" data-line-number="214">
346
+ <span class="line-num-content">214</span>
347
+ </td>
348
+ <td class="diff-line-code">
349
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=5&amp;line=214"></b>
350
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;for&nbsp;now&nbsp;we&nbsp;are&nbsp;good&nbsp;(google,&nbsp;yahoo&nbsp;are&nbsp;trust&nbsp;worthy)
351
+ </td>
352
+ </tr>
353
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P6" data-position="6">
354
+ <td id="L0L213" class="diff-line-num linkable-line-number" data-line-number="213">
355
+ <span class="line-num-content">213</span>
356
+ </td>
357
+ <td id="L0R215" class="diff-line-num linkable-line-number" data-line-number="215">
358
+ <span class="line-num-content">215</span>
359
+ </td>
360
+ <td class="diff-line-code">
361
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=6&amp;line=215"></b>
362
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_open_id&nbsp;=&nbsp;UserOpenId.create(url:&nbsp;identity_url&nbsp;,&nbsp;user_id:&nbsp;user.id,&nbsp;email:&nbsp;email,&nbsp;active:&nbsp;true)
363
+ </td>
364
+ </tr>
365
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P7" data-position="7">
366
+ <td id="L0L214" class="diff-line-num linkable-line-number" data-line-number="214">
367
+ <span class="line-num-content">214</span>
368
+ </td>
369
+ <td id="L0R216" class="diff-line-num linkable-line-number" data-line-number="216">
370
+ <span class="line-num-content">216</span>
371
+ </td>
372
+ <td class="diff-line-code">
373
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=7&amp;line=216"></b>
374
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
375
+ </td>
376
+ </tr>
377
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P8" data-position="8">
378
+ <td id="L0L215" class="diff-line-num linkable-line-number" data-line-number="215">
379
+ <span class="line-num-content">215</span>
380
+ </td>
381
+ <td id="L0R217" class="diff-line-num linkable-line-number" data-line-number="217">
382
+ <span class="line-num-content">217</span>
383
+ </td>
384
+ <td class="diff-line-code">
385
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=8&amp;line=217"></b>
386
+ &nbsp;
387
+ </td>
388
+ </tr>
389
+ <tr class="file-diff-line gc" data-position='9'>
390
+ <td id="L0L249" class="diff-line-num linkable-line-number">
391
+ <span class="line-num-content">...</span>
392
+ </td>
393
+ <td id="L0R251" class="diff-line-num linkable-line-number">
394
+ <span class="line-num-content">...</span>
395
+ </td>
396
+ <td class="diff-line-code">
397
+ @@&nbsp;-250,18&nbsp;+252,32&nbsp;@@&nbsp;def&nbsp;create_or_sign_on_user_using_github(auth_token)
398
+ </td>
399
+ </tr>
400
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P10" data-position="10">
401
+ <td id="L0L250" class="diff-line-num linkable-line-number" data-line-number="250">
402
+ <span class="line-num-content">250</span>
403
+ </td>
404
+ <td id="L0R252" class="diff-line-num linkable-line-number" data-line-number="252">
405
+ <span class="line-num-content">252</span>
406
+ </td>
407
+ <td class="diff-line-code">
408
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=10&amp;line=252"></b>
409
+ &nbsp;
410
+ </td>
411
+ </tr>
412
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P11" data-position="11">
413
+ <td id="L0L251" class="diff-line-num linkable-line-number" data-line-number="251">
414
+ <span class="line-num-content">251</span>
415
+ </td>
416
+ <td id="L0R253" class="diff-line-num linkable-line-number" data-line-number="253">
417
+ <span class="line-num-content">253</span>
418
+ </td>
419
+ <td class="diff-line-code">
420
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=11&amp;line=253"></b>
421
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;=&nbsp;auth_token[:info]
422
+ </td>
423
+ </tr>
424
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P12" data-position="12">
425
+ <td id="L0L252" class="diff-line-num linkable-line-number" data-line-number="252">
426
+ <span class="line-num-content">252</span>
427
+ </td>
428
+ <td id="L0R254" class="diff-line-num linkable-line-number" data-line-number="254">
429
+ <span class="line-num-content">254</span>
430
+ </td>
431
+ <td class="diff-line-code">
432
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=12&amp;line=254"></b>
433
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screen_name&nbsp;=&nbsp;data[&quot;nickname&quot;]
434
+ </td>
435
+ </tr>
436
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P13" data-position="13">
437
+ <td id="L0L252" class="diff-line-num linkable-line-number empty-cell" data-line-number="252">
438
+ <span class="line-num-content">&nbsp;</span>
439
+ </td>
440
+ <td id="L0R255" class="diff-line-num linkable-line-number" data-line-number="255">
441
+ <span class="line-num-content">255</span>
442
+ </td>
443
+ <td class="diff-line-code">
444
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=13&amp;line=255"></b>
445
+ +&nbsp;&nbsp;&nbsp;&nbsp;email&nbsp;=&nbsp;data[&quot;email&quot;]
446
+ </td>
447
+ </tr>
448
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P14" data-position="14">
449
+ <td id="L0L253" class="diff-line-num linkable-line-number" data-line-number="253">
450
+ <span class="line-num-content">253</span>
451
+ </td>
452
+ <td id="L0R256" class="diff-line-num linkable-line-number" data-line-number="256">
453
+ <span class="line-num-content">256</span>
454
+ </td>
455
+ <td class="diff-line-code">
456
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=14&amp;line=256"></b>
457
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;github_user_id&nbsp;=&nbsp;auth_token[&quot;uid&quot;]
458
+ </td>
459
+ </tr>
460
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P15" data-position="15">
461
+ <td id="L0L254" class="diff-line-num linkable-line-number" data-line-number="254">
462
+ <span class="line-num-content">254</span>
463
+ </td>
464
+ <td id="L0R257" class="diff-line-num linkable-line-number" data-line-number="257">
465
+ <span class="line-num-content">257</span>
466
+ </td>
467
+ <td class="diff-line-code">
468
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=15&amp;line=257"></b>
469
+ &nbsp;
470
+ </td>
471
+ </tr>
472
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P16" data-position="16">
473
+ <td id="L0L255" class="diff-line-num linkable-line-number" data-line-number="255">
474
+ <span class="line-num-content">255</span>
475
+ </td>
476
+ <td id="L0R258" class="diff-line-num linkable-line-number" data-line-number="258">
477
+ <span class="line-num-content">258</span>
478
+ </td>
479
+ <td class="diff-line-code">
480
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=16&amp;line=258"></b>
481
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session[:authentication]&nbsp;=&nbsp;{
482
+ </td>
483
+ </tr>
484
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P17" data-position="17">
485
+ <td id="L0L256" class="diff-line-num linkable-line-number" data-line-number="256">
486
+ <span class="line-num-content">256</span>
487
+ </td>
488
+ <td id="L0R259" class="diff-line-num linkable-line-number" data-line-number="259">
489
+ <span class="line-num-content">259</span>
490
+ </td>
491
+ <td class="diff-line-code">
492
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=17&amp;line=259"></b>
493
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;github_user_id:&nbsp;github_user_id,
494
+ </td>
495
+ </tr>
496
+ <tr class="file-diff-line gd" id="app-controllers-users-omniauth_callbacks_controller-rb-P18" data-position="18">
497
+ <td id="L0L257" class="diff-line-num linkable-line-number" data-line-number="257">
498
+ <span class="line-num-content">257</span>
499
+ </td>
500
+ <td id="L0R259" class="diff-line-num linkable-line-number empty-cell" data-line-number="259">
501
+ <span class="line-num-content">&nbsp;</span>
502
+ </td>
503
+ <td class="diff-line-code">
504
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=18&amp;line=257"></b>
505
+ -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;github_screen_name:&nbsp;screen_name
506
+ </td>
507
+ </tr>
508
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P19" data-position="19">
509
+ <td id="L0L257" class="diff-line-num linkable-line-number empty-cell" data-line-number="257">
510
+ <span class="line-num-content">&nbsp;</span>
511
+ </td>
512
+ <td id="L0R260" class="diff-line-num linkable-line-number" data-line-number="260">
513
+ <span class="line-num-content">260</span>
514
+ </td>
515
+ <td class="diff-line-code">
516
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=19&amp;line=260"></b>
517
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;github_screen_name:&nbsp;screen_name,
518
+ </td>
519
+ </tr>
520
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P20" data-position="20">
521
+ <td id="L0L257" class="diff-line-num linkable-line-number empty-cell" data-line-number="257">
522
+ <span class="line-num-content">&nbsp;</span>
523
+ </td>
524
+ <td id="L0R261" class="diff-line-num linkable-line-number" data-line-number="261">
525
+ <span class="line-num-content">261</span>
526
+ </td>
527
+ <td class="diff-line-code">
528
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=20&amp;line=261"></b>
529
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email:&nbsp;email,
530
+ </td>
531
+ </tr>
532
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P21" data-position="21">
533
+ <td id="L0L257" class="diff-line-num linkable-line-number empty-cell" data-line-number="257">
534
+ <span class="line-num-content">&nbsp;</span>
535
+ </td>
536
+ <td id="L0R262" class="diff-line-num linkable-line-number" data-line-number="262">
537
+ <span class="line-num-content">262</span>
538
+ </td>
539
+ <td class="diff-line-code">
540
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=21&amp;line=262"></b>
541
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email_valid:&nbsp;true
542
+ </td>
543
+ </tr>
544
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P22" data-position="22">
545
+ <td id="L0L258" class="diff-line-num linkable-line-number" data-line-number="258">
546
+ <span class="line-num-content">258</span>
547
+ </td>
548
+ <td id="L0R263" class="diff-line-num linkable-line-number" data-line-number="263">
549
+ <span class="line-num-content">263</span>
550
+ </td>
551
+ <td class="diff-line-code">
552
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=22&amp;line=263"></b>
553
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
554
+ </td>
555
+ </tr>
556
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P23" data-position="23">
557
+ <td id="L0L259" class="diff-line-num linkable-line-number" data-line-number="259">
558
+ <span class="line-num-content">259</span>
559
+ </td>
560
+ <td id="L0R264" class="diff-line-num linkable-line-number" data-line-number="264">
561
+ <span class="line-num-content">264</span>
562
+ </td>
563
+ <td class="diff-line-code">
564
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=23&amp;line=264"></b>
565
+ &nbsp;
566
+ </td>
567
+ </tr>
568
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P24" data-position="24">
569
+ <td id="L0L260" class="diff-line-num linkable-line-number" data-line-number="260">
570
+ <span class="line-num-content">260</span>
571
+ </td>
572
+ <td id="L0R265" class="diff-line-num linkable-line-number" data-line-number="265">
573
+ <span class="line-num-content">265</span>
574
+ </td>
575
+ <td class="diff-line-code">
576
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=24&amp;line=265"></b>
577
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_info&nbsp;=&nbsp;GithubUserInfo.where(github_user_id:&nbsp;github_user_id).first
578
+ </td>
579
+ </tr>
580
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P25" data-position="25">
581
+ <td id="L0L261" class="diff-line-num linkable-line-number" data-line-number="261">
582
+ <span class="line-num-content">261</span>
583
+ </td>
584
+ <td id="L0R266" class="diff-line-num linkable-line-number" data-line-number="266">
585
+ <span class="line-num-content">266</span>
586
+ </td>
587
+ <td class="diff-line-code">
588
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=25&amp;line=266"></b>
589
+ &nbsp;
590
+ </td>
591
+ </tr>
592
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P26" data-position="26">
593
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
594
+ <span class="line-num-content">&nbsp;</span>
595
+ </td>
596
+ <td id="L0R267" class="diff-line-num linkable-line-number" data-line-number="267">
597
+ <span class="line-num-content">267</span>
598
+ </td>
599
+ <td class="diff-line-code">
600
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=26&amp;line=267"></b>
601
+ +&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;!user_info&nbsp;&amp;&amp;&nbsp;user&nbsp;=&nbsp;User.find_by_email(email)
602
+ </td>
603
+ </tr>
604
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P27" data-position="27">
605
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
606
+ <span class="line-num-content">&nbsp;</span>
607
+ </td>
608
+ <td id="L0R268" class="diff-line-num linkable-line-number" data-line-number="268">
609
+ <span class="line-num-content">268</span>
610
+ </td>
611
+ <td class="diff-line-code">
612
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=27&amp;line=268"></b>
613
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;we&nbsp;trust&nbsp;so&nbsp;do&nbsp;an&nbsp;email&nbsp;lookup
614
+ </td>
615
+ </tr>
616
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P28" data-position="28">
617
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
618
+ <span class="line-num-content">&nbsp;</span>
619
+ </td>
620
+ <td id="L0R269" class="diff-line-num linkable-line-number" data-line-number="269">
621
+ <span class="line-num-content">269</span>
622
+ </td>
623
+ <td class="diff-line-code">
624
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=28&amp;line=269"></b>
625
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_info&nbsp;=&nbsp;GithubUserInfo.create(
626
+ </td>
627
+ </tr>
628
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P29" data-position="29">
629
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
630
+ <span class="line-num-content">&nbsp;</span>
631
+ </td>
632
+ <td id="L0R270" class="diff-line-num linkable-line-number" data-line-number="270">
633
+ <span class="line-num-content">270</span>
634
+ </td>
635
+ <td class="diff-line-code">
636
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=29&amp;line=270"></b>
637
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_id:&nbsp;user.id,
638
+ </td>
639
+ </tr>
640
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P30" data-position="30">
641
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
642
+ <span class="line-num-content">&nbsp;</span>
643
+ </td>
644
+ <td id="L0R271" class="diff-line-num linkable-line-number" data-line-number="271">
645
+ <span class="line-num-content">271</span>
646
+ </td>
647
+ <td class="diff-line-code">
648
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=30&amp;line=271"></b>
649
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screen_name:&nbsp;screen_name,
650
+ </td>
651
+ </tr>
652
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P31" data-position="31">
653
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
654
+ <span class="line-num-content">&nbsp;</span>
655
+ </td>
656
+ <td id="L0R272" class="diff-line-num linkable-line-number" data-line-number="272">
657
+ <span class="line-num-content">272</span>
658
+ </td>
659
+ <td class="diff-line-code">
660
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=31&amp;line=272"></b>
661
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;github_user_id:&nbsp;github_user_id
662
+ </td>
663
+ </tr>
664
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P32" data-position="32">
665
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
666
+ <span class="line-num-content">&nbsp;</span>
667
+ </td>
668
+ <td id="L0R273" class="diff-line-num linkable-line-number" data-line-number="273">
669
+ <span class="line-num-content">273</span>
670
+ </td>
671
+ <td class="diff-line-code">
672
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=32&amp;line=273"></b>
673
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
674
+ </td>
675
+ </tr>
676
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P33" data-position="33">
677
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
678
+ <span class="line-num-content">&nbsp;</span>
679
+ </td>
680
+ <td id="L0R274" class="diff-line-num linkable-line-number" data-line-number="274">
681
+ <span class="line-num-content">274</span>
682
+ </td>
683
+ <td class="diff-line-code">
684
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=33&amp;line=274"></b>
685
+ +&nbsp;&nbsp;&nbsp;&nbsp;end
686
+ </td>
687
+ </tr>
688
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P34" data-position="34">
689
+ <td id="L0L261" class="diff-line-num linkable-line-number empty-cell" data-line-number="261">
690
+ <span class="line-num-content">&nbsp;</span>
691
+ </td>
692
+ <td id="L0R275" class="diff-line-num linkable-line-number" data-line-number="275">
693
+ <span class="line-num-content">275</span>
694
+ </td>
695
+ <td class="diff-line-code">
696
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=34&amp;line=275"></b>
697
+ +
698
+ </td>
699
+ </tr>
700
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P35" data-position="35">
701
+ <td id="L0L262" class="diff-line-num linkable-line-number" data-line-number="262">
702
+ <span class="line-num-content">262</span>
703
+ </td>
704
+ <td id="L0R276" class="diff-line-num linkable-line-number" data-line-number="276">
705
+ <span class="line-num-content">276</span>
706
+ </td>
707
+ <td class="diff-line-code">
708
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=35&amp;line=276"></b>
709
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@data&nbsp;=&nbsp;{
710
+ </td>
711
+ </tr>
712
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P36" data-position="36">
713
+ <td id="L0L263" class="diff-line-num linkable-line-number" data-line-number="263">
714
+ <span class="line-num-content">263</span>
715
+ </td>
716
+ <td id="L0R277" class="diff-line-num linkable-line-number" data-line-number="277">
717
+ <span class="line-num-content">277</span>
718
+ </td>
719
+ <td class="diff-line-code">
720
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=36&amp;line=277"></b>
721
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username:&nbsp;screen_name,
722
+ </td>
723
+ </tr>
724
+ <tr class="file-diff-line gd" id="app-controllers-users-omniauth_callbacks_controller-rb-P37" data-position="37">
725
+ <td id="L0L264" class="diff-line-num linkable-line-number" data-line-number="264">
726
+ <span class="line-num-content">264</span>
727
+ </td>
728
+ <td id="L0R277" class="diff-line-num linkable-line-number empty-cell" data-line-number="277">
729
+ <span class="line-num-content">&nbsp;</span>
730
+ </td>
731
+ <td class="diff-line-code">
732
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=37&amp;line=264"></b>
733
+ -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_provider:&nbsp;&quot;Github&quot;
734
+ </td>
735
+ </tr>
736
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P38" data-position="38">
737
+ <td id="L0L264" class="diff-line-num linkable-line-number empty-cell" data-line-number="264">
738
+ <span class="line-num-content">&nbsp;</span>
739
+ </td>
740
+ <td id="L0R278" class="diff-line-num linkable-line-number" data-line-number="278">
741
+ <span class="line-num-content">278</span>
742
+ </td>
743
+ <td class="diff-line-code">
744
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=38&amp;line=278"></b>
745
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_provider:&nbsp;&quot;Github&quot;,
746
+ </td>
747
+ </tr>
748
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P39" data-position="39">
749
+ <td id="L0L264" class="diff-line-num linkable-line-number empty-cell" data-line-number="264">
750
+ <span class="line-num-content">&nbsp;</span>
751
+ </td>
752
+ <td id="L0R279" class="diff-line-num linkable-line-number" data-line-number="279">
753
+ <span class="line-num-content">279</span>
754
+ </td>
755
+ <td class="diff-line-code">
756
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=39&amp;line=279"></b>
757
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email:&nbsp;email,
758
+ </td>
759
+ </tr>
760
+ <tr class="file-diff-line gi" id="app-controllers-users-omniauth_callbacks_controller-rb-P40" data-position="40">
761
+ <td id="L0L264" class="diff-line-num linkable-line-number empty-cell" data-line-number="264">
762
+ <span class="line-num-content">&nbsp;</span>
763
+ </td>
764
+ <td id="L0R280" class="diff-line-num linkable-line-number" data-line-number="280">
765
+ <span class="line-num-content">280</span>
766
+ </td>
767
+ <td class="diff-line-code">
768
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=40&amp;line=280"></b>
769
+ +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email_valid:&nbsp;true
770
+ </td>
771
+ </tr>
772
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P41" data-position="41">
773
+ <td id="L0L265" class="diff-line-num linkable-line-number" data-line-number="265">
774
+ <span class="line-num-content">265</span>
775
+ </td>
776
+ <td id="L0R281" class="diff-line-num linkable-line-number" data-line-number="281">
777
+ <span class="line-num-content">281</span>
778
+ </td>
779
+ <td class="diff-line-code">
780
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=41&amp;line=281"></b>
781
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
782
+ </td>
783
+ </tr>
784
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P42" data-position="42">
785
+ <td id="L0L266" class="diff-line-num linkable-line-number" data-line-number="266">
786
+ <span class="line-num-content">266</span>
787
+ </td>
788
+ <td id="L0R282" class="diff-line-num linkable-line-number" data-line-number="282">
789
+ <span class="line-num-content">282</span>
790
+ </td>
791
+ <td class="diff-line-code">
792
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=42&amp;line=282"></b>
793
+ &nbsp;
794
+ </td>
795
+ </tr>
796
+ <tr class="file-diff-line " id="app-controllers-users-omniauth_callbacks_controller-rb-P43" data-position="43">
797
+ <td id="L0L267" class="diff-line-num linkable-line-number" data-line-number="267">
798
+ <span class="line-num-content">267</span>
799
+ </td>
800
+ <td id="L0R283" class="diff-line-num linkable-line-number" data-line-number="283">
801
+ <span class="line-num-content">283</span>
802
+ </td>
803
+ <td class="diff-line-code">
804
+ <b class="add-line-comment octicon octicon-comment-add" data-remote="/discourse/discourse/commit_comment/form?commit_id=803d023e2307309f8b776ab3b8b7e38ba91c0919&amp;path=app/controllers/users/omniauth_callbacks_controller.rb&amp;position=43&amp;line=283"></b>
805
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process_user_info(user_info,&nbsp;screen_name)
806
+ </td>
807
+ </tr>
808
+ </table>
809
+ </div>
810
+ <div class="file-comments-place-holder" data-path="app/controllers/users/omniauth_callbacks_controller.rb"></div>
811
+ </div>
812
+ </div>
813
+ <div id="all_commit_comments">
814
+ <h2 class="commit-comments-header">
815
+ 0 notes
816
+ on commit <code class="commit-comments-header-sha">803d023</code>
817
+ <span class="commit-comments-toggle-line-notes-wrapper"><label><input id="js-inline-comments-toggle" class="commit-comments-toggle-line-notes" type="checkbox">Show line notes below</label></span>
818
+ </h2>
819
+ <div id="comments" class="only-commit-comments comment-holder commit-comments">
820
+ </div>
821
+ Please <a href="/login?return_to=%2Fdiscourse%2Fdiscourse%2Fcommit%2F803d023e2307309f8b776ab3b8b7e38ba91c0919" rel="nofollow">sign in</a> to comment.
822
+ </div>
823
+ <!-- COMMENTS -->
824
+ <div id='diff-comment-data' style='display:none'>
825
+ </div>
826
+ </div>
827
+ </div><!-- /.repo-container -->
828
+ <div class="modal-backdrop"></div>
829
+ </div><!-- /.container -->
830
+ </div><!-- /.site -->
831
+ </div><!-- /.wrapper -->
832
+ <div class="container">
833
+ <div class="site-footer">
834
+ <ul class="site-footer-links right">
835
+ <li><a href="https://status.github.com/">Status</a></li>
836
+ <li><a href="http://developer.github.com">API</a></li>
837
+ <li><a href="http://training.github.com">Training</a></li>
838
+ <li><a href="http://shop.github.com">Shop</a></li>
839
+ <li><a href="/blog">Blog</a></li>
840
+ <li><a href="/about">About</a></li>
841
+ </ul>
842
+ <a href="/">
843
+ <span class="mega-octicon octicon-mark-github"></span>
844
+ </a>
845
+ <ul class="site-footer-links">
846
+ <li>&copy; 2013 <span title="0.04182s from fe13.rs.github.com">GitHub</span>, Inc.</li>
847
+ <li><a href="/site/terms">Terms</a></li>
848
+ <li><a href="/site/privacy">Privacy</a></li>
849
+ <li><a href="/security">Security</a></li>
850
+ <li><a href="/contact">Contact</a></li>
851
+ </ul>
852
+ </div><!-- /.site-footer -->
853
+ </div><!-- /.container -->
854
+ <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
855
+ <div class="fullscreen-container js-fullscreen-container">
856
+ <div class="textarea-wrap">
857
+ <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
858
+ <div class="suggester-container">
859
+ <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
860
+ data-url="/discourse/discourse/suggestions/commit">
861
+ </div>
862
+ </div>
863
+ </div>
864
+ </div>
865
+ <div class="fullscreen-sidebar">
866
+ <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
867
+ <span class="mega-octicon octicon-screen-normal"></span>
868
+ </a>
869
+ <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
870
+ title="Switch themes">
871
+ <span class="octicon octicon-color-mode"></span>
872
+ </a>
873
+ </div>
874
+ </div>
875
+ <div id="ajax-error-message" class="flash flash-error">
876
+ <span class="octicon octicon-alert"></span>
877
+ <a href="#" class="octicon octicon-remove-close close ajax-error-dismiss"></a>
878
+ Something went wrong with that request. Please try again.
879
+ </div>
880
+ </body>
881
+ </html>