Skip to content

Commit 2e59b17

Browse files
committed
Merge branch 'main' into v2
* main: approver: send server-defined messages
2 parents af32032 + ac0bf0d commit 2e59b17

File tree

6 files changed

+32
-5
lines changed

6 files changed

+32
-5
lines changed

‎action.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ runs:
7575
if: ${{ steps.codeball_status.outputs.approved == 'false' && inputs.failJobsWhenReviewNeeded == 'true' }}
7676
run: |
7777
echo "Not approved"
78-
exit 1
78+
exit 1

‎src/approver/main.ts‎

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,28 @@ import {Octokit, optional, required} from '../lib'
44
import {ForbiddenError} from '../lib/api'
55
import {approve} from '../lib/github'
66
import {track} from '../lib/track'
7+
import {list as listMessages} from '../lib/jobs/messages'
78

89
const jobID = optional('codeball-job-id')
910

11+
const defaultMessages = [
12+
required('message'),
13+
'<hr />',
14+
`[dashboard](https://codeball.ai/${process.env.GITHUB_REPOSITORY})`
15+
]
16+
17+
const getServerSideMessages = (jobId: string) =>
18+
listMessages(jobId).then(messages => [
19+
required('message'),
20+
'<hr />',
21+
...messages.map(message => message.text)
22+
])
23+
24+
const getMessages = (jobId: string | undefined) =>
25+
jobId
26+
? getServerSideMessages(jobId).catch(() => defaultMessages)
27+
: defaultMessages
28+
1029
async function run(): Promise<void> {
1130
const pullRequestURL = github.context.payload?.pull_request?.html_url
1231
if (!pullRequestURL) throw new Error('No pull request URL found')
@@ -24,12 +43,9 @@ async function run(): Promise<void> {
2443
if (!repoName) throw new Error('No repo name found')
2544

2645
const githubToken = required('GITHUB_TOKEN')
27-
const message = required('message')
28-
2946
const octokit = new Octokit({auth: githubToken})
3047

31-
const dashboardLink = `[dashboard](https://codeball.ai/${process.env.GITHUB_REPOSITORY})`
32-
const reviewMessage = `${message} ${dashboardLink}`
48+
const reviewMessage = (await getMessages(jobID)).join('\n\n')
3349

3450
const pr = await octokit.pulls
3551
.get({

‎src/lib/jobs/index.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './types'
22
export * from './utils'
33
export * from './api'
4+
export * from './messages'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {get} from '../../api'
2+
import type {Message} from './types'
3+
4+
export const list = (jobId: string): Promise<Message[]> =>
5+
get(`/jobs/${jobId}/messages`)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './api'
2+
export * from './types'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export type Message = {
2+
text: string
3+
}

0 commit comments

Comments
 (0)