Repository: Accenture/sfmc-devtools
Pull request #504 (2022-11-03 09:55:38)

4.1.5
release


Patch:
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index 8e428c3a..25e6dd22 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -39,6 +39,7 @@ body:
           label: Version
           description: What version of our software are you running? (mcdev --version)
           options:
+              - 4.1.5
               - 4.1.4
               - 4.1.3
               - 4.1.2
diff --git a/README.md b/README.md
index 08c40147..549f148c 100644
--- a/README.md
+++ b/README.md
@@ -123,7 +123,7 @@ If you experience issues installing Accenture SFMC DevTools, please check out th
 1. Install Accenture SFMC DevTools by running `npm install -g mcdev` (prefix with `sudo` on MacOS)
    - If you get an error, please see the below troubleshooting section.
 
-When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.4`).
+When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.5`).
 
 > **_Side note for proud nerds_:**
 >
@@ -277,10 +277,10 @@ _Note: Regardless of which tag or branch you install_
 **Install specific version (using a version tag on npm):**
 
 ```bash
-npm install -g mcdev@4.1.4
+npm install -g mcdev@4.1.5
 ```
 
-**Warning**: When you used the above method to install Accenture SFMC DevTools for a specific version or tag, trying to [update Accenture SFMC DevTools](#updating-mcdev) might not download the most recently published official version but instead stay on the version or branch you previously selected (in the above examples: develop, 4.1.4)!
+**Warning**: When you used the above method to install Accenture SFMC DevTools for a specific version or tag, trying to [update Accenture SFMC DevTools](#updating-mcdev) might not download the most recently published official version but instead stay on the version or branch you previously selected (in the above examples: develop, 4.1.5)!
 
 > **Note**: The version is currently _not_ updated on the developer branch until a new release is published. Hence, you will not see a change if you run `mcdev --version`.
 
@@ -476,7 +476,7 @@ Example url: `https://mcg123abcysykllg-0321cbs8bbt64.auth.marketingcloudapis.com
 > You can run this command without the interactive wizard asking questions using the `--skipInteraction` (or short`--yes`/`--y`) flag. In this case, you need to provide a few values in the command:
 >
 > ```bash
-> mcdev init --y.credentialsName "yourCustomCredentialName" --y.client_id "yourClientIdHere" --y.client_secret "yourClientSecretHere" --y.auth_url "https://yourTenantSubdomainHere.auth.marketingcloudapis.com/" --y.gitRemoteUrl "https://my.git.server.com/myrepo.git" --y.account_id 00000000
+> mcdev init --y.credentialName "yourCustomCredentialName" --y.client_id "yourClientIdHere" --y.client_secret "yourClientSecretHere" --y.auth_url "https://yourTenantSubdomainHere.auth.marketingcloudapis.com/" --y.gitRemoteUrl "https://my.git.server.com/myrepo.git" --y.account_id 00000000 --y.backupBUs "yes" --y.gitPush "yes"
 > ```
 
 #### 6.1.2. upgrade
@@ -1493,7 +1493,7 @@ Assuming you cloned Accenture SFMC DevTools into `C:\repos\sfmc-devtools\` (or `
 
 This should tell npm to create a symlink to your cloned local directoty, allowing you to see updates you make in your mcdev repo instantly.
 
-To test your new **global** developer setup, run `mcdev --version` in CLI which should return the current version (e.g. `4.1.4`). Then, go into your mcdev repo and update the version with the suffix `-dev`, e.g. to `4.1.4-dev` and then run `mcdev --version` again to verify that your change propagates instantly.
+To test your new **global** developer setup, run `mcdev --version` in CLI which should return the current version (e.g. `4.1.5`). Then, go into your mcdev repo and update the version with the suffix `-dev`, e.g. to `4.1.5-dev` and then run `mcdev --version` again to verify that your change propagates instantly.
 
 > **Not recommended:** Alternatively, you can install it locally only by opening a terminal in your project directory and executing `npm install --save-dev "C:\repos\sfmc-devtools"`
 > To run the local version you need to prepend "npx" before your commands, e.g. `npx mcdev --version`
@@ -1531,7 +1531,7 @@ The following explains how you _could_ install it locally for certain edge cases
 4. Afterwards, install Accenture SFMC DevTools by running `npm install --save-dev mcdev`
    - If you get an error, please see the below troubleshooting section.
 
-When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.4`).
+When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.5`).
 
 ### 9.3. NPM Scripts
 
diff --git a/docs/dist/documentation.md b/docs/dist/documentation.md
index e5d46ef3..10354a14 100644
--- a/docs/dist/documentation.md
+++ b/docs/dist/documentation.md
@@ -454,10 +454,10 @@ main class
     * [.createDeltaPkg(argv)](#Mcdev.createDeltaPkg) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
     * [.selectTypes()](#Mcdev.selectTypes) ⇒ <code>Promise</code>
     * [.explainTypes()](#Mcdev.explainTypes) ⇒ <code>void</code>
-    * [.upgrade([skipInteraction])](#Mcdev.upgrade) ⇒ <code>Promise.&lt;boolean&gt;</code>
+    * [.upgrade()](#Mcdev.upgrade) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.retrieve(businessUnit, [selectedTypesArr], [keys], [changelogOnly])](#Mcdev.retrieve) ⇒ <code>Promise.&lt;object&gt;</code>
     * [.deploy(businessUnit, [selectedTypesArr], [keyArr], [fromRetrieve])](#Mcdev.deploy) ⇒ <code>Promise.&lt;Object.&lt;string, TYPE.MultiMetadataTypeMap&gt;&gt;</code>
-    * [.initProject([credentialsName], [skipInteraction])](#Mcdev.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.initProject([credentialsName])](#Mcdev.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.findBUs(credentialsName)](#Mcdev.findBUs) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.document(businessUnit, type)](#Mcdev.document) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.deleteByKey(businessUnit, type, customerKey)](#Mcdev.deleteByKey) ⇒ <code>Promise.&lt;void&gt;</code>
@@ -507,7 +507,6 @@ handler for 'mcdev createDeltaPkg
 | [argv.range] | <code>string</code> | git commit range     into deploy directory |
 | [argv.filter] | <code>string</code> | filter file paths that start with any |
 | [argv.diffArr] | <code>Array.&lt;TYPE.DeltaPkgItem&gt;</code> | list of files to include in delta package (skips git diff when provided) |
-| [argv.skipInteraction] | <code>TYPE.skipInteraction</code> | allows to skip interactive wizard |
 
 <a name="Mcdev.selectTypes"></a>
 
@@ -520,14 +519,9 @@ handler for 'mcdev createDeltaPkg
 **Kind**: static method of [<code>Mcdev</code>](#Mcdev)  
 <a name="Mcdev.upgrade"></a>
 
-### Mcdev.upgrade([skipInteraction]) ⇒ <code>Promise.&lt;boolean&gt;</code>
+### Mcdev.upgrade() ⇒ <code>Promise.&lt;boolean&gt;</code>
 **Kind**: static method of [<code>Mcdev</code>](#Mcdev)  
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - success flag  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Mcdev.retrieve"></a>
 
 ### Mcdev.retrieve(businessUnit, [selectedTypesArr], [keys], [changelogOnly]) ⇒ <code>Promise.&lt;object&gt;</code>
@@ -560,7 +554,7 @@ Deploys all metadata located in the 'deploy' directory to the specified business
 
 <a name="Mcdev.initProject"></a>
 
-### Mcdev.initProject([credentialsName], [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Mcdev.initProject([credentialsName]) ⇒ <code>Promise.&lt;void&gt;</code>
 Creates template file for properties.json
 
 **Kind**: static method of [<code>Mcdev</code>](#Mcdev)  
@@ -569,7 +563,6 @@ Creates template file for properties.json
 | Param | Type | Description |
 | --- | --- | --- |
 | [credentialsName] | <code>string</code> | identifying name of the installed package / project |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Mcdev.findBUs"></a>
 
@@ -4796,12 +4789,12 @@ CLI helper class
 **Kind**: global constant  
 
 * [Cli](#Cli)
-    * [.initMcdevConfig([skipInteraction])](#Cli.initMcdevConfig) ⇒ <code>Promise.&lt;boolean&gt;</code>
-    * [.addExtraCredential(properties, [skipInteraction])](#Cli.addExtraCredential) ⇒ <code>Promise.&lt;void&gt;</code>
-    * [.updateCredential(properties, credName, [skipInteraction])](#Cli.updateCredential) ⇒ <code>Promise.&lt;boolean&gt;</code>
+    * [.initMcdevConfig()](#Cli.initMcdevConfig) ⇒ <code>Promise.&lt;boolean&gt;</code>
+    * [.addExtraCredential(properties)](#Cli.addExtraCredential) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.updateCredential(properties, credName)](#Cli.updateCredential) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.getCredentialObject(properties, target, [isCredentialOnly], [allowAll])](#Cli.getCredentialObject) ⇒ <code>Promise.&lt;TYPE.BuObject&gt;</code>
     * [._selectBU(properties, [credential], [isCredentialOnly], [allowAll])](#Cli._selectBU) ⇒ <code>Promise.&lt;Array&gt;</code>
-    * [._setCredential(properties, [credName], [skipInteraction])](#Cli._setCredential) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
+    * [._setCredential(properties, [credName])](#Cli._setCredential) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
     * [._askCredentials(properties, [credName])](#Cli._askCredentials) ⇒ <code>Promise.&lt;object&gt;</code>
     * [.selectTypes(properties, [setTypesArr])](#Cli.selectTypes) ⇒ <code>Promise.&lt;void&gt;</code>
     * [._summarizeSubtypes(responses, type)](#Cli._summarizeSubtypes) ⇒ <code>void</code>
@@ -4809,20 +4802,15 @@ CLI helper class
 
 <a name="Cli.initMcdevConfig"></a>
 
-### Cli.initMcdevConfig([skipInteraction]) ⇒ <code>Promise.&lt;boolean&gt;</code>
+### Cli.initMcdevConfig() ⇒ <code>Promise.&lt;boolean&gt;</code>
 used when initially setting up a project.
 loads default config and adds first credential
 
 **Kind**: static method of [<code>Cli</code>](#Cli)  
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - success of init  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Cli.addExtraCredential"></a>
 
-### Cli.addExtraCredential(properties, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Cli.addExtraCredential(properties) ⇒ <code>Promise.&lt;void&gt;</code>
 Extends template file for properties.json
 
 **Kind**: static method of [<code>Cli</code>](#Cli)  
@@ -4831,11 +4819,10 @@ Extends template file for properties.json
 | Param | Type | Description |
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Cli.updateCredential"></a>
 
-### Cli.updateCredential(properties, credName, [skipInteraction]) ⇒ <code>Promise.&lt;boolean&gt;</code>
+### Cli.updateCredential(properties, credName) ⇒ <code>Promise.&lt;boolean&gt;</code>
 Extends template file for properties.json
 update credentials
 
@@ -4846,7 +4833,6 @@ update credentials
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
 | credName | <code>string</code> | name of credential that needs updating |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Cli.getCredentialObject"></a>
 
@@ -4880,7 +4866,7 @@ helps select the right credential in case of bad initial input
 
 <a name="Cli._setCredential"></a>
 
-### Cli.\_setCredential(properties, [credName], [skipInteraction]) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
+### Cli.\_setCredential(properties, [credName]) ⇒ <code>Promise.&lt;(boolean\|string)&gt;</code>
 helper around _askCredentials
 
 **Kind**: static method of [<code>Cli</code>](#Cli)  
@@ -4890,7 +4876,6 @@ helper around _askCredentials
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | from config file |
 | [credName] | <code>string</code> | name of credential that needs updating |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Cli._askCredentials"></a>
 
@@ -4994,7 +4979,7 @@ DevOps helper class
     * [.getDeltaList(properties, [range], [saveToDeployDir], [filterPaths])](#DevOps.getDeltaList) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
         * [~delta](#DevOps.getDeltaList..delta) : <code>Array.&lt;TYPE.DeltaPkgItem&gt;</code>
         * [~copied](#DevOps.getDeltaList..copied) : <code>TYPE.DeltaPkgItem</code>
-    * [.buildDeltaDefinitions(properties, range, [diffArr], [skipInteraction])](#DevOps.buildDeltaDefinitions) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
+    * [.buildDeltaDefinitions(properties, range, [diffArr])](#DevOps.buildDeltaDefinitions) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
         * [~deltaDeployAll](#DevOps.buildDeltaDefinitions..deltaDeployAll) : <code>Array.&lt;TYPE.DeltaPkgItem&gt;</code>
     * [.document(directory, jsonReport)](#DevOps.document) ⇒ <code>void</code>
     * [.getFilesToCommit(properties, buObject, metadataType, keyArr)](#DevOps.getFilesToCommit) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
@@ -5030,7 +5015,7 @@ Interactive commit selection if no commits are passed.
 **Kind**: inner constant of [<code>getDeltaList</code>](#DevOps.getDeltaList)  
 <a name="DevOps.buildDeltaDefinitions"></a>
 
-### DevOps.buildDeltaDefinitions(properties, range, [diffArr], [skipInteraction]) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
+### DevOps.buildDeltaDefinitions(properties, range, [diffArr]) ⇒ <code>Promise.&lt;Array.&lt;TYPE.DeltaPkgItem&gt;&gt;</code>
 wrapper around DevOps.getDeltaList, Builder.buildTemplate and M
 
 **Kind**: static method of [<code>DevOps</code>](#DevOps)  
@@ -5041,7 +5026,6 @@ wrapper around DevOps.getDeltaList, Builder.buildTemplate and M
 | properties | <code>TYPE.Mcdevrc</code> | project config file |
 | range | <code>string</code> | git commit range |
 | [diffArr] | <code>Array.&lt;TYPE.DeltaPkgItem&gt;</code> | instead of running git diff the method can also get a list of files to process |
-| [skipInteraction] | <code>TYPE.SkipInteraction</code> | allows to skip interactive wizard |
 
 <a name="DevOps.buildDeltaDefinitions..deltaDeployAll"></a>
 
@@ -5332,13 +5316,13 @@ CLI helper class
     * [._getForcedUpdateList(projectVersion)](#Init._getForcedUpdateList) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
     * [._createIdeConfigFile(fileNameArr, relevantForcedUpdates, [boilerplateFileContent])](#Init._createIdeConfigFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.upgradeAuthFile()](#Init.upgradeAuthFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
-    * [.initGitRepo([skipInteraction])](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
-    * [.gitPush([skipInteraction])](#Init.gitPush) ⇒ <code>void</code>
-    * [._addGitRemote([skipInteraction])](#Init._addGitRemote) ⇒ <code>string</code>
-    * [._updateGitConfigUser([skipInteraction])](#Init._updateGitConfigUser) ⇒ <code>void</code>
+    * [.initGitRepo()](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+    * [.gitPush()](#Init.gitPush) ⇒ <code>void</code>
+    * [._addGitRemote()](#Init._addGitRemote) ⇒ <code>string</code>
+    * [._updateGitConfigUser()](#Init._updateGitConfigUser) ⇒ <code>void</code>
     * [._getGitConfigUser()](#Init._getGitConfigUser) ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
-    * [.initProject(properties, credentialName, [skipInteraction])](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
-    * [._downloadAllBUs(bu, gitStatus, [skipInteraction])](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.initProject(properties, credentialName)](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
     * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -5416,50 +5400,30 @@ helper method for this.upgradeProject that upgrades project config if needed
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - returns true if worked without errors  
 <a name="Init.initGitRepo"></a>
 
-### Init.initGitRepo([skipInteraction]) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+### Init.initGitRepo() ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
 check if git repo exists and otherwise create one
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>Promise.&lt;{status: string, repoName: string}&gt;</code> - success flag  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init.gitPush"></a>
 
-### Init.gitPush([skipInteraction]) ⇒ <code>void</code>
+### Init.gitPush() ⇒ <code>void</code>
 offer to push the new repo straight to the server
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._addGitRemote"></a>
 
-### Init.\_addGitRemote([skipInteraction]) ⇒ <code>string</code>
+### Init.\_addGitRemote() ⇒ <code>string</code>
 offers to add the git remote origin
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>string</code> - repo name (optionally)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._updateGitConfigUser"></a>
 
-### Init.\_updateGitConfigUser([skipInteraction]) ⇒ <code>void</code>
+### Init.\_updateGitConfigUser() ⇒ <code>void</code>
 checks global config and ask to config the user info and then store it locally
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._getGitConfigUser"></a>
 
 ### Init.\_getGitConfigUser() ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
@@ -5469,7 +5433,7 @@ retrieves the global user.name and user.email values
 **Returns**: <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code> - user.name and user.email  
 <a name="Init.initProject"></a>
 
-### Init.initProject(properties, credentialName, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.initProject(properties, credentialName) ⇒ <code>Promise.&lt;void&gt;</code>
 Creates template file for properties.json
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5479,11 +5443,10 @@ Creates template file for properties.json
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
 | credentialName | <code>string</code> | identifying name of the installed package / project |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init._downloadAllBUs"></a>
 
-### Init.\_downloadAllBUs(bu, gitStatus, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.\_downloadAllBUs(bu, gitStatus) ⇒ <code>Promise.&lt;void&gt;</code>
 helper for this.initProject()
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5493,7 +5456,6 @@ helper for this.initProject()
 | --- | --- | --- |
 | bu | <code>string</code> | cred/bu or cred/* or * |
 | gitStatus | <code>string</code> | signals what state the git repo is in |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init.upgradeProject"></a>
 
@@ -5561,13 +5523,13 @@ CLI helper class
     * [._getForcedUpdateList(projectVersion)](#Init._getForcedUpdateList) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
     * [._createIdeConfigFile(fileNameArr, relevantForcedUpdates, [boilerplateFileContent])](#Init._createIdeConfigFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.upgradeAuthFile()](#Init.upgradeAuthFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
-    * [.initGitRepo([skipInteraction])](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
-    * [.gitPush([skipInteraction])](#Init.gitPush) ⇒ <code>void</code>
-    * [._addGitRemote([skipInteraction])](#Init._addGitRemote) ⇒ <code>string</code>
-    * [._updateGitConfigUser([skipInteraction])](#Init._updateGitConfigUser) ⇒ <code>void</code>
+    * [.initGitRepo()](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+    * [.gitPush()](#Init.gitPush) ⇒ <code>void</code>
+    * [._addGitRemote()](#Init._addGitRemote) ⇒ <code>string</code>
+    * [._updateGitConfigUser()](#Init._updateGitConfigUser) ⇒ <code>void</code>
     * [._getGitConfigUser()](#Init._getGitConfigUser) ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
-    * [.initProject(properties, credentialName, [skipInteraction])](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
-    * [._downloadAllBUs(bu, gitStatus, [skipInteraction])](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.initProject(properties, credentialName)](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
     * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -5645,50 +5607,30 @@ helper method for this.upgradeProject that upgrades project config if needed
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - returns true if worked without errors  
 <a name="Init.initGitRepo"></a>
 
-### Init.initGitRepo([skipInteraction]) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+### Init.initGitRepo() ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
 check if git repo exists and otherwise create one
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>Promise.&lt;{status: string, repoName: string}&gt;</code> - success flag  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init.gitPush"></a>
 
-### Init.gitPush([skipInteraction]) ⇒ <code>void</code>
+### Init.gitPush() ⇒ <code>void</code>
 offer to push the new repo straight to the server
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._addGitRemote"></a>
 
-### Init.\_addGitRemote([skipInteraction]) ⇒ <code>string</code>
+### Init.\_addGitRemote() ⇒ <code>string</code>
 offers to add the git remote origin
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>string</code> - repo name (optionally)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._updateGitConfigUser"></a>
 
-### Init.\_updateGitConfigUser([skipInteraction]) ⇒ <code>void</code>
+### Init.\_updateGitConfigUser() ⇒ <code>void</code>
 checks global config and ask to config the user info and then store it locally
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._getGitConfigUser"></a>
 
 ### Init.\_getGitConfigUser() ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
@@ -5698,7 +5640,7 @@ retrieves the global user.name and user.email values
 **Returns**: <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code> - user.name and user.email  
 <a name="Init.initProject"></a>
 
-### Init.initProject(properties, credentialName, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.initProject(properties, credentialName) ⇒ <code>Promise.&lt;void&gt;</code>
 Creates template file for properties.json
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5708,11 +5650,10 @@ Creates template file for properties.json
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
 | credentialName | <code>string</code> | identifying name of the installed package / project |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init._downloadAllBUs"></a>
 
-### Init.\_downloadAllBUs(bu, gitStatus, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.\_downloadAllBUs(bu, gitStatus) ⇒ <code>Promise.&lt;void&gt;</code>
 helper for this.initProject()
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5722,7 +5663,6 @@ helper for this.initProject()
 | --- | --- | --- |
 | bu | <code>string</code> | cred/bu or cred/* or * |
 | gitStatus | <code>string</code> | signals what state the git repo is in |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init.upgradeProject"></a>
 
@@ -5790,13 +5730,13 @@ CLI helper class
     * [._getForcedUpdateList(projectVersion)](#Init._getForcedUpdateList) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
     * [._createIdeConfigFile(fileNameArr, relevantForcedUpdates, [boilerplateFileContent])](#Init._createIdeConfigFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.upgradeAuthFile()](#Init.upgradeAuthFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
-    * [.initGitRepo([skipInteraction])](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
-    * [.gitPush([skipInteraction])](#Init.gitPush) ⇒ <code>void</code>
-    * [._addGitRemote([skipInteraction])](#Init._addGitRemote) ⇒ <code>string</code>
-    * [._updateGitConfigUser([skipInteraction])](#Init._updateGitConfigUser) ⇒ <code>void</code>
+    * [.initGitRepo()](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+    * [.gitPush()](#Init.gitPush) ⇒ <code>void</code>
+    * [._addGitRemote()](#Init._addGitRemote) ⇒ <code>string</code>
+    * [._updateGitConfigUser()](#Init._updateGitConfigUser) ⇒ <code>void</code>
     * [._getGitConfigUser()](#Init._getGitConfigUser) ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
-    * [.initProject(properties, credentialName, [skipInteraction])](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
-    * [._downloadAllBUs(bu, gitStatus, [skipInteraction])](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.initProject(properties, credentialName)](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
     * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -5874,50 +5814,30 @@ helper method for this.upgradeProject that upgrades project config if needed
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - returns true if worked without errors  
 <a name="Init.initGitRepo"></a>
 
-### Init.initGitRepo([skipInteraction]) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+### Init.initGitRepo() ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
 check if git repo exists and otherwise create one
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>Promise.&lt;{status: string, repoName: string}&gt;</code> - success flag  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init.gitPush"></a>
 
-### Init.gitPush([skipInteraction]) ⇒ <code>void</code>
+### Init.gitPush() ⇒ <code>void</code>
 offer to push the new repo straight to the server
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._addGitRemote"></a>
 
-### Init.\_addGitRemote([skipInteraction]) ⇒ <code>string</code>
+### Init.\_addGitRemote() ⇒ <code>string</code>
 offers to add the git remote origin
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>string</code> - repo name (optionally)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._updateGitConfigUser"></a>
 
-### Init.\_updateGitConfigUser([skipInteraction]) ⇒ <code>void</code>
+### Init.\_updateGitConfigUser() ⇒ <code>void</code>
 checks global config and ask to config the user info and then store it locally
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._getGitConfigUser"></a>
 
 ### Init.\_getGitConfigUser() ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
@@ -5927,7 +5847,7 @@ retrieves the global user.name and user.email values
 **Returns**: <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code> - user.name and user.email  
 <a name="Init.initProject"></a>
 
-### Init.initProject(properties, credentialName, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.initProject(properties, credentialName) ⇒ <code>Promise.&lt;void&gt;</code>
 Creates template file for properties.json
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5937,11 +5857,10 @@ Creates template file for properties.json
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
 | credentialName | <code>string</code> | identifying name of the installed package / project |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init._downloadAllBUs"></a>
 
-### Init.\_downloadAllBUs(bu, gitStatus, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.\_downloadAllBUs(bu, gitStatus) ⇒ <code>Promise.&lt;void&gt;</code>
 helper for this.initProject()
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -5951,7 +5870,6 @@ helper for this.initProject()
 | --- | --- | --- |
 | bu | <code>string</code> | cred/bu or cred/* or * |
 | gitStatus | <code>string</code> | signals what state the git repo is in |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init.upgradeProject"></a>
 
@@ -6019,13 +5937,13 @@ CLI helper class
     * [._getForcedUpdateList(projectVersion)](#Init._getForcedUpdateList) ⇒ <code>Promise.&lt;Array.&lt;string&gt;&gt;</code>
     * [._createIdeConfigFile(fileNameArr, relevantForcedUpdates, [boilerplateFileContent])](#Init._createIdeConfigFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [.upgradeAuthFile()](#Init.upgradeAuthFile) ⇒ <code>Promise.&lt;boolean&gt;</code>
-    * [.initGitRepo([skipInteraction])](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
-    * [.gitPush([skipInteraction])](#Init.gitPush) ⇒ <code>void</code>
-    * [._addGitRemote([skipInteraction])](#Init._addGitRemote) ⇒ <code>string</code>
-    * [._updateGitConfigUser([skipInteraction])](#Init._updateGitConfigUser) ⇒ <code>void</code>
+    * [.initGitRepo()](#Init.initGitRepo) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+    * [.gitPush()](#Init.gitPush) ⇒ <code>void</code>
+    * [._addGitRemote()](#Init._addGitRemote) ⇒ <code>string</code>
+    * [._updateGitConfigUser()](#Init._updateGitConfigUser) ⇒ <code>void</code>
     * [._getGitConfigUser()](#Init._getGitConfigUser) ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
-    * [.initProject(properties, credentialName, [skipInteraction])](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
-    * [._downloadAllBUs(bu, gitStatus, [skipInteraction])](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [.initProject(properties, credentialName)](#Init.initProject) ⇒ <code>Promise.&lt;void&gt;</code>
+    * [._downloadAllBUs(bu, gitStatus)](#Init._downloadAllBUs) ⇒ <code>Promise.&lt;void&gt;</code>
     * [.upgradeProject(properties, [initial], [repoName])](#Init.upgradeProject) ⇒ <code>Promise.&lt;boolean&gt;</code>
     * [._getMissingCredentials(properties)](#Init._getMissingCredentials) ⇒ <code>Array.&lt;string&gt;</code>
     * [.installDependencies([repoName])](#Init.installDependencies) ⇒ <code>Promise.&lt;boolean&gt;</code>
@@ -6103,50 +6021,30 @@ helper method for this.upgradeProject that upgrades project config if needed
 **Returns**: <code>Promise.&lt;boolean&gt;</code> - returns true if worked without errors  
 <a name="Init.initGitRepo"></a>
 
-### Init.initGitRepo([skipInteraction]) ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
+### Init.initGitRepo() ⇒ <code>Promise.&lt;{status: string, repoName: string}&gt;</code>
 check if git repo exists and otherwise create one
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>Promise.&lt;{status: string, repoName: string}&gt;</code> - success flag  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init.gitPush"></a>
 
-### Init.gitPush([skipInteraction]) ⇒ <code>void</code>
+### Init.gitPush() ⇒ <code>void</code>
 offer to push the new repo straight to the server
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._addGitRemote"></a>
 
-### Init.\_addGitRemote([skipInteraction]) ⇒ <code>string</code>
+### Init.\_addGitRemote() ⇒ <code>string</code>
 offers to add the git remote origin
 
 **Kind**: static method of [<code>Init</code>](#Init)  
 **Returns**: <code>string</code> - repo name (optionally)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._updateGitConfigUser"></a>
 
-### Init.\_updateGitConfigUser([skipInteraction]) ⇒ <code>void</code>
+### Init.\_updateGitConfigUser() ⇒ <code>void</code>
 checks global config and ask to config the user info and then store it locally
 
 **Kind**: static method of [<code>Init</code>](#Init)  
-
-| Param | Type | Description |
-| --- | --- | --- |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
-
 <a name="Init._getGitConfigUser"></a>
 
 ### Init.\_getGitConfigUser() ⇒ <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code>
@@ -6156,7 +6054,7 @@ retrieves the global user.name and user.email values
 **Returns**: <code>Promise.&lt;{&#x27;user.name&#x27;: string, &#x27;user.email&#x27;: string}&gt;</code> - user.name and user.email  
 <a name="Init.initProject"></a>
 
-### Init.initProject(properties, credentialName, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.initProject(properties, credentialName) ⇒ <code>Promise.&lt;void&gt;</code>
 Creates template file for properties.json
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -6166,11 +6064,10 @@ Creates template file for properties.json
 | --- | --- | --- |
 | properties | <code>TYPE.Mcdevrc</code> | config file's json |
 | credentialName | <code>string</code> | identifying name of the installed package / project |
-| [skipInteraction] | <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init._downloadAllBUs"></a>
 
-### Init.\_downloadAllBUs(bu, gitStatus, [skipInteraction]) ⇒ <code>Promise.&lt;void&gt;</code>
+### Init.\_downloadAllBUs(bu, gitStatus) ⇒ <code>Promise.&lt;void&gt;</code>
 helper for this.initProject()
 
 **Kind**: static method of [<code>Init</code>](#Init)  
@@ -6180,7 +6077,6 @@ helper for this.initProject()
 | --- | --- | --- |
 | bu | <code>string</code> | cred/bu or cred/* or * |
 | gitStatus | <code>string</code> | signals what state the git repo is in |
-| [skipInteraction] | <code>boolean</code> \| <code>TYPE.skipInteraction</code> | signals what to insert automatically for things usually asked via wizard |
 
 <a name="Init.upgradeProject"></a>
 
diff --git a/lib/cli.js b/lib/cli.js
index aefc9033..0b538b09 100644
--- a/lib/cli.js
+++ b/lib/cli.js
@@ -81,7 +81,7 @@ yargs
         handler: (argv) => {
             Mcdev.setSkipInteraction(argv.skipInteraction);
             Mcdev.setLoggingLevel(argv);
-            Mcdev.initProject(argv.credentialsName, argv.skipInteraction);
+            Mcdev.initProject(argv.credentialsName);
         },
     })
     .command({
diff --git a/lib/index.js b/lib/index.js
index 9db0978c..b3c4fb99 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -50,12 +50,10 @@ class Mcdev {
     into deploy directory
      * @param {string} [argv.filter] filter file paths that start with any
      * @param {TYPE.DeltaPkgItem[]} [argv.diffArr] list of files to include in delta package (skips git diff when provided)
-     * @param {TYPE.skipInteraction} [argv.skipInteraction] allows to skip interactive wizard
      * @returns {Promise.<TYPE.DeltaPkgItem[]>} list of changed items
      */
     static async createDeltaPkg(argv) {
         Util.logger.info('Create Delta Package ::');
-        Mcdev.setSkipInteraction(argv.skipInteraction);
         const properties = await config.getProperties();
         if (!(await config.checkProperties(properties))) {
             return null;
@@ -65,12 +63,7 @@ class Mcdev {
             ? // get source market and source BU from config
               DevOps.getDeltaList(properties, argv.range, true, argv.filter)
             : // If no custom filter was provided, use deployment marketLists & templating
-              DevOps.buildDeltaDefinitions(
-                  properties,
-                  argv.range,
-                  argv.diffArr,
-                  argv.skipInteraction
-              );
+              DevOps.buildDeltaDefinitions(properties, argv.range, argv.diffArr);
     }
 
     /**
@@ -90,17 +83,15 @@ class Mcdev {
         Cli.explainTypes();
     }
     /**
-     * @param {boolean | TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<boolean>} success flag
      */
-    static async upgrade(skipInteraction) {
-        Mcdev.setSkipInteraction(skipInteraction);
+    static async upgrade() {
         const properties = await config.getProperties();
         if (!properties) {
             Util.logger.error('No config found. Please run mcdev init');
             return false;
         }
-        if ((await InitGit.initGitRepo(skipInteraction)).status === 'error') {
+        if ((await InitGit.initGitRepo()).status === 'error') {
             return false;
         }
 
@@ -295,14 +286,12 @@ class Mcdev {
      * Creates template file for properties.json
      *
      * @param {string} [credentialsName] identifying name of the installed package / project
-     * @param {boolean | TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<void>} -
      */
-    static async initProject(credentialsName, skipInteraction) {
+    static async initProject(credentialsName) {
         Util.logger.info('mcdev:: Setting up project');
-        Mcdev.setSkipInteraction(skipInteraction);
         const properties = await config.getProperties(!!credentialsName);
-        await Init.initProject(properties, credentialsName, skipInteraction);
+        await Init.initProject(properties, credentialsName);
     }
 
     /**
diff --git a/lib/util/cli.js b/lib/util/cli.js
index 944d77e0..358d04b2 100644
--- a/lib/util/cli.js
+++ b/lib/util/cli.js
@@ -18,26 +18,25 @@ const Cli = {
      * used when initially setting up a project.
      * loads default config and adds first credential
      *
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<boolean>} success of init
      */
-    async initMcdevConfig(skipInteraction) {
+    async initMcdevConfig() {
         Util.logger.info('-- Initialising server connection --');
         Util.logger.info('Please enter a name for your "Installed Package" credentials:');
         const propertiesTemplate = await config.getDefaultProperties();
         delete propertiesTemplate.credentials.default;
 
         // wait for the interaction to finish or else an outer await will run before this is done
-        return this._setCredential(propertiesTemplate, null, skipInteraction);
+        return this._setCredential(propertiesTemplate, null);
     },
     /**
      * Extends template file for properties.json
      *
      * @param {TYPE.Mcdevrc} properties config file's json
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<void>} -
      */
-    async addExtraCredential(properties, skipInteraction) {
+    async addExtraCredential(properties) {
+        const skipInteraction = Util.skipInteraction;
         if (!(await config.checkProperties(properties))) {
             // return null here to avoid seeing 2 error messages for the same issue
             return null;
@@ -54,7 +53,7 @@ const Cli = {
                     `Credential '${skipInteraction.credentialName}' already existing. If you tried updating please provide run 'mcdev init ${skipInteraction.credentialName}'`
                 );
             }
-            return this._setCredential(properties, null, skipInteraction);
+            return this._setCredential(properties, null);
         }
     },
     /**
@@ -63,15 +62,15 @@ const Cli = {
      *
      * @param {TYPE.Mcdevrc} properties config file's json
      * @param {string} credName name of credential that needs updating
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<boolean>} success of update
      */
-    async updateCredential(properties, credName, skipInteraction) {
+    async updateCredential(properties, credName) {
+        const skipInteraction = Util.skipInteraction;
         if (credName) {
             if (!skipInteraction) {
                 Util.logger.info(`Please enter the details for '${credName}'`);
             }
-            return await this._setCredential(properties, credName, skipInteraction);
+            return await this._setCredential(properties, credName);
         }
     },
     /**
@@ -226,10 +225,10 @@ const Cli = {
      *
      * @param {TYPE.Mcdevrc} properties from config file
      * @param {string} [credName] name of credential that needs updating
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<boolean | string>} success of refresh or credential name
      */
-    async _setCredential(properties, credName, skipInteraction) {
+    async _setCredential(properties, credName) {
+        const skipInteraction = Util.skipInteraction;
         // Get user input
         let credentialsGood = null;
         let inputData;
diff --git a/lib/util/devops.js b/lib/util/devops.js
index 90af575f..d721aea5 100644
--- a/lib/util/devops.js
+++ b/lib/util/devops.js
@@ -249,10 +249,10 @@ const DevOps = {
      * @param {TYPE.Mcdevrc} properties project config file
      * @param {string} range git commit range
      * @param {TYPE.DeltaPkgItem[]} [diffArr] instead of running git diff the method can also get a list of files to process
-     * @param {TYPE.SkipInteraction} [skipInteraction] allows to skip interactive wizard
      * @returns {Promise.<TYPE.DeltaPkgItem[]>} -
      */
-    async buildDeltaDefinitions(properties, range, diffArr, skipInteraction) {
+    async buildDeltaDefinitions(properties, range, diffArr) {
+        const skipInteraction = Util.skipInteraction;
         // check if sourceTargetMapping is valid
         if (
             !properties.options.deployment.sourceTargetMapping ||
diff --git a/lib/util/init.git.js b/lib/util/init.git.js
index 6fbad000..eb1cbb96 100644
--- a/lib/util/init.git.js
+++ b/lib/util/init.git.js
@@ -1,5 +1,5 @@
 'use strict';
-const TYPE = require('../../types/mcdev.d');
+// const TYPE = require('../../types/mcdev.d');
 const File = require('./file');
 const inquirer = require('inquirer');
 const Util = require('./util');
@@ -14,10 +14,9 @@ const Init = {
     /**
      * check if git repo exists and otherwise create one
      *
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<{status: string, repoName: string}>} success flag
      */
-    async initGitRepo(skipInteraction) {
+    async initGitRepo() {
         const result = { status: null, repoName: null };
         // check if git is installed (https://www.npmjs.com/package/command-exists)
         if (!commandExists.sync('git')) {
@@ -65,10 +64,10 @@ const Init = {
         }
 
         // offer to update local user.name and user.email
-        await this._updateGitConfigUser(skipInteraction);
+        await this._updateGitConfigUser();
         if (newRepoInitialized) {
             // offer to insert git remote url now
-            result.repoName = await this._addGitRemote(skipInteraction);
+            result.repoName = await this._addGitRemote();
         }
 
         Util.logger.info('✔️  Git initialization done.');
@@ -78,10 +77,10 @@ const Init = {
     /**
      * offer to push the new repo straight to the server
      *
-     * @param {boolean | TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {void}
      */
-    async gitPush(skipInteraction) {
+    async gitPush() {
+        const skipInteraction = Util.skipInteraction;
         const gitRemotes = (await git.getRemotes(true)).filter((item) => item.name === 'origin');
         if (gitRemotes.length && gitRemotes[0].refs.push) {
             // check if remote repo is still empty (otherwise to risky to blindly push)
@@ -101,7 +100,7 @@ const Init = {
                     `Your remote Git repository is still empty and ready to store your initial backup. Hint: This is the server version of the repo which you share with your team.`
                 );
                 let responses;
-                if (!skipInteraction) {
+                if (!skipInteraction || !skipInteraction.gitPush !== 'yes') {
                     responses = await inquirer.prompt([
                         {
                             type: 'confirm',
@@ -111,7 +110,7 @@ const Init = {
                         },
                     ]);
                 }
-                if (skipInteraction || responses.gitPush) {
+                if (skipInteraction.gitPush === 'yes' || responses.gitPush) {
                     Util.execSync('git', ['push', '-u', 'origin', 'master']);
                 }
             } else if (remoteBranchesExist === true) {
@@ -124,10 +123,10 @@ const Init = {
     /**
      * offers to add the git remote origin
      *
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {string} repo name (optionally)
      */
-    async _addGitRemote(skipInteraction) {
+    async _addGitRemote() {
+        const skipInteraction = Util.skipInteraction;
         // #1 ask if the user wants to do it now
         let responses;
         if (!skipInteraction) {
@@ -177,10 +176,10 @@ const Init = {
     /**
      * checks global config and ask to config the user info and then store it locally
      *
-     * @param {boolean | TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {void}
      */
-    async _updateGitConfigUser(skipInteraction) {
+    async _updateGitConfigUser() {
+        const skipInteraction = Util.skipInteraction;
         const gitUser = (await this._getGitConfigUser()) || {};
         Util.logger.info(
             `Please confirm your Git user name & email. It should be in the format 'FirstName LastName' and 'your.email@accenture.com'. The current (potentially wrong) values are provided as default. If correct, confirm with ENTER, otherwise please update:`
diff --git a/lib/util/init.js b/lib/util/init.js
index 547399d6..a7b3cddc 100644
--- a/lib/util/init.js
+++ b/lib/util/init.js
@@ -19,10 +19,10 @@ const Init = {
      *
      * @param {TYPE.Mcdevrc} properties config file's json
      * @param {string} credentialName identifying name of the installed package / project
-     * @param {TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<void>} -
      */
-    async initProject(properties, credentialName, skipInteraction) {
+    async initProject(properties, credentialName) {
+        const skipInteraction = Util.skipInteraction;
         if (!properties) {
             // try to get cached properties because we return null in case of a crucial error
             properties = config.properties;
@@ -42,11 +42,7 @@ const Init = {
                 do {
                     error = false;
                     try {
-                        const success = await Cli.updateCredential(
-                            properties,
-                            credentialName,
-                            skipInteraction
-                        );
+                        const success = await Cli.updateCredential(properties, credentialName);
                         if (success) {
                             Util.logger.info(`✔️  Credential '${credentialName}' updated.`);
                         } else {
@@ -72,11 +68,7 @@ const Init = {
                     do {
                         error = false;
                         try {
-                            const success = await Cli.updateCredential(
-                                properties,
-                                badCredName,
-                                skipInteraction
-                            );
+                            const success = await Cli.updateCredential(properties, badCredName);
                             if (success) {
                                 Util.logger.info(`✔️  Credential '${badCredName}' updated.`);
                             } else {
@@ -128,10 +120,10 @@ const Init = {
                 }
                 let credentialName;
                 if (skipInteraction || responses.isAddCredential) {
-                    credentialName = await Cli.addExtraCredential(properties, skipInteraction);
+                    credentialName = await Cli.addExtraCredential(properties);
                 }
                 if (credentialName) {
-                    await this._downloadAllBUs(`${credentialName}/*`, 'update', skipInteraction);
+                    await this._downloadAllBUs(`${credentialName}/*`, 'update');
                 }
             }
         } else {
@@ -139,7 +131,7 @@ const Init = {
             // assuming it's the first time this command is run for this project
 
             // initialize git repo
-            const initGit = await InitGit.initGitRepo(skipInteraction);
+            const initGit = await InitGit.initGitRepo();
             if (initGit.status === 'error') {
                 return;
             }
@@ -152,7 +144,7 @@ const Init = {
             }
 
             // ask for credentials and create mcdev config
-            status = await Cli.initMcdevConfig(skipInteraction);
+            status = await Cli.initMcdevConfig();
             if (!status) {
                 return;
             }
@@ -169,7 +161,7 @@ const Init = {
             await this._downloadAllBUs('"*"', initGit.status);
 
             // backup to server
-            await InitGit.gitPush(skipInteraction);
+            await InitGit.gitPush();
 
             // all done
             Util.logger.info('You are now ready to work with Accenture SFMC DevTools!');
@@ -183,12 +175,12 @@ const Init = {
      *
      * @param {string} bu cred/bu or cred/* or *
      * @param {string} gitStatus signals what state the git repo is in
-     * @param {boolean | TYPE.skipInteraction} [skipInteraction] signals what to insert automatically for things usually asked via wizard
      * @returns {Promise.<void>} -
      */
-    async _downloadAllBUs(bu, gitStatus, skipInteraction) {
+    async _downloadAllBUs(bu, gitStatus) {
+        const skipInteraction = Util.skipInteraction;
         let responses;
-        if (!skipInteraction) {
+        if (!skipInteraction || skipInteraction.backupBUs !== 'yes') {
             responses = await inquirer.prompt([
                 {
                     type: 'confirm',
@@ -198,7 +190,7 @@ const Init = {
                 },
             ]);
         }
-        if (skipInteraction || responses.initialRetrieveAll) {
+        if (skipInteraction.backupBUs === 'yes' || responses.initialRetrieveAll) {
             Util.execSync('mcdev', ['retrieve', bu]);
 
             if (gitStatus === 'init') {
diff --git a/package-lock.json b/package-lock.json
index 0facfba2..251caf35 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "mcdev",
-    "version": "4.1.4",
+    "version": "4.1.5",
     "lockfileVersion": 2,
     "requires": true,
     "packages": {
         "": {
             "name": "mcdev",
-            "version": "4.1.4",
+            "version": "4.1.5",
             "license": "MIT",
             "dependencies": {
                 "cli-progress": "3.11.2",
diff --git a/package.json b/package.json
index 071dce06..c3e262e9 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,8 @@
 {
     "name": "mcdev",
-    "version": "4.1.4",
+    "version": "4.1.5",
     "description": "Accenture Salesforce Marketing Cloud DevTools",
-    "author": "joern.berkefeld, douglas.midgley, robert.zimmermann, maciej.barnas",
+    "author": "Accenture: joern.berkefeld, douglas.midgley, robert.zimmermann, maciej.barnas",
     "license": "MIT",
     "repository": {
         "type": "git",


Test patch:
diff --git a/test/mockRoot/.mcdevrc.json b/test/mockRoot/.mcdevrc.json
index 0c7c8150..7546e065 100644
--- a/test/mockRoot/.mcdevrc.json
+++ b/test/mockRoot/.mcdevrc.json
@@ -63,5 +63,5 @@
             "triggeredSendDefinition"
         ]
     },
-    "version": "4.1.4"
+    "version": "4.1.5"
 }