export type Omit<T, K extends keyof T> = Pick<T, Diff<keyof T, K>>;
-export enum BranchType {
- LONG = 'LONG',
- SHORT = 'SHORT'
-}
-
-export interface MainBranch {
- analysisDate?: string;
- isMain: true;
- name: string;
- status?: {
- qualityGateStatus: string;
- };
-}
-
-export interface LongLivingBranch {
- analysisDate?: string;
- isMain: false;
- name: string;
- status?: {
- qualityGateStatus: string;
- };
- type: BranchType.LONG;
-}
+// Type ordered alphabetically to prevent merge conflicts
-export interface ShortLivingBranch {
- analysisDate?: string;
- isMain: false;
- isOrphan?: true;
- mergeBranch: string;
- name: string;
- status?: {
- bugs: number;
- codeSmells: number;
- vulnerabilities: number;
- };
- type: BranchType.SHORT;
+export interface AppState {
+ adminPages?: Extension[];
+ authenticationError?: boolean;
+ authorizationError?: boolean;
+ canAdmin?: boolean;
+ globalPages?: Extension[];
+ organizationsEnabled?: boolean;
+ qualifiers: string[];
}
export type Branch = MainBranch | LongLivingBranch | ShortLivingBranch;
-export interface Extension {
- key: string;
- name: string;
+export enum BranchType {
+ LONG = 'LONG',
+ SHORT = 'SHORT'
}
export interface Breadcrumb {
qualifier: string;
}
-export interface LightComponent {
- key: string;
- organization: string;
- qualifier: string;
-}
-
export interface Component extends LightComponent {
analysisDate?: string;
breadcrumbs: Breadcrumb[];
showUpdateKey?: boolean;
}
-export interface Metric {
- custom?: boolean;
- decimalScale?: number;
- description?: string;
- direction?: number;
- domain?: string;
- hidden?: boolean;
- id: string;
+export interface CoveredFile {
key: string;
- name: string;
- qualitative?: boolean;
- type: string;
+ longName: string;
+ coveredLines: number;
}
-export interface Organization {
- adminPages?: { key: string; name: string }[];
- avatar?: string;
- canAdmin?: boolean;
- canDelete?: boolean;
- canProvisionProjects?: boolean;
- canUpdateProjectsVisibilityToPrivate?: boolean;
- description?: string;
- isAdmin?: boolean;
- isDefault?: boolean;
- key: string;
- name: string;
- pages?: { key: string; name: string }[];
- projectVisibility: Visibility;
- url?: string;
+export interface CurrentUser {
+ isLoggedIn: boolean;
+ showOnboardingTutorial?: boolean;
}
-export interface Paging {
- pageIndex: number;
- pageSize: number;
- total: number;
+export interface CustomMeasure {
+ createdAt?: string;
+ description?: string;
+ id: string;
+ metric: {
+ key: string;
+ name: string;
+ domain?: string;
+ type: string;
+ };
+ projectKey: string;
+ pending?: boolean;
+ user: {
+ active?: boolean;
+ email?: string;
+ login: string;
+ name: string;
+ };
+ value: string;
+ updatedAt?: string;
}
-export enum Visibility {
- Public = 'public',
- Private = 'private'
+export interface Extension {
+ key: string;
+ name: string;
}
-export interface CurrentUser {
- isLoggedIn: boolean;
- showOnboardingTutorial?: boolean;
+export interface FacetValue {
+ count: number;
+ val: string;
}
export interface Group {
name: string;
}
+export interface HomePage {
+ parameter?: string;
+ type: HomePageType;
+}
+
export enum HomePageType {
Project = 'PROJECT',
Organization = 'ORGANIZATION',
MyIssues = 'MY_ISSUES'
}
-export interface HomePage {
- parameter?: string;
- type: HomePageType;
+export interface IdentityProvider {
+ backgroundColor: string;
+ helpMessage?: string;
+ iconPath: string;
+ key: string;
+ name: string;
+}
+
+export function isLoggedIn(user: CurrentUser): user is LoggedInUser {
+ return user.isLoggedIn;
}
export function isSameHomePage(a: HomePage, b: HomePage) {
return a.type === b.type && a.parameter === b.parameter;
}
+export interface LightComponent {
+ key: string;
+ organization: string;
+ qualifier: string;
+}
+
export interface LoggedInUser extends CurrentUser {
avatar?: string;
email?: string;
name: string;
}
-export function isLoggedIn(user: CurrentUser): user is LoggedInUser {
- return user.isLoggedIn;
+export interface LongLivingBranch {
+ analysisDate?: string;
+ isMain: false;
+ name: string;
+ status?: {
+ qualityGateStatus: string;
+ };
+ type: BranchType.LONG;
}
-export interface AppState {
- adminPages?: Extension[];
- authenticationError?: boolean;
- authorizationError?: boolean;
+export interface MainBranch {
+ analysisDate?: string;
+ isMain: true;
+ name: string;
+ status?: {
+ qualityGateStatus: string;
+ };
+}
+
+export interface Metric {
+ custom?: boolean;
+ decimalScale?: number;
+ description?: string;
+ direction?: number;
+ domain?: string;
+ hidden?: boolean;
+ id: string;
+ key: string;
+ name: string;
+ qualitative?: boolean;
+ type: string;
+}
+
+export interface Organization {
+ adminPages?: { key: string; name: string }[];
+ avatar?: string;
canAdmin?: boolean;
- globalPages?: Extension[];
- organizationsEnabled?: boolean;
- qualifiers: string[];
+ canDelete?: boolean;
+ canProvisionProjects?: boolean;
+ canUpdateProjectsVisibilityToPrivate?: boolean;
+ description?: string;
+ isAdmin?: boolean;
+ isDefault?: boolean;
+ key: string;
+ name: string;
+ pages?: { key: string; name: string }[];
+ projectVisibility: Visibility;
+ url?: string;
+}
+
+export interface Paging {
+ pageIndex: number;
+ pageSize: number;
+ total: number;
+}
+
+export interface PermissionTemplate {
+ defaultFor: string[];
+ id: string;
+ name: string;
+ description?: string;
+ projectKeyPattern?: string;
+ createdAt: string;
+ updatedAt?: string;
+ permissions: Array<{
+ key: string;
+ usersCount: number;
+ groupsCount: number;
+ withProjectCreator?: boolean;
+ }>;
}
export interface Rule {
type: string;
}
+export interface RuleActivation {
+ createdAt: string;
+ inherit: RuleInheritance;
+ params: { key: string; value: string }[];
+ qProfile: string;
+ severity: string;
+}
+
export interface RuleDetails extends Rule {
createdAt: string;
debtOverloaded?: boolean;
templateKey?: string;
}
-export interface RuleActivation {
- createdAt: string;
- inherit: RuleInheritance;
- params: { key: string; value: string }[];
- qProfile: string;
- severity: string;
+export enum RuleInheritance {
+ NotInherited = 'NONE',
+ Inherited = 'INHERITED',
+ Overridden = 'OVERRIDES'
}
export interface RuleParameter {
type: string;
}
-export enum RuleInheritance {
- NotInherited = 'NONE',
- Inherited = 'INHERITED',
- Overridden = 'OVERRIDES'
-}
-
export enum RuleScope {
Main = 'MAIN',
Test = 'TEST',
All = 'ALL'
}
-export interface IdentityProvider {
- backgroundColor: string;
- helpMessage?: string;
- iconPath: string;
- key: string;
- name: string;
-}
-
-export interface User {
- active: boolean;
- avatar?: string;
- email?: string;
- externalIdentity?: string;
- externalProvider?: string;
- groups?: string[];
- local: boolean;
- login: string;
+export interface ShortLivingBranch {
+ analysisDate?: string;
+ isMain: false;
+ isOrphan?: true;
+ mergeBranch: string;
name: string;
- scmAccounts?: string[];
- tokensCount?: number;
-}
-
-export interface CustomMeasure {
- createdAt?: string;
- description?: string;
- id: string;
- metric: {
- key: string;
- name: string;
- domain?: string;
- type: string;
- };
- projectKey: string;
- pending?: boolean;
- user: {
- active?: boolean;
- email?: string;
- login: string;
- name: string;
+ status?: {
+ bugs: number;
+ codeSmells: number;
+ vulnerabilities: number;
};
- value: string;
- updatedAt?: string;
-}
-
-export interface PermissionTemplate {
- defaultFor: string[];
- id: string;
- name: string;
- description?: string;
- projectKeyPattern?: string;
- createdAt: string;
- updatedAt?: string;
- permissions: Array<{
- key: string;
- usersCount: number;
- groupsCount: number;
- withProjectCreator?: boolean;
- }>;
-}
-
-export interface TestCase {
- coveredLines: number;
- durationInMs: number;
- fileId: string;
- fileKey: string;
- fileName: string;
- id: string;
- message?: string;
- name: string;
- stacktrace?: string;
- status: string;
-}
-
-export interface CoveredFile {
- key: string;
- longName: string;
- coveredLines: number;
-}
-
-export interface FacetValue {
- count: number;
- val: string;
+ type: BranchType.SHORT;
}
export interface SourceViewerFile {
subProjectName?: string;
uuid: string;
}
+
+export interface TestCase {
+ coveredLines: number;
+ durationInMs: number;
+ fileId: string;
+ fileKey: string;
+ fileName: string;
+ id: string;
+ message?: string;
+ name: string;
+ stacktrace?: string;
+ status: string;
+}
+
+export interface User {
+ active: boolean;
+ avatar?: string;
+ email?: string;
+ externalIdentity?: string;
+ externalProvider?: string;
+ groups?: string[];
+ local: boolean;
+ login: string;
+ name: string;
+ scmAccounts?: string[];
+ tokensCount?: number;
+}
+
+export enum Visibility {
+ Public = 'public',
+ Private = 'private'
+}