diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py
index e2f7f8ba..61510b8d 100644
--- a/pr_agent/algo/utils.py
+++ b/pr_agent/algo/utils.py
@@ -673,4 +673,26 @@ def github_action_output(output_data: dict, key_name: str):
print(f"{key_name}={json.dumps(key_data, indent=None, ensure_ascii=False)}", file=fh)
except Exception as e:
get_logger().error(f"Failed to write to GitHub Action output: {e}")
- return
\ No newline at end of file
+ return
+
+
+def show_relevant_configurations(relevant_section: str) -> str:
+ forbidden_keys = ['ai_disclaimer', 'ai_disclaimer_title', 'ANALYTICS_FOLDER', 'secret_provider']
+
+ markdown_text = ""
+ markdown_text += "\n
\n 🛠️ Relevant configurations:
\n\n"
+ markdown_text +="
These are the relevant [configurations](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) for this tool:\n\n"
+ markdown_text += f"**[config**]\n```yaml\n\n"
+ for key, value in get_settings().config.items():
+ if key in forbidden_keys:
+ continue
+ markdown_text += f"{key}: {value}\n"
+ markdown_text += "\n```\n"
+ markdown_text += f"\n**[{relevant_section}]**\n```yaml\n\n"
+ for key, value in get_settings().get(relevant_section, {}).items():
+ if key in forbidden_keys:
+ continue
+ markdown_text += f"{key}: {value}\n"
+ markdown_text += "\n```"
+ markdown_text += "\n \n"
+ return markdown_text
diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml
index b84bce61..fa9b1afd 100644
--- a/pr_agent/settings/configuration.toml
+++ b/pr_agent/settings/configuration.toml
@@ -19,6 +19,7 @@ secret_provider="google_cloud_storage"
cli_mode=false
ai_disclaimer_title="" # Pro feature, title for a collapsible disclaimer to AI outputs
ai_disclaimer="" # Pro feature, full text for the AI disclaimer
+output_relevant_configurations=false
[pr_reviewer] # /review #
# enable/disable features
diff --git a/pr_agent/tools/pr_code_suggestions.py b/pr_agent/tools/pr_code_suggestions.py
index a3f0abd1..6dead2be 100644
--- a/pr_agent/tools/pr_code_suggestions.py
+++ b/pr_agent/tools/pr_code_suggestions.py
@@ -9,7 +9,7 @@ from pr_agent.algo.ai_handlers.base_ai_handler import BaseAiHandler
from pr_agent.algo.ai_handlers.litellm_ai_handler import LiteLLMAIHandler
from pr_agent.algo.pr_processing import get_pr_diff, get_pr_multi_diffs, retry_with_fallback_models
from pr_agent.algo.token_handler import TokenHandler
-from pr_agent.algo.utils import load_yaml, replace_code_tags, ModelType
+from pr_agent.algo.utils import load_yaml, replace_code_tags, ModelType, show_relevant_configurations
from pr_agent.config_loader import get_settings
from pr_agent.git_providers import get_git_provider
from pr_agent.git_providers.git_provider import get_main_pr_language
@@ -118,6 +118,10 @@ class PRCodeSuggestions:
pr_body += HelpMessage.get_improve_usage_guide()
pr_body += "\n\n"
+ # Output the relevant configurations if enabled
+ if get_settings().get('config', {}).get('output_relevant_configurations', False):
+ pr_body += show_relevant_configurations(relevant_section='pr_code_suggestions')
+
if get_settings().pr_code_suggestions.persistent_comment:
final_update_message = False
self.git_provider.publish_persistent_comment(pr_body,
diff --git a/pr_agent/tools/pr_description.py b/pr_agent/tools/pr_description.py
index 661d9dd8..0de93c9c 100644
--- a/pr_agent/tools/pr_description.py
+++ b/pr_agent/tools/pr_description.py
@@ -9,7 +9,7 @@ from pr_agent.algo.ai_handlers.base_ai_handler import BaseAiHandler
from pr_agent.algo.ai_handlers.litellm_ai_handler import LiteLLMAIHandler
from pr_agent.algo.pr_processing import get_pr_diff, retry_with_fallback_models
from pr_agent.algo.token_handler import TokenHandler
-from pr_agent.algo.utils import load_yaml, set_custom_labels, get_user_labels, ModelType
+from pr_agent.algo.utils import load_yaml, set_custom_labels, get_user_labels, ModelType, show_relevant_configurations
from pr_agent.config_loader import get_settings
from pr_agent.git_providers import get_git_provider
from pr_agent.git_providers.git_provider import get_main_pr_language
@@ -116,6 +116,10 @@ class PRDescription:
pr_body += "\n\n___\n\n> 💡 **PR-Agent usage**:"
pr_body += "\n>Comment `/help` on the PR to get a list of all available PR-Agent tools and their descriptions\n\n"
+ # Output the relevant configurations if enabled
+ if get_settings().get('config', {}).get('output_relevant_configurations', False):
+ pr_body += show_relevant_configurations(relevant_section='pr_description')
+
if get_settings().config.publish_output:
# publish labels
if get_settings().pr_description.publish_labels and self.git_provider.is_supported("get_labels"):
diff --git a/pr_agent/tools/pr_reviewer.py b/pr_agent/tools/pr_reviewer.py
index 46036816..33adab39 100644
--- a/pr_agent/tools/pr_reviewer.py
+++ b/pr_agent/tools/pr_reviewer.py
@@ -8,7 +8,8 @@ from pr_agent.algo.ai_handlers.base_ai_handler import BaseAiHandler
from pr_agent.algo.ai_handlers.litellm_ai_handler import LiteLLMAIHandler
from pr_agent.algo.pr_processing import get_pr_diff, retry_with_fallback_models
from pr_agent.algo.token_handler import TokenHandler
-from pr_agent.algo.utils import convert_to_markdown, github_action_output, load_yaml, ModelType
+from pr_agent.algo.utils import convert_to_markdown, github_action_output, load_yaml, ModelType, \
+ show_relevant_configurations
from pr_agent.config_loader import get_settings
from pr_agent.git_providers import get_git_provider
from pr_agent.git_providers.git_provider import IncrementalPR, get_main_pr_language
@@ -238,6 +239,10 @@ class PRReviewer:
markdown_text += HelpMessage.get_review_usage_guide()
markdown_text += "\n\n"
+ # Output the relevant configurations if enabled
+ if get_settings().get('config', {}).get('output_relevant_configurations', False):
+ markdown_text += show_relevant_configurations(relevant_section='pr_reviewer')
+
# Add custom labels from the review prediction (effort, security)
self.set_review_labels(data)
diff --git a/pr_agent/tools/pr_update_changelog.py b/pr_agent/tools/pr_update_changelog.py
index 1475d9f2..404b886c 100644
--- a/pr_agent/tools/pr_update_changelog.py
+++ b/pr_agent/tools/pr_update_changelog.py
@@ -8,7 +8,7 @@ from pr_agent.algo.ai_handlers.base_ai_handler import BaseAiHandler
from pr_agent.algo.ai_handlers.litellm_ai_handler import LiteLLMAIHandler
from pr_agent.algo.pr_processing import get_pr_diff, retry_with_fallback_models
from pr_agent.algo.token_handler import TokenHandler
-from pr_agent.algo.utils import ModelType
+from pr_agent.algo.utils import ModelType, show_relevant_configurations
from pr_agent.config_loader import get_settings
from pr_agent.git_providers import get_git_provider, GithubProvider
from pr_agent.git_providers.git_provider import get_main_pr_language
@@ -74,6 +74,11 @@ class PRUpdateChangelog:
await retry_with_fallback_models(self._prepare_prediction, model_type=ModelType.TURBO)
new_file_content, answer = self._prepare_changelog_update()
+
+ # Output the relevant configurations if enabled
+ if get_settings().get('config', {}).get('output_relevant_configurations', False):
+ answer += show_relevant_configurations(relevant_section='pr_update_changelog')
+
get_logger().debug(f"PR output", artifact=answer)
if get_settings().config.publish_output: