gitlab_add_approval_rules_bot 0.1.0 → 0.1.3

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: 81962cc2d72ae66fb21336cf41280e885d3d9cf67b4d1d9fdb387a67b7e460f2
4
- data.tar.gz: '09b3915ebf67302fa75af58446d56b8db10b4d3273713c18be62aee5becd329c'
3
+ metadata.gz: '099c7fac267195d3b330fc788f6a871590358040df7c88eb1ac6d38144f80483'
4
+ data.tar.gz: 4a12597e1f0a64fcc78a66bad325bf732406fc56ee6d16143b875c2f34dea821
5
5
  SHA512:
6
- metadata.gz: 6eb8d9058fba110b90f28bac0b21c64ddf38611d0a14029ce5cd71f17952f2c9b19e8e419ab02592d25fdf73eb8c925927f848a974bd5e88740a65935309b6b1
7
- data.tar.gz: ac1c16d0f8fd78f96973697e66bcf59cfebb796d9bd0a3dafe2a212a64a140201ae0ae554678c1e6f1eed44e1a5b5640f6821a693bab8b69edc5f8381d2ecc42
6
+ metadata.gz: 7b15f877f00ac4c92f5daa055067308d6294d62b6ccca0a80e3b456a9cd15687820c1fc654a77aa68872e8ea27ce37ccbae860fe111f0c95efc59144b7b1e809
7
+ data.tar.gz: 2d34d9bb07fa2d07511e034374c9b43a49ba06230acb0bc4c9d5ca0d969c7d4cd5f3ce739a0788ed93a5af780a575ba952b1d0ecaf74fcb76f5934eb674dc8d3
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitlabAddApprovalRulesBot
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -20,49 +20,65 @@ module GitlabAddApprovalRulesBot
20
20
  default_task :help
21
21
 
22
22
  desc "apply", "apply"
23
- def apply(config_filename=nil, dry_run=true)
23
+ option :dry_run, aliases: "-d", type: :boolean, desc: "dry run mode", default: false
24
+ def apply(config_filename=nil)
24
25
  config_filename = "config.yml" if config_filename.nil?
25
26
  config = YAML.load_file(config_filename)
26
27
  project_id = ENV['PROJECT_ID'] or ENV['CI_PROJECT_ID']
27
28
  merge_request_iid = ENV['MERGE_REQUEST_IID'] or ENV['CI_MERGE_REQUEST_IID']
28
29
 
29
30
  config['rules'].each do |rule|
30
- options = {
31
+ rule_options = {
31
32
  name: rule['name'],
32
33
  approvals_required: rule['approvals_required'],
33
34
  user_ids: [],
34
35
  group_ids: [],
35
36
  }
36
37
  if rule.has_key? 'approval_project_rule_id'
37
- options[:approval_project_rule_id] = rule['approval_project_rule_id']
38
+ rule_options[:approval_project_rule_id] = rule['approval_project_rule_id']
38
39
  end
39
40
  if rule.has_key? 'user_ids'
40
- options[:user_ids] = rule['user_ids']
41
+ rule_options[:user_ids] = rule['user_ids']
41
42
  end
42
43
  if rule.has_key? 'group_ids'
43
- options[:group_ids] = rule['group_ids']
44
+ rule_options[:group_ids] = rule['group_ids']
44
45
  end
45
46
  if rule.has_key? 'usernames'
46
47
  rule['usernames'].each do |username|
47
- user = Gitlab.users(options: {username: username})&.first
48
+ user = Gitlab.user_search(username)&.first
48
49
  pp user
49
- options[:user_ids] << user['id'] unless user.nil?
50
+ if not user.nil? and user['username'] == username
51
+ rule_options[:user_ids] << user['id'] unless user.nil?
52
+ end
50
53
  end
51
54
  end
52
55
  if rule.has_key? 'groupnames'
53
56
  rule['groupnames'].each do |groupname|
54
- group = Gitlab.groups(options: {groupname: groupname})&.first
57
+ group = Gitlab.group_search(groupname)&.first
55
58
  pp group
56
- options[:group_ids] << group['id'] unless group.nil?
59
+ if not group.nil? and group['groupname'] == groupname
60
+ rule_options[:group_ids] << group['id'] unless group.nil?
61
+ end
62
+
57
63
  end
58
64
  end
59
65
  puts "project_id: #{project_id}"
60
66
  puts "merge_request_iid: #{merge_request_iid}"
61
- puts "options: #{options}"
62
- if dry_run
67
+ puts "options: #{rule_options}"
68
+ if options[:dry_run]
63
69
  puts "THIS IS DRY RUN MODE!!"
64
70
  else
65
- Gitlab.create_merge_request_level_rule(project_id, merge_request_iid, options)
71
+ if project_id.nil?
72
+ puts "project_id is nil"
73
+ puts "exit"
74
+ return
75
+ end
76
+ if merge_request_iid.nil?
77
+ puts "merge_request_iid is nil"
78
+ puts "exit"
79
+ return
80
+ end
81
+ Gitlab.create_merge_request_level_rule(project_id, merge_request_iid, rule_options)
66
82
  end
67
83
  end
68
84
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_add_approval_rules_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shoma FUKUDA