如何实现新建分支时自动编辑changes.md并同步changes.txt的GitHub Workflow?
需求完全可实现,以下是具体的GitHub Workflow配置方案
核心逻辑
借助GitHub Actions的分支创建事件触发Workflow,自动完成changes.md的初始化/编辑、changes.txt内容追加,最后提交推送修改至新分支。
完整Workflow配置(.github/workflows/update-changes.yml)
name: Update Changes on Branch Creation on: create: types: [branch] jobs: update-changes-file: runs-on: ubuntu-latest steps: - name: 检出新分支代码 uses: actions/checkout@v4 with: ref: ${{ github.ref_name }} - name: 配置Git提交身份 run: | git config --global user.name "GitHub Actions" git config --global user.email "actions@github.com" - name: 写入分支基础信息到changes.md run: | # 提取分支相关变量 BRANCH_NAME="${{ github.ref_name }}" CREATOR="${{ github.event.sender.login }}" CREATED_TIME=$(date +"%B %d, %Y @ %I:%M:%S %p") # 初始化或追加内容 if [ ! -f changes.md ]; then echo "# Changes" > changes.md fi echo -e "\n- This branch is titled $BRANCH_NAME" >> changes.md echo "- This branch was made by $CREATOR" >> changes.md echo "- This branch was made on $CREATED_TIME" >> changes.md - name: 追加changes.txt操作记录到changes.md run: | if [ -f changes.txt ]; then echo -e "\n## 操作记录" >> changes.md while IFS= read -r line; do echo "- $line" >> changes.md done < changes.txt fi - name: 提交并推送修改 run: | git add changes.md git commit -m "Update changes.md with branch info and operation records" git push
关键细节说明
- 触发时机:仅在新分支创建时触发Workflow,避免其他操作干扰
- 信息获取:通过GitHub内置环境变量直接获取分支名、创建者信息,日期时间用
date命令生成符合示例的格式 - 文件处理逻辑:
- 自动判断
changes.md是否存在,不存在则初始化标题 - 若
changes.txt存在,将每行内容添加列表前缀后追加到changes.md,并通过二级标题区分模块
- 自动判断
- 提交推送:使用GitHub Actions默认身份完成代码提交,无需额外配置权限
内容的提问来源于stack exchange,提问作者Bugs Bunny
相关产品推荐
相关产品推荐

