diff --git a/src/lib/converter/plugins/GitHubPlugin.ts b/src/lib/converter/plugins/GitHubPlugin.ts index 813f39542..fed2e2727 100644 --- a/src/lib/converter/plugins/GitHubPlugin.ts +++ b/src/lib/converter/plugins/GitHubPlugin.ts @@ -130,7 +130,7 @@ export class Repository { * @param path The potential repository root. * @returns A new instance of [[Repository]] or undefined. */ - static tryCreateRepository(path: string, gitRevision: string): Repository | undefined { + static tryCreateRepository(path: string, gitRevision: string, gitRemote: string): Repository | undefined { ShellJS.pushd(path); const out = ShellJS.exec('git rev-parse --show-toplevel', {silent: true}); ShellJS.popd(); @@ -139,7 +139,7 @@ export class Repository { return; } - let remotesOutput = ShellJS.exec('git ls-remote --get-url', {silent: true}); + const remotesOutput = ShellJS.exec(`git remote get-url ${gitRemote}`, {silent: true}); let remotes: string[] = (remotesOutput.code === 0) ? remotesOutput.stdout.split('\n') : []; return new Repository(BasePath.normalize(out.stdout.replace('\n', '')), gitRevision, remotes); @@ -163,7 +163,10 @@ export class GitHubPlugin extends ConverterComponent { private ignoredPaths: string[] = []; @BindOption('gitRevision') - gitRevision!: string; + readonly gitRevision!: string; + + @BindOption('gitRemote') + readonly gitRemote!: string; /** * Create a new GitHubHandler instance. @@ -203,7 +206,7 @@ export class GitHubPlugin extends ConverterComponent { } // Try to create a new repository - const repository = Repository.tryCreateRepository(dirName, this.gitRevision); + const repository = Repository.tryCreateRepository(dirName, this.gitRevision, this.gitRemote); if (repository) { this.repositories[repository.path.toLowerCase()] = repository; return repository; diff --git a/src/lib/utils/options/declaration.ts b/src/lib/utils/options/declaration.ts index 7da0b9c4a..9cfa0b4ce 100644 --- a/src/lib/utils/options/declaration.ts +++ b/src/lib/utils/options/declaration.ts @@ -68,6 +68,7 @@ export interface TypeDocOptionMap { categoryOrder: string[]; categorizeByGroup: boolean; gitRevision: string; + gitRemote: string; gaID: string; gaSite: string; hideGenerator: boolean; diff --git a/src/lib/utils/options/sources/typedoc.ts b/src/lib/utils/options/sources/typedoc.ts index fb35ed8b5..aed41df21 100644 --- a/src/lib/utils/options/sources/typedoc.ts +++ b/src/lib/utils/options/sources/typedoc.ts @@ -147,6 +147,11 @@ export function addTypeDocOptions(options: Options) { name: 'gitRevision', help: 'Use specified revision instead of the last revision for linking to GitHub source files.' }); + options.addDeclaration({ + name: 'gitRemote', + help: 'Use the specified remote for linking to GitHub source files.', + defaultValue: 'origin' + }); options.addDeclaration({ name: 'gaID', help: 'Set the Google Analytics tracking ID and activate tracking code.'