diff --git a/packages/bruno-electron/src/ipc/collection.js b/packages/bruno-electron/src/ipc/collection.js index 9dc9b5be3..5357b51c2 100644 --- a/packages/bruno-electron/src/ipc/collection.js +++ b/packages/bruno-electron/src/ipc/collection.js @@ -25,6 +25,7 @@ const { wsClient } = require('../ipc/network/ws-event-handlers'); const { hasSubDirectories } = require('../utils/filesystem'); const { + DEFAULT_GITIGNORE, writeFile, hasBruExtension, isDirectory, @@ -160,6 +161,8 @@ const registerRendererEventHandlers = (mainWindow, watcher) => { throw new Error(`Invalid format: ${format}`); } + await writeFile(path.join(dirPath, '.gitignore'), DEFAULT_GITIGNORE); + const { size, filesCount } = await getCollectionStats(dirPath); brunoConfig.size = size; brunoConfig.filesCount = filesCount; diff --git a/packages/bruno-electron/src/ipc/workspace.js b/packages/bruno-electron/src/ipc/workspace.js index 7926c69ef..57914954f 100644 --- a/packages/bruno-electron/src/ipc/workspace.js +++ b/packages/bruno-electron/src/ipc/workspace.js @@ -5,7 +5,7 @@ const archiver = require('archiver'); const extractZip = require('extract-zip'); const { ipcMain, dialog } = require('electron'); const isDev = require('electron-is-dev'); -const { createDirectory, sanitizeName } = require('../utils/filesystem'); +const { createDirectory, sanitizeName, writeFile, DEFAULT_GITIGNORE } = require('../utils/filesystem'); const yaml = require('js-yaml'); const LastOpenedWorkspaces = require('../store/last-opened-workspaces'); const { defaultWorkspaceManager } = require('../store/default-workspace'); @@ -86,6 +86,7 @@ const registerWorkspaceIpc = (mainWindow, workspaceWatcher) => { const workspaceConfig = createWorkspaceConfig(workspaceName); await writeWorkspaceConfig(dirPath, workspaceConfig); + await writeFile(path.join(dirPath, '.gitignore'), DEFAULT_GITIGNORE); lastOpenedWorkspaces.add(dirPath); diff --git a/packages/bruno-electron/src/utils/filesystem.js b/packages/bruno-electron/src/utils/filesystem.js index 90406d8dc..0d405419f 100644 --- a/packages/bruno-electron/src/utils/filesystem.js +++ b/packages/bruno-electron/src/utils/filesystem.js @@ -5,6 +5,18 @@ const { dialog } = require('electron'); const isValidPathname = require('is-valid-path'); const os = require('os'); +const DEFAULT_GITIGNORE = [ + '# Secrets', + '.env*', + '', + '# Dependencies', + 'node_modules', + '', + '# OS files', + '.DS_Store', + 'Thumbs.db' +].join('\n'); + const exists = async (p) => { try { await fsPromises.access(p); @@ -456,6 +468,7 @@ const isCollectionRootBruFile = (pathname, collectionPath) => { }; module.exports = { + DEFAULT_GITIGNORE, isValidPathname, exists, isSymbolicLink,