github-issue-tower-defence-management 1.154.1 → 1.156.0
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/CHANGELOG.md +19 -0
- package/bin/adapter/entry-points/console/consoleReadApi.js +1 -1
- package/bin/adapter/entry-points/console/consoleReadApi.js.map +1 -1
- package/bin/adapter/repositories/githubGraphqlClient.js +90 -6
- package/bin/adapter/repositories/githubGraphqlClient.js.map +1 -1
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +88 -1
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/console/consoleReadApi.test.ts +27 -9
- package/src/adapter/entry-points/console/consoleReadApi.ts +1 -1
- package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +16 -0
- package/src/adapter/entry-points/console/webServer.test.ts +1 -5
- package/src/adapter/repositories/githubGraphqlClient.test.ts +173 -17
- package/src/adapter/repositories/githubGraphqlClient.ts +123 -9
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +165 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +140 -0
- package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +1 -1
- package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +13 -0
- package/types/adapter/repositories/githubGraphqlClient.d.ts +11 -1
- package/types/adapter/repositories/githubGraphqlClient.d.ts.map +1 -1
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +4 -1
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +10 -0
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [1.156.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.155.0...v1.156.0) (2026-08-15)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* name the GraphQL caller when the package runs from node_modules ([#1585](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1585)) ([e0caa90](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/e0caa906194a032591f85b7b1164b5ad14be42ef)), closes [#1584](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1584)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* serve console pull request status over REST ([#1583](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1583)) ([5ab092c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/5ab092ccdb6425b714dd980449d76f4fb86133d8)), closes [#1582](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1582)
|
|
12
|
+
|
|
13
|
+
# [1.155.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.154.1...v1.155.0) (2026-08-15)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* name the calling repository and use case on the GraphQL cost log line ([#1581](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1581)) ([8efd497](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/8efd4979fc7be18ab25c74540f5bf185c71cb13b)), closes [#1580](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1580)
|
|
19
|
+
|
|
1
20
|
## [1.154.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.154.0...v1.154.1) (2026-08-15)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -156,7 +156,7 @@ const handlePullRequestStatus = async (issueRepository, cache, url) => {
|
|
|
156
156
|
if (cached !== null) {
|
|
157
157
|
return ok(cached);
|
|
158
158
|
}
|
|
159
|
-
const pullRequest = await issueRepository.
|
|
159
|
+
const pullRequest = await issueRepository.getOpenPullRequestCiStatus(url);
|
|
160
160
|
const response = pullRequest === null
|
|
161
161
|
? { found: false, status: null }
|
|
162
162
|
: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleReadApi.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleReadApi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"consoleReadApi.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleReadApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.fetchGithubGraphql = exports.postGithubGraphqlJson = exports.logGithubGraphqlCost = exports.injectRateLimitSelection = exports.extractGraphqlOperationName = exports.isMutationOperation = exports.RATE_LIMIT_SELECTION = exports.GITHUB_GRAPHQL_REQUEST_TIMEOUT_MS = exports.GITHUB_GRAPHQL_ENDPOINT = void 0;
|
|
6
|
+
exports.fetchGithubGraphql = exports.postGithubGraphqlJson = exports.logGithubGraphqlCost = exports.captureGraphqlCallSite = exports.extractGraphqlCallSite = exports.UNKNOWN_GRAPHQL_CALL_SITE = exports.GRAPHQL_CALL_SITE_SEPARATOR = exports.GRAPHQL_CALL_SITE_FRAME_COUNT = exports.injectRateLimitSelection = exports.extractGraphqlOperationName = exports.isMutationOperation = exports.RATE_LIMIT_SELECTION = exports.GITHUB_GRAPHQL_REQUEST_TIMEOUT_MS = exports.GITHUB_GRAPHQL_ENDPOINT = void 0;
|
|
7
7
|
const ky_1 = __importDefault(require("ky"));
|
|
8
8
|
exports.GITHUB_GRAPHQL_ENDPOINT = 'https://api.github.com/graphql';
|
|
9
9
|
exports.GITHUB_GRAPHQL_REQUEST_TIMEOUT_MS = 120000;
|
|
@@ -49,15 +49,90 @@ const extractRateLimit = (responseBody) => {
|
|
|
49
49
|
}
|
|
50
50
|
return { cost, remaining };
|
|
51
51
|
};
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
exports.GRAPHQL_CALL_SITE_FRAME_COUNT = 3;
|
|
53
|
+
exports.GRAPHQL_CALL_SITE_SEPARATOR = '<-';
|
|
54
|
+
exports.UNKNOWN_GRAPHQL_CALL_SITE = 'unknown';
|
|
55
|
+
const GRAPHQL_CLIENT_MODULE_NAME = 'githubGraphqlClient';
|
|
56
|
+
const FRAME_LOCATION_PATTERN = /\(?([^()\s]+):\d+:\d+\)?$/;
|
|
57
|
+
const MODULE_FILE_EXTENSION_PATTERN = /\.(?:[cm]?[jt]sx?)$/;
|
|
58
|
+
const TEST_MODULE_SUFFIX_PATTERN = /\.(?:test|spec)$/;
|
|
59
|
+
const NODE_MODULES_SEGMENT = '/node_modules/';
|
|
60
|
+
const ownPackagePathPrefix = (modulePath) => {
|
|
61
|
+
const segmentIndex = modulePath.lastIndexOf(NODE_MODULES_SEGMENT);
|
|
62
|
+
if (segmentIndex === -1) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const packageRootIndex = segmentIndex + NODE_MODULES_SEGMENT.length;
|
|
66
|
+
const segments = modulePath.slice(packageRootIndex).split('/');
|
|
67
|
+
const nameSegmentCount = segments[0].startsWith('@') ? 2 : 1;
|
|
68
|
+
if (segments.length <= nameSegmentCount) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return modulePath.slice(0, packageRootIndex + segments.slice(0, nameSegmentCount).join('/').length + 1);
|
|
72
|
+
};
|
|
73
|
+
const isInsideOwnPackage = (location, ownPackagePrefix) => {
|
|
74
|
+
if (ownPackagePrefix === null || !location.startsWith(ownPackagePrefix)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const pathBelowPackageRoot = `/${location.slice(ownPackagePrefix.length)}`;
|
|
78
|
+
return !pathBelowPackageRoot.includes(NODE_MODULES_SEGMENT);
|
|
79
|
+
};
|
|
80
|
+
const frameModuleName = (frame, ownPackagePrefix) => {
|
|
81
|
+
const match = frame.match(FRAME_LOCATION_PATTERN);
|
|
82
|
+
if (!match) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const location = match[1];
|
|
86
|
+
if (location.startsWith('node:')) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
if (location.includes(NODE_MODULES_SEGMENT) &&
|
|
90
|
+
!isInsideOwnPackage(location, ownPackagePrefix)) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const fileName = location.split('/').slice(-1)[0];
|
|
94
|
+
const moduleName = fileName
|
|
95
|
+
.replace(MODULE_FILE_EXTENSION_PATTERN, '')
|
|
96
|
+
.replace(TEST_MODULE_SUFFIX_PATTERN, '');
|
|
97
|
+
if (moduleName.length === 0 || moduleName === GRAPHQL_CLIENT_MODULE_NAME) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return moduleName;
|
|
101
|
+
};
|
|
102
|
+
const extractGraphqlCallSite = (stack, modulePath = __filename) => {
|
|
103
|
+
if (!stack) {
|
|
104
|
+
return exports.UNKNOWN_GRAPHQL_CALL_SITE;
|
|
105
|
+
}
|
|
106
|
+
const ownPackagePrefix = ownPackagePathPrefix(modulePath);
|
|
107
|
+
const moduleNames = stack
|
|
108
|
+
.split('\n')
|
|
109
|
+
.map((line) => line.trim())
|
|
110
|
+
.filter((line) => line.startsWith('at '))
|
|
111
|
+
.map((frame) => frameModuleName(frame, ownPackagePrefix))
|
|
112
|
+
.filter((moduleName) => moduleName !== null)
|
|
113
|
+
.filter((moduleName, index, allModuleNames) => allModuleNames[index - 1] !== moduleName);
|
|
114
|
+
if (moduleNames.length === 0) {
|
|
115
|
+
return exports.UNKNOWN_GRAPHQL_CALL_SITE;
|
|
116
|
+
}
|
|
117
|
+
return moduleNames
|
|
118
|
+
.slice(0, exports.GRAPHQL_CALL_SITE_FRAME_COUNT)
|
|
119
|
+
.join(exports.GRAPHQL_CALL_SITE_SEPARATOR);
|
|
120
|
+
};
|
|
121
|
+
exports.extractGraphqlCallSite = extractGraphqlCallSite;
|
|
122
|
+
const captureGraphqlCallSite = () => (0, exports.extractGraphqlCallSite)(new Error().stack);
|
|
123
|
+
exports.captureGraphqlCallSite = captureGraphqlCallSite;
|
|
124
|
+
const logGithubGraphqlCost = (params) => {
|
|
125
|
+
const rateLimit = extractRateLimit(params.responseBody);
|
|
54
126
|
if (!rateLimit) {
|
|
55
127
|
return;
|
|
56
128
|
}
|
|
57
|
-
|
|
129
|
+
const now = params.now ?? (() => new Date());
|
|
130
|
+
const callSite = params.callSite ?? exports.UNKNOWN_GRAPHQL_CALL_SITE;
|
|
131
|
+
console.log(`${now().toISOString()} githubGraphqlClient: query=${(0, exports.extractGraphqlOperationName)(params.query)} cost=${rateLimit.cost} remaining=${rateLimit.remaining} caller=${callSite}`);
|
|
58
132
|
};
|
|
59
133
|
exports.logGithubGraphqlCost = logGithubGraphqlCost;
|
|
60
134
|
const postGithubGraphqlJson = async (params) => {
|
|
135
|
+
const callSite = (0, exports.captureGraphqlCallSite)();
|
|
61
136
|
const response = await ky_1.default
|
|
62
137
|
.post(exports.GITHUB_GRAPHQL_ENDPOINT, {
|
|
63
138
|
json: {
|
|
@@ -71,11 +146,16 @@ const postGithubGraphqlJson = async (params) => {
|
|
|
71
146
|
},
|
|
72
147
|
})
|
|
73
148
|
.json();
|
|
74
|
-
(0, exports.logGithubGraphqlCost)(
|
|
149
|
+
(0, exports.logGithubGraphqlCost)({
|
|
150
|
+
query: params.query,
|
|
151
|
+
responseBody: response,
|
|
152
|
+
callSite,
|
|
153
|
+
});
|
|
75
154
|
return response;
|
|
76
155
|
};
|
|
77
156
|
exports.postGithubGraphqlJson = postGithubGraphqlJson;
|
|
78
157
|
const fetchGithubGraphql = async (params) => {
|
|
158
|
+
const callSite = (0, exports.captureGraphqlCallSite)();
|
|
79
159
|
const response = await fetch(exports.GITHUB_GRAPHQL_ENDPOINT, {
|
|
80
160
|
method: 'POST',
|
|
81
161
|
headers: {
|
|
@@ -93,7 +173,11 @@ const fetchGithubGraphql = async (params) => {
|
|
|
93
173
|
.clone()
|
|
94
174
|
.json()
|
|
95
175
|
.catch(() => null);
|
|
96
|
-
(0, exports.logGithubGraphqlCost)(
|
|
176
|
+
(0, exports.logGithubGraphqlCost)({
|
|
177
|
+
query: params.query,
|
|
178
|
+
responseBody,
|
|
179
|
+
callSite,
|
|
180
|
+
});
|
|
97
181
|
}
|
|
98
182
|
return response;
|
|
99
183
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubGraphqlClient.js","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAEP,QAAA,uBAAuB,GAAG,gCAAgC,CAAC;AAE3D,QAAA,iCAAiC,GAAG,MAAO,CAAC;AAE5C,QAAA,oBAAoB,GAAG,8BAA8B,CAAC;AAO5D,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAW,EAAE,CAC5D,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAD9B,QAAA,mBAAmB,uBACW;AAEpC,MAAM,2BAA2B,GAAG,CAAC,KAAa,EAAU,EAAE;IACnE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CACvB,mDAAmD,CACpD,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC,CAAC;AALW,QAAA,2BAA2B,+BAKtC;AAEK,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAU,EAAE;IAChE,IAAI,IAAA,2BAAmB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,4BAAoB,KAAK,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;AACtG,CAAC,CAAC;AATW,QAAA,wBAAwB,4BASnC;AAEF,MAAM,gBAAgB,GAAG,CACvB,YAAqB,EACU,EAAE;IACjC,IACE,OAAO,YAAY,KAAK,QAAQ;QAChC,YAAY,KAAK,IAAI;QACrB,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAY,YAAY,CAAC,IAAI,CAAC;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAY,IAAI,CAAC,SAAS,CAAC;IAC1C,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,KAAK,IAAI;QAClB,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QACtB,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,EAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"githubGraphqlClient.js","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApiV3CheerioRestIssueRepository = exports.REQUIRED_CHECKS_CACHE_TTL_MS = exports.INCREMENTAL_FETCH_SKEW_BUFFER_MS = exports.FULL_ISSUE_FETCH_INTERVAL_MS = void 0;
|
|
3
|
+
exports.ApiV3CheerioRestIssueRepository = exports.graphqlMergeableFromRestMergeable = exports.REQUIRED_CHECKS_CACHE_TTL_MS = exports.INCREMENTAL_FETCH_SKEW_BUFFER_MS = exports.FULL_ISSUE_FETCH_INTERVAL_MS = void 0;
|
|
4
4
|
const gitHubRawUrl_1 = require("./gitHubRawUrl");
|
|
5
5
|
const ProjectIssuesCacheRepository_1 = require("../ProjectIssuesCacheRepository");
|
|
6
6
|
const BaseGitHubRepository_1 = require("../BaseGitHubRepository");
|
|
@@ -62,6 +62,31 @@ function isPullRequestFilesResponse(value) {
|
|
|
62
62
|
function isRecord(value) {
|
|
63
63
|
return typeof value === 'object' && value !== null;
|
|
64
64
|
}
|
|
65
|
+
function isRestPullRequestCiStatusResponse(value) {
|
|
66
|
+
if (!isRecord(value))
|
|
67
|
+
return false;
|
|
68
|
+
const head = value.head;
|
|
69
|
+
const base = value.base;
|
|
70
|
+
return (typeof value.html_url === 'string' &&
|
|
71
|
+
typeof value.state === 'string' &&
|
|
72
|
+
typeof value.draft === 'boolean' &&
|
|
73
|
+
(value.mergeable === null || typeof value.mergeable === 'boolean') &&
|
|
74
|
+
isRecord(head) &&
|
|
75
|
+
typeof head.ref === 'string' &&
|
|
76
|
+
typeof head.sha === 'string' &&
|
|
77
|
+
isRecord(base) &&
|
|
78
|
+
typeof base.ref === 'string');
|
|
79
|
+
}
|
|
80
|
+
const graphqlMergeableFromRestMergeable = (mergeable) => {
|
|
81
|
+
if (mergeable === true) {
|
|
82
|
+
return 'MERGEABLE';
|
|
83
|
+
}
|
|
84
|
+
if (mergeable === false) {
|
|
85
|
+
return 'CONFLICTING';
|
|
86
|
+
}
|
|
87
|
+
return 'UNKNOWN';
|
|
88
|
+
};
|
|
89
|
+
exports.graphqlMergeableFromRestMergeable = graphqlMergeableFromRestMergeable;
|
|
65
90
|
function isNullableString(value) {
|
|
66
91
|
return value === null || typeof value === 'string';
|
|
67
92
|
}
|
|
@@ -953,6 +978,68 @@ class ApiV3CheerioRestIssueRepository extends BaseGitHubRepository_1.BaseGitHubR
|
|
|
953
978
|
}
|
|
954
979
|
return this.buildRelatedPullRequestFromSlim(owner, repo, slimPullRequest);
|
|
955
980
|
};
|
|
981
|
+
this.fetchRestPullRequestCiStatus = async (owner, repo, prNumber, prUrl) => {
|
|
982
|
+
const maxAttempts = 3;
|
|
983
|
+
const retryDelayMilliseconds = 1000;
|
|
984
|
+
let lastPullRequest = null;
|
|
985
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
986
|
+
if (attempt > 0) {
|
|
987
|
+
await this.sleep(retryDelayMilliseconds);
|
|
988
|
+
}
|
|
989
|
+
const response = await this.fetchWithRateLimitRetry(() => fetch(`https://api.github.com/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/pulls/${prNumber}`, {
|
|
990
|
+
method: 'GET',
|
|
991
|
+
headers: {
|
|
992
|
+
Authorization: `Bearer ${this.ghToken}`,
|
|
993
|
+
Accept: 'application/vnd.github+json',
|
|
994
|
+
},
|
|
995
|
+
}));
|
|
996
|
+
if (response.status === 404) {
|
|
997
|
+
return null;
|
|
998
|
+
}
|
|
999
|
+
if (!response.ok) {
|
|
1000
|
+
const reason = await this.formatGitHubErrorWithStatus(response);
|
|
1001
|
+
throw new Error(`Failed to fetch pull request status for ${prUrl}: ${reason}`);
|
|
1002
|
+
}
|
|
1003
|
+
const body = await response.json();
|
|
1004
|
+
if (!isRestPullRequestCiStatusResponse(body)) {
|
|
1005
|
+
throw new Error(`Unexpected response shape when fetching pull request status for ${prUrl}`);
|
|
1006
|
+
}
|
|
1007
|
+
lastPullRequest = body;
|
|
1008
|
+
if (body.state !== 'open' || body.mergeable !== null) {
|
|
1009
|
+
return body;
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
return lastPullRequest;
|
|
1013
|
+
};
|
|
1014
|
+
this.getOpenPullRequestCiStatus = async (prUrl) => {
|
|
1015
|
+
const parsedUrl = this.parseIssueUrl(prUrl);
|
|
1016
|
+
if (!parsedUrl.isPr) {
|
|
1017
|
+
return null;
|
|
1018
|
+
}
|
|
1019
|
+
const { owner, repo, issueNumber: prNumber } = parsedUrl;
|
|
1020
|
+
const pullRequest = await this.fetchRestPullRequestCiStatus(owner, repo, prNumber, prUrl);
|
|
1021
|
+
if (!pullRequest || pullRequest.state !== 'open') {
|
|
1022
|
+
return null;
|
|
1023
|
+
}
|
|
1024
|
+
const requiredCheckNames = await this.getRequiredCheckNames(owner, repo, pullRequest.base.ref);
|
|
1025
|
+
const ciContexts = await this.getCommitCiContexts(owner, repo, pullRequest.head.sha);
|
|
1026
|
+
const status = this.computePrStatus(pullRequest.html_url, pullRequest.head.ref, {
|
|
1027
|
+
isDraft: pullRequest.draft,
|
|
1028
|
+
mergeable: (0, exports.graphqlMergeableFromRestMergeable)(pullRequest.mergeable),
|
|
1029
|
+
requiredCheckNames,
|
|
1030
|
+
ciContexts,
|
|
1031
|
+
reviewThreads: [],
|
|
1032
|
+
});
|
|
1033
|
+
return {
|
|
1034
|
+
url: status.url,
|
|
1035
|
+
isConflicted: status.isConflicted,
|
|
1036
|
+
mergeable: status.mergeable,
|
|
1037
|
+
isPassedAllCiJob: status.isPassedAllCiJob,
|
|
1038
|
+
isCiStateSuccess: status.isCiStateSuccess,
|
|
1039
|
+
isBranchOutOfDate: status.isBranchOutOfDate,
|
|
1040
|
+
missingRequiredCheckNames: status.missingRequiredCheckNames,
|
|
1041
|
+
};
|
|
1042
|
+
};
|
|
956
1043
|
// Resolves many pull requests with one GraphQL query per hundred instead of
|
|
957
1044
|
// one query per pull request. A URL this cannot settle is left out of the
|
|
958
1045
|
// returned map rather than mapped to null, so the caller falls back to
|