jekyll-auth 1.0.2 → 2.1.2
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.
- checksums.yaml +5 -5
- data/.github/CODEOWNERS +3 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- data/.github/config.yml +23 -0
- data/.github/funding.yml +1 -0
- data/.github/no-response.yml +15 -0
- data/.github/release-drafter.yml +4 -0
- data/.github/settings.yml +33 -0
- data/.github/stale.yml +29 -0
- data/.rubocop.yml +28 -0
- data/.travis.yml +5 -1
- data/Gemfile +2 -0
- data/Rakefile +9 -7
- data/bin/jekyll-auth +36 -36
- data/docs/CODE_OF_CONDUCT.md +46 -0
- data/docs/CONTRIBUTING.md +88 -0
- data/docs/README.md +33 -0
- data/docs/SECURITY.md +3 -0
- data/docs/_config.yml +2 -0
- data/docs/configuring.md +36 -0
- data/docs/getting-started.md +63 -0
- data/docs/running-locally.md +24 -0
- data/docs/troubleshooting.md +31 -0
- data/jekyll-auth.gemspec +22 -15
- data/lib/jekyll-auth.rb +16 -13
- data/lib/jekyll_auth/auth_site.rb +12 -15
- data/lib/jekyll_auth/commands.rb +12 -9
- data/lib/jekyll_auth/config.rb +15 -8
- data/lib/jekyll_auth/config_error.rb +3 -2
- data/lib/jekyll_auth/helpers.rb +6 -3
- data/lib/jekyll_auth/jekyll_site.rb +6 -5
- data/lib/jekyll_auth/sinatra/auth/github.rb +8 -4
- data/lib/jekyll_auth/version.rb +3 -1
- data/script/cibuild +5 -0
- data/spec/jekyll_auth_auth_site_spec.rb +17 -17
- data/spec/jekyll_auth_bin_spec.rb +12 -11
- data/spec/jekyll_auth_commands_spec.rb +6 -5
- data/spec/jekyll_auth_helpers_spec.rb +5 -4
- data/spec/jekyll_auth_jekyll_site_spec.rb +2 -1
- data/spec/jekyll_auth_spec.rb +5 -4
- data/spec/spec_helper.rb +14 -9
- data/templates/.gitignore +0 -1
- data/templates/Rakefile +2 -0
- data/templates/config.ru +2 -0
- metadata +150 -45
- data/README.md +0 -149
metadata
CHANGED
@@ -1,99 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 2.1.2
|
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:
|
11
|
+
date: 2021-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '7'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '5'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '7'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: colorator
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
16
36
|
requirements:
|
17
37
|
- - "~>"
|
18
38
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
39
|
+
version: '1.0'
|
20
40
|
type: :runtime
|
21
41
|
prerelease: false
|
22
42
|
version_requirements: !ruby/object:Gem::Requirement
|
23
43
|
requirements:
|
24
44
|
- - "~>"
|
25
45
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
46
|
+
version: '1.0'
|
27
47
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
48
|
+
name: dotenv
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
51
|
- - "~>"
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
53
|
+
version: '2.0'
|
34
54
|
type: :runtime
|
35
55
|
prerelease: false
|
36
56
|
version_requirements: !ruby/object:Gem::Requirement
|
37
57
|
requirements:
|
38
58
|
- - "~>"
|
39
59
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
60
|
+
version: '2.0'
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
62
|
+
name: jekyll
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
44
64
|
requirements:
|
45
65
|
- - "~>"
|
46
66
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
67
|
+
version: '4.0'
|
48
68
|
type: :runtime
|
49
69
|
prerelease: false
|
50
70
|
version_requirements: !ruby/object:Gem::Requirement
|
51
71
|
requirements:
|
52
72
|
- - "~>"
|
53
73
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
74
|
+
version: '4.0'
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
76
|
+
name: mercenary
|
57
77
|
requirement: !ruby/object:Gem::Requirement
|
58
78
|
requirements:
|
59
|
-
- -
|
79
|
+
- - "~>"
|
60
80
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
81
|
+
version: '0.3'
|
62
82
|
type: :runtime
|
63
83
|
prerelease: false
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
|
-
- -
|
86
|
+
- - "~>"
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
88
|
+
version: '0.3'
|
69
89
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
90
|
+
name: rack
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
72
92
|
requirements:
|
73
93
|
- - "~>"
|
74
94
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1.
|
95
|
+
version: '1.6'
|
76
96
|
type: :runtime
|
77
97
|
prerelease: false
|
78
98
|
version_requirements: !ruby/object:Gem::Requirement
|
79
99
|
requirements:
|
80
100
|
- - "~>"
|
81
101
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1.
|
102
|
+
version: '1.6'
|
83
103
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
104
|
+
name: rack-protection
|
85
105
|
requirement: !ruby/object:Gem::Requirement
|
86
106
|
requirements:
|
87
107
|
- - "~>"
|
88
108
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
109
|
+
version: '1.5'
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 1.5.5
|
90
113
|
type: :runtime
|
91
114
|
prerelease: false
|
92
115
|
version_requirements: !ruby/object:Gem::Requirement
|
93
116
|
requirements:
|
94
117
|
- - "~>"
|
95
118
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
119
|
+
version: '1.5'
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 1.5.5
|
97
123
|
- !ruby/object:Gem::Dependency
|
98
124
|
name: rack-ssl-enforcer
|
99
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,19 +135,19 @@ dependencies:
|
|
109
135
|
- !ruby/object:Gem::Version
|
110
136
|
version: '0.2'
|
111
137
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
138
|
+
name: rake
|
113
139
|
requirement: !ruby/object:Gem::Requirement
|
114
140
|
requirements:
|
115
141
|
- - "~>"
|
116
142
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0
|
143
|
+
version: '13.0'
|
118
144
|
type: :runtime
|
119
145
|
prerelease: false
|
120
146
|
version_requirements: !ruby/object:Gem::Requirement
|
121
147
|
requirements:
|
122
148
|
- - "~>"
|
123
149
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0
|
150
|
+
version: '13.0'
|
125
151
|
- !ruby/object:Gem::Dependency
|
126
152
|
name: safe_yaml
|
127
153
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,33 +163,47 @@ dependencies:
|
|
137
163
|
- !ruby/object:Gem::Version
|
138
164
|
version: '1.0'
|
139
165
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
166
|
+
name: sinatra-index
|
141
167
|
requirement: !ruby/object:Gem::Requirement
|
142
168
|
requirements:
|
143
169
|
- - "~>"
|
144
170
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
171
|
+
version: '0.0'
|
146
172
|
type: :runtime
|
147
173
|
prerelease: false
|
148
174
|
version_requirements: !ruby/object:Gem::Requirement
|
149
175
|
requirements:
|
150
176
|
- - "~>"
|
151
177
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
178
|
+
version: '0.0'
|
153
179
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
180
|
+
name: sinatra_auth_github
|
155
181
|
requirement: !ruby/object:Gem::Requirement
|
156
182
|
requirements:
|
157
183
|
- - "~>"
|
158
184
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
185
|
+
version: '1.1'
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '1.1'
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: pry
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0.10'
|
160
200
|
type: :development
|
161
201
|
prerelease: false
|
162
202
|
version_requirements: !ruby/object:Gem::Requirement
|
163
203
|
requirements:
|
164
204
|
- - "~>"
|
165
205
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
206
|
+
version: '0.10'
|
167
207
|
- !ruby/object:Gem::Dependency
|
168
208
|
name: rack-test
|
169
209
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,34 +219,82 @@ dependencies:
|
|
179
219
|
- !ruby/object:Gem::Version
|
180
220
|
version: '0.6'
|
181
221
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
222
|
+
name: rspec
|
183
223
|
requirement: !ruby/object:Gem::Requirement
|
184
224
|
requirements:
|
185
225
|
- - "~>"
|
186
226
|
- !ruby/object:Gem::Version
|
187
|
-
version: '1
|
227
|
+
version: '3.1'
|
188
228
|
type: :development
|
189
229
|
prerelease: false
|
190
230
|
version_requirements: !ruby/object:Gem::Requirement
|
191
231
|
requirements:
|
192
232
|
- - "~>"
|
193
233
|
- !ruby/object:Gem::Version
|
194
|
-
version: '1
|
234
|
+
version: '3.1'
|
195
235
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
236
|
+
name: rubocop
|
197
237
|
requirement: !ruby/object:Gem::Requirement
|
198
238
|
requirements:
|
199
239
|
- - "~>"
|
200
240
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0.
|
241
|
+
version: '0.49'
|
242
|
+
- - ">="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: 0.49.0
|
202
245
|
type: :development
|
203
246
|
prerelease: false
|
204
247
|
version_requirements: !ruby/object:Gem::Requirement
|
205
248
|
requirements:
|
206
249
|
- - "~>"
|
207
250
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0.
|
209
|
-
|
251
|
+
version: '0.49'
|
252
|
+
- - ">="
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: 0.49.0
|
255
|
+
- !ruby/object:Gem::Dependency
|
256
|
+
name: rubocop-jekyll
|
257
|
+
requirement: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - "~>"
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: 0.11.0
|
262
|
+
type: :development
|
263
|
+
prerelease: false
|
264
|
+
version_requirements: !ruby/object:Gem::Requirement
|
265
|
+
requirements:
|
266
|
+
- - "~>"
|
267
|
+
- !ruby/object:Gem::Version
|
268
|
+
version: 0.11.0
|
269
|
+
- !ruby/object:Gem::Dependency
|
270
|
+
name: rubocop-performance
|
271
|
+
requirement: !ruby/object:Gem::Requirement
|
272
|
+
requirements:
|
273
|
+
- - "~>"
|
274
|
+
- !ruby/object:Gem::Version
|
275
|
+
version: '1.0'
|
276
|
+
type: :development
|
277
|
+
prerelease: false
|
278
|
+
version_requirements: !ruby/object:Gem::Requirement
|
279
|
+
requirements:
|
280
|
+
- - "~>"
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '1.0'
|
283
|
+
- !ruby/object:Gem::Dependency
|
284
|
+
name: webmock
|
285
|
+
requirement: !ruby/object:Gem::Requirement
|
286
|
+
requirements:
|
287
|
+
- - "~>"
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: '2.3'
|
290
|
+
type: :development
|
291
|
+
prerelease: false
|
292
|
+
version_requirements: !ruby/object:Gem::Requirement
|
293
|
+
requirements:
|
294
|
+
- - "~>"
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
version: '2.3'
|
297
|
+
description: A simple way to use GitHub OAuth to serve a protected jekyll site to
|
210
298
|
your GitHub organization.
|
211
299
|
email: ben@balter.com
|
212
300
|
executables:
|
@@ -214,12 +302,30 @@ executables:
|
|
214
302
|
extensions: []
|
215
303
|
extra_rdoc_files: []
|
216
304
|
files:
|
305
|
+
- ".github/CODEOWNERS"
|
306
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
307
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
308
|
+
- ".github/config.yml"
|
309
|
+
- ".github/funding.yml"
|
310
|
+
- ".github/no-response.yml"
|
311
|
+
- ".github/release-drafter.yml"
|
312
|
+
- ".github/settings.yml"
|
313
|
+
- ".github/stale.yml"
|
217
314
|
- ".gitignore"
|
315
|
+
- ".rubocop.yml"
|
218
316
|
- ".travis.yml"
|
219
317
|
- Gemfile
|
220
|
-
- README.md
|
221
318
|
- Rakefile
|
222
319
|
- bin/jekyll-auth
|
320
|
+
- docs/CODE_OF_CONDUCT.md
|
321
|
+
- docs/CONTRIBUTING.md
|
322
|
+
- docs/README.md
|
323
|
+
- docs/SECURITY.md
|
324
|
+
- docs/_config.yml
|
325
|
+
- docs/configuring.md
|
326
|
+
- docs/getting-started.md
|
327
|
+
- docs/running-locally.md
|
328
|
+
- docs/troubleshooting.md
|
223
329
|
- jekyll-auth.gemspec
|
224
330
|
- lib/jekyll-auth.rb
|
225
331
|
- lib/jekyll_auth/auth_site.rb
|
@@ -252,7 +358,7 @@ homepage: https://github.com/benbalter/jekyll-auth
|
|
252
358
|
licenses:
|
253
359
|
- MIT
|
254
360
|
metadata: {}
|
255
|
-
post_install_message:
|
361
|
+
post_install_message:
|
256
362
|
rdoc_options: []
|
257
363
|
require_paths:
|
258
364
|
- lib
|
@@ -267,11 +373,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
373
|
- !ruby/object:Gem::Version
|
268
374
|
version: '0'
|
269
375
|
requirements: []
|
270
|
-
|
271
|
-
|
272
|
-
signing_key:
|
376
|
+
rubygems_version: 3.2.15
|
377
|
+
signing_key:
|
273
378
|
specification_version: 4
|
274
|
-
summary: A simple way to use
|
379
|
+
summary: A simple way to use GitHub OAuth to serve a protected jekyll site to your
|
275
380
|
GitHub organization
|
276
381
|
test_files:
|
277
382
|
- spec/jekyll_auth_auth_site_spec.rb
|
data/README.md
DELETED
@@ -1,149 +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
|
-
[](http://badge.fury.io/rb/jekyll-auth) [](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
|
27
|
-
4. Hit Save, but leave the page open, you'll need some of the information in a moment
|
28
|
-
|
29
|
-
### Add Jekyll Auth to your site
|
30
|
-
|
31
|
-
1. 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:
|
32
|
-
|
33
|
-
```ruby
|
34
|
-
source "https://rubygems.org"
|
35
|
-
|
36
|
-
gem 'jekyll-auth'
|
37
|
-
```
|
38
|
-
|
39
|
-
2. `cd` into your project's directory and run `bundle install`.
|
40
|
-
|
41
|
-
3. Run `bundle exec jekyll-auth new` which will copy the necessary files to set up the server
|
42
|
-
|
43
|
-
### Setting up hosting with Heroku
|
44
|
-
|
45
|
-
#### Automatically
|
46
|
-
|
47
|
-
Run `bundle exec jekyll-auth --client_id XXX --client_secret XXX --org_id XXX`
|
48
|
-
|
49
|
-
(or `--team_id XXX`)
|
50
|
-
|
51
|
-
#### Manually
|
52
|
-
|
53
|
-
1. You may need to add and commit the files generated by `jekyll-auth new` to Git before continuing
|
54
|
-
2. Make sure you have [the Heroku toolbelt](https://toolbelt.heroku.com/) installed
|
55
|
-
3. Run `herkou create` from your site's directory
|
56
|
-
4. `heroku config:set GITHUB_CLIENT_ID=XXX GITHUB_CLIENT_SECRET=XXX GITHUB_ORG_ID=XXX` (or `GITHUB_TEAM_ID`)
|
57
|
-
5. `git push heroku`
|
58
|
-
6. `heroku open` to open the site in your browser
|
59
|
-
|
60
|
-
#### Finding the team ID
|
61
|
-
|
62
|
-
If you need help finding a team's numeric ID, you can use the `jekyll-auth team_id` command.
|
63
|
-
|
64
|
-
For example, to find the team ID for @jekyll/maintainers you'd run the command:
|
65
|
-
|
66
|
-
```
|
67
|
-
jekyll-auth team_id --org jekyll --team maintainers
|
68
|
-
```
|
69
|
-
|
70
|
-
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 dont.
|
71
|
-
|
72
|
-
## Configuration
|
73
|
-
|
74
|
-
### Whitelisting
|
75
|
-
|
76
|
-
Don't want to require authentication for every part of your site? Fine! Add a whitelist to your Jekyll's *_config.yml_* file:
|
77
|
-
|
78
|
-
```yaml
|
79
|
-
jekyll_auth:
|
80
|
-
whitelist:
|
81
|
-
- drafts?
|
82
|
-
```
|
83
|
-
|
84
|
-
`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.
|
85
|
-
|
86
|
-
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:
|
87
|
-
|
88
|
-
```yaml
|
89
|
-
jekyll_auth:
|
90
|
-
whitelist:
|
91
|
-
- "^((?!draft).)*$"
|
92
|
-
```
|
93
|
-
|
94
|
-
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/).
|
95
|
-
|
96
|
-
### Requiring SSL
|
97
|
-
|
98
|
-
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.
|
99
|
-
|
100
|
-
```yaml
|
101
|
-
jekyll_auth:
|
102
|
-
ssl: true
|
103
|
-
```
|
104
|
-
|
105
|
-
### Using a custom 404
|
106
|
-
|
107
|
-
Just like GitHub Pages, Jekyll Auth will honor a custom 404 page, if it's generated as `/404.html` in the built site.
|
108
|
-
|
109
|
-
## Running locally
|
110
|
-
|
111
|
-
Want to run it locally?
|
112
|
-
|
113
|
-
### Without authentication
|
114
|
-
|
115
|
-
Just run `jekyll serve` as you would normally
|
116
|
-
|
117
|
-
### With authentication
|
118
|
-
|
119
|
-
1. `export GITHUB_CLIENT_ID=[your github app client id]`
|
120
|
-
2. `export GITHUB_CLIENT_SECRET=[your github app client secret]`
|
121
|
-
3. `export GITHUB_ORG_ID=[org id]` or `export GITHUB_TEAM_ID=[team id]` or `export GITHUB_TEAM_IDS=1234,5678`
|
122
|
-
4. `jekyll-auth serve`
|
123
|
-
|
124
|
-
*Pro-tip #1:* For sanity 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.
|
125
|
-
|
126
|
-
*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:
|
127
|
-
|
128
|
-
```
|
129
|
-
GITHUB_CLIENT_SECRET=abcdefghijklmnopqrstuvwxyz0123456789
|
130
|
-
GITHUB_CLIENT_ID=qwertyuiop0001
|
131
|
-
GITHUB_TEAM_ID=12345
|
132
|
-
```
|
133
|
-
|
134
|
-
## Under the hood
|
135
|
-
|
136
|
-
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.
|
137
|
-
|
138
|
-
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).
|
139
|
-
|
140
|
-
If they're in the org, they get the page. Otherwise, all they ever get is [the bouncer](http://octodex.github.com/bouncer/).
|
141
|
-
|
142
|
-
## Upgrading from Jekyll Auth < 0.1.0
|
143
|
-
|
144
|
-
1. `cd` to your project directory
|
145
|
-
2. `rm config.ru`
|
146
|
-
3. `rm Procfile`
|
147
|
-
4. Remove any Jekyll Auth specific requirements from your `Gemfile`
|
148
|
-
5. Follow [the instructions above](https://github.com/benbalter/jekyll-auth#add-jekyll-auth-to-your-site) to get started
|
149
|
-
6. When prompted, select "n" if Heroku is already set up
|