mirror of
https://github.com/docker/login-action.git
synced 2026-10-23 23:03:07 +01:00
use registry hosts for scoped credentials
Parse registry URLs so scoped ECR credentials use the same config directory for login, logout, and Buildx lookup. Preserve explicit default ports. Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
@@ -77,8 +77,11 @@ export function scopeToConfigDir(registry: string, scope?: string): string {
|
||||
if (scopeDisabled() || !scope || scope === '') {
|
||||
return '';
|
||||
}
|
||||
const schemeEnd = registry.indexOf('://');
|
||||
// A neutral scheme preserves explicit ports, including HTTP(S) default ports.
|
||||
const registryHost = schemeEnd === -1 ? registry : new URL(`registry://${registry.slice(schemeEnd + 3)}`).host;
|
||||
const configRoot = path.resolve(Buildx.configDir, 'config');
|
||||
const registryDir = path.resolve(configRoot, registry === 'docker.io' ? 'registry-1.docker.io' : registry);
|
||||
const registryDir = path.resolve(configRoot, registryHost === 'docker.io' ? 'registry-1.docker.io' : registryHost);
|
||||
if (!isChildPath(configRoot, registryDir)) {
|
||||
throw new Error(`Invalid registry '${registry}': resolved config path escapes the Buildx config directory`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user