qase-javascript-commons 2.0.0-beta.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -97
- package/changelog.md +159 -0
- package/dist/config/config-loader-interface.d.ts +4 -0
- package/dist/config/config-loader-interface.js +2 -0
- package/dist/config/config-loader.d.ts +10 -0
- package/dist/config/config-loader.js +58 -0
- package/dist/config/config-type.d.ts +2 -0
- package/dist/config/config-type.js +2 -0
- package/dist/config/config-validation-schema.d.ts +6 -0
- package/dist/config/config-validation-schema.js +163 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.js +7 -0
- package/dist/env/env-enum.d.ts +54 -0
- package/dist/env/env-enum.js +64 -0
- package/dist/env/env-to-config.d.ts +7 -0
- package/dist/env/env-to-config.js +46 -0
- package/dist/env/env-type.d.ts +24 -0
- package/dist/env/env-type.js +3 -0
- package/dist/env/env-validation-schema.d.ts +6 -0
- package/dist/env/env-validation-schema.js +93 -0
- package/dist/env/index.d.ts +4 -0
- package/dist/env/index.js +13 -0
- package/dist/formatter/formatter-interface.d.ts +3 -0
- package/dist/formatter/formatter-interface.js +2 -0
- package/dist/formatter/index.d.ts +3 -0
- package/dist/formatter/index.js +7 -0
- package/dist/formatter/json-formatter.d.ts +13 -0
- package/dist/formatter/json-formatter.js +27 -0
- package/dist/formatter/jsonp-formatter.d.ts +13 -0
- package/dist/formatter/jsonp-formatter.js +28 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +26 -0
- package/dist/models/attachment.d.ts +9 -0
- package/dist/models/attachment.js +2 -0
- package/dist/models/execution-sum.d.ts +6 -0
- package/dist/models/execution-sum.js +2 -0
- package/dist/models/host-data.d.ts +11 -0
- package/dist/models/host-data.js +2 -0
- package/dist/models/index.d.ts +6 -0
- package/dist/models/index.js +9 -0
- package/dist/models/report.d.ts +14 -0
- package/dist/models/report.js +2 -0
- package/dist/models/short-result.d.ts +7 -0
- package/dist/models/short-result.js +2 -0
- package/dist/models/stats.d.ts +8 -0
- package/dist/models/stats.js +2 -0
- package/dist/models/step-data.d.ts +9 -0
- package/dist/models/step-data.js +2 -0
- package/dist/models/step-execution.d.ts +11 -0
- package/dist/models/step-execution.js +9 -0
- package/dist/models/test-execution.d.ts +19 -0
- package/dist/models/test-execution.js +15 -0
- package/dist/models/test-result.d.ts +29 -0
- package/dist/models/test-result.js +2 -0
- package/dist/models/test-step.d.ts +16 -0
- package/dist/models/test-step.js +8 -0
- package/dist/options/composeOptions.d.ts +9 -0
- package/dist/options/composeOptions.js +12 -0
- package/dist/options/index.d.ts +3 -0
- package/dist/options/index.js +7 -0
- package/dist/options/mode-enum.d.ts +8 -0
- package/dist/options/mode-enum.js +12 -0
- package/dist/options/options-type.d.ts +33 -0
- package/dist/options/options-type.js +3 -0
- package/dist/qase.d.ts +97 -0
- package/dist/qase.js +301 -0
- package/dist/reporters/abstract-reporter.d.ts +51 -0
- package/dist/reporters/abstract-reporter.js +59 -0
- package/dist/reporters/index.d.ts +3 -0
- package/dist/reporters/index.js +9 -0
- package/dist/reporters/report-reporter.d.ts +46 -0
- package/dist/reporters/report-reporter.js +185 -0
- package/dist/reporters/testops-reporter.d.ts +179 -0
- package/dist/reporters/testops-reporter.js +398 -0
- package/dist/utils/custom-boundary.d.ts +26 -0
- package/dist/utils/custom-boundary.js +30 -0
- package/dist/utils/disabled-exception.d.ts +6 -0
- package/dist/utils/disabled-exception.js +10 -0
- package/dist/utils/get-package-version.d.ts +5 -0
- package/dist/utils/get-package-version.js +25 -0
- package/dist/utils/is-axios-error.d.ts +6 -0
- package/dist/utils/is-axios-error.js +11 -0
- package/dist/utils/logger.d.ts +29 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/mimeTypes.d.ts +5 -0
- package/dist/utils/mimeTypes.js +41 -0
- package/dist/utils/qase-error.d.ts +18 -0
- package/dist/utils/qase-error.js +15 -0
- package/dist/utils/validate-json.d.ts +20 -0
- package/dist/utils/validate-json.js +40 -0
- package/dist/writer/driver-enum.d.ts +13 -0
- package/dist/writer/driver-enum.js +18 -0
- package/dist/writer/fs-writer.d.ts +40 -0
- package/dist/writer/fs-writer.js +126 -0
- package/dist/writer/index.d.ts +3 -0
- package/dist/writer/index.js +8 -0
- package/dist/writer/writer-interface.d.ts +7 -0
- package/dist/writer/writer-interface.js +2 -0
- package/package.json +6 -2
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AbstractReporter } from './abstract-reporter';
|
|
2
|
+
import { WriterInterface } from '../writer';
|
|
3
|
+
import { LoggerInterface } from '../utils/logger';
|
|
4
|
+
/**
|
|
5
|
+
* @class ReportReporter
|
|
6
|
+
* @extends AbstractReporter
|
|
7
|
+
*/
|
|
8
|
+
export declare class ReportReporter extends AbstractReporter {
|
|
9
|
+
private writer;
|
|
10
|
+
private readonly environment;
|
|
11
|
+
private readonly runId;
|
|
12
|
+
private startTime;
|
|
13
|
+
/**
|
|
14
|
+
* @param {LoggerInterface} logger
|
|
15
|
+
* @param {WriterInterface} writer
|
|
16
|
+
* @param {string | undefined} environment
|
|
17
|
+
* @param {number | undefined} runId
|
|
18
|
+
*/
|
|
19
|
+
constructor(logger: LoggerInterface, writer: WriterInterface, environment?: string, runId?: number);
|
|
20
|
+
/**
|
|
21
|
+
* @returns {Promise<void>}
|
|
22
|
+
*/
|
|
23
|
+
startTestRun(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* @returns {Promise<void>}
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
publish(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* @param {TestStepType[]} steps
|
|
31
|
+
* @returns {TestStepType[]}
|
|
32
|
+
*/
|
|
33
|
+
private copyStepAttachments;
|
|
34
|
+
/**
|
|
35
|
+
* @returns {HostData}
|
|
36
|
+
*/
|
|
37
|
+
private getHostInfo;
|
|
38
|
+
/**
|
|
39
|
+
* @returns {string}
|
|
40
|
+
*/
|
|
41
|
+
private getComputerName;
|
|
42
|
+
/**
|
|
43
|
+
* @returns {string}
|
|
44
|
+
*/
|
|
45
|
+
private getDetailedOSInfo;
|
|
46
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ReportReporter = void 0;
|
|
27
|
+
const abstract_reporter_1 = require("./abstract-reporter");
|
|
28
|
+
const models_1 = require("../models");
|
|
29
|
+
const os = __importStar(require("os"));
|
|
30
|
+
const cp = __importStar(require("child_process"));
|
|
31
|
+
const process = __importStar(require("process"));
|
|
32
|
+
/**
|
|
33
|
+
* @class ReportReporter
|
|
34
|
+
* @extends AbstractReporter
|
|
35
|
+
*/
|
|
36
|
+
class ReportReporter extends abstract_reporter_1.AbstractReporter {
|
|
37
|
+
/**
|
|
38
|
+
* @param {LoggerInterface} logger
|
|
39
|
+
* @param {WriterInterface} writer
|
|
40
|
+
* @param {string | undefined} environment
|
|
41
|
+
* @param {number | undefined} runId
|
|
42
|
+
*/
|
|
43
|
+
constructor(logger, writer, environment, runId) {
|
|
44
|
+
super(logger);
|
|
45
|
+
this.writer = writer;
|
|
46
|
+
this.startTime = Date.now();
|
|
47
|
+
this.environment = environment;
|
|
48
|
+
this.runId = runId;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @returns {Promise<void>}
|
|
52
|
+
*/
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
54
|
+
async startTestRun() {
|
|
55
|
+
this.startTime = Date.now();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @returns {Promise<void>}
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
async publish() {
|
|
62
|
+
this.writer.clearPreviousResults();
|
|
63
|
+
const report = {
|
|
64
|
+
title: 'Test report',
|
|
65
|
+
execution: {
|
|
66
|
+
start_time: this.startTime,
|
|
67
|
+
end_time: Date.now(),
|
|
68
|
+
duration: Date.now() - this.startTime,
|
|
69
|
+
cumulative_duration: 0,
|
|
70
|
+
},
|
|
71
|
+
stats: {
|
|
72
|
+
total: 0,
|
|
73
|
+
passed: 0,
|
|
74
|
+
failed: 0,
|
|
75
|
+
skipped: 0,
|
|
76
|
+
broken: 0,
|
|
77
|
+
muted: 0,
|
|
78
|
+
},
|
|
79
|
+
results: [],
|
|
80
|
+
threads: [],
|
|
81
|
+
suites: [],
|
|
82
|
+
environment: this.environment ?? '',
|
|
83
|
+
host_data: this.getHostInfo(),
|
|
84
|
+
};
|
|
85
|
+
for (const result of this.results) {
|
|
86
|
+
report.stats.total++;
|
|
87
|
+
switch (result.execution.status) {
|
|
88
|
+
case models_1.TestStatusEnum.passed:
|
|
89
|
+
report.stats.passed++;
|
|
90
|
+
break;
|
|
91
|
+
case models_1.TestStatusEnum.failed:
|
|
92
|
+
report.stats.failed++;
|
|
93
|
+
break;
|
|
94
|
+
case models_1.TestStatusEnum.skipped:
|
|
95
|
+
report.stats.skipped++;
|
|
96
|
+
break;
|
|
97
|
+
case models_1.TestStatusEnum.invalid:
|
|
98
|
+
report.stats.broken++;
|
|
99
|
+
break;
|
|
100
|
+
case models_1.TestStatusEnum.blocked:
|
|
101
|
+
report.stats.muted++;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (result.execution.thread && !report.threads.includes(result.execution.thread)) {
|
|
105
|
+
report.threads.push(result.execution.thread);
|
|
106
|
+
}
|
|
107
|
+
report.execution.cumulative_duration += result.execution.duration ?? 0;
|
|
108
|
+
report.results.push({
|
|
109
|
+
duration: result.execution.duration ?? 0,
|
|
110
|
+
id: result.id,
|
|
111
|
+
status: result.execution.status,
|
|
112
|
+
thread: result.execution.thread,
|
|
113
|
+
title: result.title,
|
|
114
|
+
});
|
|
115
|
+
if (result.attachments.length > 0) {
|
|
116
|
+
result.attachments = this.writer.writeAttachment(result.attachments);
|
|
117
|
+
}
|
|
118
|
+
result.steps = this.copyStepAttachments(result.steps);
|
|
119
|
+
result.run_id = this.runId ?? null;
|
|
120
|
+
await this.writer.writeTestResult(result);
|
|
121
|
+
}
|
|
122
|
+
const path = await this.writer.writeReport(report);
|
|
123
|
+
this.logger.log(`Report saved to ${path}`);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* @param {TestStepType[]} steps
|
|
127
|
+
* @returns {TestStepType[]}
|
|
128
|
+
*/
|
|
129
|
+
copyStepAttachments(steps) {
|
|
130
|
+
for (const step of steps) {
|
|
131
|
+
if (step.attachments.length > 0) {
|
|
132
|
+
step.attachments = this.writer.writeAttachment(step.attachments);
|
|
133
|
+
}
|
|
134
|
+
if (step.steps.length > 0) {
|
|
135
|
+
step.steps = this.copyStepAttachments(step.steps);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return steps;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @returns {HostData}
|
|
142
|
+
*/
|
|
143
|
+
getHostInfo() {
|
|
144
|
+
return {
|
|
145
|
+
system: process.platform,
|
|
146
|
+
node: this.getComputerName(),
|
|
147
|
+
release: os.release(),
|
|
148
|
+
version: this.getDetailedOSInfo(),
|
|
149
|
+
machine: os.arch(),
|
|
150
|
+
python: '',
|
|
151
|
+
pip: '',
|
|
152
|
+
node_version: cp.execSync('node --version').toString().trim(),
|
|
153
|
+
npm: cp.execSync('npm --version').toString().trim(),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* @returns {string}
|
|
158
|
+
*/
|
|
159
|
+
getComputerName() {
|
|
160
|
+
switch (process.platform) {
|
|
161
|
+
case 'win32':
|
|
162
|
+
return process.env['COMPUTERNAME'] ?? '';
|
|
163
|
+
case 'darwin':
|
|
164
|
+
return cp.execSync('scutil --get ComputerName').toString().trim();
|
|
165
|
+
case 'linux': {
|
|
166
|
+
const prettyname = cp.execSync('hostnamectl --pretty').toString().trim();
|
|
167
|
+
return prettyname === '' ? os.hostname() : prettyname;
|
|
168
|
+
}
|
|
169
|
+
default:
|
|
170
|
+
return os.hostname();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @returns {string}
|
|
175
|
+
*/
|
|
176
|
+
getDetailedOSInfo() {
|
|
177
|
+
if (process.platform === 'darwin') {
|
|
178
|
+
return cp.execSync('uname -a').toString().trim();
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
return `${os.type()} ${os.release()} ${os.arch()}`;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.ReportReporter = ReportReporter;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { QaseApiInterface, ResultStepStatus, TestStepResultCreateStatusEnum } from 'qaseio';
|
|
2
|
+
import { AbstractReporter } from './abstract-reporter';
|
|
3
|
+
import { StepStatusEnum, TestResultType, TestStatusEnum } from '../models';
|
|
4
|
+
import { LoggerInterface } from '../utils/logger';
|
|
5
|
+
export type TestOpsRunType = {
|
|
6
|
+
id?: number | undefined;
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
complete?: boolean | undefined;
|
|
10
|
+
};
|
|
11
|
+
export type TestOpsPlanType = {
|
|
12
|
+
id?: number | undefined;
|
|
13
|
+
};
|
|
14
|
+
export type TestOpsBatchType = {
|
|
15
|
+
size?: number | undefined;
|
|
16
|
+
};
|
|
17
|
+
export type TestOpsOptionsType = {
|
|
18
|
+
project: string;
|
|
19
|
+
uploadAttachments?: boolean | undefined;
|
|
20
|
+
run: TestOpsRunType;
|
|
21
|
+
plan: TestOpsPlanType;
|
|
22
|
+
batch?: TestOpsBatchType;
|
|
23
|
+
defect?: boolean | undefined;
|
|
24
|
+
useV2?: boolean | undefined;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @class TestOpsReporter
|
|
28
|
+
* @extends AbstractReporter
|
|
29
|
+
*/
|
|
30
|
+
export declare class TestOpsReporter extends AbstractReporter {
|
|
31
|
+
private api;
|
|
32
|
+
/**
|
|
33
|
+
* @type {Record<TestStatusEnum, string>}
|
|
34
|
+
*/
|
|
35
|
+
static statusMap: Record<TestStatusEnum, string>;
|
|
36
|
+
/**
|
|
37
|
+
* @type {Record<StepStatusEnum, ResultStepStatus>}
|
|
38
|
+
*/
|
|
39
|
+
static stepStatusMap: Record<StepStatusEnum, ResultStepStatus>;
|
|
40
|
+
/**
|
|
41
|
+
* @type {Record<StepStatusEnum, ResultStepStatus>}
|
|
42
|
+
*/
|
|
43
|
+
static stepStatusMapV1: Record<StepStatusEnum, TestStepResultCreateStatusEnum>;
|
|
44
|
+
/**
|
|
45
|
+
* @type {string}
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
private readonly baseUrl;
|
|
49
|
+
/**
|
|
50
|
+
* @type {string}
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
private readonly projectCode;
|
|
54
|
+
/**
|
|
55
|
+
* @type {boolean | undefined}
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private readonly isUploadAttachments;
|
|
59
|
+
/**
|
|
60
|
+
* @type {TestOpsRunType}
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
private run;
|
|
64
|
+
/**
|
|
65
|
+
* @type { number | undefined}
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
private readonly environment;
|
|
69
|
+
/**
|
|
70
|
+
* @type {TestResultType[]}
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
private readonly batchSize;
|
|
74
|
+
/**
|
|
75
|
+
* @type {boolean | undefined}
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
private readonly useV2;
|
|
79
|
+
/**
|
|
80
|
+
* @type {boolean | undefined}
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
private readonly defect;
|
|
84
|
+
/**
|
|
85
|
+
* @type {number}
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
private firstIndex;
|
|
89
|
+
/**
|
|
90
|
+
* @type {boolean}
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
private isTestRunReady;
|
|
94
|
+
/**
|
|
95
|
+
* @param {LoggerInterface} logger
|
|
96
|
+
* @param {ReporterOptionsType & TestOpsOptionsType} options
|
|
97
|
+
* @param {QaseApiInterface} api
|
|
98
|
+
* @param {number} environment
|
|
99
|
+
*/
|
|
100
|
+
constructor(logger: LoggerInterface, options: TestOpsOptionsType, api: QaseApiInterface, environment?: number);
|
|
101
|
+
/**
|
|
102
|
+
* @returns {Promise<void>}
|
|
103
|
+
*/
|
|
104
|
+
startTestRun(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* @param {TestResultType} result
|
|
107
|
+
* @returns {Promise<void>}
|
|
108
|
+
*/
|
|
109
|
+
addTestResult(result: TestResultType): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* @returns {Promise<void>}
|
|
112
|
+
*/
|
|
113
|
+
private checkOrCreateTestRun;
|
|
114
|
+
/**
|
|
115
|
+
* @returns {Promise<void>}
|
|
116
|
+
* @param testResults
|
|
117
|
+
* @private
|
|
118
|
+
*/
|
|
119
|
+
private publishResults;
|
|
120
|
+
/**
|
|
121
|
+
* @returns {Promise<void>}
|
|
122
|
+
*/
|
|
123
|
+
publish(): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* @param {TestResultType} result
|
|
126
|
+
* @returns Promise<ResultCreateV2>
|
|
127
|
+
* @private
|
|
128
|
+
*/
|
|
129
|
+
private transformTestResult;
|
|
130
|
+
/**
|
|
131
|
+
* @param {TestResultType} result
|
|
132
|
+
* @returns Promise<ResultCreate>
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
private transformTestResultV1;
|
|
136
|
+
/**
|
|
137
|
+
* @returns {ResultExecution}
|
|
138
|
+
* @private
|
|
139
|
+
* @param {TestExecution} exec
|
|
140
|
+
*/
|
|
141
|
+
private getExecution;
|
|
142
|
+
/**
|
|
143
|
+
* @param {Relation | null} relation
|
|
144
|
+
* @returns {ResultRelations}
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
private getRelation;
|
|
148
|
+
/**
|
|
149
|
+
* @param {TestStepType[]} steps
|
|
150
|
+
* @returns Promise<ResultStep[]>
|
|
151
|
+
* @private
|
|
152
|
+
*/
|
|
153
|
+
private transformSteps;
|
|
154
|
+
/**
|
|
155
|
+
* @param {TestStepType[]} steps
|
|
156
|
+
* @returns Promise<TestStepResultCreate[]>
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
private transformStepsV1;
|
|
160
|
+
/**
|
|
161
|
+
* @param {number} runId
|
|
162
|
+
* @returns {Promise<void>}
|
|
163
|
+
* @private
|
|
164
|
+
*/
|
|
165
|
+
private checkRun;
|
|
166
|
+
/**
|
|
167
|
+
* @param {string} title
|
|
168
|
+
* @param {string} description
|
|
169
|
+
* @param {number | undefined} environment
|
|
170
|
+
* @returns {Promise<IdResponse>}
|
|
171
|
+
* @private
|
|
172
|
+
*/
|
|
173
|
+
private createRun;
|
|
174
|
+
/**
|
|
175
|
+
* @returns {Promise<void>}
|
|
176
|
+
* @private
|
|
177
|
+
*/
|
|
178
|
+
private uploadAttachments;
|
|
179
|
+
}
|