mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-03 20:34:20 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Apply labels to PR
 | 
						|
on:
 | 
						|
  pull_request_target:
 | 
						|
    # required for pr-labeler to support PRs from forks
 | 
						|
    # ===================== ⛔ ☢️ 🚫 ⚠️ Warning ⚠️ 🚫 ☢️ ⛔ =======================
 | 
						|
    # Be very careful what you put in this GitHub Action workflow file to avoid
 | 
						|
    # malicious PRs from getting access to the Mermaid-js repo.
 | 
						|
    #
 | 
						|
    # Please read the following first before reviewing/merging:
 | 
						|
    # - https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target
 | 
						|
    # - https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
 | 
						|
    types: [opened, reopened, synchronize]
 | 
						|
 | 
						|
permissions:
 | 
						|
  contents: read
 | 
						|
 | 
						|
jobs:
 | 
						|
  pr-labeler:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    permissions:
 | 
						|
      contents: read # read permission is required to read config file
 | 
						|
      pull-requests: write # write permission is required to label PRs
 | 
						|
    steps:
 | 
						|
      - name: Label PR
 | 
						|
        uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
 | 
						|
        with:
 | 
						|
          config-name: pr-labeler.yml
 | 
						|
          disable-autolabeler: false
 | 
						|
          disable-releaser: true
 | 
						|
        env:
 | 
						|
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
      - name: Add "Sponsored by MermaidChart" label
 | 
						|
        uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
 | 
						|
        with:
 | 
						|
          github-token: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
          script: |
 | 
						|
            const prNumber = context.payload.pull_request.number;
 | 
						|
            const { data: commits } = await github.rest.pulls.listCommits({
 | 
						|
              owner: context.repo.owner,
 | 
						|
              repo: context.repo.repo,
 | 
						|
              pull_number: prNumber,
 | 
						|
            });
 | 
						|
 | 
						|
            const isSponsored = commits.every(
 | 
						|
              (c) => c.commit.author.email?.endsWith('@mermaidchart.com')
 | 
						|
            );
 | 
						|
 | 
						|
            if (isSponsored) {
 | 
						|
              console.log('PR is sponsored. Adding label.');
 | 
						|
              await github.rest.issues.addLabels({
 | 
						|
                owner: context.repo.owner,
 | 
						|
                repo: context.repo.repo,
 | 
						|
                issue_number: prNumber,
 | 
						|
                labels: ['Sponsored by MermaidChart'],
 | 
						|
              });
 | 
						|
            }
 |