mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Close Matching Issue on PR Merge
 | 
						|
on:
 | 
						|
  pull_request:
 | 
						|
    types:
 | 
						|
      - closed
 | 
						|
jobs:
 | 
						|
  close_issue:
 | 
						|
    if: github.event.pull_request.merged == true
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    
 | 
						|
    steps:
 | 
						|
      - name: Checkout target repo (main)
 | 
						|
        uses: actions/checkout@v4
 | 
						|
        with:
 | 
						|
          repository: community-scripts/ProxmoxVE
 | 
						|
          ref: main
 | 
						|
          token: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
      - name: Extract and Process PR Title
 | 
						|
        id: extract_title
 | 
						|
        run: |
 | 
						|
          title=$(echo "${{ github.event.pull_request.title }}" | sed 's/^New Script://g' | tr '[:upper:]' '[:lower:]' | sed 's/ //g' | sed 's/-//g')
 | 
						|
          echo "Processed Title: $title"
 | 
						|
          echo "title=$title" >> $GITHUB_ENV
 | 
						|
 | 
						|
      - name: Search for Issues with Similar Titles
 | 
						|
        id: find_issue
 | 
						|
        env:
 | 
						|
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
        run: |
 | 
						|
          issues=$(gh issue list --repo community-scripts/ProxmoxVED --json number,title --jq '.[] | {number, title}')
 | 
						|
          
 | 
						|
          best_match_score=0
 | 
						|
          best_match_number=0
 | 
						|
          
 | 
						|
          for issue in $(echo "$issues" | jq -r '. | @base64'); do
 | 
						|
            _jq() {
 | 
						|
              echo ${issue} | base64 --decode | jq -r ${1}
 | 
						|
            }
 | 
						|
 | 
						|
            issue_title=$(_jq '.title' | tr '[:upper:]' '[:lower:]' | sed 's/ //g' | sed 's/-//g')
 | 
						|
            issue_number=$(_jq '.number')
 | 
						|
 | 
						|
            match_score=$(echo "$title" | grep -o "$issue_title" | wc -l)
 | 
						|
            
 | 
						|
            if [ "$match_score" -gt "$best_match_score" ]; then
 | 
						|
              best_match_score=$match_score
 | 
						|
              best_match_number=$issue_number
 | 
						|
            fi
 | 
						|
          done
 | 
						|
 | 
						|
          if [ "$best_match_number" != "0" ]; then
 | 
						|
            echo "issue_number=$best_match_number" >> $GITHUB_ENV
 | 
						|
          else
 | 
						|
            echo "No matching issue found."
 | 
						|
            exit 0
 | 
						|
          fi
 | 
						|
 | 
						|
      - name: Comment on the Best-Matching Issue and Close It
 | 
						|
        if: env.issue_number != ''
 | 
						|
        env:
 | 
						|
          GH_TOKEN: ${{ secrets.PAT_MICHEL }}
 | 
						|
        run: |
 | 
						|
          gh issue comment $issue_number --repo community-scripts/ProxmoxVED --body "Merged with #${{ github.event.pull_request.number }} in ProxmoxVE"
 | 
						|
          gh issue close $issue_number --repo community-scripts/ProxmoxVED
 |