You are currently viewing an archived version of a document, the data may be outdated.
Documents
Version Control Integration
Version Control Integration
Type
Topic
Status
Published
Created
Jan 27, 2026
Updated
Jan 27, 2026
Created by
Dosu Bot
Updated by
Dosu Bot

Version Control Integration#

Version control integration in Dosu enables seamless connectivity with popular version control platforms to power intelligent code search, documentation generation, and automated issue management. Dosu supports integration with GitHub, GitLab, and has Bitbucket on its roadmap, with varying levels of functionality across platforms.

The integration architecture distinguishes between data sources (content that Dosu indexes for knowledge retrieval) and deployments (platforms where Dosu can actively respond to issues and discussions). GitHub offers comprehensive support for both data sources and deployments, making it fully self-serve with features including code indexing, issue responses, auto-labeling, and self-documenting pull requests. GitLab is currently supported in beta as a data source for code indexing only, with deployment capabilities under development. Bitbucket support is planned but not yet available.

Version control integrations enable Dosu to provide contextually-aware responses by indexing repository contents, track changes in real-time through webhooks, and automate repository management tasks. The integration model prioritizes security and control, requiring explicit user authorization and offering granular configuration options for each deployment.

Platform Support Matrix#

GitHub#

GitHub is fully supported and self-serve. Organizations can connect GitHub repositories as data sources and create deployments independently through the Dosu interface.

Data Source Capabilities:

Deployment Capabilities:

GitHub data syncs in real-time via webhooks, ensuring Dosu's knowledge stays current as code changes, issues are created, or pull requests are merged.

GitLab#

GitLab support is currently in beta. The integration is limited to data source functionality for code indexing.

Data Source Capabilities:

  • Code repositories (indexing for search and documentation)

Current Limitations:

Users can use GitLab repositories as data sources to enable Dosu to search and reference their GitLab codebase when answering questions or generating documentation. Users interested in GitLab should schedule a call with the Dosu team to discuss access during the beta period.

Bitbucket#

Bitbucket is not yet supported but is on the roadmap. No timeline has been publicly announced for Bitbucket integration. Users interested in Bitbucket support can schedule a call with the Dosu team to express interest and discuss their needs.

Installation and Setup#

GitHub Installation#

GitHub integration requires installing the Dosu GitHub App and explicitly creating data sources and deployments.

Step 1: Install the Dosu GitHub App#

Install the Dosu GitHub App from the GitHub Marketplace. During installation, choose to grant Dosu access to:

  • All repositories in your account or organization, or
  • Specific repositories only

After installation, Dosu automatically:

  1. Syncs the list of repositories you granted access to
  2. Syncs collaborators for each repository (for access control in the Dosu dashboard)
  3. Syncs labels for each repository (used for auto-labeling features)

Important: Repositories are not automatically added as data sources or deployments. Users must explicitly create these in subsequent steps.

Step 2: Create a Data Source#

Data sources provide the context Dosu uses to answer questions and generate documentation.

To create a GitHub data source:

  1. Navigate to Settings > Data Sources
  2. Click Add New
  3. Select the GitHub repository to index
  4. Configure which content types to index (code, issues, PRs, discussions, wikis)

For code repositories, Dosu monitors changes and keeps knowledge up to date as the codebase evolves.

Step 3: Create a Deployment#

A deployment connects Dosu to a specific GitHub repository, enabling it to respond to issues and discussions.

To create a GitHub deployment:

  1. Navigate to Settings > Deployments
  2. Click Add New
  3. Choose a deployment mode:
  4. Select the target repository
  5. Configure deployment settings (detailed in Configuration section below)

Permissions and Access Control#

GitHub App Permissions#

The Dosu GitHub App requests the following permissions:

Read access:

  • Repository contents, metadata, and administration
  • Actions, checks, and commit statuses

Read and write access:

  • Issues and issue comments
  • Pull requests and pull request reviews
  • Discussions and discussion comments

These permissions allow Dosu to read code and conversations, respond to issues and discussions, and apply labels. Dosu does not push code, open pull requests, or merge pull requests. The only writes Dosu performs are labels, reactions, and comments.

Repository Access Requirements#

To create a data source or deployment for a repository, users must either:

  • Be the user who installed the Dosu GitHub App, or
  • Be a collaborator with Triage permission or higher on the repository

Collaborators with Read permission cannot connect to private repositories.

Dosu works with both public and private repositories. Once a private repository is connected as a data source, all members of the Dosu organization can access its indexed content.

Configuration#

Organization-Level Settings#

Dosu's configuration is organized into four levels: organization, space, deployment, and data source.

