File tree 2 files changed +41
-3
lines changed
2 files changed +41
-3
lines changed Original file line number Diff line number Diff line change
1
+ const {
2
+ PR_ACTION ,
3
+ PR_AUTHOR ,
4
+ PR_BODY ,
5
+ PR_NUMBER ,
6
+ IGNORE_AUTHORS ,
7
+ LABEL_BLOCK ,
8
+ LABEL_BLOCK_REASON
9
+ } = require ( "./constants" )
10
+
11
+ module . exports = async ( { github, context, core} ) => {
12
+ if ( IGNORE_AUTHORS . includes ( PR_AUTHOR ) ) {
13
+ return core . notice ( "Author in IGNORE_AUTHORS list; skipping..." )
14
+ }
15
+
16
+ if ( PR_ACTION != "opened" ) {
17
+ return core . notice ( "Only newly open PRs are labelled to avoid spam; skipping" )
18
+ }
19
+
20
+ const RELATED_ISSUE_REGEX = / I s s u e n u m b e r : [ ^ \d \r \n ] + (?< issue > \d + ) / ;
21
+ const isMatch = RELATED_ISSUE_REGEX . exec ( PR_BODY ) ;
22
+ if ( isMatch == null ) {
23
+ core . info ( `No related issue found, maybe the author didn't use the template but there is one.` )
24
+
25
+ let msg = "No related issues found. Please ensure there is an open issue related to this change to avoid significant delays or closure." ;
26
+ await github . rest . issues . createComment ( {
27
+ owner : context . repo . owner ,
28
+ repo : context . repo . repo ,
29
+ body : msg ,
30
+ issue_number : PR_NUMBER ,
31
+ } ) ;
32
+
33
+ return await github . rest . issues . addLabels ( {
34
+ issue_number : PR_NUMBER ,
35
+ owner : context . repo . owner ,
36
+ repo : context . repo . repo ,
37
+ labels : [ LABEL_BLOCK , LABEL_BLOCK_REASON ]
38
+ } )
39
+ }
40
+ }
Original file line number Diff line number Diff line change 20
20
steps :
21
21
- uses : actions/checkout@v3
22
22
- name : " Debug workflow_run event"
23
- env :
24
- event_payload : ${{ toJSON(github) }}
25
- run : echo $event_payload
23
+ run : echo "${{ github }}"
26
24
- name : " Ensure related issue is present"
27
25
uses : actions/github-script@v6
28
26
env :
You can’t perform that action at this time.
0 commit comments