@yorha2b-lab/autodev 2.1.3 → 2.1.4

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.
@@ -1,86 +1,81 @@
1
- name: GitHub Repo Stats
1
+ name: Bunker Native Stats
2
2
 
3
3
  on:
4
4
  schedule:
5
- - cron: '45 19 * * *'
5
+ - cron: '45 19 * * *' # 北京时间凌晨 03:45
6
6
  workflow_dispatch:
7
7
 
8
+ # 💡 补丁 1:强制开启 Node.js 24,消灭那个烦人的黄色警告
8
9
  env:
9
10
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
10
11
 
11
12
  jobs:
12
- run-stats:
13
+ update-ledger:
13
14
  runs-on: ubuntu-latest
14
15
  permissions:
15
16
  contents: write
16
17
  steps:
17
- - name: Checkout main
18
+ # 1. 检出数据分支
19
+ - name: Checkout Data Branch
18
20
  uses: actions/checkout@v4
19
-
20
- - name: run-ghrs
21
- uses: jgehrcke/github-repo-stats@v1.4.1
22
21
  with:
23
- repository: ${{ github.repository }}
24
- ghtoken: ${{ secrets.STATS_TOKEN }}
25
- databranch: github-repo-stats
22
+ ref: github-repo-stats
23
+ token: ${{ secrets.STATS_TOKEN }}
24
+ fetch-depth: 0 # 获取完整历史,确保物理对账无误
26
25
 
27
- - name: Execute Dashboard Reconstruction & JSON Generation
26
+ # 2. 物理装配与合并
27
+ - name: Fetch and Smart Merge
28
28
  run: |
29
- # 1. 提取组件
30
- echo "🤖 Pod 042: 正在执行‘三维提取协议’..."
31
- mkdir -p /tmp/bunker_assets
32
- DATA_DIR=$(find . -type d -name "ghrs-data" | head -n 1)
33
- REPORT_DIR=$(find . -type d -name "latest-report" | head -n 1)
34
- PLOT_DIR=$(find . -type d -name "plots" | head -n 1)
35
- if [ -d "$DATA_DIR" ]; then sudo cp -r $DATA_DIR /tmp/bunker_assets/; fi
36
- if [ -d "$REPORT_DIR" ]; then sudo cp -r $REPORT_DIR /tmp/bunker_assets/; fi
37
- if [ -d "$PLOT_DIR" ]; then sudo cp -r $PLOT_DIR /tmp/bunker_assets/; fi
38
-
39
- # 2. 切换并净化分支
40
- git fetch origin github-repo-stats
41
- git checkout github-repo-stats
42
- sudo chown -R runner:docker .
43
- git rm -rf . 2>/dev/null || true
44
- sudo rm -rf *
29
+ echo "🤖 Pod 042: 启动‘全链路数据闭环协议’..."
30
+
31
+ # A. 抓取数据(增加 -s 隐藏进度,-f 报错即停止)
32
+ curl -sf -H "Authorization: token ${{ secrets.STATS_TOKEN }}" \
33
+ -H "Accept: application/vnd.github.v3+json" \
34
+ https://api.github.com/repos/${{ github.repository }}/traffic/clones > raw.json
45
35
 
