jekyll-auth 2.1.0 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/.github/CODEOWNERS +3 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  5. data/.github/config.yml +23 -0
  6. data/.github/dependabot.yml +10 -0
  7. data/.github/funding.yml +1 -0
  8. data/.github/no-response.yml +15 -0
  9. data/.github/release-drafter.yml +4 -0
  10. data/.github/settings.yml +33 -0
  11. data/.github/stale.yml +29 -0
  12. data/.github/workflows/ci.yml +24 -0
  13. data/.github/workflows/codeql-analysis.yml +70 -0
  14. data/.rubocop.yml +13 -4
  15. data/.travis.yml +3 -3
  16. data/Gemfile +3 -1
  17. data/Rakefile +13 -11
  18. data/bin/jekyll-auth +8 -8
  19. data/docs/CODE_OF_CONDUCT.md +46 -0
  20. data/docs/CONTRIBUTING.md +88 -0
  21. data/docs/README.md +37 -0
  22. data/docs/SECURITY.md +3 -0
  23. data/docs/_config.yml +2 -0
  24. data/docs/configuring.md +36 -0
  25. data/docs/getting-started.md +63 -0
  26. data/docs/running-locally.md +24 -0
  27. data/docs/troubleshooting.md +31 -0
  28. data/jekyll-auth.gemspec +30 -25
  29. data/lib/jekyll-auth.rb +3 -0
  30. data/lib/jekyll_auth/auth_site.rb +2 -0
  31. data/lib/jekyll_auth/commands.rb +5 -1
  32. data/lib/jekyll_auth/config.rb +15 -8
  33. data/lib/jekyll_auth/config_error.rb +2 -0
  34. data/lib/jekyll_auth/helpers.rb +3 -0
  35. data/lib/jekyll_auth/jekyll_site.rb +4 -2
  36. data/lib/jekyll_auth/sinatra/auth/github.rb +8 -4
  37. data/lib/jekyll_auth/version.rb +3 -1
  38. data/spec/jekyll_auth_auth_site_spec.rb +2 -0
  39. data/spec/jekyll_auth_bin_spec.rb +2 -0
  40. data/spec/jekyll_auth_commands_spec.rb +2 -0
  41. data/spec/jekyll_auth_helpers_spec.rb +2 -0
  42. data/spec/jekyll_auth_jekyll_site_spec.rb +3 -1
  43. data/spec/jekyll_auth_spec.rb +2 -0
  44. data/spec/spec_helper.rb +3 -0
  45. data/templates/.gitignore +0 -1
  46. data/templates/Rakefile +3 -1
  47. data/templates/config.ru +3 -1
  48. metadata +143 -52
  49. data/README.md +0 -179
metadata CHANGED
@@ -1,99 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Balter
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-13 00:00:00.000000000 Z
11
+ date: 2022-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: jekyll
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '5'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '3.0'
29
+ version: '5'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
27
33
  - !ruby/object:Gem::Dependency
28
- name: sinatra-index
34
+ name: colorator
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0.0'
39
+ version: '1.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '0.0'
46
+ version: '1.0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: sinatra_auth_github
48
+ name: dotenv
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.1'
53
+ version: '2.0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.1'
60
+ version: '2.0'
55
61
  - !ruby/object:Gem::Dependency
56
- name: rack
62
+ name: jekyll
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.6'
67
+ version: '4.0'
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.6'
74
+ version: '4.0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: dotenv
76
+ name: mercenary
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '2.0'
81
+ version: '0.3'
76
82
  type: :runtime
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '2.0'
88
+ version: '0.3'
83
89
  - !ruby/object:Gem::Dependency
84
- name: rake
90
+ name: rack
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - "~>"
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '1.6'
96
+ - - "<"
88
97
  - !ruby/object:Gem::Version
89
- version: '10.3'
98
+ version: '3.0'
90
99
  type: :runtime
91
100
  prerelease: false
92
101
  version_requirements: !ruby/object:Gem::Requirement
93
102
  requirements:
94
- - - "~>"
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '1.6'
106
+ - - "<"
95
107
  - !ruby/object:Gem::Version
96
- version: '10.3'
108
+ version: '3.0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: rack-protection
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 1.5.5
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 1.5.5
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '3.0'
97
129
  - !ruby/object:Gem::Dependency
98
130
  name: rack-ssl-enforcer
99
131
  requirement: !ruby/object:Gem::Requirement
@@ -109,19 +141,19 @@ dependencies:
109
141
  - !ruby/object:Gem::Version
