mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-11 12:43:09 -05:00
60 lines
1.5 KiB
JavaScript
Executable File
60 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
import { Octokit } from '@octokit/rest';
|
|
import fs from 'fs';
|
|
|
|
const token = process.env.GITHUB_TOKEN;
|
|
const repo = process.env.GITHUB_REPOSITORY;
|
|
const issueNumber = process.env.GITHUB_EVENT_ISSUE_NUMBER;
|
|
|
|
if (!token || !repo || !issueNumber) {
|
|
console.log('Missing required environment variables');
|
|
process.exit(1);
|
|
}
|
|
|
|
const [owner, repoName] = repo.split('/');
|
|
const octokit = new Octokit({ auth: token });
|
|
|
|
function setOutput(name, value) {
|
|
fs.appendFileSync(process.env.GITHUB_OUTPUT, `${name}=${value}\n`);
|
|
}
|
|
|
|
async function getPRDetails() {
|
|
try {
|
|
console.log(
|
|
`Fetching PR details for ${owner}/${repoName}#${issueNumber}...`,
|
|
);
|
|
|
|
const { data: pr } = await octokit.rest.pulls.get({
|
|
owner,
|
|
repo: repoName,
|
|
pull_number: issueNumber,
|
|
});
|
|
|
|
console.log('PR details fetched successfully');
|
|
console.log('- PR Number:', pr.number);
|
|
console.log('- PR Author:', pr.user.login);
|
|
console.log('- PR Title:', pr.title);
|
|
|
|
const result = {
|
|
number: pr.number,
|
|
author: pr.user.login,
|
|
title: pr.title,
|
|
};
|
|
|
|
setOutput('result', JSON.stringify(result));
|
|
} catch (error) {
|
|
console.log('Error getting PR details:', error.message);
|
|
console.log('Stack:', error.stack);
|
|
setOutput('result', 'null');
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
getPRDetails().catch(error => {
|
|
console.log('Unhandled error:', error.message);
|
|
console.log('Stack:', error.stack);
|
|
setOutput('result', 'null');
|
|
process.exit(1);
|
|
});
|