Skip to content

Commit

Permalink
Add --base-url option to aio app init --repo
Browse files Browse the repository at this point in the history
  • Loading branch information
obarcelonap committed Nov 29, 2024
1 parent fff2504 commit 07654a3
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/commands/app/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class InitCommand extends TemplatesCommand {
}

if (flags.repo) {
await this.withQuickstart(flags.repo, flags['github-pat'])
await this.withQuickstart(flags.repo, flags['github-pat'], flags['base-url'])
} else {
// 2. prompt for templates to be installed
const templates = await this.getTemplatesForFlags(flags)
Expand Down Expand Up @@ -134,7 +134,7 @@ class InitCommand extends TemplatesCommand {

async initWithLogin (flags) {
if (flags.repo) {
await this.withQuickstart(flags.repo, flags['github-pat'])
await this.withQuickstart(flags.repo, flags['github-pat'], flags['base-url'])
}
// this will trigger a login
const consoleCLI = await this.getLibConsoleCLI()
Expand Down Expand Up @@ -368,13 +368,14 @@ class InitCommand extends TemplatesCommand {
)
}

async withQuickstart (fullRepo, githubPat) {
async withQuickstart (fullRepo, githubPat, baseUrl) {
// telemetry hook for quickstart installs
await this.config.runHook('telemetry', { data: `installQuickstart:${fullRepo}` })

const octokit = new Octokit({
auth: githubPat ?? '',
userAgent: 'ADP App Builder v1'
userAgent: 'ADP App Builder v1',
...(baseUrl && { baseUrl })
})
const spinner = ora('Downloading quickstart repo').start()
/** @private */
Expand Down Expand Up @@ -489,6 +490,10 @@ InitCommand.flags = {
description: 'github personal access token to use for downloading private quickstart repos',
dependsOn: ['repo']
}),
'base-url': Flags.string({
description: 'When using with GitHub Enterprise Server, set to the root URL of the API. For example, if your GitHub Enterprise Server\'s hostname is `github.acme-inc.com`, then set `base-url` to `https://github.acme-inc.com/api/v3`',
dependsOn: ['repo']
}),
linter: Flags.string({
description: 'Specify the linter to use for the project',
options: ['none', 'basic', 'adobe-recommended'],
Expand Down
22 changes: 22 additions & 0 deletions test/commands/app/init.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,28 @@ describe('--no-login', () => {
expect(importHelperLib.importConfigJson).not.toHaveBeenCalled()
})

test('--repo --github-pat', async () => {
Octokit.mockImplementation(() => ({ repos: { getContent: () => Promise.resolve({ data: [] }) } }))

const pat = 'mytoken'
command.argv = ['--repo=adobe/appbuilder-quickstarts/dne', '--github-pat', pat]

await command.run()

expect(Octokit).toHaveBeenCalledWith(expect.objectContaining({ auth: pat }))
})

test('--repo --base-url', async () => {
Octokit.mockImplementation(() => ({ repos: { getContent: () => Promise.resolve({ data: [] }) } }))

const baseUrl = 'https://github.acme-inc.com/api/v3'
command.argv = ['--repo=org/repo', '--base-url', baseUrl]

await command.run()

expect(Octokit).toHaveBeenCalledWith(expect.objectContaining({ baseUrl }))
})

test('--yes --no-install, select excshell', async () => {
const installOptions = {
useDefaultValues: true,
Expand Down

0 comments on commit 07654a3

Please sign in to comment.