110
142
  version: '0.2'
111
143
  - !ruby/object:Gem::Dependency
112
- name: mercenary
144
+ name: rake
113
145
  requirement: !ruby/object:Gem::Requirement
114
146
  requirements:
115
147
  - - "~>"
116
148
  - !ruby/object:Gem::Version
117
- version: '0.3'
149
+ version: '13.0'
118
150
  type: :runtime
119
151
  prerelease: false
120
152
  version_requirements: !ruby/object:Gem::Requirement
121
153
  requirements:
122
154
  - - "~>"
123
155
  - !ruby/object:Gem::Version
124
- version: '0.3'
156
+ version: '13.0'
125
157
  - !ruby/object:Gem::Dependency
126
158
  name: safe_yaml
127
159
  requirement: !ruby/object:Gem::Requirement
@@ -137,33 +169,67 @@ dependencies:
137
169
  - !ruby/object:Gem::Version
138
170
  version: '1.0'
139
171
  - !ruby/object:Gem::Dependency
140
- name: colorator
172
+ name: sinatra-index
141
173
  requirement: !ruby/object:Gem::Requirement
142
174
  requirements:
143
175
  - - "~>"
144
176
  - !ruby/object:Gem::Version
145
- version: '1.0'
177
+ version: '0.0'
146
178
  type: :runtime
147
179
  prerelease: false
148
180
  version_requirements: !ruby/object:Gem::Requirement
149
181
  requirements:
150
182
  - - "~>"
151
183
  - !ruby/object:Gem::Version
152
- version: '1.0'
184
+ version: '0.0'
153
185
  - !ruby/object:Gem::Dependency
154
- name: activesupport
186
+ name: sinatra_auth_github
155
187
  requirement: !ruby/object:Gem::Requirement
156
188
  requirements:
157
- - - "~>"
189
+ - - ">="
158
190
  - !ruby/object:Gem::Version
159
- version: '4.0'
191
+ version: '1.1'
192
+ - - "<"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.0'
160
195
  type: :runtime
161
196
  prerelease: false
162
197
  version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '1.1'
202
+ - - "<"
203
+ - !ruby/object:Gem::Version
204
+ version: '3.0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: pry
207
+ requirement: !ruby/object:Gem::Requirement
163
208
  requirements:
164
209
  - - "~>"
165
210
  - !ruby/object:Gem::Version
166
- version: '4.0'
211
+ version: '0.10'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '0.10'
219
+ - !ruby/object:Gem::Dependency
220
+ name: rack-test
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: '2.0'
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: '2.0'
167
233
  - !ruby/object:Gem::Dependency
168
234
  name: rspec
169
235
  requirement: !ruby/object:Gem::Requirement
@@ -179,61 +245,67 @@ dependencies:
179
245
  - !ruby/object:Gem::Version
180
246
  version: '3.1'
181
247
  - !ruby/object:Gem::Dependency
182
- name: rack-test
248
+ name: rubocop
183
249
  requirement: !ruby/object:Gem::Requirement
184
250
  requirements:
185
251
  - - "~>"
186
252
  - !ruby/object:Gem::Version
187
- version: '0.6'
253
+ version: '0.49'
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: 0.49.0
188
257
  type: :development
189
258
  prerelease: false
190
259
  version_requirements: !ruby/object:Gem::Requirement
191
260
  requirements:
192
261
  - - "~>"
193
262
  - !ruby/object:Gem::Version
194
- version: '0.6'
263
+ version: '0.49'
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ version: 0.49.0
195
267
  - !ruby/object:Gem::Dependency
196
- name: webmock
268
+ name: rubocop-jekyll
197
269
  requirement: !ruby/object:Gem::Requirement
198
270
  requirements:
199
271
  - - "~>"
200
272
  - !ruby/object:Gem::Version
201
- version: '1.2'
273
+ version: 0.11.0
202
274
  type: :development
203
275
  prerelease: false
204
276
  version_requirements: !ruby/object:Gem::Requirement
205
277
  requirements:
206
278
  - - "~>"
207
279
  - !ruby/object:Gem::Version
208
- version: '1.2'
280
+ version: 0.11.0
209
281
  - !ruby/object:Gem::Dependency
210
- name: pry
282
+ name: rubocop-performance
211
283
  requirement: !ruby/object:Gem::Requirement
212
284
  requirements:
213
285
  - - "~>"
214
286
  - !ruby/object:Gem::Version
