Skip to content

Commit

Permalink
feat(jira): initial commit for JIRA src
Browse files Browse the repository at this point in the history
feat #179
  • Loading branch information
alejandrosaenz117 committed Aug 3, 2020
1 parent 822774c commit acc78ab
Show file tree
Hide file tree
Showing 19 changed files with 266 additions and 73 deletions.
137 changes: 64 additions & 73 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
"dotenv": "^8.2.0",
"express": "^4.17.1",
"helmet": "^3.23.3",
"jira-client": "^6.18.0",
"jsonwebtoken": "^8.5.1",
"multer": "^1.4.2",
"mysql": "^2.18.1",
Expand Down
10 changes: 10 additions & 0 deletions src/interfaces/jira/jira-attachment.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { JiraUser } from './jira-user.interface';

export interface Attachment {
id: number;
author: JiraUser;
filename: string;
size: number;
mimeType: string;
created: Date;
}
10 changes: 10 additions & 0 deletions src/interfaces/jira/jira-comment.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { JiraUser } from './jira-user.interface';

export interface Comment {
id: number;
body: string;
author: JiraUser;
created: Date;
updated: Date;
properties: any;
}
4 changes: 4 additions & 0 deletions src/interfaces/jira/jira-component.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export interface Component {
id: number;
name: string;
}
6 changes: 6 additions & 0 deletions src/interfaces/jira/jira-issue-link-type.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export interface IssueLinkType {
id: string;
name: string;
inward: string;
outward: string;
}
11 changes: 11 additions & 0 deletions src/interfaces/jira/jira-issue-link.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { IssueLinkType } from './jira-issue-link-type.interface';
import { JiraIssue } from './jira-issue.interface';

export interface IssueLink {
id: number;
type: IssueLinkType;
direction: string; // Inward, Outward
outwardIssue: JiraIssue;
inwardIssue: JiraIssue;
linkedIssue: JiraIssue;
}
6 changes: 6 additions & 0 deletions src/interfaces/jira/jira-issue-priority.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export interface JiraPriority {
id: number;
key: string;
name: string;
colorName: string;
}
7 changes: 7 additions & 0 deletions src/interfaces/jira/jira-issue-status.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { StatusCategory } from './jira-status-category.interface';
export interface IssueStatus {
id: number;
name: string;
description: string;
category: StatusCategory;
}
6 changes: 6 additions & 0 deletions src/interfaces/jira/jira-issue-type.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export interface IssueType {
id: number;
name: string;
description: string;
properties: any;
}
43 changes: 43 additions & 0 deletions src/interfaces/jira/jira-issue.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { JiraProject } from './jira-project.interface';
import { JiraPriority } from './jira-issue-priority.interface';
import { JiraUser } from './jira-user.interface';
import { IssueType } from './jira-issue-type.interface';
import { IssueStatus } from './jira-issue-status.interface';
import { Resolution } from './jira-resolution.interface';
import { SecurityLevel } from './jira-security-level.interface';
import { Version } from './jira-version.interface';
import { Component } from './jira-component.interface';
import { Attachment } from './jira-attachment.interface';
import { IssueLink } from './jira-issue-link.interface';
export interface JiraIssue {
id?: number;
key?: string;
summary?: string;
parent?: JiraIssue;
subtasks?: JiraIssue[];
description?: string;
environment?: string;
project?: JiraProject;
priority?: JiraPriority;
assignee?: JiraUser;
reporter?: JiraUser;
creator?: JiraUser;
issueType?: IssueType;
issueStatus?: IssueStatus;
created?: Date;
updated?: Date;
dueDate?: Date;
resolution?: Resolution;
originalEstimate?: number;
remainingEstimate?: number;
timeSpent?: number;
securityLevel?: SecurityLevel;
labels?: string[];
versions?: Version[];
fixVersions?: Version[];
components?: Component[];
comments?: Comment[];
attachments?: Attachment[];
links?: IssueLink[];
properties?: any;
}
5 changes: 5 additions & 0 deletions src/interfaces/jira/jira-project-role.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export interface ProjectRole {
id: number;
name: string;
description: string;
}
8 changes: 8 additions & 0 deletions src/interfaces/jira/jira-project.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export interface JiraProject {
id?: number;
key?: string;
style?: string;
name?: string;
projectTypeKey?: string;
properties?: any;
}
5 changes: 5 additions & 0 deletions src/interfaces/jira/jira-resolution.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export interface Resolution {
id: number;
name: string;
description: string;
}
5 changes: 5 additions & 0 deletions src/interfaces/jira/jira-security-level.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export interface SecurityLevel {
id: number;
name: string;
description: string;
}
6 changes: 6 additions & 0 deletions src/interfaces/jira/jira-status-category.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export interface StatusCategory {
id: number,
key: string,
name: string,
colorName: string
}
7 changes: 7 additions & 0 deletions src/interfaces/jira/jira-user.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export interface JiraUser {
accountId: string;
displayName: string;
properties: any;
groups: string[];
permissions: string[];
}
8 changes: 8 additions & 0 deletions src/interfaces/jira/jira-version.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export interface Version {
id: number;
name: string;
description: string;
archived: boolean;
released: boolean;
releaseDate: Date;
}
54 changes: 54 additions & 0 deletions src/utilities/jira.utility.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import * as JiraApi from 'jira-client';
import { JiraIssue } from 'src/interfaces/jira/jira-issue.interface';
import { JiraProject } from 'src/interfaces/jira/jira-project.interface';
import { IssueType } from 'src/interfaces/jira/jira-issue-type.interface';

// Initialize
const jira = new JiraApi({
protocol: 'https',
host: process.env.JIRA_HOST,
username: process.env.JIRA_USERNAME,
password: process.env.JIRA_API_KEY,
apiVersion: '2',
strictSSL: true
});

export const addNewIssue = async (issue) => {
try {
const saved = await jira.addNewIssue(issue);
console.log(saved);
} catch (err) {
console.error(err.message);
}
};

const jiraProject: JiraProject = {
key: 'bul',
id: 10000
};

const x = {
project: {
key: 'bul',
id: '10000'
},
summary: 'REST ye merry gentlemen.',
description: 'Creating of an issue using project keys and issue type names using the REST API',
issuetype: {
name: 'Bug'
}
};

const jiraIssue: JiraIssue = {
key: 'First Test',
project: jiraProject,
summary: 'REST ye merry gentlemen.',
description: 'Creating of an issue using project keys and issue type names using the REST API',
issueType: {
name: 'Bug'
} as IssueType
};

console.log(jiraIssue);

addNewIssue(jiraIssue);

0 comments on commit acc78ab

Please sign in to comment.