@@ -1,7 +1,7 @@
|
|||||||
name: probe-visibility
|
name: probe-visibility
|
||||||
|
|
||||||
# 一次性排查:为什么 Gitee 端仓的可见性改不成公开。
|
# 一次性排查:Gitee 端仓的可见性当前值,以及公开仓/私有仓的字段差异。
|
||||||
# 只读探测 + 报告,不做删除等破坏性动作。
|
# 只读探测,不做修改。
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
@@ -9,33 +9,42 @@ jobs:
|
|||||||
probe:
|
probe:
|
||||||
runs-on: host
|
runs-on: host
|
||||||
steps:
|
steps:
|
||||||
- name: 探测仓库可见性相关端点
|
- name: 对比公开仓与门户仓的可见性字段
|
||||||
env:
|
env:
|
||||||
DST_TOKEN: ${{ secrets.GITEE_TOKEN }}
|
DST_TOKEN: ${{ secrets.GITEE_TOKEN }}
|
||||||
DST_OWNER: ${{ secrets.GITEE_OWNER }}
|
DST_OWNER: ${{ secrets.GITEE_OWNER }}
|
||||||
DST_USER: ${{ secrets.GITEE_USER }}
|
|
||||||
run: |
|
run: |
|
||||||
set -u
|
set -u
|
||||||
NAME="website"
|
for NAME in iotlcm xiu-dtu website; do
|
||||||
echo "=== A. GET 当前仓库信息 ==="
|
echo "=== $NAME ==="
|
||||||
curl -sS -m 20 "https://gitee.com/api/v5/repos/${DST_OWNER}/${NAME}?access_token=${DST_TOKEN}" \
|
curl -sS -m 20 "https://gitee.com/api/v5/repos/${DST_OWNER}/${NAME}?access_token=${DST_TOKEN}" \
|
||||||
-w '\nHTTP %{http_code}\n' | head -c 800; echo
|
| python3 -c "
|
||||||
|
import sys, json
|
||||||
|
try:
|
||||||
|
d = json.load(sys.stdin)
|
||||||
|
except Exception:
|
||||||
|
print('parse fail'); raise SystemExit
|
||||||
|
if 'message' in d:
|
||||||
|
print('message:', d.get('message'))
|
||||||
|
else:
|
||||||
|
for k in ('path','private','internal','public','visibility','open_issue','owner'):
|
||||||
|
v = d.get(k)
|
||||||
|
if isinstance(v, dict):
|
||||||
|
v = v.get('login') or v.get('name')
|
||||||
|
print(f'{k}: {v}')
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
echo "=== B. PATCH + query access_token ==="
|
echo "=== 企业仓列表里 website 的可见性 ==="
|
||||||
curl -sS -m 20 -X PATCH \
|
curl -sS -m 20 "https://gitee.com/api/v5/enterprises/${DST_OWNER}/repos?access_token=${DST_TOKEN}&per_page=100" \
|
||||||
"https://gitee.com/api/v5/repos/${DST_OWNER}/${NAME}?access_token=${DST_TOKEN}" \
|
| python3 -c "
|
||||||
-H 'Content-Type: application/json' \
|
import sys, json
|
||||||
-d "{\"name\":\"${NAME}\",\"private\":false,\"internal\":false}" \
|
try:
|
||||||
-w '\nHTTP %{http_code}\n' | head -c 500; echo
|
d = json.load(sys.stdin)
|
||||||
|
except Exception:
|
||||||
echo "=== C. PATCH + Authorization 头 ==="
|
print('parse fail'); raise SystemExit
|
||||||
curl -sS -m 20 -X PATCH \
|
if isinstance(d, dict):
|
||||||
"https://gitee.com/api/v5/repos/${DST_OWNER}/${NAME}" \
|
print('message:', d.get('message')); raise SystemExit
|
||||||
-H "Authorization: token ${DST_TOKEN}" \
|
for r in d:
|
||||||
-H 'Content-Type: application/json' \
|
print(r.get('path'), '| private:', r.get('private'), '| internal:', r.get('internal'))
|
||||||
-d "{\"name\":\"${NAME}\",\"private\":false,\"internal\":false}" \
|
"
|
||||||
-w '\nHTTP %{http_code}\n' | head -c 500; echo
|
|
||||||
|
|
||||||
echo "=== D. 企业仓下的仓库列表(看 visibility 字段名) ==="
|
|
||||||
curl -sS -m 20 "https://gitee.com/api/v5/enterprises/${DST_OWNER}/repos?access_token=${DST_TOKEN}&per_page=20" \
|
|
||||||
| head -c 1200; echo
|
|
||||||
|
|||||||
Reference in New Issue
Block a user