fix: make screenshot uploads retry-safe (#471)
CI / lint (pull_request) Successful in 56s
CI / build-release (pull_request) Successful in 5s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-10 09:54:56 +00:00
1 parent af86fc1e98
commit de596f397f
5 files changed
+190 -10

No files matched your search

+5 -1
View File
@@ -293,7 +293,11 @@
'api/v1/repos/' + repository + '/issues/' + encodeURIComponent(payload.number) + '/attachments',
{
method: 'POST',
headers: { Accept: 'application/json', 'Content-Type': 'application/json' },
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': payload.operation_id,
},
body: JSON.stringify({
filename: payload.filename,
content_type: payload.content_type,
+10
View File
@@ -11,9 +11,16 @@
function create(options) {
const readDataUrl = options.readDataUrl;
const upload = options.upload;
const createOperationId = options.createOperationId || (() => {
if (typeof globalThis !== 'undefined' && globalThis.crypto?.randomUUID) {
return globalThis.crypto.randomUUID();
}
return Date.now().toString(36) + '-' + Math.random().toString(36).slice(2);
});
let selected = null;
let confirmed = null;
let serialized = null;
let operationId = null;
function select(file) {
if (!file || !IMAGE_TYPES.has(file.type)) {
@@ -25,6 +32,7 @@
selected = file;
confirmed = null;
serialized = null;
operationId = createOperationId();
return state();
}
@@ -32,6 +40,7 @@
selected = null;
confirmed = null;
serialized = null;
operationId = null;
}
function restore(value) {
@@ -80,6 +89,7 @@
filename: attachment.filename,
content_type: attachment.contentType,
data: attachment.data,
operation_id: operationId,
});
if (!confirmed || typeof confirmed.markdown !== 'string' || !confirmed.markdown) {
confirmed = null;