# shamelessly copied from https://github.com/sigstore/cosign/blob/main/.github/workflows/milestone.yaml

name: milestone

on:
  pull_request_target:
    types: [closed]
    branches:
      - main

permissions:
  contents: read

jobs:
  milestone:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
      pull-requests: write
    steps:
      - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
        with:
          script: |
            if (!context.payload.pull_request.merged) {
              console.log('PR was not merged, skipping.');
              return;
            }

            if (!!context.payload.pull_request.milestone) {
              console.log('PR has existing milestone, skipping.');
              return;
            }

            milestones = await github.rest.issues.listMilestones({
              owner: context.repo.owner,
              repo: context.repo.repo,
              state: 'open',
              sort: 'due_on',
              direction: 'asc'
            })
            if (milestones.data.length === 0) {
              console.log('There are no milestones, skipping.');
              return;
            }

            await github.rest.issues.update({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.payload.pull_request.number,
              milestone: milestones.data[0].number
            });
