onebox 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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>