zt-devops-cli 0.1.6__tar.gz → 0.1.8__tar.gz
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.
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/PKG-INFO +1 -1
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/pyproject.toml +1 -1
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/devops_cli/auth.py +16 -9
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/devops_cli/cli.py +8 -4
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/PKG-INFO +1 -1
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/README.md +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/setup.cfg +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/devops_cli/__init__.py +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/devops_cli/api.py +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/devops_cli/config.py +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/SOURCES.txt +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/dependency_links.txt +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/entry_points.txt +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/requires.txt +0 -0
- {zt_devops_cli-0.1.6 → zt_devops_cli-0.1.8}/src/zt_devops_cli.egg-info/top_level.txt +0 -0
|
@@ -89,12 +89,12 @@ def open_login_page(page) -> bool:
|
|
|
89
89
|
|
|
90
90
|
return False
|
|
91
91
|
|
|
92
|
-
def get_cookies_from_browser() -> dict:
|
|
92
|
+
def get_cookies_from_browser(headless) -> dict:
|
|
93
93
|
"""通过 Playwright 从浏览器获取 cookie"""
|
|
94
|
-
print("
|
|
94
|
+
print("正在启动浏览器(无头模式),请登录...")
|
|
95
95
|
|
|
96
96
|
with sync_playwright() as p:
|
|
97
|
-
browser = p.chromium.launch(headless=
|
|
97
|
+
browser = p.chromium.launch(headless=headless)
|
|
98
98
|
context = browser.new_context()
|
|
99
99
|
page = context.new_page()
|
|
100
100
|
|
|
@@ -103,9 +103,16 @@ def get_cookies_from_browser() -> dict:
|
|
|
103
103
|
|
|
104
104
|
# 尝试自动登录
|
|
105
105
|
if not open_login_page(page):
|
|
106
|
-
print(
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
print(
|
|
107
|
+
"自动登录失败。无头模式下无法手动操作页面,请设置环境变量 "
|
|
108
|
+
"ZT_SSO_USERNAME 与 ZT_SSO_PASSWORD 后重试。"
|
|
109
|
+
)
|
|
110
|
+
browser.close()
|
|
111
|
+
raise RuntimeError(
|
|
112
|
+
"无头模式需要 ZT_SSO_USERNAME / ZT_SSO_PASSWORD 环境变量以完成自动登录。"
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
print("等待登录完成...")
|
|
109
116
|
page.wait_for_function(
|
|
110
117
|
f"""() => {{
|
|
111
118
|
const cookies = document.cookie;
|
|
@@ -149,10 +156,10 @@ def get_cookies_from_browser() -> dict:
|
|
|
149
156
|
|
|
150
157
|
return cookie_dict
|
|
151
158
|
|
|
152
|
-
def login() -> dict:
|
|
159
|
+
def login(headless) -> dict:
|
|
153
160
|
"""手动登录 - 强制打开浏览器重新获取 cookie"""
|
|
154
|
-
print("
|
|
155
|
-
cookies = get_cookies_from_browser()
|
|
161
|
+
print("正在启动浏览器(无头模式),请重新登录...")
|
|
162
|
+
cookies = get_cookies_from_browser(headless)
|
|
156
163
|
save_cookies(cookies)
|
|
157
164
|
print("登录成功,cookie 已缓存!")
|
|
158
165
|
return cookies
|
|
@@ -102,10 +102,14 @@ def cli(ctx, project, output_format):
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
@cli.command("login")
|
|
105
|
-
|
|
106
|
-
""
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
@click.option(
|
|
106
|
+
"--headed",
|
|
107
|
+
is_flag=True,
|
|
108
|
+
help="显示浏览器窗口,用于无环境变量时的手动登录",
|
|
109
|
+
)
|
|
110
|
+
def cmd_login(headed):
|
|
111
|
+
"""登录 - 打开浏览器重新获取 cookie(默认无头;需手动登录时请传 --headed)"""
|
|
112
|
+
login(headless=not headed)
|
|
109
113
|
|
|
110
114
|
@cli.group()
|
|
111
115
|
def sprint():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|