Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ inputs:
endpoint:
description: 'Your Graphite API endpoint'
default: 'https://api.graphite.dev'
pr_number:
description: 'The pull request number to optimize'
default: ''
timeout:
description: 'Timeout for the network request to Graphite (in seconds)'
default: '30'
Expand Down
16 changes: 11 additions & 5 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

21 changes: 14 additions & 7 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ export async function run(): Promise<void> {
const graphite_token: string = core.getInput('graphite_token')
const endpoint: string = core.getInput('endpoint')
const timeout: string = core.getInput('timeout')
const pr_number_input: string = core.getInput('pr_number')

await requestWorkflow({
graphite_token,
endpoint,
timeout
timeout,
pr_number_input
})
} catch (error) {
// Fail the workflow run if an error occurs
Expand All @@ -26,16 +28,23 @@ export async function run(): Promise<void> {
async function requestWorkflow({
graphite_token,
endpoint,
timeout
timeout,
pr_number_input
}: {
graphite_token: string
endpoint: string
timeout: string
pr_number_input: string
}): Promise<void> {
const {
repo: { owner, repo }
} = github.context

// Use pr_number input if provided, otherwise fall back to pull_request context
const prNumber = pr_number_input
? parseInt(pr_number_input, 10)
: github.context.payload.pull_request?.number

const result = await fetch(`${endpoint}/api/v1/ci/optimizer`, {
method: 'POST',
body: JSON.stringify({
Expand All @@ -50,7 +59,7 @@ async function requestWorkflow({
owner,
name: repo
},
pr: github.context.payload.pull_request?.number,
pr: prNumber,
sha: github.context.sha,
ref: github.context.ref,
head_ref: process.env.GITHUB_HEAD_REF,
Expand Down Expand Up @@ -97,7 +106,7 @@ async function requestWorkflow({
owner,
name: repo
},
pr: github.context.payload.pull_request?.number,
pr: prNumber,
sha: github.context.sha,
ref: github.context.ref,
head_ref: process.env.GITHUB_HEAD_REF,
Expand All @@ -110,9 +119,7 @@ async function requestWorkflow({
})
core.warning(`Request body: ${body}`)
core.warning(`Response status: ${result.status}`)
core.warning(
`${owner}/${repo}/${github.context.payload.pull_request?.number}`
)
core.warning(`${owner}/${repo}/${prNumber}`)
core.warning(
'Response returned a non-200 status. Skipping Graphite checks.'
)
Expand Down
Loading