rugged 1.0.0 → 1.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3da2dd9613a57a897d79059d83ed3383a8b814dda9dd3b0a850dc52addc354c0
4
- data.tar.gz: 27a171313a2b9c7031ec1e5f104676934b16a347487a4533a660b47e98e77eac
3
+ metadata.gz: 8a71025a0b98dfed66af094ccdc24138d61bf4159eb05c49bf8fb9823a5ba34b
4
+ data.tar.gz: c1e1978022f16609de31a310a476c8f0d96cc26018c92f41bd7c10d5fac42cd2
5
5
  SHA512:
6
- metadata.gz: f5c3e519057e1154b0245b221524fcda071ddaae994c81d277fa466adc20ec38f83d69b6632ab5ab65ceadbd903c400d81f1f31cec8b6b214d14a7b9c48cd390
7
- data.tar.gz: e0a2246325bdf104f4d2c9a5654694705d7fd41674f0dd520888067cdfa8939877a05cdaa34baeff954555fd4528ea668af8446ff450f9080601b7e8a0d9b2c6
6
+ metadata.gz: 3a17566ce7dc49b8fe819e4b6c1ef44a7afc6fd538895f93177332273330cd1aedcf855f2ee3093a0deb74a2fff16d22f9b4a3e602a3d6a9e9ed782a013d9227
7
+ data.tar.gz: 2f36b64dab2fe738396b5ab5fc9c64354266d4bd3338ff77a8298a8bd0a659e37915945101583436113bf72d7db47d063e0a6aef27a877a84e1a175f13fcc7df
data/README.md CHANGED
@@ -17,9 +17,9 @@ Rugged is a self-contained gem. You can install it by running:
17
17
 
18
18
  $ gem install rugged
19
19
 
20
- You need to have CMake and `pkg-config` installed on your system to be able to build the included version of `libgit2`. On OS X, after installing [Homebrew](http://brew.sh/), you can get CMake with:
20
+ You need to have CMake and `pkg-config` installed on your system to be able to build the included version of `libgit2`. On OS X, after installing [Homebrew](http://brew.sh/), you can get the required packages with:
21
21
  ```bash
22
- $ brew install cmake
22
+ $ brew install cmake pkg-config
23
23
  ```
24
24
 
25
25
  Please follow the above in case installation of the gem fails with `ERROR: CMake is required to build Rugged.`.
@@ -173,7 +173,7 @@ static int cb_config__each_key(const git_config_entry *entry, void *payload)
173
173
  {
174
174
  int *exception = (int *) payload;
175
175
 
176
- rb_protect(rb_yield, rb_ary_new3(1, rb_str_new_utf8(entry->name)), exception);
176
+ rb_protect(rb_yield, rb_str_new_utf8(entry->name), exception);
177
177
 
178
178
  return (*exception != 0) ? GIT_EUSER : GIT_OK;
179
179
  }
@@ -207,6 +207,18 @@ static void init_custom_headers(VALUE rb_options, git_strarray *custom_headers)
207
207
  }
208
208
  }
209
209
 
210
+ static void init_proxy_options(VALUE rb_options, git_proxy_options *proxy_options)
211
+ {
212
+ if (NIL_P(rb_options)) return;
213
+
214
+ VALUE val = rb_hash_aref(rb_options, CSTR2SYM("proxy_url"));
215
+ if (!NIL_P(val)) {
216
+ Check_Type(val, T_STRING);
217
+ proxy_options->type = GIT_PROXY_SPECIFIED;
218
+ proxy_options->url = StringValueCStr(val);
219
+ }
220
+ }
221
+
210
222
  static int parse_prune_type(VALUE rb_prune_type)
