robosystems-client 0.1.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of robosystems-client might be problematic. Click here for more details.
- robosystems_client-0.1.9/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- robosystems_client-0.1.9/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- robosystems_client-0.1.9/.github/workflows/claude.yml +37 -0
- robosystems_client-0.1.9/.github/workflows/create-pr.yml +308 -0
- robosystems_client-0.1.9/.github/workflows/create-release.yml +123 -0
- robosystems_client-0.1.9/.github/workflows/publish.yml +59 -0
- robosystems_client-0.1.9/.github/workflows/tag-release.yml +293 -0
- robosystems_client-0.1.9/.github/workflows/test.yml +39 -0
- robosystems_client-0.1.9/.gitignore +145 -0
- robosystems_client-0.1.9/.python-version +1 -0
- robosystems_client-0.1.9/.vscode/settings.json +22 -0
- robosystems_client-0.1.9/.vscode/tasks.json +178 -0
- robosystems_client-0.1.9/PKG-INFO +302 -0
- robosystems_client-0.1.9/README.md +253 -0
- robosystems_client-0.1.9/bin/create-pr +132 -0
- robosystems_client-0.1.9/bin/create-release +73 -0
- robosystems_client-0.1.9/justfile +95 -0
- robosystems_client-0.1.9/pyproject.toml +67 -0
- robosystems_client-0.1.9/pytest.ini +22 -0
- robosystems_client-0.1.9/robosystems_client/__init__.py +14 -0
- robosystems_client-0.1.9/robosystems_client/api/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/agent/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/agent/query_financial_agent.py +423 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/check_password_strength.py +172 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/complete_sso_auth.py +177 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/generate_sso_token.py +174 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/get_captcha_config.py +87 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/get_current_auth_user.py +220 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/get_password_policy.py +134 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/login_user.py +181 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/logout_user.py +169 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/refresh_session.py +174 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/register_user.py +189 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/sso_login.py +177 -0
- robosystems_client-0.1.9/robosystems_client/api/auth/sso_token_exchange.py +181 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/create_backup.py +401 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/export_backup.py +225 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/get_backup_download_url.py +258 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/get_backup_stats.py +182 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/kuzu_backup_health.py +202 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/list_backups.py +217 -0
- robosystems_client-0.1.9/robosystems_client/api/backup/restore_backup.py +401 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_available_subscription_plans_v1_graph_id_billing_available_plans_get.py +198 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_credit_billing_info_v1_graph_id_billing_credits_get.py +210 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_current_graph_bill.py +285 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_billing_history.py +329 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_monthly_bill.py +315 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_pricing_info_v1_graph_id_billing_pricing_get.py +198 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_subscription_v1_graph_id_billing_subscription_get.py +198 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/get_graph_usage_details.py +350 -0
- robosystems_client-0.1.9/robosystems_client/api/billing/upgrade_graph_subscription_v1_graph_id_billing_subscription_upgrade_post.py +216 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/create_connection.py +327 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/create_link_token.py +281 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/delete_connection.py +278 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/exchange_link_token.py +301 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/get_connection.py +262 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/get_connection_options.py +285 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/init_o_auth.py +230 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/list_connections.py +314 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/oauth_callback.py +318 -0
- robosystems_client-0.1.9/robosystems_client/api/connections/sync_connection.py +362 -0
- robosystems_client-0.1.9/robosystems_client/api/create/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/create/create_graph.py +375 -0
- robosystems_client-0.1.9/robosystems_client/api/create/get_available_extensions.py +134 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/check_credit_balance.py +299 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/check_storage_limits.py +249 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/get_credit_summary.py +245 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/get_storage_usage.py +279 -0
- robosystems_client-0.1.9/robosystems_client/api/credits_/list_credit_transactions.py +392 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_analytics/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_analytics/get_graph_metrics.py +285 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_analytics/get_graph_usage_stats.py +329 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_status/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_status/get_database_health.py +273 -0
- robosystems_client-0.1.9/robosystems_client/api/graph_status/get_database_info.py +277 -0
- robosystems_client-0.1.9/robosystems_client/api/mcp/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/mcp/call_mcp_tool.py +432 -0
- robosystems_client-0.1.9/robosystems_client/api/mcp/list_mcp_tools.py +265 -0
- robosystems_client-0.1.9/robosystems_client/api/operations/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/operations/cancel_operation.py +246 -0
- robosystems_client-0.1.9/robosystems_client/api/operations/get_operation_status.py +273 -0
- robosystems_client-0.1.9/robosystems_client/api/operations/stream_operation_events.py +415 -0
- robosystems_client-0.1.9/robosystems_client/api/query/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/query/execute_cypher_query.py +482 -0
- robosystems_client-0.1.9/robosystems_client/api/schema/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/schema/export_graph_schema.py +239 -0
- robosystems_client-0.1.9/robosystems_client/api/schema/get_graph_schema_info.py +277 -0
- robosystems_client-0.1.9/robosystems_client/api/schema/list_schema_extensions.py +216 -0
- robosystems_client-0.1.9/robosystems_client/api/schema/validate_schema.py +326 -0
- robosystems_client-0.1.9/robosystems_client/api/service_offerings/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/service_offerings/get_service_offerings.py +197 -0
- robosystems_client-0.1.9/robosystems_client/api/status/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/status/get_mcp_health.py +136 -0
- robosystems_client-0.1.9/robosystems_client/api/status/get_service_status.py +134 -0
- robosystems_client-0.1.9/robosystems_client/api/user/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/user/create_user_api_key.py +205 -0
- robosystems_client-0.1.9/robosystems_client/api/user/get_all_credit_summaries.py +256 -0
- robosystems_client-0.1.9/robosystems_client/api/user/get_current_user.py +187 -0
- robosystems_client-0.1.9/robosystems_client/api/user/get_user_graphs.py +187 -0
- robosystems_client-0.1.9/robosystems_client/api/user/list_user_api_keys.py +187 -0
- robosystems_client-0.1.9/robosystems_client/api/user/revoke_user_api_key.py +209 -0
- robosystems_client-0.1.9/robosystems_client/api/user/select_user_graph.py +213 -0
- robosystems_client-0.1.9/robosystems_client/api/user/update_user.py +205 -0
- robosystems_client-0.1.9/robosystems_client/api/user/update_user_api_key.py +218 -0
- robosystems_client-0.1.9/robosystems_client/api/user/update_user_password.py +218 -0
- robosystems_client-0.1.9/robosystems_client/api/user_analytics/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/user_analytics/get_detailed_user_analytics.py +222 -0
- robosystems_client-0.1.9/robosystems_client/api/user_analytics/get_user_usage_overview.py +187 -0
- robosystems_client-0.1.9/robosystems_client/api/user_limits/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/user_limits/get_user_limits.py +190 -0
- robosystems_client-0.1.9/robosystems_client/api/user_limits/get_user_usage.py +187 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/cancel_shared_repository_subscription.py +209 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_repository_credits.py +206 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_shared_repository_credits.py +193 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/get_user_shared_subscriptions.py +213 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/subscribe_to_shared_repository.py +214 -0
- robosystems_client-0.1.9/robosystems_client/api/user_subscriptions/upgrade_shared_repository_subscription.py +228 -0
- robosystems_client-0.1.9/robosystems_client/client.py +278 -0
- robosystems_client-0.1.9/robosystems_client/errors.py +16 -0
- robosystems_client-0.1.9/robosystems_client/extensions/README.md +611 -0
- robosystems_client-0.1.9/robosystems_client/extensions/__init__.py +108 -0
- robosystems_client-0.1.9/robosystems_client/extensions/auth_integration.py +210 -0
- robosystems_client-0.1.9/robosystems_client/extensions/extensions.py +170 -0
- robosystems_client-0.1.9/robosystems_client/extensions/operation_client.py +368 -0
- robosystems_client-0.1.9/robosystems_client/extensions/query_client.py +375 -0
- robosystems_client-0.1.9/robosystems_client/extensions/sse_client.py +520 -0
- robosystems_client-0.1.9/robosystems_client/extensions/tests/__init__.py +1 -0
- robosystems_client-0.1.9/robosystems_client/extensions/tests/test_integration.py +490 -0
- robosystems_client-0.1.9/robosystems_client/extensions/tests/test_unit.py +560 -0
- robosystems_client-0.1.9/robosystems_client/extensions/utils.py +526 -0
- robosystems_client-0.1.9/robosystems_client/models/__init__.py +379 -0
- robosystems_client-0.1.9/robosystems_client/models/account_info.py +79 -0
- robosystems_client-0.1.9/robosystems_client/models/add_on_credit_info.py +119 -0
- robosystems_client-0.1.9/robosystems_client/models/agent_message.py +68 -0
- robosystems_client-0.1.9/robosystems_client/models/agent_request.py +132 -0
- robosystems_client-0.1.9/robosystems_client/models/agent_request_context_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/agent_response.py +132 -0
- robosystems_client-0.1.9/robosystems_client/models/agent_response_metadata_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/api_key_info.py +134 -0
- robosystems_client-0.1.9/robosystems_client/models/api_keys_response.py +74 -0
- robosystems_client-0.1.9/robosystems_client/models/auth_response.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/auth_response_user.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/available_extension.py +78 -0
- robosystems_client-0.1.9/robosystems_client/models/available_extensions_response.py +73 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_create_request.py +117 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_export_request.py +72 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_list_response.py +90 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_response.py +200 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_restore_request.py +81 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_stats_response.py +156 -0
- robosystems_client-0.1.9/robosystems_client/models/backup_stats_response_backup_formats.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/cancel_operation_response_canceloperation.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/cancellation_response.py +76 -0
- robosystems_client-0.1.9/robosystems_client/models/check_credit_balance_response_checkcreditbalance.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_options_response.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_provider_info.py +203 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_provider_info_auth_type.py +11 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_provider_info_provider.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_response.py +149 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_response_metadata.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/connection_response_provider.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/create_api_key_request.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/create_api_key_response.py +74 -0
- robosystems_client-0.1.9/robosystems_client/models/create_connection_request.py +179 -0
- robosystems_client-0.1.9/robosystems_client/models/create_connection_request_provider.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/create_graph_request.py +183 -0
- robosystems_client-0.1.9/robosystems_client/models/credit_check_request.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/credit_summary.py +128 -0
- robosystems_client-0.1.9/robosystems_client/models/credit_summary_response.py +140 -0
- robosystems_client-0.1.9/robosystems_client/models/credits_summary_response.py +122 -0
- robosystems_client-0.1.9/robosystems_client/models/credits_summary_response_credits_by_addon_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition.py +194 -0
- robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_metadata.py +49 -0
- robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_nodes_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/custom_schema_definition_relationships_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/cypher_query_request.py +128 -0
- robosystems_client-0.1.9/robosystems_client/models/cypher_query_request_parameters_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/database_health_response.py +181 -0
- robosystems_client-0.1.9/robosystems_client/models/database_info_response.py +191 -0
- robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response.py +124 -0
- robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response_date_range.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/detailed_transactions_response_summary.py +59 -0
- robosystems_client-0.1.9/robosystems_client/models/enhanced_credit_transaction_response.py +192 -0
- robosystems_client-0.1.9/robosystems_client/models/enhanced_credit_transaction_response_metadata.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/error_response.py +145 -0
- robosystems_client-0.1.9/robosystems_client/models/exchange_token_request.py +116 -0
- robosystems_client-0.1.9/robosystems_client/models/exchange_token_request_metadata_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_all_credit_summaries_response_getallcreditsummaries.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_backup_download_url_response_getbackupdownloadurl.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_current_auth_user_response_getcurrentauthuser.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_current_graph_bill_response_getcurrentgraphbill.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_graph_billing_history_response_getgraphbillinghistory.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_graph_monthly_bill_response_getgraphmonthlybill.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_graph_schema_info_response_getgraphschemainfo.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_graph_usage_details_response_getgraphusagedetails.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_mcp_health_response_getmcphealth.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_operation_status_response_getoperationstatus.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/get_storage_usage_response_getstorageusage.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_info.py +92 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metadata.py +105 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response.py +188 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_estimated_size.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_health_status.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_node_counts.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_metrics_response_relationship_counts.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_usage_response.py +116 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_query_statistics.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_recent_activity.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/graph_usage_response_storage_usage.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/health_status.py +110 -0
- robosystems_client-0.1.9/robosystems_client/models/health_status_details_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/http_validation_error.py +75 -0
- robosystems_client-0.1.9/robosystems_client/models/initial_entity_data.py +212 -0
- robosystems_client-0.1.9/robosystems_client/models/kuzu_backup_health_response_kuzubackuphealth.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/link_token_request.py +174 -0
- robosystems_client-0.1.9/robosystems_client/models/link_token_request_options_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/link_token_request_provider_type_0.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/list_connections_provider_type_0.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/list_schema_extensions_response_listschemaextensions.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/login_request.py +68 -0
- robosystems_client-0.1.9/robosystems_client/models/logout_user_response_logoutuser.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/mcp_tool_call.py +84 -0
- robosystems_client-0.1.9/robosystems_client/models/mcp_tool_call_arguments.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/mcp_tools_response.py +74 -0
- robosystems_client-0.1.9/robosystems_client/models/mcp_tools_response_tools_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/o_auth_callback_request.py +130 -0
- robosystems_client-0.1.9/robosystems_client/models/o_auth_init_request.py +128 -0
- robosystems_client-0.1.9/robosystems_client/models/o_auth_init_request_additional_params_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/o_auth_init_response.py +78 -0
- robosystems_client-0.1.9/robosystems_client/models/password_check_request.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/password_check_response.py +112 -0
- robosystems_client-0.1.9/robosystems_client/models/password_check_response_character_types.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/password_policy_response.py +66 -0
- robosystems_client-0.1.9/robosystems_client/models/password_policy_response_policy.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config.py +209 -0
- robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config_accounts_type_0_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/plaid_connection_config_institution_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/quick_books_connection_config.py +92 -0
- robosystems_client-0.1.9/robosystems_client/models/register_request.py +98 -0
- robosystems_client-0.1.9/robosystems_client/models/repository_credits_response.py +101 -0
- robosystems_client-0.1.9/robosystems_client/models/repository_plan.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/repository_type.py +10 -0
- robosystems_client-0.1.9/robosystems_client/models/response_mode.py +11 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_export_response.py +163 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_export_response_data_stats_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_export_response_schema_definition_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_validation_request.py +142 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_validation_request_schema_definition_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_validation_response.py +227 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_validation_response_compatibility_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/schema_validation_response_stats_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/sec_connection_config.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/sso_complete_request.py +60 -0
- robosystems_client-0.1.9/robosystems_client/models/sso_exchange_request.py +90 -0
- robosystems_client-0.1.9/robosystems_client/models/sso_exchange_response.py +78 -0
- robosystems_client-0.1.9/robosystems_client/models/sso_login_request.py +60 -0
- robosystems_client-0.1.9/robosystems_client/models/sso_token_response.py +78 -0
- robosystems_client-0.1.9/robosystems_client/models/storage_limit_response.py +149 -0
- robosystems_client-0.1.9/robosystems_client/models/subscription_info.py +180 -0
- robosystems_client-0.1.9/robosystems_client/models/subscription_info_metadata.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/subscription_request.py +89 -0
- robosystems_client-0.1.9/robosystems_client/models/subscription_response.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/success_response.py +112 -0
- robosystems_client-0.1.9/robosystems_client/models/success_response_data_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/sync_connection_request.py +106 -0
- robosystems_client-0.1.9/robosystems_client/models/sync_connection_request_sync_options_type_0.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/sync_connection_response_syncconnection.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/tier_upgrade_request.py +62 -0
- robosystems_client-0.1.9/robosystems_client/models/transaction_summary_response.py +126 -0
- robosystems_client-0.1.9/robosystems_client/models/update_api_key_request.py +92 -0
- robosystems_client-0.1.9/robosystems_client/models/update_password_request.py +76 -0
- robosystems_client-0.1.9/robosystems_client/models/update_user_request.py +92 -0
- robosystems_client-0.1.9/robosystems_client/models/upgrade_subscription_request.py +82 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response.py +132 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_api_usage.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_graph_usage.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_limits.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_recent_activity_item.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_analytics_response_user_info.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_graph_summary.py +134 -0
- robosystems_client-0.1.9/robosystems_client/models/user_graphs_response.py +96 -0
- robosystems_client-0.1.9/robosystems_client/models/user_limits_response.py +95 -0
- robosystems_client-0.1.9/robosystems_client/models/user_response.py +132 -0
- robosystems_client-0.1.9/robosystems_client/models/user_subscriptions_response.py +90 -0
- robosystems_client-0.1.9/robosystems_client/models/user_usage_response.py +90 -0
- robosystems_client-0.1.9/robosystems_client/models/user_usage_response_graphs.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/user_usage_summary_response.py +130 -0
- robosystems_client-0.1.9/robosystems_client/models/user_usage_summary_response_usage_vs_limits.py +44 -0
- robosystems_client-0.1.9/robosystems_client/models/validation_error.py +88 -0
- robosystems_client-0.1.9/robosystems_client/py.typed +1 -0
- robosystems_client-0.1.9/robosystems_client/sdk-config.yaml +5 -0
- robosystems_client-0.1.9/robosystems_client/types.py +54 -0
- robosystems_client-0.1.9/ruff.toml +45 -0
- robosystems_client-0.1.9/tests/__init__.py +1 -0
- robosystems_client-0.1.9/tests/test_client.py +36 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '....'
|
|
17
|
+
3. Scroll down to '....'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Expected behavior**
|
|
21
|
+
A clear and concise description of what you expected to happen.
|
|
22
|
+
|
|
23
|
+
**Screenshots**
|
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
|
25
|
+
|
|
26
|
+
**Additional context**
|
|
27
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Claude PR Review
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issue_comment:
|
|
5
|
+
types: [created]
|
|
6
|
+
pull_request_review_comment:
|
|
7
|
+
types: [created]
|
|
8
|
+
issues:
|
|
9
|
+
types: [opened, assigned]
|
|
10
|
+
pull_request_review:
|
|
11
|
+
types: [submitted]
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
claude:
|
|
15
|
+
if: |
|
|
16
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
17
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
18
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
19
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
pull-requests: read
|
|
24
|
+
issues: read
|
|
25
|
+
id-token: write
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout repository
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
ref: ${{ github.ref }}
|
|
31
|
+
token: ${{ secrets.ACTIONS_TOKEN }}
|
|
32
|
+
|
|
33
|
+
- name: Run Claude Code
|
|
34
|
+
id: claude
|
|
35
|
+
uses: anthropics/claude-code-action@beta
|
|
36
|
+
with:
|
|
37
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
name: Claude Create PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
source_branch:
|
|
7
|
+
description: "Source branch to create PR from (defaults to current branch)"
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
target_branch:
|
|
11
|
+
description: "Target branch to merge into"
|
|
12
|
+
required: true
|
|
13
|
+
type: choice
|
|
14
|
+
options:
|
|
15
|
+
- main
|
|
16
|
+
- staging
|
|
17
|
+
default: main
|
|
18
|
+
pr_type:
|
|
19
|
+
description: "Type of PR"
|
|
20
|
+
required: true
|
|
21
|
+
type: choice
|
|
22
|
+
options:
|
|
23
|
+
- release
|
|
24
|
+
- feature
|
|
25
|
+
- bugfix
|
|
26
|
+
- hotfix
|
|
27
|
+
default: release
|
|
28
|
+
claude_review:
|
|
29
|
+
description: "Request Claude review automatically"
|
|
30
|
+
required: false
|
|
31
|
+
type: boolean
|
|
32
|
+
default: true
|
|
33
|
+
|
|
34
|
+
jobs:
|
|
35
|
+
action:
|
|
36
|
+
runs-on: ubuntu-latest # Use GitHub-hosted runners for memory-intensive git/Claude operations
|
|
37
|
+
timeout-minutes: 10
|
|
38
|
+
env:
|
|
39
|
+
GH_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
|
|
40
|
+
steps:
|
|
41
|
+
- name: Checkout
|
|
42
|
+
uses: actions/checkout@v4
|
|
43
|
+
with:
|
|
44
|
+
ref: ${{ github.ref }}
|
|
45
|
+
token: ${{ secrets.ACTIONS_TOKEN }}
|
|
46
|
+
fetch-depth: 0
|
|
47
|
+
|
|
48
|
+
- name: Determine source branch
|
|
49
|
+
id: source-branch
|
|
50
|
+
run: |
|
|
51
|
+
if [ -n "${{ inputs.source_branch }}" ]; then
|
|
52
|
+
SOURCE_BRANCH="${{ inputs.source_branch }}"
|
|
53
|
+
echo "Using specified source branch: $SOURCE_BRANCH"
|
|
54
|
+
git checkout "$SOURCE_BRANCH"
|
|
55
|
+
else
|
|
56
|
+
SOURCE_BRANCH=$(git branch --show-current)
|
|
57
|
+
echo "Using current branch: $SOURCE_BRANCH"
|
|
58
|
+
fi
|
|
59
|
+
echo "source_branch=$SOURCE_BRANCH" >> $GITHUB_OUTPUT
|
|
60
|
+
|
|
61
|
+
- name: Validate branches
|
|
62
|
+
id: validate
|
|
63
|
+
run: |
|
|
64
|
+
SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
|
|
65
|
+
TARGET_BRANCH="${{ inputs.target_branch }}"
|
|
66
|
+
|
|
67
|
+
echo "Source branch: $SOURCE_BRANCH"
|
|
68
|
+
echo "Target branch: $TARGET_BRANCH"
|
|
69
|
+
|
|
70
|
+
# Check if source branch exists
|
|
71
|
+
if ! git show-ref --verify --quiet refs/heads/$SOURCE_BRANCH && ! git show-ref --verify --quiet refs/remotes/origin/$SOURCE_BRANCH; then
|
|
72
|
+
echo "❌ Source branch $SOURCE_BRANCH does not exist"
|
|
73
|
+
exit 1
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# Check if target branch exists
|
|
77
|
+
if ! git show-ref --verify --quiet refs/heads/$TARGET_BRANCH && ! git show-ref --verify --quiet refs/remotes/origin/$TARGET_BRANCH; then
|
|
78
|
+
echo "❌ Target branch $TARGET_BRANCH does not exist"
|
|
79
|
+
exit 1
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
# Check if branches are different
|
|
83
|
+
if [ "$SOURCE_BRANCH" = "$TARGET_BRANCH" ]; then
|
|
84
|
+
echo "❌ Source and target branches cannot be the same"
|
|
85
|
+
exit 1
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
echo "✅ Branch validation passed"
|
|
89
|
+
|
|
90
|
+
- name: Analyze changes with Claude
|
|
91
|
+
id: analyze
|
|
92
|
+
run: |
|
|
93
|
+
SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
|
|
94
|
+
TARGET_BRANCH="${{ inputs.target_branch }}"
|
|
95
|
+
PR_TYPE="${{ inputs.pr_type }}"
|
|
96
|
+
|
|
97
|
+
# Get commit range for analysis
|
|
98
|
+
git fetch origin $TARGET_BRANCH
|
|
99
|
+
COMMIT_RANGE="origin/$TARGET_BRANCH...$SOURCE_BRANCH"
|
|
100
|
+
|
|
101
|
+
# Get diff stats (limit output to prevent memory issues)
|
|
102
|
+
DIFF_STATS=$(git diff --stat --no-color $COMMIT_RANGE | head -50) # Limit to 50 lines
|
|
103
|
+
FILES_CHANGED=$(git diff --name-only $COMMIT_RANGE | wc -l)
|
|
104
|
+
COMMITS_COUNT=$(git rev-list --count $COMMIT_RANGE)
|
|
105
|
+
|
|
106
|
+
# Get commit messages (limit to recent commits)
|
|
107
|
+
COMMIT_MESSAGES=$(git log --oneline --no-color $COMMIT_RANGE | head -20) # Limit to 20 commits
|
|
108
|
+
|
|
109
|
+
# Get detailed changes for analysis
|
|
110
|
+
DETAILED_CHANGES=$(git diff $COMMIT_RANGE --name-status --no-color | head -100) # Limit to 100 files
|
|
111
|
+
|
|
112
|
+
# Create analysis prompt for Claude using envsubst
|
|
113
|
+
export SOURCE_BRANCH TARGET_BRANCH PR_TYPE FILES_CHANGED COMMITS_COUNT COMMIT_MESSAGES DIFF_STATS DETAILED_CHANGES
|
|
114
|
+
|
|
115
|
+
cat << 'EOF' > /tmp/pr_analysis_template.txt
|
|
116
|
+
I need you to analyze the following git changes and create a comprehensive PR title and description.
|
|
117
|
+
|
|
118
|
+
**Context:**
|
|
119
|
+
- Repository: Application codebase
|
|
120
|
+
- Source Branch: $SOURCE_BRANCH
|
|
121
|
+
- Target Branch: $TARGET_BRANCH
|
|
122
|
+
- PR Type: $PR_TYPE
|
|
123
|
+
- Files Changed: $FILES_CHANGED
|
|
124
|
+
- Commits: $COMMITS_COUNT
|
|
125
|
+
|
|
126
|
+
**Commit Messages:**
|
|
127
|
+
$COMMIT_MESSAGES
|
|
128
|
+
|
|
129
|
+
**Diff Statistics:**
|
|
130
|
+
$DIFF_STATS
|
|
131
|
+
|
|
132
|
+
**Detailed Changes:**
|
|
133
|
+
$DETAILED_CHANGES
|
|
134
|
+
|
|
135
|
+
Please provide:
|
|
136
|
+
1. A concise, descriptive PR title (50-72 characters)
|
|
137
|
+
2. A comprehensive PR description with:
|
|
138
|
+
- Summary of changes
|
|
139
|
+
- Key accomplishments
|
|
140
|
+
- Breaking changes (if any)
|
|
141
|
+
- Testing notes
|
|
142
|
+
- Infrastructure considerations (avoid mentioning specific script paths or commands)
|
|
143
|
+
|
|
144
|
+
Format the response as:
|
|
145
|
+
TITLE: [your title here]
|
|
146
|
+
|
|
147
|
+
DESCRIPTION:
|
|
148
|
+
[your description here]
|
|
149
|
+
EOF
|
|
150
|
+
|
|
151
|
+
# Create the final prompt by writing directly to a file (avoiding envsubst issues)
|
|
152
|
+
cat > /tmp/pr_analysis_prompt.txt << PROMPT_EOF
|
|
153
|
+
I need you to analyze the following git changes and create a comprehensive PR title and description.
|
|
154
|
+
|
|
155
|
+
**Context:**
|
|
156
|
+
- Source Branch: $SOURCE_BRANCH
|
|
157
|
+
- Target Branch: $TARGET_BRANCH
|
|
158
|
+
- PR Type: $PR_TYPE
|
|
159
|
+
- Files Changed: $FILES_CHANGED
|
|
160
|
+
- Commits: $COMMITS_COUNT
|
|
161
|
+
|
|
162
|
+
**Commit Messages:**
|
|
163
|
+
$COMMIT_MESSAGES
|
|
164
|
+
|
|
165
|
+
**Diff Statistics:**
|
|
166
|
+
$DIFF_STATS
|
|
167
|
+
|
|
168
|
+
**Detailed Changes:**
|
|
169
|
+
$DETAILED_CHANGES
|
|
170
|
+
|
|
171
|
+
Please provide:
|
|
172
|
+
1. A concise, descriptive PR title (50-72 characters)
|
|
173
|
+
2. A comprehensive PR description with:
|
|
174
|
+
- Summary of changes
|
|
175
|
+
- Key accomplishments
|
|
176
|
+
- Breaking changes (if any)
|
|
177
|
+
- Testing notes
|
|
178
|
+
- Infrastructure considerations (avoid mentioning specific script paths or commands)
|
|
179
|
+
|
|
180
|
+
Format the response as:
|
|
181
|
+
TITLE: [your title here]
|
|
182
|
+
|
|
183
|
+
DESCRIPTION:
|
|
184
|
+
[your description here]
|
|
185
|
+
PROMPT_EOF
|
|
186
|
+
|
|
187
|
+
echo "analysis_prompt_file=/tmp/pr_analysis_prompt.txt" >> $GITHUB_OUTPUT
|
|
188
|
+
echo "commit_range=$COMMIT_RANGE" >> $GITHUB_OUTPUT
|
|
189
|
+
|
|
190
|
+
- name: Call Claude API
|
|
191
|
+
id: claude
|
|
192
|
+
run: |
|
|
193
|
+
# Call Claude API with the analysis prompt
|
|
194
|
+
PROMPT=$(cat /tmp/pr_analysis_prompt.txt)
|
|
195
|
+
|
|
196
|
+
# Create JSON payload using jq to properly escape content
|
|
197
|
+
RESPONSE=$(jq -n \
|
|
198
|
+
--arg model "claude-sonnet-4-20250514" \
|
|
199
|
+
--arg content "$PROMPT" \
|
|
200
|
+
'{
|
|
201
|
+
"model": $model,
|
|
202
|
+
"max_tokens": 4000,
|
|
203
|
+
"messages": [
|
|
204
|
+
{
|
|
205
|
+
"role": "user",
|
|
206
|
+
"content": $content
|
|
207
|
+
}
|
|
208
|
+
]
|
|
209
|
+
}' | curl -s -X POST "https://api.anthropic.com/v1/messages" \
|
|
210
|
+
-H "Content-Type: application/json" \
|
|
211
|
+
-H "x-api-key: ${{ secrets.ANTHROPIC_API_KEY }}" \
|
|
212
|
+
-H "anthropic-version: 2023-06-01" \
|
|
213
|
+
-d @-)
|
|
214
|
+
|
|
215
|
+
# Check for API errors first
|
|
216
|
+
if echo "$RESPONSE" | jq -e '.error' > /dev/null; then
|
|
217
|
+
echo "❌ Claude API error: $(echo "$RESPONSE" | jq -r '.error.message')"
|
|
218
|
+
exit 1
|
|
219
|
+
fi
|
|
220
|
+
|
|
221
|
+
# Extract title and description from Claude's response
|
|
222
|
+
CLAUDE_OUTPUT=$(echo "$RESPONSE" | jq -r '.content[0].text')
|
|
223
|
+
|
|
224
|
+
# Parse the title and description
|
|
225
|
+
PR_TITLE=$(echo "$CLAUDE_OUTPUT" | grep "^TITLE:" | sed 's/^TITLE: //')
|
|
226
|
+
PR_DESCRIPTION=$(echo "$CLAUDE_OUTPUT" | sed -n '/^DESCRIPTION:/,$ p' | sed '1d')
|
|
227
|
+
|
|
228
|
+
# Validate that Claude returned meaningful content
|
|
229
|
+
if [ -z "$PR_TITLE" ] || [ -z "$PR_DESCRIPTION" ]; then
|
|
230
|
+
echo "❌ Claude returned empty title or description"
|
|
231
|
+
echo "Raw Claude output: $CLAUDE_OUTPUT"
|
|
232
|
+
exit 1
|
|
233
|
+
fi
|
|
234
|
+
|
|
235
|
+
# Save to outputs (escape for JSON)
|
|
236
|
+
{
|
|
237
|
+
echo "pr_title<<EOF"
|
|
238
|
+
echo "$PR_TITLE"
|
|
239
|
+
echo "EOF"
|
|
240
|
+
} >> $GITHUB_OUTPUT
|
|
241
|
+
|
|
242
|
+
{
|
|
243
|
+
echo "pr_description<<EOF"
|
|
244
|
+
echo "$PR_DESCRIPTION"
|
|
245
|
+
echo "EOF"
|
|
246
|
+
} >> $GITHUB_OUTPUT
|
|
247
|
+
|
|
248
|
+
echo "✅ Claude analysis completed"
|
|
249
|
+
|
|
250
|
+
- name: Create Pull Request
|
|
251
|
+
id: create-pr
|
|
252
|
+
run: |
|
|
253
|
+
SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
|
|
254
|
+
TARGET_BRANCH="${{ inputs.target_branch }}"
|
|
255
|
+
PR_TITLE="${{ steps.claude.outputs.pr_title }}"
|
|
256
|
+
|
|
257
|
+
# Create PR description with Claude analysis + footer
|
|
258
|
+
cat > /tmp/pr_description.txt << EOF
|
|
259
|
+
${{ steps.claude.outputs.pr_description }}
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
🤖 Generated with [Claude Code](https://claude.ai/code)
|
|
263
|
+
|
|
264
|
+
**Branch Info:**
|
|
265
|
+
- Source: \`$SOURCE_BRANCH\`
|
|
266
|
+
- Target: \`$TARGET_BRANCH\`
|
|
267
|
+
- Type: ${{ inputs.pr_type }}
|
|
268
|
+
|
|
269
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
270
|
+
EOF
|
|
271
|
+
|
|
272
|
+
PR_DESCRIPTION=$(cat /tmp/pr_description.txt)
|
|
273
|
+
|
|
274
|
+
# Create the PR
|
|
275
|
+
PR_URL=$(gh pr create \
|
|
276
|
+
--title "$PR_TITLE" \
|
|
277
|
+
--body "$PR_DESCRIPTION" \
|
|
278
|
+
--base "$TARGET_BRANCH" \
|
|
279
|
+
--head "$SOURCE_BRANCH")
|
|
280
|
+
|
|
281
|
+
echo "pr_url=$PR_URL" >> $GITHUB_OUTPUT
|
|
282
|
+
echo "✅ Pull Request created: $PR_URL"
|
|
283
|
+
|
|
284
|
+
- name: Request Claude review
|
|
285
|
+
if: ${{ inputs.claude_review }}
|
|
286
|
+
run: |
|
|
287
|
+
PR_NUMBER=$(echo "${{ steps.create-pr.outputs.pr_url }}" | sed 's/.*pull\///')
|
|
288
|
+
|
|
289
|
+
gh pr comment "$PR_NUMBER" --body "@claude please review this PR"
|
|
290
|
+
echo "✅ Claude review requested"
|
|
291
|
+
|
|
292
|
+
- name: Create summary
|
|
293
|
+
run: |
|
|
294
|
+
SOURCE_BRANCH="${{ steps.source-branch.outputs.source_branch }}"
|
|
295
|
+
TARGET_BRANCH="${{ inputs.target_branch }}"
|
|
296
|
+
PR_URL="${{ steps.create-pr.outputs.pr_url }}"
|
|
297
|
+
|
|
298
|
+
echo "## 🚀 Claude-Powered PR Created" >> $GITHUB_STEP_SUMMARY
|
|
299
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
300
|
+
echo "**PR URL:** [$PR_URL]($PR_URL)" >> $GITHUB_STEP_SUMMARY
|
|
301
|
+
echo "**Source:** \`$SOURCE_BRANCH\`" >> $GITHUB_STEP_SUMMARY
|
|
302
|
+
echo "**Target:** \`$TARGET_BRANCH\`" >> $GITHUB_STEP_SUMMARY
|
|
303
|
+
echo "**Type:** ${{ inputs.pr_type }}" >> $GITHUB_STEP_SUMMARY
|
|
304
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
305
|
+
echo "### PR Details" >> $GITHUB_STEP_SUMMARY
|
|
306
|
+
echo "**Title:** ${{ steps.claude.outputs.pr_title }}" >> $GITHUB_STEP_SUMMARY
|
|
307
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
308
|
+
echo "**Commits:** ${{ steps.analyze.outputs.commit_range }}" >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
name: Create Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version_type:
|
|
7
|
+
description: "Type of version bump"
|
|
8
|
+
required: true
|
|
9
|
+
type: choice
|
|
10
|
+
options:
|
|
11
|
+
- major
|
|
12
|
+
- minor
|
|
13
|
+
- patch
|
|
14
|
+
default: patch
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
action:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
timeout-minutes: 1
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
ref: ${{ github.ref }}
|
|
25
|
+
token: ${{ secrets.ACTIONS_TOKEN }}
|
|
26
|
+
fetch-depth: 0
|
|
27
|
+
|
|
28
|
+
- name: Set up Git
|
|
29
|
+
run: |
|
|
30
|
+
git config --global user.name "github-actions[bot]"
|
|
31
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
32
|
+
|
|
33
|
+
- name: Get current version
|
|
34
|
+
id: current-version
|
|
35
|
+
run: |
|
|
36
|
+
CURRENT_VERSION=$(awk -F'"' '/^version = / {print $2}' pyproject.toml)
|
|
37
|
+
if [ -z "$CURRENT_VERSION" ]; then
|
|
38
|
+
echo "Could not find version in pyproject.toml"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
42
|
+
echo "Current version: $CURRENT_VERSION"
|
|
43
|
+
|
|
44
|
+
- name: Calculate new version
|
|
45
|
+
id: new-version
|
|
46
|
+
run: |
|
|
47
|
+
CURRENT_VERSION="${{ steps.current-version.outputs.current_version }}"
|
|
48
|
+
VERSION_TYPE="${{ inputs.version_type }}"
|
|
49
|
+
|
|
50
|
+
# Split version into major, minor, and patch
|
|
51
|
+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
|
|
52
|
+
|
|
53
|
+
# Increment appropriate version component
|
|
54
|
+
if [ "$VERSION_TYPE" = "major" ]; then
|
|
55
|
+
MAJOR=$((MAJOR + 1))
|
|
56
|
+
MINOR=0
|
|
57
|
+
PATCH=0
|
|
58
|
+
elif [ "$VERSION_TYPE" = "minor" ]; then
|
|
59
|
+
MINOR=$((MINOR + 1))
|
|
60
|
+
PATCH=0
|
|
61
|
+
else # patch
|
|
62
|
+
PATCH=$((PATCH + 1))
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
|
66
|
+
BRANCH_NAME="release/$NEW_VERSION"
|
|
67
|
+
|
|
68
|
+
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
69
|
+
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
|
|
70
|
+
echo "New version: $NEW_VERSION"
|
|
71
|
+
echo "Branch name: $BRANCH_NAME"
|
|
72
|
+
|
|
73
|
+
- name: Check if branch already exists
|
|
74
|
+
id: check-branch
|
|
75
|
+
run: |
|
|
76
|
+
BRANCH_NAME="${{ steps.new-version.outputs.branch_name }}"
|
|
77
|
+
|
|
78
|
+
# Check if branch exists locally or remotely
|
|
79
|
+
if git show-ref --verify --quiet refs/heads/$BRANCH_NAME || git show-ref --verify --quiet refs/remotes/origin/$BRANCH_NAME; then
|
|
80
|
+
echo "Branch $BRANCH_NAME already exists"
|
|
81
|
+
echo "branch_exists=true" >> $GITHUB_OUTPUT
|
|
82
|
+
exit 1
|
|
83
|
+
else
|
|
84
|
+
echo "Branch $BRANCH_NAME does not exist, proceeding..."
|
|
85
|
+
echo "branch_exists=false" >> $GITHUB_OUTPUT
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
- name: Create release branch and update version
|
|
89
|
+
run: |
|
|
90
|
+
CURRENT_VERSION="${{ steps.current-version.outputs.current_version }}"
|
|
91
|
+
NEW_VERSION="${{ steps.new-version.outputs.new_version }}"
|
|
92
|
+
BRANCH_NAME="${{ steps.new-version.outputs.branch_name }}"
|
|
93
|
+
|
|
94
|
+
echo "Creating new branch: $BRANCH_NAME"
|
|
95
|
+
git checkout -b "$BRANCH_NAME"
|
|
96
|
+
|
|
97
|
+
# Update version in pyproject.toml
|
|
98
|
+
sed -i "s/^version = \"$CURRENT_VERSION\"/version = \"$NEW_VERSION\"/" pyproject.toml
|
|
99
|
+
|
|
100
|
+
# Commit the changes
|
|
101
|
+
git add pyproject.toml
|
|
102
|
+
|
|
103
|
+
git commit -m "Bump version from $CURRENT_VERSION to $NEW_VERSION"
|
|
104
|
+
|
|
105
|
+
# Push the branch
|
|
106
|
+
git push origin "$BRANCH_NAME"
|
|
107
|
+
|
|
108
|
+
echo "✅ Version bumped: $CURRENT_VERSION → $NEW_VERSION"
|
|
109
|
+
echo "✅ Branch created: $BRANCH_NAME"
|
|
110
|
+
echo "✅ Changes committed and pushed successfully"
|
|
111
|
+
|
|
112
|
+
- name: Create summary
|
|
113
|
+
run: |
|
|
114
|
+
echo "## 🚀 Release Branch Created" >> $GITHUB_STEP_SUMMARY
|
|
115
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
116
|
+
echo "**Version:** ${{ steps.current-version.outputs.current_version }} → ${{ steps.new-version.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
|
|
117
|
+
echo "**Branch:** \`${{ steps.new-version.outputs.branch_name }}\`" >> $GITHUB_STEP_SUMMARY
|
|
118
|
+
echo "**Type:** ${{ inputs.version_type }}" >> $GITHUB_STEP_SUMMARY
|
|
119
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
120
|
+
echo "### Next Steps" >> $GITHUB_STEP_SUMMARY
|
|
121
|
+
echo "1. Review the changes in the release branch" >> $GITHUB_STEP_SUMMARY
|
|
122
|
+
echo "2. Create a pull request to merge into main" >> $GITHUB_STEP_SUMMARY
|
|
123
|
+
echo "3. After merge, the staging/prod workflows will handle deployment" >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Publish Python Client to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
id-token: write # For PyPI trusted publishing
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repository
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Setup Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.12"
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install build twine
|
|
27
|
+
|
|
28
|
+
- name: Get current version
|
|
29
|
+
id: current-version
|
|
30
|
+
run: |
|
|
31
|
+
CURRENT_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])")
|
|
32
|
+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
33
|
+
echo "Current version: $CURRENT_VERSION"
|
|
34
|
+
|
|
35
|
+
- name: Build package
|
|
36
|
+
run: python -m build
|
|
37
|
+
|
|
38
|
+
- name: Check if version exists on PyPI
|
|
39
|
+
id: check-pypi
|
|
40
|
+
run: |
|
|
41
|
+
VERSION="${{ steps.current-version.outputs.current_version }}"
|
|
42
|
+
PACKAGE_NAME="robosystems-client"
|
|
43
|
+
|
|
44
|
+
# Check if version exists on PyPI
|
|
45
|
+
if curl -s "https://pypi.org/pypi/${PACKAGE_NAME}/${VERSION}/json" | grep -q "\"version\""; then
|
|
46
|
+
echo "❌ Version ${VERSION} already exists on PyPI"
|
|
47
|
+
echo "version_exists=true" >> $GITHUB_OUTPUT
|
|
48
|
+
exit 1
|
|
49
|
+
else
|
|
50
|
+
echo "✅ Version ${VERSION} does not exist on PyPI, safe to publish"
|
|
51
|
+
echo "version_exists=false" >> $GITHUB_OUTPUT
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
- name: Publish to PyPI
|
|
55
|
+
if: steps.check-pypi.outputs.version_exists == 'false'
|
|
56
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
57
|
+
with:
|
|
58
|
+
verbose: true
|
|
59
|
+
password: ${{ secrets.PYPI_TOKEN }}
|