diff --git a/lib/platform/azure/index.ts b/lib/platform/azure/index.ts index 49f60983b2cb29005438dab9b8c4f281faa68774..38091b6904dfd24c2e380b898c6848ade68f2fb3 100644 --- a/lib/platform/azure/index.ts +++ b/lib/platform/azure/index.ts @@ -118,6 +118,7 @@ export async function getJsonFile(fileName: string): Promise<any | null> { export async function initRepo({ repository, localDir, + cloneSubmodules, }: RepoParams): Promise<RepoResult> { logger.debug(`initRepo("${repository}")`); config = { repository } as Config; @@ -161,6 +162,7 @@ export async function initRepo({ extraCloneOpts: azureHelper.getStorageExtraCloneOpts(opts), gitAuthorName: global.gitAuthor?.name, gitAuthorEmail: global.gitAuthor?.email, + cloneSubmodules, }); const repoConfig: RepoResult = { defaultBranch, diff --git a/lib/platform/bitbucket-server/index.ts b/lib/platform/bitbucket-server/index.ts index 60263825219551693fd9b6d665ec0875a4059cf8..23a2d6cf38fe59d40701ef2e9b54ee24bfc910d7 100644 --- a/lib/platform/bitbucket-server/index.ts +++ b/lib/platform/bitbucket-server/index.ts @@ -132,6 +132,7 @@ export async function getJsonFile(fileName: string): Promise<any | null> { export async function initRepo({ repository, localDir, + cloneSubmodules, }: RepoParams): Promise<RepoResult> { logger.debug( `initRepo("${JSON.stringify({ repository, localDir }, null, 2)}")` @@ -167,6 +168,7 @@ export async function initRepo({ url: gitUrl, gitAuthorName: global.gitAuthor?.name, gitAuthorEmail: global.gitAuthor?.email, + cloneSubmodules, }); try { diff --git a/lib/platform/bitbucket/index.ts b/lib/platform/bitbucket/index.ts index 651454a3d243034346914e95cbb3f0c69f459a9d..7b6d8656c5b38ed903b7c4d528b4f6f9b0790bbb 100644 --- a/lib/platform/bitbucket/index.ts +++ b/lib/platform/bitbucket/index.ts @@ -116,6 +116,7 @@ export async function getJsonFile(fileName: string): Promise<any | null> { export async function initRepo({ repository, localDir, + cloneSubmodules, }: RepoParams): Promise<RepoResult> { logger.debug(`initRepo("${repository}")`); const opts = hostRules.find({ @@ -172,6 +173,7 @@ export async function initRepo({ url, gitAuthorName: global.gitAuthor?.name, gitAuthorEmail: global.gitAuthor?.email, + cloneSubmodules, }); const repoConfig: RepoResult = { defaultBranch: info.mainbranch, diff --git a/lib/platform/common.ts b/lib/platform/common.ts index 782514eb39735d3816361791480b70e4bf9cce8f..56e23c77e311e857eac90ccfa8e8c78ecdd96a82 100644 --- a/lib/platform/common.ts +++ b/lib/platform/common.ts @@ -40,6 +40,7 @@ export interface RepoParams { forkToken?: string; includeForks?: boolean; renovateUsername?: string; + cloneSubmodules?: boolean; } /** diff --git a/lib/platform/gitea/index.ts b/lib/platform/gitea/index.ts index a3bca1b7f834937b4613ac6797730e7584f51ba5..9205e652175de36f6abd2138ec0fe4bfe3daca49 100644 --- a/lib/platform/gitea/index.ts +++ b/lib/platform/gitea/index.ts @@ -45,6 +45,7 @@ interface GiteaRepoConfig { issueList: Promise<Issue[]> | null; labelList: Promise<helper.Label[]> | null; defaultBranch: string; + cloneSubmodules: boolean; } const defaults = { @@ -217,12 +218,17 @@ const platform: Platform = { } }, - async initRepo({ repository, localDir }: RepoParams): Promise<RepoResult> { + async initRepo({ + repository, + localDir, + cloneSubmodules, + }: RepoParams): Promise<RepoResult> { let repo: helper.Repo; config = {} as any; config.repository = repository; config.localDir = localDir; + config.cloneSubmodules = cloneSubmodules; // Attempt to fetch information about repository try { diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts index db12e20db1ee6a08542c718c2670c3715fe44b90..6ea1da157f0db2b7fa90fe08e3e68d84a68c010a 100644 --- a/lib/platform/github/index.ts +++ b/lib/platform/github/index.ts @@ -168,10 +168,11 @@ export async function initRepo({ forkToken, localDir, renovateUsername, + cloneSubmodules, }: RepoParams): Promise<RepoResult> { logger.debug(`initRepo("${repository}")`); // config is used by the platform api itself, not necessary for the app layer to know - config = { localDir, repository } as any; + config = { localDir, repository, cloneSubmodules } as any; // istanbul ignore if if (endpoint) { // Necessary for Renovate Pro - do not remove diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts index 591fa619b92c23e747ad0aba8b7a869031a77007..fa540e786497b6b6c55baef053fedb973c58787b 100644 --- a/lib/platform/gitlab/index.ts +++ b/lib/platform/gitlab/index.ts @@ -51,6 +51,7 @@ let config: { issueList: GitlabIssue[]; mergeMethod: MergeMethod; defaultBranch: string; + cloneSubmodules: boolean; } = {} as any; const defaults = { @@ -153,10 +154,12 @@ export async function getJsonFile(fileName: string): Promise<any | null> { export async function initRepo({ repository, localDir, + cloneSubmodules, }: RepoParams): Promise<RepoResult> { config = {} as any; config.repository = urlEscape(repository); config.localDir = localDir; + config.cloneSubmodules = cloneSubmodules; let res: HttpResponse<RepoResponse>; try {