API: @loopstack/github-module
Classes
GitHubCreateIssueCommentTool
Tool that adds a comment to a GitHub issue or pull request.
import { GitHubCreateIssueCommentTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubCreateIssueCommentTool extends BaseTool<
GitHubCreateIssueCommentArgs,
object,
GitHubCreateIssueCommentResult
> {
protected handle(
args: GitHubCreateIssueCommentArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubCreateIssueCommentResult>>;
}GitHubCreateIssueTool
Tool that creates a new issue in a GitHub repository.
import { GitHubCreateIssueTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubCreateIssueTool extends BaseTool<GitHubCreateIssueArgs, object, GitHubCreateIssueResult> {
protected handle(args: GitHubCreateIssueArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubCreateIssueResult>>;
}GitHubCreateOrUpdateFileTool
Tool that creates or updates a file in a GitHub repository, base64-encoding the
provided text and committing it. Pass the existing file sha to update in place.
import { GitHubCreateOrUpdateFileTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubCreateOrUpdateFileTool extends BaseTool<
GitHubCreateOrUpdateFileArgs,
object,
GitHubCreateOrUpdateFileResult
> {
protected handle(
args: GitHubCreateOrUpdateFileArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubCreateOrUpdateFileResult>>;
}GitHubCreatePullRequestTool
Tool that opens a new pull request in a GitHub repository from a head branch into a base branch.
import { GitHubCreatePullRequestTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubCreatePullRequestTool extends BaseTool<
GitHubCreatePullRequestArgs,
object,
GitHubCreatePullRequestResult
> {
protected handle(
args: GitHubCreatePullRequestArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubCreatePullRequestResult>>;
}GitHubCreateRepoTool
Tool that creates a new GitHub repository for the authenticated user.
import { GitHubCreateRepoTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubCreateRepoTool extends BaseTool<GitHubCreateRepoArgs, object, GitHubCreateRepoResult> {
protected handle(args: GitHubCreateRepoArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubCreateRepoResult>>;
}GitHubGetAuthenticatedUserTool
Tool that fetches the profile of the currently authenticated GitHub user.
import { GitHubGetAuthenticatedUserTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetAuthenticatedUserTool extends BaseTool<
GitHubGetAuthenticatedUserArgs,
object,
GitHubGetAuthenticatedUserResult
> {
protected handle(
_args: GitHubGetAuthenticatedUserArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubGetAuthenticatedUserResult>>;
}GitHubGetCommitTool
Tool that fetches detailed information about a single commit in a GitHub repository, including diff stats and changed files.
import { GitHubGetCommitTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetCommitTool extends BaseTool<GitHubGetCommitArgs, object, GitHubGetCommitResult> {
protected handle(args: GitHubGetCommitArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetCommitResult>>;
}GitHubGetFileContentTool
Tool that reads the content of a file from a GitHub repository, decoding the base64 payload returned by the API into plain text.
import { GitHubGetFileContentTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetFileContentTool extends BaseTool<GitHubGetFileContentArgs, object, GitHubGetFileContentResult> {
protected handle(args: GitHubGetFileContentArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetFileContentResult>>;
}GitHubGetIssueTool
Tool that fetches detailed information about a single GitHub issue.
import { GitHubGetIssueTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetIssueTool extends BaseTool<GitHubGetIssueArgs, object, GitHubGetIssueResult> {
protected handle(args: GitHubGetIssueArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetIssueResult>>;
}GitHubGetPullRequestTool
Tool that fetches detailed information about a single GitHub pull request.
import { GitHubGetPullRequestTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetPullRequestTool extends BaseTool<GitHubGetPullRequestArgs, object, GitHubGetPullRequestResult> {
protected handle(args: GitHubGetPullRequestArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetPullRequestResult>>;
}GitHubGetRepoTool
Tool that fetches detailed information about a single GitHub repository.
Takes an owner and repo and returns full repository metadata.
import { GitHubGetRepoTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetRepoTool extends BaseTool<GitHubGetRepoArgs, object, GitHubGetRepoResult> {
protected handle(args: GitHubGetRepoArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetRepoResult>>;
}GitHubGetWorkflowRunTool
Tool that fetches detailed information about a single GitHub Actions workflow run.
import { GitHubGetWorkflowRunTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubGetWorkflowRunTool extends BaseTool<GitHubGetWorkflowRunArgs, object, GitHubGetWorkflowRunResult> {
protected handle(args: GitHubGetWorkflowRunArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubGetWorkflowRunResult>>;
}GitHubListBranchesTool
Tool that lists branches for a GitHub repository.
import { GitHubListBranchesTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListBranchesTool extends BaseTool<GitHubListBranchesArgs, object, GitHubListBranchesResult> {
protected handle(args: GitHubListBranchesArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListBranchesResult>>;
}GitHubListDirectoryTool
Tool that lists the contents of a directory in a GitHub repository.
import { GitHubListDirectoryTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListDirectoryTool extends BaseTool<GitHubListDirectoryArgs, object, GitHubListDirectoryResult> {
protected handle(args: GitHubListDirectoryArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListDirectoryResult>>;
}GitHubListIssuesTool
Tool that lists issues for a GitHub repository, with state, label and assignee filters.
Note that the GitHub API also returns pull requests, marked via isPullRequest.
import { GitHubListIssuesTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListIssuesTool extends BaseTool<GitHubListIssuesArgs, object, GitHubListIssuesResult> {
protected handle(args: GitHubListIssuesArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListIssuesResult>>;
}GitHubListPrReviewsTool
Tool that lists reviews submitted on a GitHub pull request.
import { GitHubListPrReviewsTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListPrReviewsTool extends BaseTool<GitHubListPrReviewsArgs, object, GitHubListPrReviewsResult> {
protected handle(args: GitHubListPrReviewsArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListPrReviewsResult>>;
}GitHubListPullRequestsTool
Tool that lists pull requests for a GitHub repository, with state and base-branch filters.
import { GitHubListPullRequestsTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListPullRequestsTool extends BaseTool<
GitHubListPullRequestsArgs,
object,
GitHubListPullRequestsResult
> {
protected handle(
args: GitHubListPullRequestsArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubListPullRequestsResult>>;
}GitHubListReposTool
Tool that lists repositories for the authenticated GitHub user, with visibility, sort and paging options.
import { GitHubListReposTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListReposTool extends BaseTool<GitHubListReposArgs, object, GitHubListReposResult> {
protected handle(args: GitHubListReposArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListReposResult>>;
}GitHubListUserOrgsTool
Tool that lists the organizations the authenticated GitHub user belongs to.
import { GitHubListUserOrgsTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListUserOrgsTool extends BaseTool<GitHubListUserOrgsArgs, object, GitHubListUserOrgsResult> {
protected handle(args: GitHubListUserOrgsArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubListUserOrgsResult>>;
}GitHubListWorkflowRunsTool
Tool that lists GitHub Actions workflow runs for a repository, with branch and status filters.
import { GitHubListWorkflowRunsTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubListWorkflowRunsTool extends BaseTool<
GitHubListWorkflowRunsArgs,
object,
GitHubListWorkflowRunsResult
> {
protected handle(
args: GitHubListWorkflowRunsArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubListWorkflowRunsResult>>;
}GitHubMergePullRequestTool
Tool that merges a GitHub pull request using the chosen merge method.
import { GitHubMergePullRequestTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubMergePullRequestTool extends BaseTool<
GitHubMergePullRequestArgs,
object,
GitHubMergePullRequestResult
> {
protected handle(
args: GitHubMergePullRequestArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubMergePullRequestResult>>;
}GitHubModule
NestJS module that provides the GitHub OAuth provider (GitHubOAuthProvider) and 25 GitHub API tools
for repositories, issues, pull requests, file content/git ops, actions/workflow runs, search, and users/orgs.
Registration:
GitHubModule— bare import; it internally importsOAuthModuleand registersGitHubOAuthProviderplus all tools. No static configuration methods exist.
Requires: a configured GitHub OAuth app via the environment variables GITHUB_CLIENT_ID,
GITHUB_CLIENT_SECRET, and GITHUB_OAUTH_REDIRECT_URI; without valid OAuth credentials the tools
return { error: 'unauthorized' }.
import { GitHubModule } from '@loopstack/github-module';export class GitHubModule {}GitHubSearchCodeTool
Tool that searches for code across GitHub repositories using the GitHub search syntax.
import { GitHubSearchCodeTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubSearchCodeTool extends BaseTool<GitHubSearchCodeArgs, object, GitHubSearchCodeResult> {
protected handle(args: GitHubSearchCodeArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubSearchCodeResult>>;
}GitHubSearchIssuesTool
Tool that searches for issues and pull requests across GitHub using the GitHub search syntax.
import { GitHubSearchIssuesTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubSearchIssuesTool extends BaseTool<GitHubSearchIssuesArgs, object, GitHubSearchIssuesResult> {
protected handle(args: GitHubSearchIssuesArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubSearchIssuesResult>>;
}GitHubSearchReposTool
Tool that searches for repositories on GitHub using the GitHub search syntax.
import { GitHubSearchReposTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubSearchReposTool extends BaseTool<GitHubSearchReposArgs, object, GitHubSearchReposResult> {
protected handle(args: GitHubSearchReposArgs, ctx: RunContext): Promise<ToolEnvelope<GitHubSearchReposResult>>;
}GitHubTriggerWorkflowTool
Tool that triggers a GitHub Actions workflow dispatch event on a given ref.
import { GitHubTriggerWorkflowTool } from '@loopstack/github-module';Provided by: GitHubModule
export class GitHubTriggerWorkflowTool extends BaseTool<
GitHubTriggerWorkflowArgs,
object,
GitHubTriggerWorkflowResult
> {
protected handle(
args: GitHubTriggerWorkflowArgs,
ctx: RunContext,
): Promise<ToolEnvelope<GitHubTriggerWorkflowResult>>;
}Type Aliases
GitHubCreateIssueArgs
Args for GitHubCreateIssueTool: the repository owner, repo, issue title and
optional body, labels and assignees.
import { GitHubCreateIssueArgs } from '@loopstack/github-module';export type GitHubCreateIssueArgs = z.infer<typeof inputSchema>;GitHubCreateIssueCommentArgs
Args for GitHubCreateIssueCommentTool: the repository owner, repo,
issueNumber (issue or pull request) and comment body.
import { GitHubCreateIssueCommentArgs } from '@loopstack/github-module';export type GitHubCreateIssueCommentArgs = z.infer<typeof inputSchema>;GitHubCreateIssueCommentResult
Result for GitHubCreateIssueCommentTool: the created comment summary, or an error.
import { GitHubCreateIssueCommentResult } from '@loopstack/github-module';export type GitHubCreateIssueCommentResult =
| {
comment: {
id: number;
htmlUrl: string;
createdAt: string;
user: string;
};
}
| {
error: string;
message: string;
};GitHubCreateIssueResult
Result for GitHubCreateIssueTool: the created issue summary, or an error.
import { GitHubCreateIssueResult } from '@loopstack/github-module';export type GitHubCreateIssueResult =
| {
issue: {
id: number;
number: number;
title: string;
htmlUrl: string;
state: string;
};
}
| {
error: string;
message: string;
};GitHubCreateOrUpdateFileArgs
Args for GitHubCreateOrUpdateFileTool: the repository owner, repo, file path,
plain-text content, commit message, optional branch and sha of the file being replaced.
import { GitHubCreateOrUpdateFileArgs } from '@loopstack/github-module';export type GitHubCreateOrUpdateFileArgs = z.infer<typeof inputSchema>;GitHubCreateOrUpdateFileResult
Result for GitHubCreateOrUpdateFileTool: the written file and resulting commit, or an error.
import { GitHubCreateOrUpdateFileResult } from '@loopstack/github-module';export type GitHubCreateOrUpdateFileResult =
| {
file: {
name: string;
path: string;
sha: string;
htmlUrl: string;
};
commit: {
sha: string;
message: string;
};
}
| {
error: string;
message: string;
};GitHubCreatePullRequestArgs
Args for GitHubCreatePullRequestTool: the repository owner, repo, title,
head and base branches, optional body and draft flag.
import { GitHubCreatePullRequestArgs } from '@loopstack/github-module';export type GitHubCreatePullRequestArgs = z.input<typeof inputSchema>;GitHubCreatePullRequestResult
Result for GitHubCreatePullRequestTool: the created pullRequest summary, or an error.
import { GitHubCreatePullRequestResult } from '@loopstack/github-module';export type GitHubCreatePullRequestResult =
| {
pullRequest: {
id: number;
number: number;
title: string;
htmlUrl: string;
state: string;
draft: boolean;
};
}
| {
error: string;
message: string;
};GitHubCreateRepoArgs
Args for GitHubCreateRepoTool: repository name, optional description,
private visibility and autoInit to seed an initial commit.
import { GitHubCreateRepoArgs } from '@loopstack/github-module';export type GitHubCreateRepoArgs = z.input<typeof inputSchema>;GitHubCreateRepoResult
Result for GitHubCreateRepoTool: the created repo summary, or an error.
import { GitHubCreateRepoResult } from '@loopstack/github-module';export type GitHubCreateRepoResult = {
repo?: {
id: number;
fullName: string;
name: string;
htmlUrl: string;
private: boolean;
defaultBranch: string;
};
error?: string;
message?: string;
};GitHubGetAuthenticatedUserArgs
Args for GitHubGetAuthenticatedUserTool: an empty object; the user is resolved from the token.
import { GitHubGetAuthenticatedUserArgs } from '@loopstack/github-module';export type GitHubGetAuthenticatedUserArgs = z.infer<typeof inputSchema>;GitHubGetAuthenticatedUserResult
Result for GitHubGetAuthenticatedUserTool: a user profile with login, name, email,
avatar and counts, or an error.
import { GitHubGetAuthenticatedUserResult } from '@loopstack/github-module';export type GitHubGetAuthenticatedUserResult = {
user?: {
id: number;
login: string;
name: string | null;
email: string | null;
avatarUrl: string;
htmlUrl: string;
bio: string | null;
publicRepos: number;
followers: number;
following: number;
createdAt: string;
};
error?: string;
message?: string;
};GitHubGetCommitArgs
Args for GitHubGetCommitTool: the repository owner, repo and ref (commit SHA, branch or tag).
import { GitHubGetCommitArgs } from '@loopstack/github-module';export type GitHubGetCommitArgs = z.infer<typeof inputSchema>;GitHubGetCommitResult
Result for GitHubGetCommitTool: a commit object with author, committer, diff stats
and changed files, or an error.
import { GitHubGetCommitResult } from '@loopstack/github-module';export type GitHubGetCommitResult =
| {
commit: {
sha: string;
message: string;
author: {
name: string;
email: string;
date: string;
login: string | null;
};
committer: {
name: string;
date: string;
};
htmlUrl: string;
stats: {
additions: number;
deletions: number;
total: number;
};
files: Array<{
filename: string;
status: string;
additions: number;
deletions: number;
changes: number;
}>;
};
}
| {
error: string;
message: string;
};GitHubGetFileContentArgs
Args for GitHubGetFileContentTool: the repository owner, repo, file path
and optional ref (branch, tag or commit SHA).
import { GitHubGetFileContentArgs } from '@loopstack/github-module';export type GitHubGetFileContentArgs = z.infer<typeof inputSchema>;GitHubGetFileContentResult
Result for GitHubGetFileContentTool: a file object with decoded text content
plus path, sha and size, or an error.
import { GitHubGetFileContentResult } from '@loopstack/github-module';export type GitHubGetFileContentResult =
| {
file: {
name: string;
path: string;
sha: string;
size: number;
type: string;
content: string | null;
htmlUrl: string;
};
}
| {
error: string;
message: string;
};GitHubGetIssueArgs
Args for GitHubGetIssueTool: the repository owner, repo and issueNumber.
import { GitHubGetIssueArgs } from '@loopstack/github-module';export type GitHubGetIssueArgs = z.infer<typeof inputSchema>;GitHubGetIssueResult
Result for GitHubGetIssueTool: an issue object with title, body, state, labels,
assignees and timestamps, or an error.
import { GitHubGetIssueResult } from '@loopstack/github-module';export type GitHubGetIssueResult =
| {
issue: {
id: number;
number: number;
title: string;
body: string | null;
state: string;
user: string;
labels: string[];
assignees: string[];
milestone: string | null;
createdAt: string;
updatedAt: string;
closedAt: string | null;
htmlUrl: string;
comments: number;
};
}
| {
error: string;
message: string;
};GitHubGetPullRequestArgs
Args for GitHubGetPullRequestTool: the repository owner, repo and pullNumber.
import { GitHubGetPullRequestArgs } from '@loopstack/github-module';export type GitHubGetPullRequestArgs = z.infer<typeof inputSchema>;GitHubGetPullRequestResult
Result for GitHubGetPullRequestTool: a pullRequest object with branches, merge state,
diff stats and timestamps, or an error.
import { GitHubGetPullRequestResult } from '@loopstack/github-module';export type GitHubGetPullRequestResult =
| {
pullRequest: {
id: number;
number: number;
title: string;
body: string | null;
state: string;
user: string;
head: string;
headSha: string;
base: string;
merged: boolean;
mergeable: boolean | null;
draft: boolean;
additions: number;
deletions: number;
changedFiles: number;
createdAt: string;
updatedAt: string;
mergedAt: string | null;
htmlUrl: string;
comments: number;
reviewComments: number;
};
}
| {
error: string;
message: string;
};GitHubGetRepoArgs
Args for GitHubGetRepoTool: the repository owner and repo name.
import { GitHubGetRepoArgs } from '@loopstack/github-module';export type GitHubGetRepoArgs = z.infer<typeof inputSchema>;GitHubGetRepoResult
Result for GitHubGetRepoTool: a repo object with id, full name, visibility,
description, language, default branch, stars, forks, topics and license, or an error.
import { GitHubGetRepoResult } from '@loopstack/github-module';export type GitHubGetRepoResult = {
repo?: {
id: number;
fullName: string;
name: string;
owner: string;
ownerAvatar: string;
private: boolean;
htmlUrl: string;
description: string | null;
language: string | null;
defaultBranch: string;
stars: number;
forks: number;
openIssues: number;
createdAt: string;
updatedAt: string;
topics: string[];
license: string | null;
};
error?: string;
message?: string;
};GitHubGetWorkflowRunArgs
Args for GitHubGetWorkflowRunTool: the repository owner, repo and runId.
import { GitHubGetWorkflowRunArgs } from '@loopstack/github-module';export type GitHubGetWorkflowRunArgs = z.infer<typeof inputSchema>;GitHubGetWorkflowRunResult
Result for GitHubGetWorkflowRunTool: a run object with status, conclusion, branch
and run metadata, or an error.
import { GitHubGetWorkflowRunResult } from '@loopstack/github-module';export type GitHubGetWorkflowRunResult =
| {
run: {
id: number;
name: string;
status: string;
conclusion: string | null;
headBranch: string;
headSha: string;
event: string;
workflowId: number;
runNumber: number;
runAttempt: number;
createdAt: string;
updatedAt: string;
runStartedAt: string;
htmlUrl: string;
};
}
| {
error: string;
message: string;
};GitHubListBranchesArgs
Args for GitHubListBranchesTool: the repository owner, repo and perPage page size.
import { GitHubListBranchesArgs } from '@loopstack/github-module';export type GitHubListBranchesArgs = z.input<typeof inputSchema>;GitHubListBranchesResult
Result for GitHubListBranchesTool: a branches array with name, commit SHA and
protection flag, or an error.
import { GitHubListBranchesResult } from '@loopstack/github-module';export type GitHubListBranchesResult = {
branches?: Array<{
name: string;
commitSha: string;
protected: boolean;
}>;
error?: string;
message?: string;
};GitHubListDirectoryArgs
Args for GitHubListDirectoryTool: the repository owner, repo, directory path
(defaults to the repo root) and optional ref.
import { GitHubListDirectoryArgs } from '@loopstack/github-module';export type GitHubListDirectoryArgs = z.input<typeof inputSchema>;GitHubListDirectoryResult
Result for GitHubListDirectoryTool: an entries array of files and subdirectories, or an error.
import { GitHubListDirectoryResult } from '@loopstack/github-module';export type GitHubListDirectoryResult = {
entries?: Array<{
name: string;
path: string;
sha: string;
size: number;
type: string;
htmlUrl: string;
}>;
error?: string;
message?: string;
};GitHubListIssuesArgs
Args for GitHubListIssuesTool: the repository owner, repo, issue state,
optional labels/assignee filters and perPage/page paging.
import { GitHubListIssuesArgs } from '@loopstack/github-module';export type GitHubListIssuesArgs = z.input<typeof inputSchema>;GitHubListIssuesResult
Result for GitHubListIssuesTool: an issues array (each flagged with
isPullRequest since the GitHub API mixes in pull requests), or an error.
import { GitHubListIssuesResult } from '@loopstack/github-module';export type GitHubListIssuesResult = {
issues?: Array<{
id: number;
number: number;
title: string;
state: string;
user: string;
labels: string[];
assignees: string[];
createdAt: string;
updatedAt: string;
htmlUrl: string;
isPullRequest: boolean;
}>;
error?: string;
message?: string;
};GitHubListPrReviewsArgs
Args for GitHubListPrReviewsTool: the repository owner, repo and pullNumber.
import { GitHubListPrReviewsArgs } from '@loopstack/github-module';export type GitHubListPrReviewsArgs = z.infer<typeof inputSchema>;GitHubListPrReviewsResult
Result for GitHubListPrReviewsTool: a reviews array with reviewer, body, state
and submission time, or an error.
import { GitHubListPrReviewsResult } from '@loopstack/github-module';export type GitHubListPrReviewsResult =
| {
reviews: Array<{
id: number;
user: string;
body: string;
state: string;
submittedAt: string;
htmlUrl: string;
}>;
}
| {
error: string;
message: string;
};GitHubListPullRequestsArgs
Args for GitHubListPullRequestsTool: the repository owner, repo, PR state,
optional base branch filter and perPage/page paging.
import { GitHubListPullRequestsArgs } from '@loopstack/github-module';export type GitHubListPullRequestsArgs = z.input<typeof inputSchema>;GitHubListPullRequestsResult
Result for GitHubListPullRequestsTool: a pullRequests array of PR summaries, or an error.
import { GitHubListPullRequestsResult } from '@loopstack/github-module';export type GitHubListPullRequestsResult = {
pullRequests?: Array<{
id: number;
number: number;
title: string;
state: string;
user: string;
head: string;
headSha: string;
base: string;
createdAt: string;
updatedAt: string;
htmlUrl: string;
draft: boolean;
}>;
error?: string;
message?: string;
};GitHubListReposArgs
Args for GitHubListReposTool: visibility, sort, perPage and page paging controls.
import { GitHubListReposArgs } from '@loopstack/github-module';export type GitHubListReposArgs = z.input<typeof inputSchema>;GitHubListReposResult
Result for GitHubListReposTool: a repos array of repository summaries, or an error.
import { GitHubListReposResult } from '@loopstack/github-module';export type GitHubListReposResult = {
repos?: Array<{
id: number;
fullName: string;
name: string;
owner: string;
private: boolean;
htmlUrl: string;
description: string | null;
language: string | null;
defaultBranch: string;
updatedAt: string;
}>;
error?: string;
message?: string;
};GitHubListUserOrgsArgs
Args for GitHubListUserOrgsTool: the perPage page size.
import { GitHubListUserOrgsArgs } from '@loopstack/github-module';export type GitHubListUserOrgsArgs = z.input<typeof inputSchema>;GitHubListUserOrgsResult
Result for GitHubListUserOrgsTool: an orgs array with login, description and avatar, or an error.
import { GitHubListUserOrgsResult } from '@loopstack/github-module';export type GitHubListUserOrgsResult = {
orgs?: Array<{
id: number;
login: string;
description: string | null;
avatarUrl: string;
}>;
error?: string;
message?: string;
};GitHubListWorkflowRunsArgs
Args for GitHubListWorkflowRunsTool: the repository owner, repo, optional branch
and status filters and perPage/page paging.
import { GitHubListWorkflowRunsArgs } from '@loopstack/github-module';export type GitHubListWorkflowRunsArgs = z.input<typeof inputSchema>;GitHubListWorkflowRunsResult
Result for GitHubListWorkflowRunsTool: totalCount and a runs array of workflow-run
summaries with status and conclusion, or an error.
import { GitHubListWorkflowRunsResult } from '@loopstack/github-module';export type GitHubListWorkflowRunsResult = {
totalCount?: number;
runs?: Array<{
id: number;
name: string;
status: string;
conclusion: string | null;
headBranch: string;
headSha: string;
event: string;
createdAt: string;
updatedAt: string;
htmlUrl: string;
}>;
error?: string;
message?: string;
};GitHubMergePullRequestArgs
Args for GitHubMergePullRequestTool: the repository owner, repo, pullNumber,
mergeMethod and optional commitTitle/commitMessage.
import { GitHubMergePullRequestArgs } from '@loopstack/github-module';export type GitHubMergePullRequestArgs = z.input<typeof inputSchema>;GitHubMergePullRequestResult
Result for GitHubMergePullRequestTool: a merge object with the merge commit sha
and merged flag, or an error.
import { GitHubMergePullRequestResult } from '@loopstack/github-module';export type GitHubMergePullRequestResult =
| {
merge: {
sha: string;
merged: boolean;
message: string;
};
}
| {
error: string;
message: string;
};GitHubSearchCodeArgs
Args for GitHubSearchCodeTool: the GitHub code-search query and perPage/page paging.
import { GitHubSearchCodeArgs } from '@loopstack/github-module';export type GitHubSearchCodeArgs = z.input<typeof inputSchema>;GitHubSearchCodeResult
Result for GitHubSearchCodeTool: totalCount and a results array of matching files
with their repository, or an error.
import { GitHubSearchCodeResult } from '@loopstack/github-module';export type GitHubSearchCodeResult = {
totalCount?: number;
results?: Array<{
name: string;
path: string;
sha: string;
htmlUrl: string;
repository: string;
}>;
error?: string;
message?: string;
};GitHubSearchIssuesArgs
Args for GitHubSearchIssuesTool: the GitHub search query, optional sort and
perPage/page paging.
import { GitHubSearchIssuesArgs } from '@loopstack/github-module';export type GitHubSearchIssuesArgs = z.input<typeof inputSchema>;GitHubSearchIssuesResult
Result for GitHubSearchIssuesTool: totalCount and a results array of matching
issues and pull requests (each flagged with isPullRequest), or an error.
import { GitHubSearchIssuesResult } from '@loopstack/github-module';export type GitHubSearchIssuesResult =
| {
totalCount: number;
results: Array<{
id: number;
number: number;
title: string;
state: string;
user: string;
htmlUrl: string;
createdAt: string;
updatedAt: string;
isPullRequest: boolean;
}>;
}
| {
error: string;
message: string;
};GitHubSearchReposArgs
Args for GitHubSearchReposTool: the GitHub search query, optional sort and
perPage/page paging.
import { GitHubSearchReposArgs } from '@loopstack/github-module';export type GitHubSearchReposArgs = z.input<typeof inputSchema>;GitHubSearchReposResult
Result for GitHubSearchReposTool: totalCount and a results array of matching
repositories, or an error.
import { GitHubSearchReposResult } from '@loopstack/github-module';export type GitHubSearchReposResult =
| {
totalCount: number;
results: Array<{
id: number;
fullName: string;
description: string | null;
htmlUrl: string;
language: string | null;
stars: number;
forks: number;
updatedAt: string;
}>;
}
| {
error: string;
message: string;
};GitHubTriggerWorkflowArgs
Args for GitHubTriggerWorkflowTool: the repository owner, repo, workflowId,
ref to run against and optional inputs for the dispatch event.
import { GitHubTriggerWorkflowArgs } from '@loopstack/github-module';export type GitHubTriggerWorkflowArgs = z.infer<typeof inputSchema>;GitHubTriggerWorkflowResult
Result for GitHubTriggerWorkflowTool: a triggered flag with a message, or an error.
import { GitHubTriggerWorkflowResult } from '@loopstack/github-module';export type GitHubTriggerWorkflowResult =
| {
triggered: boolean;
message: string;
}
| {
error: string;
message: string;
};Variables
GitHubCreateIssueCommentResultSchema
Zod schema for the success shape of GitHubCreateIssueCommentResult.
import { GitHubCreateIssueCommentResultSchema } from '@loopstack/github-module';GitHubCreateIssueCommentResultSchema: z.ZodObject<
{
comment: z.ZodObject<
{
id: z.ZodNumber;
htmlUrl: z.ZodString;
createdAt: z.ZodString;
user: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubCreateIssueResultSchema
Zod schema for the success shape of GitHubCreateIssueResult.
import { GitHubCreateIssueResultSchema } from '@loopstack/github-module';GitHubCreateIssueResultSchema: z.ZodObject<
{
issue: z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
htmlUrl: z.ZodString;
state: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubCreateOrUpdateFileResultSchema
Zod schema for the success shape of GitHubCreateOrUpdateFileResult.
import { GitHubCreateOrUpdateFileResultSchema } from '@loopstack/github-module';GitHubCreateOrUpdateFileResultSchema: z.ZodObject<
{
file: z.ZodObject<
{
name: z.ZodString;
path: z.ZodString;
sha: z.ZodString;
htmlUrl: z.ZodString;
},
z.core.$strict
>;
commit: z.ZodObject<
{
sha: z.ZodString;
message: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubCreatePullRequestResultSchema
Zod schema for the success shape of GitHubCreatePullRequestResult.
import { GitHubCreatePullRequestResultSchema } from '@loopstack/github-module';GitHubCreatePullRequestResultSchema: z.ZodObject<
{
pullRequest: z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
htmlUrl: z.ZodString;
state: z.ZodString;
draft: z.ZodBoolean;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubCreateRepoResultSchema
Zod schema for the success shape of GitHubCreateRepoResult.
import { GitHubCreateRepoResultSchema } from '@loopstack/github-module';GitHubCreateRepoResultSchema: z.ZodObject<
{
repo: z.ZodObject<
{
id: z.ZodNumber;
fullName: z.ZodString;
name: z.ZodString;
htmlUrl: z.ZodString;
private: z.ZodBoolean;
defaultBranch: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetAuthenticatedUserResultSchema
Zod schema for the success shape of GitHubGetAuthenticatedUserResult.
import { GitHubGetAuthenticatedUserResultSchema } from '@loopstack/github-module';GitHubGetAuthenticatedUserResultSchema: z.ZodObject<
{
user: z.ZodObject<
{
id: z.ZodNumber;
login: z.ZodString;
name: z.ZodNullable<z.ZodString>;
email: z.ZodNullable<z.ZodString>;
avatarUrl: z.ZodString;
htmlUrl: z.ZodString;
bio: z.ZodNullable<z.ZodString>;
publicRepos: z.ZodNumber;
followers: z.ZodNumber;
following: z.ZodNumber;
createdAt: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetCommitResultSchema
Zod schema for the success shape of GitHubGetCommitResult.
import { GitHubGetCommitResultSchema } from '@loopstack/github-module';GitHubGetCommitResultSchema: z.ZodObject<
{
commit: z.ZodObject<
{
sha: z.ZodString;
message: z.ZodString;
author: z.ZodObject<
{
name: z.ZodString;
email: z.ZodString;
date: z.ZodString;
login: z.ZodNullable<z.ZodString>;
},
z.core.$strict
>;
committer: z.ZodObject<
{
name: z.ZodString;
date: z.ZodString;
},
z.core.$strict
>;
htmlUrl: z.ZodString;
stats: z.ZodObject<
{
additions: z.ZodNumber;
deletions: z.ZodNumber;
total: z.ZodNumber;
},
z.core.$strict
>;
files: z.ZodArray<
z.ZodObject<
{
filename: z.ZodString;
status: z.ZodString;
additions: z.ZodNumber;
deletions: z.ZodNumber;
changes: z.ZodNumber;
},
z.core.$strict
>
>;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetFileContentResultSchema
Zod schema for the success shape of GitHubGetFileContentResult.
import { GitHubGetFileContentResultSchema } from '@loopstack/github-module';GitHubGetFileContentResultSchema: z.ZodObject<
{
file: z.ZodObject<
{
name: z.ZodString;
path: z.ZodString;
sha: z.ZodString;
size: z.ZodNumber;
type: z.ZodString;
content: z.ZodNullable<z.ZodString>;
htmlUrl: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetIssueResultSchema
Zod schema for the success shape of GitHubGetIssueResult.
import { GitHubGetIssueResultSchema } from '@loopstack/github-module';GitHubGetIssueResultSchema: z.ZodObject<
{
issue: z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
body: z.ZodNullable<z.ZodString>;
state: z.ZodString;
user: z.ZodString;
labels: z.ZodArray<z.ZodString>;
assignees: z.ZodArray<z.ZodString>;
milestone: z.ZodNullable<z.ZodString>;
createdAt: z.ZodString;
updatedAt: z.ZodString;
closedAt: z.ZodNullable<z.ZodString>;
htmlUrl: z.ZodString;
comments: z.ZodNumber;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetPullRequestResultSchema
Zod schema for the success shape of GitHubGetPullRequestResult.
import { GitHubGetPullRequestResultSchema } from '@loopstack/github-module';GitHubGetPullRequestResultSchema: z.ZodObject<
{
pullRequest: z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
body: z.ZodNullable<z.ZodString>;
state: z.ZodString;
user: z.ZodString;
head: z.ZodString;
headSha: z.ZodString;
base: z.ZodString;
merged: z.ZodBoolean;
mergeable: z.ZodNullable<z.ZodBoolean>;
draft: z.ZodBoolean;
additions: z.ZodNumber;
deletions: z.ZodNumber;
changedFiles: z.ZodNumber;
createdAt: z.ZodString;
updatedAt: z.ZodString;
mergedAt: z.ZodNullable<z.ZodString>;
htmlUrl: z.ZodString;
comments: z.ZodNumber;
reviewComments: z.ZodNumber;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetRepoResultSchema
Zod schema for the success shape of GitHubGetRepoResult.
import { GitHubGetRepoResultSchema } from '@loopstack/github-module';GitHubGetRepoResultSchema: z.ZodObject<
{
repo: z.ZodObject<
{
id: z.ZodNumber;
fullName: z.ZodString;
name: z.ZodString;
owner: z.ZodString;
ownerAvatar: z.ZodString;
private: z.ZodBoolean;
htmlUrl: z.ZodString;
description: z.ZodNullable<z.ZodString>;
language: z.ZodNullable<z.ZodString>;
defaultBranch: z.ZodString;
stars: z.ZodNumber;
forks: z.ZodNumber;
openIssues: z.ZodNumber;
createdAt: z.ZodString;
updatedAt: z.ZodString;
topics: z.ZodArray<z.ZodString>;
license: z.ZodNullable<z.ZodString>;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubGetWorkflowRunResultSchema
Zod schema for the success shape of GitHubGetWorkflowRunResult.
import { GitHubGetWorkflowRunResultSchema } from '@loopstack/github-module';GitHubGetWorkflowRunResultSchema: z.ZodObject<
{
run: z.ZodObject<
{
id: z.ZodNumber;
name: z.ZodString;
status: z.ZodString;
conclusion: z.ZodNullable<z.ZodString>;
headBranch: z.ZodString;
headSha: z.ZodString;
event: z.ZodString;
workflowId: z.ZodNumber;
runNumber: z.ZodNumber;
runAttempt: z.ZodNumber;
createdAt: z.ZodString;
updatedAt: z.ZodString;
runStartedAt: z.ZodString;
htmlUrl: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubListBranchesResultSchema
Zod schema for the success shape of GitHubListBranchesResult.
import { GitHubListBranchesResultSchema } from '@loopstack/github-module';GitHubListBranchesResultSchema: z.ZodObject<
{
branches: z.ZodArray<
z.ZodObject<
{
name: z.ZodString;
commitSha: z.ZodString;
protected: z.ZodBoolean;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListDirectoryResultSchema
Zod schema for the success shape of GitHubListDirectoryResult.
import { GitHubListDirectoryResultSchema } from '@loopstack/github-module';GitHubListDirectoryResultSchema: z.ZodObject<
{
entries: z.ZodArray<
z.ZodObject<
{
name: z.ZodString;
path: z.ZodString;
sha: z.ZodString;
size: z.ZodNumber;
type: z.ZodString;
htmlUrl: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListIssuesResultSchema
Zod schema for the success shape of GitHubListIssuesResult.
import { GitHubListIssuesResultSchema } from '@loopstack/github-module';GitHubListIssuesResultSchema: z.ZodObject<
{
issues: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
state: z.ZodString;
user: z.ZodString;
labels: z.ZodArray<z.ZodString>;
assignees: z.ZodArray<z.ZodString>;
createdAt: z.ZodString;
updatedAt: z.ZodString;
htmlUrl: z.ZodString;
isPullRequest: z.ZodBoolean;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListPrReviewsResultSchema
Zod schema for the success shape of GitHubListPrReviewsResult.
import { GitHubListPrReviewsResultSchema } from '@loopstack/github-module';GitHubListPrReviewsResultSchema: z.ZodObject<
{
reviews: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
user: z.ZodString;
body: z.ZodString;
state: z.ZodString;
submittedAt: z.ZodString;
htmlUrl: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListPullRequestsResultSchema
Zod schema for the success shape of GitHubListPullRequestsResult.
import { GitHubListPullRequestsResultSchema } from '@loopstack/github-module';GitHubListPullRequestsResultSchema: z.ZodObject<
{
pullRequests: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
state: z.ZodString;
user: z.ZodString;
head: z.ZodString;
headSha: z.ZodString;
base: z.ZodString;
createdAt: z.ZodString;
updatedAt: z.ZodString;
htmlUrl: z.ZodString;
draft: z.ZodBoolean;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListReposResultSchema
Zod schema for the success shape of GitHubListReposResult.
import { GitHubListReposResultSchema } from '@loopstack/github-module';GitHubListReposResultSchema: z.ZodObject<
{
repos: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
fullName: z.ZodString;
name: z.ZodString;
owner: z.ZodString;
private: z.ZodBoolean;
htmlUrl: z.ZodString;
description: z.ZodNullable<z.ZodString>;
language: z.ZodNullable<z.ZodString>;
defaultBranch: z.ZodString;
updatedAt: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListUserOrgsResultSchema
Zod schema for the success shape of GitHubListUserOrgsResult.
import { GitHubListUserOrgsResultSchema } from '@loopstack/github-module';GitHubListUserOrgsResultSchema: z.ZodObject<
{
orgs: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
login: z.ZodString;
description: z.ZodNullable<z.ZodString>;
avatarUrl: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubListWorkflowRunsResultSchema
Zod schema for the success shape of GitHubListWorkflowRunsResult.
import { GitHubListWorkflowRunsResultSchema } from '@loopstack/github-module';GitHubListWorkflowRunsResultSchema: z.ZodObject<
{
totalCount: z.ZodNumber;
runs: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
name: z.ZodString;
status: z.ZodString;
conclusion: z.ZodNullable<z.ZodString>;
headBranch: z.ZodString;
headSha: z.ZodString;
event: z.ZodString;
createdAt: z.ZodString;
updatedAt: z.ZodString;
htmlUrl: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubMergePullRequestResultSchema
Zod schema for the success shape of GitHubMergePullRequestResult.
import { GitHubMergePullRequestResultSchema } from '@loopstack/github-module';GitHubMergePullRequestResultSchema: z.ZodObject<
{
merge: z.ZodObject<
{
sha: z.ZodString;
merged: z.ZodBoolean;
message: z.ZodString;
},
z.core.$strict
>;
},
z.core.$strict
>;GitHubSearchCodeResultSchema
Zod schema for the success shape of GitHubSearchCodeResult.
import { GitHubSearchCodeResultSchema } from '@loopstack/github-module';GitHubSearchCodeResultSchema: z.ZodObject<
{
totalCount: z.ZodNumber;
results: z.ZodArray<
z.ZodObject<
{
name: z.ZodString;
path: z.ZodString;
sha: z.ZodString;
htmlUrl: z.ZodString;
repository: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubSearchIssuesResultSchema
Zod schema for the success shape of GitHubSearchIssuesResult.
import { GitHubSearchIssuesResultSchema } from '@loopstack/github-module';GitHubSearchIssuesResultSchema: z.ZodObject<
{
totalCount: z.ZodNumber;
results: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
number: z.ZodNumber;
title: z.ZodString;
state: z.ZodString;
user: z.ZodString;
htmlUrl: z.ZodString;
createdAt: z.ZodString;
updatedAt: z.ZodString;
isPullRequest: z.ZodBoolean;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubSearchReposResultSchema
Zod schema for the success shape of GitHubSearchReposResult.
import { GitHubSearchReposResultSchema } from '@loopstack/github-module';GitHubSearchReposResultSchema: z.ZodObject<
{
totalCount: z.ZodNumber;
results: z.ZodArray<
z.ZodObject<
{
id: z.ZodNumber;
fullName: z.ZodString;
description: z.ZodNullable<z.ZodString>;
htmlUrl: z.ZodString;
language: z.ZodNullable<z.ZodString>;
stars: z.ZodNumber;
forks: z.ZodNumber;
updatedAt: z.ZodString;
},
z.core.$strict
>
>;
},
z.core.$strict
>;GitHubTriggerWorkflowResultSchema
Zod schema for the success shape of GitHubTriggerWorkflowResult.
import { GitHubTriggerWorkflowResultSchema } from '@loopstack/github-module';GitHubTriggerWorkflowResultSchema: z.ZodObject<
{
triggered: z.ZodBoolean;
message: z.ZodString;
},
z.core.$strict
>;