1+ name : Initialize Repository
2+
3+ on :
4+ workflow_dispatch : # 手动触发,可用于仓库首次初始化
5+ push :
6+ paths :
7+ - ' LICENSE' # 当 LICENSE 文件发生变更时触发
8+ - ' !.github/**'
9+
10+ jobs :
11+ init :
12+ runs-on : ubuntu-latest
13+ steps :
14+ - name : Checkout repository
15+ uses : actions/checkout@v4
16+ with :
17+ fetch-depth : 0 # 获取完整历史以确保可以正确提交
18+ token : ${{ secrets.GITHUB_TOKEN }} # 使用具有写入权限的token
19+
20+ - name : Set repository variables
21+ run : |
22+ # 从环境变量 GITHUB_REPOSITORY 中提取仓库名称和所有者(格式为 owner/repo)
23+ REPO_FULL="${GITHUB_REPOSITORY}"
24+ REPO_OWNER="${REPO_FULL%/*}"
25+ REPO_NAME="${REPO_FULL#*/}"
26+ # 将横杠替换为下划线
27+ UNDERSCORE_REPO_NAME=$(echo "$REPO_NAME" | tr '-' '_')
28+ echo "REPO_OWNER=${REPO_OWNER}" >> $GITHUB_ENV
29+ echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV
30+ echo "UNDERSCORE_REPO_NAME=${UNDERSCORE_REPO_NAME}" >> $GITHUB_ENV
31+ echo "Repository owner: $REPO_OWNER"
32+ echo "Repository name: $REPO_NAME"
33+ echo "Repository underscore name: $UNDERSCORE_REPO_NAME"
34+
35+ - name : Update README.md
36+ run : |
37+ # 替换 README.md 中的内容
38+ rm -f README.md
39+ sed -i.bak "s/{owner}/${REPO_OWNER}/g" readme_template.md
40+ sed -i.bak "s/{plugin-name}/${REPO_NAME}/g" readme_template.md
41+ sed -i.bak "s/nonebot_plugin_template/${UNDERSCORE_REPO_NAME}/g" readme_template.md
42+ mv readme_template.md README.md
43+ rm -f README.md.bak
44+ rm -f readme_template.md.bak
45+
46+ - name : Update pyproject.toml
47+ run : |
48+ # 替换 pyproject.toml 中的内容
49+ sed -i.bak "s/nonebot-plugin-template/${REPO_NAME}/g" pyproject.toml
50+ sed -i.bak "s/owner/${REPO_OWNER}/g" pyproject.toml
51+ sed -i.bak "s/nonebot_plugin_template/${UNDERSCORE_REPO_NAME}/g" pyproject.toml
52+ rm -f pyproject.toml.bak
53+
54+ - name : Rename plugin metadata
55+ run : |
56+ # 修改 nonebot_plugin_template/__init__.py 中的插件元数据 中的 homepage
57+ sed -i.bak "s/owner/${REPO_OWNER}/g" src/nonebot_plugin_template/__init__.py
58+ sed -i.bak "s/nonebot-plugin-template/${REPO_NAME}/g" src/nonebot_plugin_template/__init__.py
59+ rm -f src/nonebot_plugin_template/__init__.py.bak
60+
61+ - name : Rename plugin folder
62+ run : |
63+ if [ -d "src/nonebot_plugin_template" ]; then
64+ mv src/nonebot_plugin_template "src/${UNDERSCORE_REPO_NAME}"
65+ echo "Successfully renamed plugin folder to ${UNDERSCORE_REPO_NAME}"
66+ else
67+ echo "Directory src/nonebot_plugin_template not found."
68+ exit 1
69+ fi
70+
71+ - name : Rename tests/plugin_test plugin name
72+ run : |
73+ # 修改 tests/plugin_test.py 中的插件名称
74+ sed -i.bak "s/nonebot_plugin_template/${UNDERSCORE_REPO_NAME}/g" tests/plugin_test.py
75+ rm -f tests/plugin_test.py.bak
76+
77+ - name : Commit and push changes
78+ run : |
79+ git config user.name "github-actions[bot]"
80+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
81+ git add .
82+ git commit -m "🎉 Initialize repository with correct naming"
83+ git push
0 commit comments