webtranslateit-safe 0.4.2 → 0.4.4

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +22 -9
  3. data/bin/webtranslateit-safe +13 -13
  4. data/lib/webtranslateit/safe/archive.rb +9 -4
  5. data/lib/webtranslateit/safe/backup.rb +9 -2
  6. data/lib/webtranslateit/safe/cloudfiles.rb +21 -15
  7. data/lib/webtranslateit/safe/config/builder.rb +17 -8
  8. data/lib/webtranslateit/safe/config/node.rb +17 -10
  9. data/lib/webtranslateit/safe/ftp.rb +25 -25
  10. data/lib/webtranslateit/safe/gpg.rb +8 -2
  11. data/lib/webtranslateit/safe/gzip.rb +5 -1
  12. data/lib/webtranslateit/safe/local.rb +15 -11
  13. data/lib/webtranslateit/safe/mongodump.rb +12 -6
  14. data/lib/webtranslateit/safe/mysqldump.rb +9 -5
  15. data/lib/webtranslateit/safe/pgdump.rb +9 -9
  16. data/lib/webtranslateit/safe/pipe.rb +6 -0
  17. data/lib/webtranslateit/safe/s3.rb +28 -22
  18. data/lib/webtranslateit/safe/sftp.rb +42 -25
  19. data/lib/webtranslateit/safe/sink.rb +7 -2
  20. data/lib/webtranslateit/safe/source.rb +13 -9
  21. data/lib/webtranslateit/safe/stream.rb +14 -6
  22. data/lib/webtranslateit/safe/svndump.rb +5 -1
  23. data/lib/webtranslateit/safe/tmp_file.rb +16 -11
  24. data/lib/webtranslateit/safe.rb +12 -13
  25. metadata +3 -36
  26. data/.autotest +0 -3
  27. data/.document +0 -5
  28. data/.github/dependabot.yml +0 -26
  29. data/.github/release-drafter.yml +0 -36
  30. data/.github/workflows/ci.yml +0 -51
  31. data/.github/workflows/release-drafter.yml +0 -29
  32. data/.gitignore +0 -18
  33. data/.rspec +0 -3
  34. data/.rubocop.yml +0 -8
  35. data/.rubocop_todo.yml +0 -965
  36. data/Gemfile +0 -11
  37. data/Gemfile.lock +0 -89
  38. data/LICENSE.txt +0 -22
  39. data/Rakefile +0 -8
  40. data/TODO +0 -31
  41. data/lib/extensions/mktmpdir.rb +0 -45
  42. data/lib/webtranslateit/safe/version.rb +0 -5
  43. data/spec/integration/archive_integration_spec.rb +0 -89
  44. data/spec/integration/cleanup_spec.rb +0 -62
  45. data/spec/spec_helper.rb +0 -7
  46. data/spec/webtranslateit/safe/archive_spec.rb +0 -67
  47. data/spec/webtranslateit/safe/cloudfiles_spec.rb +0 -175
  48. data/spec/webtranslateit/safe/config_spec.rb +0 -307
  49. data/spec/webtranslateit/safe/gpg_spec.rb +0 -148
  50. data/spec/webtranslateit/safe/gzip_spec.rb +0 -64
  51. data/spec/webtranslateit/safe/local_spec.rb +0 -109
  52. data/spec/webtranslateit/safe/mongodump_spec.rb +0 -54
  53. data/spec/webtranslateit/safe/mysqldump_spec.rb +0 -83
  54. data/spec/webtranslateit/safe/pgdump_spec.rb +0 -45
  55. data/spec/webtranslateit/safe/s3_spec.rb +0 -168
  56. data/spec/webtranslateit/safe/svndump_spec.rb +0 -39
  57. data/templates/script.rb +0 -183
  58. data/webtranslateit-safe.gemspec +0 -31
@@ -1,17 +1,15 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Pgdump < Source
4
6
 
5
7
  def command
6
- if config['password']
7
- ENV['PGPASSWORD'] = config['password']
8
- else
9
- ENV['PGPASSWORD'] = nil
10
- end
8
+ ENV['PGPASSWORD'] = (config['password'] || nil)
11
9
  "pg_dump #{postgres_options} #{postgres_username} #{postgres_host} #{postgres_port} #{@id}"
12
10
  end
13
11
 
