mirror of
https://github.com/marocchino/sticky-pull-request-comment.git
synced 2025-12-16 05:06:31 +00:00
refactor: extract api wrapper
This commit is contained in:
parent
97da04af99
commit
fd286f3230
2 changed files with 30 additions and 23 deletions
21
src/comment.ts
Normal file
21
src/comment.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
export async function findPreviousComment(octokit, repo, issue_number) {
|
||||||
|
const { data: comments } = await octokit.issues.listComments({
|
||||||
|
...repo,
|
||||||
|
issue_number
|
||||||
|
});
|
||||||
|
return comments.find(comment => comment.user.login === "github-actions[bot]");
|
||||||
|
}
|
||||||
|
export async function updateComment(octokit, repo, comment_id, body) {
|
||||||
|
await octokit.issues.updateComment({
|
||||||
|
...repo,
|
||||||
|
comment_id,
|
||||||
|
body
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export async function createComment(octokit, repo, issue_number, body) {
|
||||||
|
await octokit.issues.createComment({
|
||||||
|
...repo,
|
||||||
|
issue_number,
|
||||||
|
body
|
||||||
|
});
|
||||||
|
}
|
||||||
32
src/main.ts
32
src/main.ts
|
|
@ -1,40 +1,26 @@
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import { context, GitHub } from "@actions/github";
|
import { context, GitHub } from "@actions/github";
|
||||||
|
import { findPreviousComment, createComment, updateComment } from "./comment";
|
||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
const repo = context.repo;
|
const repo = context.repo;
|
||||||
const issue_number = context?.payload?.pull_request?.number;
|
const number = context?.payload?.pull_request?.number;
|
||||||
if (!issue_number) {
|
const body = core.getInput("message");
|
||||||
|
const githubToken = core.getInput("GITHUB_TOKEN");
|
||||||
|
if (!number) {
|
||||||
core.setFailed("This action only works for pull_request");
|
core.setFailed("This action only works for pull_request");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const body = core.getInput("message");
|
|
||||||
const githubToken = core.getInput("GITHUB_TOKEN");
|
|
||||||
if (!body || !githubToken) {
|
if (!body || !githubToken) {
|
||||||
core.setFailed("invalid input: please check your workflow");
|
core.setFailed("invalid input: please check your workflow");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const octokit = new GitHub(githubToken);
|
const octokit = new GitHub(githubToken);
|
||||||
const { data: comments } = await octokit.issues.listComments({
|
const previous = await findPreviousComment(octokit, repo, number);
|
||||||
...repo,
|
if (previous) {
|
||||||
issue_number
|
await updateComment(octokit, repo, previous.id, body);
|
||||||
});
|
|
||||||
const myComment = comments.find(
|
|
||||||
comment => comment.user.login === "github-actions[bot]"
|
|
||||||
);
|
|
||||||
if (myComment) {
|
|
||||||
await octokit.issues.updateComment({
|
|
||||||
...repo,
|
|
||||||
comment_id: myComment.id,
|
|
||||||
body
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
await octokit.issues.createComment({
|
await createComment(octokit, repo, number, body);
|
||||||
...repo,
|
|
||||||
issue_number,
|
|
||||||
body
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} catch ({ message }) {
|
} catch ({ message }) {
|
||||||
core.setFailed(message);
|
core.setFailed(message);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue