Skip to content

Commit 4b70fc1

Browse files
committed
Merge remote-tracking branch 'eanfs/v5-1' into v5-gemini
* eanfs/v5-1: add some logs for debug feat(record): support record fileName feat: add redirect to http protocol feat: add redirectAdvisor to rtsp plugin fix: sip client reuse,correct trasnport,decode xml use default s3 settings for example fix : remove s3plugin "m7s.live/v5/plugin/s3" fix: s3 upload file size was 0 feature:mp4-upload-s3 Update ai md Revert "Update for ai" Update for ai iFLOW CLI Automated Issue Triage
2 parents 80c88fa + 4a91578 commit 4b70fc1

File tree

20 files changed

+980
-295
lines changed

20 files changed

+980
-295
lines changed

.claude/index.json

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
{
2+
"timestamp": "2025-01-13T10:30:00Z",
3+
"version": "5.0.0",
4+
"coverage": {
5+
"totalEstimatedFiles": 150,
6+
"scannedFiles": 12,
7+
"coveragePercentage": 8.0,
8+
"truncated": false
9+
},
10+
"modules": {
11+
"root": {
12+
"path": "./",
13+
"description": "服务器核心模块",
14+
"entryPoints": ["server.go", "main.go"],
15+
"keyInterfaces": ["Server", "Publisher", "Subscriber", "Plugin"],
16+
"coverage": "complete",
17+
"keyFiles": [
18+
"server.go",
19+
"plugin.go",
20+
"publisher.go",
21+
"subscriber.go",
22+
"go.mod"
23+
]
24+
},
25+
"config": {
26+
"path": "pkg/config/",
27+
"description": "分层配置系统",
28+
"entryPoints": ["config.go"],
29+
"keyInterfaces": ["Config"],
30+
"coverage": "complete",
31+
"configPriority": "动态修改 > 环境变量 > 配置文件 > 默认值"
32+
},
33+
"auth": {
34+
"path": "pkg/auth/",
35+
"description": "JWT认证系统",
36+
"entryPoints": ["auth.go"],
37+
"keyInterfaces": ["TokenValidator"],
38+
"coverage": "partial"
39+
},
40+
"codec": {
41+
"path": "pkg/codec/",
42+
"description": "音视频编解码器",
43+
"entryPoints": ["index.go"],
44+
"supportedCodecs": ["H264", "H265", "AV1", "AAC", "MP3"],
45+
"coverage": "partial"
46+
},
47+
"util": {
48+
"path": "pkg/util/",
49+
"description": "通用工具库",
50+
"entryPoints": ["index.go"],
51+
"keyFeatures": ["集合管理", "环形缓冲区", "内存池"],
52+
"coverage": "partial"
53+
},
54+
"storage": {
55+
"path": "pkg/storage/",
56+
"description": "存储抽象层",
57+
"entryPoints": ["factory.go"],
58+
"supportedBackends": ["S3", "OSS", "COS", "Local"],
59+
"coverage": "partial"
60+
},
61+
"plugins": {
62+
"path": "plugin/",
63+
"description": "插件系统",
64+
"discoveredPlugins": {
65+
"rtmp": { "status": "detected", "coverage": "minimal" },
66+
"rtsp": { "status": "detected", "coverage": "minimal" },
67+
"hls": { "status": "detected", "coverage": "minimal" },
68+
"webrtc": { "status": "detected", "coverage": "minimal" },
69+
"gb28181": { "status": "detected", "coverage": "minimal" },
70+
"mp4": { "status": "detected", "coverage": "minimal" },
71+
"debug": { "status": "detected", "coverage": "minimal" },
72+
"crontab": { "status": "scanned", "coverage": "partial" },
73+
"cascade": { "status": "detected", "coverage": "minimal" }
74+
}
75+
},
76+
"examples": {
77+
"path": "example/",
78+
"description": "示例配置",
79+
"configFiles": ["example/default/config.yaml"],
80+
"coverage": "complete"
81+
}
82+
},
83+
"architecture": {
84+
"corePattern": "插件化架构",
85+
"taskSystem": "异步队列处理 (Work/Job/Task)",
86+
"streamProcessing": "Publisher/Subscriber 模式",
87+
"configSystem": "分层配置系统",
88+
"communication": "全局实例模式 + 事件驱动"
89+
},
90+
"gaps": [
91+
"plugin/ 目录下的具体插件实现需要深入扫描",
92+
"pkg/ 目录下的各个工具包需要更详细的分析",
93+
"任务系统的具体实现细节需要补充",
94+
"流媒体处理管道的详细实现",
95+
"数据库模型和迁移逻辑"
96+
],
97+
"ignoreRules": [
98+
".history",
99+
".vscode",
100+
"logs",
101+
"fatal",
102+
".idea",
103+
"victoria-logs-data",
104+
"dump",
105+
"record",
106+
"bin",
107+
".DS_Store",
108+
"*.db",
109+
"*.flv",
110+
"*.zip",
111+
"*.mp4",
112+
"__debug*",
113+
".cursorrules"
114+
],
115+
"nextSteps": [
116+
"深度扫描 plugin/ 目录下的各个插件实现",
117+
"分析 pkg/util/ 中的核心工具类",
118+
"深入研究任务系统的实现机制",
119+
"分析音视频处理管道的详细实现",
120+
"研究配置系统的高级特性"
121+
]
122+
}

