lg_pod_plugin 1.1.7.3 → 1.1.7.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.
- checksums.yaml +4 -4
- data/lib/command/init.rb +1 -1
- data/lib/lg_pod_plugin/db/database.rb +14 -50
- data/lib/lg_pod_plugin/git/gitlab_api.rb +22 -17
- data/lib/lg_pod_plugin/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4b61db7b5001df6188133eaf111f4570d0580fe4e71bc3e89863f2245d9c3ff
|
4
|
+
data.tar.gz: 14afb884ec6e4247b37f95b0002c2dd19098c75cf464fe07d3c79565f83916a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2ee449bb57c15cc6d9cd7d5566aa91af414c34a3c2aabc1a2e858650447b93df9bba3d705d248beffed8bee615b31cfc2db935c525b6eed2178658f7ab2a655
|
7
|
+
data.tar.gz: c3f587b3ed1ccb1ca27a902db900346767bb012e082f45a6f1aa8a60b17d6da913fa6cf926645b966020fc813517470a1b85d621f51a3849b255683da87bdcde
|
data/lib/command/init.rb
CHANGED
@@ -52,7 +52,7 @@ module LgPodPlugin
|
|
52
52
|
File.open(token_file.to_path, 'w+') { |f| f.write(str) }
|
53
53
|
LSqliteDb.shared.init_database
|
54
54
|
user_id = LUserAuthInfo.get_user_id(self.host)
|
55
|
-
user_model = LUserAuthInfo.new(user_id, "", "", self.host, self.token, "", (created_at + expires_in))
|
55
|
+
user_model = LUserAuthInfo.new(user_id, "", "", self.host, self.token, "", (created_at + expires_in), created_at, 1)
|
56
56
|
LSqliteDb.shared.insert_user_info(user_model)
|
57
57
|
LgPodPlugin.log_green "设置私人访问令牌成功"
|
58
58
|
end
|
@@ -21,36 +21,13 @@ module LgPodPlugin
|
|
21
21
|
|
22
22
|
end
|
23
23
|
|
24
|
-
# class LPodLatestRefs
|
25
|
-
# attr_accessor :id
|
26
|
-
# attr_accessor :name
|
27
|
-
# attr_accessor :tag
|
28
|
-
# attr_accessor :git
|
29
|
-
# attr_accessor :branch
|
30
|
-
# attr_accessor :commit
|
31
|
-
#
|
32
|
-
# def initialize(id, name, git, branch, tag, commit)
|
33
|
-
# self.id = id
|
34
|
-
# self.git = git
|
35
|
-
# self.tag = tag
|
36
|
-
# self.name = name
|
37
|
-
# self.branch = branch
|
38
|
-
# self.commit = commit
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
# def self.get_pod_id(name, git, branch)
|
42
|
-
# key = name + git + branch
|
43
|
-
# return Digest::MD5.hexdigest(key)
|
44
|
-
# end
|
45
|
-
#
|
46
|
-
# end
|
47
|
-
|
48
24
|
class LUserAuthInfo
|
49
|
-
REQUIRED_ATTRS ||= %i[id username password host access_token refresh_token expires_in update_time].freeze
|
25
|
+
REQUIRED_ATTRS ||= %i[id username password host access_token refresh_token expires_in update_time type].freeze
|
50
26
|
attr_accessor(*REQUIRED_ATTRS)
|
51
27
|
|
52
|
-
def initialize(id = nil, name = nil, pwd = nil, host = nil, token = nil, refresh_token = nil, time = nil, update_time = nil)
|
28
|
+
def initialize(id = nil, name = nil, pwd = nil, host = nil, token = nil, refresh_token = nil, time = nil, update_time = nil, type = 0)
|
53
29
|
self.id = id
|
30
|
+
self.type = type
|
54
31
|
self.host = host
|
55
32
|
self.password = pwd
|
56
33
|
self.username = name
|
@@ -114,6 +91,13 @@ module LgPodPlugin
|
|
114
91
|
self.db.execute(alter)
|
115
92
|
end
|
116
93
|
|
94
|
+
user_sel_sql2 = "select * from sqlite_master where name = '#{K_USER_TABLE}' and sql like '%type%'; "
|
95
|
+
resultSetPrincipal2 = self.db.execute(user_sel_sql2)
|
96
|
+
if resultSetPrincipal2.count == 0
|
97
|
+
alter = "ALTER TABLE #{K_USER_TABLE} ADD 'type' INT;"
|
98
|
+
self.db.execute(alter)
|
99
|
+
end
|
100
|
+
|
117
101
|
#添加项目表
|
118
102
|
sql2 = "create table if not exists #{K_USER_PROJECTS}(
|
119
103
|
id varchar(100) primary key not null,
|
@@ -128,27 +112,6 @@ module LgPodPlugin
|
|
128
112
|
);"
|
129
113
|
self.db.execute(sql2)
|
130
114
|
|
131
|
-
# #添加项目表
|
132
|
-
# sql3 = "create table if not exists #{K_POD_LATEST_REFS}(
|
133
|
-
# id varchar(100) primary key not null,
|
134
|
-
# name varchar(100),
|
135
|
-
# git varchar(100),
|
136
|
-
# branch varchar(100),
|
137
|
-
# tag varchar(100),
|
138
|
-
# sha varchar(100)
|
139
|
-
# );"
|
140
|
-
# self.db.execute(sql3)
|
141
|
-
#
|
142
|
-
# #添加项目表
|
143
|
-
# sql4 = "create table if not exists #{K_POD_SHA_BRANCH}(
|
144
|
-
# id varchar(100) primary key not null,
|
145
|
-
# name varchar(100),
|
146
|
-
# git varchar(100),
|
147
|
-
# branch varchar(100),
|
148
|
-
# sha varchar(100)
|
149
|
-
# );"
|
150
|
-
# self.db.execute(sql4)
|
151
|
-
|
152
115
|
end
|
153
116
|
|
154
117
|
public
|
@@ -156,11 +119,11 @@ module LgPodPlugin
|
|
156
119
|
# pp "user.id => #{user.id}"
|
157
120
|
if self.query_user_info(user.id) != nil
|
158
121
|
self.db.execute_batch(
|
159
|
-
"UPDATE #{K_USER_TABLE} SET username = (:username), password = (:password), host = (:host), access_token = (:access_token), expires_in = (:expires_in), refresh_token = (:refresh_token), update_time = (:update_time) where (id = :id)", { "username" => user.username, "password" => user.password, "host" => user.host, "access_token" => user.access_token, :expires_in => user.expires_in, :id => user.id, :refresh_token => user.refresh_token , :update_time => user.update_time}
|
122
|
+
"UPDATE #{K_USER_TABLE} SET username = (:username), password = (:password), host = (:host), access_token = (:access_token), expires_in = (:expires_in), refresh_token = (:refresh_token), update_time = (:update_time), type = (:type) where (id = :id)", { "username" => user.username, "password" => user.password, "host" => user.host, "access_token" => user.access_token, :expires_in => user.expires_in, :id => user.id, :refresh_token => user.refresh_token , :update_time => user.update_time, :type => user.type}
|
160
123
|
)
|
161
124
|
else
|
162
|
-
self.db.execute("INSERT INTO #{K_USER_TABLE} (id, username, password, host, access_token,refresh_token, expires_in, update_time)
|
163
|
-
VALUES (?, ?, ?, ?,?,?,?, ?)", [user.id, user.username, user.password, user.host, user.access_token, user.refresh_token, user.expires_in, user.update_time])
|
125
|
+
self.db.execute("INSERT INTO #{K_USER_TABLE} (id, username, password, host, access_token,refresh_token, expires_in, update_time, type)
|
126
|
+
VALUES (?, ?, ?, ?,?,?,?, ?, ?)", [user.id, user.username, user.password, user.host, user.access_token, user.refresh_token, user.expires_in, user.update_time, user.type])
|
164
127
|
end
|
165
128
|
|
166
129
|
end
|
@@ -179,6 +142,7 @@ module LgPodPlugin
|
|
179
142
|
user_info.refresh_token = row[5]
|
180
143
|
user_info.expires_in = row[6]
|
181
144
|
user_info.update_time = row[7]
|
145
|
+
user_info.type = row[8]
|
182
146
|
end
|
183
147
|
user_info
|
184
148
|
end
|
@@ -23,10 +23,11 @@ module LgPodPlugin
|
|
23
23
|
return self.get_gitlab_access_token_input(uri, user_id, nil, nil) if encrypt_access_token.nil?
|
24
24
|
end
|
25
25
|
user_id = LUserAuthInfo.get_user_id(uri.hostname)
|
26
|
+
now_time = Time.now.to_i
|
26
27
|
refresh_token = json["refresh_token"]
|
27
28
|
expires_in = json["expires_in"] ||= 7879680
|
28
|
-
created_at = json["created_at"] ||=
|
29
|
-
user_model = LUserAuthInfo.new(user_id, "", "", uri.hostname, access_token, refresh_token, (created_at + expires_in))
|
29
|
+
created_at = json["created_at"] ||= now_time
|
30
|
+
user_model = LUserAuthInfo.new(user_id, "", "", uri.hostname, access_token, refresh_token, (created_at + expires_in), now_time, 1)
|
30
31
|
LSqliteDb.shared.insert_user_info(user_model)
|
31
32
|
LgPodPlugin.log_green "请求成功: `access_token` => #{access_token}, expires_in => #{expires_in}"
|
32
33
|
return user_model
|
@@ -48,13 +49,12 @@ module LgPodPlugin
|
|
48
49
|
def self.check_gitlab_access_token_valid(uri, user_info)
|
49
50
|
time_now = Time.now.to_i
|
50
51
|
refresh_token = user_info.refresh_token
|
51
|
-
|
52
|
-
|
53
|
-
if refresh_token.nil? || refresh_token == "" # 使用本地令牌访问
|
52
|
+
if user_info.type == 1
|
53
|
+
if user_info.expires_in <= time_now
|
54
54
|
project_name = LUtils.get_git_project_name(uri.to_s)
|
55
|
-
|
56
|
-
if
|
57
|
-
new_user_info = LUserAuthInfo.new(user_info.id, "", "", uri.hostname, user_info.access_token, nil, (time_now + 7879680))
|
55
|
+
token_valid = GitLabAPI.request_user_emails(uri.hostname, user_info.access_token)
|
56
|
+
if token_valid == "success"
|
57
|
+
new_user_info = LUserAuthInfo.new(user_info.id, "", "", uri.hostname, user_info.access_token, nil, (time_now + 7879680), time_now, 1)
|
58
58
|
LSqliteDb.shared.insert_user_info(user_info)
|
59
59
|
return new_user_info
|
60
60
|
else
|
@@ -63,21 +63,25 @@ module LgPodPlugin
|
|
63
63
|
return self.get_gitlab_access_token_input(uri, user_info.id, nil, nil)
|
64
64
|
end
|
65
65
|
else
|
66
|
-
|
67
|
-
return refreshUserToken uri, refresh_token, user_info.id, user_info.username, user_info.password
|
66
|
+
return user_info
|
68
67
|
end
|
69
68
|
else
|
70
|
-
|
71
|
-
if time_now
|
72
|
-
|
73
|
-
return user_info
|
69
|
+
# 判断 token 是否失效
|
70
|
+
if user_info.expires_in <= time_now
|
71
|
+
return refreshUserToken uri, refresh_token, user_info.id, user_info.username, user_info.password
|
74
72
|
else
|
75
|
-
|
73
|
+
update_time = user_info.update_time.to_i
|
74
|
+
if time_now - update_time > 1800
|
75
|
+
user_info = refreshUserToken uri, refresh_token, user_info.id, user_info.username, user_info.password
|
76
|
+
return user_info
|
77
|
+
else
|
78
|
+
return user_info
|
79
|
+
end
|
76
80
|
end
|
77
81
|
end
|
78
82
|
end
|
79
83
|
|
80
|
-
def self.
|
84
|
+
def self.refresh_user_token(uri, refresh_token, user_id, username, password)
|
81
85
|
# 刷新 token 失败时, 通过已经保存的用户名密码来刷新 token
|
82
86
|
new_user_info = GitLabAPI.refresh_gitlab_access_token uri.hostname, refresh_token
|
83
87
|
unless new_user_info
|
@@ -109,7 +113,7 @@ module LgPodPlugin
|
|
109
113
|
expires_in = json["expires_in"] ||= 7200
|
110
114
|
created_at = json["created_at"] ||= Time.now.to_i
|
111
115
|
time_now = Time.now.to_i
|
112
|
-
user_model = LUserAuthInfo.new(user_id, username, password, host, access_token, refresh_token, (created_at + expires_in), time_now)
|
116
|
+
user_model = LUserAuthInfo.new(user_id, username, password, host, access_token, refresh_token, (created_at + expires_in), time_now, 0)
|
113
117
|
LSqliteDb.shared.insert_user_info(user_model)
|
114
118
|
LgPodPlugin.log_green "请求成功: `access_token` => #{access_token}, expires_in => #{expires_in}"
|
115
119
|
rescue => exception
|
@@ -148,6 +152,7 @@ module LgPodPlugin
|
|
148
152
|
user_model.access_token = access_token
|
149
153
|
user_model.refresh_token = refresh_token
|
150
154
|
user_model.update_time = time_now
|
155
|
+
user_model.type = 0
|
151
156
|
LSqliteDb.shared.insert_user_info(user_model)
|
152
157
|
LgPodPlugin.log_green "刷新token成功: `refresh_token` => #{refresh_token}, expires_in => #{expires_in}"
|
153
158
|
return user_model
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lg_pod_plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.7.
|
4
|
+
version: 1.1.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dongzb01
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.13.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.13.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: claide
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '2.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: activesupport
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 7.0.8
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 7.0.8
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: bacon
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|