14
- def extension; '.sql'; end
12
+ def extension = '.sql'
15
13
 
16
14
  protected
17
15
 
@@ -20,17 +18,19 @@ module WebTranslateIt
20
18
  end
21
19
 
22
20
  def postgres_host
23
- config['host'] && "--host='#{config["host"]}'"
21
+ config['host'] && "--host='#{config['host']}'"
24
22
  end
25
23
 
26
24
  def postgres_port
27
- config['port'] && "--port='#{config["port"]}'"
25
+ config['port'] && "--port='#{config['port']}'"
28
26
  end
29
27
 
30
28
  def postgres_username
31
- config['user'] && "--username='#{config["user"]}'"
29
+ config['user'] && "--username='#{config['user']}'"
32
30
  end
33
31
 
34
32
  end
33
+
35
34
  end
35
+
36
36
  end
@@ -1,6 +1,9 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Pipe < Stream
6
+
4
7
  # process adds required commands to the current
5
8
  # shell command string
6
9
  # :active?, :pipe, :extension and :post_process are
@@ -12,6 +15,9 @@ module WebTranslateIt
12
15
  @backup.extension << extension
13
16
  post_process
14
17
  end
18
+
15
19
  end
20
+
16
21
  end
22
+
17
23
  end
@@ -1,7 +1,10 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class S3 < Sink
4
- MAX_S3_FILE_SIZE = 5368709120
6
+
7
+ MAX_S3_FILE_SIZE = 5_368_709_120
5
8
 
6
9
  def active?
7
10
  bucket && key && secret
@@ -15,26 +18,26 @@ module WebTranslateIt
15
18
 
16
19
  def save
17
20
  # FIXME: user friendly error here :)
18
- raise RuntimeError, 'pipe-streaming not supported for S3.' unless @backup.path
21
+ raise 'pipe-streaming not supported for S3.' unless @backup.path
19
22
 
20
23
  # needed in cleanup even on dry run
21
- AWS::S3::Base.establish_connection!(:access_key_id => key, :secret_access_key => secret, :use_ssl => true) unless local_only?
24
+ AWS::S3::Base.establish_connection!(access_key_id: key, secret_access_key: secret, use_ssl: true) unless local_only?
22
25
 
23
26
  puts "Uploading #{bucket}:#{full_path}" if verbose? || dry_run?
24
- unless dry_run? || local_only?
25
- if File.stat(@backup.path).size > MAX_S3_FILE_SIZE
26
- STDERR.puts "ERROR: File size exceeds maximum allowed for upload to S3 (#{MAX_S3_FILE_SIZE}): #{@backup.path}"
27
- return
28
- end
29
- benchmark = Benchmark.realtime do
30
- AWS::S3::Bucket.create(bucket) unless bucket_exists?(bucket)
31
- File.open(@backup.path) do |file|
32
- AWS::S3::S3Object.store(full_path, file, bucket)
33
- end
27
+ return if dry_run? || local_only?
28
+
29
+ if File.stat(@backup.path).size > MAX_S3_FILE_SIZE
30
+ warn "ERROR: File size exceeds maximum allowed for upload to S3 (#{MAX_S3_FILE_SIZE}): #{@backup.path}"
31
+ return
32
+ end
33
+ benchmark = Benchmark.realtime do
34
+ AWS::S3::Bucket.create(bucket) unless bucket_exists?(bucket)
35
+ File.open(@backup.path) do |file|
36
+ AWS::S3::S3Object.store(full_path, file, bucket)
34
37
  end
35
- puts '...done' if verbose?
36
- puts('Upload took ' + sprintf('%.2f', benchmark) + ' second(s).') if verbose?
37
38
  end
39
+ puts '...done' if verbose?
40
+ puts("Upload took #{format('%.2f', benchmark)} second(s).") if verbose?
38
41
  end
39
42
 
40
43
  def cleanup
@@ -43,16 +46,16 @@ module WebTranslateIt
43
46
  return unless keep = config[:keep, :s3]
44
47
 
45
48
  puts "listing files: #{bucket}:#{base}*" if verbose?
46
- files = AWS::S3::Bucket.objects(bucket, :prefix => base, :max_keys => keep * 2)
47
- puts files.collect {|x| x.key} if verbose?
49
+ files = AWS::S3::Bucket.objects(bucket, prefix: base, max_keys: keep * 2)
50
+ puts files.collect(&:key) if verbose?
48
51
 
