From a915cc7bc4dc61aae1b866cf00d4ba46f768b11c Mon Sep 17 00:00:00 2001 From: jeet041 Date: Wed, 16 Apr 2025 17:57:52 +0530 Subject: [PATCH] Create AI_to_merge_conflict.yml Signed-off-by: jeet041 --- .github/workflows/AI_to_merge_conflict.yml | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/AI_to_merge_conflict.yml diff --git a/.github/workflows/AI_to_merge_conflict.yml b/.github/workflows/AI_to_merge_conflict.yml new file mode 100644 index 000000000..5d61110d5 --- /dev/null +++ b/.github/workflows/AI_to_merge_conflict.yml @@ -0,0 +1,67 @@ +name: Auto Resolve Conflicts + +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + resolve-conflicts: + runs-on: ubuntu-latest + + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout PR branch + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.ref }} + fetch-depth: 0 + + - name: Set up Git + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + + - name: Check for merge conflicts + id: check_conflicts + run: | + git fetch origin ${{ github.event.pull_request.base.ref }} + git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} || true + git status --porcelain | grep 'UU' || echo "NO_CONFLICTS" + continue-on-error: true + + - name: Extract conflicted files + id: conflicted_files + if: steps.check_conflicts.outcome == 'success' + run: | + conflict_files=$(git status --porcelain | grep '^UU' | awk '{print $2}') + echo "conflicted: $conflict_files" + echo "files=$conflict_files" >> $GITHUB_OUTPUT + + # - name: Call Lambda to resolve conflicts + # if: steps.conflicted_files.outputs.files != '' + # env: + # LAMBDA_URL: ${{ secrets.LAMBDA_URL }} + # run: | + # for file in ${{ steps.conflicted_files.outputs.files }}; do + # payload=$(jq -n \ + # --arg file "$file" \ + # --arg content "$(cat $file | base64)" \ + # --arg repo "${{ github.event.repository.name }}" \ + # --arg owner "${{ github.repository_owner }}" \ + # --arg pr_number "${{ github.event.pull_request.number }}" \ + # '{file: $file, content: $content, repo: $repo, owner: $owner, pr_number: $pr_number}') + + # resolved=$(curl -s -X POST "$LAMBDA_URL" -H "Content-Type: application/json" -d "$payload") + + # echo "$resolved" | base64 -d > "$file" + # git add "$file" + # done + + # - name: Commit resolved files + # if: steps.conflicted_files.outputs.files != '' + # run: | + # git commit -m "Auto-resolved conflicts via Lambda" + # git push origin HEAD:${{ github.event.pull_request.head.ref }}