bugzilla
Version:
A NodeJS module to access Bugzilla instances through the REST API.
29 lines (28 loc) • 1.91 kB
TypeScript
import { URL, URLSearchParams } from 'url';
import type { DateTime } from 'luxon';
import type { SearchParams } from './link';
import { FilteredQuery } from './query';
import type { Bug, User, History, Comment, CreateCommentContent, CreateBugContent, UpdateBugContent, UpdatedBug, Attachment, CreateAttachmentContent, UpdateAttachmentContent, UpdatedAttachment } from './types';
export type { Bug, User, History, Change, Flag, Comment, Attachment, } from './types';
export default class BugzillaAPI {
private readonly link;
constructor(instance: URL | string);
constructor(instance: URL | string, apiKey: string);
constructor(instance: URL | string, username: string, password: string, restrictLogin?: boolean);
version(): Promise<string>;
whoami(): Promise<User>;
bugHistory(bugId: number | string, since?: DateTime): Promise<History[]>;
searchBugs(query: SearchParams): FilteredQuery<Bug>;
getBugs(ids: (number | string)[]): FilteredQuery<Bug>;
quicksearch(query: string): FilteredQuery<Bug>;
advancedSearch(query: string | URL | Record<string, string> | [string, string][] | URLSearchParams): FilteredQuery<Bug>;
getComment(commentId: number): Promise<Comment | undefined>;
getBugComments(bugId: number): Promise<Comment[] | undefined>;
createComment(bugId: number, comment: string, options?: Partial<Omit<CreateCommentContent, 'comment'>>): Promise<number>;
createBug(bug: CreateBugContent): Promise<number>;
updateBug(bugIdOrAlias: number | string, data: UpdateBugContent): Promise<UpdatedBug[]>;
getAttachment(attachmentId: number): Promise<Attachment | undefined>;
getBugAttachments(bugId: number): Promise<Attachment[] | undefined>;
createAttachment(bugId: number, attachment: CreateAttachmentContent): Promise<number[]>;
updateAttachment(attachmentId: number, data: UpdateAttachmentContent): Promise<UpdatedAttachment[]>;
}