refactor: 通用技能按类别拆分为独立目录
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>
This commit is contained in:
97
skills-ops/ops-tools-plugin/gitea-pr.sh
Executable file
97
skills-ops/ops-tools-plugin/gitea-pr.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user