Software Development Flow

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

The Software Development Flow helps you create AI-generated solutions for work across the software development lifecycle. Formerly known as GitLab Duo Workflow, this flow:

  • Runs in your IDE so that you do not have to switch contexts or tools.
  • Creates and works through a plan, in response to your prompt.
  • Stages proposed changes in your project’s repository. You control when to accept, modify, or reject the suggestions.
  • Understands the context of your project structure, codebase, and history. You can also add your own context, such as relevant GitLab issues or merge requests.

This flow is available in VS Code, Visual Studio, and JetBrains.

Flow and Chat comparison

Both the Software Development Flow and GitLab Duo Chat are available in your IDE in different tabs.

Use the Software Development Flow for complex development tasks.

  • The flow gathers comprehensive context, creates a detailed plan for you to review, and works through tasks methodically.
  • The flow uses a structured approach that is ideal for longer, deeper sessions where you need a large context window and produces better results for code generation that requires iteration.
  • Each flow has a beginning and end. When you start a new flow, it gathers context again and creates a new plan based on the current state of your project.

Use GitLab Duo Chat for conversational interactions where you guide the direction.

  • Chat can gather information to answer questions, provide suggestions, and autonomously perform actions on your behalf in response to your prompts.
  • Chat maintains continuous conversations, so you can return to any ongoing discussion and continue where you left off.

While both can help with similar tasks, they work differently. The flow gathers comprehensive context upfront and runs with minimal human interaction. Chat operates as a constant feedback loop with you and gathers context as needed during conversation. For example, the flow considers different solutions before it proposes an approach, while Chat jumps to the first viable path to provide quick results.

Use the Software Development Flow

Prerequisites:

To use the flow:

  1. In your IDE, select GitLab Duo Agent Platform ( duo-agentic-chat ).

  2. Select the Flows tab.

  3. In the text box, specify a code task in detail.

    • The flow is aware of all files available to Git in the project branch.

    • You can provide additional context for your chat.

    • The flow cannot access external sources or the web.

    • For example:

      I have a large Ruby class that is used in a few places and I want to break it down.
      Analyze this class and see what sub-methods or properties can be delegated to a
      separate class. Then, propose a transition plan to implement this new sub-class
      and update all of the required tests.
  4. Select Start.

After you describe your task, the flow generates and executes a plan. You can pause or ask the flow to adjust the plan.

Supported languages

The Software Development Flow officially supports the following languages:

  • CSS
  • Go
  • HTML
  • Java
  • JavaScript
  • Markdown
  • Python
  • Ruby
  • TypeScript

APIs that the flow has access to

To create solutions and understand the context of the problem, the flow accesses several GitLab APIs.

Specifically, an OAuth token with the ai_workflows scope has access to the following APIs:

Audit log

The Software Development Flow generates an audit event for each API request. On your GitLab Self-Managed instance, you can view these events on the instance audit events page.

Risks

The Software Development Flow uses an AI agent that can perform actions using your GitLab account. AI tools based on large language models can be unpredictable. Review potential risks before use.

The Software Development Flow in VS Code, JetBrains IDEs, and Visual Studio runs workflows on your local workstation. Consider all documented risks before enabling this product. Key risks include:

  • The Software Development Flow can access files in the project’s local file system, including files not tracked by Git or excluded in .gitignore. This may include sensitive information such as credentials in .env files.
  • The Software Development Flow is granted a time-limited GitLab OAuth token with the ai_workflows scope, linked to your user identity. This token allows access to designated GitLab APIs for the duration of the workflow. By default, only read operations are performed without explicit approval, but write operations are possible based on your permissions.
  • Do not provide the Software Development Flow with additional credentials or secrets (for example, in messages or goals), because these may be used unintentionally or exposed in code or API calls.