修正内部文件服务的协议 #2

Merged
song.jun merged 2 commits from codex/artifact-http-internal-v4 into master 2026-07-22 20:50:57 +08:00
2 changed files with 28 additions and 4 deletions
Showing only changes of commit 7c8bad58f2 - Show all commits

View File

@@ -2694,9 +2694,21 @@ function getResultsServiceUrl() {
if (!resultsUrl) { if (!resultsUrl) {
throw new Error('Unable to get the ACTIONS_RESULTS_URL env variable'); throw new Error('Unable to get the ACTIONS_RESULTS_URL env variable');
} }
return new URL(resultsUrl).origin; const serviceUrl = new URL(resultsUrl);
if (serviceUrl.protocol === 'https:' && isDockerBridgeIPv4(serviceUrl.hostname)) {
serviceUrl.protocol = 'http:';
}
return serviceUrl.origin;
} }
exports.getResultsServiceUrl = getResultsServiceUrl; exports.getResultsServiceUrl = getResultsServiceUrl;
function isDockerBridgeIPv4(hostname) {
const octets = hostname.split('.').map(Number);
return (octets.length === 4 &&
octets.every(octet => Number.isInteger(octet) && octet >= 0 && octet <= 255) &&
octets[0] === 172 &&
octets[1] >= 16 &&
octets[1] <= 31);
}
function isGhes() { function isGhes() {
return false; return false;
} }

14
upload/dist/index.js vendored
View File

@@ -3019,9 +3019,21 @@ function getResultsServiceUrl() {
if (!resultsUrl) { if (!resultsUrl) {
throw new Error('Unable to get the ACTIONS_RESULTS_URL env variable'); throw new Error('Unable to get the ACTIONS_RESULTS_URL env variable');
} }
return new URL(resultsUrl).origin; const serviceUrl = new URL(resultsUrl);
if (serviceUrl.protocol === 'https:' && isDockerBridgeIPv4(serviceUrl.hostname)) {
serviceUrl.protocol = 'http:';
}
return serviceUrl.origin;
} }
exports.getResultsServiceUrl = getResultsServiceUrl; exports.getResultsServiceUrl = getResultsServiceUrl;
function isDockerBridgeIPv4(hostname) {
const octets = hostname.split('.').map(Number);
return (octets.length === 4 &&
octets.every(octet => Number.isInteger(octet) && octet >= 0 && octet <= 255) &&
octets[0] === 172 &&
octets[1] >= 16 &&
octets[1] <= 31);
}
function isGhes() { function isGhes() {
return false; return false;
} }