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:
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) {