Organization Settings apply to the entire Dosu account:

Space-Level Settings#

Spaces are projects within an organization. Each space has its own knowledge base and can be configured independently.

Space configuration includes:

Public spaces allow unauthenticated users to view documentation and ask questions.

Deployment-Level Configuration#

Deployments connect Dosu to platforms like GitHub. Each deployment has its own configuration controlling how Dosu responds, labels issues, and maintains documentation.

General Deployment Settings#

All deployments can configure:

  • Name: Display name for the deployment
  • Go-to Expert: Maintainer Dosu tags when needed (e.g., stale issue follow-ups)
  • Description: Additional repository context
  • Response Guidelines: Custom instructions for response formatting and structure
  • Connected Data Sources: Control what Dosu can reference when replying
  • Settings: Pause, resume, or delete the deployment

Issues Configuration#

Issues settings determine how Dosu behaves on repository issues.

Agent Reply Behavior:

Agent Objectives (toggle each independently):

Auto-Label Issues:
Enable automatic issue labeling and select which labels Dosu can apply. Dosu will only consider selected labels; unselected labels are never applied. Dosu chooses labels based on issue title, description, and historical labeling patterns.

Best practices:

  • Add prefixes for related labels (e.g., status:duplicate, status:invalid)
  • Leave unselected labels that aren't obvious from issue content (e.g., org:team-name, sprint:132)

Stale Bot:
Configure smart stale issue management:

  • Days until issue is marked stale
  • Days until stale issue is closed
  • Max issues to close per day
  • Tag maintainer on response
  • Labels to exclude from stale marking

Encourage Issue Voting:
Applies a πŸ‘ reaction to every new (non-bot) issue.

Pull Requests Configuration#

Pull request settings determine how Dosu behaves on PRs. These features rely on GitHub App pull request permissions to read PR metadata and file changes and apply labels.

Auto-Label Pull Requests:
Enable automatic PR labeling and select which labels to use. Dosu considers PR title, body, diff summary, and changed files when selecting labels.

Add LGTM Label:
When enabled, Dosu adds an LGTM label after a user with write access approves a review. If the label doesn't exist, Dosu creates it automatically.

Add Size Labels:
When enabled, Dosu labels PRs by diff size (size:XS, size:S, size:M, size:L, size:XL, size:XXL). Size is based on total line changes, excluding auto-generated files detected via .gitattributes.

Self-Documenting PRs:
When enabled, Dosu updates published documentation in the Dosu knowledge base and posts a summary comment on the PR. Note: Dosu does not open PRs to modify repository files.

Discussions Configuration#

Discussions settings determine how Dosu responds on GitHub Discussions. If discussions are disabled for the repository, Dosu shows a message and skips this section.

Agent Reply Behavior:
Same options as Issues (Mention, Auto Draft, Auto Reply)

Agent Objectives:
Same toggles as Issues configuration

Included Categories:
When Auto Draft or Auto Reply is enabled, choose which discussion categories Dosu is active in. By default, Dosu is active in Q&A and Questions categories.

Data Source Configuration#

Data sources determine what content Dosu indexes and searches.

Available integrations:

  • GitHub: Repositories, issues, PRs, discussions, wikis
  • Slack: Channel messages and threads
  • Web: Public websites and documentation
  • Confluence: Spaces and pages (Beta)
  • Coda: Workspaces and documents (Beta)

Features and Capabilities#

Data Indexing#

Version control integrations enable Dosu to index repository contents for intelligent search and retrieval. For GitHub, indexing includes code, issues, pull requests, discussions, and wikis. GitLab currently supports code indexing only.

When a repository is connected as a data source, Dosu indexes its content so it can retrieve relevant information when responding to questions. GitHub data syncs in real-time via webhooksβ€”when code is pushed or an issue is created, Dosu indexes the changes immediately.

Response Generation#

Dosu provides three modes for response generation on issues and discussions:

  1. Mention Mode: Dosu only responds when explicitly tagged with @dosu
  2. Auto Draft Mode: Dosu generates response drafts for review on the Review page. Note: When someone mentions @dosu directly, Dosu always posts immediately, even in Auto Draft mode
  3. Auto Reply Mode: Dosu posts responses automatically without review

To interact with Dosu in a deployment, mention @dosu in any issue, discussion, or Slack message. Dosu searches connected data sources and responds with relevant context.

Auto-Labeling#

Auto-labeling applies labels to issues and pull requests based on content analysis and historical patterns.

For Issues:
Dosu analyzes issue title, description, and how similar issues were labeled in the past to select appropriate labels.

For Pull Requests:
Dosu considers PR title, body, diff summary, and changed files when selecting labels.

