pd1_tools 0.43.0

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 (222) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +12 -0
  3. data/exe/pd1 +8 -0
  4. data/lib/avmtrf1/active_directory/user.rb +28 -0
  5. data/lib/avmtrf1/active_directory.rb +8 -0
  6. data/lib/avmtrf1/ad_user.rb +11 -0
  7. data/lib/avmtrf1/check_point/session/login.rb +57 -0
  8. data/lib/avmtrf1/check_point/session.rb +60 -0
  9. data/lib/avmtrf1/check_point.rb +3 -0
  10. data/lib/avmtrf1/default_esosti.rb +20 -0
  11. data/lib/avmtrf1/default_jira.rb +18 -0
  12. data/lib/avmtrf1/default_redmine.rb +16 -0
  13. data/lib/avmtrf1/docker/image.rb +49 -0
  14. data/lib/avmtrf1/docker/image_runner.rb +83 -0
  15. data/lib/avmtrf1/docker.rb +9 -0
  16. data/lib/avmtrf1/esosti/entities/issue.rb +24 -0
  17. data/lib/avmtrf1/esosti/entities.rb +9 -0
  18. data/lib/avmtrf1/esosti/instance/changed.rb +33 -0
  19. data/lib/avmtrf1/esosti/instance.rb +22 -0
  20. data/lib/avmtrf1/esosti/raw_data_sanitizer.rb +47 -0
  21. data/lib/avmtrf1/esosti/session/action_base.rb +34 -0
  22. data/lib/avmtrf1/esosti/session/atividades.rb +35 -0
  23. data/lib/avmtrf1/esosti/session/login.rb +47 -0
  24. data/lib/avmtrf1/esosti/session/solicitacao/main.rb +49 -0
  25. data/lib/avmtrf1/esosti/session/solicitacao.rb +81 -0
  26. data/lib/avmtrf1/esosti/session.rb +36 -0
  27. data/lib/avmtrf1/esosti.rb +8 -0
  28. data/lib/avmtrf1/executables.rb +23 -0
  29. data/lib/avmtrf1/forponto/parsers/day_registers.rb +19 -0
  30. data/lib/avmtrf1/forponto/parsers/espelho/day_node.rb +50 -0
  31. data/lib/avmtrf1/forponto/parsers/espelho/methods_as_fields.rb +21 -0
  32. data/lib/avmtrf1/forponto/parsers/espelho/row_node.rb +34 -0
  33. data/lib/avmtrf1/forponto/parsers/espelho/rows_consumer.rb +71 -0
  34. data/lib/avmtrf1/forponto/parsers/espelho/sub_node.rb +20 -0
  35. data/lib/avmtrf1/forponto/parsers/espelho/summary_node.rb +55 -0
  36. data/lib/avmtrf1/forponto/parsers/espelho/utils.rb +32 -0
  37. data/lib/avmtrf1/forponto/parsers/espelho.rb +26 -0
  38. data/lib/avmtrf1/forponto/session/day_registers.rb +39 -0
  39. data/lib/avmtrf1/forponto/session/interval.rb +27 -0
  40. data/lib/avmtrf1/forponto/session/login.rb +45 -0
  41. data/lib/avmtrf1/forponto/session.rb +32 -0
  42. data/lib/avmtrf1/forponto/user/balance.rb +155 -0
  43. data/lib/avmtrf1/forponto/user/day_registers.rb +32 -0
  44. data/lib/avmtrf1/forponto/user/month.rb +141 -0
  45. data/lib/avmtrf1/forponto/user.rb +22 -0
  46. data/lib/avmtrf1/git/cached_repository.rb +27 -0
  47. data/lib/avmtrf1/git/gitlab.rb +11 -0
  48. data/lib/avmtrf1/git/issue_on_repository.rb +100 -0
  49. data/lib/avmtrf1/git/push_large/_utils.rb +16 -0
  50. data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +21 -0
  51. data/lib/avmtrf1/git/push_large/lfs_commit/checkout_previous_revision.rb +35 -0
  52. data/lib/avmtrf1/git/push_large/lfs_commit/commit_changes.rb +48 -0
  53. data/lib/avmtrf1/git/push_large/lfs_commit/helpers.rb +29 -0
  54. data/lib/avmtrf1/git/push_large/lfs_commit/pick_source_revision.rb +103 -0
  55. data/lib/avmtrf1/git/push_large/lfs_commit/push.rb +90 -0
  56. data/lib/avmtrf1/git/push_large/lfs_commit/track_large_files.rb +53 -0
  57. data/lib/avmtrf1/git/push_large/lfs_commit.rb +47 -0
  58. data/lib/avmtrf1/git/push_large/source_commit/push.rb +42 -0
  59. data/lib/avmtrf1/git/push_large/source_commit.rb +58 -0
  60. data/lib/avmtrf1/git/push_large.rb +69 -0
  61. data/lib/avmtrf1/git/reference.rb +34 -0
  62. data/lib/avmtrf1/git.rb +10 -0
  63. data/lib/avmtrf1/gitlab/commit.rb +37 -0
  64. data/lib/avmtrf1/gitlab/repository.rb +41 -0
  65. data/lib/avmtrf1/ini/profile.rb +42 -0
  66. data/lib/avmtrf1/ini.rb +55 -0
  67. data/lib/avmtrf1/inventario_sistemas/parser/body.rb +27 -0
  68. data/lib/avmtrf1/inventario_sistemas/parser/body_row.rb +12 -0
  69. data/lib/avmtrf1/inventario_sistemas/parser/header.rb +38 -0
  70. data/lib/avmtrf1/inventario_sistemas/parser/header_column.rb +27 -0
  71. data/lib/avmtrf1/inventario_sistemas/parser.rb +40 -0
  72. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/elements.rb +54 -0
  73. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/layout.rb +55 -0
  74. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/stylesheet.css +57 -0
  75. data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +41 -0
  76. data/lib/avmtrf1/inventario_sistemas/site_build/index.rb +20 -0
  77. data/lib/avmtrf1/inventario_sistemas/site_build/sistema.rb +62 -0
  78. data/lib/avmtrf1/inventario_sistemas/site_build/sistemas_index.rb +31 -0
  79. data/lib/avmtrf1/inventario_sistemas/site_build.rb +71 -0
  80. data/lib/avmtrf1/inventario_sistemas.rb +38 -0
  81. data/lib/avmtrf1/issues/factory.rb +22 -0
  82. data/lib/avmtrf1/issues.rb +7 -0
  83. data/lib/avmtrf1/jira/entities/issue.rb +30 -0
  84. data/lib/avmtrf1/jira/entities.rb +9 -0
  85. data/lib/avmtrf1/jira/instance.rb +28 -0
  86. data/lib/avmtrf1/jira.rb +8 -0
  87. data/lib/avmtrf1/node_js/docker_image.rb +14 -0
  88. data/lib/avmtrf1/node_js.rb +9 -0
  89. data/lib/avmtrf1/openvpn/config/builder.rb +59 -0
  90. data/lib/avmtrf1/openvpn/config/parser/builder.rb +62 -0
  91. data/lib/avmtrf1/openvpn/config/parser/line.rb +47 -0
  92. data/lib/avmtrf1/openvpn/config/parser/simple.rb +27 -0
  93. data/lib/avmtrf1/openvpn/config/parser/tag.rb +39 -0
  94. data/lib/avmtrf1/openvpn/config/parser.rb +20 -0
  95. data/lib/avmtrf1/oracle/connection/base.rb +66 -0
  96. data/lib/avmtrf1/oracle/connection/string_builder.rb +44 -0
  97. data/lib/avmtrf1/oracle/connection.rb +12 -0
  98. data/lib/avmtrf1/oracle/object/base.rb +39 -0
  99. data/lib/avmtrf1/oracle/object/table.rb +15 -0
  100. data/lib/avmtrf1/oracle/object/user.rb +15 -0
  101. data/lib/avmtrf1/oracle/object/view.rb +15 -0
  102. data/lib/avmtrf1/oracle/object.rb +25 -0
  103. data/lib/avmtrf1/oracle/objects/relation.rb +23 -0
  104. data/lib/avmtrf1/oracle/objects/sql_builder.rb +64 -0
  105. data/lib/avmtrf1/oracle/objects.rb +53 -0
  106. data/lib/avmtrf1/oracle/oci8.rb +29 -0
  107. data/lib/avmtrf1/oracle.rb +10 -0
  108. data/lib/avmtrf1/patches/avm/git/issue/complete.rb +50 -0
  109. data/lib/avmtrf1/patches/avm/git/issue.rb +4 -0
  110. data/lib/avmtrf1/patches/avm/git/launcher/base.rb +46 -0
  111. data/lib/avmtrf1/patches/avm/git/launcher.rb +4 -0
  112. data/lib/avmtrf1/patches/avm/git.rb +4 -0
  113. data/lib/avmtrf1/patches/avm.rb +4 -0
  114. data/lib/avmtrf1/patches/inifile.rb +13 -0
  115. data/lib/avmtrf1/patches.rb +4 -0
  116. data/lib/avmtrf1/php/docker_images/base.rb +49 -0
  117. data/lib/avmtrf1/php/docker_images/factory.rb +37 -0
  118. data/lib/avmtrf1/php/docker_images/v5.rb +47 -0
  119. data/lib/avmtrf1/php/docker_images/v7.rb +27 -0
  120. data/lib/avmtrf1/php/docker_images/v7_v4.rb +30 -0
  121. data/lib/avmtrf1/php/docker_images/v8.rb +19 -0
  122. data/lib/avmtrf1/php/docker_images.rb +11 -0
  123. data/lib/avmtrf1/php.rb +9 -0
  124. data/lib/avmtrf1/red/client/authorization.xml.erb +4 -0
  125. data/lib/avmtrf1/red/client.rb +38 -0
  126. data/lib/avmtrf1/red/helper.rb +35 -0
  127. data/lib/avmtrf1/red/profile/put_file.xml.erb +19 -0
  128. data/lib/avmtrf1/red/profile.rb +58 -0
  129. data/lib/avmtrf1/red/server.rb +33 -0
  130. data/lib/avmtrf1/red.rb +5 -0
  131. data/lib/avmtrf1/redmine/entities/issue.rb +29 -0
  132. data/lib/avmtrf1/redmine/entities/issue_status.rb +23 -0
  133. data/lib/avmtrf1/redmine/entities.rb +10 -0
  134. data/lib/avmtrf1/redmine/instance.rb +41 -0
  135. data/lib/avmtrf1/redmine.rb +7 -0
  136. data/lib/avmtrf1/rest_provider/entity.rb +18 -0
  137. data/lib/avmtrf1/rest_provider/instance/issues.rb +30 -0
  138. data/lib/avmtrf1/rest_provider/instance.rb +30 -0
  139. data/lib/avmtrf1/rest_provider/request.rb +44 -0
  140. data/lib/avmtrf1/rest_provider/response.rb +73 -0
  141. data/lib/avmtrf1/rest_provider.rb +7 -0
  142. data/lib/avmtrf1/result.rb +44 -0
  143. data/lib/avmtrf1/ruby.rb +9 -0
  144. data/lib/avmtrf1/tools/application.rb +13 -0
  145. data/lib/avmtrf1/tools/core_ext.rb +4 -0
  146. data/lib/avmtrf1/tools/msgraph/api/entity.rb +35 -0
  147. data/lib/avmtrf1/tools/msgraph/api/member.rb +31 -0
  148. data/lib/avmtrf1/tools/msgraph/api/root.rb +27 -0
  149. data/lib/avmtrf1/tools/msgraph/api/team/member_add.rb +36 -0
  150. data/lib/avmtrf1/tools/msgraph/api/team.rb +40 -0
  151. data/lib/avmtrf1/tools/msgraph/api.rb +55 -0
  152. data/lib/avmtrf1/tools/msgraph/error.rb +31 -0
  153. data/lib/avmtrf1/tools/msgraph/request_mixin.rb +18 -0
  154. data/lib/avmtrf1/tools/msgraph/response_mixin.rb +23 -0
  155. data/lib/avmtrf1/tools/msgraph/token_retrieve.rb +42 -0
  156. data/lib/avmtrf1/tools/msgraph.rb +11 -0
  157. data/lib/avmtrf1/tools/rubygems/dependency.rb +20 -0
  158. data/lib/avmtrf1/tools/rubygems/not_found_error.rb +17 -0
  159. data/lib/avmtrf1/tools/rubygems.rb +11 -0
  160. data/lib/avmtrf1/tools/runner/check_point/login.rb +33 -0
  161. data/lib/avmtrf1/tools/runner/check_point.rb +17 -0
  162. data/lib/avmtrf1/tools/runner/esosti/changed.rb +39 -0
  163. data/lib/avmtrf1/tools/runner/esosti/fetch.rb +39 -0
  164. data/lib/avmtrf1/tools/runner/esosti/request.rb +76 -0
  165. data/lib/avmtrf1/tools/runner/esosti.rb +27 -0
  166. data/lib/avmtrf1/tools/runner/forponto/espelho.rb +47 -0
  167. data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +32 -0
  168. data/lib/avmtrf1/tools/runner/forponto/resumos.rb +87 -0
  169. data/lib/avmtrf1/tools/runner/forponto/saldo.rb +91 -0
  170. data/lib/avmtrf1/tools/runner/forponto.rb +70 -0
  171. data/lib/avmtrf1/tools/runner/git/gitlab/commit_link.rb +81 -0
  172. data/lib/avmtrf1/tools/runner/git/gitlab.rb +20 -0
  173. data/lib/avmtrf1/tools/runner/git/issues_check.rb +59 -0
  174. data/lib/avmtrf1/tools/runner/git/push_large.rb +46 -0
  175. data/lib/avmtrf1/tools/runner/git.rb +14 -0
  176. data/lib/avmtrf1/tools/runner/inventario_sistemas.rb +71 -0
  177. data/lib/avmtrf1/tools/runner/msgraph/joined_teams.rb +39 -0
  178. data/lib/avmtrf1/tools/runner/msgraph/request.rb +45 -0
  179. data/lib/avmtrf1/tools/runner/msgraph/team/member/add.rb +48 -0
  180. data/lib/avmtrf1/tools/runner/msgraph/team/member.rb +25 -0
  181. data/lib/avmtrf1/tools/runner/msgraph/team/members.rb +38 -0
  182. data/lib/avmtrf1/tools/runner/msgraph/team.rb +27 -0
  183. data/lib/avmtrf1/tools/runner/msgraph/token.rb +31 -0
  184. data/lib/avmtrf1/tools/runner/msgraph.rb +43 -0
  185. data/lib/avmtrf1/tools/runner/node_js/docker.rb +15 -0
  186. data/lib/avmtrf1/tools/runner/node_js.rb +18 -0
  187. data/lib/avmtrf1/tools/runner/openvpn.rb +91 -0
  188. data/lib/avmtrf1/tools/runner/oracle/query.rb +71 -0
  189. data/lib/avmtrf1/tools/runner/oracle/source_get.rb +51 -0
  190. data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +59 -0
  191. data/lib/avmtrf1/tools/runner/oracle.rb +37 -0
  192. data/lib/avmtrf1/tools/runner/php/docker.rb +20 -0
  193. data/lib/avmtrf1/tools/runner/php.rb +18 -0
  194. data/lib/avmtrf1/tools/runner/red.rb +83 -0
  195. data/lib/avmtrf1/tools/runner/source.rb +14 -0
  196. data/lib/avmtrf1/tools/runner.rb +43 -0
  197. data/lib/avmtrf1/tools.rb +4 -0
  198. data/lib/pd1_tools/version.rb +5 -0
  199. data/lib/pd1_tools.rb +7 -0
  200. data/template/avmtrf1/node_js/docker_image/Dockerfile.template +25 -0
  201. data/template/avmtrf1/node_js/docker_image/auxiliary/config_banner.sh +15 -0
  202. data/template/avmtrf1/node_js/docker_image/auxiliary/init.sh +18 -0
  203. data/template/avmtrf1/node_js/docker_image/auxiliary/lib.sh +30 -0
  204. data/template/avmtrf1/node_js/docker_image/auxiliary/ng_serve.sh +16 -0
  205. data/template/avmtrf1/node_js/docker_image/auxiliary/npm_install.sh +21 -0
  206. data/template/avmtrf1/node_js/docker_image/auxiliary/start.sh +17 -0
  207. data/template/avmtrf1/php/docker_images/base/Dockerfile.template +104 -0
  208. data/template/avmtrf1/php/docker_images/base/aux/apache_foreground.sh +16 -0
  209. data/template/avmtrf1/php/docker_images/base/aux/apache_user.sh +54 -0
  210. data/template/avmtrf1/php/docker_images/base/aux/app_user_run.sh +17 -0
  211. data/template/avmtrf1/php/docker_images/base/aux/config_banner.sh +20 -0
  212. data/template/avmtrf1/php/docker_images/base/aux/init.sh +39 -0
  213. data/template/avmtrf1/php/docker_images/base/aux/laravel.sh +58 -0
  214. data/template/avmtrf1/php/docker_images/base/aux/lib.sh +70 -0
  215. data/template/avmtrf1/php/docker_images/base/aux/pear.sh +35 -0
  216. data/template/avmtrf1/php/docker_images/base/aux/php_composer.sh +31 -0
  217. data/template/avmtrf1/php/docker_images/base/aux/php_values.sh +41 -0
  218. data/template/avmtrf1/php/docker_images/base/aux/setup_apache_site.sh +16 -0
  219. data/template/avmtrf1/php/docker_images/base/aux/start.sh +26 -0
  220. data/template/avmtrf1/php/docker_images/base/aux/templates/apache_site.conf +12 -0
  221. data/template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py +85 -0
  222. metadata +460 -0
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/runners/base'
4
+ require 'avmtrf1/tools/core_ext'
5
+ require 'avmtrf1/gitlab/commit'
6
+ require 'avmtrf1/gitlab/repository'
7
+
8
+ module Avmtrf1
9
+ module Tools
10
+ class Runner
11
+ class Git < ::Avm::Git::Runners::Base
12
+ class Gitlab
13
+ class CommitLink
14
+ runner_with :help, :output do
15
+ desc 'Mostra o link de uma revisão no Gitlab do TRF1.'
16
+ bool_opt '-m', '--markdown', 'Formata URL como link Markdown.'
17
+ bool_opt '-t', '--tree', 'URL com "tree" no lugar de "commit".'
18
+ bool_opt '-T', '--textile', 'Formata URL como link Textile.'
19
+ pos_arg 'revisions', optional: true, repeat: true
20
+ end
21
+
22
+ def run
23
+ repository_banner
24
+ commits.each { |c| commit_banner(c) }
25
+ run_output
26
+ end
27
+
28
+ def separator
29
+ puts '-' * 40
30
+ end
31
+
32
+ def object_type
33
+ parsed.tree? ? 'tree' : 'commit'
34
+ end
35
+
36
+ private
37
+
38
+ def commits_uncached
39
+ parsed.revisions.if_present(['HEAD'])
40
+ .map { |source| ::Avmtrf1::Gitlab::Commit.new(repository, git_repo, source) }
41
+ end
42
+
43
+ def commit_banner(commit)
44
+ separator
45
+ infov 'Source', commit.source
46
+ infov 'Commit ID', commit.id
47
+ infov 'Web URL', commit.web_url
48
+ end
49
+
50
+ # @return [String]
51
+ def commit_output(commit)
52
+ return commit.textile_link(object_type) if parsed.textile?
53
+ return commit.markdown_link(object_type) if parsed.markdown?
54
+
55
+ commit.web_url(object_type)
56
+ end
57
+
58
+ def git_repo
59
+ runner_context.call(:git_repo)
60
+ end
61
+
62
+ def output_content
63
+ commits.map { |c| commit_output(c) + "\n" }.join # rubocop:disable Style/StringConcatenation
64
+ end
65
+
66
+ def repository_banner
67
+ separator
68
+ infov 'Repository', repository.path
69
+ end
70
+
71
+ def repository_uncached
72
+ git_repo.remotes.lazy
73
+ .map { |r| ::Avmtrf1::Gitlab::Repository.by_uri(r.url) }
74
+ .find(&:present?) || raise('Gitlab remote not found')
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/runners/base'
4
+ require 'avmtrf1/tools/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Git < ::Avm::Git::Runners::Base
10
+ class Gitlab
11
+ require_sub __FILE__
12
+ runner_with :help, :subcommands do
13
+ desc 'Utilidades para Gitlab.'
14
+ subcommands
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/git/cached_repository'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Git < ::Avm::Git::Runners::Base
10
+ class IssuesCheck
11
+ runner_with :help do
12
+ desc 'Confronta situação das demandas no Git com a situação nos trackers.'
13
+ pos_arg :git_url
14
+ end
15
+
16
+ def run
17
+ infov 'Repository path', git_url
18
+ infov 'Remote hashs found', remote_hashs.count
19
+ infov 'Issues found', issues_on_repository.count
20
+ issues_on_repository.each(&:check)
21
+ end
22
+
23
+ private
24
+
25
+ def git_url
26
+ parsed.git_url
27
+ end
28
+
29
+ def git_uncached
30
+ ::Avmtrf1::Git::CachedRepository.new(git_url)
31
+ end
32
+
33
+ def remote_hashs_uncached
34
+ git.remote_hashs('origin').select do |fullname, _revision|
35
+ issue_ref?(fullname)
36
+ end
37
+ end
38
+
39
+ def issues_on_repository_uncached
40
+ r = {}
41
+ remote_hashs.each do |fullname, revision|
42
+ ref = ::Avmtrf1::Git::Reference.new(git, fullname, revision)
43
+ r[ref.name] ||= []
44
+ r[ref.name] << ref
45
+ end
46
+ r.sort.map { |issue_id, refs| ::Avmtrf1::Git::IssueOnRepository.new(issue_id, refs) }
47
+ end
48
+
49
+ def issue_ref?(fullname)
50
+ return false unless fullname.start_with?('refs/')
51
+ return false if fullname == 'refs/heads/master'
52
+
53
+ true
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/git/push_large'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Git < ::Avm::Git::Runners::Base
10
+ class PushLarge
11
+ DEFAULT_REPO_PATH = '.'
12
+ DEFAULT_REMOTE = 'origin'
13
+
14
+ runner_with :help do
15
+ desc 'Realiza push de repositórios grandes (Que falham com "pack exceeds maximum ' \
16
+ 'allowed size")'
17
+ arg_opt '-C', '--repo-path', 'Caminho do repositório local ' \
18
+ "[default: #{DEFAULT_REPO_PATH}]."
19
+ arg_opt '-r', '--remote', "Nome do remoto [default: #{DEFAULT_REMOTE}]."
20
+ pos_arg :source_ref
21
+ pos_arg :target_ref
22
+ end
23
+
24
+ def run
25
+ ::Avmtrf1::Git::PushLarge.new(
26
+ ::File.expand_path(repo_path),
27
+ remote,
28
+ parsed.source_ref,
29
+ parsed.target_ref
30
+ ).run
31
+ end
32
+
33
+ private
34
+
35
+ def repo_path
36
+ parsed.repo_path || DEFAULT_REPO_PATH
37
+ end
38
+
39
+ def remote
40
+ parsed.remote || DEFAULT_REMOTE
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/runners/base'
4
+ require 'avmtrf1/tools/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Git < ::Avm::Git::Runners::Base
10
+ require_sub __FILE__
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/runner/check_point/login'
4
+ require 'avmtrf1/inventario_sistemas/parser'
5
+ require 'eac_cli/core_ext'
6
+
7
+ module Avmtrf1
8
+ module Tools
9
+ class Runner
10
+ class InventarioSistemas
11
+ DEFAULT_OUTPUT_DIR = './inventario-sistemas'
12
+
13
+ runner_with :help do
14
+ desc 'Formata a planilha de inventário de sistemas do TRF1.'
15
+ bool_opt '-w', '--overwrite', 'Sobreescreve diretório de saída se já existir.'
16
+ arg_opt '-d', '--output-directory', "Diretório de saída [default: #{DEFAULT_OUTPUT_DIR}]."
17
+ pos_arg 'source-file-path'
18
+ end
19
+
20
+ def run
21
+ start_banner
22
+ prepare
23
+ build
24
+ end_banner
25
+ end
26
+
27
+ private
28
+
29
+ def end_banner
30
+ success "Aplicação gerada em #{output_directory}"
31
+ end
32
+
33
+ def build
34
+ site_build.run
35
+ end
36
+
37
+ def input_file_uncached
38
+ parsed.source_file_path.to_pathname.expand_path
39
+ end
40
+
41
+ def site_build_uncached
42
+ ::Avmtrf1::InventarioSistemas::SiteBuild.new(input_file, output_directory)
43
+ end
44
+
45
+ def output_directory_uncached
46
+ parsed.output_directory.if_present(DEFAULT_OUTPUT_DIR).to_pathname.expand_path
47
+ end
48
+
49
+ def overwrite?
50
+ parsed.overwrite?
51
+ end
52
+
53
+ def start_banner
54
+ infov 'Arquivo de entrada', input_file
55
+ infov 'Diretório de saída', output_directory
56
+ end
57
+
58
+ def prepare
59
+ return unless output_directory.exist?
60
+
61
+ if overwrite?
62
+ infom "Removendo \"#{output_directory}\"..."
63
+ ::FileUtils.rm_r(output_directory.to_path)
64
+ else
65
+ fatal_error "#{output_directory}: já existe (Utilize --overwrite para sobreescrever)"
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/token_retrieve'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Msgraph
10
+ class JoinedTeams
11
+ LIST_COLUMNS = %w[id display_name].freeze
12
+
13
+ runner_with :help, :output_list do
14
+ desc 'Lista as próprias equipes no MS Teams.'
15
+ end
16
+
17
+ def run
18
+ infov 'Found', teams.count
19
+ run_output
20
+ end
21
+
22
+ def list_columns
23
+ LIST_COLUMNS
24
+ end
25
+
26
+ def list_rows
27
+ teams
28
+ end
29
+
30
+ private
31
+
32
+ def teams_uncached
33
+ api.root_entity.joined_teams.sort_by { |t| [t.display_name, t.id] }
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Request
10
+ runner_with :help do
11
+ pos_arg :url_suffix
12
+ end
13
+
14
+ def run
15
+ request_banner
16
+ fetch_response
17
+ end
18
+
19
+ private
20
+
21
+ def request_banner
22
+ api_banner
23
+ infov 'URL', request.url
24
+ end
25
+
26
+ def fetch_response
27
+ infom 'Requesting...'
28
+ infov 'Response status', response.status
29
+ infov 'Response body class', response.body_data.class
30
+ infov 'Response body', '*'
31
+ out response.body_data.to_yaml + "\n" # rubocop:disable Style/StringConcatenation
32
+ end
33
+
34
+ def request_uncached
35
+ api.request_json(parsed.url_suffix)
36
+ end
37
+
38
+ def response_uncached
39
+ request.response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/error'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Msgraph
10
+ class Team
11
+ class Member
12
+ class Add
13
+ runner_with :help, :output_item
14
+
15
+ def run
16
+ start_banner
17
+ add_member
18
+ run_output
19
+ fatal_error error.code if error.present?
20
+ end
21
+
22
+ private
23
+
24
+ attr_accessor :error, :result_data
25
+
26
+ def add_member
27
+ self.error = nil
28
+ self.result_data = team.member_add(member_id)
29
+ rescue ::Avmtrf1::Tools::Msgraph::Error => e
30
+ self.error = e
31
+ self.result_data = error.data
32
+ end
33
+
34
+ def start_banner
35
+ infov 'Team', team.id
36
+ infov 'Member ID', member_id
37
+ end
38
+
39
+ def item_hash
40
+ result_data
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Team
10
+ class Member
11
+ runner_with :help, :subcommands do
12
+ pos_arg :member_id
13
+ subcommands
14
+ end
15
+ for_context :member_id
16
+
17
+ delegate :member_id, to: :parsed
18
+
19
+ require_sub __FILE__
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Team
10
+ class Members
11
+ LIST_COLUMNS = %w[id email display_name].freeze
12
+
13
+ runner_with :help, :output_list
14
+
15
+ def run
16
+ infov 'Found', members.count
17
+ run_output
18
+ end
19
+
20
+ def list_columns
21
+ LIST_COLUMNS
22
+ end
23
+
24
+ def list_rows
25
+ members
26
+ end
27
+
28
+ private
29
+
30
+ def members_uncached
31
+ team.members.sort_by { |m| [m.email || '_BLANK_', m.id] }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Team
10
+ runner_with :help, :subcommands do
11
+ pos_arg :team_id
12
+ subcommands
13
+ end
14
+ for_context :team
15
+
16
+ private
17
+
18
+ def team_uncached
19
+ api.root_entity.team(parsed.team_id)
20
+ end
21
+
22
+ require_sub __FILE__
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/token_retrieve'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Msgraph
10
+ class Token
11
+ runner_with :help, :output
12
+
13
+ def run
14
+ infov 'Client ID', token_retrieve.client_id
15
+ run_output
16
+ end
17
+
18
+ private
19
+
20
+ def output_content
21
+ ::EacRubyUtils::Yaml.dump(token_retrieve.result)
22
+ end
23
+
24
+ def token_retrieve_uncached
25
+ ::Avmtrf1::Tools::Msgraph::TokenRetrieve.new(runner_context.call(:client_id))
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/api'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Msgraph
10
+ require_sub __FILE__
11
+ runner_with :help, :subcommands do
12
+ arg_opt '-i', '--client-id', 'ID de aplicação cliente alternativo.'
13
+ subcommands
14
+ end
15
+ for_context :api, :api_banner
16
+
17
+ def api_banner
18
+ infov 'Client ID', api.client_id
19
+ infov 'Root URL', api.root_url
20
+ end
21
+
22
+ def client_id
23
+ client_id_by_argument || client_id_by_config
24
+ end
25
+
26
+ def client_id_by_argument
27
+ parsed.client_id.presence
28
+ end
29
+
30
+ def client_id_by_config
31
+ ::EacConfig::Node.context.current.entry('msgraph.client_id').value
32
+ end
33
+
34
+ private
35
+
36
+ # @return [Avmtrf1::Tools::Msgraph::Api]
37
+ def api_uncached
38
+ ::Avmtrf1::Tools::Msgraph::Api.new(client_id)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/node_js/docker_image'
4
+ require 'avmtrf1/docker/image_runner'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class NodeJs
10
+ class Docker < ::Avmtrf1::Docker::ImageRunner
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class NodeJs
9
+ require_sub __FILE__
10
+
11
+ runner_with :help, :subcommands do
12
+ desc 'Utilidades para Node.js.'
13
+ subcommands
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end