pantograph 0.1.14 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/pantograph/lib/assets/custom_action_template.rb +18 -14
  4. data/pantograph/lib/pantograph/action.rb +1 -1
  5. data/pantograph/lib/pantograph/action_collector.rb +1 -1
  6. data/pantograph/lib/pantograph/actions/actions_helper.rb +2 -2
  7. data/pantograph/lib/pantograph/actions/bundle_install.rb +120 -84
  8. data/pantograph/lib/pantograph/actions/cloc.rb +64 -49
  9. data/pantograph/lib/pantograph/actions/create_pull_request.rb +1 -1
  10. data/pantograph/lib/pantograph/actions/danger.rb +103 -82
  11. data/pantograph/lib/pantograph/actions/debug.rb +2 -2
  12. data/pantograph/lib/pantograph/actions/default_platform.rb +5 -3
  13. data/pantograph/lib/pantograph/actions/download.rb +10 -9
  14. data/pantograph/lib/pantograph/actions/echo.rb +1 -1
  15. data/pantograph/lib/pantograph/actions/ensure_bundle_exec.rb +18 -10
  16. data/pantograph/lib/pantograph/actions/ensure_env_vars.rb +16 -17
  17. data/pantograph/lib/pantograph/actions/ensure_git_branch.rb +14 -14
  18. data/pantograph/lib/pantograph/actions/ensure_git_status_clean.rb +18 -34
  19. data/pantograph/lib/pantograph/actions/get_github_release.rb +1 -1
  20. data/pantograph/lib/pantograph/actions/git_branch.rb +6 -7
  21. data/pantograph/lib/pantograph/actions/git_commit.rb +21 -13
  22. data/pantograph/lib/pantograph/actions/git_pull.rb +4 -23
  23. data/pantograph/lib/pantograph/actions/git_pull_tags.rb +31 -0
  24. data/pantograph/lib/pantograph/actions/git_submodule_update.rb +23 -16
  25. data/pantograph/lib/pantograph/actions/git_tag_exists.rb +21 -25
  26. data/pantograph/lib/pantograph/actions/gradle.rb +82 -58
  27. data/pantograph/lib/pantograph/actions/import.rb +1 -1
  28. data/pantograph/lib/pantograph/actions/import_from_git.rb +48 -31
  29. data/pantograph/lib/pantograph/actions/is_ci.rb +1 -1
  30. data/pantograph/lib/pantograph/actions/is_verbose.rb +77 -0
  31. data/pantograph/lib/pantograph/actions/jira.rb +50 -55
  32. data/pantograph/lib/pantograph/actions/lane_context.rb +6 -6
  33. data/pantograph/lib/pantograph/actions/last_git_commit.rb +3 -3
  34. data/pantograph/lib/pantograph/actions/min_pantograph_version.rb +19 -25
  35. data/pantograph/lib/pantograph/actions/number_of_commits.rb +34 -30
  36. data/pantograph/lib/pantograph/actions/opt_out_usage.rb +15 -9
  37. data/pantograph/lib/pantograph/actions/pantograph_version.rb +2 -2
  38. data/pantograph/lib/pantograph/actions/println.rb +1 -1
  39. data/pantograph/lib/pantograph/actions/prompt.rb +31 -22
  40. data/pantograph/lib/pantograph/actions/prompt_secure.rb +128 -0
  41. data/pantograph/lib/pantograph/actions/reset_git_repo.rb +1 -1
  42. data/pantograph/lib/pantograph/actions/set_github_release.rb +4 -4
  43. data/pantograph/lib/pantograph/actions/sh.rb +3 -3
  44. data/pantograph/lib/pantograph/commands_generator.rb +1 -1
  45. data/pantograph/lib/pantograph/helper/git_helper.rb +29 -0
  46. data/pantograph/lib/pantograph/lane_manager.rb +1 -1
  47. data/pantograph/lib/pantograph/pant_file.rb +22 -16
  48. data/pantograph/lib/pantograph/plugins/template/README.md.erb +1 -1
  49. data/pantograph/lib/pantograph/setup/setup.rb +6 -17
  50. data/pantograph/lib/pantograph/version.rb +1 -1
  51. data/pantograph_core/lib/pantograph_core/configuration/commander_generator.rb +1 -1
  52. data/pantograph_core/lib/pantograph_core/globals.rb +1 -2
  53. data/pantograph_core/lib/pantograph_core/helper.rb +19 -6
  54. data/pantograph_core/lib/pantograph_core/ui/implementations/shell.rb +1 -4
  55. metadata +19 -5
  56. data/pantograph/lib/pantograph/actions/git_add.rb +0 -93
  57. data/pantograph/lib/pantograph/actions/make_changelog_from_jenkins.rb +0 -81
  58. data/pantograph/lib/pantograph/actions/nexus_upload.rb +0 -230
