diff --git a/.github/workflows/labeller.yml b/.github/workflows/labeller.yml new file mode 100644 index 0000000..1a51eee --- /dev/null +++ b/.github/workflows/labeller.yml @@ -0,0 +1,61 @@ +name: Labeller + +on: + workflow_call: + inputs: + label_name: + required: true + type: string + label_color: + required: true + type: string + org_membership: + required: true + type: string + secrets: + token: + required: true + +jobs: + communityLabeller: + runs-on: ubuntu-latest + steps: + - name: Label issues or pull requests + id: labeller + uses: puppetlabs/community-labeller@v0 + with: + label_name: ${{ github.event.inputs.label_name }} + label_color: ${{ github.event.inputs.label_color }} + org_membership: ${{ github.event.inputs.org_membership }} + token: ${{ secrets.IAC_COMMUNITY_LABELER }} + + labelValidator: + needs: communityLabeller + name: Validate label exists + runs-on: ubuntu-latest + steps: + - name: Check for Labels + uses: actions/github-script@v6 + with: + script: | + async function getPullRequest() { + // Get current pull request labels + const { data: { labels } } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.number, + }); + + // Log found label names + for (const label of labels) { + core.info(`Found label named '${label.name}' on pull request number ${context.payload.number}`); + } + + // Fail workflow if no labels exist + const labelsExist = labels.length > 0; + if (!labelsExist) { + core.setFailed(`Please ensure that a label exists on pull request number ${context.payload.number}`); + } + } + + await getPullRequest(); \ No newline at end of file