@gitkraken/core-gitlens 0.3.0 → 0.3.1
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 +8 -1
- package/dist/git/cache.d.ts +12 -6
- package/dist/git/cache.d.ts.map +1 -1
- package/dist/git/cache.js +40 -39
- package/dist/git/cache.js.map +1 -1
- package/dist/git/context.d.ts +19 -0
- package/dist/git/context.d.ts.map +1 -1
- package/dist/git/context.js.map +1 -1
- package/dist/git/features.d.ts +1 -1
- package/dist/git/features.d.ts.map +1 -1
- package/dist/git/features.js +1 -0
- package/dist/git/features.js.map +1 -1
- package/dist/git/models/graph.d.ts +96 -0
- package/dist/git/models/graph.d.ts.map +1 -1
- package/dist/git/models/graph.js +24 -1
- package/dist/git/models/graph.js.map +1 -1
- package/dist/git/models/remoteProvider.d.ts +1 -0
- package/dist/git/models/remoteProvider.d.ts.map +1 -1
- package/dist/git/models/remoteProvider.js.map +1 -1
- package/dist/git/models/repository.d.ts +21 -12
- package/dist/git/models/repository.d.ts.map +1 -1
- package/dist/git/models/repository.js +70 -84
- package/dist/git/models/repository.js.map +1 -1
- package/dist/git/models/statusFile.d.ts +9 -0
- package/dist/git/models/statusFile.d.ts.map +1 -1
- package/dist/git/models/statusFile.js +11 -0
- package/dist/git/models/statusFile.js.map +1 -1
- package/dist/git/providers/commits.d.ts +4 -0
- package/dist/git/providers/commits.d.ts.map +1 -1
- package/dist/git/providers/config.d.ts +1 -3
- package/dist/git/providers/config.d.ts.map +1 -1
- package/dist/git/providers/operations.d.ts +39 -13
- package/dist/git/providers/operations.d.ts.map +1 -1
- package/dist/git/remotes/custom.d.ts +2 -0
- package/dist/git/remotes/custom.d.ts.map +1 -1
- package/dist/git/remotes/custom.js +20 -0
- package/dist/git/remotes/custom.js.map +1 -1
- package/dist/git/utils/contributor.utils.d.ts +3 -0
- package/dist/git/utils/contributor.utils.d.ts.map +1 -1
- package/dist/git/utils/contributor.utils.js +22 -0
- package/dist/git/utils/contributor.utils.js.map +1 -1
- package/dist/git/utils/reachability.utils.d.ts +37 -0
- package/dist/git/utils/reachability.utils.d.ts.map +1 -0
- package/dist/git/utils/reachability.utils.js +96 -0
- package/dist/git/utils/reachability.utils.js.map +1 -0
- package/dist/git/watching/watchService.d.ts +4 -2
- package/dist/git/watching/watchService.d.ts.map +1 -1
- package/dist/git/watching/watchService.js +8 -3
- package/dist/git/watching/watchService.js.map +1 -1
- package/dist/git/watching/watchSession.d.ts +14 -12
- package/dist/git/watching/watchSession.d.ts.map +1 -1
- package/dist/git/watching/watchSession.js +56 -55
- package/dist/git/watching/watchSession.js.map +1 -1
- package/dist/git-cli/providers/branches.d.ts.map +1 -1
- package/dist/git-cli/providers/branches.js +1 -0
- package/dist/git-cli/providers/branches.js.map +1 -1
- package/dist/git-cli/providers/commits.d.ts +1 -0
- package/dist/git-cli/providers/commits.d.ts.map +1 -1
- package/dist/git-cli/providers/commits.js +12 -0
- package/dist/git-cli/providers/commits.js.map +1 -1
- package/dist/git-cli/providers/config.d.ts +8 -4
- package/dist/git-cli/providers/config.d.ts.map +1 -1
- package/dist/git-cli/providers/config.js +62 -39
- package/dist/git-cli/providers/config.js.map +1 -1
- package/dist/git-cli/providers/diff.d.ts.map +1 -1
- package/dist/git-cli/providers/diff.js +1 -1
- package/dist/git-cli/providers/diff.js.map +1 -1
- package/dist/git-cli/providers/graph.d.ts.map +1 -1
- package/dist/git-cli/providers/graph.js +132 -14
- package/dist/git-cli/providers/graph.js.map +1 -1
- package/dist/git-cli/providers/operations.d.ts +6 -5
- package/dist/git-cli/providers/operations.d.ts.map +1 -1
- package/dist/git-cli/providers/operations.js +97 -95
- package/dist/git-cli/providers/operations.js.map +1 -1
- package/dist/git-cli/providers/stash.d.ts.map +1 -1
- package/dist/git-cli/providers/stash.js +20 -2
- package/dist/git-cli/providers/stash.js.map +1 -1
- package/dist/git-cli/providers/status.d.ts.map +1 -1
- package/dist/git-cli/providers/status.js +5 -2
- package/dist/git-cli/providers/status.js.map +1 -1
- package/dist/ipc/discovery.d.ts +22 -0
- package/dist/ipc/discovery.d.ts.map +1 -1
- package/dist/ipc/discovery.js +111 -2
- package/dist/ipc/discovery.js.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts +73 -20
- package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -1
- package/dist/plus/agents/providers/claudeCodeProvider.js +394 -88
- package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -1
- package/dist/plus/agents/types.d.ts +62 -11
- package/dist/plus/agents/types.d.ts.map +1 -1
- package/dist/plus/ai/models/model.d.ts +1 -1
- package/dist/plus/ai/models/model.d.ts.map +1 -1
- package/dist/plus/ai/models/model.js.map +1 -1
- package/dist/plus/ai/models/provider.d.ts +3 -0
- package/dist/plus/ai/models/provider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js +4 -1
- package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +4 -3
- package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -6
- package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
- package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
- package/dist/plus/ai/utils/ai.utils.js +2 -0
- package/dist/plus/ai/utils/ai.utils.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +2 -0
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +93 -6
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/providers/github/refs.js +1 -1
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +6 -0
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/debounce.js +1 -1
- package/dist/utils/iterable.d.ts +7 -1
- package/dist/utils/iterable.d.ts.map +1 -1
- package/dist/utils/iterable.js +12 -4
- package/dist/utils/iterable.js.map +1 -1
- package/dist/utils/object.d.ts +22 -1
- package/dist/utils/object.d.ts.map +1 -1
- package/dist/utils/object.js +56 -3
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/paging.js +14 -15
- package/dist/utils/paging.js.map +1 -1
- package/dist/utils/promiseCache.d.ts.map +1 -1
- package/dist/utils/promiseCache.js +12 -4
- package/dist/utils/promiseCache.js.map +1 -1
- package/dist/utils/string.js +1 -1
- package/package.json +1 -1
- package/src/git/cache.ts +58 -70
- package/src/git/context.ts +21 -0
- package/src/git/features.ts +2 -0
- package/src/git/models/graph.ts +97 -0
- package/src/git/models/remoteProvider.ts +1 -0
- package/src/git/models/repository.ts +84 -93
- package/src/git/models/statusFile.ts +12 -0
- package/src/git/providers/commits.ts +4 -0
- package/src/git/providers/config.ts +1 -5
- package/src/git/providers/operations.ts +42 -22
- package/src/git/remotes/custom.ts +23 -0
- package/src/git/utils/contributor.utils.ts +24 -0
- package/src/git/utils/reachability.utils.ts +109 -0
- package/src/git/watching/watchService.ts +9 -4
- package/src/git/watching/watchSession.ts +61 -55
- package/src/git-cli/providers/branches.ts +1 -0
- package/src/git-cli/providers/commits.ts +24 -0
- package/src/git-cli/providers/config.ts +63 -49
- package/src/git-cli/providers/diff.ts +2 -1
- package/src/git-cli/providers/graph.ts +145 -14
- package/src/git-cli/providers/operations.ts +118 -130
- package/src/git-cli/providers/stash.ts +20 -2
- package/src/git-cli/providers/status.ts +11 -3
- package/src/ipc/discovery.ts +132 -2
- package/src/plus/agents/providers/claudeCodeProvider.ts +430 -90
- package/src/plus/agents/types.ts +59 -11
- package/src/plus/ai/models/model.ts +1 -0
- package/src/plus/ai/models/provider.ts +7 -1
- package/src/plus/ai/providers/gitkrakenProvider.ts +4 -0
- package/src/plus/ai/providers/openAICompatibleProviderBase.ts +21 -4
- package/src/plus/ai/utils/ai.utils.ts +2 -0
- package/src/plus/git-github/api/github.ts +120 -8
- package/src/plus/git-github/providers/github/refs.ts +1 -1
- package/src/utils/date.ts +5 -0
- package/src/utils/debounce.ts +1 -1
- package/src/utils/iterable.ts +14 -3
- package/src/utils/object.ts +55 -4
- package/src/utils/paging.ts +14 -14
- package/src/utils/promiseCache.ts +24 -16
- package/src/utils/string.ts +1 -1
|
@@ -91,7 +91,10 @@ export class OpenAICompatibleProviderBase {
|
|
|
91
91
|
url: keyUrl,
|
|
92
92
|
}, silent);
|
|
93
93
|
}
|
|
94
|
-
getHeaders(_action, apiKey, _model, _url
|
|
94
|
+
getHeaders(_action, apiKey, _model, _url,
|
|
95
|
+
// Deliberately unused here: only the GitKraken provider forwards the conversation ID (as
|
|
96
|
+
// `GK-Conversation-ID`); it must never reach third-party APIs.
|
|
97
|
+
_conversationId) {
|
|
95
98
|
return {
|
|
96
99
|
Accept: 'application/json',
|
|
97
100
|
'Content-Type': 'application/json',
|
|
@@ -103,7 +106,7 @@ export class OpenAICompatibleProviderBase {
|
|
|
103
106
|
try {
|
|
104
107
|
const scope = __addDisposableResource(env_1, maybeStartScopedLogger(`${getLoggableName(this)}.sendRequest`), false);
|
|
105
108
|
try {
|
|
106
|
-
const result = await this.fetch(action, model, apiKey, getMessages, options.modelOptions, options.signal);
|
|
109
|
+
const result = await this.fetch(action, model, apiKey, getMessages, options.modelOptions, options.signal, options.conversationId);
|
|
107
110
|
return result;
|
|
108
111
|
}
|
|
109
112
|
catch (ex) {
|
|
@@ -128,7 +131,7 @@ export class OpenAICompatibleProviderBase {
|
|
|
128
131
|
__disposeResources(env_1);
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
|
-
async fetch(action, model, apiKey, messages, modelOptions, signal) {
|
|
134
|
+
async fetch(action, model, apiKey, messages, modelOptions, signal, conversationId) {
|
|
132
135
|
let retries = 0;
|
|
133
136
|
let maxInputTokens = model.maxTokens.input;
|
|
134
137
|
while (true) {
|
|
@@ -141,7 +144,7 @@ export class OpenAICompatibleProviderBase {
|
|
|
141
144
|
: modelOptions?.outputTokens,
|
|
142
145
|
temperature: getValidatedTemperature(model, modelOptions?.temperature ?? model.temperature, this.context.defaultTemperature),
|
|
143
146
|
};
|
|
144
|
-
const rsp = await this.fetchCore(action, model, apiKey, request, signal);
|
|
147
|
+
const rsp = await this.fetchCore(action, model, apiKey, request, signal, conversationId);
|
|
145
148
|
if (!rsp.ok) {
|
|
146
149
|
const result = await this.handleFetchFailure(rsp, action, model, retries, maxInputTokens);
|
|
147
150
|
if (result.retry) {
|
|
@@ -195,14 +198,14 @@ export class OpenAICompatibleProviderBase {
|
|
|
195
198
|
}
|
|
196
199
|
throw new Error(`(${this.name}) ${rsp.status}: ${json?.error?.message || rsp.statusText}`);
|
|
197
200
|
}
|
|
198
|
-
async fetchCore(action, model, apiKey, request, signal) {
|
|
201
|
+
async fetchCore(action, model, apiKey, request, signal, conversationId) {
|
|
199
202
|
const url = this.getUrl(model);
|
|
200
203
|
if (!url) {
|
|
201
204
|
throw new Error(`(${this.name}) ${getActionName(action)}: No URL configured`);
|
|
202
205
|
}
|
|
203
206
|
try {
|
|
204
207
|
return await this.context.fetch(url, {
|
|
205
|
-
headers: await this.getHeaders(action, apiKey, model, url),
|
|
208
|
+
headers: await this.getHeaders(action, apiKey, model, url, conversationId),
|
|
206
209
|
method: 'POST',
|
|
207
210
|
body: JSON.stringify(request),
|
|
208
211
|
signal: signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAICompatibleProviderBase.js","sourceRoot":"","sources":["../../src/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGxG,MAAM,OAAgB,4BAA4B;IAClB;IAA/B,YAA+B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE7D,OAAO,KAAU,CAAC;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,UAAU,CAAC,MAAe;QAC/B,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,MAAM,IAAI,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACb,IAAI,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE1C,MAAM,EAAE,CAAC;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QAEpC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAC5B;YACC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;YAChD,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;YACxE,GAAG,EAAE,MAAM;SACX,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAMS,UAAU,CACnB,OAAgB,EAChB,MAAc,EACd,MAAkB,EAClB,IAAY;
|
|
1
|
+
{"version":3,"file":"openAICompatibleProviderBase.js","sourceRoot":"","sources":["../../src/providers/openAICompatibleProviderBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.utils.d.ts","sourceRoot":"","sources":["../../src/utils/ai.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ai.utils.d.ts","sourceRoot":"","sources":["../../src/utils/ai.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAyB1D;AAED,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,OAAO,EACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,EAChC,kBAAkB,CAAC,EAAE,MAAM,GACzB,MAAM,GAAG,SAAS,CAOpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAuBrH"}
|
|
@@ -18,6 +18,8 @@ export function getActionName(action) {
|
|
|
18
18
|
return 'Create Pull Request Details (Preview)';
|
|
19
19
|
case 'generate-commits':
|
|
20
20
|
return 'Generate Commits (Preview)';
|
|
21
|
+
case 'conflict-resolution':
|
|
22
|
+
return 'Resolve Conflicts with AI (Preview)';
|
|
21
23
|
case 'generate-searchQuery':
|
|
22
24
|
return 'Generate Search Query (Preview)';
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.utils.js","sourceRoot":"","sources":["../../src/utils/ai.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,MAAoB;IACjD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,iBAAiB;YACrB,OAAO,iBAAiB,CAAC;QAC1B,KAAK,gBAAgB;YACpB,OAAO,gBAAgB,CAAC;QACzB,KAAK,wBAAwB;YAC5B,OAAO,yBAAyB,CAAC;QAClC,KAAK,uBAAuB;YAC3B,OAAO,wBAAwB,CAAC;QACjC,KAAK,oBAAoB;YACxB,OAAO,8BAA8B,CAAC;QACvC,KAAK,4BAA4B;YAChC,OAAO,4BAA4B,CAAC;QACrC,KAAK,gCAAgC;YACpC,OAAO,gCAAgC,CAAC;QACzC,KAAK,6BAA6B;YACjC,OAAO,uCAAuC,CAAC;QAChD,KAAK,kBAAkB;YACtB,OAAO,4BAA4B,CAAC;QACrC,KAAK,sBAAsB;YAC1B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,MAAM,UAAU,uBAAuB,CACtC,KAAc,EACd,gBAAgC,EAChC,kBAA2B;IAE3B,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChD,4DAA4D;IAC5D,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,cAAsB,EAAE,UAAkB,EAAE,eAAwB;IAC5G,wEAAwE;IACxE,IAAI,eAAe,IAAI,IAAI,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,eAAe,GAAG,cAAc,CAAC;QACtD,uEAAuE;QACvE,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,gEAAgE;IAChE,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC;YACL,kDAAkD;YAClD,OAAO,cAAc,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC;YACL,sCAAsC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC;QACP;YACC,wCAAwC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"ai.utils.js","sourceRoot":"","sources":["../../src/utils/ai.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,MAAoB;IACjD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,iBAAiB;YACrB,OAAO,iBAAiB,CAAC;QAC1B,KAAK,gBAAgB;YACpB,OAAO,gBAAgB,CAAC;QACzB,KAAK,wBAAwB;YAC5B,OAAO,yBAAyB,CAAC;QAClC,KAAK,uBAAuB;YAC3B,OAAO,wBAAwB,CAAC;QACjC,KAAK,oBAAoB;YACxB,OAAO,8BAA8B,CAAC;QACvC,KAAK,4BAA4B;YAChC,OAAO,4BAA4B,CAAC;QACrC,KAAK,gCAAgC;YACpC,OAAO,gCAAgC,CAAC;QACzC,KAAK,6BAA6B;YACjC,OAAO,uCAAuC,CAAC;QAChD,KAAK,kBAAkB;YACtB,OAAO,4BAA4B,CAAC;QACrC,KAAK,qBAAqB;YACzB,OAAO,qCAAqC,CAAC;QAC9C,KAAK,sBAAsB;YAC1B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,MAAM,UAAU,uBAAuB,CACtC,KAAc,EACd,gBAAgC,EAChC,kBAA2B;IAE3B,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChD,4DAA4D;IAC5D,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,gBAAgB,CAAC;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,cAAsB,EAAE,UAAkB,EAAE,eAAwB;IAC5G,wEAAwE;IACxE,IAAI,eAAe,IAAI,IAAI,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,eAAe,GAAG,cAAc,CAAC;QACtD,uEAAuE;QACvE,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,gEAAgE;IAChE,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC;YACL,kDAAkD;YAClD,OAAO,cAAc,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC;YACL,sCAAsC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC;QACP;YACC,wCAAwC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC"}
|
|
@@ -146,6 +146,8 @@ export declare class GitHubApi {
|
|
|
146
146
|
}> | undefined>;
|
|
147
147
|
private _enterpriseVersions;
|
|
148
148
|
private getEnterpriseVersion;
|
|
149
|
+
private requestWithRetries;
|
|
150
|
+
private delayWithAbort;
|
|
149
151
|
private readonly _pendingGraphQL;
|
|
150
152
|
private graphql;
|
|
151
153
|
private request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/api/github.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAC;AAQnE,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAW5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EACX,WAAW,EAEX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EAGjB,iBAAiB,EAIjB,sBAAsB,EACtB,SAAS,EACT,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,UAAU,iBAAiB;IAC1B,uBAAuB,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,IAAI,CAAA;KAAE,CAAC;CAC7D;
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/api/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,42 @@ import { fromString, satisfies } from '../../../utils/version.js';
|
|
|
24
24
|
import { fromGitHubIssue, fromGitHubIssueOrPullRequestState, fromGitHubPullRequest, fromGitHubPullRequestLite, } from '../models.js';
|
|
25
25
|
const emptyPagedResult = Object.freeze({ values: [] });
|
|
26
26
|
const emptyBlameResult = Object.freeze({ ranges: [] });
|
|
27
|
+
// Transient gateway/network failures (e.g. an upstream `502 Bad Gateway`) are worth a few quick
|
|
28
|
+
// retries before surfacing to the caller. octokit provides no built-in retry for the standalone
|
|
29
|
+
// `request`/`graphql` functions we use (its retry/throttle plugins only attach to the `Octokit`
|
|
30
|
+
// class), so we retry here — but only for idempotent reads (REST GET/HEAD, GraphQL queries),
|
|
31
|
+
// never for mutations.
|
|
32
|
+
const maxRequestRetries = 2;
|
|
33
|
+
const requestRetryBaseDelay = 300; // ms
|
|
34
|
+
const requestRetryMaxDelay = 2000; // ms
|
|
35
|
+
function isRetryableTransientError(ex) {
|
|
36
|
+
// An aborted request is rethrown as the original `AbortError` (not a `RequestError`), so it is
|
|
37
|
+
// excluded here. octokit maps a fetch/network failure to a `RequestError` with status 500 and
|
|
38
|
+
// no response — those, along with real gateway statuses, are transient and safe to retry.
|
|
39
|
+
if (!(ex instanceof RequestError))
|
|
40
|
+
return false;
|
|
41
|
+
switch (ex.status) {
|
|
42
|
+
case 502: // Bad Gateway
|
|
43
|
+
case 503: // Service Unavailable
|
|
44
|
+
case 504: // Gateway Timeout
|
|
45
|
+
return true;
|
|
46
|
+
case 500: // Internal Server Error — only the network-failure variant (no response)
|
|
47
|
+
return ex.response == null;
|
|
48
|
+
default:
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function getRequestRetryDelay(attempt) {
|
|
53
|
+
// Exponential backoff with equal jitter, capped — spreads retries so a brief upstream blip
|
|
54
|
+
// isn't hammered by every in-flight request landing on the same schedule.
|
|
55
|
+
const backoff = Math.min(requestRetryMaxDelay, requestRetryBaseDelay * 2 ** (attempt - 1));
|
|
56
|
+
return Math.round(backoff / 2 + Math.random() * (backoff / 2));
|
|
57
|
+
}
|
|
58
|
+
// Matches a GraphQL document whose operation is definitely a read query — the `query` keyword as
|
|
59
|
+
// the first significant token, after any leading whitespace or `#` comment lines. We retry only
|
|
60
|
+
// when this matches; a mutation (even one prefixed by a comment), a subscription, or anything we
|
|
61
|
+
// can't classify is left non-retryable so a transient failure can never re-run a mutation.
|
|
62
|
+
const graphqlReadQueryRegex = /^(?:\s|#[^\n]*\n?)*query\b/;
|
|
27
63
|
const gqlIssueOrPullRequestFragment = `
|
|
28
64
|
closed
|
|
29
65
|
closedAt
|
|
@@ -1693,6 +1729,46 @@ export class GitHubApi {
|
|
|
1693
1729
|
this._enterpriseVersions.set(accessToken, version);
|
|
1694
1730
|
return version ?? undefined;
|
|
1695
1731
|
}
|
|
1732
|
+
// Runs `execute`, retrying transient gateway/network failures with backoff. `retryable` gates
|
|
1733
|
+
// retries to idempotent reads; `signal` lets an in-flight cancellation abort the backoff wait.
|
|
1734
|
+
async requestWithRetries(execute, retryable, signal, scope) {
|
|
1735
|
+
let attempt = 0;
|
|
1736
|
+
while (true) {
|
|
1737
|
+
try {
|
|
1738
|
+
return await execute();
|
|
1739
|
+
}
|
|
1740
|
+
catch (ex) {
|
|
1741
|
+
if (!retryable || attempt >= maxRequestRetries || signal?.aborted || !isRetryableTransientError(ex)) {
|
|
1742
|
+
throw ex;
|
|
1743
|
+
}
|
|
1744
|
+
attempt++;
|
|
1745
|
+
const delay = getRequestRetryDelay(attempt);
|
|
1746
|
+
scope?.warn(`Transient request failure (status ${ex.status}); retrying ${attempt}/${maxRequestRetries} in ${delay}ms`);
|
|
1747
|
+
await this.delayWithAbort(delay, signal);
|
|
1748
|
+
// Bail rather than retry if we were cancelled while waiting
|
|
1749
|
+
if (signal?.aborted)
|
|
1750
|
+
throw new CancellationError();
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
}
|
|
1754
|
+
delayWithAbort(ms, signal) {
|
|
1755
|
+
return new Promise(resolve => {
|
|
1756
|
+
if (signal?.aborted) {
|
|
1757
|
+
resolve();
|
|
1758
|
+
return;
|
|
1759
|
+
}
|
|
1760
|
+
let timer;
|
|
1761
|
+
const onAbort = () => {
|
|
1762
|
+
clearTimeout(timer);
|
|
1763
|
+
resolve();
|
|
1764
|
+
};
|
|
1765
|
+
timer = setTimeout(() => {
|
|
1766
|
+
signal?.removeEventListener('abort', onAbort);
|
|
1767
|
+
resolve();
|
|
1768
|
+
}, ms);
|
|
1769
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
1770
|
+
});
|
|
1771
|
+
}
|
|
1696
1772
|
// Inflight dedupe: identical concurrent GraphQL requests share a single promise
|
|
1697
1773
|
// to cut redundant traffic during graph/details enrichment bursts.
|
|
1698
1774
|
_pendingGraphQL = new Map();
|
|
@@ -1729,7 +1805,10 @@ export class GitHubApi {
|
|
|
1729
1805
|
request: { ...variables?.request, signal: aborter.signal },
|
|
1730
1806
|
};
|
|
1731
1807
|
}
|
|
1732
|
-
|
|
1808
|
+
// Retry transient gateway/network failures, but only confirmed read queries — never
|
|
1809
|
+
// mutations (re-running one isn't idempotent)
|
|
1810
|
+
const retryable = graphqlReadQueryRegex.test(query);
|
|
1811
|
+
return await this.requestWithRetries(() => this.config.wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () => this.getDefaults(accessToken, graphql)(query, variables)), retryable, aborter?.signal, scope);
|
|
1733
1812
|
}
|
|
1734
1813
|
catch (ex) {
|
|
1735
1814
|
if (ex instanceof GraphqlResponseError) {
|
|
@@ -1768,25 +1847,33 @@ export class GitHubApi {
|
|
|
1768
1847
|
const promise = run();
|
|
1769
1848
|
this._pendingGraphQL.set(dedupeKey, promise);
|
|
1770
1849
|
// Clear from the inflight map once the promise settles — successes and failures both
|
|
1771
|
-
// clear, so failed requests don't poison subsequent retries.
|
|
1772
|
-
|
|
1850
|
+
// clear, so failed requests don't poison subsequent retries. Use `then(cleanup, cleanup)`
|
|
1851
|
+
// rather than `finally` so a rejected request doesn't spawn an orphaned (unhandled) promise;
|
|
1852
|
+
// the real caller still receives the rejection via the returned `promise`.
|
|
1853
|
+
const cleanup = () => {
|
|
1773
1854
|
if (this._pendingGraphQL.get(dedupeKey) === promise) {
|
|
1774
1855
|
this._pendingGraphQL.delete(dedupeKey);
|
|
1775
1856
|
}
|
|
1776
|
-
}
|
|
1857
|
+
};
|
|
1858
|
+
promise.then(cleanup, cleanup);
|
|
1777
1859
|
return promise;
|
|
1778
1860
|
}
|
|
1779
1861
|
async request(provider, token, route, options, scope, cancellation) {
|
|
1780
1862
|
const { accessToken } = token;
|
|
1781
1863
|
try {
|
|
1864
|
+
let signal;
|
|
1782
1865
|
if (cancellation != null) {
|
|
1783
1866
|
if (cancellation.isCancellationRequested)
|
|
1784
1867
|
throw new CancellationError();
|
|
1785
1868
|
const aborter = new AbortController();
|
|
1786
1869
|
cancellation.onCancellationRequested(() => aborter.abort());
|
|
1787
|
-
|
|
1870
|
+
signal = aborter.signal;
|
|
1871
|
+
options = { ...options, request: { ...options?.request, signal: signal } };
|
|
1788
1872
|
}
|
|
1789
|
-
|
|
1873
|
+
// Retry transient gateway/network failures on idempotent reads only
|
|
1874
|
+
const method = route.split(' ', 1)[0].toUpperCase();
|
|
1875
|
+
const retryable = method === 'GET' || method === 'HEAD';
|
|
1876
|
+
return (await this.requestWithRetries(() => this.config.wrapForForcedInsecureSSL(provider?.getIgnoreSSLErrors() ?? false, () => this.getDefaults(accessToken, request)(route, options)), retryable, signal, scope));
|
|
1790
1877
|
}
|
|
1791
1878
|
catch (ex) {
|
|
1792
1879
|
if (ex instanceof RequestError || ex.name === 'AbortError') {
|