constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to get branch protection';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to get branch protection';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to update branch protection';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to update branch protection';
// Security: Sanitize error messages to prevent leaking sensitive data
// Security: Sanitize error messages to prevent leaking sensitive data
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to read file';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to read file';
// Security: Sanitize error messages to prevent leaking sensitive data
// Security: Sanitize error messages to prevent leaking sensitive data
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to write file';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to write file';
console.error(`[Fork] ${context} ✗ Ownership transfer event failed after all retries. Cleaning up repository and publishing deletion request.`);
forkLogger.error({failed: ownershipPublishResult.failed},'Ownership transfer event failed after all retries. Cleaning up repository and publishing deletion request.');
forkLogger.error({failed: deletionResult.failed},'Failed to publish deletion request');
}
}
consterrorDetails=`Fork is invalid without ownership proof. All relays failed: ${ownershipPublishResult.failed.map(f=>`${f.relay}: ${f.error}`).join('; ')}. Deletion request ${deletionResult.success.length>0?'published':'failed to publish'}.`;
consterrorDetails=`Fork is invalid without ownership proof. All relays failed: ${ownershipPublishResult.failed.map(f=>`${f.relay}: ${f.error}`).join('; ')}. Deletion request ${deletionResult.success.length>0?'published':'failed to publish'}.`;
// Security: Sanitize error messages to prevent leaking sensitive data
// Security: Sanitize error messages to prevent leaking sensitive data
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to fork repository';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to fork repository';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to get fork information';
constsanitizedError=errinstanceofError?err.message.replace(/nsec[0-9a-z]+/gi,'[REDACTED]').replace(/[0-9a-f]{64}/g,'[REDACTED]'):'Failed to get fork information';