215
- version: '0.10'
287
+ version: '1.0'
216
288
  type: :development
217
289
  prerelease: false
218
290
  version_requirements: !ruby/object:Gem::Requirement
219
291
  requirements:
220
292
  - - "~>"
221
293
  - !ruby/object:Gem::Version
222
- version: '0.10'
294
+ version: '1.0'
223
295
  - !ruby/object:Gem::Dependency
224
- name: rubocop
296
+ name: webmock
225
297
  requirement: !ruby/object:Gem::Requirement
226
298
  requirements:
227
299
  - - "~>"
228
300
  - !ruby/object:Gem::Version
229
- version: '0.35'
301
+ version: '2.3'
230
302
  type: :development
231
303
  prerelease: false
232
304
  version_requirements: !ruby/object:Gem::Requirement
233
305
  requirements:
234
306
  - - "~>"
235
307
  - !ruby/object:Gem::Version
236
- version: '0.35'
308
+ version: '2.3'
237
309
  description: A simple way to use GitHub OAuth to serve a protected jekyll site to
238
310
  your GitHub organization.
239
311
  email: ben@balter.com
@@ -242,13 +314,33 @@ executables:
242
314
  extensions: []
243
315
  extra_rdoc_files: []
244
316
  files:
317
+ - ".github/CODEOWNERS"
318
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
319
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
320
+ - ".github/config.yml"
321
+ - ".github/dependabot.yml"
322
+ - ".github/funding.yml"
323
+ - ".github/no-response.yml"
324
+ - ".github/release-drafter.yml"
325
+ - ".github/settings.yml"
326
+ - ".github/stale.yml"
327
+ - ".github/workflows/ci.yml"
328
+ - ".github/workflows/codeql-analysis.yml"
245
329
  - ".gitignore"
246
330
  - ".rubocop.yml"
247
331
  - ".travis.yml"
248
332
  - Gemfile
249
- - README.md
250
333
  - Rakefile
251
334
  - bin/jekyll-auth
335
+ - docs/CODE_OF_CONDUCT.md
336
+ - docs/CONTRIBUTING.md
337
+ - docs/README.md
338
+ - docs/SECURITY.md
339
+ - docs/_config.yml
340
+ - docs/configuring.md
341
+ - docs/getting-started.md
342
+ - docs/running-locally.md
343
+ - docs/troubleshooting.md
252
344
  - jekyll-auth.gemspec
253
345
  - lib/jekyll-auth.rb
254
346
  - lib/jekyll_auth/auth_site.rb
@@ -281,7 +373,7 @@ homepage: https://github.com/benbalter/jekyll-auth
281
373
  licenses:
282
374
  - MIT
283
375
  metadata: {}
284
- post_install_message:
376
+ post_install_message:
285
377
  rdoc_options: []
286
378
  require_paths:
287
379
  - lib
@@ -296,9 +388,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
388
  - !ruby/object:Gem::Version
297
389
  version: '0'
298
390
  requirements: []
299
- rubyforge_project:
300
- rubygems_version: 2.6.7
301
- signing_key:
391
+ rubygems_version: 3.2.33
392
+ signing_key:
302
393
  specification_version: 4
303
394
  summary: A simple way to use GitHub OAuth to serve a protected jekyll site to your
304
395
  GitHub organization
