From e51f152eaf51c593d0dba3337d2b026f8d1689f9 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 26 Jun 2018 12:28:43 +0200 Subject: [PATCH] feat: gitlab recursive file list disabling For very large repositories, recursing through the entire repo can be very time consuming. Bot admins can now disable file list recursion by setting the env `RENOVATE_DISABLE_FILE_RECURSION=true`. Then only files within the root directory of repositories will be found. Closes #2172 --- lib/platform/gitlab/index.js | 13 +++++++------ .../gitlab/__snapshots__/index.spec.js.snap | 10 +++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/platform/gitlab/index.js b/lib/platform/gitlab/index.js index 1e1e5a147c..2c81d114b3 100644 --- a/lib/platform/gitlab/index.js +++ b/lib/platform/gitlab/index.js @@ -127,12 +127,13 @@ async function getFileList(branchName = config.baseBranch) { return config.fileList; } try { - const res = await get( - `projects/${ - config.repository - }/repository/tree?ref=${branchName}&recursive=true&per_page=100`, - { paginate: true } - ); + let url = `projects/${ + config.repository + }/repository/tree?ref=${branchName}&per_page=100`; + if (!(process.env.RENOVATE_DISABLE_FILE_RECURSION === 'true')) { + url += '&recursive=true'; + } + const res = await get(url, { paginate: true }); config.fileList = res.body .filter(item => item.type === 'blob' && item.mode !== '120000') .map(item => item.path) diff --git a/test/platform/gitlab/__snapshots__/index.spec.js.snap b/test/platform/gitlab/__snapshots__/index.spec.js.snap index f3b9869157..5ac719b8a8 100644 --- a/test/platform/gitlab/__snapshots__/index.spec.js.snap +++ b/test/platform/gitlab/__snapshots__/index.spec.js.snap @@ -300,7 +300,7 @@ Array [ }, ], Array [ - "projects/some%2Frepo%2Fproject/repository/tree?ref=undefined&recursive=true&per_page=100", + "projects/some%2Frepo%2Fproject/repository/tree?ref=undefined&per_page=100&recursive=true", Object { "paginate": true, }, @@ -323,7 +323,7 @@ Array [ }, ], Array [ - "projects/some%2Frepo/repository/tree?ref=undefined&recursive=true&per_page=100", + "projects/some%2Frepo/repository/tree?ref=undefined&per_page=100&recursive=true", Object { "paginate": true, }, @@ -348,7 +348,7 @@ Array [ }, ], Array [ - "projects/some%2Frepo/repository/tree?ref=undefined&recursive=true&per_page=100", + "projects/some%2Frepo/repository/tree?ref=undefined&per_page=100&recursive=true", Object { "paginate": true, }, @@ -373,7 +373,7 @@ Array [ }, ], Array [ - "projects/some%2Frepo/repository/tree?ref=undefined&recursive=true&per_page=100", + "projects/some%2Frepo/repository/tree?ref=undefined&per_page=100&recursive=true", Object { "paginate": true, }, @@ -386,7 +386,7 @@ exports[`platform/gitlab initRepo should initialise the config for the repo - 2 exports[`platform/gitlab setBaseBranch(branchName) sets the base branch 1`] = ` Array [ Array [ - "projects/undefined/repository/tree?ref=some-branch&recursive=true&per_page=100", + "projects/undefined/repository/tree?ref=some-branch&per_page=100&recursive=true", Object { "paginate": true, }, -- GitLab