UNPKG

@roadiehq/backstage-plugin-jira

Version:
183 lines (172 loc) 5.99 kB
import * as _backstage_plugin_home_react from '@backstage/plugin-home-react'; import * as React from 'react'; import React__default from 'react'; import { Entity } from '@backstage/catalog-model'; import * as _backstage_core_plugin_api from '@backstage/core-plugin-api'; import { DiscoveryApi, ConfigApi, FetchApi } from '@backstage/core-plugin-api'; type EntityProps = { /** @deprecated The entity is now grabbed from context instead */ entity?: Entity; }; type IssuesCounter = { total: number; name: string; iconUrl: string; }; type Ticket = { key: string; self: string; fields?: { issuetype: { iconUrl: string; name: string; }; parent?: { key: string; }; summary: string; assignee: { displayName: string; avatarUrls: { [key: string]: string; }; }; status: { iconUrl: string; name: string; }; updated: string; created: string; priority: { iconUrl: string; name: string; }; project?: { name: string; self: string; key: string; }; }; }; type TicketSummary = { key: string; parent?: string; summary?: string; assignee?: { displayName?: string; avatarUrl?: string; }; status?: { iconUrl: string; name: string; }; issuetype?: { iconUrl: string; name: string; }; priority?: { iconUrl: string; name: string; }; created?: string; updated?: string; }; type UserSummary = { name: string; avatarUrl: string; url: string; }; type IssuesTableProps = { title?: string; subtitle?: string; issues: Ticket[]; columnIds?: ('key' | 'type' | 'type-icon' | 'status' | 'assignee' | 'assignee-icon' | 'summary' | 'priority' | 'created' | 'updated' | 'project')[]; }; declare const IssuesTable: ({ issues, title, subtitle, columnIds, }: IssuesTableProps) => React__default.JSX.Element; type EntityJiraQueryCardProps = { jqlQueryFromAnnotation?: string; jqlQuery?: string; maxResults?: number; hideOnMissingAnnotation?: boolean; } & Omit<IssuesTableProps, 'issues'>; declare const jiraPlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>; declare const EntityJiraOverviewCard: (props: EntityProps & { hideIssueFilter?: boolean; }) => React.JSX.Element; declare const EntityJiraActivityStreamCard: () => React.JSX.Element; declare const EntityJiraQueryCard: ({ jqlQueryFromAnnotation, jqlQuery, maxResults, hideOnMissingAnnotation, ...tableProps }: EntityJiraQueryCardProps) => React.JSX.Element | null; declare const HomePageMyJiraTicketsCard: (props: _backstage_plugin_home_react.CardExtensionProps<{ userId: string; }>) => React.JSX.Element; type JiraCardOptionalProps = { hideIssueFilter?: boolean; }; declare const JiraOverviewCard: (props: EntityProps & JiraCardOptionalProps) => React__default.JSX.Element; type JiraQueryCardProps = { jqlQuery: string; maxResults?: number; hideOnMissingAnnotation?: boolean; } & Omit<IssuesTableProps, 'issues'>; declare const JiraQueryCard: ({ jqlQuery, maxResults, hideOnMissingAnnotation, ...tableProps }: JiraQueryCardProps) => React__default.JSX.Element; declare const ActivityStream: ({ projectKey, tokenType, componentName, ticketIds, label, }: { projectKey: string; tokenType: string | undefined; componentName: string | undefined; ticketIds: string[] | undefined; label: string | undefined; }) => React__default.JSX.Element | null; declare const isJiraAvailable: (entity: Entity) => boolean; declare const hasJiraQuery: (entity: Entity) => boolean; declare const jiraApiRef: _backstage_core_plugin_api.ApiRef<JiraAPI>; type Options = { discoveryApi: DiscoveryApi; configApi: ConfigApi; fetchApi: FetchApi; }; declare class JiraAPI { private readonly discoveryApi; private readonly proxyPath; private readonly apiVersion; private readonly confluenceActivityFilter; private readonly fetchApi; constructor(options: Options); private getDomainFromApiUrl; private generateProjectUrl; private getUrls; private convertToString; private pagedIssuesRequest; private getIssuesPaged; getProjectDetails(projectKey: string, component: string, label: string, statusesNames: Array<string>): Promise<{ project: { name: string; iconUrl: string; type: string; url: string; }; issues: IssuesCounter[]; ticketIds: string[]; tickets: { key: string; summary: string | undefined; assignee: { displayName: string | undefined; avatarUrl: string | undefined; }; status: string | undefined; priority: { iconUrl: string; name: string; } | undefined; created: string | undefined; updated: string | undefined; }[]; }>; getActivityStream(size: number, projectKey: string, componentName: string | undefined, ticketIds: string[] | undefined, label: string | undefined, isBearerAuth: boolean): Promise<string>; getStatuses(projectKey: string): Promise<string[]>; getUserDetails(userId: string): Promise<{ user: UserSummary; tickets: TicketSummary[]; }>; jqlQuery(query: string, maxResults?: number): Promise<Ticket[]>; } export { ActivityStream, EntityJiraActivityStreamCard, EntityJiraOverviewCard, EntityJiraQueryCard, HomePageMyJiraTicketsCard, IssuesTable, type IssuesTableProps, JiraAPI, JiraOverviewCard, JiraQueryCard, type JiraQueryCardProps, hasJiraQuery, isJiraAvailable, isJiraAvailable as isPluginApplicableToEntity, jiraApiRef, jiraPlugin, jiraPlugin as plugin };