1- import { components } from ' npm:@octokit/openapi-types'
2- import { $ , argv , YAML } from ' npm:zx'
1+ import { components } from " npm:@octokit/openapi-types" ;
2+ import { $ , argv , YAML } from " npm:zx" ;
33
4- import { Reward } from ' ./type.ts'
4+ import { Reward } from " ./type.ts" ;
55
6- $ . verbose = true
6+ $ . verbose = true ;
77
88const [
99 repositoryOwner ,
@@ -12,11 +12,11 @@ const [
1212 payer , // GitHub username of the payer (provided by workflow, defaults to issue creator)
1313 currency ,
1414 reward ,
15- ] = argv . _
15+ ] = argv . _ ;
1616
1717interface PRMeta {
18- author : components [ ' schemas' ] [ ' simple-user' ]
19- assignees : components [ ' schemas' ] [ ' simple-user' ] [ ]
18+ author : components [ " schemas" ] [ " simple-user" ] ;
19+ assignees : components [ " schemas" ] [ " simple-user" ] [ ] ;
2020}
2121
2222const PR_DATA = await $ `gh api graphql -f query='{
@@ -33,75 +33,75 @@ const PR_DATA = await $`gh api graphql -f query='{
3333 }
3434 }
3535 }
36- }' --jq '.data.repository.issue.closedByPullRequestsReferences.nodes[] | select(.merged == true) | {url: .url, mergeCommitSha: .mergeCommit.oid}' | head -n 1`
36+ }' --jq '.data.repository.issue.closedByPullRequestsReferences.nodes[] | select(.merged == true) | {url: .url, mergeCommitSha: .mergeCommit.oid}' | head -n 1` ;
3737
38- const prData = PR_DATA . text ( ) . trim ( )
38+ const prData = PR_DATA . text ( ) . trim ( ) ;
3939
4040if ( ! prData )
41- throw new ReferenceError ( ' No merged PR is found for the given issue number.' )
41+ throw new ReferenceError ( " No merged PR is found for the given issue number." ) ;
4242
43- const { url : PR_URL , mergeCommitSha } = JSON . parse ( prData )
43+ const { url : PR_URL , mergeCommitSha } = JSON . parse ( prData ) ;
4444
4545if ( ! PR_URL || ! mergeCommitSha )
46- throw new Error ( ' Missing required fields in PR data' )
46+ throw new Error ( " Missing required fields in PR data" ) ;
4747
48- console . table ( { PR_URL , mergeCommitSha } )
48+ console . table ( { PR_URL , mergeCommitSha } ) ;
4949
5050const { author, assignees } : PRMeta = await (
5151 await $ `gh pr view ${ PR_URL } --json author,assignees`
52- ) . json ( )
52+ ) . json ( ) ;
5353
5454function isBotUser ( login : string ) {
55- const lowerLogin = login . toLowerCase ( )
55+ const lowerLogin = login . toLowerCase ( ) ;
5656 return (
57- lowerLogin . includes ( ' copilot' ) ||
58- lowerLogin . includes ( ' [bot]' ) ||
59- lowerLogin === ' github-actions[bot]' ||
60- lowerLogin . endsWith ( ' [bot]' )
61- )
57+ lowerLogin . includes ( " copilot" ) ||
58+ lowerLogin . includes ( " [bot]" ) ||
59+ lowerLogin === " github-actions[bot]" ||
60+ lowerLogin . endsWith ( " [bot]" )
61+ ) ;
6262}
6363
6464// Filter out Bot users from the list
65- const allUsers = [ author . login , ...assignees . map ( ( { login } ) => login ) ]
66- const users = allUsers . filter ( ( login ) => ! isBotUser ( login ) )
65+ const allUsers = [ author . login , ...assignees . map ( ( { login } ) => login ) ] ;
66+ const users = allUsers . filter ( ( login ) => ! isBotUser ( login ) ) ;
6767
68- console . log ( `All users: ${ allUsers . join ( ', ' ) } ` )
69- console . log ( `Filtered users (excluding bots): ${ users . join ( ', ' ) } ` )
68+ console . log ( `All users: ${ allUsers . join ( ", " ) } ` ) ;
69+ console . log ( `Filtered users (excluding bots): ${ users . join ( ", " ) } ` ) ;
7070
7171if ( ! users [ 0 ] )
7272 throw new ReferenceError (
73- ' No real users found (all users are bots). Skipping reward distribution.' ,
74- )
73+ " No real users found (all users are bots). Skipping reward distribution."
74+ ) ;
7575
76- const rewardNumber = parseFloat ( reward )
76+ const rewardNumber = parseFloat ( reward ) ;
7777
7878if ( isNaN ( rewardNumber ) || rewardNumber <= 0 )
7979 throw new RangeError (
80- `Reward amount is not a valid number, can not proceed with reward distribution. Received reward value: ${ reward } ` ,
81- )
80+ `Reward amount is not a valid number, can not proceed with reward distribution. Received reward value: ${ reward } `
81+ ) ;
8282
83- const averageReward = ( rewardNumber / users . length ) . toFixed ( 2 )
83+ const averageReward = ( rewardNumber / users . length ) . toFixed ( 2 ) ;
8484
8585const list : Reward [ ] = users . map ( ( login ) => ( {
8686 issue : `#${ issueNumber } ` ,
8787 payer : `@${ payer } ` ,
8888 payee : `@${ login } ` ,
8989 currency,
9090 reward : parseFloat ( averageReward ) ,
91- } ) )
92- const listText = YAML . stringify ( list )
91+ } ) ) ;
92+ const listText = YAML . stringify ( list ) ;
9393
94- console . log ( listText )
94+ console . log ( listText ) ;
9595
96- await $ `git config user.name "github-actions[bot]"`
97- await $ `git config user.email "github-actions[bot]@users.noreply.github.com"`
98- await $ `git tag -a "reward-${ issueNumber } " ${ mergeCommitSha } -m ${ listText } `
99- await $ `git push origin --tags --no-verify`
96+ await $ `git config user.name "github-actions[bot]"` ;
97+ await $ `git config user.email "github-actions[bot]@users.noreply.github.com"` ;
98+ await $ `git tag -a "reward-${ issueNumber } " ${ mergeCommitSha } -m ${ listText } ` ;
99+ await $ `git push origin --tags --no-verify` ;
100100
101101const commentBody = `## Reward data
102102
103103\`\`\`yml
104104${ listText }
105105\`\`\`
106- `
107- await $ `gh issue comment ${ issueNumber } --body ${ commentBody } `
106+ ` ;
107+ await $ `gh issue comment ${ issueNumber } --body ${ commentBody } ` ;
0 commit comments