.github/workflows/iflow.yml

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
name: '🏷️ iFLOW CLI Automated Issue Triage'
2+
3+
on:
4+
issues:
5+
types:
6+
- 'opened'
7+
- 'reopened'
8+
issue_comment:
9+
types:
10+
- 'created'
11+
workflow_dispatch:
12+
inputs:
13+
issue_number:
14+
description: 'issue number to triage'
15+
required: true
16+
type: 'number'
17+
18+
concurrency:
19+
group: '${{ github.workflow }}-${{ github.event.issue.number }}'
20+
cancel-in-progress: true
21+
22+
defaults:
23+
run:
24+
shell: 'bash'
25+
26+
permissions:
27+
contents: 'read'
28+
issues: 'write'
29+
statuses: 'write'
30+
31+
jobs:
32+
triage-issue:
33+
if: |-
34+
github.event_name == 'issues' ||
35+
github.event_name == 'workflow_dispatch' ||
36+
(
37+
github.event_name == 'issue_comment' &&
38+
contains(github.event.comment.body, '@iflow-cli /triage') &&
39+
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
40+
)
41+
timeout-minutes: 5
42+
runs-on: 'ubuntu-latest'
43+
steps:
44+
- name: Checkout repository
45+
uses: actions/checkout@v4
46+
47+
- name: 'Run iFlow CLI Issue Triage'
48+
uses: vibe-ideas/iflow-cli-action@main
49+
id: 'iflow_cli_issue_triage'
50+
env:
51+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
52+
ISSUE_TITLE: '${{ github.event.issue.title }}'
53+
ISSUE_BODY: '${{ github.event.issue.body }}'
54+
ISSUE_NUMBER: '${{ github.event.issue.number }}'
55+
REPOSITORY: '${{ github.repository }}'
56+
with:
57+
api_key: ${{ secrets.IFLOW_API_KEY }}
58+
timeout: "3600"
59+
extra_args: "--debug"
60+
prompt: |
61+
## Role
62+
63+
You are an issue triage assistant. Analyze the current GitHub issue
64+
and apply the most appropriate existing labels. Use the available
65+
tools to gather information; do not ask for information to be
66+
provided.
67+
68+
## Steps
69+
70+
1. Run: `gh label list` to get all available labels.
71+
2. Review the issue title and body provided in the environment
72+
variables: "${ISSUE_TITLE}" and "${ISSUE_BODY}".
73+
3. Classify issues by their kind (bug, enhancement, documentation,
74+
cleanup, etc) and their priority (p0, p1, p2, p3). Set the
75+
labels according to the format `kind/*` and `priority/*` patterns.
76+
4. Apply the selected labels to this issue using:
77+
`gh issue edit "${ISSUE_NUMBER}" --add-label "label1,label2"`
78+
5. If the "status/needs-triage" label is present, remove it using:
79+
`gh issue edit "${ISSUE_NUMBER}" --remove-label "status/needs-triage"`
80+
81+
## Guidelines
82+
83+
- Only use labels that already exist in the repository
84+
- Do not add comments or modify the issue content
85+
- Triage only the current issue
86+
- Assign all applicable labels based on the issue content
87+
- Reference all shell variables as "${VAR}" (with quotes and braces)
88+
89+
- name: 'Post Issue Triage Failure Comment'
90+
if: |-
91+
${{ failure() && steps.iflow_cli_issue_triage.outcome == 'failure' }}
92+
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
93+
with:
94+
github-token: '${{ secrets.GITHUB_TOKEN }}'
95+
script: |-
96+
github.rest.issues.createComment({
97+
owner: '${{ github.repository }}'.split('/')[0],
98+
repo: '${{ github.repository }}'.split('/')[1],
99+
issue_number: '${{ github.event.issue.number }}',
100+
body: 'There is a problem with the iFlow CLI issue triaging. Please check the [action logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details.'
101+
})

0 commit comments

Comments
 (0)