Users explicitly select which labels Dosu can apply; unselected labels are never used. Dosu learns from corrections to improve future predictions.

Pull Request Features#

GitHub deployments offer specialized pull request features:

LGTM Labels:
Automatically adds an LGTM label after a user with write access approves a review. Creates the label if it doesn't exist.

Size Labels:
Labels PRs by diff size based on total line changes, excluding auto-generated files detected via .gitattributes.

Self-Documenting PRs:
Updates published documentation in the Dosu knowledge base and posts a summary comment on the PR. Documentation updates occur in the Dosu platform; Dosu does not open PRs to modify repository files.

Stale Issue Management#

Smart stale bot configuration allows automated issue lifecycle management:

  • Marks issues stale after a configurable period
  • Posts a stale comment summarizing issue activity
  • Applies the stale label
  • Closes issues after the close window
  • Configurable maximum issues to close per day
  • Option to tag maintainer or add πŸ‘ if maintainer already replied
  • Label exclusions to prevent stale marking of specific issue types

Platform-Specific Considerations#

GitHub-Specific Features#

GitHub offers the most comprehensive integration with Dosu. Key differentiators include:

Full Deployment Support:
GitHub supports both data source indexing and active deployments, enabling interactive features like issue responses, auto-labeling, and documentation maintenance.

Real-Time Synchronization:
GitHub data syncs in real-time via webhooks, ensuring immediate indexing of code changes, new issues, and pull request updates.

Comprehensive Resource Coverage:
GitHub indexing includes repositories, issues, pull requests, discussions, and wikis, providing complete context for responses and documentation.

Permission Model:
Dosu's GitHub integration is read-heavy with minimal write operations. Writes are limited to labels, reactions, and comments. Dosu does not push code, open PRs, or merge PRs.

GitLab-Specific Limitations#

GitLab support is currently in beta with significant limitations compared to GitHub:

Data Source Only:
GitLab can only be used as a data source for code indexing. Dosu can search and reference GitLab codebases but cannot respond to GitLab issues or merge requests.

No Deployment Capabilities:
GitLab deployments (responding to issues and merge requests) are not yet available.

Limited Indexing:
Currently, only code repositories are indexed. Issues, merge requests, discussions, and wikis are not supported.

Not Self-Serve:
GitLab integration is currently hidden in the UI. Users must contact the Dosu team to enable GitLab access during the beta period.

Technical Implementation#

GitLab has been added to backend provider enums and database schemas, establishing the technical foundation for the integration. However, business logic and webhook handlers may log GitLab connections but don't perform full sync actions, indicating the integration is in early stages.

Usage Examples#

Connecting a GitHub Repository#

  1. Install the Dosu GitHub App and grant access to target repositories
  2. Navigate to Settings > Data Sources and click Add New
  3. Select the GitHub repository to index
  4. Configure indexing options (code, issues, PRs, discussions, wikis)
  5. Navigate to Settings > Deployments and click Add New
  6. Choose Standard Setup or Preview Mode
  7. Select the repository and configure reply behavior, objectives, and auto-labeling
  8. Review and create the deployment

Configuring Auto-Labeling for Issues#

  1. Navigate to the deployment's Issues configuration
  2. Enable Auto-Label Issues
  3. Select labels Dosu can apply (only selected labels will be used)
  4. Use label prefixes for clarity (e.g., status:, type:, priority:)
  5. Exclude organizational or workflow labels that require manual assignment
  6. Dosu learns from historical patterns and corrections to improve accuracy

Setting Up Self-Documenting PRs#

  1. Navigate to the deployment's Pull Requests configuration
  2. Enable Self-Documenting PRs
  3. Ensure the repository is connected as a data source
  4. Publish relevant documentation pages in the knowledge base
  5. When PRs merge, Dosu updates documentation and posts a summary comment
  6. Review documentation updates in the knowledge base

Enabling Preview Mode for Testing#

  1. Navigate to Settings > Deployments and click Add New
  2. Select Preview Mode
  3. Choose the target repository
  4. All public features are disabled; responses are generated for review only
  5. Test Dosu's responses on the Review page
  6. Convert to Standard Setup when ready for production use
  • Data Sources: The broader concept of content indexing across platforms (GitHub, Slack, Web, Confluence, Coda)
  • Deployments: Platform connections that enable Dosu to actively respond to conversations
  • Auto-Labeling: Machine learning-based label prediction for issues and pull requests
  • Response Guidelines: Customizing how Dosu formats and structures responses
  • RBAC: Role-based access control for managing team member permissions
  • Webhooks: Real-time synchronization mechanisms for data sources