PR Type
Enhancement, Other
Description
- Added
AgentType option to the CLI for scaffolding different agent types.
- Defined
AgentType enum with SWE and PR_REVIEW values.
- Updated
AgenticFramework.load_templates and scaffold function to handle different agent types.
- Created a new template for a PR review agent using CrewAI and ComposioToolSet.
Changes walkthrough 📝
| Relevant files |
|---|
| Enhancement |
cli.pyAdd agent type option to CLI scaffolding command
python/swe/swekit/cli.py
Added AgentType option to CLI for scaffolding different agent types. Updated _scaffold function to accept and use agent_type.
|
+11/-1 |
__init__.pyInclude AgentType in scaffold module exports
python/swe/swekit/scaffold/init.py
Imported AgentType in the module. Added AgentType to __all__.
|
+2/-1 |
_scaffold.pyExtend scaffold function to support multiple agent types
python/swe/swekit/scaffold/_scaffold.py
Defined AgentType enum with SWE and PR_REVIEW values. Updated AgenticFramework.load_templates to handle different agent types. Modified scaffold function to accept and use agent_type.
|
+17/-4 |
|
| Other |
main.templateAdd PR review agent template for CrewAI
python/swe/swekit/scaffold/templates/pr_review/crewai/main.template
Created a new template for PR review agent using CrewAI and ComposioToolSet. Defined tools and tasks for the PR review agent. Implemented a trigger listener for GitHub pull request events.
|
+100/-0 |
|
💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions
CI Failure Feedback 🧐
(Checks updated until commit https://github.com/ComposioHQ/composio/commit/c772291cede5203dd85051930975d992d3f43855)
|
Action: test (ubuntu-latest, 3.11) |
|
Failed stage: Unittests [❌]
|
|
Failed test name: test_action_enum
|
|
Failure summary:
The action failed because the test test_action_enum failed. The test failed due to a ValueError being raised in the Action class constructor. Specifically: The value GITHUB_ISSUES_LIST was not recognized as a valid value for the Action enum. The error occurred in the file composio/client/enums/base.py at line 112.
|
Relevant error logs:
1: ##[group]Operating System
2: Ubuntu
...
505: * [new branch] fix/readme -> origin/fix/readme
506: * [new branch] fix/readme-logo -> origin/fix/readme-logo
507: * [new branch] fix/swe-agent -> origin/fix/swe-agent
508: * [new branch] ft-add-better-help-text -> origin/ft-add-better-help-text
509: * [new branch] ft-add-js-example -> origin/ft-add-js-example
510: * [new branch] ft-apps-id -> origin/ft-apps-id
511: * [new branch] ft-bring-back-core-sdk -> origin/ft-bring-back-core-sdk
512: * [new branch] ft-did-you-mean -> origin/ft-did-you-mean
513: * [new branch] ft-error-tracking -> origin/ft-error-tracking
...
929: tests/test_cli/test_actions.py::TestListActions::test_list_all[arguments3-exptected_outputs3-unexptected_outputs3] PASSED [ 17%]
930: tests/test_cli/test_actions.py::TestListActions::test_tag_not_found PASSED [ 19%]
931: tests/test_cli/test_actions.py::TestListActions::test_limit SKIPPED [ 21%]
932: tests/test_cli/test_actions.py::TestListActions::test_copy PASSED [ 23%]
933: tests/test_cli/test_add.py::TestComposioAdd::test_no_auth PASSED [ 25%]
934: tests/test_cli/test_apps.py::TestList::test_list PASSED [ 27%]
935: tests/test_cli/test_apps.py::TestUpdate::test_update_not_required PASSED [ 29%]
936: tests/test_cli/test_apps.py::TestUpdate::test_update SKIPPED (Needs
937: investigation, this test fails in CI) [ 31%]
...
945: tests/test_client/test_client.py::test_raise_invalid_api_key PASSED [ 48%]
946: tests/test_client/test_collections.py::TestTriggerNamesSerialization::test_converts_trigger_objects_to_comma_separated_string PASSED [ 51%]
947: tests/test_client/test_collections.py::TestTriggerNamesSerialization::test_converts_trigger_strings_to_comma_separated_string PASSED [ 53%]
948: tests/test_client/test_collections.py::TestTriggerNamesSerialization::test_converts_mix_of_trigger_objects_and_strings PASSED [ 55%]
949: tests/test_client/test_collections.py::test_trigger_subscription PASSED [ 57%]
950: tests/test_client/test_endpoints.py::test_endpoint PASSED [ 59%]
951: tests/test_client/test_enum.py::test_tag_enum PASSED [ 61%]
952: tests/test_client/test_enum.py::test_app_enum PASSED [ 63%]
953: tests/test_client/test_enum.py::test_action_enum FAILED [ 65%]
...
962: tests/test_tools/test_local/test_workspace.py::test_stderr PASSED [ 85%]
963: tests/test_tools/test_local/test_workspace.py::test_workspace PASSED [ 87%]
964: tests/test_utils/test_decorators.py::test_deprecated PASSED [ 89%]
965: tests/test_utils/test_git.py::test_get_git_user_info PASSED [ 91%]
966: tests/test_utils/test_shared.py::test_get_pydantic_signature_format_from_schema_params PASSED [ 93%]
967: tests/test_utils/test_shared.py::test_json_schema_to_pydantic_field PASSED [ 95%]
968: tests/test_utils/test_shared.py::test_json_schema_to_fields_dict PASSED [ 97%]
969: tests/test_utils/test_url.py::test_get_web_url PASSED [100%]
970: =================================== FAILURES ===================================
...
980: self = <composio.client.enums._action.Action object at 0x7ff7ee09a610>
981: value = 'GITHUB_ISSUES_LIST'
982: def __init__(self, value: t.Union[str, te.Self]) -> None:
983: """Create an Enum"""
984: if isinstance(value, _AnnotatedEnum):
985: value = value._slug
986: value = t.cast(str, value).upper()
987: if value not in self.__annotations__ and value not in _runtime_actions:
988: > raise ValueError(f"Invalid value `{value}` for `{self.__class__.__name__}`")
989: E ValueError: Invalid value `GITHUB_ISSUES_LIST` for `Action`
990: composio/client/enums/base.py:112: ValueError
...
995: .tox/unittests/lib/python3.11/site-packages/paramiko/pkey.py:100
996: /home/runner/work/composio/composio/python/.tox/unittests/lib/python3.11/site-packages/paramiko/pkey.py:100: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
997: "cipher": algorithms.TripleDES,
998: .tox/unittests/lib/python3.11/site-packages/paramiko/transport.py:259
999: /home/runner/work/composio/composio/python/.tox/unittests/lib/python3.11/site-packages/paramiko/transport.py:259: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
1000: "class": algorithms.TripleDES,
1001: .tox/unittests/lib/python3.11/site-packages/pydantic/_internal/_config.py:291
1002: .tox/unittests/lib/python3.11/site-packages/pydantic/_internal/_config.py:291
1003: /home/runner/work/composio/composio/python/.tox/unittests/lib/python3.11/site-packages/pydantic/_internal/_config.py:291: PydanticDeprecatedSince20: Support for class-based `config` is deprecated, use ConfigDict instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.8/migration/
...
1198: examples/Podcast_summarizer_Agents/Tools/composio_slack.py 4 4 0% 1-5
1199: examples/Podcast_summarizer_Agents/__init__.py 0 0 100%
1200: examples/Podcast_summarizer_Agents/main.py 15 15 0% 1-21
1201: --------------------------------------------------------------------------------------------------------------
1202: TOTAL 9992 2324 77%
1203: Coverage HTML written to dir htmlcov
1204: Coverage XML written to file coverage.xml
1205: =========================== short test summary info ============================
1206: FAILED tests/test_client/test_enum.py::test_action_enum - ValueError: Invalid value `GITHUB_ISSUES_LIST` for `Action`
1207: ============= 1 failed, 41 passed, 5 skipped, 5 warnings in 36.45s =============
1208: unittests: exit 1 (37.46 seconds) /home/runner/work/composio/composio/python> pytest -vvv -rfE --doctest-modules composio/ tests/ --cov=composio --cov=examples --cov-report=html --cov-report=xml --cov-report=term --cov-report=term-missing --cov-config=.coveragerc pid=5632
1209: .pkg: _exit> python /opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
1210: unittests: FAIL code 1 (83.69=setup[41.18]+cmd[5.05,37.46] seconds)
1211: evaluation failed :( (83.83 seconds)
1212: ##[error]Process completed with exit code 1.
|
✨ CI feedback usage guide:
The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
The tool analyzes the failed checks and provides several feedbacks:
- Failed stage
- Failed test name
- Failure summary
- Relevant error logs
In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:
/checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"
where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.
Configuration options
enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.
See more information about the checks tool in the docs.