diff --git a/docs/docs/tools/describe.md b/docs/docs/tools/describe.md index f4b814da..f5357dee 100644 --- a/docs/docs/tools/describe.md +++ b/docs/docs/tools/describe.md @@ -150,30 +150,33 @@ The marker `pr_agent:type` will be replaced with the PR type, `pr_agent:summary` - `include_generated_by_header`: if set to true, the tool will add a dedicated header: 'Generated by PR Agent at ...' to any automatic content. Default is true. ## Custom labels - The default labels of the describe tool are quite generic, since they are meant to be used in any repo: [`Bug fix`, `Tests`, `Enhancement`, `Documentation`, `Other`]. You can define custom labels that are relevant for your repo and use cases. Custom labels can be defined in a [configuration file](https://pr-agent-docs.codium.ai/tools/custom_labels/#configuration-options), or directly in the repo's [labels page](#handle-custom-labels-from-the-repos-labels-page). -Examples for custom labels: - - - `Main topic:performance` - pr_agent:The main topic of this PR is performance - - `New endpoint` - pr_agent:A new endpoint was added in this PR - - `SQL query` - pr_agent:A new SQL query was added in this PR - - `Dockerfile changes` - pr_agent:The PR contains changes in the Dockerfile - - ... - -The list above is eclectic, and aims to give an idea of different possibilities. Define custom labels that are relevant for your repo and use cases. -Note that Labels are not mutually exclusive, so you can add multiple label categories. -
Make sure to provide proper title, and a detailed and well-phrased description for each label, so the tool will know when to suggest it. Each label description should be a **conditional statement**, that indicates if to add the label to the PR or not, according to the PR content. +### Handle custom labels from a configuration file +Example for a custom labels configuration setup in a configuration file: +``` +[config] +enable_custom_labels=true + + +[custom_labels."sql_changes"] +description = "Use when a PR contains changes to SQL queries" + +[custom_labels."test"] +description = "use when a PR primarily contains new tests" + +... +``` ### Handle custom labels from the Repo's labels page 💎 -You can control the custom labels that will be suggested by the `describe` tool, from the repo's labels page: +You can also control the custom labels that will be suggested by the `describe` tool from the repo's labels page: * GitHub : go to `https://github.com/{owner}/{repo}/labels` (or click on the "Labels" tab in the issues or PRs page) * GitLab : go to `https://gitlab.com/{owner}/{repo}/-/labels` (or click on "Manage" -> "Labels" on the left menu) @@ -183,6 +186,14 @@ Now add/edit the custom labels. they should be formatted as follows: * Label name: The name of the custom label. * Description: Start the description of with prefix `pr_agent:`, for example: `pr_agent: Description of when AI should suggest this label`.
+Examples for custom labels: + + - `Main topic:performance` - pr_agent:The main topic of this PR is performance + - `New endpoint` - pr_agent:A new endpoint was added in this PR + - `SQL query` - pr_agent:A new SQL query was added in this PR + - `Dockerfile changes` - pr_agent:The PR contains changes in the Dockerfile + - ... + The description should be comprehensive and detailed, indicating when to add the desired label. For example: ![Add native custom labels](https://codium.ai/images/pr_agent/add_native_custom_labels.png){width=768} diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index 1db3dd53..73e0a8f7 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -505,7 +505,7 @@ def set_custom_labels(variables, git_provider=None): if not get_settings().config.enable_custom_labels: return - labels = get_settings().custom_labels + labels = get_settings().get('custom_labels', {}) if not labels: # set default labels labels = ['Bug fix', 'Tests', 'Bug fix with tests', 'Enhancement', 'Documentation', 'Other']