49
- files = files.
50
- collect {|x| x.key}.
51
- sort
52
+ files = files
53
+ .collect(&:key)
54
+ .sort
52
55
 
53
56
  cleanup_with_limit(files, keep) do |f|
54
57
  puts "removing s3 file #{bucket}:#{f}" if dry_run? || verbose?
55
- AWS::S3::Bucket.objects(bucket, :prefix => f)[0].delete unless dry_run? || local_only?
58
+ AWS::S3::Bucket.objects(bucket, prefix: f)[0].delete unless dry_run? || local_only?
56
59
  end
57
60
  end
58
61
 
@@ -69,12 +72,15 @@ module WebTranslateIt
69
72
  end
70
73
 
71
74
  private
72
-
75
+
73
76
  def bucket_exists?(bucket)
74
77
  true if AWS::S3::Bucket.find(bucket)
75
78
  rescue AWS::S3::NoSuchBucket
76
79
  false
77
80
  end
81
+
78
82
  end
83
+
79
84
  end
85
+
80
86
  end
@@ -1,7 +1,11 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Sftp < Sink
4
6
 
7
+ MAX_RETRIES = 5
8
+
5
9
  protected
6
10
 
7
11
  def active?
@@ -12,33 +16,46 @@ module WebTranslateIt
12
16
  @path ||= expand(config[:sftp, :path] || config[:local, :path] || ':kind/:id')
13
17
  end
14
18
 
15
- def save
16
- raise RuntimeError, 'pipe-streaming not supported for SFTP.' unless @backup.path
19
+ def save # rubocop:todo Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
20
+ raise 'pipe-streaming not supported for SFTP.' unless @backup.path
17
21
 
18
22
  puts "Uploading #{host}:#{full_path} via SFTP" if verbose? || dry_run?
19
23
 
20
- unless dry_run? || local_only?
21
- opts = {}
22
- opts[:password] = password if password
23
- opts[:port] = port if port
24
- Net::SFTP.start(host, user, opts) do |sftp|
25
- puts "Sending #{@backup.path} to #{full_path}" if verbose?
26
- begin
27
- sftp.upload! @backup.path, full_path
28
- rescue Net::SFTP::StatusException
29
- puts "Ensuring remote path (#{path}) exists" if verbose?
30
- # mkdir -p
31
- folders = path.split('/')
32
- folders.each_index do |i|
33
- folder = folders[0..i].join('/')
34
- puts "Creating #{folder} on remote" if verbose?
35
- sftp.mkdir!(folder) rescue Net::SFTP::StatusException
24
+ return if dry_run? || local_only?
25
+
26
+ retries = 0
27
+ opts = {}
28
+ opts[:password] = password if password
29
+ opts[:port] = port if port
30
+ Net::SFTP.start(host, user, opts) do |sftp|
31
+ puts "Sending #{@backup.path} to #{full_path}" if verbose?
32
+ begin
33
+ sftp.upload! @backup.path, full_path
34
+ rescue IO::TimeoutError
35
+ puts 'Upload timed out, retrying'
36
+ retries += 1
37
+ if retries >= MAX_RETRIES
38
+ puts "Tried #{retries} times. Giving up."
39
+ else
40
+ retry unless retries >= MAX_RETRIES
41
+ end
42
+ rescue Net::SFTP::StatusException
43
+ puts "Ensuring remote path (#{path}) exists" if verbose?
44
+ # mkdir -p
45
+ folders = path.split('/')
46
+ folders.each_index do |i|
47
+ folder = folders[0..i].join('/')
48
+ puts "Creating #{folder} on remote" if verbose?
49
+ begin
50
+ sftp.mkdir!(folder)
51
+ rescue StandardError
52
+ Net::SFTP::StatusException
36
53
  end
37
- retry
38
54
  end
55
+ retry
39
56
  end
40
- puts '...done' if verbose?
41
57
  end
58
+ puts '...done' if verbose?
42
59
  end
43
60
 
44
61
  def cleanup
@@ -53,11 +70,9 @@ module WebTranslateIt
53
70
  Net::SFTP.start(host, user, opts) do |sftp|
54
71
  files = sftp.dir.glob(path, File.basename("#{base}*"))
55
72
 
