GitLab Duo Workflow

History

The availability of this feature is controlled by a feature flag. For more information, see the history. This feature is available for internal GitLab team members for testing, but not ready for production use.

This feature is considered experimental and is not intended for customer usage outside of initial design partners. We expect major changes to this feature.

This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.

GitLab Duo Workflow helps you complete development tasks directly in the VS Code integrated development environment (IDE).

Workflow:

  • 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.

Prerequisites

To use Workflow:

Use Workflow in VS Code

To use Workflow in VS Code:

  1. In VS Code, open the Git repository folder for your GitLab project.
  2. Check out the branch for the code you would like to change.
    • If you do not check out a GitLab project and branch, Workflow will not work.
  3. Open the command palette:
    • On macOS: Cmd + Shift + P
    • On Windows and Linux: Ctrl + P.
  4. Type GitLab Duo Workflow and select GitLab: Show Duo Workflow.
  5. To create a workflow, select New workflow.
  6. For Task description, specify a junior-level code task in detail.
    • Workflow is aware of all files available to Git in the project branch.
    • You can also give Workflow additional context.
    • Workflow cannot access external sources or the web.
  7. Select Start.

After you describe your task, Workflow generates and executes on a plan to address it. While it executes, you can pause or ask it to adjust the plan.

For more information about how to interact with Workflow, see best practices.

The context Workflow is aware of

When you ask Workflow for help with a task, it is aware of some files by default. You can also provide it with additional context.

AreaHow to use GitLab Workflow
EpicsEnter the epic ID and the name of the group the epic is in. The group must include a project that meets the project prerequisites.
IssuesEnter the issue ID if it’s in the current project. You can also enter a project ID from a different project, as long as it meets the project prerequisites.
Local filesWorkflow is aware of all files available to Git in the project branch. You can also reference a specific file by its file path.
Merge requestsEnter the merge request ID if it’s in the current project. You can also enter a project ID from a different project, as long as it meets the project prerequisites.
Merge request pipelinesEnter the merge request ID that has the pipeline, if it’s in the current project. You can also enter a project ID from a different project, as long as it meets the project prerequisites.

Workflow also has access to the GitLab Search API to find related issues or merge requests.

Supported languages

Workflow officially supports the following languages:

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

APIs that Workflow has access to

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

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

Audit log

An audit event is created for each API request done by Workflow. On your GitLab Self-Managed instance, you can view these events on the instance audit events page.

Give feedback

Workflow is an experiment and your feedback is crucial to improve it for you and others. To report issues or suggest improvements, complete this survey.