Usage Guide

Customization

You can use Qodo Merge as is with its default configuration, or customize it according to your specific organization needs using the configuration file.

The configuration file enables you to:

See the configuration documentation to learn more.

Tools and Commands

Qodo Merge offers several tools to help developers save time, improve code quality, and make the PR review process quicker and hassle-free:

  1. Describe: Generates PR descriptions with title, type, summary, and walkthrough

  2. Review: Provides comprehensive PR feedback, security concerns, and review effort estimates

  3. Improve: Suggests actionable code improvements with implementation options

  4. Ask: Answers questions about the PR code changes

  5. Implement: Convert code review discussions into ready-to-commit code changes.

Other tools include documentation generation, test creation, component analysis, and code search.


Usage

First, make sure you've set up Qodo Merge on your platform.

How to use Qodo Merge

Once set up, there are two ways to use Qodo Merge:

  1. Trigger tools manually with PR comments

    Just comment on any pull request with a command like:

    /review  
    /describe  
    /ask "What's going on in this PR?"

    The Qodo Merge bot will react with an 👀 emoji to indicate it has received your comment. This method of using Qodo Merge works immediately after setup.

  1. Run tools automatically on PRs

    When a PR is opened or updated, you can have Qodo Merge automatically run tools like /review, /describe and others.

    Scroll down to learn how to configure that.

Customize Qodo Merge using the configuration file

You can customize Qodo Merge using the configuration file.

For example:

[pr_reviewer]
extra_instructions = "Answer in Japanese"

Now, when you run /review, Qodo Merge will follow your custom instructions.

Learn more about different customization options in the configuration file documentation.

Run tools automatically for new PRs

You can trigger any Qodo Merge Tool to run automatically when a PR is opened:

[github_app] # Or [gitlab], [bitbucket_app], etc
# settings for "pull_request" event
handle_pr_actions = ['opened', 'reopened', 'ready_for_review']
pr_commands = [
    "/describe --pr_description.final_update_message=false",
    "/review",
    "/improve",
]

Parameters

  • handle_pr_actions: Sets PR actions that will trigger Qodo Merge's automatic run.

  • pr_commands: Defines the list of Tools that will be run automatically when a PR action happens.

In the example above, when a new PR is either opened, reopened or marked as ready for review, Qodo Merge will run the describe, review and improve tools.

You can configure and customize different Tool parameters in the configuration file.

Run tools automatically for open PRs

You can trigger any Qodo Merge Tool to run automatically when a commit is pushed to an open PR:

[github_app] # Or [gitlab], [bitbucket_app], etc
handle_push_trigger = true
push_commands = [
    "/describe --pr_description.final_update_message=false",
    "/review",
]

Parameters

  • handle_push_trigger: Enables Qodo Merge to run tools when a commit is pushed to an open PR.

  • push_commands: Defines the list of tools that will be run automatically when a new commit is pushed to the PR.

In the example above, when new code is pushed to the PR, Qodo Merge will run the describe and review tools, with the specified parameters.

Customize automatic tools

You can customize how Qodo Merge tools behave when they run automatically.

How it works

You can pass custom settings directly in the pr_commands or push_commands list by using --<config_key>=<value> right after the tool name.

Each tool has its own config keys. The available config keys for every tool can be found in our configuration file example.

For example, these are the config keys available for /update_changelog:

[pr_update_changelog] # /update_changelog #
push_changelog_changes=false
extra_instructions = ""
add_pr_link=true
skip_ci_on_push=true

So if you'd like to configure update_changelog to automatically run with some extra instructions, your configuration file would look something like this:

[github_app] # Or [gitlab], [bitbucket_app], etc
...
pr_commands = [ # Or push_commands
    "/update_changelog --pr_update_changelog.extra_instructions='write changelog following the template...'",
    "/improve",
]

GitHub Action

You can run Qodo Merge using GitHub Actions by setting environment variables in your workflow file .github/workflows/pr_agent.yml.

Run tools automatically

Add these to the env section:

env:
  OPENAI_KEY: ${{ secrets.OPENAI_KEY }} # Make sure to add your OpenAI key to your repo secrets
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Make sure to add your GitHub token to your repo secrets
  
  github_action_config.auto_review: "true" # enable\disable auto review
  github_action_config.auto_describe: "true" # enable\disable auto describe
  github_action_config.auto_improve: "true" # enable\disable auto improve
  github_action_config.pr_actions: '["opened", "reopened", "ready_for_review", "review_requested"]'
  • github_action_config.auto_<toolname>: Sets a tool to run automatically when a PR action happens.

    • If no tools are set, all tools will run by default when a PR action happens.

  • github_action_config.pr_actions: Sets PR actions that will trigger Qodo Merge's automatic run.

    • If no PR actions are set, the default configuration is ["opened", "reopened", "ready_for_review", "review_requested"]

Output Handling

You can also configure Qodo Merge to output results (like review summaries) back into the GitHub Actions step output:

github_action_config.enable_output: "true"

The review output will be in JSON format at: steps.<step-id>.outputs.review

The JSON structure matches what’s defined in pr_reviewer_prompts.toml.

Customize automatic tools

To change default tool behavior, you can either:

  • Add more environment variables in your .github/workflows/pr_agent.yml file (e.g. pr_description.publish_labels=false)

  • Or use a configuration file in the root of your repository.

Example using the configuration file:

[pr_description]
publish_labels = false

This prevents the /describe tool from posting PR labels.

The available config keys for every tool can be found in our configuration file example.

Last updated

Was this helpful?