Repositories
A Repository in GuideMode is the central organizing unit for all work. While repositories typically represent codebases, GuideMode extends this concept to all providers - including work tracking tools like Jira, Linear, and Notion that don’t have traditional code repositories.
This unified model allows you to connect both discovery work (research, spikes, exploration) and delivery work (features, bugs, deployments) to the same teams, enabling end-to-end metrics across your entire workflow.
Overview
Section titled “Overview”Repositories in GuideMode:
- Organize all work - issues from any provider belong to a repository
- Enable team ownership - assign repositories to teams for filtering and metrics
- Track code changes through pull requests (for code-based providers)
- Monitor deployments to various environments
- Link to AI sessions from coding assistants
Repository Types
Section titled “Repository Types”Code Repositories
Section titled “Code Repositories”Traditional repositories from code hosting providers:
- GitHub, GitLab, Bitbucket - Full repository with issues, PRs, and deployments
- Local - Detected from desktop app via git remote URL
These provide the complete picture: issues, pull requests, deployments, and AI session linking.
Virtual Repositories
Section titled “Virtual Repositories”For providers without code repositories, GuideMode creates virtual repositories to attach issues to:
| Provider | Virtual Repository | Based On |
|---|---|---|
| Jira | One per Jira project | Jira project key (e.g., “PROJ”) |
| Linear | One per Linear team | Linear team (e.g., “Engineering”) |
| Notion | One per Notion database | Notion database mapping |
Virtual repositories allow:
- Issues from Jira/Linear/Notion to be assigned to teams
- Discovery work to be tracked alongside delivery work
- Unified metrics across all your tools
Why Virtual Repositories?
Section titled “Why Virtual Repositories?”Without virtual repositories, work from non-code providers would have no team ownership. By creating a repository for each Jira project or Linear team, you can:
- Assign teams - Connect discovery work in Notion to the same team doing delivery in GitHub
- Filter dashboards - See all work for a team, regardless of which tool it’s in
- Calculate metrics - Lead time from Notion discovery to GitHub deployment
Local Detection
Section titled “Local Detection”When you use the GuideMode desktop app for AI coding sessions:
- The app detects the current working directory
- Extracts the git remote URL
- Creates or matches a repository record
- Links your sessions to that repository
This happens automatically - no configuration needed.
Connected Repositories
Section titled “Connected Repositories”Repositories connected via integrations (GitHub, GitLab, etc.) provide:
- Issue synchronization
- Pull request tracking
- Deployment monitoring
- Webhook updates for real-time data
Key Fields
Section titled “Key Fields”| Field | Type | Description |
|---|---|---|
repositoryName | string | Repository name (unique per tenant) |
gitRemoteUrl | string | Git remote URL |
provider | enum | ’github’, ‘gitlab’, ‘bitbucket’, or null (local) |
externalId | string | Provider’s repository ID |
name | string | Display name from provider |
fullName | string | Full path (e.g., “owner/repo”) |
owner | string | Repository owner/organization |
url | string | Web URL to repository |
apiUrl | string | API endpoint URL |
defaultBranch | string | Default branch (main, master, etc.) |
isPrivate | boolean | Whether repository is private |
sourceType | string | How repository was added |
Source Types
Section titled “Source Types”| Source Type | Description |
|---|---|
local | Detected from desktop app |
github | Connected via GitHub integration |
gitlab | Connected via GitLab integration |
bitbucket | Connected via Bitbucket integration |
jira | Associated through Jira project |
azure-devops | Connected via Azure DevOps |
Sync Settings
Section titled “Sync Settings”Each repository has individual sync settings that control what data is synchronized:
| Setting | Default | Description |
|---|---|---|
syncIssues | true | Sync issues from this repository |
syncPullRequests | true | Sync pull requests from this repository |
syncDeployments | false | Sync deployments (requires additional setup) |
Why Disable Sync?
Section titled “Why Disable Sync?”You might disable sync for a repository when:
- It’s a fork you don’t actively work on
- It contains sensitive issues you don’t want tracked
- It’s archived but still in your organization
- You want to reduce sync load for large organizations
Team Assignments
Section titled “Team Assignments”Repositories can be assigned to teams, establishing ownership:
Note that shared-utils is assigned to both teams - repositories can have multiple team owners.
Team Assignment Benefits
Section titled “Team Assignment Benefits”- Filter dashboards by team to see their repositories
- DORA metrics calculated per team
- Issue/PR attribution to owning teams
- Deployment tracking by team
Repository Detection
Section titled “Repository Detection”Automatic Detection
Section titled “Automatic Detection”The desktop app uses this logic to detect repositories:
- Read
.git/configto find remote URLs - Normalize the URL (remove auth tokens, standardize format)
- Match against existing repositories by URL
- Create new repository if no match found
Repository Type Detection
Section titled “Repository Type Detection”GuideMode can detect repository types for analytics:
| Type | Indicators |
|---|---|
monorepo | Multiple package.json files, workspace config |
typescript | tsconfig.json present |
python | pyproject.toml, setup.py, requirements.txt |
rust | Cargo.toml present |
go | go.mod present |
The detectedRepositoryType field stores this for filtering and grouping.
Connection Lifecycle
Section titled “Connection Lifecycle”Connection Timestamps
Section titled “Connection Timestamps”| Field | Description |
|---|---|
connectedAt | When integration was first connected |
lastSyncedAt | Most recent successful sync |
createdAt | When repository record was created |
updatedAt | Last modification to repository settings |
Session Linking
Section titled “Session Linking”When AI sessions are uploaded from the desktop app:
- Session includes the repository context (path, git remote)
- GuideMode matches to existing repository
- Session is linked for analytics
- Repository metrics update
This enables:
- Viewing sessions per repository
- Correlating AI assistance with code changes
- Tracking productivity by codebase
GitHub-Specific Fields
Section titled “GitHub-Specific Fields”For GitHub repositories, additional fields are available:
| Field | Description |
|---|---|
githubRepoId | GitHub’s internal repository ID |
defaultBranch | Default branch from GitHub |
isPrivate | Repository visibility |
These enable:
- Precise webhook matching
- Branch-based filtering
- Privacy-aware handling
Related Documentation
Section titled “Related Documentation”- Teams - Team ownership of repositories
- Projects - Project-repository relationships
- Issues - Issues synced from repositories
- Pull Requests - PRs synced from repositories
- Deployments - Deployment tracking