diff --git a/dist/index.js b/dist/index.js
index e5408e8..87482e5 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1305,7 +1305,7 @@ function getSource(settings) {
                 core.endGroup();
                 // Checkout submodules
                 core.startGroup('Fetching submodules');
-                yield git.config('submodule.fetchJobs', settings.submodulesFetchJobs);
+                yield git.config('submodule.fetchJobs', settings.submodulesFetchJobs.toString());
                 yield git.submoduleSync(settings.nestedSubmodules);
                 yield git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules);
                 yield git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules);
@@ -1778,12 +1778,17 @@ function getInputs() {
         else if (submodulesString == 'TRUE') {
             result.submodules = true;
         }
-        result.submodulesFetchJobs = core.getInput('submodulesFetchJobs') || '1';
+        result.submodulesFetchJobs = Math.floor(Number(core.getInput('submodulesFetchJobs') || '1'));
+        if (isNaN(result.submodulesFetchJobs) || result.submodulesFetchJobs < 0) {
+            result.submodulesFetchJobs = 0;
+        }
         core.debug(`submodules = ${result.submodules}`);
         core.debug(`recursive submodules = ${result.nestedSubmodules}`);
         core.debug(`submodules fetchJobs= ${result.submodulesFetchJobs}`);
         // Auth token
-        result.authToken = core.getInput('token', { required: true });
+        result.authToken = core.getInput('token', {
+            required: true
+        });
         // SSH
         result.sshKey = core.getInput('ssh-key');
         result.sshKnownHosts = core.getInput('ssh-known-hosts');
diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts
index d95f688..71fb418 100644
--- a/src/git-source-provider.ts
+++ b/src/git-source-provider.ts
@@ -233,7 +233,10 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
 
       // Checkout submodules
       core.startGroup('Fetching submodules')
-      await git.config('submodule.fetchJobs', settings.submodulesFetchJobs)
+      await git.config(
+        'submodule.fetchJobs',
+        settings.submodulesFetchJobs.toString()
+      )
       await git.submoduleSync(settings.nestedSubmodules)
       await git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules)
       await git.submoduleForeach(
diff --git a/src/git-source-settings.ts b/src/git-source-settings.ts
index 99fd355..85af342 100644
--- a/src/git-source-settings.ts
+++ b/src/git-source-settings.ts
@@ -82,7 +82,7 @@ export interface IGitSourceSettings {
   /**
    * Indicates the number of parallel jobs to use when fetching submodules
    */
-  submodulesFetchJobs: string
+  submodulesFetchJobs: number
 
   /**
    * The auth token to use when fetching the repository
diff --git a/src/input-helper.ts b/src/input-helper.ts
index 3cc9221..87ebbe0 100644
--- a/src/input-helper.ts
+++ b/src/input-helper.ts
@@ -141,13 +141,20 @@ export async function getInputs(): Promise<IGitSourceSettings> {
   } else if (submodulesString == 'TRUE') {
     result.submodules = true
   }
-  result.submodulesFetchJobs = core.getInput('submodulesFetchJobs') || '1'
+  result.submodulesFetchJobs = Math.floor(
+    Number(core.getInput('submodulesFetchJobs') || '1')
+  )
+  if (isNaN(result.submodulesFetchJobs) || result.submodulesFetchJobs < 0) {
+    result.submodulesFetchJobs = 0
+  }
   core.debug(`submodules = ${result.submodules}`)
   core.debug(`recursive submodules = ${result.nestedSubmodules}`)
   core.debug(`submodules fetchJobs= ${result.submodulesFetchJobs}`)
 
   // Auth token
-  result.authToken = core.getInput('token', {required: true})
+  result.authToken = core.getInput('token', {
+    required: true
+  })
 
   // SSH
   result.sshKey = core.getInput('ssh-key')