gemstash 2.2.2 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gemstash/gem_source/upstream_source.rb +15 -0
- data/lib/gemstash/logging.rb +9 -2
- data/lib/gemstash/man/gemstash-authorize.1 +1 -1
- data/lib/gemstash/man/gemstash-authorize.1.txt +11 -15
- data/lib/gemstash/man/gemstash-configuration.5 +1 -1
- data/lib/gemstash/man/gemstash-configuration.5.txt +15 -19
- data/lib/gemstash/man/gemstash-customize.7 +1 -1
- data/lib/gemstash/man/gemstash-customize.7.txt +26 -30
- data/lib/gemstash/man/gemstash-debugging.7 +1 -1
- data/lib/gemstash/man/gemstash-debugging.7.txt +5 -9
- data/lib/gemstash/man/gemstash-deploy.7 +1 -1
- data/lib/gemstash/man/gemstash-deploy.7.txt +2 -6
- data/lib/gemstash/man/gemstash-mirror.7 +1 -1
- data/lib/gemstash/man/gemstash-mirror.7.txt +3 -7
- data/lib/gemstash/man/gemstash-multiple-sources.7 +1 -1
- data/lib/gemstash/man/gemstash-multiple-sources.7.txt +8 -12
- data/lib/gemstash/man/gemstash-private-gems.7 +1 -1
- data/lib/gemstash/man/gemstash-private-gems.7.txt +18 -22
- data/lib/gemstash/man/gemstash-readme.7 +1 -1
- data/lib/gemstash/man/gemstash-readme.7.txt +9 -13
- data/lib/gemstash/man/gemstash-setup.1 +1 -1
- data/lib/gemstash/man/gemstash-setup.1.txt +2 -6
- data/lib/gemstash/man/gemstash-start.1 +1 -1
- data/lib/gemstash/man/gemstash-start.1.txt +2 -6
- data/lib/gemstash/man/gemstash-status.1 +1 -1
- data/lib/gemstash/man/gemstash-status.1.txt +2 -6
- data/lib/gemstash/man/gemstash-stop.1 +1 -1
- data/lib/gemstash/man/gemstash-stop.1.txt +2 -6
- data/lib/gemstash/man/gemstash-version.1 +1 -1
- data/lib/gemstash/man/gemstash-version.1.txt +2 -6
- data/lib/gemstash/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee387f961929db690c98fc386db4790b340525eed0fc2980045ae7cd10f14914
|
4
|
+
data.tar.gz: e078fa40c9feed18e13f734186c4ca8c3b9acf1af3a5c3302ff83e4d2fc9a91e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86d24732e38c099ab656ddead6a78b68916e019a9ebaf9b491e3d73fded2e8ae72a6f50a28b51a4f0bf64e41993ba5373e42761a648e14d6d42af6f263a3f8aa
|
7
|
+
data.tar.gz: 2fe72a7b46d0d7bd37265738798e5eb4d2cb6358aa92a292be7c8561db10216b3b13e55bb7bca6e49b379f4fd5efff39e71b107e7a0d29197291f82d3e84998b
|
@@ -128,6 +128,21 @@ module Gemstash
|
|
128
128
|
serve_cached(id, :gem)
|
129
129
|
end
|
130
130
|
|
131
|
+
def serve_latest_specs
|
132
|
+
http_client = http_client_for(upstream)
|
133
|
+
http_client.get("latest_specs.4.8.gz")
|
134
|
+
end
|
135
|
+
|
136
|
+
def serve_prerelease_specs
|
137
|
+
http_client = http_client_for(upstream)
|
138
|
+
http_client.get("prerelease_specs.4.8.gz")
|
139
|
+
end
|
140
|
+
|
141
|
+
def serve_specs
|
142
|
+
http_client = http_client_for(upstream)
|
143
|
+
http_client.get("specs.4.8.gz")
|
144
|
+
end
|
145
|
+
|
131
146
|
private
|
132
147
|
|
133
148
|
def serve_cached(id, resource_type)
|
data/lib/gemstash/logging.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "logger"
|
4
|
-
|
4
|
+
|
5
|
+
begin
|
6
|
+
require "puma/log_writer" # Puma 6
|
7
|
+
rescue LoadError
|
8
|
+
require "puma/events"
|
9
|
+
end
|
5
10
|
|
6
11
|
module Gemstash
|
7
12
|
# :nodoc:
|
@@ -62,7 +67,9 @@ module Gemstash
|
|
62
67
|
# Logger that looks like a stream, for Puma and Rack to log to.
|
63
68
|
class StreamLogger
|
64
69
|
def self.puma_events
|
65
|
-
Puma
|
70
|
+
# Puma 6 removed logging from Events and placed it in LogWriter
|
71
|
+
klass = Puma.const_defined?(:LogWriter) ? Puma::LogWriter : Puma::Events
|
72
|
+
klass.new(for_stdout, for_stderr)
|
66
73
|
end
|
67
74
|
|
68
75
|
def self.for_stdout
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-authorize24m(1) 4mgemstash-authorize24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -27,22 +25,20 @@ gemstash-authorize(1) gemstash-authorize(1)
|
|
27
25
|
gemstash authorize --remove --key <secure-key>
|
28
26
|
|
29
27
|
1mOptions0m
|
30
|
-
o 1m--config-file
|
31
|
-
using
|
32
|
-
1mstash/config.yml.erb22m,
|
28
|
+
o 1m--config-file FILE22m: Specify the config file to use. If you aren't
|
29
|
+
using the default config file at 1m~/.gemstash/config.yml 22mor 1m~/.gem-0m
|
30
|
+
1mstash/config.yml.erb22m, then you must specify the config file via this
|
33
31
|
option.
|
34
32
|
|
35
|
-
o 1m--key
|
36
|
-
actual
|
37
|
-
1m--remove
|
38
|
-
ing
|
39
|
-
fied
|
33
|
+
o 1m--key SECURE_KEY22m: Specify the API key to affect. This should be the
|
34
|
+
actual key value, not a name. This option is required when using
|
35
|
+
1m--remove 22mbut is optional otherwise. If adding an authorization, us-
|
36
|
+
ing this will either create or update the permissions for the speci-
|
37
|
+
fied API key. If missing, a new API key will always be generated.
|
40
38
|
Note that a key can only have a maximum length of 255 chars.
|
41
39
|
|
42
|
-
o 1m--remove22m:
|
40
|
+
o 1m--remove22m: Remove an authorization rather than add or update one.
|
43
41
|
When removing, permission values are not allowed. The 1m--key <secure-0m
|
44
42
|
1mkey> 22moption is required.
|
45
43
|
|
46
|
-
|
47
|
-
|
48
|
-
October 9, 2015 gemstash-authorize(1)
|
44
|
+
October 9, 2015 4mgemstash-authorize24m(1)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-configuration24m(5) 4mgemstash-configuration24m(5)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -33,7 +31,7 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
33
31
|
files, and the database (when using SQLite). If the default is being
|
34
32
|
used, the directory will be created if it does not exist. Any other
|
35
33
|
directory needs to be created ahead of time and be writable to the Gem-
|
36
|
-
stash
|
34
|
+
stash server process. Specifying the 1m:base_path 22mvia 1mgemstash setup0m
|
37
35
|
will create the directory for you.
|
38
36
|
|
39
37
|
1mDefault value0m
|
@@ -45,9 +43,9 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
45
43
|
1mCache Type0m
|
46
44
|
1m:cache_type0m
|
47
45
|
|
48
|
-
Specifies
|
49
|
-
dencies).
|
50
|
-
point
|
46
|
+
Specifies how to cache values other than gem files (such as gem depen-
|
47
|
+
dencies). 1mmemory 22mwill use an in memory cache while 1mmemcached 22mwill
|
48
|
+
point to 1 or more Memcached servers. Use the 1m:memcached_servers 22mcon-
|
51
49
|
figuration key for specifying where the Memcached server(s) are.
|
52
50
|
|
53
51
|
1mDefault value0m
|
@@ -59,7 +57,7 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
59
57
|
1mMemcached Servers0m
|
60
58
|
1m:memcached_servers0m
|
61
59
|
|
62
|
-
Specifies
|
60
|
+
Specifies the Memcached servers to connect to when using 1mmemcached 22mfor
|
63
61
|
the 1m:cache_type22m. Only used when 1mmemcached 22mis used for 1m:cache_type22m.
|
64
62
|
|
65
63
|
1mDefault value0m
|
@@ -71,9 +69,9 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
71
69
|
1mDB Adapter0m
|
72
70
|
1m:db_adapter0m
|
73
71
|
|
74
|
-
Specifies
|
75
|
-
database
|
76
|
-
by
|
72
|
+
Specifies what database adapter to use. When 1msqlite3 22mis used, the
|
73
|
+
database will be located at 1mgemstash.db 22mwithin the directory specified
|
74
|
+
by 1m:base_path22m. The database will automatically be created when using
|
77
75
|
1msqlite322m. When 1mpostgres22m, 1mmysql22m, or 1mmysql2 22mis used, the database to con-
|
78
76
|
nect to must be specified in the 1m:db_url 22mconfiguration key. The data-
|
79
77
|
base must already be created when using anything other than 1msqlite322m.
|
@@ -117,9 +115,9 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
117
115
|
1mRubygems URL0m
|
118
116
|
1m:rubygems_url0m
|
119
117
|
|
120
|
-
Specifies
|
121
|
-
without
|
122
|
-
fetch
|
118
|
+
Specifies the default gem source URL. When any API endpoint is called
|
119
|
+
without a 1m/private 22mor 1m/upstream/<url> 22mprefix, this URL will be used to
|
120
|
+
fetch the result. This value can be safely changed even if there are
|
123
121
|
already gems stashed for the previous value.
|
124
122
|
|
125
123
|
1mDefault value0m
|
@@ -131,7 +129,7 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
131
129
|
1mIgnore Gemfile source0m
|
132
130
|
1m:ignore_gemfile_source0m
|
133
131
|
|
134
|
-
Ignore
|
132
|
+
Ignore the source specified in Gemfile and always use 1m:rubygems_url 22mas
|
135
133
|
gems upstream.
|
136
134
|
|
137
135
|
1mDefault value0m
|
@@ -154,7 +152,7 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
154
152
|
1mBind Address0m
|
155
153
|
1m:bind0m
|
156
154
|
|
157
|
-
Specifies
|
155
|
+
Specifies the binding used to start the Gemstash server. Keep in mind
|
158
156
|
the user starting Gemstash needs to have access to bind in this manner.
|
159
157
|
For example, if you use a port below 1024, you will need to run Gem-
|
160
158
|
stash as the root user.
|
@@ -207,6 +205,4 @@ gemstash-configuration(5) gemstash-configuration(5)
|
|
207
205
|
4mNote:24m 4mUsing24m 4m1m:stdout24m 4m22mfor24m 4mthe24m 4m1m:log_file24m 4m22mrequires24m 4mrunning24m 4mwith24m 4m1m--no-daemo-0m
|
208
206
|
4m1mnize22m.0m
|
209
207
|
|
210
|
-
|
211
|
-
|
212
|
-
October 13, 2015 gemstash-configuration(5)
|
208
|
+
October 13, 2015 4mgemstash-configuration24m(5)
|
@@ -1,13 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-customize24m(7) 4mgemstash-customize24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
7
5
|
1mCustomizing the Server0m
|
8
6
|
Although Gemstash is designed for as minimal setup as possible, there
|
9
7
|
may be times you will want to change some of the default configuration.
|
10
|
-
By
|
8
|
+
By the end of this guide, you will be able to customize some of the
|
11
9
|
Gemstash behavior, including where files are stored, what database Gem-
|
12
10
|
stash uses, and how Gemstash caches certain requests.
|
13
11
|
|
@@ -27,7 +25,7 @@ gemstash-customize(7) gemstash-customize(7)
|
|
27
25
|
Checking that the cache is available
|
28
26
|
Checking that the database is available
|
29
27
|
The database is not available
|
30
|
-
Once
|
28
|
+
Once you've answered the questions, some checks will be made to ensure
|
31
29
|
the configuration will work. For example, the database didn't exist in
|
32
30
|
the previous example, so the command failed and the configuration
|
33
31
|
wasn't saved. If the command passes, you may provide the 1m--redo 22moption
|
@@ -36,13 +34,13 @@ gemstash-customize(7) gemstash-customize(7)
|
|
36
34
|
1m$ gemstash setup --redo0m
|
37
35
|
Where should files go? [~/.gemstash]
|
38
36
|
Cache with what? [MEMORY, memcached] 1mmemcached0m
|
39
|
-
What
|
37
|
+
What is the comma separated Memcached servers? [local-
|
40
38
|
host:11211]
|
41
39
|
What database adapter? [SQLITE3, postgres, mysql, mysql2]
|
42
40
|
Checking that the cache is available
|
43
41
|
Checking that the database is available
|
44
42
|
You are all setup!
|
45
|
-
Once
|
43
|
+
Once all checks have passed, Gemstash will store your answers in the
|
46
44
|
configuration file located at 1m~/.gemstash/config.yml22m.
|
47
45
|
|
48
46
|
1mFiles0m
|
@@ -68,7 +66,7 @@ gemstash-customize(7) gemstash-customize(7)
|
|
68
66
|
(http://www.mysql.com/), or 1mmysql2 22m(http://sequel.jeremye-
|
69
67
|
vans.net/rdoc/files/doc/opening_databases_rdoc.html#label-mysql2) for
|
70
68
|
your 1m:db_adapter22m. When using any of these options, you need to specify
|
71
|
-
the
|
69
|
+
the 1m:db_url 22mto point to an existing database. Here is an example con-
|
72
70
|
figuration to use the 1mpostgres 22madapter:
|
73
71
|
|
74
72
|
# ~/.gemstash/config.yml
|
@@ -80,9 +78,9 @@ gemstash-customize(7) gemstash-customize(7)
|
|
80
78
|
:read_timeout: 5
|
81
79
|
:timeout: 30
|
82
80
|
|
83
|
-
Regardless
|
84
|
-
migrate
|
85
|
-
You
|
81
|
+
Regardless of the adapter you choose, the database will automatically
|
82
|
+
migrate to your version of Gemstash whenever the database is needed.
|
83
|
+
You only need to ensure the database exists and Gemstash will do the
|
86
84
|
rest, except for 1msqlite3 22m(for which Gemstash will also create the data-
|
87
85
|
base for you).
|
88
86
|
|
@@ -98,7 +96,7 @@ gemstash-customize(7) gemstash-customize(7)
|
|
98
96
|
This configuration uses the default 1mmemory 22mcache, and has increased the
|
99
97
|
1mcache_max_size 22msetting from its default of 500 items.
|
100
98
|
|
101
|
-
The
|
99
|
+
The memory cache can optionally be swapped out with a Memcached
|
102
100
|
(http://memcached.org/) server (or cluster of servers).
|
103
101
|
|
104
102
|
To use Memcached, use the 1mmemcached :cache_type 22mconfiguration.
|
@@ -123,24 +121,24 @@ gemstash-customize(7) gemstash-customize(7)
|
|
123
121
|
and the rackup file (https://github.com/rubygems/gemstash/blob/mas-
|
124
122
|
ter/lib/gemstash/config.ru) for inspiration.
|
125
123
|
|
126
|
-
While
|
127
|
-
can
|
124
|
+
While the server is not customizable, the way Gemstash binds the port
|
125
|
+
can be changed. To change the binding, update the 1m:bind 22mconfiguration
|
128
126
|
key:
|
129
127
|
|
130
128
|
# ~/.gemstash/config.yml
|
131
129
|
---
|
132
130
|
:bind: tcp://0.0.0.0:4242
|
133
131
|
|
134
|
-
This
|
135
|
-
(https://github.com/puma/puma#binding-tcp--sockets),
|
132
|
+
This maps directly to the Puma bind flag
|
133
|
+
(https://github.com/puma/puma#binding-tcp--sockets), and will support
|
136
134
|
anything valid for that flag.
|
137
135
|
|
138
|
-
The
|
136
|
+
The number of threads Puma uses is also customizable via the
|
139
137
|
1m:puma_threads 22mconfiguration key. The default is 1m1622m.
|
140
138
|
|
141
139
|
1mProtected Fetch0m
|
142
|
-
Gemstash
|
143
|
-
Authenticated
|
140
|
+
Gemstash by default allows unauthenticated access for private gems.
|
141
|
+
Authenticated access is available via the 1m:protected_fetch 22mconfigura-
|
144
142
|
tion key.
|
145
143
|
|
146
144
|
# ~/.gemstash/config.yml
|
@@ -150,15 +148,15 @@ gemstash-customize(7) gemstash-customize(7)
|
|
150
148
|
More details on protected_fetch are here.
|
151
149
|
|
152
150
|
1mFetch Timeout0m
|
153
|
-
The
|
151
|
+
The default fetch timeout is 20 seconds. Use the 1m:fetch_timeout 22mcon-
|
154
152
|
figuration key to change it.
|
155
153
|
|
156
154
|
---
|
157
155
|
:fetch_timeout: 20
|
158
156
|
|
159
157
|
1mConfig File Location0m
|
160
|
-
By
|
161
|
-
1mfig.yml22m.
|
158
|
+
By default, configuration for Gemstash will be at 1m~/.gemstash/con-0m
|
159
|
+
1mfig.yml22m. This can be changed by providing the 1m--config-file 22moption to
|
162
160
|
the various Gemstash commands:
|
163
161
|
|
164
162
|
$ gemstash setup --config-file ./gemstash-config.yml
|
@@ -167,14 +165,14 @@ gemstash-customize(7) gemstash-customize(7)
|
|
167
165
|
$ gemstash stop --config-file ./gemstash-config.yml
|
168
166
|
$ gemstash status --config-file ./gemstash-config.yml
|
169
167
|
|
170
|
-
When
|
171
|
-
be
|
172
|
-
existing
|
173
|
-
1m--config-file
|
168
|
+
When providing 1m--config-file 22mto 1mgemstash setup22m, the provided file will
|
169
|
+
be output to with the provided configuration. 1mThis will overwrite 22many
|
170
|
+
existing configuration. If the file doesn't exist when providing
|
171
|
+
1m--config-file 22mto 1mgemstash start22m, 1mgemstash stop22m, 1mgemstash status22m, and
|
174
172
|
1mgemstash authorize22m, the default configuration will be used.
|
175
173
|
|
176
174
|
1mERB parsed config0m
|
177
|
-
You
|
175
|
+
You may also create a 1m~/.gemstash/config.yml.erb 22mfile. If present,
|
178
176
|
this will be used instead of 1m~/.gemstash/config.yml22m. For example, with
|
179
177
|
this you can use environment variables in the config:
|
180
178
|
|
@@ -183,6 +181,4 @@ gemstash-customize(7) gemstash-customize(7)
|
|
183
181
|
:db_adapter: postgres
|
184
182
|
:db_url: <%= ENV["DATABASE_URL"] %>
|
185
183
|
|
186
|
-
|
187
|
-
|
188
|
-
October 28, 2015 gemstash-customize(7)
|
184
|
+
October 28, 2015 4mgemstash-customize24m(7)
|
@@ -1,13 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-debugging24m(7) 4mgemstash-debugging24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
7
5
|
1mDebugging Gemstash0m
|
8
6
|
If you are finding Gemstash isn't behaving as you would expect, you
|
9
7
|
might want to start by looking at the server log. You can find the log
|
10
|
-
at
|
8
|
+
at 1mserver.log 22mwithin your base directory. By default, this will be at
|
11
9
|
1m~/.gemstash/server.log22m.
|
12
10
|
|
13
11
|
You might find it easier to view the log directly in your terminal. If
|
@@ -20,12 +18,10 @@ gemstash-debugging(7) gemstash-debugging(7)
|
|
20
18
|
|
21
19
|
$ gemstash status
|
22
20
|
|
23
|
-
The
|
21
|
+
The server status is checked by passing through to pumactl
|
24
22
|
(https://github.com/puma/puma#pumactl).
|
25
23
|
|
26
|
-
If
|
24
|
+
If you find a bug, please don't hesitate to open a bug report
|
27
25
|
(https://github.com/rubygems/gemstash#contributing)!
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
October 28, 2015 gemstash-debugging(7)
|
27
|
+
October 28, 2015 4mgemstash-debugging24m(7)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-deploy24m(7) 4mgemstash-deploy24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -56,6 +54,4 @@ gemstash-deploy(7) gemstash-deploy(7)
|
|
56
54
|
It is not recommended to go backwards in Gemstash versions. Migrations
|
57
55
|
may have run that could leave the database in a bad state.
|
58
56
|
|
59
|
-
|
60
|
-
|
61
|
-
October 25, 2015 gemstash-deploy(7)
|
57
|
+
October 25, 2015 4mgemstash-deploy24m(7)
|
@@ -1,12 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-mirror24m(7) 4mgemstash-mirror24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
7
5
|
1mUsing Gemstash as a Mirror0m
|
8
6
|
If you don't have control over your 1mGemfile22m, or you don't want to force
|
9
|
-
everyone
|
7
|
+
everyone on your team to go through the Gemstash server, you can use
|
10
8
|
Bundler mirroring to bundle against your Gemstash server.
|
11
9
|
|
12
10
|
For each source in your 1mGemfile22m, add a mirror pointing to your Gemstash
|
@@ -30,6 +28,4 @@ gemstash-mirror(7) gemstash-mirror(7)
|
|
30
28
|
Bundler will then send headers to Gemstash to indicate the correct up-
|
31
29
|
stream.
|
32
30
|
|
33
|
-
|
34
|
-
|
35
|
-
October 25, 2015 gemstash-mirror(7)
|
31
|
+
October 25, 2015 4mgemstash-mirror24m(7)
|
@@ -1,17 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-multiple-sources24m(7) 4mgemstash-multiple-sources24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
7
5
|
1mMultiple Gem Sources0m
|
8
6
|
Gemstash will stash from any amount of gem sources. By the end of this
|
9
|
-
guide,
|
7
|
+
guide, you will be able to bundle using multiple gem sources, all
|
10
8
|
stashed within your Gemstash server.
|
11
9
|
|
12
10
|
1mDefault Source0m
|
13
|
-
When
|
14
|
-
Guide),
|
11
|
+
When you don't provide an explicit source (as with the Quickstart
|
12
|
+
Guide), your gems will be fetched from https://rubygems.org. This de-
|
15
13
|
fault source is not set in stone. To change it, you need only edit the
|
16
14
|
Gemstash configuration found at 1m~/.gemstash/config.yml22m:
|
17
15
|
|
@@ -47,9 +45,9 @@ gemstash-multiple-sources(7) gemstash-multiple-sources(7)
|
|
47
45
|
end
|
48
46
|
|
49
47
|
Notice the 1mCGI.escape 22mcall in the second source. This is important, as
|
50
|
-
it
|
51
|
-
source
|
52
|
-
source
|
48
|
+
it properly URL escapes the source URL so Gemstash knows what gem
|
49
|
+
source you want. The 1m/upstream 22mprefix tells Gemstash to use a gem
|
50
|
+
source other than the default source. You can now bundle with the ad-
|
53
51
|
ditional source.
|
54
52
|
|
55
53
|
1mRedirecting0m
|
@@ -67,6 +65,4 @@ gemstash-multiple-sources(7) gemstash-multiple-sources(7)
|
|
67
65
|
cached by Gemstash, and gem files will not be stashed, even if they
|
68
66
|
were previously cached or stashed from the same gem source.
|
69
67
|
|
70
|
-
|
71
|
-
|
72
|
-
October 8, 2015 gemstash-multiple-sources(7)
|
68
|
+
October 8, 2015 4mgemstash-multiple-sources24m(7)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-private-gems24m(7) 4mgemstash-private-gems24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -17,14 +15,14 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
17
15
|
try to use the key against your server. Instead of the key value here,
|
18
16
|
use whatever key is generated from running the commands.
|
19
17
|
|
20
|
-
In
|
21
|
-
ate
|
18
|
+
In order to push a gem to your Gemstash server, you need to first cre-
|
19
|
+
ate an API key. Utilize the 1mgemstash authorize 22mcommand to create the
|
22
20
|
API key:
|
23
21
|
|
24
22
|
$ gemstash authorize
|
25
23
|
Your new key is: e374e237fdf5fa5718d2a21bd63dc911
|
26
24
|
|
27
|
-
This
|
25
|
+
This new key can 1mpush22m, 1myank22m, and 1mfetch 22mgems from your Gemstash server.
|
28
26
|
Run 1mgemstash authorize 22mwith just the permissions you want to limit what
|
29
27
|
the key will be allowed to do. You can similarly update a specific key
|
30
28
|
by providing it via the 1m--key 22moption:
|
@@ -32,21 +30,21 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
32
30
|
$ gemstash authorize push yank --key e374e237fdf5fa5718d2a21bd63dc911
|
33
31
|
|
34
32
|
When no permissions are provided (like the first example), the key will
|
35
|
-
be authorized for all
|
36
|
-
|
33
|
+
be authorized for all permissions. Leave the key authorized with
|
34
|
+
everything if you want to use it to try all private gem interactions:
|
37
35
|
|
38
36
|
$ gemstash authorize --key e374e237fdf5fa5718d2a21bd63dc911
|
39
37
|
|
40
38
|
With the key generated, you'll need to tell Rubygems about your new
|
41
39
|
key. If you've pushed a gem to https://rubygems.org, then you will al-
|
42
|
-
ready
|
40
|
+
ready have a credentials file to add the key to. If not, run the fol-
|
43
41
|
lowing commands before modifying the credentials file:
|
44
42
|
|
45
43
|
$ mkdir -p ~/.gem
|
46
44
|
$ touch ~/.gem/credentials
|
47
45
|
$ chmod 0600 ~/.gem/credentials
|
48
46
|
|
49
|
-
Add
|
47
|
+
Add your new key to credentials such that it looks something like this
|
50
48
|
(but make sure not to remove any existing keys):
|
51
49
|
|
52
50
|
# ~/.gem/credentials
|
@@ -63,7 +61,7 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
63
61
|
|
64
62
|
$ bundle gem private-example
|
65
63
|
|
66
|
-
You'll
|
64
|
+
You'll need to add a summary and description to the new gem's gemspec
|
67
65
|
file in order to successfully build it. Once you've built the gem, you
|
68
66
|
will be ready to push the new gem.
|
69
67
|
|
@@ -83,12 +81,12 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
83
81
|
$ gem push --key test_key --host http://localhost:9292/private pkg/private-example-0.1.0.gem
|
84
82
|
|
85
83
|
The 1m/private 22mportion of the 1m--host 22moption tells Gemstash you are inter-
|
86
|
-
acting
|
84
|
+
acting with the private gems. Gemstash will not let you push, or yank
|
87
85
|
from anything except 1m/private22m.
|
88
86
|
|
89
87
|
1mBundling0m
|
90
|
-
Once
|
91
|
-
dle
|
88
|
+
Once your gem is pushed to your Gemstash server, you are ready to bun-
|
89
|
+
dle it. Create a 1mGemfile 22mand specify the gem. You will probably want
|
92
90
|
to wrap the private gem in a source block, and let the rest of Gemstash
|
93
91
|
handle all other gems:
|
94
92
|
|
@@ -129,7 +127,7 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
129
127
|
When protected fetching is enabled API keys with the permissions 1mall 22mor
|
130
128
|
1mfetch 22mcan be used to download gems and specs.
|
131
129
|
|
132
|
-
On
|
130
|
+
On the Bundler side, there are a few ways to configure credentials for
|
133
131
|
a given gem source:
|
134
132
|
|
135
133
|
Add credentials globally:
|
@@ -140,19 +138,17 @@ gemstash-private-gems(7) gemstash-private-gems(7)
|
|
140
138
|
|
141
139
|
source "https://api_key@my-gemstash.dev"
|
142
140
|
|
143
|
-
However,
|
144
|
-
trol.
|
141
|
+
However, it's not a good practice to commit credentials to source con-
|
142
|
+
trol. A recommended solution is to use Bundler's configuration keys
|
145
143
|
(http://bundler.io/man/bundle-config.1.html#CONFIGURATION-KEYS), e.g.:
|
146
144
|
|
147
145
|
$ export BUNDLE_MYGEMSTASH__DEV=api_key
|
148
146
|
|
149
|
-
Behind
|
150
|
-
host
|
147
|
+
Behind the scene, Bundler will pick up the ENV var according to the
|
148
|
+
host name (e.g. mygemstash.dev) and add to 1mURI.userinfo 22mfor making re-
|
151
149
|
quests.
|
152
150
|
|
153
151
|
The API key is treated as a HTTP Basic Auth username and any HTTP Basic
|
154
152
|
password supplied will be ignored.
|
155
153
|
|
156
|
-
|
157
|
-
|
158
|
-
October 8, 2015 gemstash-private-gems(7)
|
154
|
+
October 8, 2015 4mgemstash-private-gems24m(7)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-readme24m(7) 4mgemstash-readme24m(7)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -85,18 +83,18 @@ gemstash-readme(7) gemstash-readme(7)
|
|
85
83
|
$ bundle config mirror.https://rubygems.org.fallback_timeout true
|
86
84
|
|
87
85
|
You can also configure this fallback as a number of seconds in case the
|
88
|
-
Gemstash
|
86
|
+
Gemstash server is simply unresponsive. This example uses a 3 second
|
89
87
|
timeout:
|
90
88
|
|
91
89
|
$ bundle config mirror.https://rubygems.org.fallback_timeout 3
|
92
90
|
|
93
91
|
1mStopping the Server0m
|
94
|
-
Once
|
92
|
+
Once you've finish using your Gemstash server, you can stop it just as
|
95
93
|
easily as you started it:
|
96
94
|
|
97
95
|
$ gemstash stop
|
98
96
|
|
99
|
-
You'll
|
97
|
+
You'll also want to tell Bundler that it can go back to getting gems
|
100
98
|
from RubyGems.org directly, instead of going through Gemstash:
|
101
99
|
|
102
100
|
$ bundle config --delete mirror.https://rubygems.org
|
@@ -108,7 +106,7 @@ gemstash-readme(7) gemstash-readme(7)
|
|
108
106
|
database, and configuration for Gemstash. If you prefer, you can point
|
109
107
|
to a different directory.
|
110
108
|
|
111
|
-
Gemstash
|
109
|
+
Gemstash uses SQLite (https://www.sqlite.org/) to store details about
|
112
110
|
private gems. The database will be located in 1m~/.gemstash22m, however you
|
113
111
|
won't see the database appear until you start using private gems. If
|
114
112
|
you prefer, you can use a different database.
|
@@ -163,20 +161,18 @@ gemstash-readme(7) gemstash-readme(7)
|
|
163
161
|
1mDevelopment0m
|
164
162
|
After checking out the repo, run 1mbin/setup 22mto install dependencies.
|
165
163
|
Then, run 1mrake 22mto run RuboCop and the tests. While developing, you can
|
166
|
-
run
|
164
|
+
run 1mbin/gemstash 22mto run Gemstash. You can also run 1mbin/console 22mfor an
|
167
165
|
interactive prompt that will allow you to experiment.
|
168
166
|
|
169
167
|
1mContributing0m
|
170
|
-
Bug
|
168
|
+
Bug reports and pull requests are welcome on GitHub at
|
171
169
|
https://github.com/rubygems/gemstash. This project is intended to be a
|
172
170
|
safe, welcoming space for collaboration, and contributors are expected
|
173
171
|
to adhere to the Contributor Covenant (https://github.com/rubygems/gem-
|
174
172
|
stash/blob/master/CODE_OF_CONDUCT.md) code of conduct.
|
175
173
|
|
176
174
|
1mLicense0m
|
177
|
-
The
|
175
|
+
The gem is available as open source under the terms of the MIT License
|
178
176
|
(http://opensource.org/licenses/MIT).
|
179
177
|
|
180
|
-
|
181
|
-
|
182
|
-
November 30, 2015 gemstash-readme(7)
|
178
|
+
November 30, 2015 4mgemstash-readme24m(7)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-setup24m(1) 4mgemstash-setup24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -37,6 +35,4 @@ gemstash-setup(1) gemstash-setup(1)
|
|
37
35
|
use ERB in your config file, you might want to use 1m~/.gemstash/con-0m
|
38
36
|
1mfig.yml.erb22m.
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
October 9, 2015 gemstash-setup(1)
|
38
|
+
October 9, 2015 4mgemstash-setup24m(1)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-start24m(1) 4mgemstash-start24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -23,6 +21,4 @@ gemstash-start(1) gemstash-start(1)
|
|
23
21
|
Provide this option to instead run the server until 1mCtrl-C 22mis typed.
|
24
22
|
When not daemonized, the log will be output to standard out.
|
25
23
|
|
26
|
-
|
27
|
-
|
28
|
-
October 9, 2015 gemstash-start(1)
|
24
|
+
October 9, 2015 4mgemstash-start24m(1)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-status24m(1) 4mgemstash-status24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -19,6 +17,4 @@ gemstash-status(1) gemstash-status(1)
|
|
19
17
|
1mstash/config.yml.erb22m, then you must specify the config file via this
|
20
18
|
option.
|
21
19
|
|
22
|
-
|
23
|
-
|
24
|
-
October 28, 2015 gemstash-status(1)
|
20
|
+
October 28, 2015 4mgemstash-status24m(1)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-stop24m(1) 4mgemstash-stop24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -19,6 +17,4 @@ gemstash-stop(1) gemstash-stop(1)
|
|
19
17
|
1mstash/config.yml.erb22m, then you must specify the config file via this
|
20
18
|
option.
|
21
19
|
|
22
|
-
|
23
|
-
|
24
|
-
October 9, 2015 gemstash-stop(1)
|
20
|
+
October 9, 2015 4mgemstash-stop24m(1)
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
4mgemstash-version24m(1) 4mgemstash-version24m(1)
|
4
2
|
|
5
3
|
<!-- Automatically generated by Pandoc -->
|
6
4
|
|
@@ -18,6 +16,4 @@ gemstash-version(1) gemstash-version(1)
|
|
18
16
|
gemstash --version
|
19
17
|
gemstash -v
|
20
18
|
|
21
|
-
|
22
|
-
|
23
|
-
December 14, 2015 gemstash-version(1)
|
19
|
+
December 14, 2015 4mgemstash-version24m(1)
|
data/lib/gemstash/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemstash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andre Arko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -56,28 +56,28 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0
|
59
|
+
version: '1.0'
|
60
60
|
type: :runtime
|
61
61
|
prerelease: false
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '0
|
66
|
+
version: '1.0'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: faraday_middleware
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '0
|
73
|
+
version: '1.0'
|
74
74
|
type: :runtime
|
75
75
|
prerelease: false
|
76
76
|
version_requirements: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: '0
|
80
|
+
version: '1.0'
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: lru_redux
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,14 +112,14 @@ dependencies:
|
|
112
112
|
requirements:
|
113
113
|
- - "~>"
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version: '
|
115
|
+
version: '6.1'
|
116
116
|
type: :runtime
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '
|
122
|
+
version: '6.1'
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: sequel
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,7 +157,7 @@ dependencies:
|
|
157
157
|
version: '1.4'
|
158
158
|
- - "<"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
160
|
+
version: '4.0'
|
161
161
|
type: :runtime
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -167,21 +167,21 @@ dependencies:
|
|
167
167
|
version: '1.4'
|
168
168
|
- - "<"
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
version: '
|
170
|
+
version: '4.0'
|
171
171
|
- !ruby/object:Gem::Dependency
|
172
172
|
name: thor
|
173
173
|
requirement: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
175
|
- - "~>"
|
176
176
|
- !ruby/object:Gem::Version
|
177
|
-
version: '0
|
177
|
+
version: '1.0'
|
178
178
|
type: :runtime
|
179
179
|
prerelease: false
|
180
180
|
version_requirements: !ruby/object:Gem::Requirement
|
181
181
|
requirements:
|
182
182
|
- - "~>"
|
183
183
|
- !ruby/object:Gem::Version
|
184
|
-
version: '0
|
184
|
+
version: '1.0'
|
185
185
|
- !ruby/object:Gem::Dependency
|
186
186
|
name: sqlite3
|
187
187
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
301
301
|
- !ruby/object:Gem::Version
|
302
302
|
version: '0'
|
303
303
|
requirements: []
|
304
|
-
rubygems_version: 3.
|
304
|
+
rubygems_version: 3.4.14
|
305
305
|
signing_key:
|
306
306
|
specification_version: 4
|
307
307
|
summary: A place to stash gems you'll need
|