@@ -1,230 +0,0 @@
1
- module Pantograph
2
- module Actions
3
- class NexusUploadAction < Action
4
- def self.run(params)
5
- command = []
6
- command << "curl"
7
- command << verbose(params)
8
- command += ssl_options(params)
9
- command += proxy_options(params)
10
- command += upload_options(params)
11
- command << upload_url(params)
12
-
13
- Pantograph::Actions.sh(command.join(' '), log: params[:verbose])
14
- end
15
-
16
- def self.upload_url(params)
17
- url = "#{params[:endpoint]}#{params[:mount_path]}"
18
-
19
- if params[:nexus_version] == 2
20
- url << "/service/local/artifact/maven/content"
21
- else
22
- file_extension = File.extname(params[:file]).shellescape
23
-
24
- url << "/repository/#{params[:repo_id]}"
25
- url << "/#{params[:repo_group_id].gsub('.', '/')}"
26
- url << "/#{params[:repo_project_name]}"
27
- url << "/#{params[:repo_project_version]}"
28
- url << "/#{params[:repo_project_name]}-#{params[:repo_project_version]}"
29
- url << "-#{params[:repo_classifier]}" if params[:repo_classifier]
30
- url << file_extension.to_s
31
- end
32
-
33
- url.shellescape
34
- end
35
-
36
- def self.verbose(params)
37
- params[:verbose] ? "--verbose" : "--silent"
38
- end
39
-
40
- def self.upload_options(params)
41
- file_path = File.expand_path(params[:file]).shellescape
42
- file_extension = file_path.split('.').last.shellescape
43
-
44
- options = []
45
- if params[:nexus_version] == 2
46
- options << "-F p=zip"
47
- options << "-F hasPom=false"
48
- options << "-F r=#{params[:repo_id].shellescape}"
49
- options << "-F g=#{params[:repo_group_id].shellescape}"
50
- options << "-F a=#{params[:repo_project_name].shellescape}"
51
- options << "-F v=#{params[:repo_project_version].shellescape}"
52
-
53
- if params[:repo_classifier]
54
- options << "-F c=#{params[:repo_classifier].shellescape}"
55
- end
56
-
57
- options << "-F e=#{file_extension}"
58
- options << "-F file=@#{file_path}"
59
- else
60
- options << "--upload-file #{file_path}"
61
- end
62
-
63
- options << "-u #{params[:username].shellescape}:#{params[:password].shellescape}"
64
-
65
- options
66
- end
67
-
68
- def self.ssl_options(params)
69
- options = []
70
- unless params[:ssl_verify]
71
- options << "--insecure"
72
- end
73
-
74
- options
75
- end
76
-
77
- def self.proxy_options(params)
78
- options = []
79
- if params[:proxy_address] && params[:proxy_port] && params[:proxy_username] && params[:proxy_password]
80
- options << "-x #{params[:proxy_address].shellescape}:#{params[:proxy_port].shellescape}"
81
- options << "--proxy-user #{params[:proxy_username].shellescape}:#{params[:proxy_password].shellescape}"
82
- end
83
-
84
- options
85
- end
86
-
87
- #####################################################
88
- # @!group Documentation
89
- #####################################################
90
-
91
- def self.description
92
- 'Upload a file to [Sonatype Nexus platform](https://www.sonatype.com)'
93
- end
94
-
95
- def self.available_options
96
- [
97
- PantographCore::ConfigItem.new(key: :file,
98
- env_name: 'NEXUS_FILE',
99
- description: 'File to be uploaded to Nexus',
100
- optional: false,
101
- verify_block: proc do |value|
102
- file_path = File.expand_path(value)
103
- UI.user_error!("Couldn't find file at path '#{file_path}'") unless File.exist?(file_path)
104
- end),
105
- PantographCore::ConfigItem.new(key: :repo_id,
106
- env_name: 'NEXUS_REPO_ID',
107
- description: 'Nexus repository id e.g. artefacts',
108
- optional: false),
109
- PantographCore::ConfigItem.new(key: :repo_group_id,
110
- env_name: 'NEXUS_REPO_GROUP_ID',
111
- description: 'Nexus repository group id e.g. com.company',
112
- optional: false),
113
- PantographCore::ConfigItem.new(key: :repo_project_name,
114
- env_name: 'NEXUS_REPO_PROJECT_NAME',
115
- description: 'Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed',
116
- optional: false),
117
- PantographCore::ConfigItem.new(key: :repo_project_version,
118
- env_name: 'NEXUS_REPO_PROJECT_VERSION',
119
- description: 'Nexus repository commandect version',
120
- optional: false),
121
- PantographCore::ConfigItem.new(key: :repo_classifier,
122
- env_name: 'NEXUS_REPO_CLASSIFIER',
123
- description: 'Nexus repository artifact classifier (optional)',
124
- optional: true),
125
- PantographCore::ConfigItem.new(key: :endpoint,
126
- env_name: 'NEXUS_ENDPOINT',
127
- description: 'Nexus endpoint e.g. http://nexus:8081',
128
- optional: false),
129
- PantographCore::ConfigItem.new(key: :mount_path,
130
- env_name: 'NEXUS_MOUNT_PATH',
131
- description: 'Nexus mount path (Nexus 3 instances have this configured as empty by default)',
132
- default_value: '/nexus',
133
- optional: true),
134
- PantographCore::ConfigItem.new(key: :username,
135
- env_name: 'NEXUS_USERNAME',
136
- description: 'Nexus username',
137
- optional: false),
138
- PantographCore::ConfigItem.new(key: :password,
139
- env_name: 'NEXUS_PASSWORD',
140
- description: 'Nexus password',
141
- optional: false),
142
- PantographCore::ConfigItem.new(key: :ssl_verify,
143
- env_name: 'NEXUS_SSL_VERIFY',
144
- description: 'Verify SSL',
145
- is_string: false,
146
- default_value: true,
147
- optional: true),
148
- PantographCore::ConfigItem.new(key: :nexus_version,
149
- env_name: 'NEXUS_MAJOR_VERSION',
150
- description: 'Nexus major version',
151
- type: Integer,
152
- default_value: 2,
153
- optional: true,
154
- verify_block: proc do |value|
155
- min_version = 2
156
- max_version = 3
157
- UI.user_error!("Unsupported version (#{value}) min. supported version: #{min_version}") unless value >= min_version
158
- UI.user_error!("Unsupported version (#{value}) max. supported version: #{max_version}") unless value <= max_version
159
- end),
160
- PantographCore::ConfigItem.new(key: :verbose,
161
- env_name: 'NEXUS_VERBOSE',
162
- description: 'Make detailed output',
163
- is_string: false,
164
- default_value: false,
165
- optional: true),
166
- PantographCore::ConfigItem.new(key: :proxy_username,
167
- env_name: 'NEXUS_PROXY_USERNAME',
168
- description: 'Proxy username',
169
- optional: true),
170
- PantographCore::ConfigItem.new(key: :proxy_password,
171
- env_name: 'NEXUS_PROXY_PASSWORD',
172
- sensitive: true,
173
- description: 'Proxy password',
174
- optional: true),
175
- PantographCore::ConfigItem.new(key: :proxy_address,
176
- env_name: 'NEXUS_PROXY_ADDRESS',
177
- description: 'Proxy address',
178
- optional: true),
179
- PantographCore::ConfigItem.new(key: :proxy_port,
180
- env_name: 'NEXUS_PROXY_PORT',
181
- description: 'Proxy port',
182
- optional: true)
183
- ]
184
- end
185
-
186
- def self.authors
187
- ['xfreebird', 'mdio']
188
- end
189
-
190
- def self.is_supported?(platform)
191
- true
192
- end
193
-
194
- def self.example_code
195
- [
196
- '# for Nexus 2
197
- nexus_upload(
198
- file: "/path/to/file.ipa",
199
- repo_id: "artefacts",
200
- repo_group_id: "com.pantograph",
201
- repo_project_name: "ipa",
202
- repo_project_version: "1.13",
203
- repo_classifier: "dSYM", # Optional
204
- endpoint: "http://localhost:8081",
205
- username: "admin",
206
- password: "admin123"
207
- )',
208
- '# for Nexus 3
209
- nexus_upload(
210
- nexus_version: 3,
211
- mount_path: "",
212
- file: "/path/to/file.ipa",
213
- repo_id: "artefacts",
214
- repo_group_id: "com.pantograph",
215
- repo_project_name: "ipa",
216
- repo_project_version: "1.13",
217
- repo_classifier: "dSYM", # Optional
218
- endpoint: "http://localhost:8081",
219
- username: "admin",
220
- password: "admin123"
221
- )'
222
- ]
223
- end
224
-
225
- def self.category
226
- :beta
227
- end
228
- end
229
- end
230
- end