github-issue-tower-defence-management 1.153.2 → 1.153.3
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 +7 -0
- package/bin/adapter/repositories/githubGraphqlClient.js +2 -2
- package/bin/adapter/repositories/githubGraphqlClient.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/repositories/githubGraphqlClient.test.ts +23 -6
- package/src/adapter/repositories/githubGraphqlClient.ts +2 -1
- package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +3 -1
- package/types/adapter/repositories/githubGraphqlClient.d.ts +1 -1
- package/types/adapter/repositories/githubGraphqlClient.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.153.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.153.2...v1.153.3) (2026-08-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* open the GraphQL cost log line with the time the points were charged ([#1566](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1566)) ([f3e8a12](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/f3e8a12c8012df7b93de822fa0956b5a51c6672a)), closes [#1565](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1565)
|
|
7
|
+
|
|
1
8
|
## [1.153.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.153.1...v1.153.2) (2026-08-14)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -49,12 +49,12 @@ const extractRateLimit = (responseBody) => {
|
|
|
49
49
|
}
|
|
50
50
|
return { cost, remaining };
|
|
51
51
|
};
|
|
52
|
-
const logGithubGraphqlCost = (query, responseBody) => {
|
|
52
|
+
const logGithubGraphqlCost = (query, responseBody, now = () => new Date()) => {
|
|
53
53
|
const rateLimit = extractRateLimit(responseBody);
|
|
54
54
|
if (!rateLimit) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
console.log(
|
|
57
|
+
console.log(`${now().toISOString()} githubGraphqlClient: query=${(0, exports.extractGraphqlOperationName)(query)} cost=${rateLimit.cost} remaining=${rateLimit.remaining}`);
|
|
58
58
|
};
|
|
59
59
|
exports.logGithubGraphqlCost = logGithubGraphqlCost;
|
|
60
60
|
const postGithubGraphqlJson = async (params) => {
|
|
@@ -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;AAEK,MAAM,oBAAoB,GAAG,CAClC,KAAa,EACb,YAAqB,
|
|
1
|
+
{"version":3,"file":"githubGraphqlClient.js","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -119,12 +119,25 @@ describe('githubGraphqlClient', () => {
|
|
|
119
119
|
|
|
120
120
|
describe('logGithubGraphqlCost', () => {
|
|
121
121
|
it('logs one line with query name, cost and remaining', () => {
|
|
122
|
-
logGithubGraphqlCost(
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
logGithubGraphqlCost(
|
|
123
|
+
'query GetProjectItems { x }',
|
|
124
|
+
{ data: { rateLimit: { cost: 3, remaining: 4200 } } },
|
|
125
|
+
() => new Date('2026-08-14T09:00:00.000Z'),
|
|
126
|
+
);
|
|
125
127
|
expect(consoleLogSpy).toHaveBeenCalledTimes(1);
|
|
126
128
|
expect(consoleLogSpy).toHaveBeenCalledWith(
|
|
127
|
-
'githubGraphqlClient: query=GetProjectItems cost=3 remaining=4200',
|
|
129
|
+
'2026-08-14T09:00:00.000Z githubGraphqlClient: query=GetProjectItems cost=3 remaining=4200',
|
|
130
|
+
);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('opens the line with the time the cost was charged, so a point maps to a rate-limit window', () => {
|
|
134
|
+
logGithubGraphqlCost(
|
|
135
|
+
'query GetProjectItems { x }',
|
|
136
|
+
{ data: { rateLimit: { cost: 4, remaining: 4200 } } },
|
|
137
|
+
() => new Date('2026-08-14T23:45:12.345Z'),
|
|
138
|
+
);
|
|
139
|
+
expect(consoleLogSpy).toHaveBeenCalledWith(
|
|
140
|
+
'2026-08-14T23:45:12.345Z githubGraphqlClient: query=GetProjectItems cost=4 remaining=4200',
|
|
128
141
|
);
|
|
129
142
|
});
|
|
130
143
|
|
|
@@ -169,7 +182,9 @@ describe('githubGraphqlClient', () => {
|
|
|
169
182
|
expect(json.variables).toEqual({ id: 'x' });
|
|
170
183
|
expect(headers.Authorization).toBe('Bearer token-a');
|
|
171
184
|
expect(consoleLogSpy).toHaveBeenCalledWith(
|
|
172
|
-
|
|
185
|
+
expect.stringMatching(
|
|
186
|
+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z githubGraphqlClient: query=GetItem cost=1 remaining=4999$/,
|
|
187
|
+
),
|
|
173
188
|
);
|
|
174
189
|
});
|
|
175
190
|
|
|
@@ -233,7 +248,9 @@ describe('githubGraphqlClient', () => {
|
|
|
233
248
|
expect(sentBody.query).toContain(RATE_LIMIT_SELECTION);
|
|
234
249
|
expect(sentBody.variables).toEqual({ a: 1 });
|
|
235
250
|
expect(consoleLogSpy).toHaveBeenCalledWith(
|
|
236
|
-
|
|
251
|
+
expect.stringMatching(
|
|
252
|
+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z githubGraphqlClient: query=PullRequestStatus cost=2 remaining=4321$/,
|
|
253
|
+
),
|
|
237
254
|
);
|
|
238
255
|
});
|
|
239
256
|
|
|
@@ -65,13 +65,14 @@ const extractRateLimit = (
|
|
|
65
65
|
export const logGithubGraphqlCost = (
|
|
66
66
|
query: string,
|
|
67
67
|
responseBody: unknown,
|
|
68
|
+
now: () => Date = () => new Date(),
|
|
68
69
|
): void => {
|
|
69
70
|
const rateLimit = extractRateLimit(responseBody);
|
|
70
71
|
if (!rateLimit) {
|
|
71
72
|
return;
|
|
72
73
|
}
|
|
73
74
|
console.log(
|
|
74
|
-
|
|
75
|
+
`${now().toISOString()} githubGraphqlClient: query=${extractGraphqlOperationName(query)} cost=${rateLimit.cost} remaining=${rateLimit.remaining}`,
|
|
75
76
|
);
|
|
76
77
|
};
|
|
77
78
|
|
|
@@ -287,7 +287,9 @@ describe('GraphqlProjectItemRepository', () => {
|
|
|
287
287
|
try {
|
|
288
288
|
await repository.fetchProjectItems('test-project-id');
|
|
289
289
|
expect(consoleLogSpy).toHaveBeenCalledWith(
|
|
290
|
-
|
|
290
|
+
expect.stringMatching(
|
|
291
|
+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z githubGraphqlClient: query=GetProjectItems cost=3 remaining=4200$/,
|
|
292
|
+
),
|
|
291
293
|
);
|
|
292
294
|
} finally {
|
|
293
295
|
consoleLogSpy.mockRestore();
|
|
@@ -8,7 +8,7 @@ export type GithubGraphqlRateLimit = {
|
|
|
8
8
|
export declare const isMutationOperation: (query: string) => boolean;
|
|
9
9
|
export declare const extractGraphqlOperationName: (query: string) => string;
|
|
10
10
|
export declare const injectRateLimitSelection: (query: string) => string;
|
|
11
|
-
export declare const logGithubGraphqlCost: (query: string, responseBody: unknown) => void;
|
|
11
|
+
export declare const logGithubGraphqlCost: (query: string, responseBody: unknown, now?: () => Date) => void;
|
|
12
12
|
export declare const postGithubGraphqlJson: <T>(params: {
|
|
13
13
|
ghToken: string;
|
|
14
14
|
query: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"githubGraphqlClient.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAE3C,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,MAK3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,MASxD,CAAC;AAgCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,cAAc,OAAO,
|
|
1
|
+
{"version":3,"file":"githubGraphqlClient.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/githubGraphqlClient.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OACV,CAAC;AAE3C,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,MAK3D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,MASxD,CAAC;AAgCF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,cAAc,OAAO,EACrB,MAAK,MAAM,IAAuB,KACjC,IAQF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,CAAC,EAAE,QAAQ;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,KAAG,OAAO,CAAC,CAAC,CAgBZ,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,QAAQ,CAuBnB,CAAC"}
|