import { AgileProviderOptions, BacklogItem, InputService, Logger, Project, Sprint } from "../../../../models"; import { BaseAgileService } from "../../baseAgileService"; /** * Performing agile-related business logic on GitHub platform */ export declare class GitHubAgileService extends BaseAgileService { private github; constructor(options: AgileProviderOptions, inputService: InputService, logger: Logger); getBacklogItems: (ids?: string[] | undefined) => Promise; createBacklogItems: (items: BacklogItem[]) => Promise; deleteBacklogItems: () => Promise; private getBacklogItem; /** * Create a backlog item. Not all are going to be issues. * * Epic = Label * Feature = Project * Story, Task, Bug = Issue * * If tasks/bugs are children of a story, they will be included within the body of * the story's issue. * * @param {BacklogItem} backlogItem Backlog item to create * @param {GitHubLabel} label Label associated with backlog item * @returns {Promise} Newly created Backlog Item */ private createBacklogItem; /** * GitHub has no concept of "epics." We are using "labels" as a way of grouping * issues in an epic-category. * * @param {BacklogItem} backlogItem Epic to create * @returns {Promise} Newly created "epic" (GitHub label) */ private createGitHubEpic; private createLabelName; /** * GitHub has no concept of "features." We are using "projects" as a way of grouping * issues in a feature-category. This seems to be a common practice among large * open-source projects on GitHub. * * @param {BacklogItem} backlogItem Feature-type backlog item * @param {GitHubLabel|undefined} label GitHub Label * @returns {Promise} Newly created "feature" (GitHub project) */ private createGitHubFeature; private createColumns; private createChildren; private assignChildrenToColumn; private createGitHubIssue; private mapGitHubIssueToBacklogItem; private createIssueBody; private stringifyAcceptanceCriteria; private stringifyChildTasks; private createChecklist; createProject: () => Promise; getProject: () => Promise; deleteProject: () => Promise; getSprint: (id: string) => Promise; createProviderSprints: (sprints: Sprint[]) => Promise; deleteSprint: (id: string) => Promise; private createSprint; private mapMilestoneToSprint; }