diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index 631d546f3270e109ba87193649a90b4ca5e4e6f0..15aac4fbf6c43e6536a3c53655eaa74a0d613a90 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -2103,7 +2103,7 @@ In the case that a user is automatically added as reviewer (such as Renovate App
 
 ## ignoreScripts
 
-Applicable for npm, Composer and Copier only for now. Set this to `true` if running scripts causes problems.
+Applicable for npm, bun, Composer and Copier only for now. Set this to `true` if running scripts causes problems.
 
 ## ignoreTests
 
diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts
index 284bddbf9c28a7dcba3829e671a29f670dd1932d..01ccf08da8939e601ab9a08b39fc3cc56828d76e 100644
--- a/lib/config/options/index.ts
+++ b/lib/config/options/index.ts
@@ -888,7 +888,7 @@ const options: RenovateOptions[] = [
       'Set this to `false` if `allowScripts=true` and you wish to run scripts when updating lock files.',
     type: 'boolean',
     default: true,
-    supportedManagers: ['npm', 'composer', 'copier'],
+    supportedManagers: ['npm', 'bun', 'composer', 'copier'],
   },
   {
     name: 'platform',
diff --git a/lib/modules/manager/bun/artifacts.spec.ts b/lib/modules/manager/bun/artifacts.spec.ts
index 6ebdb9f0014d683685155a09834043f2d8bd79d7..75a7797a4d40398a340d512d032621f60c4ec366 100644
--- a/lib/modules/manager/bun/artifacts.spec.ts
+++ b/lib/modules/manager/bun/artifacts.spec.ts
@@ -133,4 +133,90 @@ describe('modules/manager/bun/artifacts', () => {
       ]);
     });
   });
+
+  describe('bun command execution', () => {
+    it('check install options with configs', async () => {
+      const testCases = [
+        {
+          allowScripts: undefined,
+          ignoreScripts: undefined,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: false,
+          ignoreScripts: undefined,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: true,
+          ignoreScripts: undefined,
+          expectedCmd: 'bun install',
+        },
+        {
+          allowScripts: undefined,
+          ignoreScripts: true,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: undefined,
+          ignoreScripts: false,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: false,
+          ignoreScripts: true,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: false,
+          ignoreScripts: false,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: true,
+          ignoreScripts: true,
+          expectedCmd: 'bun install --ignore-scripts',
+        },
+        {
+          allowScripts: true,
+          ignoreScripts: false,
+          expectedCmd: 'bun install',
+        },
+      ];
+
+      for (const testCase of testCases) {
+        GlobalConfig.set({
+          ...globalConfig,
+          allowScripts: testCase.allowScripts,
+        });
+        const updateArtifact: UpdateArtifact = {
+          config: { ignoreScripts: testCase.ignoreScripts },
+          newPackageFileContent: '',
+          packageFileName: '',
+          updatedDeps: [{ manager: 'bun', lockFiles: ['bun.lockb'] }],
+        };
+
+        const oldLock = Buffer.from('old');
+        fs.readFile.mockResolvedValueOnce(oldLock as never);
+        const newLock = Buffer.from('new');
+        fs.readFile.mockResolvedValueOnce(newLock as never);
+
+        await updateArtifacts(updateArtifact);
+
+        expect(exec).toHaveBeenCalledWith(testCase.expectedCmd, {
+          cwdFile: '',
+          docker: {},
+          toolConstraints: [
+            {
+              toolName: 'bun',
+            },
+          ],
+          userConfiguredEnv: undefined,
+        });
+
+        exec.mockClear();
+        GlobalConfig.reset();
+      }
+    });
+  });
 });
diff --git a/lib/modules/manager/bun/artifacts.ts b/lib/modules/manager/bun/artifacts.ts
index ae1d4c95a828dd5aa13900c115e952db9b5cc3e9..4e47817c74637465cccd7299b29cf2af797af6c6 100644
--- a/lib/modules/manager/bun/artifacts.ts
+++ b/lib/modules/manager/bun/artifacts.ts
@@ -1,4 +1,5 @@
 import is from '@sindresorhus/is';
+import { GlobalConfig } from '../../../config/global';
 import { TEMPORARY_ERROR } from '../../../constants/error-messages';
 import { logger } from '../../../logger';
 import { exec } from '../../../util/exec';
@@ -44,6 +45,12 @@ export async function updateArtifacts(
       await deleteLocalFile(lockFileName);
     }
 
+    let cmd = 'bun install';
+
+    if (!GlobalConfig.get('allowScripts') || config.ignoreScripts) {
+      cmd += ' --ignore-scripts';
+    }
+
     const execOptions: ExecOptions = {
       userConfiguredEnv: config.env,
       cwdFile: packageFileName,
@@ -56,7 +63,7 @@ export async function updateArtifacts(
       ],
     };
 
-    await exec('bun install', execOptions);
+    await exec(cmd, execOptions);
     const newLockFileContent = await readLocalFile(lockFileName);
     if (
       !newLockFileContent ||