-
Notifications
You must be signed in to change notification settings - Fork 334
62 lines (55 loc) · 2.26 KB
/
valid-milestone-change.yml
File metadata and controls
62 lines (55 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
name: Check for Unexpected Milestone Change
on:
issues:
types: [milestoned, demilestoned, edited]
permissions:
issues: read
organization: read
jobs:
notify-on-milestone-change:
if: |
github.event.action == 'milestoned' ||
github.event.action == 'demilestoned' ||
(github.event.action == 'edited' && github.event.changes.milestone)
runs-on: ubuntu-latest
steps:
- name: Set Event Data
id: event_data
run: |
if [ "${{ github.event.action }}" == "milestoned" ]; then
echo "OLD_MILESTONE=None"
echo "NEW_MILESTONE=${{ github.event.issue.milestone.title }}"
elif [ "${{ github.event.action }}" == "demilestoned" ]; then
echo "OLD_MILESTONE=${{ github.event.milestone.title }}"
echo "NEW_MILESTONE=None"
elif [ "${{ github.event.action }}" == "edited" ]; then
echo "OLD_MILESTONE=${{ github.event.changes.milestone.from.title || 'None' }}"
echo "NEW_MILESTONE=${{ github.event.issue.milestone.title || 'None' }}"
fi >> $GITHUB_ENV
echo "ACTOR=${{ github.event.sender.login }}" >> $GITHUB_ENV
echo "ISSUE_TITLE=${{ github.event.issue.title }}" >> $GITHUB_ENV
echo "ISSUE_URL=${{ github.event.issue.html_url }}" >> $GITHUB_ENV
- name: Check Team Membership
id: check_team
continue-on-error: true
if: |
github.event.sender.login != 'rancher-ui-project-bot' &&
github.event.sender.login != 'rancher-backport-assistant'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api --silent /orgs/rancher/teams/ui/memberships/${{ env.ACTOR }}
- name: "Send Slack message if user is not a team member"
if: steps.check_team.outcome == 'failure'
uses: slackapi/slack-github-action@03ea5433c137af7c0495bc0cad1af10403fc800c # v3.0.2
with:
payload: |
{
"actor": "${{ env.ACTOR }}",
"issue_title": "${{ env.ISSUE_TITLE }}",
"issue_url": "${{ env.ISSUE_URL }}",
"milestone_new": "${{ env.NEW_MILESTONE }}",
"milestone_old": "${{ env.OLD_MILESTONE }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WORKFLOW_MILESTONE_CHANGED_URL }}