name: Generate README based on repo name and commits on: push: branches: - main # 可根据实际情况修改为你的默认分支 jobs: generate-readme: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 # 获取完整的提交历史 - name: Get repository name id: repo-name run: | REPO_NAME=$(echo ${{ github.repository }} | cut -d '/' -f 2) echo "::set-output name=name::$REPO_NAME" - name: Get recent commits id: recent-commits run: | COMMITS=$(git log --pretty=format:"- %s (%an, %ad)" --date=short -n 5) echo "::set-output name=commits::$COMMITS" - name: Generate README run: | cat << EOF > README.md # ${{ steps.repo-name.outputs.name }} ## Recent Commits ${{ steps.recent-commits.outputs.commits }} EOF - name: Commit and push changes run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git add README.md if git diff --staged --quiet; then echo "No changes to README.md. Skipping commit." else git commit -m "Update README with recent commits" git push fi