artifactory-gem_import 0.1.4 → 0.2.2

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: 1d9422a855958aa038e1c5340c3b247257e7e99ef0f55e7b19a3be59a756fa41
4
+ data.tar.gz: f3ee7a9613f07d850fe5f6d3f97b6c9ac823cf97676be84e88a0713110e8337f
5
5
  SHA512:
6
- metadata.gz: 37ac19b8ec112112420e3c7b20aa3d83c09b3becb7827e6eda014057a6e07981f23b47a6dec2cdc73ba01cf3354e1fb10cea61ca01790b704bea7677f9d6d71a
7
- data.tar.gz: b75ca485d06ad417690fc13d9c82f02afd4fffad390cb044f004ad529804768cf3577586c285111657fca4b449f3c0b4400a96ba0fd426dc8e94abcaf7d39dbe
6
+ metadata.gz: 72aacbc2f1176149a6e55f0f08a4000a4bc90eb01e66e123b4fef8557d39236445616ef2249a174d5120a712f64ce1d01b6eaa52727b4bddf9f4b53f4490827e
7
+ data.tar.gz: 325b64f6d681e3a258ccbc6cff36f28246b53cf6e28c08c5379a572cf93c3b4fc5852c89da69a0dadae46331dcd3803d8e7c7831a741dd71754d5bd13b447ba9
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
@@ -1,31 +1,31 @@
1
1
  require_relative "lib/artifactory/gem_import/version"
2
2
 
3
3
  Gem::Specification.new do |spec|
4
- spec.name = "artifactory-gem_import"
4
+ spec.name = "artifactory-gem_import"
5
5
  spec.version = Artifactory::GemImport::VERSION
6
6
  spec.authors = ["Thomas Scholz"]
7
- spec.email = ["thomas.scholz@rubyapps.ch"]
7
+ spec.email = ["thomas.scholz@rubyapps.ch"]
8
8
 
9
- spec.summary = %q{Artifactory Gem Import.}
10
- spec.description = %q{Artifactory Gem Import for importing gems from existing Gem Repo into a new Artifactory Gem Repo.}
11
- spec.homepage = "https://github.com/tscholz/artifactory-gem_import"
9
+ spec.summary = %q{Artifactory Gem Import.}
10
+ spec.description = %q{Artifactory Gem Import for importing gems from existing Gem Repo into a new Artifactory Gem Repo.}
11
+ spec.homepage = "https://github.com/tscholz/artifactory-gem_import"
12
12
  spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
13
 
14
14
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
15
 
16
- spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
17
  spec.metadata["source_code_uri"] = spec.homepage
18
- spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
18
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/CHANGELOG.md"
19
19
 
20
20
  # Specify which files should be added to the gem when it is released.
21
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
22
+ spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
23
23
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
24
  end
25
- spec.bindir = "exe"
26
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.add_dependency "httparty", "~> 0.18"
29
+ spec.add_dependency "httparty", "~> 0.21"
30
30
  spec.add_dependency "thor", "~> 1.0"
31
31
  end
@@ -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,4 +1,5 @@
1
1
  require "digest"
2
+ require "json"
2
3
 
3
4
  module Artifactory
4
5
  module GemImport
@@ -1,5 +1,5 @@
1
1
  module Artifactory
2
2
  module GemImport
3
- VERSION = "0.1.4"
3
+ VERSION = "0.2.2"
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.2
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: 2024-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.18'
19
+ version: '0.21'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.18'
26
+ version: '0.21'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -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.5.14
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: Artifactory Gem Import.