data/README.md DELETED
@@ -1,179 +0,0 @@
1
- # Jekyll Auth
2
-
3
- *A simple way to use GitHub OAuth to serve a protected Jekyll site to your GitHub organization*
4
-
5
- [![Gem Version](https://badge.fury.io/rb/jekyll-auth.png)](http://badge.fury.io/rb/jekyll-auth) [![Build Status](https://travis-ci.org/benbalter/jekyll-auth.png?branch=master)](https://travis-ci.org/benbalter/jekyll-auth)
6
-
7
- ## The problem
8
-
9
- [Jekyll](http://github.com/mojombo/jekyll) and [GitHub Pages](http://pages.github.com) are awesome, right? Static site, lightning fast, everything versioned in Git. What else could you ask for?
10
-
11
- But what if you only want to share that site with a select number of people? Before, you were SOL. Now, simply host the site on a free, [Heroku](http://heroku.com) Dyno, and whenever someone tries to access it, it will Oauth them against GitHub, and make sure they're a member of your Organization. Pretty cool, huh?
12
-
13
- ## Requirements
14
-
15
- 1. A GitHub account (one per user)
16
- 2. A GitHub Organization (of which members will have access to the Jekyll site)
17
- 3. A GitHub Application (you can [register one](https://github.com/settings/applications/new) for free)
18
- 4. A Heroku account (you can technically use this elsewhere, but the instructions are for Heroku)
19
-
20
- ## Getting Started
21
-
22
- ### Create a GitHub Application
23
-
24
- 1. Navigate to [the GitHub app registration page](https://github.com/settings/applications/new)
25
- 2. Give your app a name
26
- 3. Tell GitHub the URL you want the app to eventually live at. If using a free Heroku account, this will be something like <http://my-site.herokuapp.com>
27
- 4. Specify the callback URL; should be like this: <https://my-site.herokuapp.com/auth/github/callback>; note that this is **https**, not http.
28
- 5. Hit Save, but leave the page open, you'll need some of the information in a moment
29
-
30
- Remember the 'my-site' part for later on when using `heroku create`. Also, my-site is often called 'app-name' in Heroku documentation.
31
-
32
- ### Add Jekyll Auth to your site
33
-
34
- 1. Within your new site repository or orphaned github [branch](https://help.github.com/articles/creating-project-pages-manually/) (the branch could be named anything except 'gh-pages' since this would then be public on GitHub!), add `gem 'jekyll-auth'` to your `Gemfile` or if you don't already have a `Gemfile`, create a file called `Gemfile` in the root of your site's repository with the following content:
35
-
36
- ```ruby
37
- source "https://rubygems.org"
38
-
39
- gem 'jekyll-auth'
40
- ```
41
-
42
- 2. `cd` into your project's directory and run `bundle install`. If you get an error using `bundle install`, see Troubleshooting below.
43
-
44
- 3. Run `bundle exec jekyll-auth new` which will copy the necessary files to set up the server
45
-
46
- ### Setting up hosting with Heroku
47
-
48
- #### Automatically
49
-
50
- Run `bundle exec jekyll-auth setup --client_id XXX --client_secret XXX --org_name XXX`
51
-
52
- (or `--team_id XXX`)
53
-
54
- #### Manually
55
-
56
- 1. You may need to add and commit the files generated by `jekyll-auth new` to Git before continuing
57
- 2. Make sure you have [the Heroku toolbelt](https://toolbelt.heroku.com/) installed
58
- 3. Run `heroku create my-site` from your site's directory; make sure my-site matches what you specified in the GitHub application registration above.
59
- 4. `heroku config:set GITHUB_CLIENT_ID=XXX GITHUB_CLIENT_SECRET=XXX GITHUB_ORG_NAME=XXX` (or `GITHUB_TEAM_ID`)
60
- 5. `git push heroku`, or if you are maintaining the site in an orphaned branch of your GitHub repo (say 'heroku-pages'), do `git push heroku heroku-pages:master`
61
- 6. `heroku open` to open the site in your browser
62
-
63
- #### Find the Organization ID (needed to find Team ID)
64
-
65
- If you need to find an organization's ID, you can use the following cURL command:
66
-
67
- ```
68
- curl https://api.github.com/orgs/{org_name}
69
- ```
70
-
71
- #### Finding the Team ID
72
-
73
- If you need help finding a team's numeric ID, you can use the `jekyll-auth team_id` command.
74
-
75
- For example, to find the team ID for @jekyll/maintainers you'd run the command:
76
-
77
- ```
78
- jekyll-auth team_id --org jekyll --team maintainers
79
- ```
80
-
81
- You'll want to add a [personal access token](https://github.com/settings/tokens/new) to your `.env` file so that Jekyll-Auth can make the necessary API request, but the command will run you through the process if you do not provide this.
82
-
83
- ## Configuration
84
-
85
- ### Whitelisting
86
-
87
- Don't want to require authentication for every part of your site? Fine! Add a whitelist to your Jekyll's **config.yml** file:
88
-
89
- ```yaml
90
- jekyll_auth:
91
- whitelist:
92
- - drafts?
93
- ```
94
-
95
- `jekyll_auth.whitelist` takes an array of regular expressions as strings. The default auth behavior checks (and blocks) against root (`/`). Any path defined in the whitelist won't require authentication on your site.
96
-
97
- What if you want to go the other way, and unauthenticate the entire site *except* for certain portions? You can define some regex magic for that:
98
-
99
- ```yaml
100
- jekyll_auth:
101
- whitelist:
102
- - "^((?!draft).)*$"
103
- ```
104
-
105
- There is also a more [extensive article containing installation instructions for Jekyll-Auth](http://fabian-kostadinov.github.io/2014/11/13/installation-of-jekyll-auth/) and a second one on [how to find your GitHub team ID](http://fabian-kostadinov.github.io/2015/01/16/how-to-find-a-github-team-id/).
106
-
107
- ### Requiring SSL
108
-
109
- If [you've got SSL set up](https://devcenter.heroku.com/articles/ssl-endpoint), simply add the following your your `_config.yml` file to ensure SSL is enforced.
110
-
111
- ```yaml
112
- jekyll_auth:
113
- ssl: true
114
- ```
115
-
116
- ### Using a custom 404
117
-
118
- Just like GitHub Pages, Jekyll Auth will honor a custom 404 page, if it's generated as `/404.html` in the built site.
119
-
120
- ## Running locally
121
-
122
- Want to run it locally?
123
-
124
- ### Without authentication
125
-
126
- Just run `jekyll serve` as you would normally.
127
-
128
- ### With authentication
129
-
130
- 1. `export GITHUB_CLIENT_ID=[your github app client id]`
131
- 2. `export GITHUB_CLIENT_SECRET=[your github app client secret]`
132
- 3. `export GITHUB_ORG_NAME=[org name]` or `export GITHUB_TEAM_ID=[team id]` or `export GITHUB_TEAM_IDS=1234,5678`
133
- 4. `jekyll-auth serve`
134
-
135
- *Pro-tip #1:* For sanity's sake, and to avoid problems with your callback URL, you may want to have two apps, one with a local Oauth callback, and one for production if you're going to be testing auth locally.
136
-
137
- *Pro-tip #2*: Jekyll Auth supports [dotenv](https://github.com/bkeepers/dotenv) out of the box. You can create a `.env` file in the root of site and add your configuration variables there. It's ignored by `.gitignore` if you use `jekyll-auth new`, but be sure not to accidentally commit your `.env` file. Here's what your `.env` file might look like:
138
-
139
- ```
140
- GITHUB_CLIENT_SECRET=abcdefghijklmnopqrstuvwxyz0123456789
141
- GITHUB_CLIENT_ID=qwertyuiop0001
142
- GITHUB_TEAM_ID=12345
143
- ```
144
-
145
- ## Under the hood
146
-
147
- Every time you push to Heroku, we take advantage of the fact that Heroku automatically runs the `rake assets:precompile` command (normally used for Rails sites) to build our Jekyll site and store it statically, just like GitHub pages would.
148
-
149
- Anytime a request comes in for a page, we run it through [Sinatra](http://www.sinatrarb.com/) (using the `_site` folder as the static file folder, just as `public` would be normally), and authenticate it using [sinatra\_auth\_github](https://github.com/atmos/sinatra_auth_github).
150
-
151
- If they're in the org, they get the page. Otherwise, all they ever get is [the bouncer](http://octodex.github.com/bouncer/).
152
-
153
- ## Upgrading from Jekyll Auth &lt; 0.1.0
154
-
155
- 1. `cd` to your project directory
156
- 2. `rm config.ru`
157
- 3. `rm Procfile`
158
- 4. Remove any Jekyll Auth specific requirements from your `Gemfile`
159
- 5. Follow [the instructions above](https://github.com/benbalter/jekyll-auth#add-jekyll-auth-to-your-site) to get started
160
- 6. When prompted, select "n" if Heroku is already set up
161
-
162
- ## Troubleshooting
163
-
164
- * **ERROR: YOUR SITE COULD NOT BE BUILT** during install, either locally or on Heroku. You likely need to add `exclude: [vendor]` to `_config.yml` in your branch's root directory (create the file if it does not exist already). If you still have problems on the *local* install, you may have better luck using `bundle install --deployment`, but be sure to add the resulting 'vendor' directory to .gitignore. For completeness, the full error may look something like this:
165
-
166
-
167
- ```
168
- remote: Configuration file: none
169
- remote: ERROR: YOUR SITE COULD NOT BE BUILT:
170
- remote: ------------------------------------
171
- remote: Invalid date '0000-00-00': Post '/vendor/bundle/ruby/2.0.0/gems/jekyll-2.5.3/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb' does not have a valid date in the filename.
172
- ```
173
-
174
- * **Pushing to heroku**. If you are working from a new GitHub-cloned repo (where you have not run `heroku create`), you may also want to push to Heroku. Instead of adding the remote in the standard way with Git, do this:
175
-
176
-
177
- ```
178
- heroku git:remote -a my-site
179
- ```