46
- # 3. 物理还原
47
- if [ -d "/tmp/bunker_assets/ghrs-data" ]; then sudo cp -r /tmp/bunker_assets/ghrs-data . ; fi
48
- if [ -d "/tmp/bunker_assets/latest-report" ]; then sudo cp -r /tmp/bunker_assets/latest-report/* . ; fi
49
- if [ -d "/tmp/bunker_assets/plots" ]; then sudo cp -r /tmp/bunker_assets/plots . ; fi
50
- if [ -f "report.md" ]; then sudo mv report.md README.md; fi
36
+ # B. 格式化新数据
37
+ mkdir -p ghrs-data
38
+ echo "date,clones,uniques" > /tmp/new_data.csv
39
+ jq -r '.clones[] | "\(.timestamp[0:10]),\(.count),\(.uniques)"' raw.json >> /tmp/new_data.csv
51
40
 
52
- # 4. 🔥 核心逻辑优化:精准定位 README 中的 Total Clones 累计值
53
- echo "🤖 Pod 042: 正在执行‘精准数据侦察协议’..."
54
-
55
- TARGET_FILE="README.md"
56
- if [ ! -f "$TARGET_FILE" ]; then TARGET_FILE="report.md"; fi
57
-
58
- if [ -f "$TARGET_FILE" ]; then
59
- # 💡 精准定位逻辑:
60
- # 1. 寻找包含 "Total clones" 的行
61
- # 2. 锁定该行之后的第一个 "Cumulative" 关键字
62
- # 3. 提取其中的数字
63
- TOTAL_CLONES=$(awk '/Total clones/{flag=1; next} flag && /Cumulative/{print $0; flag=0}' "$TARGET_FILE" | grep -oE "[0-9]+" | head -n 1 || echo "")
64
-
65
- if [ ! -z "$TOTAL_CLONES" ] && [ "$TOTAL_CLONES" -gt 0 ]; then
66
- echo "{\"total_clones\": $TOTAL_CLONES}" > bunker-stats.json
67
- echo "✅ 成功:已精准定位克隆总数:$TOTAL_CLONES"
68
- else
69
- echo "⚠️ 警告:精准提取失败,正在启动 CSV 账本回溯..."
70
- # 最后的兜底:计算 CSV 的总和
71
- CSV_FILE="ghrs-data/views_clones_aggregate.csv"
72
- TOTAL_CLONES=$(awk -F',' 'NR>1 {sum+=$2} END {print sum}' "$CSV_FILE" || echo "0")
73
- echo "{\"total_clones\": $TOTAL_CLONES}" > bunker-stats.json
74
- fi
41
+ # C. 🧬 执行物理合并逻辑
42
+ LEDGER="ghrs-data/clones_ledger.csv"
43
+ if [ ! -f "$LEDGER" ]; then
44
+ cp /tmp/new_data.csv "$LEDGER"
75
45
  else
76
- echo "❌ 严重错误:未发现任何报表文件。"
77
- exit 1
46
+ echo "📡 正在将手动补全的数据与 API 信号进行物理焊接..."
47
+ (head -n 1 "$LEDGER"; tail -n +2 "$LEDGER"; tail -n +2 /tmp/new_data.csv) | \
48
+ sed 's/\//-/g' | \
49
+ awk -F',' 'NR>1 {
50
+ split($1, a, "-");
51
+ if(length(a[2])==1) a[2]="0"a[2];
52
+ if(length(a[3])==1) a[3]="0"a[3];
53
+ printf "%s-%s-%s,%s,%s\n", a[1], a[2], a[3], $2, $3
54
+ }' | awk -F',' '!a[$1]++' | sort -r > /tmp/final_ledger.csv
55
+
56
+ echo "date,clones,uniques" > "$LEDGER"
57
+ cat /tmp/final_ledger.csv >> "$LEDGER"
78
58
  fi
79
-
80
- # 5. 封存推送
81
- sudo chown -R runner:docker .
59
+
60
+ # D. 🔥 核心:产出 [bunker-stats.json]
61
+ # 确保 awk 逻辑百分之百执行
62
+ TOTAL_CLONES=$(awk -F',' 'NR>1 {sum+=$2} END {print sum}' "$LEDGER")
63
+ echo "{\"total_clones\": $TOTAL_CLONES}" > bunker-stats.json
64
+ echo "✅ 物理总数结算达成: $TOTAL_CLONES"
65
+
66
+ # E. 重构 README
67
+ echo "# 🛰️ 地堡运行报告 (Sovereign Report)" > README.md
68
+ echo "### 📊 累计物理克隆总数: **$TOTAL_CLONES**" >> README.md
69
+ echo "数据已根据 AGPL-3.0 协议物理封存。愿人类荣光永存。" >> README.md
70
+ echo "" >> README.md
71
+ echo "> 📡 信号状态:全频道在线 | 战绩自动核算中..." >> README.md
72
+
73
+ # 3. 封存并强力同步
74
+ - name: Commit and Push
75
+ run: |
82
76
  git config user.name github-actions
83
77
  git config user.email github-actions@github.com
84
78
  git add -A
85
- git commit -m "style: bunker update with json stats at $(date)" || echo "no changes"
79
+ TOTAL=$(grep -oE "[0-9]+" bunker-stats.json | head -n 1)
80
+ git commit -m "chore: ledger & badge update - total $TOTAL" || echo "no changes"
86
81
  git push origin github-repo-stats --force
@@ -17,14 +17,14 @@
17
17
  "key": "mage"
18
18
  }
19
19
  ],
20
+ "staticInfo": {
21
+ "has": false,
22
+ "text": ""
23
+ },
20
24
  "table": {
21
25
  "pagination": true,
22
26
  "expandable": true,
23
27
  "rowSelection": true,
24
- "staticInfo": {
25
- "has": false,
26
- "text": ""
27
- },
28
28
  "operation": [
29
29
  {
30
30
  "label": "查看",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yorha2b-lab/autodev",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "基于视觉大模型的前端(react+Antd)全自动 CRUD 代码生成器",
5
5
  "bin": {
6
6
  "autodev": "bin/autodev.js"
@@ -47,6 +47,12 @@ const expandedRowRender = record => (<div>自定义渲染</div>)
47
47
  {{/if}}
48
48
 
49
49
  const modalSubmit = async values => {
50
- const response = await request('/api')
51
- refresh()
50
+ let response
51
+ if(modal.type==='add'){
52
+ response = await request('/api')
53
+ }
54
+ if({{{responseSuccess}}}){
55
+ setModal({ visible: false })
56
+ refresh()
57
+ }
52
58
  }