Flutter 工具类 App 点击无响应 Bug 猎手 — 自动搜索 GitHub 上的 UI 交互 bug
Project description
project-hunter
Flutter 工具类 App 点击无响应 Bug 猎手 — 自动搜索 GitHub 上的 UI 交互 bug。
安装
pip install project-hunter
需要先登录 GitHub CLI:
gh auth login
用法
project-hunter run # 用 .env 默认参数
project-hunter run --platform ios # 只看 iOS bug
project-hunter run --limit 20 # 输出 20 个仓库
project-hunter run --output-format json # JSON 格式
project-hunter run --save-path ~/Desktop/report.md # 指定保存路径
project-hunter run --help # 查看所有选项
配置
.env 文件按以下优先级查找:
- 当前目录
./.env(推荐,项目级配置) - 全局配置
~/.config/project-hunter/.env(所有目录通用)
创建全局配置:
mkdir -p ~/.config/project-hunter
cat > ~/.config/project-hunter/.env << 'EOF'
PLATFORM=android
MIN_ISSUES=50
LIMIT=10
SAVE_PATH=~/Documents/flutter-bug-report.md
EOF
或在当前目录创建 .env 文件:
PLATFORM=android # android | ios | all
MIN_ISSUES=50
LIMIT=10
CANDIDATES=140
MAX_ISSUE_PAGES=3
MAX_RELEASE_PAGES=2
OUTPUT_FORMAT=md # md | json | text
SAVE_PATH= # 留空 = 当前目录 flutter-bug-report.md
EDIT_DISTANCE_THRESHOLD=2
关键词文件说明
首次运行后,所有关键词文件自动生成到 ~/.config/project-hunter/keywords/,可直接编辑。
搜索流程分四个阶段,每个阶段使用不同的关键词文件:
flowchart TD
A([tool_categories.csv]) -->|生成搜索词| B[GitHub 搜索
几百个候选仓库]
B --> C{是工具类 App?
tool_app.csv
non_app_signals.csv}
C -->|否 - 跳过| BL[(blacklist.csv
自动追加)]
C -->|是| D{是目标平台?
android.csv / ios.csv}
D -->|--platform all 跳过此步| E
D -->|否 - 跳过| BL
D -->|是| E{issues 里有
点击无响应 bug?
interaction.csv}
E -->|否 - 跳过| BL
E -->|是| F[分析仓库
issue 数 / 版本 / 得分]
F --> G([输出报告])
| 文件 | 用途 |
|---|---|
tool_categories.csv |
生成 GitHub 搜索 query 的关键词(宽泛,用于找仓库) |
tool_app.csv |
验证仓库是工具类 App 的关键词(细,如 pedometer/calorie/bmi) |
non_app_signals.csv |
排除非 App 仓库的信号词(plugin/library/template 等) |
android.csv |
Android 平台识别词(android/gradle/apk 等) |
ios.csv |
iOS 平台识别词(iphone/xcode/cupertino 等) |
interaction.csv |
点击无响应 bug 关键词(not clickable/tap not working 等) |
--platform android 用 android.csv 过滤,--platform ios 用 ios.csv,--platform all 两个都不过滤。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file project_hunter-0.1.3.tar.gz.
File metadata
- Download URL: project_hunter-0.1.3.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63eaeb388bca95ca58ee37526690f9b1642d3049dd3d5eea5a6266a0e8046033
|
|
| MD5 |
c041aa1b4a1b9b62569e647a43f18a91
|
|
| BLAKE2b-256 |
9bc715fb1518b2f5a022bc1404e7318f251b990d0f04fbd776cb37830bc03c86
|
Provenance
The following attestation bundles were made for project_hunter-0.1.3.tar.gz:
Publisher:
publish.yml on Dylanmengzhou/github_hunter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_hunter-0.1.3.tar.gz -
Subject digest:
63eaeb388bca95ca58ee37526690f9b1642d3049dd3d5eea5a6266a0e8046033 - Sigstore transparency entry: 1059698012
- Sigstore integration time:
-
Permalink:
Dylanmengzhou/github_hunter@ba7785cf5080f8dd37fb9f42cd2af1afb676b0f9 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Dylanmengzhou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba7785cf5080f8dd37fb9f42cd2af1afb676b0f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file project_hunter-0.1.3-py3-none-any.whl.
File metadata
- Download URL: project_hunter-0.1.3-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1efdf59fff8a14673037a25c1acaebb6aef5fb7d804af9ec41b21992a28793db
|
|
| MD5 |
2157aae2728a5f7d3b49ad7d96e058fb
|
|
| BLAKE2b-256 |
6df68fe7022218f35fd98a4ad82cf4a9deee6c78e77a6d37682402d581691768
|
Provenance
The following attestation bundles were made for project_hunter-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on Dylanmengzhou/github_hunter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_hunter-0.1.3-py3-none-any.whl -
Subject digest:
1efdf59fff8a14673037a25c1acaebb6aef5fb7d804af9ec41b21992a28793db - Sigstore transparency entry: 1059698015
- Sigstore integration time:
-
Permalink:
Dylanmengzhou/github_hunter@ba7785cf5080f8dd37fb9f42cd2af1afb676b0f9 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Dylanmengzhou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba7785cf5080f8dd37fb9f42cd2af1afb676b0f9 -
Trigger Event:
release
-
Statement type: