avmtrf1-tools 0.35.0 → 0.38.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avmtrf1/forponto/user/month.rb +2 -2
- data/lib/avmtrf1/git/gitlab.rb +1 -1
- data/lib/avmtrf1/git/push_large/lfs_commit.rb +1 -1
- data/lib/avmtrf1/git/push_large/source_commit.rb +1 -1
- data/lib/avmtrf1/gitlab/commit.rb +15 -7
- data/lib/avmtrf1/gitlab/repository.rb +1 -1
- data/lib/avmtrf1/{core_ext.rb → tools/core_ext.rb} +0 -0
- data/lib/avmtrf1/tools/msgraph/token_retrieve.rb +42 -0
- data/lib/avmtrf1/tools/msgraph.rb +11 -0
- data/lib/avmtrf1/tools/runner/app_src.rb +1 -1
- data/lib/avmtrf1/tools/runner/check_point/login.rb +1 -1
- data/lib/avmtrf1/tools/runner/check_point.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/request.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/espelho.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/resumos.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/saldo.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/gitlab/commit_link.rb +19 -9
- data/lib/avmtrf1/tools/runner/git/gitlab.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/issues_check.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/push_large.rb +1 -1
- data/lib/avmtrf1/tools/runner/git.rb +1 -1
- data/lib/avmtrf1/tools/runner/msgraph/token.rb +31 -0
- data/lib/avmtrf1/tools/runner/msgraph.rb +29 -0
- data/lib/avmtrf1/tools/runner/oracle/query.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle/source_get.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle.rb +1 -1
- data/lib/avmtrf1/tools/runner/red.rb +1 -1
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +1 -1
- data/lib/avmtrf1/tools/version.rb +1 -1
- data/template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py +85 -0
- metadata +10 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48fb6d183fcf0b449c91abd20944f74ebd440d719ead3b6a02668d9b4def2554
|
4
|
+
data.tar.gz: b30b7c8baccbbd700be03c2823c7dbdfc7adc828dfb036409f3ab70d9b083800
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d57fbca329752db6d22248da2205cef1bc52518af47e90ba8e44d6629a8bbd14bc0617b18bc12a16e543a5e6ca0ff144dfacf851c1bc5749041431df96e128a
|
7
|
+
data.tar.gz: 5995b88d6360f46ac73c95e6631cb3f70d4540cb99e44f7ca7ec3809043369a56f8d788f2b2c0b1af37ee0aa9c4c2828b431a574b844e48ee67fa9d53e6047db
|
@@ -86,7 +86,7 @@ module Avmtrf1
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def recache?
|
89
|
-
!data_cache.
|
89
|
+
!data_cache.stored? || yesterday_uncached?
|
90
90
|
end
|
91
91
|
|
92
92
|
def yesterday_uncached?
|
@@ -114,7 +114,7 @@ module Avmtrf1
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def cached_data
|
117
|
-
raise 'There is no data cached' unless data_cache.
|
117
|
+
raise 'There is no data cached' unless data_cache.stored?
|
118
118
|
|
119
119
|
::EacRubyUtils::Yaml.load(data_cache.read)
|
120
120
|
end
|
data/lib/avmtrf1/git/gitlab.rb
CHANGED
@@ -7,22 +7,30 @@ module Avmtrf1
|
|
7
7
|
enable_simple_cache
|
8
8
|
common_constructor :repository, :git, :source
|
9
9
|
|
10
|
+
delegate :id, to: :git_commit
|
11
|
+
|
10
12
|
def to_s
|
11
13
|
source
|
12
14
|
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
# @return [String]
|
17
|
+
def markdown_link(object_type = 'commit')
|
18
|
+
"[#{git_commit.abbreviated_commit_hash}|#{web_url(object_type)}]"
|
16
19
|
end
|
17
20
|
|
18
|
-
|
21
|
+
# @return [String]
|
22
|
+
def textile_link(object_type = 'commit')
|
23
|
+
"\"#{git_commit.abbreviated_commit_hash}\":#{web_url(object_type)}"
|
24
|
+
end
|
19
25
|
|
20
|
-
def
|
21
|
-
|
26
|
+
def web_url(object_type = 'commit')
|
27
|
+
"#{repository.web_url}/#{object_type}/#{git_commit.commit_hash}"
|
22
28
|
end
|
23
29
|
|
24
|
-
|
25
|
-
|
30
|
+
private
|
31
|
+
|
32
|
+
def git_commit_uncached
|
33
|
+
git.commit(git.rev_parse(source))
|
26
34
|
end
|
27
35
|
end
|
28
36
|
end
|
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_rest/api'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/fs/temp'
|
6
|
+
require 'avmtrf1/template'
|
7
|
+
|
8
|
+
module Avmtrf1
|
9
|
+
module Tools
|
10
|
+
module Msgraph
|
11
|
+
class TokenRetrieve
|
12
|
+
enable_simple_cache
|
13
|
+
common_constructor :client_id
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def python_retrieve_command(file)
|
18
|
+
::EacRubyUtils::Envs.local.command(python_retrieve_program_path, client_id, file)
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Hash]
|
22
|
+
def result_uncached
|
23
|
+
::EacRubyUtils::Yaml.load(result_string)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String]
|
27
|
+
def result_string
|
28
|
+
::EacRubyUtils::Fs::Temp.on_file do |file|
|
29
|
+
raise ::RuntimeError, result.pretty_inspect unless python_retrieve_command(file.to_path)
|
30
|
+
.system
|
31
|
+
|
32
|
+
file.read
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def python_retrieve_program_path
|
37
|
+
template.child('python_retriever.py').path
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/tools/runner/git'
|
4
|
-
require 'avmtrf1/core_ext'
|
4
|
+
require 'avmtrf1/tools/core_ext'
|
5
5
|
require 'avmtrf1/gitlab/commit'
|
6
6
|
require 'avmtrf1/gitlab/repository'
|
7
7
|
|
@@ -13,7 +13,9 @@ module Avmtrf1
|
|
13
13
|
class CommitLink
|
14
14
|
runner_with :help, :output do
|
15
15
|
desc 'Mostra o link de uma revisão no Gitlab do TRF1.'
|
16
|
+
bool_opt '-m', '--markdown', 'Formata URL como link Markdown.'
|
16
17
|
bool_opt '-t', '--tree', 'URL com "tree" no lugar de "commit".'
|
18
|
+
bool_opt '-T', '--textile', 'Formata URL como link Textile.'
|
17
19
|
pos_arg 'revisions', optional: true, repeat: true
|
18
20
|
end
|
19
21
|
|
@@ -35,22 +37,30 @@ module Avmtrf1
|
|
35
37
|
|
36
38
|
def commits_uncached
|
37
39
|
parsed.revisions.if_present(['HEAD'])
|
38
|
-
.map { |source| ::Avmtrf1::Gitlab::Commit.new(repository,
|
40
|
+
.map { |source| ::Avmtrf1::Gitlab::Commit.new(repository, git_repo, source) }
|
39
41
|
end
|
40
42
|
|
41
43
|
def commit_banner(commit)
|
42
44
|
separator
|
43
45
|
infov 'Source', commit.source
|
44
|
-
infov 'Commit ID', commit.
|
46
|
+
infov 'Commit ID', commit.id
|
45
47
|
infov 'Web URL', commit.web_url
|
46
48
|
end
|
47
49
|
|
48
|
-
|
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)
|
50
60
|
end
|
51
61
|
|
52
62
|
def output_content
|
53
|
-
commits.map { |c| c
|
63
|
+
commits.map { |c| commit_output(c) + "\n" }.join
|
54
64
|
end
|
55
65
|
|
56
66
|
def repository_banner
|
@@ -59,9 +69,9 @@ module Avmtrf1
|
|
59
69
|
end
|
60
70
|
|
61
71
|
def repository_uncached
|
62
|
-
|
63
|
-
|
64
|
-
|
72
|
+
git_repo.remotes.lazy
|
73
|
+
.map { |r| ::Avmtrf1::Gitlab::Repository.by_uri(r.url) }
|
74
|
+
.find(&:present?) || raise('Gitlab remote not found')
|
65
75
|
end
|
66
76
|
end
|
67
77
|
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,29 @@
|
|
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
|
+
require_sub __FILE__
|
10
|
+
runner_with :help, :subcommands do
|
11
|
+
arg_opt '-i', '--client-id', 'ID de aplicação cliente alternativo.'
|
12
|
+
subcommands
|
13
|
+
end
|
14
|
+
|
15
|
+
def client_id
|
16
|
+
client_id_by_argument || client_id_by_config
|
17
|
+
end
|
18
|
+
|
19
|
+
def client_id_by_argument
|
20
|
+
parsed.client_id.presence
|
21
|
+
end
|
22
|
+
|
23
|
+
def client_id_by_config
|
24
|
+
::EacConfig::Node.context.current.entry('msgraph.client_id').value
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
# Requirements
|
4
|
+
# pyperclip>=1.6.0
|
5
|
+
# requests>=2.18.4
|
6
|
+
# adal>=1.0.0
|
7
|
+
# pyyaml
|
8
|
+
|
9
|
+
from adal import AuthenticationContext
|
10
|
+
import argparse
|
11
|
+
import pyperclip
|
12
|
+
import sys
|
13
|
+
import webbrowser
|
14
|
+
import yaml
|
15
|
+
|
16
|
+
|
17
|
+
class Config:
|
18
|
+
AUTHORITY_URL = 'https://login.microsoftonline.com/common'
|
19
|
+
RESOURCE = 'https://graph.microsoft.com'
|
20
|
+
API_VERSION = 'beta'
|
21
|
+
|
22
|
+
|
23
|
+
class TokenInfo:
|
24
|
+
def __init__(self, args):
|
25
|
+
self.__device = None
|
26
|
+
self.__token = None
|
27
|
+
self.__context = None
|
28
|
+
self.__args = args
|
29
|
+
|
30
|
+
def context(self):
|
31
|
+
if not self.__context:
|
32
|
+
self.__context = AuthenticationContext(Config.AUTHORITY_URL,
|
33
|
+
api_version=None)
|
34
|
+
return self.__context
|
35
|
+
|
36
|
+
def device(self):
|
37
|
+
if not self.__device:
|
38
|
+
self.__device = self.context().acquire_user_code(
|
39
|
+
Config.RESOURCE, self.__args.client_id)
|
40
|
+
return self.__device
|
41
|
+
|
42
|
+
def token(self, auto=True):
|
43
|
+
if not self.__token:
|
44
|
+
device_code = self.device()
|
45
|
+
if auto:
|
46
|
+
pyperclip.copy(
|
47
|
+
device_code['user_code']) # copy user code to clipboard
|
48
|
+
webbrowser.open(
|
49
|
+
device_code['verification_url']) # open browser
|
50
|
+
self.info(
|
51
|
+
f'The code {device_code["user_code"]} has been copied to your clipboard, '
|
52
|
+
f'and your web browser is opening {device_code["verification_url"]}. '
|
53
|
+
'Paste the code to sign in.\n')
|
54
|
+
else:
|
55
|
+
self.info(device_code['message'])
|
56
|
+
|
57
|
+
self.__token = self.context().acquire_token_with_device_code(
|
58
|
+
Config.RESOURCE, device_code, self.__args.client_id)
|
59
|
+
return self.__token
|
60
|
+
|
61
|
+
def info(self, message):
|
62
|
+
sys.stderr.write(message + "\n")
|
63
|
+
|
64
|
+
def result(self):
|
65
|
+
if self.token():
|
66
|
+
return {'device': self.device(), 'token': self.token()}
|
67
|
+
else:
|
68
|
+
return None
|
69
|
+
|
70
|
+
def run(self):
|
71
|
+
if self.result():
|
72
|
+
with open(self.__args.output_path, 'w') as outfile:
|
73
|
+
yaml.dump(self.result(), outfile, default_flow_style=False)
|
74
|
+
self.info('Result writed in "%s"' % (self.__args.output_path))
|
75
|
+
else:
|
76
|
+
sys.exit("Result empty!")
|
77
|
+
|
78
|
+
|
79
|
+
if __name__ == '__main__':
|
80
|
+
parser = argparse.ArgumentParser(
|
81
|
+
description='Recupera token de acesso ao MSGraph')
|
82
|
+
parser.add_argument('client_id')
|
83
|
+
parser.add_argument('output_path')
|
84
|
+
args = parser.parse_args()
|
85
|
+
TokenInfo(args).run()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avmtrf1-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.38.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-selenium
|
@@ -36,20 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 0.113.6
|
39
|
+
version: '0.114'
|
43
40
|
type: :runtime
|
44
41
|
prerelease: false
|
45
42
|
version_requirements: !ruby/object:Gem::Requirement
|
46
43
|
requirements:
|
47
44
|
- - "~>"
|
48
45
|
- !ruby/object:Gem::Version
|
49
|
-
version: '0.
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 0.113.6
|
46
|
+
version: '0.114'
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
48
|
name: inifile
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,7 +148,6 @@ files:
|
|
154
148
|
- lib/avmtrf1/check_point.rb
|
155
149
|
- lib/avmtrf1/check_point/session.rb
|
156
150
|
- lib/avmtrf1/check_point/session/login.rb
|
157
|
-
- lib/avmtrf1/core_ext.rb
|
158
151
|
- lib/avmtrf1/default_esosti.rb
|
159
152
|
- lib/avmtrf1/default_jira.rb
|
160
153
|
- lib/avmtrf1/default_redmine.rb
|
@@ -290,6 +283,9 @@ files:
|
|
290
283
|
- lib/avmtrf1/template.rb
|
291
284
|
- lib/avmtrf1/tools.rb
|
292
285
|
- lib/avmtrf1/tools/application.rb
|
286
|
+
- lib/avmtrf1/tools/core_ext.rb
|
287
|
+
- lib/avmtrf1/tools/msgraph.rb
|
288
|
+
- lib/avmtrf1/tools/msgraph/token_retrieve.rb
|
293
289
|
- lib/avmtrf1/tools/runner.rb
|
294
290
|
- lib/avmtrf1/tools/runner/app_src.rb
|
295
291
|
- lib/avmtrf1/tools/runner/check_point.rb
|
@@ -309,6 +305,8 @@ files:
|
|
309
305
|
- lib/avmtrf1/tools/runner/git/issues_check.rb
|
310
306
|
- lib/avmtrf1/tools/runner/git/push_large.rb
|
311
307
|
- lib/avmtrf1/tools/runner/inventario_sistemas.rb
|
308
|
+
- lib/avmtrf1/tools/runner/msgraph.rb
|
309
|
+
- lib/avmtrf1/tools/runner/msgraph/token.rb
|
312
310
|
- lib/avmtrf1/tools/runner/node_js.rb
|
313
311
|
- lib/avmtrf1/tools/runner/node_js/docker.rb
|
314
312
|
- lib/avmtrf1/tools/runner/openvpn.rb
|
@@ -344,6 +342,7 @@ files:
|
|
344
342
|
- template/avmtrf1/php/docker_image/aux/setup_apache_site.sh
|
345
343
|
- template/avmtrf1/php/docker_image/aux/start.sh
|
346
344
|
- template/avmtrf1/php/docker_image/aux/templates/apache_site.conf
|
345
|
+
- template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py
|
347
346
|
- template/avmtrf1/trf1_dspace_base0/deploy/build.properties.template
|
348
347
|
homepage: http://redmine.trf1.gov.br/projects/avm-trf1
|
349
348
|
licenses: []
|