From 0a7f9346c459404e8e0cf34e0774e8a6a423dd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Kadir=20Y=C3=BCcel?= Date: Tue, 21 Jan 2025 10:42:30 +0300 Subject: [PATCH 1/5] feat: add authToken cli option --- typescript/cli/cli.ts | 2 ++ typescript/cli/src/commands/options.ts | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/typescript/cli/cli.ts b/typescript/cli/cli.ts index 1485a1ab9f..405e4e7422 100644 --- a/typescript/cli/cli.ts +++ b/typescript/cli/cli.ts @@ -13,6 +13,7 @@ import { hookCommand } from './src/commands/hook.js'; import { ismCommand } from './src/commands/ism.js'; import { disableProxyCommandOption, + githubAuthTokenOption, keyCommandOption, logFormatCommandOption, logLevelCommandOption, @@ -44,6 +45,7 @@ try { .option('log', logFormatCommandOption) .option('verbosity', logLevelCommandOption) .option('registry', registryUriCommandOption) + .option('authToken', githubAuthTokenOption) .option('overrides', overrideRegistryUriCommandOption) .option('key', keyCommandOption) .option('disableProxy', disableProxyCommandOption) diff --git a/typescript/cli/src/commands/options.ts b/typescript/cli/src/commands/options.ts index baf0fa8472..f430d61493 100644 --- a/typescript/cli/src/commands/options.ts +++ b/typescript/cli/src/commands/options.ts @@ -32,6 +32,13 @@ export const registryUriCommandOption: Options = { default: DEFAULT_GITHUB_REGISTRY, }; +export const githubAuthTokenOption: Options = { + type: 'string', + description: 'Github auth token for accessing registry repository', + demandOption: false, + alias: 'authToken', +}; + export const overrideRegistryUriCommandOption: Options = { type: 'string', description: 'Path to a local registry to override the default registry', From 3e7e523589e54565c12cc28241815fde2d54fe9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Kadir=20Y=C3=BCcel?= Date: Tue, 21 Jan 2025 10:44:20 +0300 Subject: [PATCH 2/5] feat: utilize authtoken for Github Registry --- typescript/cli/src/context/context.ts | 19 +++++++++++++++++-- typescript/cli/src/context/types.ts | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/typescript/cli/src/context/context.ts b/typescript/cli/src/context/context.ts index d3bb47d3a9..8e61a45e02 100644 --- a/typescript/cli/src/context/context.ts +++ b/typescript/cli/src/context/context.ts @@ -45,6 +45,7 @@ export async function contextMiddleware(argv: Record) { disableProxy: argv.disableProxy, skipConfirmation: argv.yes, strategyPath: argv.strategy, + authToken: argv.authToken, }; if (!isDryRun && settings.fromAddress) throw new Error( @@ -106,8 +107,14 @@ export async function getContext({ skipConfirmation, disableProxy = false, strategyPath, + authToken, }: ContextSettings): Promise { - const registry = getRegistry(registryUri, registryOverrideUri, !disableProxy); + const registry = getRegistry( + registryUri, + registryOverrideUri, + !disableProxy, + authToken, + ); //Just for backward compatibility let signerAddress: string | undefined = undefined; @@ -143,10 +150,16 @@ export async function getDryRunContext( fromAddress, skipConfirmation, disableProxy = false, + authToken, }: ContextSettings, chain?: ChainName, ): Promise { - const registry = getRegistry(registryUri, registryOverrideUri, !disableProxy); + const registry = getRegistry( + registryUri, + registryOverrideUri, + !disableProxy, + authToken, + ); const chainMetadata = await registry.getMetadata(); if (!chain) { @@ -192,6 +205,7 @@ function getRegistry( primaryRegistryUri: string, overrideRegistryUri: string, enableProxy: boolean, + authToken?: string, ): IRegistry { const logger = rootLogger.child({ module: 'MergedRegistry' }); const registries = [primaryRegistryUri, overrideRegistryUri] @@ -203,6 +217,7 @@ function getRegistry( return new GithubRegistry({ uri, logger: childLogger, + authToken, proxyUrl: enableProxy && isCanonicalRepoUrl(uri) ? PROXY_DEPLOYED_URL diff --git a/typescript/cli/src/context/types.ts b/typescript/cli/src/context/types.ts index c320ff3cac..f507939b51 100644 --- a/typescript/cli/src/context/types.ts +++ b/typescript/cli/src/context/types.ts @@ -18,6 +18,7 @@ export interface ContextSettings { disableProxy?: boolean; skipConfirmation?: boolean; strategyPath?: string; + authToken?: string; } export interface CommandContext { From c703cd6927584dee4d89d7f04afe01418214b057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Kadir=20Y=C3=BCcel?= Date: Tue, 21 Jan 2025 10:50:54 +0300 Subject: [PATCH 3/5] docs(changeset): feat: support github auth token for authenticated registries --- .changeset/calm-hounds-hammer.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/calm-hounds-hammer.md diff --git a/.changeset/calm-hounds-hammer.md b/.changeset/calm-hounds-hammer.md new file mode 100644 index 0000000000..6b718e3d1e --- /dev/null +++ b/.changeset/calm-hounds-hammer.md @@ -0,0 +1,5 @@ +--- +'@hyperlane-xyz/cli': patch +--- + +feat: support github auth token for authenticated registries From c1fcdcc9a4fceee573aac8626beb7bf02c29ce37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Kadir=20Y=C3=BCcel?= Date: Tue, 21 Jan 2025 11:55:25 +0300 Subject: [PATCH 4/5] feat: env for Github auth token --- typescript/cli/src/commands/options.ts | 3 ++- typescript/cli/src/utils/env.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/typescript/cli/src/commands/options.ts b/typescript/cli/src/commands/options.ts index f430d61493..d0fc964614 100644 --- a/typescript/cli/src/commands/options.ts +++ b/typescript/cli/src/commands/options.ts @@ -35,8 +35,9 @@ export const registryUriCommandOption: Options = { export const githubAuthTokenOption: Options = { type: 'string', description: 'Github auth token for accessing registry repository', - demandOption: false, alias: 'authToken', + default: ENV.GH_AUTH_TOKEN, + defaultDescription: 'process.env.GH_AUTH_TOKEN', }; export const overrideRegistryUriCommandOption: Options = { diff --git a/typescript/cli/src/utils/env.ts b/typescript/cli/src/utils/env.ts index a0a5b232f1..5f299cfeae 100644 --- a/typescript/cli/src/utils/env.ts +++ b/typescript/cli/src/utils/env.ts @@ -7,6 +7,7 @@ const envScheme = z.object({ AWS_ACCESS_KEY_ID: z.string().optional(), AWS_SECRET_ACCESS_KEY: z.string().optional(), AWS_REGION: z.string().optional(), + GH_AUTH_TOKEN: z.string().optional(), }); const parsedEnv = envScheme.safeParse(process.env); From bc7da3164ebc6e15b067a1a7a2ec1316efb15f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Kadir=20Y=C3=BCcel?= Date: Tue, 21 Jan 2025 13:10:44 +0300 Subject: [PATCH 5/5] fix: argument not showing up in help --- typescript/cli/src/commands/options.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/typescript/cli/src/commands/options.ts b/typescript/cli/src/commands/options.ts index d0fc964614..1e9151f782 100644 --- a/typescript/cli/src/commands/options.ts +++ b/typescript/cli/src/commands/options.ts @@ -35,7 +35,6 @@ export const registryUriCommandOption: Options = { export const githubAuthTokenOption: Options = { type: 'string', description: 'Github auth token for accessing registry repository', - alias: 'authToken', default: ENV.GH_AUTH_TOKEN, defaultDescription: 'process.env.GH_AUTH_TOKEN', };