Changes for content/handbook/marketing/product-and-technical-marketing/developer-advocacy/dev-environments.md: 43 added lines, 51 removed lines.
Original line number
Diff line number
Diff line
@@ -52,24 +52,27 @@ GitLab Duo can be integrated through the [GitLab Workflow extension in the VS Co
- UI: Open the settings by clicking the gear icon in the bottom left corner (shortcut: `cmd ,` on macOS). Search for `word wrap`.
- VS Code `settings.json`: Add a new key/value for `"editor.wordWrap": "on"`.
1. Install extensions you need regularly, and only use trusted sources.
- Review the maintained list in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/vscode-extensions-install.sh?ref_type=heads)
- Review the maintained extension inventory in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/vscode/extensions.txt?ref_type=heads).
- You can install extensions on the CLI with `code --install-extension`. Example `code --install-extension gitlab.gitlab-workflow`.
- The [vscode-extensions-install.sh](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/vscode-extensions-install.sh?ref_type=heads) script installs all extensions from the inventory. Use `--discover` to list manually installed extensions, and `--update-inventory` to update the inventory file from them.
#### Demo settings: Profiles and themes in VS Code
The default profile in VS Code uses a dark theme.
```json
"workbench.colorTheme":"Default Dark Modern",
```
The light theme works better on in-person event projectors, and can help with [demo recordings](/handbook/marketing/product-and-technical-marketing/developer-advocacy/content/#content-creation-guidelines), too.
Let VS Code follow the macOS appearance setting, and switch between light and dark mode for demos in one place:
It is recommended to create multiple profiles to manage different themes, and extensions installed, for example `Default` and `Light theme for demos`.
Review the [VS Code documentation on auto-detecting the color theme](https://code.visualstudio.com/docs/configure/themes#_automatically-switch-based-on-os-color-scheme) for more details. [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles#whats-inside) uses the same approach for Ghostty, Starship and neovim: Switching the macOS appearance switches all tools at once.
Alternatively, create multiple profiles to manage different themes, and extensions installed, for example `Default` and `Light theme for demos`.
For required demo recording settings, review the [video guidelines handbook](/handbook/marketing/product-and-technical-marketing/developer-advocacy/content/#content-creation-guidelines).
@@ -85,31 +88,13 @@ In order to move the Chat to the right sidebar:
@dnsmichi uses this setup by default.
##### Enable additional languages for GitLab Duo Code Suggestions
##### GitLab Duo Code Suggestions
1. Choose between two paths:
- UI: Open the settings by clicking the gear icon in the bottom left corner. Search for `gitlab.duoCodeSuggestions`.
- VS Code `settings.json`: Press `cmd shift p` on macOS to open the command palette, and search for `settings.json`. Add/Modify the entry for `"gitlab.duoCodeSuggestions.additionalLanguages"` with an array of strings as value.
1. Add `markdown` to the array when you want to see more code suggestions when editing your `README.md` file.
- @dnsmichi is confident with the quality and the relevance of the following languages in `settings.json` (development test cycle: 1 year+):
Code Suggestions work for all languages, and do not require additional language settings anymore. The change is tracked in [Support "all" programming languages across Duo Agent Platform](https://gitlab.com/gitlab-org/gitlab/-/work_items/571515). Remove the deprecated `gitlab.duoCodeSuggestions.additionalLanguages` setting from existing `settings.json` files.
It is important for Code Suggestions to have proper context: Open more tabs that are relevant to your current task, as those will be used for [context](https://docs.gitlab.com/user/project/repository/code_suggestions/#the-context-code-suggestions-is-aware-of).
1. It is important for Code Suggestions to have proper context: Open more tabs that are relevant to your current task, as those will be used for [context](https://docs.gitlab.com/user/project/repository/code_suggestions/#the-context-code-suggestions-is-aware-of).
A full VS Code `settings.json` example is located in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/vscode/settings.json?ref_type=heads).
A full VS Code `settings.json` example is located in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/.config/vscode/settings.json?ref_type=heads).
#### Debug VS Code extensions and GitLab Duo Agent Platform
@@ -127,8 +112,6 @@ Need-to-know: The [GitLab Language Server](https://docs.gitlab.com/editor_extens
- Open the settings by clicking the gear icon in the bottom left corner (shortcut: `cmd ,` on macOS). Search for `GitLab` or `gitlab` in the settings tree.
- Tick the `GitLab: Debug` checkbox and restart VS Code.
[GitLab Duo Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/) will also spawm terminals to run commands. If the execution is blocked or runs infinitely, investigate whether to [disable terminal integrations like Oh-My-ZSH or Powerlevel10k](https://docs.gitlab.com/user/duo_agent_platform/troubleshooting/#ide-commands-fail-or-run-indefinitely).
### JetBrains IDEs
Developer Advocates can access [JetBrains IDEs](/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/) for different purposes and use cases:
@@ -160,7 +143,6 @@ GitLab Duo can be integrated using the [GitLab Duo plugin in the JetBrains marke
1. Read the [setup and configuration guide](/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/setup-and-config/) and install the [JetBrains Toolbox](https://www.jetbrains.com/toolbox-app/) to manage individual IDEs and their updates.
- Optional tip: By default, the toolbox keeps older installed versions. If this behavior causes problems with storage consumption, disable the setting in `Tools > Keep previous versions to enable instant rollback`.
- JetBrains IDEs can migrate/import configuration from existing setups. This is convenient to install/configure the GitLab Duo plugin once, and import it into another JetBrains IDE.
1.[GitLab Duo Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/) will also spawm terminals to run commands. If the execution is blocked or runs infinitely, investigate whether to [disable terminal integrations like Oh-My-ZSH or Powerlevel10k](https://docs.gitlab.com/user/duo_agent_platform/troubleshooting/#ide-commands-fail-or-run-indefinitely).
#### Demo settings: Appearance in JetBrains IDEs
@@ -188,7 +170,7 @@ GitLab Duo can be integrated using the [GitLab extension in the Eclipse marketpl
### neovim
> Tip: Start a new neovim configuration using a fork of [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) to bootstrap and optimize your neovim experience.
> Tip: Start a new neovim configuration with [LazyVim](https://www.lazyvim.org/) to get a pre-configured setup with sensible defaults, and customize it with plugins. A production example is located in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/tree/main/.config/nvim?ref_type=heads).
GitLab Duo can be integrated using a [neovim plugin](https://docs.gitlab.com/editor_extensions/neovim/).
@@ -198,19 +180,12 @@ GitLab Duo can be integrated using a [neovim plugin](https://docs.gitlab.com/edi
The GitLab Duo CLI provides access to [GitLab Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/) on the terminal.
Requirements:
Follow the [GitLab Duo CLI documentation](https://docs.gitlab.com/user/gitlab_duo_cli/) for installation and configuration.
1. Install NodeJS 22+, for example, using [mise](#mise-for-managing-language-runtimes)
1. Create a Personal Access Token with `api` scope.
1. Install the CLI.
1. Run the CLI to start the configuration dialogue.
Tip: Add a shell alias to start the Duo CLI with `duo`, for example in your `~/.zshrc`. A production example is located in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/.config/zsh/aliases.zsh?ref_type=heads).
```shell
mise install node@22
npm i -g @gitlab/duo-cli
duo
alias duo='glab duo cli'
```
Usage examples:
@@ -235,13 +210,12 @@ Follow the [product epic](https://gitlab.com/groups/gitlab-org/-/epics/19070) fo
Getting access to Claude Code is helpful for content creation, for example, in this blog tutorial: [Claude Code and GitLab: Three workflows that ship](https://about.gitlab.com/blog/claude-code-and-gitlab/).
1. Review the [AI tool requirements](https://internal.gitlab.com/handbook/ai-security-at-gitlab/ai-tool-usage-requirements/) and create an [Access Request](/handbook/eta/corporate-it/end-user-services/access-requests/) for an Anthropic API key, [example (internal)](https://gitlab.com/gitlab-com/team-member-epics/access-requests/-/work_items/39031)
1. Create an API key in the [Claude Console](https://platform.claude.com/settings/keys)
1. Authenticate in Claude Code with the Console API Key.
1. Review the [AI tool requirements](https://internal.gitlab.com/handbook/ai-security-at-gitlab/ai-tool-usage-requirements/). Claude Code requires access to the GitLab Claude Enterprise subscription, see the [Claude handbook page](/handbook/tools-and-tips/ai/claude/#access).
1. Run `claude` and select the login method `Claude account with subscription`. Follow the login flow in the browser, and log in with your team member email address using SSO.
```shell
claude auth login
claude
```
Navigate into a project and prompt Claude Code with `What is this project about?`.
@@ -282,6 +256,24 @@ Example projects:
-[Tone of Voice for dnsmichi](https://gitlab.com/dnsmichi/dotfiles/-/tree/main/skills/tone-of-voice?ref_type=heads)
Tip: Maintain skills in one Git repository, and share them across AI tools using symlinks. Each tool loads skills from its own directory:
| AI tool | Skills directory |
| --- | --- |
| GitLab Duo Agent Platform | `~/.gitlab/duo/skills/` |
| Claude Code | `~/.claude/skills/` |
| Codex and other tools following the Agent Skills standard | `~/.agents/skills/` |
The [setup.sh script in @dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/setup.sh?ref_type=heads) automates linking all skills during setup.
### AGENTS.md
The [AGENTS.md standard](https://docs.gitlab.com/user/duo_agent_platform/customize/agents_md/) is similar to custom rules. It supports root and sub-directory-level AGENTS.md files, guiding and instructing agentic AI on how to navigate and use a specific project or directory.
@@ -492,7 +484,7 @@ Resources:
### Team member examples
-[@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles) which documents the work environment setup including IDEs and development tools.
-[@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles)as a production example, which documents the work environment setup including terminal, IDEs, agentic AI and development tools.
Changes for content/handbook/tools-and-tips/_index.md: 2 added lines, 2 removed lines.
Original line number
Diff line number
Diff line
@@ -198,7 +198,7 @@ If you need to convert multiple images, combine the `mogrify` command with `find
find .-type f -iname'*.heic'-exec sh -c'mogrify -format jpg \"{}\"'\;
```
An example shell alias can be found in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/main/.oh-my-zsh/custom/aliases.zsh?ref_type=heads).
An example shell alias can be found in [@dnsmichi's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/blob/701851b5cb36dc3fc2796e2e0f7fa3038fbd611a/.oh-my-zsh/custom/aliases.zsh).
### Add drop shadow to images
@@ -340,7 +340,7 @@ If you are using [Oh My ZSH!](https://ohmyz.sh/), you can add custom aliases sho
vim ~/.oh-my-zsh/custom/aliases.zsh
```
An example can be found in [Michael Friedrich's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/tree/main/.oh-my-zsh/custom).
An example can be found in [Michael Friedrich's dotfiles project](https://gitlab.com/dnsmichi/dotfiles/-/tree/701851b5cb36dc3fc2796e2e0f7fa3038fbd611a/.oh-my-zsh/custom).
#### Delete local Git branches where remote branch was deleted