lg_pod_plugin 1.1.7.3 → 1.1.7.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|