add get_issue tools
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { type } from "arktype";
|
||||
import { contextualize, tool } from "./shared.ts";
|
||||
|
||||
export const GetIssueComments = type({
|
||||
issue_number: type.number.describe("The issue number to get comments for"),
|
||||
});
|
||||
|
||||
export const GetIssueCommentsTool = tool({
|
||||
name: "get_issue_comments",
|
||||
description: "Get all comments for a GitHub issue. Returns all comments including the issue body and all subsequent discussion comments.",
|
||||
parameters: GetIssueComments,
|
||||
execute: contextualize(async ({ issue_number }, ctx) => {
|
||||
const comments = await ctx.octokit.paginate(ctx.octokit.rest.issues.listComments, {
|
||||
owner: ctx.owner,
|
||||
repo: ctx.name,
|
||||
issue_number,
|
||||
});
|
||||
|
||||
return {
|
||||
issue_number,
|
||||
comments: comments.map((comment) => ({
|
||||
id: comment.id,
|
||||
body: comment.body,
|
||||
user: comment.user?.login,
|
||||
created_at: comment.created_at,
|
||||
updated_at: comment.updated_at,
|
||||
html_url: comment.html_url,
|
||||
author_association: comment.author_association,
|
||||
reactions: comment.reactions,
|
||||
})),
|
||||
count: comments.length,
|
||||
};
|
||||
}),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user