211
223
  {
212
224
  if (rb_prune_type == Qtrue) {
@@ -283,11 +295,15 @@ static VALUE rugged_rhead_new(const git_remote_head *head)
283
295
  *
284
296
  * :headers ::
285
297
  * Extra HTTP headers to include with the request (only applies to http:// or https:// remotes)
298
+ *
299
+ * :proxy_url ::
300
+ * The url of an http proxy to use to access the remote repository.
286
301
  */
287
302
  static VALUE rb_git_remote_ls(int argc, VALUE *argv, VALUE self)
288
303
  {
289
304
  git_remote *remote;
290
305
  git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
306
+ git_proxy_options proxy_options = GIT_PROXY_OPTIONS_INIT;
291
307
  git_strarray custom_headers = {0};
292
308
  const git_remote_head **heads;
293
309
 
@@ -304,8 +320,9 @@ static VALUE rb_git_remote_ls(int argc, VALUE *argv, VALUE self)
304
320
 
305
321
  rugged_remote_init_callbacks_and_payload_from_options(rb_options, &callbacks, &payload);
306
322
  init_custom_headers(rb_options, &custom_headers);
323
+ init_proxy_options(rb_options, &proxy_options);
307
324
 
308
- if ((error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, &custom_headers)) ||
325
+ if ((error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, &proxy_options, &custom_headers)) ||
309
326
  (error = git_remote_ls(&heads, &heads_len, remote)))
310
327
  goto cleanup;
311
328
 
@@ -474,6 +491,9 @@ static VALUE rb_git_remote_push_refspecs(VALUE self)
474
491
  * :headers ::
475
492
  * Extra HTTP headers to include with the request (only applies to http:// or https:// remotes)
476
493
  *
494
+ * :proxy_url ::
495
+ * The url of an http proxy to use to access the remote repository.
496
+ *
477
497
  * Example:
478
498
  *
479
499
  * remote = repo.remotes["origin"]
@@ -484,6 +504,7 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
484
504
  {
485
505
  git_remote *remote;
486
506
  git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
507
+ git_proxy_options proxy_options = GIT_PROXY_OPTIONS_INIT;
487
508
  git_strarray custom_headers = {0};
488
509
  struct rugged_remote_cb_payload payload = { Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, 0 };
489
510
  VALUE rb_direction, rb_options;
@@ -504,8 +525,9 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
504
525
 
505
526
  rugged_remote_init_callbacks_and_payload_from_options(rb_options, &callbacks, &payload);
506
527
  init_custom_headers(rb_options, &custom_headers);
528
+ init_proxy_options(rb_options, &proxy_options);
507
529
 
508
- error = git_remote_connect(remote, direction, &callbacks, NULL, &custom_headers);
530
+ error = git_remote_connect(remote, direction, &callbacks, &proxy_options, &custom_headers);
509
531
  git_remote_disconnect(remote);
510
532
 
511
533
  xfree(custom_headers.strings);
@@ -563,6 +585,9 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
563
585
  * Specifies the prune mode for the fetch. +true+ remove any remote-tracking references that
564
586
  * no longer exist, +false+ do not prune, +nil+ use configured settings Defaults to "nil".
565
587
  *
588
+ * :proxy_url ::
589
+ * The url of an http proxy to use to access the remote repository.
590
+ *
566
591
  * Example:
567
592
  *
568
593
  * remote = Rugged::Remote.lookup(@repo, 'origin')
@@ -593,6 +618,7 @@ static VALUE rb_git_remote_fetch(int argc, VALUE *argv, VALUE self)
593
618
 
594
619
  rugged_remote_init_callbacks_and_payload_from_options(rb_options, &opts.callbacks, &payload);
595
620
  init_custom_headers(rb_options, &opts.custom_headers);
621
+ init_proxy_options(rb_options, &opts.proxy_opts);
596
622
 
597
623
  if (!NIL_P(rb_options)) {
598
624
  VALUE rb_prune_type;
@@ -654,6 +680,9 @@ static VALUE rb_git_remote_fetch(int argc, VALUE *argv, VALUE self)
654
680
  * :headers ::
655
681
  * Extra HTTP headers to include with the push (only applies to http:// or https:// remotes)
656
682
  *
683
+ * :proxy_url ::
684
+ * The url of an http proxy to use to access the remote repository.
685
+ *
657
686
  * Example:
658
687
  *
659
688
  * remote = Rugged::Remote.lookup(@repo, 'origin')
@@ -679,6 +708,7 @@ static VALUE rb_git_remote_push(int argc, VALUE *argv, VALUE self)
679
708
 
680
709
  rugged_remote_init_callbacks_and_payload_from_options(rb_options, &opts.callbacks, &payload);
681
710
  init_custom_headers(rb_options, &opts.custom_headers);
711
+ init_proxy_options(rb_options, &opts.proxy_opts);
682
712
 
683
713
  error = git_remote_push(remote, &refspecs, &opts);
684
714
 
@@ -528,6 +528,13 @@ static void parse_clone_options(git_clone_options *ret, VALUE rb_options, struct
528
528
  ret->checkout_branch = StringValueCStr(val);
529
529
  }
530
530
 
531
+ val = rb_hash_aref(rb_options, CSTR2SYM("proxy_url"));
532
+ if (!NIL_P(val)) {
533
+ Check_Type(val, T_STRING);
534
+ ret->fetch_opts.proxy_opts.type = GIT_PROXY_SPECIFIED;
535
+ ret->fetch_opts.proxy_opts.url = StringValueCStr(val);
536
+ }
537
+
531
538
  rugged_remote_init_callbacks_and_payload_from_options(rb_options, &ret->fetch_opts.callbacks, remote_payload);
532
539
  }
533
540
 
@@ -552,6 +559,9 @@ static void parse_clone_options(git_clone_options *ret, VALUE rb_options, struct
552
559
  * :ignore_cert_errors ::
553
560
  * If set to +true+, errors while validating the remote's host certificate will be ignored.
554
561
  *
562
+ * :proxy_url ::
563
+ * The url of an http proxy to use to access the remote repository.
564
+ *
555
565
  * :credentials ::
556
566
  * The credentials to use for the clone operation. Can be either an instance of one
557
567
  * of the Rugged::Credentials types, or a proc returning one of the former.
@@ -5,7 +5,6 @@
5
5
 
6
6
  module Rugged
7
7
  class Commit
8
-
9
8
  def self.prettify_message(msg, strip_comments = true)
10
9
  Rugged::prettify_message(msg, strip_comments)
11
10
  end
@@ -30,7 +29,7 @@ module Rugged
30
29
  #
31
30
  # See Rugged::Tree#diff_workdir for more details.
32
31
  def diff_workdir(options = {})
33
- self.tree.diff_workdir(options)
32
+ self.tree.diff_workdir(**options)
34
33
  end
35
34
 
36
35
  # The time when this commit was made effective. This is the same value
@@ -30,7 +30,7 @@ module Rugged
30
30
  options[:strategy] ||= :safe
31
31
  options.delete(:paths)
32
32
 
33
- return checkout_head(options) if target == "HEAD"
33
+ return checkout_head(**options) if target == "HEAD"
34
34
 
35
35
  if target.kind_of?(Rugged::Branch)
36
36
  branch = target
@@ -39,7 +39,7 @@ module Rugged
39
39
  end
40
40
 
41
41
  if branch
42
- self.checkout_tree(branch.target, options)
42
+ self.checkout_tree(branch.target, **options)
43
43
 
44
44
  if branch.remote?
45
45
  references.create("HEAD", branch.target_id, force: true)
@@ -49,7 +49,7 @@ module Rugged
49
49
  else
50
50
  commit = Commit.lookup(self, self.rev_parse_oid(target))
51
51
  references.create("HEAD", commit.oid, force: true)
52
- self.checkout_tree(commit, options)
52
+ self.checkout_tree(commit, **options)
53
53
  end
54
54
  end
55
55
 
@@ -250,12 +250,11 @@ module Rugged
250
250
  (blob.type == :blob) ? blob : nil
251
251
  end
252
252
 
253
- def fetch(remote_or_url, *args)
253
+ def fetch(remote_or_url, *args, **kwargs)
254
254
  unless remote_or_url.kind_of? Remote
255
255
  remote_or_url = remotes[remote_or_url] || remotes.create_anonymous(remote_or_url)
256
256
  end
257
-
258
- remote_or_url.fetch(*args)
257
+ remote_or_url.fetch(*args, **kwargs)
259
258
  end
260
259
 
261
260
  # Push a list of refspecs to the given remote.
@@ -26,8 +26,8 @@ module Rugged
26
26
  #
27
27
  # Returns the newly created +submodule+
28
28
  def add(url, path, options = {})
29
- submodule = setup_add(url, path, options)
30
- clone_submodule(submodule.repository, options)
29
+ submodule = setup_add(url, path, **options)
30
+ clone_submodule(submodule.repository, **options)
31
31
  submodule.finalize_add
32
32
  end
33
33
 
@@ -40,9 +40,9 @@ module Rugged
40
40
  # 1. fetches the remote
41
41
  # 2. sets up a master branch to be tracking origin/master
42
42
  # 3. checkouts the submodule
43
- def clone_submodule(repo, fetch_options)
43
+ def clone_submodule(repo, **fetch_options)
44
44
  # the remote was just added by setup_add, no need to check presence
45
- repo.remotes['origin'].fetch(fetch_options)
45
+ repo.remotes['origin'].fetch(**fetch_options)
46
46
 
47
47
  repo.branches.create('master','origin/master')
48
48
  repo.branches['master'].upstream = repo.branches['origin/master']
@@ -4,5 +4,5 @@
4
4
  # For full terms see the included LICENSE file.
5
5
 
6
6
  module Rugged
7
- Version = VERSION = '1.0.0'
7
+ Version = VERSION = '1.0.1'
8
8
  end
@@ -25,7 +25,7 @@
25
25
  /* See man page endian(3) */
26
26
  # include <endian.h>
27
27
  # define htonll htobe64
28
- #elif defined(__OpenBSD__)
28
+ #elif defined(__NetBSD__) || defined(__OpenBSD__)
29
29
  /* See man page htobe64(3) */
30
30
  # include <endian.h>
31
31
  # define htonll htobe64
@@ -7,10 +7,10 @@
7
7
  #ifndef INCLUDE_git_version_h__
8
8
  #define INCLUDE_git_version_h__
9
9
 
10
- #define LIBGIT2_VERSION "1.0.0"
10
+ #define LIBGIT2_VERSION "1.0.1"
11
11
  #define LIBGIT2_VER_MAJOR 1
12
12
  #define LIBGIT2_VER_MINOR 0
13
- #define LIBGIT2_VER_REVISION 0
13
+ #define LIBGIT2_VER_REVISION 1
14
14
  #define LIBGIT2_VER_PATCH 0
15
15
 
16
16
  #define LIBGIT2_SOVERSION "1.0"
@@ -111,6 +111,15 @@ static int config_file_open(git_config_backend *cfg, git_config_level_t level, c
111
111
  if (!git_path_exists(b->file.path))
112
112
  return 0;
113
113
 
114
+ /*
115
+ * git silently ignores configuration files that are not
116
+ * readable. We emulate that behavior. This is particularly
117
+ * important for sandboxed applications on macOS where the
118
+ * git configuration files may not be readable.
119
+ */
120
+ if (p_access(b->file.path, R_OK) < 0)
121
+ return GIT_ENOTFOUND;
122
+
114
123
  if (res < 0 || (res = config_file_read(b->entries, repo, &b->file, level, 0)) < 0) {
115
124
  git_config_entries_free(b->entries);
116
125
  b->entries = NULL;
@@ -2744,7 +2744,7 @@ static int write_disk_entry(git_filebuf *file, git_index_entry *entry, const cha
2744
2744
  ++same_len;
2745
2745
  }
2746
2746
  path_len -= same_len;
2747
- varint_len = git_encode_varint(NULL, 0, same_len);
2747
+ varint_len = git_encode_varint(NULL, 0, strlen(last) - same_len);
2748
2748
  }
2749
2749
 
2750
2750
  disk_size = index_entry_size(path_len, varint_len, entry->flags);
@@ -2795,7 +2795,7 @@ static int write_disk_entry(git_filebuf *file, git_index_entry *entry, const cha
2795
2795
 
2796
2796
  if (last) {
2797
2797
  varint_len = git_encode_varint((unsigned char *) path,
2798
- disk_size, same_len);
2798
+ disk_size, strlen(last) - same_len);
2799
2799
  assert(varint_len > 0);
2800
2800
  path += varint_len;
2801
2801
  disk_size -= varint_len;
@@ -68,6 +68,16 @@ struct merge_diff_df_data {
68
68
  git_merge_diff *prev_conflict;
69
69
  };
70
70
 
71
+ /*
72
+ * This acts as a negative cache entry marker. In case we've tried to calculate
73
+ * similarity metrics for a given blob already but `git_hashsig` determined
74
+ * that it's too small in order to have a meaningful hash signature, we will
75
+ * insert the address of this marker instead of `NULL`. Like this, we can
76
+ * easily check whether we have checked a gien entry already and skip doing the
77
+ * calculation again and again.
78
+ */
79
+ static int cache_invalid_marker;
80
+
71
81
  /* Merge base computation */
72
82
 
73
83
  int merge_bases_many(git_commit_list **out, git_revwalk **walk_out, git_repository *repo, size_t length, const git_oid input_array[])
@@ -1027,6 +1037,9 @@ static int index_entry_similarity_calc(
1027
1037
  git_object_size_t blobsize;
1028
1038
  int error;
1029
1039
 
1040
+ if (*out || *out == &cache_invalid_marker)
1041
+ return 0;
1042
+
1030
1043
  *out = NULL;
1031
1044
 
1032
1045
  if ((error = git_blob_lookup(&blob, repo, &entry->id)) < 0)
@@ -1047,6 +1060,8 @@ static int index_entry_similarity_calc(
1047
1060
  error = opts->metric->buffer_signature(out, &diff_file,
1048
1061
  git_blob_rawcontent(blob), (size_t)blobsize,
1049
1062
  opts->metric->payload);
1063
+ if (error == GIT_EBUFS)
1064
+ *out = &cache_invalid_marker;
1050
1065
 
1051
1066
  git_blob_free(blob);
1052
1067
 
@@ -1069,18 +1084,16 @@ static int index_entry_similarity_inexact(
1069
1084
  return 0;
1070
1085
 
1071
1086
  /* update signature cache if needed */
1072
- if (!cache[a_idx] && (error = index_entry_similarity_calc(&cache[a_idx], repo, a, opts)) < 0)
1073
- return error;
1074
- if (!cache[b_idx] && (error = index_entry_similarity_calc(&cache[b_idx], repo, b, opts)) < 0)
1087
+ if ((error = index_entry_similarity_calc(&cache[a_idx], repo, a, opts)) < 0 ||
1088
+ (error = index_entry_similarity_calc(&cache[b_idx], repo, b, opts)) < 0)
1075
1089
  return error;
1076
1090
 
1077
1091
  /* some metrics may not wish to process this file (too big / too small) */
1078
- if (!cache[a_idx] || !cache[b_idx])
1092
+ if (cache[a_idx] == &cache_invalid_marker || cache[b_idx] == &cache_invalid_marker)
1079
1093
  return 0;
1080
1094
 
1081
1095
  /* compare signatures */
1082
- if (opts->metric->similarity(
1083
- &score, cache[a_idx], cache[b_idx], opts->metric->payload) < 0)
1096
+ if (opts->metric->similarity(&score, cache[a_idx], cache[b_idx], opts->metric->payload) < 0)
1084
1097
  return -1;
1085
1098
 
1086
1099
  /* clip score */
@@ -1550,7 +1563,7 @@ int git_merge_diff_list__find_renames(
1550
1563
  done:
1551
1564
  if (cache != NULL) {
1552
1565
  for (i = 0; i < cache_size; ++i) {
1553
- if (cache[i] != NULL)
1566
+ if (cache[i] != NULL && cache[i] != &cache_invalid_marker)
1554
1567
  opts->metric->free_signature(cache[i], opts->metric->payload);
1555
1568
  }
1556
1569
 
@@ -173,7 +173,7 @@ static int stash_to_index(
173
173
  git_index *index,
174
174
  const char *path)
175
175
  {
176
- git_index *repo_index;
176
+ git_index *repo_index = NULL;
177
177
  git_index_entry entry = {{0}};
178
178
  struct stat st;
179
179
  int error;
@@ -187,7 +187,7 @@ static int stash_to_index(
187
187
  return error;
188
188
 
189
189
  git_index_entry__init_from_stat(&entry, &st,
190
- (repo_index != NULL || !repo_index->distrust_filemode));
190
+ (repo_index == NULL || !repo_index->distrust_filemode));
191
191
 
192
192
  entry.path = path;
193
193
 
@@ -1038,6 +1038,7 @@ on_error:
1038
1038
 
1039
1039
  GIT_INLINE(int) client_read(git_http_client *client)
1040
1040
  {
1041
+ http_parser_context *parser_context = client->parser.data;
1041
1042
  git_stream *stream;
1042
1043
  char *buf = client->read_buf.ptr + client->read_buf.size;
1043
1044
  size_t max_len;
@@ -1054,6 +1055,9 @@ GIT_INLINE(int) client_read(git_http_client *client)
1054
1055
  max_len = client->read_buf.asize - client->read_buf.size;
1055
1056
  max_len = min(max_len, INT_MAX);
1056
1057
 
1058
+ if (parser_context->output_size)
1059
+ max_len = min(max_len, parser_context->output_size);
1060
+
1057
1061
  if (max_len == 0) {
1058
1062
  git_error_set(GIT_ERROR_HTTP, "no room in output buffer");
1059
1063
  return -1;
@@ -1191,7 +1195,7 @@ static void complete_response_body(git_http_client *client)
1191
1195
  /* If we're not keeping alive, don't bother. */
1192
1196
  if (!client->keepalive) {
1193
1197
  client->connected = 0;
1194
- return;
1198
+ goto done;
1195
1199
  }
1196
1200
 
1197
1201
  parser_context.client = client;
@@ -1205,6 +1209,9 @@ static void complete_response_body(git_http_client *client)
1205
1209
  git_error_clear();
1206
1210
  client->connected = 0;
1207
1211
  }
1212
+
1213
+ done:
1214
+ git_buf_clear(&client->read_buf);
1208
1215
  }
1209
1216
 
1210
1217
  int git_http_client_send_request(
@@ -1419,15 +1426,20 @@ int git_http_client_read_body(
1419
1426
  client->parser.data = &parser_context;
1420
1427
 
1421
1428
  /*
1422
- * Clients expect to get a non-zero amount of data from us.
1423
- * With a sufficiently small buffer, one might only read a chunk
1424
- * length. Loop until we actually have data to return.
1429
+ * Clients expect to get a non-zero amount of data from us,
1430
+ * so we either block until we have data to return, until we
1431
+ * hit EOF or there's an error. Do this in a loop, since we
1432
+ * may end up reading only some stream metadata (like chunk
1433
+ * information).
1425
1434
  */
1426
1435
  while (!parser_context.output_written) {
1427
1436
  error = client_read_and_parse(client);
1428
1437
 
1429
1438
  if (error <= 0)
1430
1439
  goto done;
1440
+
1441
+ if (client->state == DONE)
1442
+ break;
1431
1443
  }
1432
1444
 
1433
1445
  assert(parser_context.output_written <= INT_MAX);
@@ -506,7 +506,7 @@ int git_worktree_prune_options_init(
506
506
  return 0;
507
507
  }
508
508
 
509
- int git_worktree_pruneinit_options(git_worktree_prune_options *opts,
509
+ int git_worktree_prune_init_options(git_worktree_prune_options *opts,
510
510
  unsigned int version)
511
511
  {
512
512
  return git_worktree_prune_options_init(opts, version);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rugged
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-03 00:00:00.000000000 Z
12
+ date: 2020-06-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -674,7 +674,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
674
674
  - !ruby/object:Gem::Version
675
675
  version: '0'
676
676
  requirements: []
677
- rubygems_version: 3.1.2
677
+ rubygems_version: 3.0.3
678
678
  signing_key:
679
679
  specification_version: 4
680
680
  summary: Rugged is a Ruby binding to the libgit2 linkable library