Skip to content

Commit 90691f4

Browse files
authored
Merge pull request #123 from OpenGeoMetadata/deny-list
move to a denylist for the cloning since not everyone is naming with …
2 parents ce5ddcb + c4962b4 commit 90691f4

8 files changed

Lines changed: 3288 additions & 7 deletions

File tree

.rubocop.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ AllCops:
1111
Exclude:
1212
- 'geo_combine.gemspec'
1313
- 'tmp/**/*'
14+
15+
RSpec/DescribeClass:
16+
Enabled: false

.rubocop_todo.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,16 @@ RSpec/FilePath:
7878
Exclude:
7979
- 'spec/lib/geo_combine_spec.rb'
8080

81-
# Offense count: 23
8281
# Configuration parameters: .
8382
# SupportedStyles: have_received, receive
8483
RSpec/MessageSpies:
85-
EnforcedStyle: receive
84+
EnforcedStyle: have_received
85+
Exclude:
86+
- 'spec/lib/geo_combine/esri_open_data_spec.rb'
87+
- 'spec/lib/geo_combine/geo_blacklight_harvester_spec.rb'
88+
- 'spec/lib/geo_combine/geoblacklight_spec.rb'
89+
- 'spec/lib/geo_combine/ogp_spec.rb'
90+
- 'spec/lib/geo_combine_spec.rb'
8691

8792
# Offense count: 39
8893
RSpec/MultipleExpectations:

geo_combine.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
3434
spec.add_development_dependency 'rubocop-rspec', '~> 2.8'
3535
spec.add_development_dependency 'rubocop-rake'
3636
spec.add_development_dependency 'simplecov'
37+
spec.add_development_dependency 'webmock', '~> 3.14'
3738
end

lib/tasks/geo_combine.rake

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,13 @@ namespace :geocombine do
1010
commit_within = (ENV['SOLR_COMMIT_WITHIN'] || 5000).to_i
1111
ogm_path = ENV['OGM_PATH'] || 'tmp/opengeometadata'
1212
solr_url = ENV['SOLR_URL'] || 'http://127.0.0.1:8983/solr/blacklight-core'
13-
whitelist = %w[
14-
https://github.com/OpenGeoMetadata/big-ten.git
13+
denylist = [
14+
'https://github.com/OpenGeoMetadata/GeoCombine.git',
15+
'https://github.com/OpenGeoMetadata/aardvark.git',
16+
'https://github.com/OpenGeoMetadata/metadatarepository.git',
17+
'https://github.com/OpenGeoMetadata/ogm_utils-python.git',
18+
'https://github.com/OpenGeoMetadata/opengeometadata.github.io.git',
19+
'https://github.com/OpenGeoMetadata/opengeometadata-rails.git'
1520
]
1621

1722
desc 'Clone OpenGeoMetadata repositories'
@@ -23,10 +28,10 @@ namespace :geocombine do
2328
ogm_repos = JSON.parse(Net::HTTP.get(ogm_api_uri)).map do |repo|
2429
repo['clone_url'] if (repo['size']).positive?
2530
end.compact
26-
ogm_repos.select! { |repo| whitelist.include?(repo) || repo =~ /(edu|org|uk)\..*\.git$/ }
31+
ogm_repos.reject! { |repo| denylist.include?(repo) }
2732
end
2833
ogm_repos.each do |repo|
29-
system "echo #{repo} && mkdir -p #{ogm_path} && cd #{ogm_path} && git clone --depth 1 #{repo}"
34+
Kernel.system "echo #{repo} && mkdir -p #{ogm_path} && cd #{ogm_path} && git clone --depth 1 #{repo}"
3035
end
3136
end
3237

@@ -40,7 +45,7 @@ namespace :geocombine do
4045
paths.each do |path|
4146
next unless File.directory?(path)
4247

43-
system "echo #{path} && cd #{path} && git pull origin"
48+
Kernel.system "echo #{path} && cd #{path} && git pull origin"
4449
end
4550
end
4651

spec/fixtures/docs/repos.json

Lines changed: 3224 additions & 0 deletions
Large diffs are not rendered by default.

spec/lib/tasks/geo_combine_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
require 'rake'
5+
6+
describe 'geo_combine.rake' do
7+
before do
8+
load('lib/tasks/geo_combine.rake')
9+
end
10+
11+
describe 'geocombine:clone' do
12+
before do
13+
WebMock.disable_net_connect!
14+
end
15+
16+
after do
17+
WebMock.allow_net_connect!
18+
end
19+
20+
it 'does not clone repos on deny list' do
21+
stub_request(:get, 'https://api.github.com/orgs/opengeometadata/repos').to_return(status: 200, body: read_fixture('docs/repos.json'))
22+
allow(Kernel).to receive(:system)
23+
Rake::Task['geocombine:clone'].invoke
24+
expect(Kernel).to have_received(:system).exactly(20).times
25+
end
26+
end
27+
end

spec/spec_helper.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@
1818
require 'rspec-html-matchers'
1919
require 'byebug'
2020

21+
# Setup webmock for specific tests
22+
require 'webmock/rspec'
23+
WebMock.allow_net_connect!
24+
25+
# include the spec support files
26+
Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
27+
2128
RSpec.configure do |config|
2229
config.include Helpers
2330
config.include RSpecHtmlMatchers

spec/support/fixtures.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
def read_fixture(fname)
4+
File.read(File.join(fixture_dir, fname))
5+
end
6+
7+
def fixture_dir
8+
@fixture_dir ||= File.join(File.dirname(__FILE__), '../fixtures')
9+
end

0 commit comments

Comments
 (0)