56
- puts files.collect {|x| x.name } if verbose?
73
+ puts files.collect(&:name) if verbose?
57
74
 
58
- files = files.
59
- collect {|x| x.name }.
60
- sort
75
+ files = files.collect(&:name).sort
61
76
 
62
77
  cleanup_with_limit(files, keep) do |f|
63
78
  file = File.join(path, f)
@@ -84,5 +99,7 @@ module WebTranslateIt
84
99
  end
85
100
 
86
101
  end
102
+
87
103
  end
88
- end
104
+
105
+ end
@@ -1,5 +1,7 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Sink < Stream
4
6
 
5
7
  def process
@@ -15,7 +17,7 @@ module WebTranslateIt
15
17
  # base is used in 'cleanup' to find all files that begin with base. the '.'
16
18
  # at the end is essential to distinguish b/w foo.* and foobar.* archives for example
17
19
  def base
18
- @base ||= File.join(path, File.basename(@backup.filename).split('.').first + '.')
20
+ @base ||= File.join(path, "#{File.basename(@backup.filename).split('.').first}.")
19
21
  end
20
22
 
21
23
  def full_path
@@ -30,6 +32,9 @@ module WebTranslateIt
30
32
  # TODO: validate here
31
33
  to_remove.each(&block)
32
34
  end
35
+
33
36
  end
37
+
34
38
  end
35
- end
39
+
40
+ end
@@ -1,10 +1,14 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Source < Stream
4
6
 
5
7
  attr_accessor :id
8
+
6
9
  def initialize(id, config)
7
- @id, @config = id.to_s, config
10
+ @id = id.to_s
11
+ @config = config
8
12
  end
9
13
 
10
14
  def timestamp
@@ -21,12 +25,13 @@ module WebTranslateIt
21
25
 
22
26
  def backup
23
27
  return @backup if @backup
28
+
24
29
  @backup = Backup.new(
25
- :id => @id,
26
- :kind => kind,
27
- :extension => extension,
28
- :command => command,
29
- :timestamp => timestamp
30
+ id: @id,
31
+ kind: kind,
32
+ extension: extension,
33
+ command: command,
34
+ timestamp: timestamp
30
35
  )
31
36
  # can't do this in the initializer hash above since
32
37
  # filename() calls expand() which requires @backup
@@ -35,13 +40,12 @@ module WebTranslateIt
35
40
  @backup
36
41
  end
37
42
 
38
- protected
39
-
40
43
  def self.human_name
41
44
  name.split('::').last.downcase
42
45
  end
43
46
 
44
47
  end
48
+
45
49
  end
46
- end
47
50
 
51
+ end
@@ -1,17 +1,22 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Stream
4
6
 
5
7
  attr_accessor :config, :backup
8
+
6
9
  def initialize(config, backup)
7
- @config, @backup = config, backup
10
+ @config = config
11
+ @backup = backup
8
12
  end
13
+
9
14
  # FIXME: move to Backup
10
15
  def expand(path)
11
- path .
12
- gsub(/:kind\b/, @backup.kind.to_s) .
13
- gsub(/:id\b/, @backup.id.to_s) .
14
- gsub(/:timestamp\b/, @backup.timestamp)
16
+ path
17
+ .gsub(/:kind\b/, @backup.kind.to_s)
18
+ .gsub(/:id\b/, @backup.id.to_s)
19
+ .gsub(/:timestamp\b/, @backup.timestamp)
15
20
  end
16
21
 
17
22
  private
@@ -27,6 +32,9 @@ module WebTranslateIt
27
32
  def dry_run?
28
33
  config[:dry_run]
29
34
  end
35
+
30
36
  end
37
+
31
38
  end
32
- end
39
+
40
+ end
@@ -1,13 +1,17 @@
1
1
  module WebTranslateIt
2
+
2
3
  module Safe
4
+
3
5
  class Svndump < Source
4
6
 
5
7
  def command
6
8
  "svnadmin dump #{config[:options]} #{config[:repo_path]}"
7
9
  end
8
10
 
9
- def extension; '.svn'; end
11
+ def extension = '.svn'
10
12
 
11
13
  end
14
+
12
15
  end
16
+
13
17
  end
@@ -1,7 +1,10 @@
1
1
  require 'tmpdir'
2
2
  module WebTranslateIt
3
+
3
4
  module Safe
5
+
4
6
  module TmpFile
