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:
{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']