@cn-shell/jira
Version:
A Cloud Native extension for Jira
84 lines (83 loc) • 3.17 kB
TypeScript
import CNShell from "cn-shell";
interface AuthDetails {
username: string;
password: string;
}
interface FieldDict {
byName: {
[key: string]: {
id: string;
type: string;
itemType: string;
};
};
byId: {
[key: string]: {
name: string;
type: string;
itemType: string;
};
};
}
interface JqlResults {
startAt: number;
maxResults: number;
total: number;
issues: {
key: string;
}[];
}
declare class CNJira extends CNShell {
private _server;
private _user;
private _password;
private _jiraSessionId;
private _refreshPeriod;
private _timeout;
private _resourceUrls;
private _fieldDict;
constructor(name: string, master?: CNShell);
start(): Promise<boolean>;
stop(): Promise<void>;
healthCheck(): Promise<boolean>;
login(auth?: AuthDetails): Promise<void>;
logout(): Promise<void>;
getFieldDict(update?: boolean): Promise<FieldDict>;
getAllowedFieldValues(projectKey: string, issueType: string, fieldName: string): Promise<string[]>;
getComponents(projectKey: string): Promise<{
[key: string]: string;
}>;
getProjects(component?: string): Promise<any[]>;
updateProject(project: string, data: {
[key: string]: string;
}): Promise<void>;
updateProjectLead(project: string, lead: string): Promise<void>;
createIssue(projectKey: string, issueType: string, component: string, fields: {
[key: string]: any;
}): Promise<string>;
updateIssue(key: string, fields: {
[key: string]: any;
}, notifyUsers?: boolean): Promise<string>;
getIssue(idOrKey: string): Promise<any>;
issueReporter(key: string, reporter: string, notifyUsers?: boolean): Promise<void>;
assignIssue(key: string, assignee: string, notifyUsers?: boolean): Promise<void>;
updateLabels(key: string, action: "add" | "remove", labels: string[], notifyUsers?: boolean): Promise<string>;
addComment(idOrKey: string, comment: string): Promise<void>;
addWatcher(idOrKey: string, watcher: string): Promise<void>;
removeWatcher(idOrKey: string, watcher: string): Promise<void>;
getTransitions(idOrKey: string): Promise<{
[key: string]: string;
}>;
doTransition(idOrKey: string, transitionIdOrName: string, fields?: string[], comment?: string): Promise<void>;
runJql(jql: string): Promise<any[]>;
jqlGetAll(jql: string): Promise<string[]>;
getUserDashboardIds(userId: string): Promise<number[]>;
getUserFilterIds(userId: string): Promise<string[]>;
migrateDashboards(fromUserId: string, toUserId: string, dashboardIds: number[]): Promise<void>;
migrateFilters(fromUserId: string, toUserId: string, filterIds: string[]): Promise<void>;
getUser(user: string, byKey: boolean, includeGroups?: boolean): Promise<any>;
addUserToGroup(user: string, group: string): Promise<Object>;
getUserGroups(user: string): Promise<string[]>;
addUserToApplication(user: string, applicationKey: string): Promise<void>;
}
export { CNJira, AuthDetails, FieldDict, JqlResults };