7
+
5
8
  @keep_files = []
6
9
 
7
10
  def self.tmproot
@@ -12,22 +15,21 @@ module WebTranslateIt
12
15
  begin
13
16
  FileUtils.remove_entry_secure tmproot
14
17
  rescue ArgumentError => e
15
- if e.message =~ /parent directory is world writable/
16
- puts <<-ERR
18
+ raise unless e.message.include?('parent directory is world writable')
19
+
20
+ puts <<~ERR
17
21
 
18
22
 
19
- ********************************************************************************
20
- It looks like you have wrong permissions on your TEMP directory. The usual
21
- case is when you have world writable TEMP directory withOUT the sticky bit.
23
+ ********************************************************************************
24
+ It looks like you have wrong permissions on your TEMP directory. The usual
25
+ case is when you have world writable TEMP directory withOUT the sticky bit.
22
26
 
23
- Try "chmod +t" on it.
27
+ Try "chmod +t" on it.
24
28
 
25
- ********************************************************************************
29
+ ********************************************************************************
26
30
 
27
- ERR
28
- else
29
- raise
30
- end
31
+ ERR
32
+ raise
31
33
  end
32
34
  @tmproot = nil
33
35
  end
@@ -43,6 +45,9 @@ ERR
43
45
  @keep_files << file # so that it will not get gcollected and removed from filesystem until the end
44
46
  file.path
45
47
  end
48
+
46
49
  end
50
+
47
51
  end
52
+
48
53
  end
@@ -1,5 +1,3 @@
1
- require 'webtranslateit/safe/version'
2
-
3
1
  require 'aws/s3'
4
2
  require 'cloudfiles'
5
3
  require 'net/sftp'
@@ -8,7 +6,6 @@ require 'fileutils'
8
6
  require 'benchmark'
9
7
 
10
8
  require 'tempfile'
11
- require 'extensions/mktmpdir'
12
9
 
13
10
  require 'webtranslateit/safe/tmp_file'
14
11
 
@@ -38,7 +35,9 @@ require 'webtranslateit/safe/sftp'
38
35
  require 'webtranslateit/safe/ftp'
39
36
 
40
37
  module WebTranslateIt
38
+
41
39
  module Safe
40
+
42
41
  ROOT = File.join(File.dirname(__FILE__), '..', '..')
43
42
 
44
43
  def safe(&block)
@@ -46,17 +45,15 @@ module WebTranslateIt
46
45
  end
47
46
 
48
47
  def process(config)
48
+ [[Mysqldump, %i[mysqldump databases]],
49
+ [Pgdump, %i[pgdump databases]],
50
+ [Mongodump, %i[mongodump databases]],
51
+ [Archive, %i[tar archives]],
52
+ [Svndump, %i[svndump repos]]].each do |klass, path|
53
+ next unless collection = config[*path]
49
54
 
50
- [[Mysqldump, [:mysqldump, :databases]],
51
- [Pgdump, [:pgdump, :databases]],
52
- [Mongodump, [:mongodump, :databases]],
53
- [Archive, [:tar, :archives]],
54
- [Svndump, [:svndump, :repos]]
55
- ].each do |klass, path|
56
- if collection = config[*path]
57
- collection.each do |name, c|
58
- klass.new(name, c).backup.run(c, :gpg, :gzip, :local, :s3, :cloudfiles, :sftp, :ftp)
59
- end
55
+ collection.each do |name, c|
56
+ klass.new(name, c).backup.run(c, :gpg, :gzip, :local, :s3, :cloudfiles, :sftp, :ftp)
60
57
  end
61
58
  end
62
59
 
@@ -64,5 +61,7 @@ module WebTranslateIt
64
61
  end
65
62
  module_function :safe
66
63
  module_function :process
64
+
67
65
  end
66
+
68
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webtranslateit-safe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edouard Briere
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-05-22 00:00:00.000000000 Z
12
+ date: 2023-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-s3
@@ -64,25 +64,9 @@ executables:
64
64
  extensions: []
65
65
  extra_rdoc_files: []
66
66
  files:
67
- - ".autotest"
68
- - ".document"
69
- - ".github/dependabot.yml"
70
- - ".github/release-drafter.yml"
71
- - ".github/workflows/ci.yml"
72
- - ".github/workflows/release-drafter.yml"
73
- - ".gitignore"
74
- - ".rspec"
75
- - ".rubocop.yml"
76
- - ".rubocop_todo.yml"
77
67
  - CHANGELOG
