What is Dependabot?
Dependabot automatically monitors dependencies and can create pull requests for security updates and version upgrades. This keeps GAIA’s Python and JavaScript dependencies current and secure.Understanding Dependabot Modes
Mode 1: Auto-PR Mode (open-pull-requests-limit: 1 or higher)
- ✅ Monitors dependencies for updates
- ✅ Creates pull requests automatically when updates are available
- ✅ Runs CI tests to validate the update
- Best for: Critical dependencies where you want automatic updates with testing
Mode 2: Monitor-Only Mode (open-pull-requests-limit: 0)
- ✅ Monitors dependencies for updates
- ✅ Shows alerts in GitHub Security tab for vulnerabilities
- ❌ Does NOT create pull requests automatically
- Best for: Dependencies you want to update manually or on your own schedule
Current Configuration
Root NPM Workspace (Auto-PR Mode)
The rootpackage.json uses npm workspaces and includes:
src/gaia/electron- Electron frameworksrc/gaia/apps/*/webui- All app subdirectories
- ✅ Dependabot creates PRs for Electron framework dependencies
- ✅ Dependabot creates PRs for all workspace packages
- ✅ PRs are grouped together to reduce noise
- ✅ Automated tests run on these PRs via GitHub Actions
Individual Apps (Monitor-Only Mode) - OPTIONAL
Note: These individual app configurations are optional because the root NPM workspace already scans all apps. They are included to allow fine-grained control if needed in the future. Each app can have its own configuration for specific control:src/gaia/apps/example/webuisrc/gaia/apps/jira/webuisrc/gaia/eval/webapp
- Different update schedules per app (monthly vs weekly)
- Different labels for organization and filtering
- Ability to enable/disable PRs per app independently
- Currently all set to
0(monitoring only) since root workspace handles PRs
When to Add Your App
Important: If your app is part of the npm workspaces (listed in rootpackage.json), it’s already being monitored by the root NPM configuration. You only need to add a separate configuration if you want:
- App-specific labels for GitHub organization
- Different update schedule (e.g., monthly instead of weekly)
- Ability to enable/disable PRs for this app independently
.github/dependabot.yml if:
- ✅ It has a
package.jsonfile (JavaScript/npm dependencies) - ✅ It’s located in
src/gaia/apps/ - ✅ You want app-specific configuration (otherwise root workspace handles it)
src/gaia/apps/*/webui are already scanned via the root workspace configuration. Individual app entries exist for organizational purposes but can be removed if not needed.
How to Add Your App
1. Edit .github/dependabot.yml
Add this configuration for your app:
2. Real Example
Here’s how the Jira app is configured:3. Important Notes
- Directory path: Must exactly match your app’s webui folder (e.g.,
/src/gaia/apps/example/webui) - App name: Use consistent naming in labels and group name
- Schedule: Use
monthlyfor most apps - PR Limit: Apps use
open-pull-requests-limit: 0(monitoring only). Root Python dependencies useopen-pull-requests-limit: 1(one PR at a time for core updates)
Configuration Reference
Update Schedules
weekly- Python core, GitHub Actions (withopen-pull-requests-limit: 1)monthly- Apps and POC examples (withopen-pull-requests-limit: 0)
PR Limits Strategy
| Component | Limit | Behavior | Notes |
|---|---|---|---|
| Python core dependencies | 1 | Creates PRs automatically | One PR at a time for critical updates |
| GitHub Actions | 1 | Creates PRs automatically | One PR at a time |
| Root NPM workspace | 1 | Creates PRs automatically | Includes Electron framework + all apps via workspaces |
| Individual apps | 0 | Monitor only - alerts without PRs | Fine-grained control per app |
directory: "/") uses npm workspaces, which means it automatically includes:
- Electron framework (
src/gaia/electron) - All apps (
src/gaia/apps/*/webui)
limit: 1): Dependabot creates pull requests automatically, runs tests, and you can review/merge them.
Monitor-Only Mode (limit: 0): Dependabot only shows security alerts in GitHub’s Security tab without creating PRs. This prevents PR noise while maintaining visibility.
Automated Testing: When dependencies are updated, automated tests run via GitHub Actions to ensure compatibility. See the Electron Testing Guide for details.
Dependency Grouping
Thegroups section combines all dependency updates into a single PR instead of creating dozens of separate PRs. This reduces noise and makes reviews easier.
Configuration Fields
package-ecosystem: Package manager type (npm,pip,github-actions)directory: Path to folder containingpackage.jsonschedule.interval: How often to check (weeklyormonthly)labels: Tags added to PRs for filteringopen-pull-requests-limit: Max concurrent PRs (0= monitor only,1+= create PRs)groups: Combine related updates into single PR
Automated Testing
All Electron framework and app dependencies are automatically tested when updated. The test suite includes:- Unit Tests: Core Electron modules (AppController, WindowManager, MCPClient)
- Integration Tests: App configuration, structure, and dependencies
- Build Tests: Package and distribution verification
- Security Audits: Dependency vulnerability scanning
- Dependabot PRs for dependency updates
- Pull requests modifying Electron or app code
- Manual workflow dispatch
See Also
- App Development Guide - Building GAIA applications
- Development Setup - Getting started with development
- Dependabot Documentation - Official GitHub docs