Read-only mirror — the public repositories of the Forgejo instance, refreshed every 10 minutes. The live instance (fg.dieschoenewolke.de) is reachable only over the VPN; clone here with https://git.dieschoenewolke.de/git/<owner>/<repo>.git.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFinley Garton <35561611+finleygn@users.noreply.github.com>2023-09-22 18:30:36 +0100
committerGitHub <noreply@github.com>2023-09-22 13:30:36 -0400
commit1963f77c07df3ab7f9fd71f348c9f4c1b94d1416 (patch)
treee6d3ad1f11ed2694acc6868db9a78d81db0cc574 /src
parent013e4dd1057d3478e90c162d5c1f49bd989999a4 (diff)
Add support for partial checkout filters (#1396)
* added filter option & tests * added build file * fix test oversight * added exit 1 * updated docs to specify override * undo unneeded readme change * set to undefined rather than empty string * run git config in correct di --------- Co-authored-by: Cory Miller <13227161+cory-miller@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/git-source-provider.ts8
-rw-r--r--src/git-source-settings.ts5
-rw-r--r--src/input-helper.ts8
3 files changed, 20 insertions, 1 deletions
diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts
index c1360b8..5c98e9f 100644
--- a/src/git-source-provider.ts
+++ b/src/git-source-provider.ts
@@ -159,7 +159,13 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
fetchTags?: boolean
showProgress?: boolean
} = {}
- if (settings.sparseCheckout) fetchOptions.filter = 'blob:none'
+
+ if (settings.filter) {
+ fetchOptions.filter = settings.filter
+ } else if (settings.sparseCheckout) {
+ fetchOptions.filter = 'blob:none'
+ }
+
if (settings.fetchDepth <= 0) {
// Fetch all branches and tags
let refSpec = refHelper.getRefSpecForAllHistory(
diff --git a/src/git-source-settings.ts b/src/git-source-settings.ts
index 2f80b5e..629350b 100644
--- a/src/git-source-settings.ts
+++ b/src/git-source-settings.ts
@@ -30,6 +30,11 @@ export interface IGitSourceSettings {
clean: boolean
/**
+ * The filter determining which objects to include
+ */
+ filter: string | undefined
+
+ /**
* The array of folders to make the sparse checkout
*/
sparseCheckout: string[]
diff --git a/src/input-helper.ts b/src/input-helper.ts
index be9cecd..e546c19 100644
--- a/src/input-helper.ts
+++ b/src/input-helper.ts
@@ -82,6 +82,14 @@ export async function getInputs(): Promise<IGitSourceSettings> {
result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE'
core.debug(`clean = ${result.clean}`)
+ // Filter
+ const filter = core.getInput('filter')
+ if (filter) {
+ result.filter = filter
+ }
+
+ core.debug(`filter = ${result.filter}`)
+
// Sparse checkout
const sparseCheckout = core.getMultilineInput('sparse-checkout')
if (sparseCheckout.length) {