78
- - Gemfile
79
- - Gemfile.lock
80
- - LICENSE.txt
81
68
  - README.markdown
82
- - Rakefile
83
- - TODO
84
69
  - bin/webtranslateit-safe
85
- - lib/extensions/mktmpdir.rb
86
70
  - lib/webtranslateit/safe.rb
87
71
  - lib/webtranslateit/safe/archive.rb
88
72
  - lib/webtranslateit/safe/backup.rb
@@ -104,23 +88,6 @@ files:
104
88
  - lib/webtranslateit/safe/stream.rb
105
89
  - lib/webtranslateit/safe/svndump.rb
106
90
  - lib/webtranslateit/safe/tmp_file.rb
107
- - lib/webtranslateit/safe/version.rb
108
- - spec/integration/archive_integration_spec.rb
109
- - spec/integration/cleanup_spec.rb
110
- - spec/spec_helper.rb
111
- - spec/webtranslateit/safe/archive_spec.rb
112
- - spec/webtranslateit/safe/cloudfiles_spec.rb
113
- - spec/webtranslateit/safe/config_spec.rb
114
- - spec/webtranslateit/safe/gpg_spec.rb
115
- - spec/webtranslateit/safe/gzip_spec.rb
116
- - spec/webtranslateit/safe/local_spec.rb
117
- - spec/webtranslateit/safe/mongodump_spec.rb
118
- - spec/webtranslateit/safe/mysqldump_spec.rb
119
- - spec/webtranslateit/safe/pgdump_spec.rb
120
- - spec/webtranslateit/safe/s3_spec.rb
121
- - spec/webtranslateit/safe/svndump_spec.rb
122
- - templates/script.rb
123
- - webtranslateit-safe.gemspec
124
91
  homepage: http://github.com/webtranslateit/safe
125
92
  licenses:
126
93
  - MIT
@@ -141,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
108
  - !ruby/object:Gem::Version
142
109
  version: '0'
143
110
  requirements: []
144
- rubygems_version: 3.4.13
111
+ rubygems_version: 3.4.14
145
112
  signing_key:
146
113
  specification_version: 4
147
114
  summary: Backup filesystem and databases (MySQL and PostgreSQL) locally or to a remote
data/.autotest DELETED
@@ -1,3 +0,0 @@
1
- Autotest.add_hook(:initialize) do |at|
2
- at.add_mapping(%r{lib/webtranslateit/safe/config/.*\.rb$}, true) {'spec/webtranslateit/safe/config_spec.rb'}
3
- end
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
@@ -1,26 +0,0 @@
1
- # Please see the documentation for all configuration options:
2
- # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
3
-
4
- version: 2
5
- updates:
6
- - package-ecosystem: "bundler"
7
- directory: "/"
8
- schedule:
9
- interval: "weekly"
10
- day: "monday"
11
- time: "04:00"
12
- reviewers:
13
- - edouard
14
- assignees:
15
- - edouard
16
-
17
- - package-ecosystem: github-actions
18
- directory: "/"
19
- schedule:
20
- interval: weekly
21
- day: monday
22
- time: "04:00"
23
- reviewers:
24
- - edouard
25
- assignees:
26
- - edouard
@@ -1,36 +0,0 @@
1
- name-template: '$RESOLVED_VERSION 🌈'
2
- tag-template: '$RESOLVED_VERSION'
3
- categories:
4
- - title: '🚀 Features'
5
- labels:
6
- - 'feature'
7
- - 'enhancement'
8
- - title: '🐛 Bug Fixes'
9
- labels:
10
- - 'bug'
11
- - 'design'
12
- - 'performance'
13
- - title: '🧰 Maintenance'
14
- labels:
15
- - 'admin'
16
- - 'refactoring'
17
- - 'dependencies'
18
- - 'github_actions'
19
- - 'tests'
20
- change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
21
- change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
22
- version-resolver:
23
- major:
24
- labels:
25
- - 'major'
26
- minor:
27
- labels:
28
- - 'minor'
29
- patch:
30
- labels:
31
- - 'patch'
32
- default: patch
33
- template: |
34
- ## Changes
35
-
36
- $CHANGES