artifactory-gem_import 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 923dacc8ce0822ff906ab58f5337a353ef721973d8f21027c41a09283ec22739
4
- data.tar.gz: 572c64c0775fa74eaf75e8e28da7d2785df295d9ade73dbc0929127d942f0b0b
3
+ metadata.gz: 460a984b5bd5f4a87876aabd1472607c3de3c6b0d5d99256f95123171f78bc23
4
+ data.tar.gz: e1e43e4826f1f29425eadfa46df916a8298ff1d55596cfd28645c9d7ef3c4500
5
5
  SHA512:
6
- metadata.gz: 37ac19b8ec112112420e3c7b20aa3d83c09b3becb7827e6eda014057a6e07981f23b47a6dec2cdc73ba01cf3354e1fb10cea61ca01790b704bea7677f9d6d71a
7
- data.tar.gz: b75ca485d06ad417690fc13d9c82f02afd4fffad390cb044f004ad529804768cf3577586c285111657fca4b449f3c0b4400a96ba0fd426dc8e94abcaf7d39dbe
6
+ metadata.gz: 58a288d282421b5205f7fb02e4eb04e673739cec4bc0a4a8580458ed9263f772b91d3edb5c052bc035af0f1cc61e048c08ed07eb52590c998d5cfddf2d0495ed
7
+ data.tar.gz: b4e8c2b714a6126be9c84e9bfcdd831cd3591fb927e446ab40c89251e89092561a8e1b7625d53a19ce587b389ff5776fc6b63ae4a278883ee2ca65a19bb48a41
data/README.md CHANGED
@@ -12,7 +12,7 @@ to you e.g. as part of the CI/CD pipeline when releasing gems.
12
12
 
13
13
  ## How it works
14
14
  - it diffs the specs.4.8.gz of both repositories
15
- - it down- and uploads the missing gems only
15
+ - it down- and uploads the missing gems
16
16
  - it verifies the MD5 hash of the uploaded gem file with the cached one
17
17
  - it deletes the uploaded gem if the checksums do not match
18
18
 
@@ -31,8 +31,9 @@ $ artifactory-gem-import show-missing --source-repo https://your-repo.local/priv
31
31
 
32
32
  Import gems into the Artifactory.
33
33
  ```shell
34
- $ artifactory-gem-import import --source-repo https://your-repo.local/private --target-repo https://your-artifactory.local/gems-local --target-repo-api-key <api-key> [--only "+."]
34
+ $ artifactory-gem-import import --source-repo https://your-repo.local/private --target-repo https://your-artifactory.local/gems-local --target-repo-api-key <api-key> [--only "+."] [--force]
35
35
  ```
36
+ Using `--force` uploads gems even if already present in the target repo instead of skipping them.
36
37
 
37
38
  Delete gems from the Artifactory. It will NOT remove the `rubygems-update` gem as it seems to be needed to keep the gem repository working.
38
39
  ```shell
@@ -17,12 +17,15 @@ module Artifactory
17
17
 
18
18
  option :only, type: :string, default: ".+"
19
19
 
20
+ option :force, type: :boolean, default: false
21
+
20
22
  desc "import", "Copy gems from the source repo into the target repo."
21
23
 
22
24
  def import
23
25
  say GemImport.import! source_repo: source_repo,
24
26
  target_repo: target_repo,
25
- only: options[:only]
27
+ only: options[:only],
28
+ force: options[:force]
26
29
  end
27
30
 
28
31
  option :target_repo, required: true, type: :string
@@ -58,6 +61,15 @@ module Artifactory
58
61
  say gems.count
59
62
  end
60
63
 
64
+ # option :target_repo, required: true, type: :string
65
+ #
66
+ # option :target_repo_api_key, required: true, type: :string
67
+ #
68
+ # desc "reindex", "Trigger reindexing of the target repo (Artifactory only)."
69
+ # def reindex
70
+ # GemImport.reindex! repo: target_repo
71
+ # end
72
+
61
73
  desc "version", "Show version information"
62
74
 
63
75
  def version
@@ -1,5 +1,5 @@
1
1
  module Artifactory
2
2
  module GemImport
3
- VERSION = "0.1.4"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -5,12 +5,13 @@ module Artifactory
5
5
  module GemImport
6
6
  module Worker
7
7
  class Importer < Base
8
- attr_reader :source_repo, :target_repo, :only
8
+ attr_reader :source_repo, :target_repo, :only, :force
9
9
 
10
- def initialize(source_repo:, target_repo:, only: /.+/)
10
+ def initialize(source_repo:, target_repo:, only: /.+/, force: false)
11
11
  @source_repo = source_repo
12
12
  @target_repo = target_repo
13
- @only = only
13
+ @only = only
14
+ @force = force
14
15
  end
15
16
 
16
17
  def import!
@@ -42,9 +43,13 @@ module Artifactory
42
43
  end
43
44
 
44
45
  def missing_gems
45
- @missing_gems ||= GemSpecs.missing_gems source_repo: source_repo,
46
- target_repo: target_repo,
47
- only: only
46
+ @missing_gems ||= if force
47
+ GemSpecs.get repo: source_repo, only: only
48
+ else
49
+ GemSpecs.missing_gems source_repo: source_repo,
50
+ target_repo: target_repo,
51
+ only: only
52
+ end
48
53
  end
49
54
 
50
55
  def download(gem)
@@ -13,9 +13,9 @@ module Artifactory
13
13
 
14
14
  module_function
15
15
 
16
- def import!(source_repo:, target_repo:, only: /.+/)
16
+ def import!(source_repo:, target_repo:, only: /.+/, force: false)
17
17
  Worker::Importer
18
- .new(source_repo: source_repo, target_repo: target_repo, only: only)
18
+ .new(source_repo: source_repo, target_repo: target_repo, only: only, force: force)
19
19
  .import!
20
20
  end
21
21
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artifactory-gem_import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Scholz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-02 00:00:00.000000000 Z
11
+ date: 2023-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  requirements: []
107
- rubygems_version: 3.0.3
107
+ rubygems_version: 3.4.18
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: Artifactory Gem Import.