PyGithub MCP Server

{"created": 1741466298.7408965, "duration": 677.101803779602, "exitcode": 1, "root": "/code/python-mcp-servers/pygithub-mcp-server", "environment": {}, "summary": {"passed": 386, "failed": 7, "total": 393, "collected": 393}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": "tests", "type": "Dir"}]}, {"nodeid": "tests/integration/client/test_client.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/client/test_client.py::test_singleton_pattern", "type": "Function", "lineno": 22}, {"nodeid": "tests/integration/client/test_client.py::test_direct_instantiation", "type": "Function", "lineno": 37}, {"nodeid": "tests/integration/client/test_client.py::test_github_property", "type": "Function", "lineno": 45}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_success", "type": "Function", "lineno": 59}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_not_found", "type": "Function", "lineno": 73}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_invalid_name", "type": "Function", "lineno": 91}]}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit", "outcome": "passed", "result": [{"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_check_rate_limit_real_api", "type": "Function", "lineno": 30}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_exponential_backoff", "type": "Function", "lineno": 44}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_exponential_backoff_max_attempts", "type": "Function", "lineno": 64}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_wait_for_rate_limit_reset_past_time", "type": "Function", "lineno": 70}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_wait_for_rate_limit_reset_future_time", "type": "Function", "lineno": 85}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_backoff_test_mode", "type": "Function", "lineno": 99}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_backoff_max_attempts", "type": "Function", "lineno": 123}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_exception_reset_time", "type": "Function", "lineno": 143}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_without_reset_time", "type": "Function", "lineno": 192}]}, {"nodeid": "tests/integration/client/test_rate_limit.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit", "type": "Class"}]}, {"nodeid": "tests/integration/client", "outcome": "passed", "result": [{"nodeid": "tests/integration/client/test_client.py", "type": "Module"}, {"nodeid": "tests/integration/client/test_rate_limit.py", "type": "Module"}]}, {"nodeid": "tests/integration/config", "outcome": "passed", "result": []}, {"nodeid": "tests/integration/converters/common/test_pagination_integration.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/converters/common/test_pagination_integration.py::test_pagination_with_real_api", "type": "Function", "lineno": 17}, {"nodeid": "tests/integration/converters/common/test_pagination_integration.py::test_pagination_with_converted_items", "type": "Function", "lineno": 107}]}, {"nodeid": "tests/integration/converters/common", "outcome": "passed", "result": [{"nodeid": "tests/integration/converters/common/test_pagination_integration.py", "type": "Module"}]}, {"nodeid": "tests/integration/converters", "outcome": "passed", "result": [{"nodeid": "tests/integration/converters/common", "type": "Dir"}]}, {"nodeid": "tests/integration/errors/test_handlers_integration.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_not_found", "type": "Function", "lineno": 24}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_invalid_input", "type": "Function", "lineno": 49}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_rate_limit", "type": "Function", "lineno": 73}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error", "type": "Function", "lineno": 92}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error_no_errors", "type": "Function", "lineno": 124}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error_no_data", "type": "Function", "lineno": 140}]}, {"nodeid": "tests/integration/errors", "outcome": "passed", "result": [{"nodeid": "tests/integration/errors/test_handlers_integration.py", "type": "Module"}]}, {"nodeid": "tests/integration/operations/issues/test_comments.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_comments.py::test_add_issue_comment", "type": "Function", "lineno": 26}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_list_issue_comments", "type": "Function", "lineno": 82}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_update_issue_comment", "type": "Function", "lineno": 157}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_delete_issue_comment", "type": "Function", "lineno": 248}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_list_issue_comments_since", "type": "Function", "lineno": 343}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_comment_lifecycle", "type": "Function", "lineno": 440}]}, {"nodeid": "tests/integration/operations/issues/test_create.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_create.py::test_create_issue_required_params", "type": "Function", "lineno": 12}, {"nodeid": "tests/integration/operations/issues/test_create.py::test_create_issue_all_params", "type": "Function", "lineno": 47}, {"nodeid": "tests/integration/operations/issues/test_create.py::test_create_and_verify_issue", "type": "Function", "lineno": 92}]}, {"nodeid": "tests/integration/operations/issues/test_labels.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_labels.py::test_add_issue_labels", "type": "Function", "lineno": 22}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_remove_issue_label", "type": "Function", "lineno": 78}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_add_issue_labels_multiple_calls", "type": "Function", "lineno": 161}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_remove_nonexistent_label", "type": "Function", "lineno": 231}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_label_lifecycle", "type": "Function", "lineno": 295}]}, {"nodeid": "tests/integration/operations/issues/test_lifecycle.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_lifecycle.py::test_issue_lifecycle", "type": "Function", "lineno": 35}]}, {"nodeid": "tests/integration/operations/issues/test_list.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_basic", "type": "Function", "lineno": 20}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_state_filter", "type": "Function", "lineno": 83}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_pagination", "type": "Function", "lineno": 278}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_labels_filter", "type": "Function", "lineno": 365}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_sort_and_direction", "type": "Function", "lineno": 474}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_since", "type": "Function", "lineno": 593}]}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_state", "type": "Function", "lineno": 38}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_sort", "type": "Function", "lineno": 50}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_direction", "type": "Function", "lineno": 62}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_page", "type": "Function", "lineno": 74}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_per_page", "type": "Function", "lineno": 96}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_labels", "type": "Function", "lineno": 128}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_since", "type": "Function", "lineno": 150}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_update_issue_with_no_changes", "type": "Function", "lineno": 162}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_update_issue_invalid_milestone", "type": "Function", "lineno": 201}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_create_issue_invalid_milestone", "type": "Function", "lineno": 236}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issue_comments_invalid_since", "type": "Function", "lineno": 250}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_timezone_handling", "type": "Function", "lineno": 284}]}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation", "type": "Class"}]}, {"nodeid": "tests/integration/operations/issues/test_simple.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_simple.py::test_simple_issue_creation", "type": "Function", "lineno": 25}, {"nodeid": "tests/integration/operations/issues/test_simple.py::test_simple_list_issues", "type": "Function", "lineno": 60}, {"nodeid": "tests/integration/operations/issues/test_simple.py::test_list_issues_with_state", "type": "Function", "lineno": 115}]}, {"nodeid": "tests/integration/operations/issues/test_update.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_title", "type": "Function", "lineno": 16}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_body", "type": "Function", "lineno": 83}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_state", "type": "Function", "lineno": 152}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_labels", "type": "Function", "lineno": 244}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_multiple_fields", "type": "Function", "lineno": 314}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_no_changes", "type": "Function", "lineno": 374}]}, {"nodeid": "tests/integration/operations/issues", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues/test_comments.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_create.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_labels.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_lifecycle.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_list.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_simple.py", "type": "Module"}, {"nodeid": "tests/integration/operations/issues/test_update.py", "type": "Module"}]}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_get_repository_integration", "type": "Function", "lineno": 22}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_search_repositories_integration", "type": "Function", "lineno": 40}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_get_file_contents_integration", "type": "Function", "lineno": 70}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_list_commits_integration", "type": "Function", "lineno": 108}]}, {"nodeid": "tests/integration/operations/repositories", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py", "type": "Module"}]}, {"nodeid": "tests/integration/operations", "outcome": "passed", "result": [{"nodeid": "tests/integration/operations/issues", "type": "Package"}, {"nodeid": "tests/integration/operations/repositories", "type": "Dir"}]}, {"nodeid": "tests/integration/schemas", "outcome": "passed", "result": []}, {"nodeid": "tests/integration/test_server.py::TestServer", "outcome": "passed", "result": [{"nodeid": "tests/integration/test_server.py::TestServer::test_create_server_basic", "type": "Function", "lineno": 44}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_tools_callable", "type": "Function", "lineno": 61}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_metadata", "type": "Function", "lineno": 82}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_with_custom_env", "type": "Function", "lineno": 94}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_logging_initialization", "type": "Function", "lineno": 115}]}, {"nodeid": "tests/integration/test_server.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/test_server.py::TestServer", "type": "Class"}]}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_create_issue_missing_required_params", "type": "Function", "lineno": 33}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_create_issue_invalid_repo", "type": "Function", "lineno": 49}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_get_issue_invalid_number", "type": "Function", "lineno": 65}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_issue_nonexistent", "type": "Function", "lineno": 81}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_issue_empty_values", "type": "Function", "lineno": 96}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_add_issue_comment_invalid_issue", "type": "Function", "lineno": 126}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_invalid_issue", "type": "Function", "lineno": 141}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_pagination", "type": "Function", "lineno": 155}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_comment_nonexistent", "type": "Function", "lineno": 196}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_delete_comment_nonexistent", "type": "Function", "lineno": 226}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_add_labels_nonexistent_issue", "type": "Function", "lineno": 255}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_remove_label_nonexistent_issue", "type": "Function", "lineno": 270}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_remove_nonexistent_label", "type": "Function", "lineno": 285}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_pagination", "type": "Function", "lineno": 316}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_invalid_params", "type": "Function", "lineno": 333}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_invalid_since", "type": "Function", "lineno": 361}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_invalid_since", "type": "Function", "lineno": 375}]}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling", "type": "Class"}]}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools::test_issue_lifecycle", "type": "Function", "lineno": 40}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools::test_list_issues", "type": "Function", "lineno": 212}]}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools", "type": "Class"}]}, {"nodeid": "tests/integration/tools/issues", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues/test_error_cases.py", "type": "Module"}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py", "type": "Module"}]}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_search_repositories_empty_results", "type": "Function", "lineno": 19}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_get_repository_integration", "type": "Function", "lineno": 40}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_list_commits_integration", "type": "Function", "lineno": 60}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_get_file_contents_integration", "type": "Function", "lineno": 85}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_search_repositories_integration", "type": "Function", "lineno": 118}]}, {"nodeid": "tests/integration/tools/repositories", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "type": "Module"}]}, {"nodeid": "tests/integration/tools", "outcome": "passed", "result": [{"nodeid": "tests/integration/tools/issues", "type": "Package"}, {"nodeid": "tests/integration/tools/repositories", "type": "Dir"}]}, {"nodeid": "tests/integration/utils", "outcome": "passed", "result": []}, {"nodeid": "tests/integration", "outcome": "passed", "result": [{"nodeid": "tests/integration/client", "type": "Package"}, {"nodeid": "tests/integration/config", "type": "Package"}, {"nodeid": "tests/integration/converters", "type": "Package"}, {"nodeid": "tests/integration/errors", "type": "Package"}, {"nodeid": "tests/integration/operations", "type": "Package"}, {"nodeid": "tests/integration/schemas", "type": "Package"}, {"nodeid": "tests/integration/test_server.py", "type": "Module"}, {"nodeid": "tests/integration/tools", "type": "Package"}, {"nodeid": "tests/integration/utils", "type": "Package"}]}, {"nodeid": "tests/unit/client", "outcome": "passed", "result": []}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings", "outcome": "passed", "result": [{"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_default_configuration", "type": "Function", "lineno": 79}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_environment_variable_override", "type": "Function", "lineno": 91}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_config_file_override", "type": "Function", "lineno": 106}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_environment_overrides_file", "type": "Function", "lineno": 136}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_invalid_config_file", "type": "Function", "lineno": 161}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_nonexistent_config_file", "type": "Function", "lineno": 177}]}, {"nodeid": "tests/unit/config/test_settings.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings", "type": "Class"}]}, {"nodeid": "tests/unit/config", "outcome": "passed", "result": [{"nodeid": "tests/unit/config/test_settings.py", "type": "Module"}]}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime::test_convert_datetime_with_datetime", "type": "Function", "lineno": 21}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime::test_convert_datetime_with_none", "type": "Function", "lineno": 27}]}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_datetime_object", "type": "Function", "lineno": 36}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_z_timezone", "type": "Function", "lineno": 42}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_offset_timezone_with_colon", "type": "Function", "lineno": 48}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_offset_timezone_without_colon", "type": "Function", "lineno": 62}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_short_timezone", "type": "Function", "lineno": 69}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_single_digit_timezone", "type": "Function", "lineno": 76}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_invalid_type", "type": "Function", "lineno": 83}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_short_string", "type": "Function", "lineno": 89}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_datetime_without_timezone_handling", "type": "Function", "lineno": 95}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_date_only_format_handling", "type": "Function", "lineno": 108}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_malformed_datetime", "type": "Function", "lineno": 122}]}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_string", "type": "Function", "lineno": 132}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_naive_datetime_string", "type": "Function", "lineno": 139}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_naive_datetime", "type": "Function", "lineno": 154}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_date_only_string", "type": "Function", "lineno": 173}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_naive_datetime", "type": "Function", "lineno": 188}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_non_utc_timezone", "type": "Function", "lineno": 200}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_microseconds_truncation", "type": "Function", "lineno": 213}]}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_all_datetime_params", "type": "Function", "lineno": 223}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_specific_param_names", "type": "Function", "lineno": 248}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_original_function_name_and_docs", "type": "Function", "lineno": 270}]}, {"nodeid": "tests/unit/converters/common/test_datetime.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime", "type": "Class"}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime", "type": "Class"}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime", "type": "Class"}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes", "type": "Class"}]}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_normal_case", "type": "Function", "lineno": 82}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_empty_list", "type": "Function", "lineno": 97}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_index_error", "type": "Function", "lineno": 108}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_page_and_per_page", "type": "Function", "lineno": 120}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_page_only", "type": "Function", "lineno": 136}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_per_page_only", "type": "Function", "lineno": 149}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_no_parameters", "type": "Function", "lineno": 163}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_empty_list", "type": "Function", "lineno": 177}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_out_of_range_page", "type": "Function", "lineno": 188}]}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities", "type": "Class"}]}, {"nodeid": "tests/unit/converters/common", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common/test_datetime.py", "type": "Module"}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py", "type": "Module"}]}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel::test_convert_label_full", "type": "Function", "lineno": 131}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel::test_convert_label_minimal", "type": "Function", "lineno": 150}]}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_full", "type": "Function", "lineno": 171}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_minimal", "type": "Function", "lineno": 202}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_none", "type": "Function", "lineno": 223}]}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_full", "type": "Function", "lineno": 235}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_minimal", "type": "Function", "lineno": 328}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_closed", "type": "Function", "lineno": 350}]}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList::test_convert_empty_list", "type": "Function", "lineno": 373}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList::test_convert_issue_list", "type": "Function", "lineno": 378}]}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel", "type": "Class"}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone", "type": "Class"}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue", "type": "Class"}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList", "type": "Class"}]}, {"nodeid": "tests/unit/converters/issues", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/issues/test_issues_converters.py", "type": "Module"}]}, {"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters::test_convert_file_content", "type": "Function", "lineno": 30}, {"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters::test_convert_directory_content", "type": "Function", "lineno": 61}]}, {"nodeid": "tests/unit/converters/repositories/test_contents_converters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters", "type": "Class"}]}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters::test_convert_repository", "type": "Function", "lineno": 32}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters::test_convert_repository_with_none_values", "type": "Function", "lineno": 57}]}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters", "type": "Class"}]}, {"nodeid": "tests/unit/converters/repositories", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/repositories/test_contents_converters.py", "type": "Module"}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py", "type": "Module"}]}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_empty_params", "type": "Function", "lineno": 21}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_none_values", "type": "Function", "lineno": 26}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_boolean_values", "type": "Function", "lineno": 32}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_list_values", "type": "Function", "lineno": 38}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_tuple_values", "type": "Function", "lineno": 43}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_datetime_values", "type": "Function", "lineno": 48}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_mixed_values", "type": "Function", "lineno": 54}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_numeric_values", "type": "Function", "lineno": 71}]}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_empty_params", "type": "Function", "lineno": 81}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_required_params_only", "type": "Function", "lineno": 86}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_all_params", "type": "Function", "lineno": 91}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_none_values", "type": "Function", "lineno": 103}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_empty_lists", "type": "Function", "lineno": 115}]}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_empty_params", "type": "Function", "lineno": 131}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_all_params", "type": "Function", "lineno": 136}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_none_values", "type": "Function", "lineno": 151}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_partial_params", "type": "Function", "lineno": 163}]}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_empty_params", "type": "Function", "lineno": 180}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_all_params", "type": "Function", "lineno": 185}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_none_values", "type": "Function", "lineno": 198}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_partial_params", "type": "Function", "lineno": 210}]}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_none_value", "type": "Function", "lineno": 226}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_valid_labels", "type": "Function", "lineno": 231}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_empty_list", "type": "Function", "lineno": 237}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_non_list_value", "type": "Function", "lineno": 242}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_mixed_type_list", "type": "Function", "lineno": 247}]}, {"nodeid": "tests/unit/converters/test_parameters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams", "type": "Class"}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs", "type": "Class"}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs", "type": "Class"}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs", "type": "Class"}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter", "type": "Class"}]}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_string_content", "type": "Function", "lineno": 18}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_dict_content", "type": "Function", "lineno": 27}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_list_content", "type": "Function", "lineno": 42}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_error_flag", "type": "Function", "lineno": 56}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_none_content", "type": "Function", "lineno": 65}]}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_string_error", "type": "Function", "lineno": 78}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_exception", "type": "Function", "lineno": 87}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_dict_error", "type": "Function", "lineno": 99}]}, {"nodeid": "tests/unit/converters/test_responses.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse", "type": "Class"}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse", "type": "Class"}]}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_full", "type": "Function", "lineno": 42}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_minimal", "type": "Function", "lineno": 66}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_organization", "type": "Function", "lineno": 82}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_site_admin", "type": "Function", "lineno": 106}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_none", "type": "Function", "lineno": 130}]}, {"nodeid": "tests/unit/converters/users/test_users_converters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser", "type": "Class"}]}, {"nodeid": "tests/unit/converters/users", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/users/test_users_converters.py", "type": "Module"}]}, {"nodeid": "tests/unit/converters", "outcome": "passed", "result": [{"nodeid": "tests/unit/converters/common", "type": "Dir"}, {"nodeid": "tests/unit/converters/issues", "type": "Dir"}, {"nodeid": "tests/unit/converters/repositories", "type": "Dir"}, {"nodeid": "tests/unit/converters/test_parameters.py", "type": "Module"}, {"nodeid": "tests/unit/converters/test_responses.py", "type": "Module"}, {"nodeid": "tests/unit/converters/users", "type": "Dir"}]}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_base_github_error", "type": "Function", "lineno": 26}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_validation_error", "type": "Function", "lineno": 34}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_resource_not_found_error", "type": "Function", "lineno": 53}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_authentication_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_permission_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_rate_limit_error_with_reset_time", "type": "Function", "lineno": 77}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_rate_limit_error_without_reset_time", "type": "Function", "lineno": 87}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_conflict_error", "type": "Function", "lineno": 96}]}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_github_errors", "type": "Function", "lineno": 108}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_non_github_errors", "type": "Function", "lineno": 118}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_non_errors", "type": "Function", "lineno": 125}]}, {"nodeid": "tests/unit/errors/test_formatters.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError", "type": "Class"}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError", "type": "Class"}]}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_rate_limit_exceeded", "type": "Function", "lineno": 31}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_rate_limit_exceeded_without_rate", "type": "Function", "lineno": 63}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_authentication_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_permission_error", "type": "Function", "lineno": 93}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_403_rate_limit", "type": "Function", "lineno": 107}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_with_hint", "type": "Function", "lineno": 125}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_auto_detection", "type": "Function", "lineno": 138}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_with_resource_in_data", "type": "Function", "lineno": 151}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_validation_error", "type": "Function", "lineno": 164}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_unknown_error", "type": "Function", "lineno": 183}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_string_data", "type": "Function", "lineno": 197}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_plain_string_data", "type": "Function", "lineno": 210}]}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_with_field_errors", "type": "Function", "lineno": 227}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_without_field_errors", "type": "Function", "lineno": 244}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_without_errors", "type": "Function", "lineno": 258}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_with_none_data", "type": "Function", "lineno": 267}]}, {"nodeid": "tests/unit/errors/test_handlers.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException", "type": "Class"}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError", "type": "Class"}]}, {"nodeid": "tests/unit/errors", "outcome": "passed", "result": [{"nodeid": "tests/unit/errors/test_formatters.py", "type": "Module"}, {"nodeid": "tests/unit/errors/test_handlers.py", "type": "Module"}]}, {"nodeid": "tests/unit/operations/test_repositories_ops.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_repository", "type": "Function", "lineno": 348}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_repository", "type": "Function", "lineno": 368}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_fork_repository", "type": "Function", "lineno": 396}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_search_repositories", "type": "Function", "lineno": 422}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_file_contents_file", "type": "Function", "lineno": 448}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_file_contents_directory", "type": "Function", "lineno": 494}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_or_update_file", "type": "Function", "lineno": 536}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_push_files", "type": "Function", "lineno": 566}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_branch", "type": "Function", "lineno": 598}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_list_commits", "type": "Function", "lineno": 623}]}, {"nodeid": "tests/unit/operations", "outcome": "passed", "result": [{"nodeid": "tests/unit/operations/test_repositories_ops.py", "type": "Module"}]}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_repository_ref_validation", "type": "Function", "lineno": 22}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_search_repositories_params_validation", "type": "Function", "lineno": 40}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_repository_params_validation", "type": "Function", "lineno": 71}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_get_file_contents_params_validation", "type": "Function", "lineno": 98}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_or_update_file_params_validation", "type": "Function", "lineno": 127}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_push_files_params_validation", "type": "Function", "lineno": 207}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_fork_repository_params_validation", "type": "Function", "lineno": 263}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_branch_params_validation", "type": "Function", "lineno": 283}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_list_commits_params_validation", "type": "Function", "lineno": 315}]}, {"nodeid": "tests/unit/schemas/repositories", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py", "type": "Module"}]}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_valid_data", "type": "Function", "lineno": 14}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_minimal_valid_data", "type": "Function", "lineno": 20}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_missing_required_fields", "type": "Function", "lineno": 26}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_invalid_field_types", "type": "Function", "lineno": 38}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_empty_strings", "type": "Function", "lineno": 50}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_none_values", "type": "Function", "lineno": 72}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_extra_fields", "type": "Function", "lineno": 84}]}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_valid_data", "type": "Function", "lineno": 99}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_minimal_valid_data", "type": "Function", "lineno": 105}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_missing_required_fields", "type": "Function", "lineno": 111}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_invalid_field_types", "type": "Function", "lineno": 123}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_empty_strings", "type": "Function", "lineno": 135}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_none_values", "type": "Function", "lineno": 152}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_extra_fields", "type": "Function", "lineno": 164}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_binary_content", "type": "Function", "lineno": 175}]}, {"nodeid": "tests/unit/schemas/test_base_schemas.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent", "type": "Class"}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_valid_data", "type": "Function", "lineno": 26}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_minimal_valid_data", "type": "Function", "lineno": 37}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_missing_required_fields", "type": "Function", "lineno": 52}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_invalid_field_types", "type": "Function", "lineno": 59}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_empty_strings", "type": "Function", "lineno": 105}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_none_values", "type": "Function", "lineno": 131}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_empty_lists", "type": "Function", "lineno": 157}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_default_values", "type": "Function", "lineno": 175}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_data", "type": "Function", "lineno": 188}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_minimal_valid_data", "type": "Function", "lineno": 208}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_state_values", "type": "Function", "lineno": 222}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_state_values", "type": "Function", "lineno": 234}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_sort_values", "type": "Function", "lineno": 240}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_sort_values", "type": "Function", "lineno": 252}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_direction_values", "type": "Function", "lineno": 258}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_direction_values", "type": "Function", "lineno": 267}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_page_values", "type": "Function", "lineno": 273}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_per_page_values", "type": "Function", "lineno": 283}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_none_per_page_value", "type": "Function", "lineno": 297}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_datetime_parsing", "type": "Function", "lineno": 302}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_timezone_formats", "type": "Function", "lineno": 338}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_datetime_format", "type": "Function", "lineno": 457}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_valid_data", "type": "Function", "lineno": 516}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_missing_required_fields", "type": "Function", "lineno": 523}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_invalid_issue_number_type", "type": "Function", "lineno": 530}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_negative_issue_number", "type": "Function", "lineno": 540}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_valid_data", "type": "Function", "lineno": 553}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_minimal_valid_data", "type": "Function", "lineno": 566}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_partial_update", "type": "Function", "lineno": 583}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_valid_state_values", "type": "Function", "lineno": 599}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_invalid_state_values", "type": "Function", "lineno": 616}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_empty_title", "type": "Function", "lineno": 636}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_none_values", "type": "Function", "lineno": 654}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_title_validation_edge_cases", "type": "Function", "lineno": 674}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_invalid_field_types", "type": "Function", "lineno": 684}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_valid_data", "type": "Function", "lineno": 752}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_missing_required_fields", "type": "Function", "lineno": 761}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_empty_body", "type": "Function", "lineno": 790}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_invalid_field_types", "type": "Function", "lineno": 812}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_valid_data", "type": "Function", "lineno": 848}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_missing_required_fields", "type": "Function", "lineno": 856}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_negative_issue_number", "type": "Function", "lineno": 874}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_invalid_field_types", "type": "Function", "lineno": 884}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_valid_data", "type": "Function", "lineno": 908}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_missing_required_fields", "type": "Function", "lineno": 916}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_empty_labels_list", "type": "Function", "lineno": 934}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_negative_issue_number", "type": "Function", "lineno": 945}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_invalid_field_types", "type": "Function", "lineno": 955}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_valid_data", "type": "Function", "lineno": 988}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_missing_required_fields", "type": "Function", "lineno": 996}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_empty_label", "type": "Function", "lineno": 1014}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_invalid_field_types", "type": "Function", "lineno": 1034}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_valid_data", "type": "Function", "lineno": 1058}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_missing_required_fields", "type": "Function", "lineno": 1066}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_empty_body", "type": "Function", "lineno": 1084}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_invalid_field_types", "type": "Function", "lineno": 1104}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_valid_data", "type": "Function", "lineno": 1128}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_minimal_valid_data", "type": "Function", "lineno": 1145}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_datetime_parsing", "type": "Function", "lineno": 1159}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_timezone_formats", "type": "Function", "lineno": 1198}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_datetime_format", "type": "Function", "lineno": 1298}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_field_types", "type": "Function", "lineno": 1359}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_page_values", "type": "Function", "lineno": 1397}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_per_page_values", "type": "Function", "lineno": 1417}]}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams", "type": "Class"}]}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_valid_data", "type": "Function", "lineno": 19}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_minimal_valid_data", "type": "Function", "lineno": 25}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_missing_required_fields", "type": "Function", "lineno": 36}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_invalid_content_type", "type": "Function", "lineno": 43}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_empty_content_list", "type": "Function", "lineno": 50}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_is_error_values", "type": "Function", "lineno": 57}]}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_valid_data", "type": "Function", "lineno": 83}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_missing_required_fields", "type": "Function", "lineno": 89}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_invalid_type_value", "type": "Function", "lineno": 96}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_empty_text", "type": "Function", "lineno": 103}]}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_valid_data", "type": "Function", "lineno": 114}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_missing_required_fields", "type": "Function", "lineno": 120}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_invalid_type_value", "type": "Function", "lineno": 127}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_empty_text", "type": "Function", "lineno": 134}]}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent::test_text_content", "type": "Function", "lineno": 145}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent::test_error_content", "type": "Function", "lineno": 151}]}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent", "type": "Class"}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent", "type": "Class"}]}, {"nodeid": "tests/unit/schemas", "outcome": "passed", "result": [{"nodeid": "tests/unit/schemas/repositories", "type": "Dir"}, {"nodeid": "tests/unit/schemas/test_base_schemas.py", "type": "Module"}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py", "type": "Module"}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py", "type": "Module"}]}, {"nodeid": "tests/unit/test_main.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/test_main.py::test_main_function", "type": "Function", "lineno": 54}, {"nodeid": "tests/unit/test_main.py::test_main_execution", "type": "Function", "lineno": 66}, {"nodeid": "tests/unit/test_main.py::test_module_import", "type": "Function", "lineno": 110}]}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_tool_success", "type": "Function", "lineno": 463}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_tool_error", "type": "Function", "lineno": 481}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_repository_tool_success", "type": "Function", "lineno": 495}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_repository_tool_validation_error", "type": "Function", "lineno": 518}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_fork_repository_tool", "type": "Function", "lineno": 532}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_tool", "type": "Function", "lineno": 555}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_tool_rate_limit", "type": "Function", "lineno": 573}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_file_contents_tool_file", "type": "Function", "lineno": 587}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_file_contents_tool_directory", "type": "Function", "lineno": 610}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_or_update_file_tool", "type": "Function", "lineno": 633}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_push_files_tool", "type": "Function", "lineno": 658}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_branch_tool", "type": "Function", "lineno": 686}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_branch_tool_unexpected_error", "type": "Function", "lineno": 708}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_list_commits_tool", "type": "Function", "lineno": 743}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_validation_error_handling", "type": "Function", "lineno": 768}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_traceback_logging", "type": "Function", "lineno": 796}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_different_github_error_types", "type": "Function", "lineno": 823}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_github_error_without_response", "type": "Function", "lineno": 860}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_empty_error_message", "type": "Function", "lineno": 875}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_missing_query", "type": "Function", "lineno": 890}]}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_repository_error_handling", "type": "Function", "lineno": 122}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_fork_repository_error_handling", "type": "Function", "lineno": 141}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_search_repositories_empty_results", "type": "Function", "lineno": 160}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_search_repositories_validation_error", "type": "Function", "lineno": 181}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_get_file_contents_parameter_validation", "type": "Function", "lineno": 200}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_or_update_file_error_handling", "type": "Function", "lineno": 211}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_or_update_file_validation_error", "type": "Function", "lineno": 236}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_push_files_validation_error", "type": "Function", "lineno": 252}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_push_files_error_handling", "type": "Function", "lineno": 266}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_branch_validation_error", "type": "Function", "lineno": 291}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_branch_error_handling", "type": "Function", "lineno": 304}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_list_commits_parameter_validation", "type": "Function", "lineno": 328}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_list_commits_error_handling", "type": "Function", "lineno": 341}]}, {"nodeid": "tests/unit/tools/repositories", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py", "type": "Module"}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "type": "Module"}]}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator::test_tool_registration", "type": "Function", "lineno": 30}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator::test_multiple_tool_registration", "type": "Function", "lineno": 44}]}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolRegistration", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolRegistration::test_register_tools", "type": "Function", "lineno": 70}]}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading::test_load_tools_enabled_group", "type": "Function", "lineno": 163}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading::test_load_tools_module_error", "type": "Function", "lineno": 205}]}, {"nodeid": "tests/unit/tools/test_registration_tools.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator", "type": "Class"}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolRegistration", "type": "Class"}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading", "type": "Class"}]}, {"nodeid": "tests/unit/tools", "outcome": "passed", "result": [{"nodeid": "tests/unit/tools/repositories", "type": "Dir"}, {"nodeid": "tests/unit/tools/test_registration_tools.py", "type": "Module"}]}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken", "outcome": "passed", "result": [{"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken::test_with_token_in_env", "type": "Function", "lineno": 21}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken::test_without_token_in_env", "type": "Function", "lineno": 27}]}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar", "outcome": "passed", "result": [{"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_with_var_in_env", "type": "Function", "lineno": 38}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_without_var_in_env_no_default", "type": "Function", "lineno": 44}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_without_var_in_env_with_default", "type": "Function", "lineno": 51}]}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar", "outcome": "passed", "result": [{"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[true-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[True-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[TRUE-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[1-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[yes-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[Yes-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[YES-True]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[false-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[False-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[FALSE-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[0-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[no-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[No-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[NO-False]", "type": "Function", "lineno": 61}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_invalid_bool_value", "type": "Function", "lineno": 83}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_without_var_in_env_no_default", "type": "Function", "lineno": 91}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_without_var_in_env_with_default", "type": "Function", "lineno": 98}]}, {"nodeid": "tests/unit/utils/test_environment.py", "outcome": "passed", "result": [{"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken", "type": "Class"}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar", "type": "Class"}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar", "type": "Class"}]}, {"nodeid": "tests/unit/utils", "outcome": "passed", "result": [{"nodeid": "tests/unit/utils/test_environment.py", "type": "Module"}]}, {"nodeid": "tests/unit", "outcome": "passed", "result": [{"nodeid": "tests/unit/client", "type": "Dir"}, {"nodeid": "tests/unit/config", "type": "Dir"}, {"nodeid": "tests/unit/converters", "type": "Package"}, {"nodeid": "tests/unit/errors", "type": "Dir"}, {"nodeid": "tests/unit/operations", "type": "Dir"}, {"nodeid": "tests/unit/schemas", "type": "Package"}, {"nodeid": "tests/unit/test_main.py", "type": "Module"}, {"nodeid": "tests/unit/tools", "type": "Dir"}, {"nodeid": "tests/unit/utils", "type": "Package"}]}, {"nodeid": "tests", "outcome": "passed", "result": [{"nodeid": "tests/integration", "type": "Package"}, {"nodeid": "tests/unit", "type": "Package"}]}], "tests": [{"nodeid": "tests/integration/client/test_client.py::test_singleton_pattern", "lineno": 22, "outcome": "passed", "keywords": ["test_singleton_pattern", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0030779510270804167, "outcome": "passed"}, "call": {"duration": 0.0005996900144964457, "outcome": "passed"}, "teardown": {"duration": 0.0006189181003719568, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_client.py::test_direct_instantiation", "lineno": 37, "outcome": "passed", "keywords": ["test_direct_instantiation", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004690820351243019, "outcome": "passed"}, "call": {"duration": 0.0008890670724213123, "outcome": "passed"}, "teardown": {"duration": 0.00043011480011045933, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_client.py::test_github_property", "lineno": 45, "outcome": "passed", "keywords": ["test_github_property", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005217189900577068, "outcome": "passed"}, "call": {"duration": 0.11918258387595415, "outcome": "passed"}, "teardown": {"duration": 0.0005179028958082199, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_success", "lineno": 59, "outcome": "passed", "keywords": ["test_get_repo_success", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0011359709315001965, "outcome": "passed"}, "call": {"duration": 0.4226724070031196, "outcome": "passed", "stdout": "DEBUG: Executing get_test_repo (attempt 1/3)\n"}, "teardown": {"duration": 0.0005929379258304834, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_not_found", "lineno": 73, "outcome": "passed", "keywords": ["test_get_repo_not_found", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007597291842103004, "outcome": "passed"}, "call": {"duration": 0.3501014979556203, "outcome": "passed", "stdout": "DEBUG: Executing get_nonexistent_repo (attempt 1/3)\n", "stderr": "2025-03-08 15:27:03,336 - pygithub_mcp_server.client.client - ERROR - GitHub exception when getting repo AstroMined/nonexistent-repo-20250308152702: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/repos/repos#get-a-repository\", \"status\": \"404\"}\n2025-03-08 15:27:03,338 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}\n2025-03-08 15:27:03,338 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.client.client", "msg": "GitHub exception when getting repo AstroMined/nonexistent-repo-20250308152702: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/repos/repos#get-a-repository\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/client/client.py", "filename": "client.py", "module": "client", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 144, "funcName": "get_repo", "created": 1741465623.3368514, "msecs": 336.0, "relativeCreated": 3350.043773651123, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741465623.3380196, "msecs": 338.0, "relativeCreated": 3351.2120246887207, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741465623.3387449, "msecs": 338.0, "relativeCreated": 3351.9372940063477, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}]}, "teardown": {"duration": 0.0006831709761172533, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_client.py::test_get_repo_invalid_name", "lineno": 91, "outcome": "passed", "keywords": ["test_get_repo_invalid_name", "integration", "pytestmark", "test_client.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0011458441149443388, "outcome": "passed"}, "call": {"duration": 0.3323208689689636, "outcome": "passed", "stdout": "DEBUG: Executing get_invalid_repo (attempt 1/3)\n", "stderr": "2025-03-08 15:27:03,674 - pygithub_mcp_server.client.client - ERROR - GitHub exception when getting repo invalid/repo/name: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest\", \"status\": \"404\"}\n2025-03-08 15:27:03,675 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest', 'status': '404'}\n2025-03-08 15:27:03,675 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.client.client", "msg": "GitHub exception when getting repo invalid/repo/name: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/client/client.py", "filename": "client.py", "module": "client", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 144, "funcName": "get_repo", "created": 1741465623.6743453, "msecs": 674.0, "relativeCreated": 3687.537670135498, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741465623.6751916, "msecs": 675.0, "relativeCreated": 3688.3840560913086, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741465623.67561, "msecs": 675.0, "relativeCreated": 3688.802480697632, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:03"}]}, "teardown": {"duration": 0.000589360948652029, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_check_rate_limit_real_api", "lineno": 30, "outcome": "passed", "keywords": ["test_check_rate_limit_real_api", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005629970692098141, "outcome": "passed"}, "call": {"duration": 0.3565373569726944, "outcome": "passed"}, "teardown": {"duration": 0.0005144530441612005, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_exponential_backoff", "lineno": 44, "outcome": "passed", "keywords": ["test_exponential_backoff", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005212880205363035, "outcome": "passed"}, "call": {"duration": 0.0006006858311593533, "outcome": "passed"}, "teardown": {"duration": 0.00041630608029663563, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_exponential_backoff_max_attempts", "lineno": 64, "outcome": "passed", "keywords": ["test_exponential_backoff_max_attempts", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004621860571205616, "outcome": "passed"}, "call": {"duration": 0.000997308176010847, "outcome": "passed"}, "teardown": {"duration": 0.0004199880640953779, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_wait_for_rate_limit_reset_past_time", "lineno": 70, "outcome": "passed", "keywords": ["test_wait_for_rate_limit_reset_past_time", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005019698292016983, "outcome": "passed"}, "call": {"duration": 0.10087089892476797, "outcome": "passed"}, "teardown": {"duration": 0.00043354788795113564, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_wait_for_rate_limit_reset_future_time", "lineno": 85, "outcome": "passed", "keywords": ["test_wait_for_rate_limit_reset_future_time", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000474357046186924, "outcome": "passed"}, "call": {"duration": 0.3015118478797376, "outcome": "passed"}, "teardown": {"duration": 0.0004869198892265558, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_backoff_test_mode", "lineno": 99, "outcome": "passed", "keywords": ["test_handle_rate_limit_with_backoff_test_mode", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005330101121217012, "outcome": "passed"}, "call": {"duration": 0.1010444110725075, "outcome": "passed"}, "teardown": {"duration": 0.0004859629552811384, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_backoff_max_attempts", "lineno": 123, "outcome": "passed", "keywords": ["test_handle_rate_limit_with_backoff_max_attempts", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000545696122571826, "outcome": "passed"}, "call": {"duration": 0.0013410141691565514, "outcome": "passed", "stderr": "2025-03-08 15:27:04,558 - pygithub_mcp_server.client.rate_limit - ERROR - Maximum retry attempts (5) exceeded for rate limit\n", "log": [{"name": "pygithub_mcp_server.client.rate_limit", "msg": "Maximum retry attempts (5) exceeded for rate limit", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/client/rate_limit.py", "filename": "rate_limit.py", "module": "rate_limit", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 110, "funcName": "handle_rate_limit_with_backoff", "created": 1741465624.5582151, "msecs": 558.0, "relativeCreated": 4571.4075565338135, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:04"}]}, "teardown": {"duration": 0.00042313593439757824, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_with_exception_reset_time", "lineno": 143, "outcome": "passed", "keywords": ["test_handle_rate_limit_with_exception_reset_time", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000736145069822669, "outcome": "passed"}, "call": {"duration": 0.1012604299467057, "outcome": "passed"}, "teardown": {"duration": 0.000630388967692852, "outcome": "passed"}}, {"nodeid": "tests/integration/client/test_rate_limit.py::TestRateLimit::test_handle_rate_limit_without_reset_time", "lineno": 192, "outcome": "passed", "keywords": ["test_handle_rate_limit_without_reset_time", "TestRateLimit", "integration", "test_rate_limit.py", "client", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000752223888412118, "outcome": "passed"}, "call": {"duration": 0.01106100482866168, "outcome": "passed"}, "teardown": {"duration": 0.0005924340803176165, "outcome": "passed"}}, {"nodeid": "tests/integration/converters/common/test_pagination_integration.py::test_pagination_with_real_api", "lineno": 17, "outcome": "passed", "keywords": ["test_pagination_with_real_api", "integration", "pytestmark", "test_pagination_integration.py", "common", "converters", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0023862088564783335, "outcome": "passed"}, "call": {"duration": 9.739154117880389, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing get_paginated_issues (attempt 1/3)\nDEBUG: Executing get_all_issues (attempt 1/3)\nDEBUG: Executing get_page_issues (attempt 1/3)\nDEBUG: Executing get_filtered_issues (attempt 1/3)\nDEBUG: Executing get_empty_results (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006384511943906546, "outcome": "passed"}}, {"nodeid": "tests/integration/converters/common/test_pagination_integration.py::test_pagination_with_converted_items", "lineno": 107, "outcome": "passed", "keywords": ["test_pagination_with_converted_items", "integration", "pytestmark", "test_pagination_integration.py", "common", "converters", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009573299903422594, "outcome": "passed"}, "call": {"duration": 39.25601130910218, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing get_paginated_issues (attempt 1/3)\nDEBUG: Executing get_and_convert_issues (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0015650081913918257, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_not_found", "lineno": 24, "outcome": "passed", "keywords": ["test_handle_github_exception_not_found", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.003144548973068595, "outcome": "passed"}, "call": {"duration": 0.3383801239542663, "outcome": "passed", "stdout": "DEBUG: Executing get_nonexistent_repo (attempt 1/3)\n", "stderr": "2025-03-08 15:27:54,027 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}\n2025-03-08 15:27:54,028 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741465674.0274942, "msecs": 27.0, "relativeCreated": 54040.68660736084, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:54"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741465674.0287426, "msecs": 28.0, "relativeCreated": 54041.934967041016, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:54"}]}, "teardown": {"duration": 0.0005265981890261173, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_invalid_input", "lineno": 49, "outcome": "passed", "keywords": ["test_handle_github_exception_invalid_input", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007132759783416986, "outcome": "passed"}, "call": {"duration": 0.8135207509621978, "outcome": "passed", "stdout": "DEBUG: Executing create_invalid_issue (attempt 1/3)\n", "stderr": "2025-03-08 15:27:54,844 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=422, data={'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'missing_field', 'field': 'title'}], 'documentation_url': 'https://docs.github.com/rest/issues/issues#create-an-issue', 'status': '422'}\n2025-03-08 15:27:54,845 - pygithub_mcp_server.errors.handlers - ERROR - Validation error\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=422, data={'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'missing_field', 'field': 'title'}], 'documentation_url': 'https://docs.github.com/rest/issues/issues#create-an-issue', 'status': '422'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741465674.8443685, "msecs": 844.0, "relativeCreated": 54857.560873031616, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:54"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Validation error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 138, "funcName": "handle_github_exception", "created": 1741465674.845202, "msecs": 845.0, "relativeCreated": 54858.394384384155, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:54"}]}, "teardown": {"duration": 0.0005580170545727015, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_handle_github_exception_rate_limit", "lineno": 73, "outcome": "passed", "keywords": ["test_handle_github_exception_rate_limit", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005175410769879818, "outcome": "passed"}, "call": {"duration": 0.0013467881362885237, "outcome": "passed", "stderr": "2025-03-08 15:27:54,849 - pygithub_mcp_server.errors.handlers - ERROR - Rate limit exceeded\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Rate limit exceeded", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 41, "funcName": "handle_github_exception", "created": 1741465674.8491874, "msecs": 849.0, "relativeCreated": 54862.37978935242, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:27:54"}]}, "teardown": {"duration": 0.0006230310536921024, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error", "lineno": 92, "outcome": "passed", "keywords": ["test_format_validation_error", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047495705075562, "outcome": "passed"}, "call": {"duration": 0.0006245209369808435, "outcome": "passed"}, "teardown": {"duration": 0.0004076769109815359, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error_no_errors", "lineno": 124, "outcome": "passed", "keywords": ["test_format_validation_error_no_errors", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004694778472185135, "outcome": "passed"}, "call": {"duration": 0.0005246859509497881, "outcome": "passed"}, "teardown": {"duration": 0.0004062249790877104, "outcome": "passed"}}, {"nodeid": "tests/integration/errors/test_handlers_integration.py::test_format_validation_error_no_data", "lineno": 140, "outcome": "passed", "keywords": ["test_format_validation_error_no_data", "integration", "pytestmark", "test_handlers_integration.py", "errors", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004709060303866863, "outcome": "passed"}, "call": {"duration": 0.0005224200431257486, "outcome": "passed"}, "teardown": {"duration": 0.00044923601672053337, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_add_issue_comment", "lineno": 26, "outcome": "passed", "keywords": ["test_add_issue_comment", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0019827671349048615, "outcome": "passed"}, "call": {"duration": 5.440211354987696, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.000631706090644002, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_list_issue_comments", "lineno": 82, "outcome": "passed", "keywords": ["test_list_issue_comments", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000976576004177332, "outcome": "passed"}, "call": {"duration": 6.630423621973023, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005934461951255798, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_update_issue_comment", "lineno": 157, "outcome": "passed", "keywords": ["test_update_issue_comment", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009632029104977846, "outcome": "passed"}, "call": {"duration": 8.427386722061783, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing update_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006388160400092602, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_delete_issue_comment", "lineno": 248, "outcome": "passed", "keywords": ["test_delete_issue_comment", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009645130485296249, "outcome": "passed"}, "call": {"duration": 10.018088788026944, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments_before (attempt 1/3)\nDEBUG: Executing delete_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments_after (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.000628940062597394, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_list_issue_comments_since", "lineno": 343, "outcome": "passed", "keywords": ["test_list_issue_comments_since", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009598531760275364, "outcome": "passed"}, "call": {"duration": 7.891332786995918, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments_since (attempt 1/3)\nDEBUG: Executing list_test_comments_future (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005996641702950001, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_comments.py::test_comment_lifecycle", "lineno": 440, "outcome": "passed", "keywords": ["test_comment_lifecycle", "integration", "pytestmark", "test_comments.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009658229537308216, "outcome": "passed"}, "call": {"duration": 13.338586094090715, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments (attempt 1/3)\nDEBUG: Executing update_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments_after_update (attempt 1/3)\nDEBUG: Executing delete_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments_after_delete (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005833611357957125, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_create.py::test_create_issue_required_params", "lineno": 12, "outcome": "passed", "keywords": ["test_create_issue_required_params", "integration", "pytestmark", "test_create.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009403149597346783, "outcome": "passed"}, "call": {"duration": 1.3873747950419784, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006124938372522593, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_create.py::test_create_issue_all_params", "lineno": 47, "outcome": "passed", "keywords": ["test_create_issue_all_params", "integration", "pytestmark", "test_create.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010421250481158495, "outcome": "passed"}, "call": {"duration": 1.8972561219707131, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006079270970076323, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_create.py::test_create_and_verify_issue", "lineno": 92, "outcome": "passed", "keywords": ["test_create_and_verify_issue", "integration", "pytestmark", "test_create.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009535399731248617, "outcome": "passed"}, "call": {"duration": 2.5878358019981533, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing get_test_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005930799525231123, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_add_issue_labels", "lineno": 22, "outcome": "passed", "keywords": ["test_add_issue_labels", "integration", "pytestmark", "test_labels.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009543369524180889, "outcome": "passed"}, "call": {"duration": 5.628993647173047, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_labels (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005951980128884315, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_remove_issue_label", "lineno": 78, "outcome": "passed", "keywords": ["test_remove_issue_label", "integration", "pytestmark", "test_labels.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009204109665006399, "outcome": "passed"}, "call": {"duration": 9.575108268065378, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing get_issue_with_labels (attempt 1/3)\nDEBUG: Executing remove_test_label (attempt 1/3)\nDEBUG: Executing get_issue_after_remove (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006050360389053822, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_add_issue_labels_multiple_calls", "lineno": 161, "outcome": "passed", "keywords": ["test_add_issue_labels_multiple_calls", "integration", "pytestmark", "test_labels.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009708029683679342, "outcome": "passed"}, "call": {"duration": 7.500013900920749, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_first_label (attempt 1/3)\nDEBUG: Executing add_second_label (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005969679914414883, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_remove_nonexistent_label", "lineno": 231, "outcome": "passed", "keywords": ["test_remove_nonexistent_label", "integration", "pytestmark", "test_labels.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009388038888573647, "outcome": "passed"}, "call": {"duration": 6.013318372890353, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing remove_nonexistent_label (attempt 1/3)\nDEBUG: Executing get_issue_after_remove (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n", "stderr": "2025-03-08 15:29:17,788 - pygithub_mcp_server.operations.issues - WARNING - Label 'nonexistent-test-20250308152915-00b78036' does not exist on issue #986\n", "log": [{"name": "pygithub_mcp_server.operations.issues", "msg": "Label 'nonexistent-test-20250308152915-00b78036' does not exist on issue #986", "args": null, "levelname": "WARNING", "levelno": 30, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py", "filename": "issues.py", "module": "issues", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 398, "funcName": "remove_issue_label", "created": 1741465757.7883916, "msecs": 788.0, "relativeCreated": 137801.58400535583, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:29:17"}]}, "teardown": {"duration": 0.0005881742108613253, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_labels.py::test_label_lifecycle", "lineno": 295, "outcome": "passed", "keywords": ["test_label_lifecycle", "integration", "pytestmark", "test_labels.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009434639941900969, "outcome": "passed"}, "call": {"duration": 13.86625986895524, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing add_test_labels (attempt 1/3)\nDEBUG: Executing remove_bug_label (attempt 1/3)\nDEBUG: Executing get_issue_after_remove (attempt 1/3)\nDEBUG: Executing remove_enhancement_label (attempt 1/3)\nDEBUG: Executing get_issue_after_second_remove (attempt 1/3)\nDEBUG: Executing remove_documentation_label (attempt 1/3)\nDEBUG: Executing get_issue_after_all_removed (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006072011310607195, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_lifecycle.py::test_issue_lifecycle", "lineno": 35, "outcome": "passed", "keywords": ["test_issue_lifecycle", "integration", "pytestmark", "test_lifecycle.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000971687026321888, "outcome": "passed"}, "call": {"duration": 17.666195504833013, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing get_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue (attempt 1/3)\nDEBUG: Executing add_test_comment (attempt 1/3)\nDEBUG: Executing list_test_comments (attempt 1/3)\nDEBUG: Executing update_test_comment (attempt 1/3)\nDEBUG: Executing add_test_labels (attempt 1/3)\nDEBUG: Executing remove_test_label (attempt 1/3)\nDEBUG: Executing close_test_issue (attempt 1/3)\nDEBUG: Executing ensure_closed (attempt 1/3)\n"}, "teardown": {"duration": 0.0006359480321407318, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_basic", "lineno": 20, "outcome": "passed", "keywords": ["test_list_issues_basic", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009653670713305473, "outcome": "passed"}, "call": {"duration": 21.329399435780942, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing list_test_issues (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006222748197615147, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_state_filter", "lineno": 83, "outcome": "passed", "keywords": ["test_list_issues_state_filter", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009488000068813562, "outcome": "passed"}, "call": {"duration": 59.83637695782818, "outcome": "passed", "stdout": "\n--- DEBUG: Starting test_list_issues_state_filter ---\nDEBUG: Creating open issue with title: Test Issue (Open) test-20250308153014-3647fafd\nDEBUG: Executing create_open_issue (attempt 1/3)\nDEBUG: Open issue created successfully with number: 990\nDEBUG: Open issue creation completed, issue number: 990\nDEBUG: Creating closed issue with title: Test Issue (Closed) test-20250308153014-3647fafd\nDEBUG: Executing create_closed_issue (attempt 1/3)\nDEBUG: Closed issue created, now closing it. Issue number: 991\nDEBUG: Issue 991 successfully closed\nDEBUG: Closed issue creation completed, issue number: 991\nDEBUG: Listing open issues\nDEBUG: Executing list_open_issues (attempt 1/3)\nDEBUG: Retrieved 20 open issues\nDEBUG: Open issues listing completed\nDEBUG: Verifying open issue is in the list\nDEBUG: Open issue verification passed\nDEBUG: Verifying closed issue is NOT in the open issues list\nDEBUG: Closed issue verification passed (not in open issues)\nDEBUG: Listing closed issues\nDEBUG: Executing list_closed_issues (attempt 1/3)\nDEBUG: Retrieved 20 closed issues\nDEBUG: Closed issues listing completed\nDEBUG: Verifying closed issue is in the list\nDEBUG: Closed issue verification passed\nDEBUG: Verifying open issue is NOT in the closed issues list\nDEBUG: Open issue verification passed (not in closed issues)\nDEBUG: Listing all issues\nDEBUG: Executing list_all_issues (attempt 1/3)\nDEBUG: Retrieved 20 total issues\nDEBUG: All issues listing completed\nDEBUG: Verifying both issues are in the 'all issues' list\nDEBUG: Found closed issue 991 in all issues list\nDEBUG: Found open issue 990 in all issues list\nDEBUG: Both issues verification passed\nDEBUG: Starting cleanup\nDEBUG: Executing close_open_issue (attempt 1/3)\nDEBUG: Successfully closed open issue 990 during cleanup\nDEBUG: Test completed\n"}, "teardown": {"duration": 0.0006038821302354336, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_pagination", "lineno": 278, "outcome": "passed", "keywords": ["test_list_issues_pagination", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009202570654451847, "outcome": "passed"}, "call": {"duration": 14.686039644060656, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing list_test_issues_page1 (attempt 1/3)\nDEBUG: Executing list_test_issues_page2 (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005982790607959032, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_labels_filter", "lineno": 365, "outcome": "passed", "keywords": ["test_list_issues_labels_filter", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009411640930920839, "outcome": "passed"}, "call": {"duration": 21.36513166781515, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing list_bug_issues (attempt 1/3)\nDEBUG: Executing list_test_label_issues (attempt 1/3)\nDEBUG: Executing list_nonexistent_label_issues (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005997740663588047, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_sort_and_direction", "lineno": 474, "outcome": "passed", "keywords": ["test_list_issues_sort_and_direction", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009768509771674871, "outcome": "passed"}, "call": {"duration": 45.1862782901153, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue1 (attempt 1/3)\nDEBUG: Executing create_test_issue2 (attempt 1/3)\nDEBUG: Executing list_created_asc (attempt 1/3)\nDEBUG: Executing list_created_desc (attempt 1/3)\nDEBUG: Executing close_issues (attempt 1/3)\n"}, "teardown": {"duration": 0.0006087610963732004, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_list.py::test_list_issues_since", "lineno": 593, "outcome": "passed", "keywords": ["test_list_issues_since", "integration", "pytestmark", "test_list.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009642769582569599, "outcome": "passed"}, "call": {"duration": 13.874328071950004, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing list_issues_since (attempt 1/3)\nDEBUG: Executing list_issues_future (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005988539196550846, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_state", "lineno": 38, "outcome": "passed", "keywords": ["test_list_issues_invalid_state", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005721778143197298, "outcome": "passed"}, "call": {"duration": 0.000849118921905756, "outcome": "passed"}, "teardown": {"duration": 0.0004025332164019346, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_sort", "lineno": 50, "outcome": "passed", "keywords": ["test_list_issues_invalid_sort", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005029190797358751, "outcome": "passed"}, "call": {"duration": 0.0006095368880778551, "outcome": "passed"}, "teardown": {"duration": 0.0003893449902534485, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_direction", "lineno": 62, "outcome": "passed", "keywords": ["test_list_issues_invalid_direction", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005105060990899801, "outcome": "passed"}, "call": {"duration": 0.0006058758590370417, "outcome": "passed"}, "teardown": {"duration": 0.0004118329379707575, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_page", "lineno": 74, "outcome": "passed", "keywords": ["test_list_issues_invalid_page", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005093230865895748, "outcome": "passed"}, "call": {"duration": 0.0006850860081613064, "outcome": "passed"}, "teardown": {"duration": 0.00041844299994409084, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_per_page", "lineno": 96, "outcome": "passed", "keywords": ["test_list_issues_invalid_per_page", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005060110706835985, "outcome": "passed"}, "call": {"duration": 0.0007279310375452042, "outcome": "passed"}, "teardown": {"duration": 0.00040129292756319046, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_labels", "lineno": 128, "outcome": "passed", "keywords": ["test_list_issues_invalid_labels", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004961960949003696, "outcome": "passed"}, "call": {"duration": 0.0006405911408364773, "outcome": "passed"}, "teardown": {"duration": 0.00039856182411313057, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_invalid_since", "lineno": 150, "outcome": "passed", "keywords": ["test_list_issues_invalid_since", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005143710877746344, "outcome": "passed"}, "call": {"duration": 0.0006157199386507273, "outcome": "passed"}, "teardown": {"duration": 0.00040753697976469994, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_update_issue_with_no_changes", "lineno": 162, "outcome": "passed", "keywords": ["test_update_issue_with_no_changes", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0011367111001163721, "outcome": "passed"}, "call": {"duration": 5.140796168008819, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_with_no_changes (attempt 1/3)\n"}, "teardown": {"duration": 0.0006079110316932201, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_update_issue_invalid_milestone", "lineno": 201, "outcome": "passed", "keywords": ["test_update_issue_invalid_milestone", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009527469519525766, "outcome": "passed"}, "call": {"duration": 5.19359703687951, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\n", "stderr": "2025-03-08 15:32:56,844 - pygithub_mcp_server.operations.issues - ERROR - Failed to get milestone 999999999: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/milestones#get-a-milestone\", \"status\": \"404\"}\n", "log": [{"name": "pygithub_mcp_server.operations.issues", "msg": "Failed to get milestone 999999999: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/milestones#get-a-milestone\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py", "filename": "issues.py", "module": "issues", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 138, "funcName": "update_issue", "created": 1741465976.844623, "msecs": 844.0, "relativeCreated": 356857.8155040741, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:32:56"}]}, "teardown": {"duration": 0.0006386558525264263, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_create_issue_invalid_milestone", "lineno": 236, "outcome": "passed", "keywords": ["test_create_issue_invalid_milestone", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008472059853374958, "outcome": "passed"}, "call": {"duration": 0.7851563659496605, "outcome": "passed", "stderr": "2025-03-08 15:33:00,231 - pygithub_mcp_server.operations.issues - ERROR - Failed to get milestone 999999999: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/milestones#get-a-milestone\", \"status\": \"404\"}\n", "log": [{"name": "pygithub_mcp_server.operations.issues", "msg": "Failed to get milestone 999999999: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/milestones#get-a-milestone\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py", "filename": "issues.py", "module": "issues", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 67, "funcName": "create_issue", "created": 1741465980.23148, "msecs": 231.0, "relativeCreated": 360244.6722984314, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:33:00"}]}, "teardown": {"duration": 0.0005509790498763323, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issue_comments_invalid_since", "lineno": 250, "outcome": "passed", "keywords": ["test_list_issue_comments_invalid_since", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009703901596367359, "outcome": "passed"}, "call": {"duration": 4.524626431055367, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006035449914634228, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_parameter_validation.py::TestIssueOperationsValidation::test_list_issues_timezone_handling", "lineno": 284, "outcome": "passed", "keywords": ["test_list_issues_timezone_handling", "TestIssueOperationsValidation", "integration", "test_parameter_validation.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000552220968529582, "outcome": "passed"}, "call": {"duration": 31.735998754156753, "outcome": "passed"}, "teardown": {"duration": 0.0004805040080100298, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_simple.py::test_simple_issue_creation", "lineno": 25, "outcome": "passed", "keywords": ["test_simple_issue_creation", "integration", "pytestmark", "test_simple.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009560040198266506, "outcome": "passed"}, "call": {"duration": 4.05454231495969, "outcome": "passed", "stdout": "DEBUG: Starting simple test\nDEBUG: Creating issue with title: Simple Test Issue test-20250308153336-705694c5\nDEBUG: Issue created with number: 1000\nDEBUG: Cleaning up the issue\nDEBUG: Test completed successfully\n"}, "teardown": {"duration": 0.0006347100716084242, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_simple.py::test_simple_list_issues", "lineno": 60, "outcome": "passed", "keywords": ["test_simple_list_issues", "integration", "pytestmark", "test_simple.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009839569684118032, "outcome": "passed"}, "call": {"duration": 39.35990071296692, "outcome": "passed", "stdout": "DEBUG: Starting simple list issues test\nDEBUG: Creating issue with title: List Test Issue test-20250308153340-8c35f348\nDEBUG: Issue created with number: 1001\nDEBUG: Listing issues\nDEBUG: Listed 42 issues\nDEBUG: Found our test issue in the list\nDEBUG: Issue verification successful\nDEBUG: Cleaning up the issue\nDEBUG: Test completed successfully\n"}, "teardown": {"duration": 0.0006043019238859415, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_simple.py::test_list_issues_with_state", "lineno": 115, "outcome": "passed", "keywords": ["test_list_issues_with_state", "integration", "pytestmark", "test_simple.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009406660683453083, "outcome": "passed"}, "call": {"duration": 62.82462054095231, "outcome": "passed", "stdout": "\n--- DEBUG: Starting test_list_issues_with_state ---\nDEBUG: Creating open issue with title: Open Issue test-20250308153419-ef14325e\nDEBUG: Open issue created with number: 1002\nDEBUG: Creating closed issue with title: Closed Issue test-20250308153419-ef14325e\nDEBUG: Closed issue created with number: 1003\nDEBUG: Closing issue 1003\nDEBUG: Issue 1003 closed successfully\nDEBUG: Waiting for API to process state changes...\nDEBUG: Listing limited issues without state filter\nDEBUG: Listed 10 issues without state filter\nDEBUG: Listing open issues\nDEBUG: Listed 10 open issues\nDEBUG: Found our open issue in open issues list\nDEBUG: Listing closed issues (limited)\nDEBUG: Listed 20 closed issues\nDEBUG: Found our closed issue in closed issues list\nDEBUG: Listing 'all' issues (limited)\nDEBUG: Listed 20 issues with 'all' state\nDEBUG: All state filter tests completed successfully\nDEBUG: Cleaning up issues\nDEBUG: Cleanup completed successfully\n"}, "teardown": {"duration": 0.0006348160095512867, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_title", "lineno": 16, "outcome": "passed", "keywords": ["test_update_issue_title", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009655221365392208, "outcome": "passed"}, "call": {"duration": 7.340881105046719, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue (attempt 1/3)\nDEBUG: Executing get_test_issue (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005887940060347319, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_body", "lineno": 83, "outcome": "passed", "keywords": ["test_update_issue_body", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009658688213676214, "outcome": "passed"}, "call": {"duration": 7.298603025032207, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue (attempt 1/3)\nDEBUG: Executing get_test_issue (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.000619363971054554, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_state", "lineno": 152, "outcome": "passed", "keywords": ["test_update_issue_state", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00095365010201931, "outcome": "passed"}, "call": {"duration": 10.873473361833021, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing close_test_issue (attempt 1/3)\nDEBUG: Executing get_closed_issue (attempt 1/3)\nDEBUG: Executing reopen_test_issue (attempt 1/3)\nDEBUG: Executing get_reopened_issue (attempt 1/3)\nDEBUG: Executing ensure_closed (attempt 1/3)\n"}, "teardown": {"duration": 0.0005929400213062763, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_labels", "lineno": 244, "outcome": "passed", "keywords": ["test_update_issue_labels", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009573218412697315, "outcome": "passed"}, "call": {"duration": 8.741248978069052, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue_labels (attempt 1/3)\nDEBUG: Executing update_test_issue_labels_again (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005987109616398811, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_multiple_fields", "lineno": 314, "outcome": "passed", "keywords": ["test_update_issue_multiple_fields", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009697910863906145, "outcome": "passed"}, "call": {"duration": 6.585810597985983, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue_multiple (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0005865530110895634, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/issues/test_update.py::test_update_issue_no_changes", "lineno": 374, "outcome": "passed", "keywords": ["test_update_issue_no_changes", "integration", "pytestmark", "test_update.py", "issues", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009426299948245287, "outcome": "passed"}, "call": {"duration": 4.987713743001223, "outcome": "passed", "stdout": "DEBUG: Executing create_test_issue (attempt 1/3)\nDEBUG: Executing update_test_issue_no_changes (attempt 1/3)\nDEBUG: Executing close_issue (attempt 1/3)\n"}, "teardown": {"duration": 0.0006295861676335335, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_get_repository_integration", "lineno": 22, "outcome": "passed", "keywords": ["test_get_repository_integration", "test_repositories_integration.py", "integration", "repositories", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007574609480798244, "outcome": "passed"}, "call": {"duration": 0.4078915680292994, "outcome": "passed", "stdout": "DEBUG: Executing get_repo_with_retry (attempt 1/3)\n"}, "teardown": {"duration": 0.000552590936422348, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_search_repositories_integration", "lineno": 40, "outcome": "passed", "keywords": ["test_search_repositories_integration", "test_repositories_integration.py", "integration", "repositories", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007039450574666262, "outcome": "passed"}, "call": {"duration": 1.3933369209989905, "outcome": "passed", "stdout": "DEBUG: Executing search_repos_with_retry (attempt 1/3)\n"}, "teardown": {"duration": 0.0005370890721678734, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_get_file_contents_integration", "lineno": 70, "outcome": "passed", "keywords": ["test_get_file_contents_integration", "test_repositories_integration.py", "integration", "repositories", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007360922172665596, "outcome": "passed"}, "call": {"duration": 0.767427952028811, "outcome": "passed", "stdout": "DEBUG: Executing get_contents_with_retry (attempt 1/3)\n"}, "teardown": {"duration": 0.0005435599014163017, "outcome": "passed"}}, {"nodeid": "tests/integration/operations/repositories/test_repositories_integration.py::test_list_commits_integration", "lineno": 108, "outcome": "passed", "keywords": ["test_list_commits_integration", "test_repositories_integration.py", "integration", "repositories", "operations", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007359168957918882, "outcome": "passed"}, "call": {"duration": 1.3017013501375914, "outcome": "passed", "stdout": "DEBUG: Executing list_commits_with_retry (attempt 1/3)\n"}, "teardown": {"duration": 0.0005473929923027754, "outcome": "passed"}}, {"nodeid": "tests/integration/test_server.py::TestServer::test_create_server_basic", "lineno": 44, "outcome": "passed", "keywords": ["test_create_server_basic", "TestServer", "integration", "test_server.py", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005061191041022539, "outcome": "passed"}, "call": {"duration": 0.0858670228626579, "outcome": "passed"}, "teardown": {"duration": 0.0004446690436452627, "outcome": "passed"}}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_tools_callable", "lineno": 61, "outcome": "passed", "keywords": ["test_server_tools_callable", "TestServer", "integration", "test_server.py", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004892961587756872, "outcome": "passed"}, "call": {"duration": 0.07293418003246188, "outcome": "passed"}, "teardown": {"duration": 0.00043084402568638325, "outcome": "passed"}}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_metadata", "lineno": 82, "outcome": "passed", "keywords": ["test_server_metadata", "TestServer", "integration", "test_server.py", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048168678767979145, "outcome": "passed"}, "call": {"duration": 0.0732813358772546, "outcome": "passed"}, "teardown": {"duration": 0.0004189230967313051, "outcome": "passed"}}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_with_custom_env", "lineno": 94, "outcome": "passed", "keywords": ["test_server_with_custom_env", "TestServer", "integration", "test_server.py", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007054880261421204, "outcome": "passed"}, "call": {"duration": 0.02501751482486725, "outcome": "passed"}, "teardown": {"duration": 0.0005160288419574499, "outcome": "passed"}}, {"nodeid": "tests/integration/test_server.py::TestServer::test_server_logging_initialization", "lineno": 115, "outcome": "passed", "keywords": ["test_server_logging_initialization", "TestServer", "integration", "test_server.py", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.006759539013728499, "outcome": "passed"}, "call": {"duration": 0.002184355165809393, "outcome": "passed"}, "teardown": {"duration": 0.00056488998234272, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_create_issue_missing_required_params", "lineno": 33, "outcome": "passed", "keywords": ["test_create_issue_missing_required_params", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.001532374881207943, "outcome": "passed"}, "call": {"duration": 0.0010641920380294323, "outcome": "passed", "stderr": "2025-03-08 15:36:12,763 - pygithub_mcp_server.tools.issues.tools - ERROR - Failed to convert dict to CreateIssueParams: 1 validation error for CreateIssueParams\ntitle\n Field required [type=missing, input_value={'owner': 'AstroMined', 'repo': 'mcp-testing'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Failed to convert dict to CreateIssueParams: 1 validation error for CreateIssueParams\ntitle\n Field required [type=missing, input_value={'owner': 'AstroMined', 'repo': 'mcp-testing'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 57, "funcName": "create_issue", "created": 1741466172.763871, "msecs": 763.0, "relativeCreated": 552777.063369751, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:12,763"}]}, "teardown": {"duration": 0.0004111160524189472, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_create_issue_invalid_repo", "lineno": 49, "outcome": "passed", "keywords": ["test_create_issue_invalid_repo", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004905161913484335, "outcome": "passed"}, "call": {"duration": 0.09440187201835215, "outcome": "passed", "stderr": "2025-03-08 15:36:12,860 - pygithub_mcp_server.client.client - ERROR - GitHub exception when getting repo AstroMined/non-existent-repo-12345: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/repos/repos#get-a-repository\", \"status\": \"404\"}\n2025-03-08 15:36:12,860 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}\n2025-03-08 15:36:12,860 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:12,860 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Repository not found\n", "log": [{"name": "pygithub_mcp_server.client.client", "msg": "GitHub exception when getting repo AstroMined/non-existent-repo-12345: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/repos/repos#get-a-repository\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/client/client.py", "filename": "client.py", "module": "client", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 144, "funcName": "get_repo", "created": 1741466172.8601403, "msecs": 860.0, "relativeCreated": 552873.3327388763, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:12,860"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/repos/repos#get-a-repository', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466172.8604703, "msecs": 860.0, "relativeCreated": 552873.6627101898, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:12,860"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466172.860717, "msecs": 860.0, "relativeCreated": 552873.9094734192, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:12,860"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Repository not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 70, "funcName": "create_issue", "created": 1741466172.860961, "msecs": 860.0, "relativeCreated": 552874.1533756256, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:12,860"}]}, "teardown": {"duration": 0.0004239119589328766, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_get_issue_invalid_number", "lineno": 65, "outcome": "passed", "keywords": ["test_get_issue_invalid_number", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004977788776159286, "outcome": "passed"}, "call": {"duration": 0.7266956060193479, "outcome": "passed", "stderr": "2025-03-08 15:36:13,589 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}\n2025-03-08 15:36:13,589 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:13,590 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466173.589368, "msecs": 589.0, "relativeCreated": 553602.5605201721, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:13,589"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466173.5898175, "msecs": 589.0, "relativeCreated": 553603.0099391937, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:13,589"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 147, "funcName": "get_issue", "created": 1741466173.590084, "msecs": 590.0, "relativeCreated": 553603.2764911652, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:13,590"}]}, "teardown": {"duration": 0.0004696529358625412, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_issue_nonexistent", "lineno": 81, "outcome": "passed", "keywords": ["test_update_issue_nonexistent", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005352289881557226, "outcome": "passed"}, "call": {"duration": 0.7307021939195693, "outcome": "passed", "stderr": "2025-03-08 15:36:14,322 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}\n2025-03-08 15:36:14,323 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:14,323 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466174.3226342, "msecs": 322.0, "relativeCreated": 554335.8266353607, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:14,322"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466174.3234153, "msecs": 323.0, "relativeCreated": 554336.6076946259, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:14,323"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 188, "funcName": "update_issue", "created": 1741466174.3236904, "msecs": 323.0, "relativeCreated": 554336.8828296661, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:14,323"}]}, "teardown": {"duration": 0.00045718601904809475, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_issue_empty_values", "lineno": 96, "outcome": "passed", "keywords": ["test_update_issue_empty_values", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009759848471730947, "outcome": "passed"}, "call": {"duration": 3.7427709449548274, "outcome": "passed"}, "teardown": {"duration": 2.4643265609629452, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_add_issue_comment_invalid_issue", "lineno": 126, "outcome": "passed", "keywords": ["test_add_issue_comment_invalid_issue", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005860978271812201, "outcome": "passed"}, "call": {"duration": 0.7558624709490687, "outcome": "passed", "stderr": "2025-03-08 15:36:21,291 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}\n2025-03-08 15:36:21,292 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:21,292 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466181.2917883, "msecs": 291.0, "relativeCreated": 561304.9807548523, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:21,291"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466181.292274, "msecs": 292.0, "relativeCreated": 561305.4664134979, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:21,292"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 224, "funcName": "add_issue_comment", "created": 1741466181.2925277, "msecs": 292.0, "relativeCreated": 561305.7200908661, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:21,292"}]}, "teardown": {"duration": 0.00046448991633951664, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_invalid_issue", "lineno": 141, "outcome": "passed", "keywords": ["test_list_issue_comments_invalid_issue", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005264540668576956, "outcome": "passed"}, "call": {"duration": 0.7673558390233666, "outcome": "passed", "stderr": "2025-03-08 15:36:22,062 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}\n2025-03-08 15:36:22,062 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:22,062 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466182.062052, "msecs": 62.0, "relativeCreated": 562075.2444267273, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:22,062"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466182.0625186, "msecs": 62.0, "relativeCreated": 562075.7110118866, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:22,062"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 262, "funcName": "list_issue_comments", "created": 1741466182.0627518, "msecs": 62.0, "relativeCreated": 562075.944185257, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:22,062"}]}, "teardown": {"duration": 0.0004648251924663782, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_pagination", "lineno": 155, "outcome": "passed", "keywords": ["test_list_issue_comments_pagination", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009689191356301308, "outcome": "passed"}, "call": {"duration": 7.4732787208631635, "outcome": "passed"}, "teardown": {"duration": 2.3100672310683876, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_update_comment_nonexistent", "lineno": 196, "outcome": "passed", "keywords": ["test_update_comment_nonexistent", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.001030186889693141, "outcome": "passed"}, "call": {"duration": 2.5507762799970806, "outcome": "passed", "stderr": "2025-03-08 15:36:34,402 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/comments#get-an-issue-comment', 'status': '404'}\n2025-03-08 15:36:34,403 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:34,403 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/comments#get-an-issue-comment', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466194.4025586, "msecs": 402.0, "relativeCreated": 574415.7509803772, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:34,402"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466194.403012, "msecs": 403.0, "relativeCreated": 574416.2044525146, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:34,403"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 299, "funcName": "update_issue_comment", "created": 1741466194.4032576, "msecs": 403.0, "relativeCreated": 574416.4500236511, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:34,403"}]}, "teardown": {"duration": 2.310510020935908, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_delete_comment_nonexistent", "lineno": 226, "outcome": "passed", "keywords": ["test_delete_comment_nonexistent", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000997571973130107, "outcome": "passed"}, "call": {"duration": 2.5775712949689478, "outcome": "passed", "stderr": "2025-03-08 15:36:39,293 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/comments#get-an-issue-comment', 'status': '404'}\n2025-03-08 15:36:39,294 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:39,294 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/comments#get-an-issue-comment', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466199.2935588, "msecs": 293.0, "relativeCreated": 579306.7512512207, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:39,293"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466199.2940197, "msecs": 294.0, "relativeCreated": 579307.2121143341, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:39,294"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 335, "funcName": "delete_issue_comment", "created": 1741466199.2942703, "msecs": 294.0, "relativeCreated": 579307.4626922607, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:39,294"}]}, "teardown": {"duration": 2.3112770228181034, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_add_labels_nonexistent_issue", "lineno": 255, "outcome": "passed", "keywords": ["test_add_labels_nonexistent_issue", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005907858721911907, "outcome": "passed"}, "call": {"duration": 0.8287492899689823, "outcome": "passed", "stderr": "2025-03-08 15:36:42,436 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}\n2025-03-08 15:36:42,436 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n2025-03-08 15:36:42,436 - pygithub_mcp_server.tools.issues.tools - ERROR - GitHub error: Not Found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/issues/issues#get-an-issue', 'status': '404'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466202.4362097, "msecs": 436.0, "relativeCreated": 582449.4020938873, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:42,436"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466202.4366498, "msecs": 436.0, "relativeCreated": 582449.8422145844, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:42,436"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "GitHub error: Not Found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 371, "funcName": "add_issue_labels", "created": 1741466202.4368937, "msecs": 436.0, "relativeCreated": 582450.0861167908, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:42,436"}]}, "teardown": {"duration": 0.0004655630327761173, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_remove_label_nonexistent_issue", "lineno": 270, "outcome": "passed", "keywords": ["test_remove_label_nonexistent_issue", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005414769984781742, "outcome": "passed"}, "call": {"duration": 0.7947061029262841, "outcome": "passed", "stderr": "2025-03-08 15:36:43,231 - pygithub_mcp_server.tools.issues.tools - ERROR - Unexpected error: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/issues#get-an-issue\", \"status\": \"404\"}\n2025-03-08 15:36:43,234 - pygithub_mcp_server.tools.issues.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 406, in remove_issue_label\n issue = repository.get_issue(params.issue_number)\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Repository.py\", line 3087, in get_issue\n headers, data = self._requester.requestJsonAndCheck(\"GET\", f\"{self.url}/issues/{number}\")\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Requester.py\", line 624, in requestJsonAndCheck\n return self.__check(\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Requester.py\", line 792, in __check\n raise self.createException(status, responseHeaders, data)\ngithub.GithubException.UnknownObjectException: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/issues#get-an-issue\", \"status\": \"404\"}\n\n", "log": [{"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Unexpected error: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/issues#get-an-issue\", \"status\": \"404\"}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 431, "funcName": "remove_issue_label", "created": 1741466203.2315106, "msecs": 231.0, "relativeCreated": 583244.7030544281, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:43,231"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 406, in remove_issue_label\n issue = repository.get_issue(params.issue_number)\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Repository.py\", line 3087, in get_issue\n headers, data = self._requester.requestJsonAndCheck(\"GET\", f\"{self.url}/issues/{number}\")\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Requester.py\", line 624, in requestJsonAndCheck\n return self.__check(\n File \"/code/python-mcp-servers/pygithub-mcp-server/.venv/lib/python3.10/site-packages/github/Requester.py\", line 792, in __check\n raise self.createException(status, responseHeaders, data)\ngithub.GithubException.UnknownObjectException: 404 {\"message\": \"Not Found\", \"documentation_url\": \"https://docs.github.com/rest/issues/issues#get-an-issue\", \"status\": \"404\"}\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 432, "funcName": "remove_issue_label", "created": 1741466203.2344356, "msecs": 234.0, "relativeCreated": 583247.6279735565, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:43,234"}]}, "teardown": {"duration": 0.0004692708607763052, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_remove_nonexistent_label", "lineno": 285, "outcome": "passed", "keywords": ["test_remove_nonexistent_label", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010377350263297558, "outcome": "passed"}, "call": {"duration": 2.297128872014582, "outcome": "passed", "stderr": "2025-03-08 15:36:45,534 - pygithub_mcp_server.tools.issues.tools - WARNING - Label 'nonexistent-label-test-11279160' does not exist on issue #1014\n", "log": [{"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Label 'nonexistent-label-test-11279160' does not exist on issue #1014", "args": null, "levelname": "WARNING", "levelno": 30, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 414, "funcName": "remove_issue_label", "created": 1741466205.5348868, "msecs": 534.0, "relativeCreated": 585548.079252243, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:45,534"}]}, "teardown": {"duration": 2.3355094250291586, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_pagination", "lineno": 316, "outcome": "passed", "keywords": ["test_list_issues_pagination", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0005688359960913658, "outcome": "passed"}, "call": {"duration": 2.8978655750397593, "outcome": "passed"}, "teardown": {"duration": 0.00047665019519627094, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_invalid_params", "lineno": 333, "outcome": "passed", "keywords": ["test_list_issues_invalid_params", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000545799033716321, "outcome": "passed"}, "call": {"duration": 0.0053528849966824055, "outcome": "passed", "stderr": "2025-03-08 15:36:50,775 - pygithub_mcp_server.tools - ERROR - Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nstate\n Value error, Invalid state: invalid_state. Must be one of: open, closed, all [type=value_error, input_value='invalid_state', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n2025-03-08 15:36:50,775 - pygithub_mcp_server.tools.issues.tools - ERROR - Unexpected error: 'dict' object has no attribute 'owner'\n2025-03-08 15:36:50,777 - pygithub_mcp_server.tools.issues.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n\n2025-03-08 15:36:50,777 - pygithub_mcp_server.tools - ERROR - Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nsort\n Value error, Invalid sort value: invalid_sort. Must be one of: created, updated, comments [type=value_error, input_value='invalid_sort', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n2025-03-08 15:36:50,777 - pygithub_mcp_server.tools.issues.tools - ERROR - Unexpected error: 'dict' object has no attribute 'owner'\n2025-03-08 15:36:50,779 - pygithub_mcp_server.tools.issues.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n\n", "log": [{"name": "pygithub_mcp_server.tools", "msg": "Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nstate\n Value error, Invalid state: invalid_state. Must be one of: open, closed, all [type=value_error, input_value='invalid_state', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 65, "funcName": "wrapper", "created": 1741466210.775144, "msecs": 775.0, "relativeCreated": 590788.3365154266, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,775"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Unexpected error: 'dict' object has no attribute 'owner'", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 118, "funcName": "list_issues", "created": 1741466210.7755616, "msecs": 775.0, "relativeCreated": 590788.7539863586, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,775"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 119, "funcName": "list_issues", "created": 1741466210.7773514, "msecs": 777.0, "relativeCreated": 590790.543794632, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,777"}, {"name": "pygithub_mcp_server.tools", "msg": "Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nsort\n Value error, Invalid sort value: invalid_sort. Must be one of: created, updated, comments [type=value_error, input_value='invalid_sort', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 65, "funcName": "wrapper", "created": 1741466210.777712, "msecs": 777.0, "relativeCreated": 590790.9045219421, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,777"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Unexpected error: 'dict' object has no attribute 'owner'", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 118, "funcName": "list_issues", "created": 1741466210.777986, "msecs": 777.0, "relativeCreated": 590791.1784648895, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,777"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 119, "funcName": "list_issues", "created": 1741466210.7794788, "msecs": 779.0, "relativeCreated": 590792.6712036133, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,779"}]}, "teardown": {"duration": 0.0004280779976397753, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issues_invalid_since", "lineno": 361, "outcome": "passed", "keywords": ["test_list_issues_invalid_since", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000514372019097209, "outcome": "passed"}, "call": {"duration": 0.0027265099342912436, "outcome": "passed", "stderr": "2025-03-08 15:36:50,782 - pygithub_mcp_server.tools - ERROR - Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nsince\n Value error, Invalid ISO format datetime: not-a-date. Must include date, time with 'T' separator, and timezone. [type=value_error, input_value='not-a-date', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n2025-03-08 15:36:50,783 - pygithub_mcp_server.tools.issues.tools - ERROR - Unexpected error: 'dict' object has no attribute 'owner'\n2025-03-08 15:36:50,784 - pygithub_mcp_server.tools.issues.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n\n", "log": [{"name": "pygithub_mcp_server.tools", "msg": "Failed to convert dict to ListIssuesParams: 1 validation error for ListIssuesParams\nsince\n Value error, Invalid ISO format datetime: not-a-date. Must include date, time with 'T' separator, and timezone. [type=value_error, input_value='not-a-date', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 65, "funcName": "wrapper", "created": 1741466210.7829702, "msecs": 782.0, "relativeCreated": 590796.1626052856, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,782"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Unexpected error: 'dict' object has no attribute 'owner'", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 118, "funcName": "list_issues", "created": 1741466210.783277, "msecs": 783.0, "relativeCreated": 590796.469449997, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,783"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 106, in list_issues\n result = issues.list_issues(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 187, in list_issues\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 119, "funcName": "list_issues", "created": 1741466210.7847703, "msecs": 784.0, "relativeCreated": 590797.9626655579, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:50,784"}]}, "teardown": {"duration": 0.0004382040351629257, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_error_cases.py::TestIssueToolsErrorHandling::test_list_issue_comments_invalid_since", "lineno": 375, "outcome": "passed", "keywords": ["test_list_issue_comments_invalid_since", "TestIssueToolsErrorHandling", "integration", "test_error_cases.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000929760979488492, "outcome": "passed"}, "call": {"duration": 1.4369626219850034, "outcome": "passed", "stderr": "2025-03-08 15:36:52,222 - pygithub_mcp_server.tools - ERROR - Failed to convert dict to ListIssueCommentsParams: 1 validation error for ListIssueCommentsParams\nsince\n Value error, Invalid ISO format datetime: not-a-date. Must include date, time with 'T' separator, and timezone. [type=value_error, input_value='not-a-date', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n2025-03-08 15:36:52,223 - pygithub_mcp_server.tools.issues.tools - ERROR - Unexpected error: 'dict' object has no attribute 'owner'\n2025-03-08 15:36:52,224 - pygithub_mcp_server.tools.issues.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 258, in list_issue_comments\n result = issues.list_issue_comments(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 285, in list_issue_comments\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n\n", "log": [{"name": "pygithub_mcp_server.tools", "msg": "Failed to convert dict to ListIssueCommentsParams: 1 validation error for ListIssueCommentsParams\nsince\n Value error, Invalid ISO format datetime: not-a-date. Must include date, time with 'T' separator, and timezone. [type=value_error, input_value='not-a-date', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 65, "funcName": "wrapper", "created": 1741466212.2225952, "msecs": 222.0, "relativeCreated": 592235.7876300812, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:52,222"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Unexpected error: 'dict' object has no attribute 'owner'", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 268, "funcName": "list_issue_comments", "created": 1741466212.2230604, "msecs": 223.0, "relativeCreated": 592236.252784729, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:52,223"}, {"name": "pygithub_mcp_server.tools.issues.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py\", line 258, in list_issue_comments\n result = issues.list_issue_comments(params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/operations/issues.py\", line 285, in list_issue_comments\n repository = client.get_repo(f\"{params.owner}/{params.repo}\")\nAttributeError: 'dict' object has no attribute 'owner'\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/issues/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 269, "funcName": "list_issue_comments", "created": 1741466212.2246315, "msecs": 224.0, "relativeCreated": 592237.8239631653, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:36:52,224"}]}, "teardown": {"duration": 2.3658614391461015, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools::test_issue_lifecycle", "lineno": 40, "outcome": "passed", "keywords": ["test_issue_lifecycle", "TestIssueTools", "integration", "test_issue_tools.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0012039248831570148, "outcome": "passed"}, "call": {"duration": 21.09095056494698, "outcome": "passed"}, "teardown": {"duration": 2.1311882899608463, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/issues/test_issue_tools.py::TestIssueTools::test_list_issues", "lineno": 212, "outcome": "passed", "keywords": ["test_list_issues", "TestIssueTools", "integration", "test_issue_tools.py", "issues", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010964630637317896, "outcome": "passed"}, "call": {"duration": 56.9987296781037, "outcome": "passed"}, "teardown": {"duration": 2.2587189830373973, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_search_repositories_empty_results", "lineno": 19, "outcome": "failed", "keywords": ["test_search_repositories_empty_results", "integration", "pytestmark", "test_repositories_tools_integration.py", "repositories", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008728979155421257, "outcome": "passed"}, "call": {"duration": 0.000703627010807395, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 30, "message": "AttributeError: 'function' object has no attribute 'get'"}, "traceback": [{"path": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 30, "message": "in test_search_repositories_empty_results"}], "longrepr": "tests/integration/tools/repositories/test_repositories_tools_integration.py:30: in test_search_repositories_empty_results\n assert not result.get(\"is_error\", False)\nE AttributeError: 'function' object has no attribute 'get'"}, "teardown": {"duration": 0.0005107300821691751, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_get_repository_integration", "lineno": 40, "outcome": "failed", "keywords": ["test_get_repository_integration", "integration", "pytestmark", "test_repositories_tools_integration.py", "repositories", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006643279921263456, "outcome": "passed"}, "call": {"duration": 0.0005643221084028482, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 51, "message": "AttributeError: 'function' object has no attribute 'get'"}, "traceback": [{"path": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 51, "message": "in test_get_repository_integration"}], "longrepr": "tests/integration/tools/repositories/test_repositories_tools_integration.py:51: in test_get_repository_integration\n assert not result.get(\"is_error\", False)\nE AttributeError: 'function' object has no attribute 'get'"}, "teardown": {"duration": 0.0004990668967366219, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_list_commits_integration", "lineno": 60, "outcome": "failed", "keywords": ["test_list_commits_integration", "integration", "pytestmark", "test_repositories_tools_integration.py", "repositories", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006571810226887465, "outcome": "passed"}, "call": {"duration": 0.0005517839454114437, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 72, "message": "AttributeError: 'function' object has no attribute 'get'"}, "traceback": [{"path": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 72, "message": "in test_list_commits_integration"}], "longrepr": "tests/integration/tools/repositories/test_repositories_tools_integration.py:72: in test_list_commits_integration\n assert not result.get(\"is_error\", False)\nE AttributeError: 'function' object has no attribute 'get'"}, "teardown": {"duration": 0.0004974810872226954, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_get_file_contents_integration", "lineno": 85, "outcome": "failed", "keywords": ["test_get_file_contents_integration", "integration", "pytestmark", "test_repositories_tools_integration.py", "repositories", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006466060876846313, "outcome": "passed"}, "call": {"duration": 0.0005361950024962425, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 97, "message": "AttributeError: 'function' object has no attribute 'get'"}, "traceback": [{"path": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 97, "message": "in test_get_file_contents_integration"}], "longrepr": "tests/integration/tools/repositories/test_repositories_tools_integration.py:97: in test_get_file_contents_integration\n if not result.get(\"is_error\", False):\nE AttributeError: 'function' object has no attribute 'get'"}, "teardown": {"duration": 0.0004963928367942572, "outcome": "passed"}}, {"nodeid": "tests/integration/tools/repositories/test_repositories_tools_integration.py::test_search_repositories_integration", "lineno": 118, "outcome": "failed", "keywords": ["test_search_repositories_integration", "integration", "pytestmark", "test_repositories_tools_integration.py", "repositories", "tools", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006379080004990101, "outcome": "passed"}, "call": {"duration": 0.0005314568988978863, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 129, "message": "AttributeError: 'function' object has no attribute 'get'"}, "traceback": [{"path": "tests/integration/tools/repositories/test_repositories_tools_integration.py", "lineno": 129, "message": "in test_search_repositories_integration"}], "longrepr": "tests/integration/tools/repositories/test_repositories_tools_integration.py:129: in test_search_repositories_integration\n assert not result.get(\"is_error\", False)\nE AttributeError: 'function' object has no attribute 'get'"}, "teardown": {"duration": 0.0005806800909340382, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_default_configuration", "lineno": 79, "outcome": "passed", "keywords": ["test_default_configuration", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0016643030103296041, "outcome": "passed"}, "call": {"duration": 0.0006581849884241819, "outcome": "passed"}, "teardown": {"duration": 0.0005434050690382719, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_environment_variable_override", "lineno": 91, "outcome": "passed", "keywords": ["test_environment_variable_override", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006838459521532059, "outcome": "passed"}, "call": {"duration": 0.0007114529144018888, "outcome": "passed"}, "teardown": {"duration": 0.0005209038499742746, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_config_file_override", "lineno": 106, "outcome": "passed", "keywords": ["test_config_file_override", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0011521321721374989, "outcome": "passed"}, "call": {"duration": 0.0012061637826263905, "outcome": "passed"}, "teardown": {"duration": 0.0007166839204728603, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_environment_overrides_file", "lineno": 136, "outcome": "passed", "keywords": ["test_environment_overrides_file", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009793750941753387, "outcome": "passed"}, "call": {"duration": 0.0011186408810317516, "outcome": "passed"}, "teardown": {"duration": 0.0007010658737272024, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_invalid_config_file", "lineno": 161, "outcome": "passed", "keywords": ["test_invalid_config_file", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009787860326468945, "outcome": "passed"}, "call": {"duration": 0.001546062994748354, "outcome": "passed", "stderr": "2025-03-08 15:38:17,235 - pygithub_mcp_server.config.settings - ERROR - Failed to load configuration from /tmp/tmpbxsvu9q8.json: Expecting value: line 1 column 1 (char 0)\n", "log": [{"name": "pygithub_mcp_server.config.settings", "msg": "Failed to load configuration from /tmp/tmpbxsvu9q8.json: Expecting value: line 1 column 1 (char 0)", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/config/settings.py", "filename": "settings.py", "module": "settings", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 66, "funcName": "load_config", "created": 1741466297.2353508, "msecs": 235.0, "relativeCreated": 677248.5432624817, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,235"}]}, "teardown": {"duration": 0.0006872210651636124, "outcome": "passed"}}, {"nodeid": "tests/unit/config/test_settings.py::TestConfigSettings::test_nonexistent_config_file", "lineno": 177, "outcome": "passed", "keywords": ["test_nonexistent_config_file", "TestConfigSettings", "test_settings.py", "config", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006800030823796988, "outcome": "passed"}, "call": {"duration": 0.0007285540923476219, "outcome": "passed"}, "teardown": {"duration": 0.0005473459605127573, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime::test_convert_datetime_with_datetime", "lineno": 21, "outcome": "passed", "keywords": ["test_convert_datetime_with_datetime", "TestConvertDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009110590908676386, "outcome": "passed"}, "call": {"duration": 0.0005605779588222504, "outcome": "passed"}, "teardown": {"duration": 0.00038506207056343555, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertDatetime::test_convert_datetime_with_none", "lineno": 27, "outcome": "passed", "keywords": ["test_convert_datetime_with_none", "TestConvertDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004701979923993349, "outcome": "passed"}, "call": {"duration": 0.0004997008945792913, "outcome": "passed"}, "teardown": {"duration": 0.00039275409653782845, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_datetime_object", "lineno": 36, "outcome": "passed", "keywords": ["test_with_datetime_object", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004838861059397459, "outcome": "passed"}, "call": {"duration": 0.000502358190715313, "outcome": "passed"}, "teardown": {"duration": 0.0003839631099253893, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_z_timezone", "lineno": 42, "outcome": "passed", "keywords": ["test_with_z_timezone", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046131410636007786, "outcome": "passed"}, "call": {"duration": 0.0005490810144692659, "outcome": "passed"}, "teardown": {"duration": 0.00038256915286183357, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_offset_timezone_with_colon", "lineno": 48, "outcome": "passed", "keywords": ["test_with_offset_timezone_with_colon", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046573090367019176, "outcome": "passed"}, "call": {"duration": 0.0005522510036826134, "outcome": "passed"}, "teardown": {"duration": 0.0003846010658890009, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_offset_timezone_without_colon", "lineno": 62, "outcome": "passed", "keywords": ["test_with_offset_timezone_without_colon", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000465654069557786, "outcome": "passed"}, "call": {"duration": 0.0005503550637513399, "outcome": "passed"}, "teardown": {"duration": 0.00038810307160019875, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_short_timezone", "lineno": 69, "outcome": "passed", "keywords": ["test_with_short_timezone", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004638480022549629, "outcome": "passed"}, "call": {"duration": 0.0005432208999991417, "outcome": "passed"}, "teardown": {"duration": 0.0003904961049556732, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_with_single_digit_timezone", "lineno": 76, "outcome": "passed", "keywords": ["test_with_single_digit_timezone", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004642221610993147, "outcome": "passed"}, "call": {"duration": 0.000546218128874898, "outcome": "passed"}, "teardown": {"duration": 0.00041247601620852947, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_invalid_type", "lineno": 83, "outcome": "passed", "keywords": ["test_invalid_type", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004635760560631752, "outcome": "passed"}, "call": {"duration": 0.0005904859863221645, "outcome": "passed"}, "teardown": {"duration": 0.0003975708968937397, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_short_string", "lineno": 89, "outcome": "passed", "keywords": ["test_short_string", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045952992513775826, "outcome": "passed"}, "call": {"duration": 0.000546890078112483, "outcome": "passed"}, "teardown": {"duration": 0.00039478205144405365, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_datetime_without_timezone_handling", "lineno": 95, "outcome": "passed", "keywords": ["test_datetime_without_timezone_handling", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045696389861404896, "outcome": "passed"}, "call": {"duration": 0.000520200002938509, "outcome": "passed"}, "teardown": {"duration": 0.00038421107456088066, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_date_only_format_handling", "lineno": 108, "outcome": "passed", "keywords": ["test_date_only_format_handling", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004641490522772074, "outcome": "passed"}, "call": {"duration": 0.0005236119031906128, "outcome": "passed"}, "teardown": {"duration": 0.00038059893995523453, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestConvertIsoStringToDatetime::test_malformed_datetime", "lineno": 122, "outcome": "passed", "keywords": ["test_malformed_datetime", "TestConvertIsoStringToDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045886985026299953, "outcome": "passed"}, "call": {"duration": 0.0005273749120533466, "outcome": "passed"}, "teardown": {"duration": 0.0003886639606207609, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_string", "lineno": 132, "outcome": "passed", "keywords": ["test_with_string", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047289906069636345, "outcome": "passed"}, "call": {"duration": 0.0005275770090520382, "outcome": "passed"}, "teardown": {"duration": 0.0003812778741121292, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_naive_datetime_string", "lineno": 139, "outcome": "passed", "keywords": ["test_ensure_utc_with_naive_datetime_string", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000455064931884408, "outcome": "passed"}, "call": {"duration": 0.0007816790603101254, "outcome": "passed"}, "teardown": {"duration": 0.0004024549853056669, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_naive_datetime", "lineno": 154, "outcome": "passed", "keywords": ["test_ensure_utc_with_naive_datetime", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048465002328157425, "outcome": "passed"}, "call": {"duration": 0.0005472139455378056, "outcome": "passed"}, "teardown": {"duration": 0.0003945371136069298, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_ensure_utc_with_date_only_string", "lineno": 173, "outcome": "passed", "keywords": ["test_ensure_utc_with_date_only_string", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046339794062078, "outcome": "passed"}, "call": {"duration": 0.0005367109552025795, "outcome": "passed"}, "teardown": {"duration": 0.00039633503183722496, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_naive_datetime", "lineno": 188, "outcome": "passed", "keywords": ["test_with_naive_datetime", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004603781271725893, "outcome": "passed"}, "call": {"duration": 0.0005428299773484468, "outcome": "passed"}, "teardown": {"duration": 0.00039660208858549595, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_with_non_utc_timezone", "lineno": 200, "outcome": "passed", "keywords": ["test_with_non_utc_timezone", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004592600744217634, "outcome": "passed"}, "call": {"duration": 0.0005411040037870407, "outcome": "passed"}, "teardown": {"duration": 0.00040273508056998253, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestEnsureUtcDatetime::test_microseconds_truncation", "lineno": 213, "outcome": "passed", "keywords": ["test_microseconds_truncation", "TestEnsureUtcDatetime", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045977416448295116, "outcome": "passed"}, "call": {"duration": 0.0005227441433817148, "outcome": "passed"}, "teardown": {"duration": 0.00040193297900259495, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_all_datetime_params", "lineno": 223, "outcome": "passed", "keywords": ["test_all_datetime_params", "TestWithUtcDatetimes", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004710080102086067, "outcome": "passed"}, "call": {"duration": 0.000620927894487977, "outcome": "passed"}, "teardown": {"duration": 0.0004063581582158804, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_specific_param_names", "lineno": 248, "outcome": "passed", "keywords": ["test_specific_param_names", "TestWithUtcDatetimes", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046385498717427254, "outcome": "passed"}, "call": {"duration": 0.0005744060035794973, "outcome": "passed"}, "teardown": {"duration": 0.00040180888026952744, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_datetime.py::TestWithUtcDatetimes::test_original_function_name_and_docs", "lineno": 270, "outcome": "passed", "keywords": ["test_original_function_name_and_docs", "TestWithUtcDatetimes", "test_datetime.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046952301636338234, "outcome": "passed"}, "call": {"duration": 0.0005323549266904593, "outcome": "passed"}, "teardown": {"duration": 0.0004090650472790003, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_normal_case", "lineno": 82, "outcome": "passed", "keywords": ["test_get_paginated_slice_normal_case", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046956492587924004, "outcome": "passed"}, "call": {"duration": 0.0005595758557319641, "outcome": "passed"}, "teardown": {"duration": 0.00040225498378276825, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_empty_list", "lineno": 97, "outcome": "passed", "keywords": ["test_get_paginated_slice_empty_list", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000487874960526824, "outcome": "passed"}, "call": {"duration": 0.0005229800008237362, "outcome": "passed"}, "teardown": {"duration": 0.00040039606392383575, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_slice_index_error", "lineno": 108, "outcome": "passed", "keywords": ["test_get_paginated_slice_index_error", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046661682426929474, "outcome": "passed"}, "call": {"duration": 0.0005388581193983555, "outcome": "passed"}, "teardown": {"duration": 0.00040264916606247425, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_page_and_per_page", "lineno": 120, "outcome": "passed", "keywords": ["test_get_paginated_items_with_page_and_per_page", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045939511619508266, "outcome": "passed"}, "call": {"duration": 0.0005680250469595194, "outcome": "passed"}, "teardown": {"duration": 0.0003990780096501112, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_page_only", "lineno": 136, "outcome": "passed", "keywords": ["test_get_paginated_items_with_page_only", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004812439437955618, "outcome": "passed"}, "call": {"duration": 0.0005858310032635927, "outcome": "passed"}, "teardown": {"duration": 0.0003966458607465029, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_with_per_page_only", "lineno": 149, "outcome": "passed", "keywords": ["test_get_paginated_items_with_per_page_only", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046601705253124237, "outcome": "passed"}, "call": {"duration": 0.000555186066776514, "outcome": "passed"}, "teardown": {"duration": 0.00040558306500315666, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_no_parameters", "lineno": 163, "outcome": "passed", "keywords": ["test_get_paginated_items_no_parameters", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046580214984714985, "outcome": "passed"}, "call": {"duration": 0.0005659149028360844, "outcome": "passed"}, "teardown": {"duration": 0.0004021830391138792, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_empty_list", "lineno": 177, "outcome": "passed", "keywords": ["test_get_paginated_items_empty_list", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047646602615714073, "outcome": "passed"}, "call": {"duration": 0.0005271721165627241, "outcome": "passed"}, "teardown": {"duration": 0.0003988458774983883, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/common/test_pagination_unit.py::TestPaginationUtilities::test_get_paginated_items_out_of_range_page", "lineno": 188, "outcome": "passed", "keywords": ["test_get_paginated_items_out_of_range_page", "TestPaginationUtilities", "test_pagination_unit.py", "common", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046529294922947884, "outcome": "passed"}, "call": {"duration": 0.0005498798564076424, "outcome": "passed"}, "teardown": {"duration": 0.0004113039467483759, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel::test_convert_label_full", "lineno": 131, "outcome": "passed", "keywords": ["test_convert_label_full", "TestConvertLabel", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004895750898867846, "outcome": "passed"}, "call": {"duration": 0.0005540789570659399, "outcome": "passed"}, "teardown": {"duration": 0.0003969939425587654, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertLabel::test_convert_label_minimal", "lineno": 150, "outcome": "passed", "keywords": ["test_convert_label_minimal", "TestConvertLabel", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004632440395653248, "outcome": "passed"}, "call": {"duration": 0.0005164679605513811, "outcome": "passed"}, "teardown": {"duration": 0.0004004719667136669, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_full", "lineno": 171, "outcome": "passed", "keywords": ["test_convert_milestone_full", "TestConvertMilestone", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047000707127153873, "outcome": "passed"}, "call": {"duration": 0.0005810759030282497, "outcome": "passed"}, "teardown": {"duration": 0.0003999790642410517, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_minimal", "lineno": 202, "outcome": "passed", "keywords": ["test_convert_milestone_minimal", "TestConvertMilestone", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047529791481792927, "outcome": "passed"}, "call": {"duration": 0.000549432123079896, "outcome": "passed"}, "teardown": {"duration": 0.0003982041962444782, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertMilestone::test_convert_milestone_none", "lineno": 223, "outcome": "passed", "keywords": ["test_convert_milestone_none", "TestConvertMilestone", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046419398859143257, "outcome": "passed"}, "call": {"duration": 0.0005110988859087229, "outcome": "passed"}, "teardown": {"duration": 0.0004110350273549557, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_full", "lineno": 235, "outcome": "passed", "keywords": ["test_convert_issue_full", "TestConvertIssue", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048823701217770576, "outcome": "passed"}, "call": {"duration": 0.0006716619245707989, "outcome": "passed"}, "teardown": {"duration": 0.00038404297083616257, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_minimal", "lineno": 328, "outcome": "passed", "keywords": ["test_convert_issue_minimal", "TestConvertIssue", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004716960247606039, "outcome": "passed"}, "call": {"duration": 0.0005992839578539133, "outcome": "passed"}, "teardown": {"duration": 0.0003848639316856861, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssue::test_convert_issue_closed", "lineno": 350, "outcome": "passed", "keywords": ["test_convert_issue_closed", "TestConvertIssue", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047936500050127506, "outcome": "passed"}, "call": {"duration": 0.000605311943218112, "outcome": "passed"}, "teardown": {"duration": 0.0004142720717936754, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList::test_convert_empty_list", "lineno": 373, "outcome": "passed", "keywords": ["test_convert_empty_list", "TestConvertIssueList", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046729203313589096, "outcome": "passed"}, "call": {"duration": 0.0005365421529859304, "outcome": "passed"}, "teardown": {"duration": 0.000383222009986639, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/issues/test_issues_converters.py::TestConvertIssueList::test_convert_issue_list", "lineno": 378, "outcome": "passed", "keywords": ["test_convert_issue_list", "TestConvertIssueList", "test_issues_converters.py", "issues", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004633611533790827, "outcome": "passed"}, "call": {"duration": 0.0006640451028943062, "outcome": "passed"}, "teardown": {"duration": 0.00041752983815968037, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters::test_convert_file_content", "lineno": 30, "outcome": "passed", "keywords": ["test_convert_file_content", "TestContentConverters", "test_contents_converters.py", "repositories", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004796029534190893, "outcome": "passed"}, "call": {"duration": 0.0005451629403978586, "outcome": "passed"}, "teardown": {"duration": 0.00040386104956269264, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/repositories/test_contents_converters.py::TestContentConverters::test_convert_directory_content", "lineno": 61, "outcome": "passed", "keywords": ["test_convert_directory_content", "TestContentConverters", "test_contents_converters.py", "repositories", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046999589540064335, "outcome": "passed"}, "call": {"duration": 0.0005372699815779924, "outcome": "passed"}, "teardown": {"duration": 0.0004084780812263489, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters::test_convert_repository", "lineno": 32, "outcome": "passed", "keywords": ["test_convert_repository", "TestRepositoryConverters", "test_repositories_converters.py", "repositories", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047337310388684273, "outcome": "passed"}, "call": {"duration": 0.0006774759385734797, "outcome": "passed"}, "teardown": {"duration": 0.00040587992407381535, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/repositories/test_repositories_converters.py::TestRepositoryConverters::test_convert_repository_with_none_values", "lineno": 57, "outcome": "passed", "keywords": ["test_convert_repository_with_none_values", "TestRepositoryConverters", "test_repositories_converters.py", "repositories", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004723351448774338, "outcome": "passed"}, "call": {"duration": 0.000527411000803113, "outcome": "passed"}, "teardown": {"duration": 0.00040987483225762844, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_empty_params", "lineno": 21, "outcome": "passed", "keywords": ["test_empty_params", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048245093785226345, "outcome": "passed"}, "call": {"duration": 0.0005375989712774754, "outcome": "passed"}, "teardown": {"duration": 0.0004014759324491024, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_none_values", "lineno": 26, "outcome": "passed", "keywords": ["test_none_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004742771852761507, "outcome": "passed"}, "call": {"duration": 0.0005296010058373213, "outcome": "passed"}, "teardown": {"duration": 0.0003958719316869974, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_boolean_values", "lineno": 32, "outcome": "passed", "keywords": ["test_boolean_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004707169719040394, "outcome": "passed"}, "call": {"duration": 0.0005409209989011288, "outcome": "passed"}, "teardown": {"duration": 0.00040567386895418167, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_list_values", "lineno": 38, "outcome": "passed", "keywords": ["test_list_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046150805428624153, "outcome": "passed"}, "call": {"duration": 0.0005494279321283102, "outcome": "passed"}, "teardown": {"duration": 0.0003884949255734682, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_tuple_values", "lineno": 43, "outcome": "passed", "keywords": ["test_tuple_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004620158579200506, "outcome": "passed"}, "call": {"duration": 0.0005200379528105259, "outcome": "passed"}, "teardown": {"duration": 0.00040266290307044983, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_datetime_values", "lineno": 48, "outcome": "passed", "keywords": ["test_datetime_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004660629201680422, "outcome": "passed"}, "call": {"duration": 0.0005247790832072496, "outcome": "passed"}, "teardown": {"duration": 0.00040091807022690773, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_mixed_values", "lineno": 54, "outcome": "passed", "keywords": ["test_mixed_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048346281982958317, "outcome": "passed"}, "call": {"duration": 0.0005518540274351835, "outcome": "passed"}, "teardown": {"duration": 0.00040523800998926163, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestFormatQueryParams::test_numeric_values", "lineno": 71, "outcome": "passed", "keywords": ["test_numeric_values", "TestFormatQueryParams", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00047881598584353924, "outcome": "passed"}, "call": {"duration": 0.0005268910899758339, "outcome": "passed"}, "teardown": {"duration": 0.00040573393926024437, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_empty_params", "lineno": 81, "outcome": "passed", "keywords": ["test_empty_params", "TestBuildIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004650978371500969, "outcome": "passed"}, "call": {"duration": 0.0005186039488762617, "outcome": "passed"}, "teardown": {"duration": 0.0003990249242633581, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_required_params_only", "lineno": 86, "outcome": "passed", "keywords": ["test_required_params_only", "TestBuildIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046300096437335014, "outcome": "passed"}, "call": {"duration": 0.0005153308156877756, "outcome": "passed"}, "teardown": {"duration": 0.00039837509393692017, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_all_params", "lineno": 91, "outcome": "passed", "keywords": ["test_all_params", "TestBuildIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046300608664751053, "outcome": "passed"}, "call": {"duration": 0.0005200901068747044, "outcome": "passed"}, "teardown": {"duration": 0.0004021329805254936, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_none_values", "lineno": 103, "outcome": "passed", "keywords": ["test_none_values", "TestBuildIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045974296517670155, "outcome": "passed"}, "call": {"duration": 0.0005142330192029476, "outcome": "passed"}, "teardown": {"duration": 0.00039986311458051205, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildIssueKwargs::test_empty_lists", "lineno": 115, "outcome": "passed", "keywords": ["test_empty_lists", "TestBuildIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004574400372803211, "outcome": "passed"}, "call": {"duration": 0.0005431398749351501, "outcome": "passed"}, "teardown": {"duration": 0.00040501588955521584, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_empty_params", "lineno": 131, "outcome": "passed", "keywords": ["test_empty_params", "TestBuildListIssuesKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004662428982555866, "outcome": "passed"}, "call": {"duration": 0.000523923896253109, "outcome": "passed"}, "teardown": {"duration": 0.0004004610236734152, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_all_params", "lineno": 136, "outcome": "passed", "keywords": ["test_all_params", "TestBuildListIssuesKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004559310618788004, "outcome": "passed"}, "call": {"duration": 0.0005282110068947077, "outcome": "passed"}, "teardown": {"duration": 0.00037859100848436356, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_none_values", "lineno": 151, "outcome": "passed", "keywords": ["test_none_values", "TestBuildListIssuesKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004573110491037369, "outcome": "passed"}, "call": {"duration": 0.000518046086654067, "outcome": "passed"}, "teardown": {"duration": 0.00038853217847645283, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildListIssuesKwargs::test_partial_params", "lineno": 163, "outcome": "passed", "keywords": ["test_partial_params", "TestBuildListIssuesKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046333298087120056, "outcome": "passed"}, "call": {"duration": 0.0005110108759254217, "outcome": "passed"}, "teardown": {"duration": 0.000385842053219676, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_empty_params", "lineno": 180, "outcome": "passed", "keywords": ["test_empty_params", "TestBuildUpdateIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045858509838581085, "outcome": "passed"}, "call": {"duration": 0.0005287099629640579, "outcome": "passed"}, "teardown": {"duration": 0.000385441817343235, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_all_params", "lineno": 185, "outcome": "passed", "keywords": ["test_all_params", "TestBuildUpdateIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046273297630250454, "outcome": "passed"}, "call": {"duration": 0.000531286932528019, "outcome": "passed"}, "teardown": {"duration": 0.0004194481298327446, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_none_values", "lineno": 198, "outcome": "passed", "keywords": ["test_none_values", "TestBuildUpdateIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004462641663849354, "outcome": "passed"}, "call": {"duration": 0.0005241809412837029, "outcome": "passed"}, "teardown": {"duration": 0.00041181989945471287, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestBuildUpdateIssueKwargs::test_partial_params", "lineno": 210, "outcome": "passed", "keywords": ["test_partial_params", "TestBuildUpdateIssueKwargs", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004478080663830042, "outcome": "passed"}, "call": {"duration": 0.0005394530016928911, "outcome": "passed"}, "teardown": {"duration": 0.00042522791773080826, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_none_value", "lineno": 226, "outcome": "passed", "keywords": ["test_none_value", "TestConvertLabelsParameter", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044592306949198246, "outcome": "passed"}, "call": {"duration": 0.0005246319342404604, "outcome": "passed"}, "teardown": {"duration": 0.00040592998266220093, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_valid_labels", "lineno": 231, "outcome": "passed", "keywords": ["test_valid_labels", "TestConvertLabelsParameter", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046631391160190105, "outcome": "passed"}, "call": {"duration": 0.0005533639341592789, "outcome": "passed"}, "teardown": {"duration": 0.00047824718058109283, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_empty_list", "lineno": 237, "outcome": "passed", "keywords": ["test_empty_list", "TestConvertLabelsParameter", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045032799243927, "outcome": "passed"}, "call": {"duration": 0.000546308932825923, "outcome": "passed"}, "teardown": {"duration": 0.0003887999337166548, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_non_list_value", "lineno": 242, "outcome": "passed", "keywords": ["test_non_list_value", "TestConvertLabelsParameter", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000440527917817235, "outcome": "passed"}, "call": {"duration": 0.0010823667980730534, "outcome": "passed"}, "teardown": {"duration": 0.00040264101698994637, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_parameters.py::TestConvertLabelsParameter::test_mixed_type_list", "lineno": 247, "outcome": "passed", "keywords": ["test_mixed_type_list", "TestConvertLabelsParameter", "test_parameters.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048017408698797226, "outcome": "passed"}, "call": {"duration": 0.0007662789430469275, "outcome": "passed"}, "teardown": {"duration": 0.0004137689247727394, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_string_content", "lineno": 18, "outcome": "passed", "keywords": ["test_with_string_content", "TestCreateToolResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004723279271274805, "outcome": "passed"}, "call": {"duration": 0.0007092519663274288, "outcome": "passed"}, "teardown": {"duration": 0.00040839798748493195, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_dict_content", "lineno": 27, "outcome": "passed", "keywords": ["test_with_dict_content", "TestCreateToolResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004895350430160761, "outcome": "passed"}, "call": {"duration": 0.0006570878904312849, "outcome": "passed"}, "teardown": {"duration": 0.0003899168223142624, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_list_content", "lineno": 42, "outcome": "passed", "keywords": ["test_with_list_content", "TestCreateToolResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045888288877904415, "outcome": "passed"}, "call": {"duration": 0.0006998439785093069, "outcome": "passed"}, "teardown": {"duration": 0.00038402783684432507, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_error_flag", "lineno": 56, "outcome": "passed", "keywords": ["test_with_error_flag", "TestCreateToolResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004578700754791498, "outcome": "passed"}, "call": {"duration": 0.0005653141997754574, "outcome": "passed"}, "teardown": {"duration": 0.00038431398570537567, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateToolResponse::test_with_none_content", "lineno": 65, "outcome": "passed", "keywords": ["test_with_none_content", "TestCreateToolResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004592838231474161, "outcome": "passed"}, "call": {"duration": 0.0005880279932171106, "outcome": "passed"}, "teardown": {"duration": 0.0003910069353878498, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_string_error", "lineno": 78, "outcome": "passed", "keywords": ["test_with_string_error", "TestCreateErrorResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045604701153934, "outcome": "passed"}, "call": {"duration": 0.000567578012123704, "outcome": "passed"}, "teardown": {"duration": 0.00038372096605598927, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_exception", "lineno": 87, "outcome": "passed", "keywords": ["test_with_exception", "TestCreateErrorResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045408611185848713, "outcome": "passed"}, "call": {"duration": 0.0005712441634386778, "outcome": "passed"}, "teardown": {"duration": 0.0003977641463279724, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/test_responses.py::TestCreateErrorResponse::test_with_dict_error", "lineno": 99, "outcome": "passed", "keywords": ["test_with_dict_error", "TestCreateErrorResponse", "test_responses.py", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004586288705468178, "outcome": "passed"}, "call": {"duration": 0.0006238999776542187, "outcome": "passed"}, "teardown": {"duration": 0.00041704089380800724, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_full", "lineno": 42, "outcome": "passed", "keywords": ["test_convert_user_full", "TestConvertUser", "test_users_converters.py", "users", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046396488323807716, "outcome": "passed"}, "call": {"duration": 0.0005435841158032417, "outcome": "passed"}, "teardown": {"duration": 0.0003959350287914276, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_minimal", "lineno": 66, "outcome": "passed", "keywords": ["test_convert_user_minimal", "TestConvertUser", "test_users_converters.py", "users", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004578251391649246, "outcome": "passed"}, "call": {"duration": 0.0005117228720337152, "outcome": "passed"}, "teardown": {"duration": 0.000396935036405921, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_organization", "lineno": 82, "outcome": "passed", "keywords": ["test_convert_organization", "TestConvertUser", "test_users_converters.py", "users", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045727798715233803, "outcome": "passed"}, "call": {"duration": 0.0005152260418981314, "outcome": "passed"}, "teardown": {"duration": 0.0003953701816499233, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_site_admin", "lineno": 106, "outcome": "passed", "keywords": ["test_convert_site_admin", "TestConvertUser", "test_users_converters.py", "users", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000455186003819108, "outcome": "passed"}, "call": {"duration": 0.0005201469175517559, "outcome": "passed"}, "teardown": {"duration": 0.0003923939075320959, "outcome": "passed"}}, {"nodeid": "tests/unit/converters/users/test_users_converters.py::TestConvertUser::test_convert_user_none", "lineno": 130, "outcome": "passed", "keywords": ["test_convert_user_none", "TestConvertUser", "test_users_converters.py", "users", "converters", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004561489913612604, "outcome": "passed"}, "call": {"duration": 0.0005066399462521076, "outcome": "passed"}, "teardown": {"duration": 0.00040975608862936497, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_base_github_error", "lineno": 26, "outcome": "passed", "keywords": ["test_base_github_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004725907929241657, "outcome": "passed"}, "call": {"duration": 0.0005378159694373608, "outcome": "passed"}, "teardown": {"duration": 0.0003824690356850624, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_validation_error", "lineno": 34, "outcome": "passed", "keywords": ["test_validation_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045419810339808464, "outcome": "passed"}, "call": {"duration": 0.0005441319663077593, "outcome": "passed"}, "teardown": {"duration": 0.00037983781658113003, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_resource_not_found_error", "lineno": 53, "outcome": "passed", "keywords": ["test_resource_not_found_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045883399434387684, "outcome": "passed"}, "call": {"duration": 0.0005309469997882843, "outcome": "passed"}, "teardown": {"duration": 0.00038526300340890884, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_authentication_error", "lineno": 61, "outcome": "passed", "keywords": ["test_authentication_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045355292968451977, "outcome": "passed"}, "call": {"duration": 0.0005319961346685886, "outcome": "passed"}, "teardown": {"duration": 0.00038890494033694267, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_permission_error", "lineno": 69, "outcome": "passed", "keywords": ["test_permission_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004446031525731087, "outcome": "passed"}, "call": {"duration": 0.0005315369926393032, "outcome": "passed"}, "teardown": {"duration": 0.000423177145421505, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_rate_limit_error_with_reset_time", "lineno": 77, "outcome": "passed", "keywords": ["test_rate_limit_error_with_reset_time", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045115407556295395, "outcome": "passed"}, "call": {"duration": 0.0005668180529028177, "outcome": "passed"}, "teardown": {"duration": 0.0004086359404027462, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_rate_limit_error_without_reset_time", "lineno": 87, "outcome": "passed", "keywords": ["test_rate_limit_error_without_reset_time", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044008903205394745, "outcome": "passed"}, "call": {"duration": 0.0005376660265028477, "outcome": "passed"}, "teardown": {"duration": 0.00040482194162905216, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestFormatGitHubError::test_conflict_error", "lineno": 96, "outcome": "passed", "keywords": ["test_conflict_error", "TestFormatGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004403309430927038, "outcome": "passed"}, "call": {"duration": 0.0005435519851744175, "outcome": "passed"}, "teardown": {"duration": 0.0004119470249861479, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_github_errors", "lineno": 108, "outcome": "passed", "keywords": ["test_with_github_errors", "TestIsGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044935615733265877, "outcome": "passed"}, "call": {"duration": 0.0005471669137477875, "outcome": "passed"}, "teardown": {"duration": 0.000406085979193449, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_non_github_errors", "lineno": 118, "outcome": "passed", "keywords": ["test_with_non_github_errors", "TestIsGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046749296598136425, "outcome": "passed"}, "call": {"duration": 0.0006890278309583664, "outcome": "passed"}, "teardown": {"duration": 0.00038923812098801136, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_formatters.py::TestIsGitHubError::test_with_non_errors", "lineno": 125, "outcome": "passed", "keywords": ["test_with_non_errors", "TestIsGitHubError", "test_formatters.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004546479322016239, "outcome": "passed"}, "call": {"duration": 0.0005297770258039236, "outcome": "passed"}, "teardown": {"duration": 0.0004160280805081129, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_rate_limit_exceeded", "lineno": 31, "outcome": "passed", "keywords": ["test_handle_rate_limit_exceeded", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044986605644226074, "outcome": "passed"}, "call": {"duration": 0.001058091875165701, "outcome": "passed", "stderr": "2025-03-08 15:38:17,532 - pygithub_mcp_server.errors.handlers - ERROR - Rate limit exceeded\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Rate limit exceeded", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 41, "funcName": "handle_github_exception", "created": 1741466297.5321941, "msecs": 532.0, "relativeCreated": 677545.3865528107, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,532"}]}, "teardown": {"duration": 0.0004091360606253147, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_rate_limit_exceeded_without_rate", "lineno": 63, "outcome": "passed", "keywords": ["test_handle_rate_limit_exceeded_without_rate", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045950314961373806, "outcome": "passed"}, "call": {"duration": 0.0009277728386223316, "outcome": "passed", "stderr": "2025-03-08 15:38:17,535 - pygithub_mcp_server.errors.handlers - ERROR - Rate limit exceeded\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Rate limit exceeded", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 41, "funcName": "handle_github_exception", "created": 1741466297.535632, "msecs": 535.0, "relativeCreated": 677548.8243103027, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,535"}]}, "teardown": {"duration": 0.0004222251009196043, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_authentication_error", "lineno": 79, "outcome": "passed", "keywords": ["test_handle_authentication_error", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004685379099100828, "outcome": "passed"}, "call": {"duration": 0.0011195300612598658, "outcome": "passed", "stderr": "2025-03-08 15:38:17,539 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=401, data={'message': 'Bad credentials'}\n2025-03-08 15:38:17,539 - pygithub_mcp_server.errors.handlers - ERROR - Authentication error\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=401, data={'message': 'Bad credentials'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5390515, "msecs": 539.0, "relativeCreated": 677552.2439479828, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,539"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Authentication error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 102, "funcName": "handle_github_exception", "created": 1741466297.5393507, "msecs": 539.0, "relativeCreated": 677552.5431632996, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,539"}]}, "teardown": {"duration": 0.00040646898560225964, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_permission_error", "lineno": 93, "outcome": "passed", "keywords": ["test_handle_permission_error", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004611210897564888, "outcome": "passed"}, "call": {"duration": 0.0011141069699078798, "outcome": "passed", "stderr": "2025-03-08 15:38:17,542 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=403, data={'message': 'Resource not accessible by integration'}\n2025-03-08 15:38:17,542 - pygithub_mcp_server.errors.handlers - ERROR - Permission denied\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=403, data={'message': 'Resource not accessible by integration'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5426404, "msecs": 542.0, "relativeCreated": 677555.832862854, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,542"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Permission denied", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 125, "funcName": "handle_github_exception", "created": 1741466297.5429585, "msecs": 542.0, "relativeCreated": 677556.1509132385, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,542"}]}, "teardown": {"duration": 0.0003989820834249258, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_403_rate_limit", "lineno": 107, "outcome": "passed", "keywords": ["test_handle_403_rate_limit", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045948405750095844, "outcome": "passed"}, "call": {"duration": 0.001125195063650608, "outcome": "passed", "stderr": "2025-03-08 15:38:17,546 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=403, data={'message': 'API rate limit exceeded'}\n2025-03-08 15:38:17,546 - pygithub_mcp_server.errors.handlers - ERROR - Rate limit exceeded\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=403, data={'message': 'API rate limit exceeded'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5462399, "msecs": 546.0, "relativeCreated": 677559.4322681427, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,546"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Rate limit exceeded", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 108, "funcName": "handle_github_exception", "created": 1741466297.546548, "msecs": 546.0, "relativeCreated": 677559.7403049469, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,546"}]}, "teardown": {"duration": 0.0004146099090576172, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_with_hint", "lineno": 125, "outcome": "passed", "keywords": ["test_handle_not_found_with_hint", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004733339883387089, "outcome": "passed"}, "call": {"duration": 0.0010980148799717426, "outcome": "passed", "stderr": "2025-03-08 15:38:17,549 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found'}\n2025-03-08 15:38:17,550 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5498233, "msecs": 549.0, "relativeCreated": 677563.0156993866, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,549"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466297.5501337, "msecs": 550.0, "relativeCreated": 677563.3261203766, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,550"}]}, "teardown": {"duration": 0.0004043800290673971, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_auto_detection", "lineno": 138, "outcome": "passed", "keywords": ["test_handle_not_found_auto_detection", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045608310028910637, "outcome": "passed"}, "call": {"duration": 0.0010921701323240995, "outcome": "passed", "stderr": "2025-03-08 15:38:17,553 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Issue not found'}\n2025-03-08 15:38:17,553 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Issue not found'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5533814, "msecs": 553.0, "relativeCreated": 677566.5738582611, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,553"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466297.553688, "msecs": 553.0, "relativeCreated": 677566.8804645538, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,553"}]}, "teardown": {"duration": 0.0004132718313485384, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_not_found_with_resource_in_data", "lineno": 151, "outcome": "passed", "keywords": ["test_handle_not_found_with_resource_in_data", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004644910804927349, "outcome": "passed"}, "call": {"duration": 0.0010880078189074993, "outcome": "passed", "stderr": "2025-03-08 15:38:17,556 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=404, data={'message': 'Not Found', 'resource': 'pull_request'}\n2025-03-08 15:38:17,557 - pygithub_mcp_server.errors.handlers - ERROR - Resource not found\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=404, data={'message': 'Not Found', 'resource': 'pull_request'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5569477, "msecs": 556.0, "relativeCreated": 677570.1401233673, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,556"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Resource not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 130, "funcName": "handle_github_exception", "created": 1741466297.5572395, "msecs": 557.0, "relativeCreated": 677570.4319477081, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,557"}]}, "teardown": {"duration": 0.00040150294080376625, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_validation_error", "lineno": 164, "outcome": "passed", "keywords": ["test_handle_validation_error", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046034110710024834, "outcome": "passed"}, "call": {"duration": 0.0011087399907410145, "outcome": "passed", "stderr": "2025-03-08 15:38:17,560 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=422, data={'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'field': 'title', 'code': 'missing_field'}]}\n2025-03-08 15:38:17,560 - pygithub_mcp_server.errors.handlers - ERROR - Validation error\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=422, data={'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'field': 'title', 'code': 'missing_field'}]}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5605016, "msecs": 560.0, "relativeCreated": 677573.6939907074, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,560"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Validation error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 138, "funcName": "handle_github_exception", "created": 1741466297.5608034, "msecs": 560.0, "relativeCreated": 677573.9958286285, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,560"}]}, "teardown": {"duration": 0.0004134930204600096, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_unknown_error", "lineno": 183, "outcome": "passed", "keywords": ["test_handle_unknown_error", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044799596071243286, "outcome": "passed"}, "call": {"duration": 0.0011026370339095592, "outcome": "passed", "stderr": "2025-03-08 15:38:17,564 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=500, data={'message': 'Internal server error'}\n2025-03-08 15:38:17,564 - pygithub_mcp_server.errors.handlers - ERROR - Unknown GitHub error: 500\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=500, data={'message': 'Internal server error'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5640872, "msecs": 564.0, "relativeCreated": 677577.2795677185, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,564"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Unknown GitHub error: 500", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 141, "funcName": "handle_github_exception", "created": 1741466297.5643818, "msecs": 564.0, "relativeCreated": 677577.5742530823, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,564"}]}, "teardown": {"duration": 0.00040599587373435497, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_string_data", "lineno": 197, "outcome": "passed", "keywords": ["test_handle_string_data", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046646292321383953, "outcome": "passed"}, "call": {"duration": 0.0011413069441914558, "outcome": "passed", "stderr": "2025-03-08 15:38:17,567 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=400, data={'message': 'Bad request'}\n2025-03-08 15:38:17,568 - pygithub_mcp_server.errors.handlers - ERROR - Unknown GitHub error: 400\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=400, data={'message': 'Bad request'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5677087, "msecs": 567.0, "relativeCreated": 677580.9011459351, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,567"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Unknown GitHub error: 400", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 141, "funcName": "handle_github_exception", "created": 1741466297.5680084, "msecs": 568.0, "relativeCreated": 677581.200838089, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,568"}]}, "teardown": {"duration": 0.0003884590696543455, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestHandleGithubException::test_handle_plain_string_data", "lineno": 210, "outcome": "passed", "keywords": ["test_handle_plain_string_data", "TestHandleGithubException", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045750406570732594, "outcome": "passed"}, "call": {"duration": 0.001123649999499321, "outcome": "passed", "stderr": "2025-03-08 15:38:17,571 - pygithub_mcp_server.errors.handlers - ERROR - Handling GitHub exception: status=400, data={'message': 'Something went wrong'}\n2025-03-08 15:38:17,571 - pygithub_mcp_server.errors.handlers - ERROR - Unknown GitHub error: 400\n", "log": [{"name": "pygithub_mcp_server.errors.handlers", "msg": "Handling GitHub exception: status=400, data={'message': 'Something went wrong'}", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 82, "funcName": "handle_github_exception", "created": 1741466297.5712924, "msecs": 571.0, "relativeCreated": 677584.4848155975, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,571"}, {"name": "pygithub_mcp_server.errors.handlers", "msg": "Unknown GitHub error: 400", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/errors/handlers.py", "filename": "handlers.py", "module": "handlers", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 141, "funcName": "handle_github_exception", "created": 1741466297.5715866, "msecs": 571.0, "relativeCreated": 677584.7790241241, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,571"}]}, "teardown": {"duration": 0.00041733100078999996, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_with_field_errors", "lineno": 227, "outcome": "passed", "keywords": ["test_format_validation_error_with_field_errors", "TestFormatValidationError", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046956888400018215, "outcome": "passed"}, "call": {"duration": 0.0005414281040430069, "outcome": "passed"}, "teardown": {"duration": 0.0004100929945707321, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_without_field_errors", "lineno": 244, "outcome": "passed", "keywords": ["test_format_validation_error_without_field_errors", "TestFormatValidationError", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046360911801457405, "outcome": "passed"}, "call": {"duration": 0.0005245408974587917, "outcome": "passed"}, "teardown": {"duration": 0.0004006058443337679, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_without_errors", "lineno": 258, "outcome": "passed", "keywords": ["test_format_validation_error_without_errors", "TestFormatValidationError", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045700487680733204, "outcome": "passed"}, "call": {"duration": 0.0005317169707268476, "outcome": "passed"}, "teardown": {"duration": 0.00038409000262618065, "outcome": "passed"}}, {"nodeid": "tests/unit/errors/test_handlers.py::TestFormatValidationError::test_format_validation_error_with_none_data", "lineno": 267, "outcome": "passed", "keywords": ["test_format_validation_error_with_none_data", "TestFormatValidationError", "test_handlers.py", "errors", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046515511348843575, "outcome": "passed"}, "call": {"duration": 0.0005061349365860224, "outcome": "passed"}, "teardown": {"duration": 0.00041077309288084507, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_repository", "lineno": 348, "outcome": "passed", "keywords": ["test_get_repository", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000842181034386158, "outcome": "passed"}, "call": {"duration": 0.0006399680860340595, "outcome": "passed"}, "teardown": {"duration": 0.0005568529013544321, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_repository", "lineno": 368, "outcome": "passed", "keywords": ["test_create_repository", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007501181680709124, "outcome": "passed"}, "call": {"duration": 0.0006422409787774086, "outcome": "passed"}, "teardown": {"duration": 0.0005466958973556757, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_fork_repository", "lineno": 396, "outcome": "passed", "keywords": ["test_fork_repository", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007524769753217697, "outcome": "passed"}, "call": {"duration": 0.0006453660316765308, "outcome": "passed"}, "teardown": {"duration": 0.0005121338181197643, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_search_repositories", "lineno": 422, "outcome": "passed", "keywords": ["test_search_repositories", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007502769585698843, "outcome": "passed"}, "call": {"duration": 0.0006474410183727741, "outcome": "passed"}, "teardown": {"duration": 0.0005517059471458197, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_file_contents_file", "lineno": 448, "outcome": "passed", "keywords": ["test_get_file_contents_file", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007542229723185301, "outcome": "passed"}, "call": {"duration": 0.0008119058329612017, "outcome": "passed"}, "teardown": {"duration": 0.0005303160287439823, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_get_file_contents_directory", "lineno": 494, "outcome": "passed", "keywords": ["test_get_file_contents_directory", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007618449162691832, "outcome": "passed"}, "call": {"duration": 0.0006553309503942728, "outcome": "passed"}, "teardown": {"duration": 0.0005296780727803707, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_or_update_file", "lineno": 536, "outcome": "passed", "keywords": ["test_create_or_update_file", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007641070988029242, "outcome": "passed"}, "call": {"duration": 0.000669026980176568, "outcome": "passed"}, "teardown": {"duration": 0.000522261019796133, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_push_files", "lineno": 566, "outcome": "passed", "keywords": ["test_push_files", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007637350354343653, "outcome": "passed"}, "call": {"duration": 0.0007008330430835485, "outcome": "passed"}, "teardown": {"duration": 0.0005218549631536007, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_create_branch", "lineno": 598, "outcome": "passed", "keywords": ["test_create_branch", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007679532282054424, "outcome": "passed"}, "call": {"duration": 0.0006587018724530935, "outcome": "passed"}, "teardown": {"duration": 0.0005251611582934856, "outcome": "passed"}}, {"nodeid": "tests/unit/operations/test_repositories_ops.py::test_list_commits", "lineno": 623, "outcome": "passed", "keywords": ["test_list_commits", "test_repositories_ops.py", "operations", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007689120247960091, "outcome": "passed"}, "call": {"duration": 0.0007234560325741768, "outcome": "passed"}, "teardown": {"duration": 0.0005382129456847906, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_repository_ref_validation", "lineno": 22, "outcome": "passed", "keywords": ["test_repository_ref_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009636699687689543, "outcome": "passed"}, "call": {"duration": 0.0007292709778994322, "outcome": "passed"}, "teardown": {"duration": 0.0003988449461758137, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_search_repositories_params_validation", "lineno": 40, "outcome": "passed", "keywords": ["test_search_repositories_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046662287786602974, "outcome": "passed"}, "call": {"duration": 0.0007420380134135485, "outcome": "passed"}, "teardown": {"duration": 0.00040771299973130226, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_repository_params_validation", "lineno": 71, "outcome": "passed", "keywords": ["test_create_repository_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046048802323639393, "outcome": "passed"}, "call": {"duration": 0.0006090081296861172, "outcome": "passed"}, "teardown": {"duration": 0.00041038799099624157, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_get_file_contents_params_validation", "lineno": 98, "outcome": "passed", "keywords": ["test_get_file_contents_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046118791215121746, "outcome": "passed"}, "call": {"duration": 0.0006138121243566275, "outcome": "passed"}, "teardown": {"duration": 0.0003963019698858261, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_or_update_file_params_validation", "lineno": 127, "outcome": "passed", "keywords": ["test_create_or_update_file_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046888808719813824, "outcome": "passed"}, "call": {"duration": 0.0007751830853521824, "outcome": "passed"}, "teardown": {"duration": 0.0003997259773313999, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_push_files_params_validation", "lineno": 207, "outcome": "passed", "keywords": ["test_push_files_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045755505561828613, "outcome": "passed"}, "call": {"duration": 0.0007351990789175034, "outcome": "passed"}, "teardown": {"duration": 0.00040028407238423824, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_fork_repository_params_validation", "lineno": 263, "outcome": "passed", "keywords": ["test_fork_repository_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045430706813931465, "outcome": "passed"}, "call": {"duration": 0.0005413410253822803, "outcome": "passed"}, "teardown": {"duration": 0.00039265211671590805, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_create_branch_params_validation", "lineno": 283, "outcome": "passed", "keywords": ["test_create_branch_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045023695565760136, "outcome": "passed"}, "call": {"duration": 0.0006139678880572319, "outcome": "passed"}, "teardown": {"duration": 0.00039369286969304085, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/repositories/test_repository_schemas.py::test_list_commits_params_validation", "lineno": 315, "outcome": "passed", "keywords": ["test_list_commits_params_validation", "test_repository_schemas.py", "repositories", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004602649714797735, "outcome": "passed"}, "call": {"duration": 0.0006759550888091326, "outcome": "passed"}, "teardown": {"duration": 0.0004093179013580084, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_valid_data", "lineno": 14, "outcome": "passed", "keywords": ["test_valid_data", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000651621026918292, "outcome": "passed"}, "call": {"duration": 0.0005349309649318457, "outcome": "passed"}, "teardown": {"duration": 0.00046210899017751217, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_minimal_valid_data", "lineno": 20, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046030408702790737, "outcome": "passed"}, "call": {"duration": 0.0005230270326137543, "outcome": "passed"}, "teardown": {"duration": 0.0003977450542151928, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_missing_required_fields", "lineno": 26, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045428285375237465, "outcome": "passed"}, "call": {"duration": 0.0006210680585354567, "outcome": "passed"}, "teardown": {"duration": 0.00040827784687280655, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_invalid_field_types", "lineno": 38, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004708350170403719, "outcome": "passed"}, "call": {"duration": 0.0006335231009870768, "outcome": "passed"}, "teardown": {"duration": 0.00039857695810496807, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_empty_strings", "lineno": 50, "outcome": "passed", "keywords": ["test_empty_strings", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006428631022572517, "outcome": "passed"}, "call": {"duration": 0.0007120210211724043, "outcome": "passed"}, "teardown": {"duration": 0.00040894607082009315, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_none_values", "lineno": 72, "outcome": "passed", "keywords": ["test_none_values", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046224496327340603, "outcome": "passed"}, "call": {"duration": 0.0006147278472781181, "outcome": "passed"}, "teardown": {"duration": 0.0004069330170750618, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestRepositoryRef::test_extra_fields", "lineno": 84, "outcome": "passed", "keywords": ["test_extra_fields", "TestRepositoryRef", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046827993355691433, "outcome": "passed"}, "call": {"duration": 0.0005823438987135887, "outcome": "passed"}, "teardown": {"duration": 0.0004074280150234699, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_valid_data", "lineno": 99, "outcome": "passed", "keywords": ["test_valid_data", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006244881078600883, "outcome": "passed"}, "call": {"duration": 0.0005363489035516977, "outcome": "passed"}, "teardown": {"duration": 0.00047146715223789215, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_minimal_valid_data", "lineno": 105, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004395528230816126, "outcome": "passed"}, "call": {"duration": 0.000540014123544097, "outcome": "passed"}, "teardown": {"duration": 0.0004070410504937172, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_missing_required_fields", "lineno": 111, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046129198744893074, "outcome": "passed"}, "call": {"duration": 0.0006157460156828165, "outcome": "passed"}, "teardown": {"duration": 0.00040925084613263607, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_invalid_field_types", "lineno": 123, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046064797788858414, "outcome": "passed"}, "call": {"duration": 0.0006083941552788019, "outcome": "passed"}, "teardown": {"duration": 0.00040868809446692467, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_empty_strings", "lineno": 135, "outcome": "passed", "keywords": ["test_empty_strings", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046344706788659096, "outcome": "passed"}, "call": {"duration": 0.0006383010186254978, "outcome": "passed"}, "teardown": {"duration": 0.0004054268356412649, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_none_values", "lineno": 152, "outcome": "passed", "keywords": ["test_none_values", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004407039377838373, "outcome": "passed"}, "call": {"duration": 0.0006131860427558422, "outcome": "passed"}, "teardown": {"duration": 0.0004037250764667988, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_extra_fields", "lineno": 164, "outcome": "passed", "keywords": ["test_extra_fields", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004402711056172848, "outcome": "passed"}, "call": {"duration": 0.0007371560204774141, "outcome": "passed"}, "teardown": {"duration": 0.00038766907528042793, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_base_schemas.py::TestFileContent::test_binary_content", "lineno": 175, "outcome": "passed", "keywords": ["test_binary_content", "TestFileContent", "test_base_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045360391959547997, "outcome": "passed"}, "call": {"duration": 0.0005389880388975143, "outcome": "passed"}, "teardown": {"duration": 0.00039226305671036243, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_valid_data", "lineno": 26, "outcome": "passed", "keywords": ["test_valid_data", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007877140305936337, "outcome": "passed"}, "call": {"duration": 0.000563211040571332, "outcome": "passed"}, "teardown": {"duration": 0.0005388760473579168, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_minimal_valid_data", "lineno": 37, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006438021082431078, "outcome": "passed"}, "call": {"duration": 0.0005856230854988098, "outcome": "passed"}, "teardown": {"duration": 0.0004809959791600704, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_missing_required_fields", "lineno": 52, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006178130861371756, "outcome": "passed"}, "call": {"duration": 0.0006205129902809858, "outcome": "passed"}, "teardown": {"duration": 0.00047217891551554203, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_invalid_field_types", "lineno": 59, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006368278991430998, "outcome": "passed"}, "call": {"duration": 0.0007728291675448418, "outcome": "passed"}, "teardown": {"duration": 0.00047593284398317337, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_empty_strings", "lineno": 105, "outcome": "passed", "keywords": ["test_empty_strings", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006148649845272303, "outcome": "passed"}, "call": {"duration": 0.0006525840144604445, "outcome": "passed"}, "teardown": {"duration": 0.0004707339685410261, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_none_values", "lineno": 131, "outcome": "passed", "keywords": ["test_none_values", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006191888824105263, "outcome": "passed"}, "call": {"duration": 0.0006364830769598484, "outcome": "passed"}, "teardown": {"duration": 0.00047767581418156624, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_empty_lists", "lineno": 157, "outcome": "passed", "keywords": ["test_empty_lists", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006357741076499224, "outcome": "passed"}, "call": {"duration": 0.0005598939023911953, "outcome": "passed"}, "teardown": {"duration": 0.00047403317876160145, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestCreateIssueParams::test_default_values", "lineno": 175, "outcome": "passed", "keywords": ["test_default_values", "TestCreateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006045629270374775, "outcome": "passed"}, "call": {"duration": 0.0005374669563025236, "outcome": "passed"}, "teardown": {"duration": 0.00046889414079487324, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_data", "lineno": 188, "outcome": "passed", "keywords": ["test_valid_data", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008097810205072165, "outcome": "passed"}, "call": {"duration": 0.0006323650013655424, "outcome": "passed"}, "teardown": {"duration": 0.0005520831327885389, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_minimal_valid_data", "lineno": 208, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006192191503942013, "outcome": "passed"}, "call": {"duration": 0.0005440548993647099, "outcome": "passed"}, "teardown": {"duration": 0.00047117099165916443, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_state_values", "lineno": 222, "outcome": "passed", "keywords": ["test_valid_state_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006220829673111439, "outcome": "passed"}, "call": {"duration": 0.0005638909060508013, "outcome": "passed"}, "teardown": {"duration": 0.0004708138294517994, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_state_values", "lineno": 234, "outcome": "passed", "keywords": ["test_invalid_state_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006002020090818405, "outcome": "passed"}, "call": {"duration": 0.0005869159940630198, "outcome": "passed"}, "teardown": {"duration": 0.00047061219811439514, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_sort_values", "lineno": 240, "outcome": "passed", "keywords": ["test_valid_sort_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006207011174410582, "outcome": "passed"}, "call": {"duration": 0.000563963083550334, "outcome": "passed"}, "teardown": {"duration": 0.0004672238137573004, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_sort_values", "lineno": 252, "outcome": "passed", "keywords": ["test_invalid_sort_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006240708753466606, "outcome": "passed"}, "call": {"duration": 0.0008104459848254919, "outcome": "passed"}, "teardown": {"duration": 0.00047692796215415, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_valid_direction_values", "lineno": 258, "outcome": "passed", "keywords": ["test_valid_direction_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006304529961198568, "outcome": "passed"}, "call": {"duration": 0.0005674730055034161, "outcome": "passed"}, "teardown": {"duration": 0.0004554090555757284, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_direction_values", "lineno": 267, "outcome": "passed", "keywords": ["test_invalid_direction_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006144531071186066, "outcome": "passed"}, "call": {"duration": 0.0005884689744561911, "outcome": "passed"}, "teardown": {"duration": 0.0004612209741026163, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_page_values", "lineno": 273, "outcome": "passed", "keywords": ["test_invalid_page_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006337619852274656, "outcome": "passed"}, "call": {"duration": 0.0006821770220994949, "outcome": "passed"}, "teardown": {"duration": 0.0004922188818454742, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_per_page_values", "lineno": 283, "outcome": "passed", "keywords": ["test_invalid_per_page_values", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006218890193849802, "outcome": "passed"}, "call": {"duration": 0.0006889819633215666, "outcome": "passed"}, "teardown": {"duration": 0.00047535798512399197, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_none_per_page_value", "lineno": 297, "outcome": "passed", "keywords": ["test_none_per_page_value", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006185269448906183, "outcome": "passed"}, "call": {"duration": 0.0005508509930223227, "outcome": "passed"}, "teardown": {"duration": 0.0004472150467336178, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_datetime_parsing", "lineno": 302, "outcome": "passed", "keywords": ["test_datetime_parsing", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006066360510885715, "outcome": "passed"}, "call": {"duration": 0.000668846070766449, "outcome": "passed"}, "teardown": {"duration": 0.0004699248820543289, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_timezone_formats", "lineno": 338, "outcome": "passed", "keywords": ["test_timezone_formats", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006339929532259703, "outcome": "passed"}, "call": {"duration": 0.0008091910276561975, "outcome": "passed"}, "teardown": {"duration": 0.00047599105164408684, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssuesParams::test_invalid_datetime_format", "lineno": 457, "outcome": "passed", "keywords": ["test_invalid_datetime_format", "TestListIssuesParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000616075936704874, "outcome": "passed"}, "call": {"duration": 0.000846122158691287, "outcome": "passed"}, "teardown": {"duration": 0.0004672480281442404, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_valid_data", "lineno": 516, "outcome": "passed", "keywords": ["test_valid_data", "TestGetIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007848229724913836, "outcome": "passed"}, "call": {"duration": 0.0005509930197149515, "outcome": "passed"}, "teardown": {"duration": 0.0005452937912195921, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_missing_required_fields", "lineno": 523, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestGetIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000614729942753911, "outcome": "passed"}, "call": {"duration": 0.0005875430069863796, "outcome": "passed"}, "teardown": {"duration": 0.00047154794447124004, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_invalid_issue_number_type", "lineno": 530, "outcome": "passed", "keywords": ["test_invalid_issue_number_type", "TestGetIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006353580392897129, "outcome": "passed"}, "call": {"duration": 0.0005839809309691191, "outcome": "passed"}, "teardown": {"duration": 0.0006539460737258196, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestGetIssueParams::test_negative_issue_number", "lineno": 540, "outcome": "passed", "keywords": ["test_negative_issue_number", "TestGetIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006316141225397587, "outcome": "passed"}, "call": {"duration": 0.0005299681797623634, "outcome": "passed"}, "teardown": {"duration": 0.0004694277886301279, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_valid_data", "lineno": 553, "outcome": "passed", "keywords": ["test_valid_data", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007819740567356348, "outcome": "passed"}, "call": {"duration": 0.0005770879797637463, "outcome": "passed"}, "teardown": {"duration": 0.0005428378935903311, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_minimal_valid_data", "lineno": 566, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006111720576882362, "outcome": "passed"}, "call": {"duration": 0.0005434129852801561, "outcome": "passed"}, "teardown": {"duration": 0.00044624018482863903, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_partial_update", "lineno": 583, "outcome": "passed", "keywords": ["test_partial_update", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006022811867296696, "outcome": "passed"}, "call": {"duration": 0.0005448060110211372, "outcome": "passed"}, "teardown": {"duration": 0.0004535159096121788, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_valid_state_values", "lineno": 599, "outcome": "passed", "keywords": ["test_valid_state_values", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006159457843750715, "outcome": "passed"}, "call": {"duration": 0.0005519560072571039, "outcome": "passed"}, "teardown": {"duration": 0.00046804617159068584, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_invalid_state_values", "lineno": 616, "outcome": "passed", "keywords": ["test_invalid_state_values", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006285218987613916, "outcome": "passed"}, "call": {"duration": 0.000664849067106843, "outcome": "passed"}, "teardown": {"duration": 0.00047416496090590954, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_empty_title", "lineno": 636, "outcome": "passed", "keywords": ["test_empty_title", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006229099817574024, "outcome": "passed"}, "call": {"duration": 0.0006617181934416294, "outcome": "passed"}, "teardown": {"duration": 0.00047610397450625896, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_none_values", "lineno": 654, "outcome": "passed", "keywords": ["test_none_values", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006132652051746845, "outcome": "passed"}, "call": {"duration": 0.0005466961301863194, "outcome": "passed"}, "teardown": {"duration": 0.00046282587572932243, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_title_validation_edge_cases", "lineno": 674, "outcome": "passed", "keywords": ["test_title_validation_edge_cases", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006062889005988836, "outcome": "passed"}, "call": {"duration": 0.0005295758601278067, "outcome": "passed"}, "teardown": {"duration": 0.0004580160602927208, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueParams::test_invalid_field_types", "lineno": 684, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestUpdateIssueParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006214040331542492, "outcome": "passed"}, "call": {"duration": 0.0007923839148133993, "outcome": "passed"}, "teardown": {"duration": 0.0004745658952742815, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_valid_data", "lineno": 752, "outcome": "passed", "keywords": ["test_valid_data", "TestUpdateIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007886250969022512, "outcome": "passed"}, "call": {"duration": 0.0005509878974407911, "outcome": "passed"}, "teardown": {"duration": 0.0005314380396157503, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_missing_required_fields", "lineno": 761, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestUpdateIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006069389637559652, "outcome": "passed"}, "call": {"duration": 0.0006668251007795334, "outcome": "passed"}, "teardown": {"duration": 0.0004725090693682432, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_empty_body", "lineno": 790, "outcome": "passed", "keywords": ["test_empty_body", "TestUpdateIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006198049522936344, "outcome": "passed"}, "call": {"duration": 0.0006823998410254717, "outcome": "passed"}, "teardown": {"duration": 0.0006515251006931067, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestUpdateIssueCommentParams::test_invalid_field_types", "lineno": 812, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestUpdateIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006203609518706799, "outcome": "passed"}, "call": {"duration": 0.0006484012119472027, "outcome": "passed"}, "teardown": {"duration": 0.00046306196600198746, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_valid_data", "lineno": 848, "outcome": "passed", "keywords": ["test_valid_data", "TestDeleteIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000788956880569458, "outcome": "passed"}, "call": {"duration": 0.0005661528557538986, "outcome": "passed"}, "teardown": {"duration": 0.0005419999361038208, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_missing_required_fields", "lineno": 856, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestDeleteIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006181960925459862, "outcome": "passed"}, "call": {"duration": 0.0006308299489319324, "outcome": "passed"}, "teardown": {"duration": 0.0004782448522746563, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_negative_issue_number", "lineno": 874, "outcome": "passed", "keywords": ["test_negative_issue_number", "TestDeleteIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006299600936472416, "outcome": "passed"}, "call": {"duration": 0.0005311879795044661, "outcome": "passed"}, "teardown": {"duration": 0.0004522299859672785, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestDeleteIssueCommentParams::test_invalid_field_types", "lineno": 884, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestDeleteIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006190459243953228, "outcome": "passed"}, "call": {"duration": 0.0006162989884614944, "outcome": "passed"}, "teardown": {"duration": 0.0004772560205310583, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_valid_data", "lineno": 908, "outcome": "passed", "keywords": ["test_valid_data", "TestAddIssueLabelsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007957129273563623, "outcome": "passed"}, "call": {"duration": 0.0005553218070417643, "outcome": "passed"}, "teardown": {"duration": 0.0005492439959198236, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_missing_required_fields", "lineno": 916, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestAddIssueLabelsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000614555086940527, "outcome": "passed"}, "call": {"duration": 0.0006387210451066494, "outcome": "passed"}, "teardown": {"duration": 0.000453809043392539, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_empty_labels_list", "lineno": 934, "outcome": "passed", "keywords": ["test_empty_labels_list", "TestAddIssueLabelsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006141460034996271, "outcome": "passed"}, "call": {"duration": 0.0005772958975285292, "outcome": "passed"}, "teardown": {"duration": 0.00046701589599251747, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_negative_issue_number", "lineno": 945, "outcome": "passed", "keywords": ["test_negative_issue_number", "TestAddIssueLabelsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000642427010461688, "outcome": "passed"}, "call": {"duration": 0.0005303698126226664, "outcome": "passed"}, "teardown": {"duration": 0.00048298598267138004, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestAddIssueLabelsParams::test_invalid_field_types", "lineno": 955, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestAddIssueLabelsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006178808398544788, "outcome": "passed"}, "call": {"duration": 0.0006772058550268412, "outcome": "passed"}, "teardown": {"duration": 0.0017240250017493963, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_valid_data", "lineno": 988, "outcome": "passed", "keywords": ["test_valid_data", "TestRemoveIssueLabelParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007756920531392097, "outcome": "passed"}, "call": {"duration": 0.0005409701261669397, "outcome": "passed"}, "teardown": {"duration": 0.0005341859068721533, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_missing_required_fields", "lineno": 996, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestRemoveIssueLabelParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006264369003474712, "outcome": "passed"}, "call": {"duration": 0.0006637850310653448, "outcome": "passed"}, "teardown": {"duration": 0.00046736584044992924, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_empty_label", "lineno": 1014, "outcome": "passed", "keywords": ["test_empty_label", "TestRemoveIssueLabelParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006184640806168318, "outcome": "passed"}, "call": {"duration": 0.0006531630642712116, "outcome": "passed"}, "teardown": {"duration": 0.0004837149754166603, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestRemoveIssueLabelParams::test_invalid_field_types", "lineno": 1034, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestRemoveIssueLabelParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006081769242882729, "outcome": "passed"}, "call": {"duration": 0.0006482088938355446, "outcome": "passed"}, "teardown": {"duration": 0.0004854870494455099, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_valid_data", "lineno": 1058, "outcome": "passed", "keywords": ["test_valid_data", "TestIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007943320088088512, "outcome": "passed"}, "call": {"duration": 0.0005668411031365395, "outcome": "passed"}, "teardown": {"duration": 0.0005367049016058445, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_missing_required_fields", "lineno": 1066, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006153618451207876, "outcome": "passed"}, "call": {"duration": 0.0006289458833634853, "outcome": "passed"}, "teardown": {"duration": 0.0004886558745056391, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_empty_body", "lineno": 1084, "outcome": "passed", "keywords": ["test_empty_body", "TestIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006086910143494606, "outcome": "passed"}, "call": {"duration": 0.000633689109236002, "outcome": "passed"}, "teardown": {"duration": 0.00045923516154289246, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestIssueCommentParams::test_invalid_field_types", "lineno": 1104, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestIssueCommentParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006093550473451614, "outcome": "passed"}, "call": {"duration": 0.0006212580483406782, "outcome": "passed"}, "teardown": {"duration": 0.0004762839525938034, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_valid_data", "lineno": 1128, "outcome": "passed", "keywords": ["test_valid_data", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007842250633984804, "outcome": "passed"}, "call": {"duration": 0.0005969689227640629, "outcome": "passed"}, "teardown": {"duration": 0.0005406879354268312, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_minimal_valid_data", "lineno": 1145, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006014849059283733, "outcome": "passed"}, "call": {"duration": 0.0005161119624972343, "outcome": "passed"}, "teardown": {"duration": 0.0004524488467723131, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_datetime_parsing", "lineno": 1159, "outcome": "passed", "keywords": ["test_datetime_parsing", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006355959922075272, "outcome": "passed"}, "call": {"duration": 0.0006556070875376463, "outcome": "passed"}, "teardown": {"duration": 0.00046054297126829624, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_timezone_formats", "lineno": 1198, "outcome": "passed", "keywords": ["test_timezone_formats", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006216610781848431, "outcome": "passed"}, "call": {"duration": 0.0007761300075799227, "outcome": "passed"}, "teardown": {"duration": 0.000471634091809392, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_datetime_format", "lineno": 1298, "outcome": "passed", "keywords": ["test_invalid_datetime_format", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006190589629113674, "outcome": "passed"}, "call": {"duration": 0.0010685538873076439, "outcome": "passed"}, "teardown": {"duration": 0.00046765408478677273, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_field_types", "lineno": 1359, "outcome": "passed", "keywords": ["test_invalid_field_types", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006261130329221487, "outcome": "passed"}, "call": {"duration": 0.0007490899879485369, "outcome": "passed"}, "teardown": {"duration": 0.0004795021377503872, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_page_values", "lineno": 1397, "outcome": "passed", "keywords": ["test_invalid_page_values", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006130610127002001, "outcome": "passed"}, "call": {"duration": 0.0006286560092121363, "outcome": "passed"}, "teardown": {"duration": 0.0004764080513268709, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_issues_schemas.py::TestListIssueCommentsParams::test_invalid_per_page_values", "lineno": 1417, "outcome": "passed", "keywords": ["test_invalid_per_page_values", "TestListIssueCommentsParams", "test_issues_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006096179131418467, "outcome": "passed"}, "call": {"duration": 0.0006882068701088428, "outcome": "passed"}, "teardown": {"duration": 0.000491586048156023, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_valid_data", "lineno": 19, "outcome": "passed", "keywords": ["test_valid_data", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006372511852532625, "outcome": "passed"}, "call": {"duration": 0.0005513369105756283, "outcome": "passed"}, "teardown": {"duration": 0.0004723560996353626, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_minimal_valid_data", "lineno": 25, "outcome": "passed", "keywords": ["test_minimal_valid_data", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004601378459483385, "outcome": "passed"}, "call": {"duration": 0.0005247960798442364, "outcome": "passed"}, "teardown": {"duration": 0.00039686495438218117, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_missing_required_fields", "lineno": 36, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004552919417619705, "outcome": "passed"}, "call": {"duration": 0.0005723729263991117, "outcome": "passed"}, "teardown": {"duration": 0.0003833300434052944, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_invalid_content_type", "lineno": 43, "outcome": "passed", "keywords": ["test_invalid_content_type", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046557397581636906, "outcome": "passed"}, "call": {"duration": 0.0005796710029244423, "outcome": "passed"}, "teardown": {"duration": 0.0004000798799097538, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_empty_content_list", "lineno": 50, "outcome": "passed", "keywords": ["test_empty_content_list", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00048189819790422916, "outcome": "passed"}, "call": {"duration": 0.0005941858980804682, "outcome": "passed"}, "teardown": {"duration": 0.00039509893395006657, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestToolResponse::test_is_error_values", "lineno": 57, "outcome": "passed", "keywords": ["test_is_error_values", "TestToolResponse", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004658338148146868, "outcome": "passed"}, "call": {"duration": 0.0005747082177549601, "outcome": "passed"}, "teardown": {"duration": 0.0003987210802733898, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_valid_data", "lineno": 83, "outcome": "passed", "keywords": ["test_valid_data", "TestTextContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000637260964140296, "outcome": "passed"}, "call": {"duration": 0.0005271579138934612, "outcome": "passed"}, "teardown": {"duration": 0.0004810879472643137, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_missing_required_fields", "lineno": 89, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestTextContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004605608992278576, "outcome": "passed"}, "call": {"duration": 0.0008116448298096657, "outcome": "passed"}, "teardown": {"duration": 0.0004075760953128338, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_invalid_type_value", "lineno": 96, "outcome": "passed", "keywords": ["test_invalid_type_value", "TestTextContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004649881739169359, "outcome": "passed"}, "call": {"duration": 0.0005677330773323774, "outcome": "passed"}, "teardown": {"duration": 0.00040417606942355633, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestTextContent::test_empty_text", "lineno": 103, "outcome": "passed", "keywords": ["test_empty_text", "TestTextContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004662389401346445, "outcome": "passed"}, "call": {"duration": 0.0005225487984716892, "outcome": "passed"}, "teardown": {"duration": 0.00040707411244511604, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_valid_data", "lineno": 114, "outcome": "passed", "keywords": ["test_valid_data", "TestErrorContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006318939849734306, "outcome": "passed"}, "call": {"duration": 0.0005257511511445045, "outcome": "passed"}, "teardown": {"duration": 0.0004717879928648472, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_missing_required_fields", "lineno": 120, "outcome": "passed", "keywords": ["test_missing_required_fields", "TestErrorContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046301400288939476, "outcome": "passed"}, "call": {"duration": 0.0005673051346093416, "outcome": "passed"}, "teardown": {"duration": 0.00041178404353559017, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_invalid_type_value", "lineno": 127, "outcome": "passed", "keywords": ["test_invalid_type_value", "TestErrorContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00046708201989531517, "outcome": "passed"}, "call": {"duration": 0.0005811480805277824, "outcome": "passed"}, "teardown": {"duration": 0.0004015869926661253, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestErrorContent::test_empty_text", "lineno": 134, "outcome": "passed", "keywords": ["test_empty_text", "TestErrorContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004802390467375517, "outcome": "passed"}, "call": {"duration": 0.000532051082700491, "outcome": "passed"}, "teardown": {"duration": 0.00046140397898852825, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent::test_text_content", "lineno": 145, "outcome": "passed", "keywords": ["test_text_content", "TestResponseContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004755391273647547, "outcome": "passed"}, "call": {"duration": 0.0005241751205176115, "outcome": "passed"}, "teardown": {"duration": 0.0003991969861090183, "outcome": "passed"}}, {"nodeid": "tests/unit/schemas/test_responses_schemas.py::TestResponseContent::test_error_content", "lineno": 151, "outcome": "passed", "keywords": ["test_error_content", "TestResponseContent", "test_responses_schemas.py", "schemas", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004595669452100992, "outcome": "passed"}, "call": {"duration": 0.0005074839573353529, "outcome": "passed"}, "teardown": {"duration": 0.00040716095827519894, "outcome": "passed"}}, {"nodeid": "tests/unit/test_main.py::test_main_function", "lineno": 54, "outcome": "passed", "keywords": ["test_main_function", "test_main.py", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008894889615476131, "outcome": "passed"}, "call": {"duration": 0.0005309460684657097, "outcome": "passed"}, "teardown": {"duration": 0.000544714042916894, "outcome": "passed"}}, {"nodeid": "tests/unit/test_main.py::test_main_execution", "lineno": 66, "outcome": "passed", "keywords": ["test_main_execution", "test_main.py", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006132968701422215, "outcome": "passed"}, "call": {"duration": 0.0006239088252186775, "outcome": "passed"}, "teardown": {"duration": 0.0004720729775726795, "outcome": "passed"}}, {"nodeid": "tests/unit/test_main.py::test_module_import", "lineno": 110, "outcome": "passed", "keywords": ["test_module_import", "test_main.py", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006355058867484331, "outcome": "passed"}, "call": {"duration": 0.0011601820588111877, "outcome": "passed"}, "teardown": {"duration": 0.00048492499627172947, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_tool_success", "lineno": 463, "outcome": "passed", "keywords": ["test_get_repository_tool_success", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010904979426413774, "outcome": "passed"}, "call": {"duration": 0.0007520371582359076, "outcome": "passed"}, "teardown": {"duration": 0.0005645919591188431, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_tool_error", "lineno": 481, "outcome": "passed", "keywords": ["test_get_repository_tool_error", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00098958401940763, "outcome": "passed"}, "call": {"duration": 0.0011726929806172848, "outcome": "passed", "stderr": "2025-03-08 15:38:17,972 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Repository not found\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Repository not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 63, "funcName": "get_repository", "created": 1741466297.972197, "msecs": 972.0, "relativeCreated": 677985.3894710541, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,972"}]}, "teardown": {"duration": 0.0006050749216228724, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_repository_tool_success", "lineno": 495, "outcome": "passed", "keywords": ["test_create_repository_tool_success", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009935160633176565, "outcome": "passed"}, "call": {"duration": 0.0006747620645910501, "outcome": "passed"}, "teardown": {"duration": 0.0005694020073860884, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_repository_tool_validation_error", "lineno": 518, "outcome": "passed", "keywords": ["test_create_repository_tool_validation_error", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009952380787581205, "outcome": "passed"}, "call": {"duration": 0.0009407340548932552, "outcome": "passed", "stderr": "2025-03-08 15:38:17,980 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 1 validation error for CreateRepositoryParams\nname\n Value error, name cannot be empty [type=value_error, input_value='', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 1 validation error for CreateRepositoryParams\nname\n Value error, name cannot be empty [type=value_error, input_value='', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 105, "funcName": "create_repository", "created": 1741466297.9801874, "msecs": 980.0, "relativeCreated": 677993.3798313141, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,980"}]}, "teardown": {"duration": 0.0005662061739712954, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_fork_repository_tool", "lineno": 532, "outcome": "passed", "keywords": ["test_fork_repository_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010015671141445637, "outcome": "passed"}, "call": {"duration": 0.0007110689766705036, "outcome": "passed"}, "teardown": {"duration": 0.0005620510783046484, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_tool", "lineno": 555, "outcome": "passed", "keywords": ["test_search_repositories_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009974578861147165, "outcome": "passed"}, "call": {"duration": 0.0007738838903605938, "outcome": "passed"}, "teardown": {"duration": 0.0005636638961732388, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_tool_rate_limit", "lineno": 573, "outcome": "passed", "keywords": ["test_search_repositories_tool_rate_limit", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009903989266604185, "outcome": "passed"}, "call": {"duration": 0.0009162158239632845, "outcome": "passed", "stderr": "2025-03-08 15:38:17,992 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: API rate limit exceeded\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: API rate limit exceeded", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 205, "funcName": "search_repositories", "created": 1741466297.992042, "msecs": 992.0, "relativeCreated": 678005.2344799042, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:17,992"}]}, "teardown": {"duration": 0.000566188944503665, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_file_contents_tool_file", "lineno": 587, "outcome": "passed", "keywords": ["test_get_file_contents_tool_file", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009914611000567675, "outcome": "passed"}, "call": {"duration": 0.0007035851012915373, "outcome": "passed"}, "teardown": {"duration": 0.0005602550227195024, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_file_contents_tool_directory", "lineno": 610, "outcome": "passed", "keywords": ["test_get_file_contents_tool_directory", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010046479292213917, "outcome": "passed"}, "call": {"duration": 0.0008116569370031357, "outcome": "passed"}, "teardown": {"duration": 0.0005621269810944796, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_or_update_file_tool", "lineno": 633, "outcome": "passed", "keywords": ["test_create_or_update_file_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009801648557186127, "outcome": "passed"}, "call": {"duration": 0.0007282260339707136, "outcome": "passed"}, "teardown": {"duration": 0.0005722059868276119, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_push_files_tool", "lineno": 658, "outcome": "passed", "keywords": ["test_push_files_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009750891476869583, "outcome": "passed"}, "call": {"duration": 0.0007751749362796545, "outcome": "passed"}, "teardown": {"duration": 0.0005774360615760088, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_branch_tool", "lineno": 686, "outcome": "passed", "keywords": ["test_create_branch_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009811068885028362, "outcome": "passed"}, "call": {"duration": 0.0006778738461434841, "outcome": "passed"}, "teardown": {"duration": 0.0005702311173081398, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_create_branch_tool_unexpected_error", "lineno": 708, "outcome": "passed", "keywords": ["test_create_branch_tool_unexpected_error", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009918040595948696, "outcome": "passed"}, "call": {"duration": 0.0021016360260546207, "outcome": "passed", "stderr": "2025-03-08 15:38:18,015 - pygithub_mcp_server.tools.repositories.tools - ERROR - Unexpected error: Unexpected error\n2025-03-08 15:38:18,016 - pygithub_mcp_server.tools.repositories.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 388, in create_branch\n result = repositories.create_branch(branch_params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 433, in create_branch_mock\n raise op.other_error\nException: Unexpected error\n\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Unexpected error: Unexpected error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 407, "funcName": "create_branch", "created": 1741466298.015469, "msecs": 15.0, "relativeCreated": 678028.6614894867, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,015"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 388, in create_branch\n result = repositories.create_branch(branch_params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 433, in create_branch_mock\n raise op.other_error\nException: Unexpected error\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 408, "funcName": "create_branch", "created": 1741466298.0166852, "msecs": 16.0, "relativeCreated": 678029.8776626587, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,016"}]}, "teardown": {"duration": 0.0005943940486758947, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_list_commits_tool", "lineno": 743, "outcome": "passed", "keywords": ["test_list_commits_tool", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010041850619018078, "outcome": "passed"}, "call": {"duration": 0.000805482966825366, "outcome": "passed"}, "teardown": {"duration": 0.0005839038640260696, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_validation_error_handling", "lineno": 768, "outcome": "passed", "keywords": ["test_validation_error_handling", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009910829830914736, "outcome": "passed"}, "call": {"duration": 0.001362645998597145, "outcome": "passed", "stderr": "2025-03-08 15:38:18,024 - pygithub_mcp_server.tools.repositories.tools - ERROR - Unexpected error: Validation error: field required\n2025-03-08 15:38:18,025 - pygithub_mcp_server.tools.repositories.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 98, in create_repository\n result = repositories.create_repository(repo_params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 339, in create_repository_mock\n raise op.validation_error\ntest_repositories_tools.CustomValidationError: Validation error: field required\n\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Unexpected error: Validation error: field required", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 117, "funcName": "create_repository", "created": 1741466298.0247233, "msecs": 24.0, "relativeCreated": 678037.9157066345, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,024"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 98, in create_repository\n result = repositories.create_repository(repo_params)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 339, in create_repository_mock\n raise op.validation_error\ntest_repositories_tools.CustomValidationError: Validation error: field required\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 118, "funcName": "create_repository", "created": 1741466298.0251815, "msecs": 25.0, "relativeCreated": 678038.3739471436, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,025"}]}, "teardown": {"duration": 0.0005853660404682159, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_get_repository_traceback_logging", "lineno": 796, "outcome": "passed", "keywords": ["test_get_repository_traceback_logging", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.001204080879688263, "outcome": "passed"}, "call": {"duration": 0.0014779260382056236, "outcome": "passed", "stderr": "2025-03-08 15:38:18,029 - pygithub_mcp_server.tools.repositories.tools - ERROR - Unexpected error: Unexpected server error\n2025-03-08 15:38:18,030 - pygithub_mcp_server.tools.repositories.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 50, in get_repository\n result = repositories.get_repository(repo_params.owner, repo_params.repo)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 328, in get_repository_mock\n raise op.other_error\nException: Unexpected server error\n\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Unexpected error: Unexpected server error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 69, "funcName": "get_repository", "created": 1741466298.0296304, "msecs": 29.0, "relativeCreated": 678042.8228378296, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,029"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 50, in get_repository\n result = repositories.get_repository(repo_params.owner, repo_params.repo)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 328, in get_repository_mock\n raise op.other_error\nException: Unexpected server error\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 70, "funcName": "get_repository", "created": 1741466298.0300872, "msecs": 30.0, "relativeCreated": 678043.2796478271, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,030"}]}, "teardown": {"duration": 0.0007099430076777935, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_different_github_error_types", "lineno": 823, "outcome": "passed", "keywords": ["test_different_github_error_types", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.001070312224328518, "outcome": "passed"}, "call": {"duration": 0.0015340340323746204, "outcome": "passed", "stderr": "2025-03-08 15:38:18,034 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Unauthorized\n2025-03-08 15:38:18,034 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Forbidden\n2025-03-08 15:38:18,035 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Validation Failed\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Unauthorized", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 63, "funcName": "get_repository", "created": 1741466298.0343847, "msecs": 34.0, "relativeCreated": 678047.5771427155, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,034"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Forbidden", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 63, "funcName": "get_repository", "created": 1741466298.0347352, "msecs": 34.0, "relativeCreated": 678047.9276180267, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,034"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Validation Failed", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 63, "funcName": "get_repository", "created": 1741466298.035038, "msecs": 35.0, "relativeCreated": 678048.2304096222, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,035"}]}, "teardown": {"duration": 0.0005840000230818987, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_github_error_without_response", "lineno": 860, "outcome": "passed", "keywords": ["test_github_error_without_response", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000989972148090601, "outcome": "passed"}, "call": {"duration": 0.0009159659966826439, "outcome": "passed", "stderr": "2025-03-08 15:38:18,039 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Generic GitHub error\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Generic GitHub error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 63, "funcName": "get_repository", "created": 1741466298.0390627, "msecs": 39.0, "relativeCreated": 678052.255153656, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,039"}]}, "teardown": {"duration": 0.0005779180210083723, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_empty_error_message", "lineno": 875, "outcome": "passed", "keywords": ["test_empty_error_message", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0010125190019607544, "outcome": "passed"}, "call": {"duration": 0.0016130500007420778, "outcome": "passed", "stderr": "2025-03-08 15:38:18,043 - pygithub_mcp_server.tools.repositories.tools - ERROR - Unexpected error: \n2025-03-08 15:38:18,043 - pygithub_mcp_server.tools.repositories.tools - ERROR - Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 50, in get_repository\n result = repositories.get_repository(repo_params.owner, repo_params.repo)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 328, in get_repository_mock\n raise op.other_error\nException\n\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Unexpected error: ", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 69, "funcName": "get_repository", "created": 1741466298.043182, "msecs": 43.0, "relativeCreated": 678056.3743114471, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,043"}, {"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Traceback (most recent call last):\n File \"/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py\", line 50, in get_repository\n result = repositories.get_repository(repo_params.owner, repo_params.repo)\n File \"/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools.py\", line 328, in get_repository_mock\n raise op.other_error\nException\n", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 70, "funcName": "get_repository", "created": 1741466298.0438845, "msecs": 43.0, "relativeCreated": 678057.0769309998, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,043"}]}, "teardown": {"duration": 0.0005741659551858902, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools.py::test_search_repositories_missing_query", "lineno": 890, "outcome": "passed", "keywords": ["test_search_repositories_missing_query", "test_repositories_tools.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009925728663802147, "outcome": "passed"}, "call": {"duration": 0.0009365191217511892, "outcome": "passed", "stderr": "2025-03-08 15:38:18,047 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 1 validation error for SearchRepositoriesParams\nquery\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 1 validation error for SearchRepositoriesParams\nquery\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 199, "funcName": "search_repositories", "created": 1741466298.0479589, "msecs": 47.0, "relativeCreated": 678061.151266098, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,047"}]}, "teardown": {"duration": 0.0005859159864485264, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_repository_error_handling", "lineno": 122, "outcome": "passed", "keywords": ["test_create_repository_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009493969846516848, "outcome": "passed"}, "call": {"duration": 0.0010921959765255451, "outcome": "passed", "stderr": "2025-03-08 15:38:18,052 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Repository creation failed\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Repository creation failed", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 111, "funcName": "create_repository", "created": 1741466298.0522015, "msecs": 52.0, "relativeCreated": 678065.3939247131, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,052"}]}, "teardown": {"duration": 0.0005742840003222227, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_fork_repository_error_handling", "lineno": 141, "outcome": "passed", "keywords": ["test_fork_repository_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009024878963828087, "outcome": "passed"}, "call": {"duration": 0.0010070661082863808, "outcome": "passed", "stderr": "2025-03-08 15:38:18,056 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Fork operation failed\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Fork operation failed", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 158, "funcName": "fork_repository", "created": 1741466298.056723, "msecs": 56.0, "relativeCreated": 678069.9155330658, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,056"}]}, "teardown": {"duration": 0.0005909129977226257, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_search_repositories_empty_results", "lineno": 160, "outcome": "passed", "keywords": ["test_search_repositories_empty_results", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009038061834871769, "outcome": "passed"}, "call": {"duration": 0.0007519139908254147, "outcome": "passed"}, "teardown": {"duration": 0.0005967312026768923, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_search_repositories_validation_error", "lineno": 181, "outcome": "passed", "keywords": ["test_search_repositories_validation_error", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009182239882647991, "outcome": "passed"}, "call": {"duration": 0.0009542619809508324, "outcome": "passed", "stderr": "2025-03-08 15:38:18,064 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 1 validation error for SearchRepositoriesParams\nquery\n Value error, query cannot be empty [type=value_error, input_value='', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 1 validation error for SearchRepositoriesParams\nquery\n Value error, query cannot be empty [type=value_error, input_value='', input_type=str]\n For further information visit https://errors.pydantic.dev/2.10/v/value_error", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 199, "funcName": "search_repositories", "created": 1741466298.0647452, "msecs": 64.0, "relativeCreated": 678077.9376029968, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,064"}]}, "teardown": {"duration": 0.0005824381951242685, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_get_file_contents_parameter_validation", "lineno": 200, "outcome": "passed", "keywords": ["test_get_file_contents_parameter_validation", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008967919275164604, "outcome": "passed"}, "call": {"duration": 0.0009202470537275076, "outcome": "passed", "stderr": "2025-03-08 15:38:18,068 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 1 validation error for GetFileContentsParams\npath\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 1 validation error for GetFileContentsParams\npath\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 247, "funcName": "get_file_contents", "created": 1741466298.068721, "msecs": 68.0, "relativeCreated": 678081.9134712219, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,068"}]}, "teardown": {"duration": 0.00059940991923213, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_or_update_file_error_handling", "lineno": 211, "outcome": "failed", "keywords": ["test_create_or_update_file_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008968091569840908, "outcome": "passed"}, "call": {"duration": 0.0016385880298912525, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 233, "message": "AssertionError: assert False is True\n + where False = <built-in method get of dict object at 0x77e57d0df480>('is_error', False)\n + where <built-in method get of dict object at 0x77e57d0df480> = {'content': [{'text': '{}', 'type': 'text'}]}.get"}, "traceback": [{"path": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 233, "message": "in test_create_or_update_file_error_handling"}], "longrepr": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py:233: in test_create_or_update_file_error_handling\n assert result.get(\"is_error\", False) is True\nE AssertionError: assert False is True\nE + where False = <built-in method get of dict object at 0x77e57d0df480>('is_error', False)\nE + where <built-in method get of dict object at 0x77e57d0df480> = {'content': [{'text': '{}', 'type': 'text'}]}.get"}, "teardown": {"duration": 0.0005779219791293144, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_or_update_file_validation_error", "lineno": 236, "outcome": "passed", "keywords": ["test_create_or_update_file_validation_error", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000925455940887332, "outcome": "passed"}, "call": {"duration": 0.000965840881690383, "outcome": "passed", "stderr": "2025-03-08 15:38:18,090 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 3 validation errors for CreateOrUpdateFileParams\ncontent\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nmessage\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 3 validation errors for CreateOrUpdateFileParams\ncontent\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nmessage\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner', '...o', 'path': 'README.md'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 298, "funcName": "create_or_update_file", "created": 1741466298.0900989, "msecs": 90.0, "relativeCreated": 678103.2912731171, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,090"}]}, "teardown": {"duration": 0.0005763310473412275, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_push_files_validation_error", "lineno": 252, "outcome": "passed", "keywords": ["test_push_files_validation_error", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008993158116936684, "outcome": "passed"}, "call": {"duration": 0.0009599649347364902, "outcome": "passed", "stderr": "2025-03-08 15:38:18,094 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 3 validation errors for PushFilesParams\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nfiles\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nmessage\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 3 validation errors for PushFilesParams\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nfiles\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nmessage\n Field required [type=missing, input_value={'owner': 'test-owner', 'repo': 'test-repo'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 347, "funcName": "push_files", "created": 1741466298.0941467, "msecs": 94.0, "relativeCreated": 678107.339143753, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,094"}]}, "teardown": {"duration": 0.0005798379424959421, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_push_files_error_handling", "lineno": 266, "outcome": "failed", "keywords": ["test_push_files_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008944540750235319, "outcome": "passed"}, "call": {"duration": 0.0010913230944424868, "outcome": "failed", "crash": {"path": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 287, "message": "AssertionError: assert False is True\n + where False = <built-in method get of dict object at 0x77e57d070b40>('is_error', False)\n + where <built-in method get of dict object at 0x77e57d070b40> = {'content': [{'text': '{}', 'type': 'text'}]}.get"}, "traceback": [{"path": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 287, "message": "in test_push_files_error_handling"}], "longrepr": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py:287: in test_push_files_error_handling\n assert result.get(\"is_error\", False) is True\nE AssertionError: assert False is True\nE + where False = <built-in method get of dict object at 0x77e57d070b40>('is_error', False)\nE + where <built-in method get of dict object at 0x77e57d070b40> = {'content': [{'text': '{}', 'type': 'text'}]}.get"}, "teardown": {"duration": 0.0006045179907232523, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_branch_validation_error", "lineno": 291, "outcome": "passed", "keywords": ["test_create_branch_validation_error", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009357861708849669, "outcome": "passed"}, "call": {"duration": 0.0009516740683466196, "outcome": "passed", "stderr": "2025-03-08 15:38:18,114 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 2 validation errors for CreateBranchParams\nrepo\n Field required [type=missing, input_value={'owner': 'test-owner'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 2 validation errors for CreateBranchParams\nrepo\n Field required [type=missing, input_value={'owner': 'test-owner'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nbranch\n Field required [type=missing, input_value={'owner': 'test-owner'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 395, "funcName": "create_branch", "created": 1741466298.1145039, "msecs": 114.0, "relativeCreated": 678127.6962757111, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,114"}]}, "teardown": {"duration": 0.0005872340407222509, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_create_branch_error_handling", "lineno": 304, "outcome": "passed", "keywords": ["test_create_branch_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0009111869148910046, "outcome": "passed"}, "call": {"duration": 0.0010012849234044552, "outcome": "passed", "stderr": "2025-03-08 15:38:18,118 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Branch already exists\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Branch already exists", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 401, "funcName": "create_branch", "created": 1741466298.1186166, "msecs": 118.0, "relativeCreated": 678131.8089962006, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,118"}]}, "teardown": {"duration": 0.0005831827875226736, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_list_commits_parameter_validation", "lineno": 328, "outcome": "passed", "keywords": ["test_list_commits_parameter_validation", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000907649053260684, "outcome": "passed"}, "call": {"duration": 0.0009142919443547726, "outcome": "passed", "stderr": "2025-03-08 15:38:18,122 - pygithub_mcp_server.tools.repositories.tools - ERROR - Validation error: 2 validation errors for ListCommitsParams\nowner\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nrepo\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "Validation error: 2 validation errors for ListCommitsParams\nowner\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing\nrepo\n Field required [type=missing, input_value={}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.10/v/missing", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 444, "funcName": "list_commits", "created": 1741466298.122674, "msecs": 122.0, "relativeCreated": 678135.8664035797, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,122"}]}, "teardown": {"duration": 0.0005809350404888391, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/repositories/test_repositories_tools_edge_cases.py::test_list_commits_error_handling", "lineno": 341, "outcome": "passed", "keywords": ["test_list_commits_error_handling", "test_repositories_tools_edge_cases.py", "repositories", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008957970421761274, "outcome": "passed"}, "call": {"duration": 0.001003527082502842, "outcome": "passed", "stderr": "2025-03-08 15:38:18,126 - pygithub_mcp_server.tools.repositories.tools - ERROR - GitHub error: Not found\n", "log": [{"name": "pygithub_mcp_server.tools.repositories.tools", "msg": "GitHub error: Not found", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/repositories/tools.py", "filename": "tools.py", "module": "tools", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 450, "funcName": "list_commits", "created": 1741466298.126723, "msecs": 126.0, "relativeCreated": 678139.9154663086, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,126"}]}, "teardown": {"duration": 0.0005889409221708775, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator::test_tool_registration", "lineno": 30, "outcome": "passed", "keywords": ["test_tool_registration", "TestToolDecorator", "test_registration_tools.py", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007082568481564522, "outcome": "passed"}, "call": {"duration": 0.0007188189774751663, "outcome": "passed"}, "teardown": {"duration": 0.0004852588754147291, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolDecorator::test_multiple_tool_registration", "lineno": 44, "outcome": "passed", "keywords": ["test_multiple_tool_registration", "TestToolDecorator", "test_registration_tools.py", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006666469853371382, "outcome": "passed"}, "call": {"duration": 0.0006379180122166872, "outcome": "passed"}, "teardown": {"duration": 0.00048267398960888386, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolRegistration::test_register_tools", "lineno": 70, "outcome": "passed", "keywords": ["test_register_tools", "TestToolRegistration", "test_registration_tools.py", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0006618578918278217, "outcome": "passed"}, "call": {"duration": 0.0005712490528821945, "outcome": "passed"}, "teardown": {"duration": 0.0004677530378103256, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading::test_load_tools_enabled_group", "lineno": 163, "outcome": "passed", "keywords": ["test_load_tools_enabled_group", "TestToolLoading", "test_registration_tools.py", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008440830279141665, "outcome": "passed"}, "call": {"duration": 0.0006411110516637564, "outcome": "passed"}, "teardown": {"duration": 0.0005255748983472586, "outcome": "passed"}}, {"nodeid": "tests/unit/tools/test_registration_tools.py::TestToolLoading::test_load_tools_module_error", "lineno": 205, "outcome": "passed", "keywords": ["test_load_tools_module_error", "TestToolLoading", "test_registration_tools.py", "tools", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008320009801536798, "outcome": "passed"}, "call": {"duration": 0.0013819988816976547, "outcome": "passed", "stderr": "2025-03-08 15:38:18,144 - pygithub_mcp_server.tools - ERROR - Failed to import tool group 'nonexistent': No module named 'pygithub_mcp_server.tools.nonexistent'\n2025-03-08 15:38:18,144 - pygithub_mcp_server.tools - WARNING - No tool groups were loaded! Check your configuration.\n", "log": [{"name": "pygithub_mcp_server.tools", "msg": "Failed to import tool group 'nonexistent': No module named 'pygithub_mcp_server.tools.nonexistent'", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 129, "funcName": "load_tools", "created": 1741466298.1445022, "msecs": 144.0, "relativeCreated": 678157.6945781708, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,144"}, {"name": "pygithub_mcp_server.tools", "msg": "No tool groups were loaded! Check your configuration.", "args": null, "levelname": "WARNING", "levelno": 30, "pathname": "/code/python-mcp-servers/pygithub-mcp-server/src/pygithub_mcp_server/tools/__init__.py", "filename": "__init__.py", "module": "__init__", "exc_info": null, "exc_text": null, "stack_info": null, "lineno": 136, "funcName": "load_tools", "created": 1741466298.1447763, "msecs": 144.0, "relativeCreated": 678157.9687595367, "thread": 131827605139456, "threadName": "MainThread", "processName": "MainProcess", "process": 3996277, "asctime": "2025-03-08 15:38:18,144"}]}, "teardown": {"duration": 0.0005563739687204361, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken::test_with_token_in_env", "lineno": 21, "outcome": "passed", "keywords": ["test_with_token_in_env", "__wrapped__", "TestGetGithubToken", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008829720318317413, "outcome": "passed"}, "call": {"duration": 0.0018837889656424522, "outcome": "passed"}, "teardown": {"duration": 0.00040264101698994637, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetGithubToken::test_without_token_in_env", "lineno": 27, "outcome": "passed", "keywords": ["test_without_token_in_env", "__wrapped__", "TestGetGithubToken", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004653481300920248, "outcome": "passed"}, "call": {"duration": 0.0018672810401767492, "outcome": "passed"}, "teardown": {"duration": 0.0003908369690179825, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_with_var_in_env", "lineno": 38, "outcome": "passed", "keywords": ["test_with_var_in_env", "__wrapped__", "TestGetEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000462906202301383, "outcome": "passed"}, "call": {"duration": 0.0017951379995793104, "outcome": "passed"}, "teardown": {"duration": 0.00039324210956692696, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_without_var_in_env_no_default", "lineno": 44, "outcome": "passed", "keywords": ["test_without_var_in_env_no_default", "__wrapped__", "TestGetEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004519768990576267, "outcome": "passed"}, "call": {"duration": 0.001786587992683053, "outcome": "passed"}, "teardown": {"duration": 0.00040066009387373924, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetEnvVar::test_without_var_in_env_with_default", "lineno": 51, "outcome": "passed", "keywords": ["test_without_var_in_env_with_default", "__wrapped__", "TestGetEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004562879912555218, "outcome": "passed"}, "call": {"duration": 0.002030119998380542, "outcome": "passed"}, "teardown": {"duration": 0.00041593192145228386, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[true-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[true-True]", "parametrize", "pytestmark", "true-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008114480879157782, "outcome": "passed"}, "call": {"duration": 0.0017910250462591648, "outcome": "passed"}, "teardown": {"duration": 0.0005329421255737543, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[True-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[True-True]", "parametrize", "pytestmark", "True-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007746508345007896, "outcome": "passed"}, "call": {"duration": 0.0017894208431243896, "outcome": "passed"}, "teardown": {"duration": 0.0005080609116703272, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[TRUE-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[TRUE-True]", "parametrize", "pytestmark", "TRUE-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007843319326639175, "outcome": "passed"}, "call": {"duration": 0.0017742430791258812, "outcome": "passed"}, "teardown": {"duration": 0.0005267178639769554, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[1-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[1-True]", "parametrize", "pytestmark", "1-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007853980641812086, "outcome": "passed"}, "call": {"duration": 0.0017590359784662724, "outcome": "passed"}, "teardown": {"duration": 0.000515311025083065, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[yes-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[yes-True]", "parametrize", "pytestmark", "yes-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007836299482733011, "outcome": "passed"}, "call": {"duration": 0.0017620718572288752, "outcome": "passed"}, "teardown": {"duration": 0.0005101629067212343, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[Yes-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[Yes-True]", "parametrize", "pytestmark", "Yes-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007874020375311375, "outcome": "passed"}, "call": {"duration": 0.001772747142240405, "outcome": "passed"}, "teardown": {"duration": 0.0005141401197761297, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[YES-True]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[YES-True]", "parametrize", "pytestmark", "YES-True", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000796083128079772, "outcome": "passed"}, "call": {"duration": 0.0017623510211706161, "outcome": "passed"}, "teardown": {"duration": 0.0005222361069172621, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[false-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[false-False]", "parametrize", "pytestmark", "false-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0008033139165490866, "outcome": "passed"}, "call": {"duration": 0.0017643009778112173, "outcome": "passed"}, "teardown": {"duration": 0.0004980529192835093, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[False-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[False-False]", "parametrize", "pytestmark", "False-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007726859766989946, "outcome": "passed"}, "call": {"duration": 0.0017772340215742588, "outcome": "passed"}, "teardown": {"duration": 0.0005159769207239151, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[FALSE-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[FALSE-False]", "parametrize", "pytestmark", "FALSE-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007929150015115738, "outcome": "passed"}, "call": {"duration": 0.0017811520956456661, "outcome": "passed"}, "teardown": {"duration": 0.000509920995682478, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[0-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[0-False]", "parametrize", "pytestmark", "0-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00079894601367414, "outcome": "passed"}, "call": {"duration": 0.0017591011710464954, "outcome": "passed"}, "teardown": {"duration": 0.0005209289956837893, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[no-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[no-False]", "parametrize", "pytestmark", "no-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007677969988435507, "outcome": "passed"}, "call": {"duration": 0.0017860450316220522, "outcome": "passed"}, "teardown": {"duration": 0.0005103929433971643, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[No-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[No-False]", "parametrize", "pytestmark", "No-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0007840609177947044, "outcome": "passed"}, "call": {"duration": 0.0017847539857029915, "outcome": "passed"}, "teardown": {"duration": 0.0005084909498691559, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_valid_bool_values[NO-False]", "lineno": 61, "outcome": "passed", "keywords": ["test_with_valid_bool_values[NO-False]", "parametrize", "pytestmark", "NO-False", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.000783625990152359, "outcome": "passed"}, "call": {"duration": 0.0017715881112962961, "outcome": "passed"}, "teardown": {"duration": 0.0005192509852349758, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_with_invalid_bool_value", "lineno": 83, "outcome": "passed", "keywords": ["test_with_invalid_bool_value", "__wrapped__", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00044863997027277946, "outcome": "passed"}, "call": {"duration": 0.0018006928730756044, "outcome": "passed"}, "teardown": {"duration": 0.0003802948631346226, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_without_var_in_env_no_default", "lineno": 91, "outcome": "passed", "keywords": ["test_without_var_in_env_no_default", "__wrapped__", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.0004607930313795805, "outcome": "passed"}, "call": {"duration": 0.001771450974047184, "outcome": "passed"}, "teardown": {"duration": 0.00039637996815145016, "outcome": "passed"}}, {"nodeid": "tests/unit/utils/test_environment.py::TestGetBoolEnvVar::test_without_var_in_env_with_default", "lineno": 98, "outcome": "passed", "keywords": ["test_without_var_in_env_with_default", "__wrapped__", "TestGetBoolEnvVar", "test_environment.py", "utils", "unit", "tests", "pygithub-mcp-server", ""], "setup": {"duration": 0.00045892922207713127, "outcome": "passed"}, "call": {"duration": 0.0017539181280881166, "outcome": "passed"}, "teardown": {"duration": 0.0009405519813299179, "outcome": "passed"}}], "warnings": [{"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}, {"message": "The `dict` method is deprecated; use `model_dump` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.10/migration/", "category": "PydanticDeprecatedSince20", "when": "runtest", "filename": "/code/python-mcp-servers/pygithub-mcp-server/tests/unit/tools/repositories/test_repositories_tools_edge_cases.py", "lineno": 73}]}