skills/ → skills-dev(9), skills-req(10), skills-ops(4), skills-integration(8), skills-biz(4), skills-workflow(7) generate-marketplace.py 改为自动扫描所有 skills-* 目录。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
98 lines
2.5 KiB
Bash
Executable File
98 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Gitea PR 操作脚本
|
|
# 用法:
|
|
# ./gitea-pr.sh list # 列出 PR
|
|
# ./gitea-pr.sh create <title> <head> # 创建 PR
|
|
# ./gitea-pr.sh merge <pr-number> # 合并 PR
|
|
|
|
set -e
|
|
|
|
# 加载凭据
|
|
source ~/.config/devops/credentials.env
|
|
|
|
REPO="Tools/new-ai-proj"
|
|
ACTION="${1:-list}"
|
|
|
|
case "$ACTION" in
|
|
list)
|
|
echo "=== 当前 Pull Requests ==="
|
|
curl -s "$GITEA_URL/api/v1/repos/$REPO/pulls?state=open" \
|
|
-H "Authorization: token $GITEA_TOKEN" | \
|
|
python3 -c "
|
|
import sys, json
|
|
prs = json.load(sys.stdin)
|
|
if not prs:
|
|
print('没有开放的 PR')
|
|
else:
|
|
for pr in prs:
|
|
print(f\"#{pr['number']} [{pr['state']}] {pr['title']}\")
|
|
print(f\" {pr['head']['ref']} -> {pr['base']['ref']}\")
|
|
print(f\" 作者: {pr['user']['login']}\")
|
|
print()
|
|
"
|
|
;;
|
|
|
|
create)
|
|
TITLE="$2"
|
|
HEAD="$3"
|
|
BASE="${4:-main}"
|
|
|
|
if [ -z "$TITLE" ] || [ -z "$HEAD" ]; then
|
|
echo "用法: $0 create <title> <head-branch> [base-branch]"
|
|
exit 1
|
|
fi
|
|
|
|
echo "创建 PR: $TITLE"
|
|
echo "分支: $HEAD -> $BASE"
|
|
|
|
curl -s -X POST "$GITEA_URL/api/v1/repos/$REPO/pulls" \
|
|
-H "Authorization: token $GITEA_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"title\":\"$TITLE\",\"head\":\"$HEAD\",\"base\":\"$BASE\"}" | \
|
|
python3 -c "
|
|
import sys, json
|
|
pr = json.load(sys.stdin)
|
|
if 'number' in pr:
|
|
print(f\"PR 创建成功! #{pr['number']}\")
|
|
print(f\"URL: {pr['html_url']}\")
|
|
else:
|
|
print(f\"创建失败: {pr.get('message', '未知错误')}\")
|
|
"
|
|
;;
|
|
|
|
merge)
|
|
PR_NUM="$2"
|
|
|
|
if [ -z "$PR_NUM" ]; then
|
|
echo "用法: $0 merge <pr-number>"
|
|
exit 1
|
|
fi
|
|
|
|
echo "合并 PR #$PR_NUM..."
|
|
|
|
curl -s -X POST "$GITEA_URL/api/v1/repos/$REPO/pulls/$PR_NUM/merge" \
|
|
-H "Authorization: token $GITEA_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"Do":"merge"}' | \
|
|
python3 -c "
|
|
import sys, json
|
|
try:
|
|
result = json.load(sys.stdin)
|
|
if result:
|
|
print(f\"结果: {result}\")
|
|
else:
|
|
print('PR 合并成功!')
|
|
except:
|
|
print('PR 合并成功!')
|
|
"
|
|
;;
|
|
|
|
*)
|
|
echo "用法: $0 {list|create|merge}"
|
|
echo " list - 列出所有开放的 PR"
|
|
echo " create <title> <head> - 创建新 PR"
|
|
echo " merge <pr-number> - 合并 PR"
|
|
exit 1
|
|
;;
|
|
esac
|