Skip to content

ci: Try to fix errors #25

ci: Try to fix errors

ci: Try to fix errors #25

Workflow file for this run

name: Auto PR
on:
push:
branches:
- dev
jobs:
handle_pr:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install GitHub CLI
run: sudo apt-get install gh
- name: Get committer username and email
run: |
committer_username=$(git log -1 --pretty=format:'%an')
committer_email=$(git log -1 --pretty=format:'%ae')
echo "committer_username=$committer_username" >> $GITHUB_ENV
echo "committer_email=$committer_email" >> $GITHUB_ENV
- name: Hash committer username
run: |
branch_name=$(echo -n "${{ env.committer_username }}" | md5sum | awk '{ print $1 }')
echo "branch_name=dev_pr_$branch_name" >> $GITHUB_ENV
echo "Branch name: ${{ env.branch_name }}"
- name: Configure git
run: |
git config --global user.name "${{ env.committer_username }}"
git config --global user.email "${{ env.committer_email }}"
- name: Check if PR branch exists
id: check_branch
run: |
git fetch origin
if git show-ref --verify --quiet refs/remotes/origin/${{ env.branch_name }}; then
echo "branch_exists=true" >> $GITHUB_ENV
else
echo "branch_exists=false" >> $GITHUB_ENV
fi
- name: Create and push new branch based on dev
if: env.branch_exists == 'false'
run: |
git fetch origin
git checkout dev
git pull origin dev
git checkout -b ${{ env.branch_name }}
git push origin ${{ env.branch_name }}
- name: Fetch, rebase and push to existing branch
if: env.branch_exists == 'true'
run: |
git fetch origin
git checkout ${{ env.branch_name }}
git pull origin ${{ env.branch_name }} --rebase
git push origin ${{ env.branch_name }}
- name: Create Pull Request
if: env.branch_exists == 'false'
id: create_pr
run: |
response=$(curl -s -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
-d '{
"title": "Auto PR from ${{ env.branch_name }}",
"body": "This is an automated PR created from ${{ env.branch_name }}",
"head": "${{ env.branch_name }}",
"base": "main"
}' \
https://api.github.com/repos/${{ github.repository }}/pulls)
echo "response=$response" >> $GITHUB_ENV
echo "PR creation response: $response"
- name: Wait for PR creation
if: env.branch_exists == 'false'
run: sleep 30 # 等待 30 秒,确保 PR 被创建
- name: Get PR number
if: env.branch_exists == 'false'
run: |
pr_number=$(echo "${{ env.response }}" | jq -r .number)
echo "pr_number=$pr_number" >> $GITHUB_ENV
echo "PR number: $pr_number"
- name: Append commit to existing PR
if: env.branch_exists == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pr_number=$(gh pr list --state open --head ${{ env.branch_name }} --json number -q '.[0].number')
echo "pr_number=$pr_number" >> $GITHUB_ENV
echo "Appending commit to PR #${{ env.pr_number }}"
gh pr comment ${{ env.pr_number }} --body "New commits have been added to the PR."