gitlab-api 25.15.26__tar.gz → 25.15.27__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.
- {gitlab_api-25.15.26/gitlab_api.egg-info → gitlab_api-25.15.27}/PKG-INFO +5 -5
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/README.md +1 -1
- gitlab_api-25.15.27/gitlab_api/agent/IDENTITY.md +16 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent.py +6 -21
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/mcp.py +101 -4
- {gitlab_api-25.15.26 → gitlab_api-25.15.27/gitlab_api.egg-info}/PKG-INFO +5 -5
- gitlab_api-25.15.27/gitlab_api.egg-info/SOURCES.txt +38 -0
- gitlab_api-25.15.27/gitlab_api.egg-info/requires.txt +13 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/pyproject.toml +7 -12
- gitlab_api-25.15.26/gitlab_api/agent/IDENTITY.md +0 -85
- gitlab_api-25.15.26/gitlab_api/agent/skills/test-skill/SKILL.md +0 -19
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/SKILL.md +0 -238
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/18.8_api_api_resources.md +0 -444
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/18.9_api_api_resources.md +0 -450
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/access_requests.md +0 -458
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/admin_ai_catalog.md +0 -364
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/admin_data_management.md +0 -519
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/admin_sidekiq_queues.md +0 -357
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/admin_token.md +0 -462
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/administration.md +0 -162
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/alert_management_alerts.md +0 -452
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/api.md +0 -160
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/api_resources.md +0 -526
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/appearance.md +0 -446
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/applications.md +0 -447
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/archives.md +0 -744
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/attestations.md +0 -404
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/audit_events.md +0 -714
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/avatar.md +0 -353
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/boards.md +0 -860
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/branches.md +0 -621
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/broadcast_messages.md +0 -559
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/chat.md +0 -380
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/cli.md +0 -287
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/cluster_agents.md +0 -926
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/cluster_discovery.md +0 -367
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/code_suggestions.md +0 -502
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/commits.md +0 -1498
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/compliance_policy_settings.md +0 -383
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/container_registry.md +0 -753
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/container_registry_protection_tag_rules.md +0 -527
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/container_repository_protection_rules.md +0 -484
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/container_virtual_registries.md +0 -1040
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/custom_attributes.md +0 -433
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/database_migrations.md +0 -380
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/dependencies.md +0 -376
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/dependency_list_export.md +0 -471
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/dependency_proxy.md +0 -333
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/deploy_keys.md +0 -752
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/deploy_tokens.md +0 -634
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/deployments.md +0 -870
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/development.md +0 -157
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/discussions.md +0 -1791
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/dora_metrics.md +0 -402
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/draft_notes.md +0 -532
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/duo_agent_platform_flows.md +0 -352
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/editor_extensions.md +0 -220
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/emoji_reactions.md +0 -674
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/environments.md +0 -717
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/epic_issues.md +0 -724
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/epic_links.md +0 -575
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/epics.md +0 -825
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/error_tracking.md +0 -495
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/events.md +0 -681
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/experiments.md +0 -386
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/feature_flag_user_lists.md +0 -498
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/feature_flags.md +0 -627
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/features.md +0 -417
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/freeze_periods.md +0 -492
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/geo_nodes.md +0 -1272
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/geo_sites.md +0 -1362
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/get_started_get_started_extending.md +0 -213
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/glql.md +0 -779
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/google_cloud_integration.md +0 -408
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/graphql.md +0 -477
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_access_tokens.md +0 -603
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_activity_analytics.md +0 -414
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_badges.md +0 -544
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_boards.md +0 -903
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_iterations.md +0 -398
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_labels.md +0 -625
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_level_variables.md +0 -549
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_members.md +0 -1217
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_milestones.md +0 -505
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_releases.md +0 -412
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_repository_storage_moves.md +0 -585
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_ssh_certificates.md +0 -445
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/group_wikis.md +0 -546
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/groups.md +0 -2532
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/import.md +0 -575
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/index.md +0 -152
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/install.md +0 -159
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/instance_clusters.md +0 -439
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/instance_level_ci_variables.md +0 -492
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/integration.md +0 -295
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/invitations.md +0 -487
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/issue_links.md +0 -651
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/issues.md +0 -2916
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/issues_statistics.md +0 -488
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/iterations.md +0 -402
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/job_artifacts.md +0 -689
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/jobs.md +0 -1319
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/keys.md +0 -644
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/labels.md +0 -696
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/legal_licensing_policy.md +0 -254
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/legal_use_generative_ai.md +0 -150
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/license.md +0 -608
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/linked_epics.md +0 -758
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/lint.md +0 -572
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/markdown.md +0 -345
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/maven_virtual_registries.md +0 -1147
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/member_roles.md +0 -682
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/merge_request_approval_settings.md +0 -580
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/merge_request_approvals.md +0 -1731
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/merge_request_context_commits.md +0 -407
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/merge_requests.md +0 -4519
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/merge_trains.md +0 -744
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/metadata.md +0 -366
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/milestones.md +0 -522
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/model_registry.md +0 -422
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/namespaces.md +0 -526
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/notes.md +0 -1168
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/notification_settings.md +0 -599
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/oauth2.md +0 -582
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/openapi_openapi_interactive.md +0 -188
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/organizations.md +0 -363
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages.md +0 -752
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_composer.md +0 -577
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_conan_v1.md +0 -914
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_conan_v2.md +0 -913
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_debian.md +0 -650
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_debian_group_distributions.md +0 -557
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_debian_project_distributions.md +0 -557
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_go_proxy.md +0 -419
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_helm.md +0 -382
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_maven.md +0 -411
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_npm.md +0 -554
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_nuget.md +0 -872
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_pypi.md +0 -551
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_rubygems.md +0 -430
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/packages_terraform-modules.md +0 -593
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/pages.md +0 -480
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/pages_domains.md +0 -741
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/personal_access_tokens.md +0 -642
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/pipeline_schedules.md +0 -895
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/pipeline_triggers.md +0 -547
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/pipelines.md +0 -925
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/plan_limits.md +0 -432
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/product_analytics.md +0 -415
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_access_tokens.md +0 -604
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_badges.md +0 -557
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_clusters.md +0 -539
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_import_export.md +0 -883
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_integrations.md +0 -2443
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_job_token_scopes.md +0 -594
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_level_variables.md +0 -547
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_members.md +0 -807
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_packages_protection_rules.md +0 -510
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_repository_storage_moves.md +0 -597
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_snippets.md +0 -749
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_templates.md +0 -518
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/project_vulnerabilities.md +0 -524
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/projects.md +0 -3430
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/protected_branches.md +0 -1182
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/protected_environments.md +0 -706
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/protected_tags.md +0 -592
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/releases.md +0 -1145
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/releases_links.md +0 -527
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/remote_mirrors.md +0 -699
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/repositories.md +0 -919
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/repository_files.md +0 -687
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/repository_submodules.md +0 -359
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_groups.md +0 -604
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_iteration_events.md +0 -446
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_label_events.md +0 -579
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_milestone_events.md +0 -519
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_state_events.md +0 -624
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/resource_weight_events.md +0 -411
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/rest.md +0 -541
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/rest_authentication.md +0 -346
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/rest_deprecations.md +0 -263
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/rest_third_party_clients.md +0 -237
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/rest_troubleshooting.md +0 -370
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/runner_controller_tokens.md +0 -526
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/runner_controllers.md +0 -678
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/runners.md +0 -1313
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/search.md +0 -1569
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/search_admin.md +0 -431
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/secure_files.md +0 -489
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/service_accounts.md +0 -1075
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/settings.md +0 -1184
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/sidekiq_metrics.md +0 -469
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/snippet_repository_storage_moves.md +0 -587
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/snippets.md +0 -980
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/solutions.md +0 -173
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/statistics.md +0 -352
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/status_checks.md +0 -625
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/subscriptions.md +0 -158
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/suggestions.md +0 -435
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/system_hooks.md +0 -531
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/tags.md +0 -643
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/templates_dockerfiles.md +0 -440
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/templates_gitignores.md +0 -452
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/templates_gitlab_ci_ymls.md +0 -441
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/templates_licenses.md +0 -458
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/todos.md +0 -605
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/topics.md +0 -564
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/tutorials_develop.md +0 -165
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/usage_data.md +0 -571
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user.md +0 -166
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user_gitlab_duo.md +0 -163
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user_gitlab_duo_cli.md +0 -433
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user_permissions.md +0 -896
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user_project_integrations_webhooks.md +0 -652
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/user_storage_management_automation.md +0 -1358
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/users.md +0 -1743
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/version.md +0 -366
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/virtual_registries_cleanup_policies.md +0 -511
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/vulnerabilities.md +0 -719
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/vulnerability_archive_exports.md +0 -431
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/vulnerability_exports.md +0 -512
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/vulnerability_findings.md +0 -563
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/web_commits.md +0 -347
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-api-docs/reference/wikis.md +0 -568
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-branches/SKILL.md +0 -42
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-commits/SKILL.md +0 -105
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-custom-api/SKILL.md +0 -27
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-deploy-tokens/SKILL.md +0 -57
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-environments/SKILL.md +0 -81
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-groups/SKILL.md +0 -66
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-jobs/SKILL.md +0 -57
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-members/SKILL.md +0 -33
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-merge-requests/SKILL.md +0 -47
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-merge-rules/SKILL.md +0 -91
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-packages/SKILL.md +0 -38
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-pipeline-schedules/SKILL.md +0 -79
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-pipelines/SKILL.md +0 -36
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-projects/SKILL.md +0 -67
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-protected-branches/SKILL.md +0 -48
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-releases/SKILL.md +0 -79
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-runners/SKILL.md +0 -99
- gitlab_api-25.15.26/gitlab_api/skills/gitlab-tags/SKILL.md +0 -59
- gitlab_api-25.15.26/gitlab_api.egg-info/SOURCES.txt +0 -270
- gitlab_api-25.15.26/gitlab_api.egg-info/requires.txt +0 -13
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/LICENSE +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/MANIFEST.in +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/__init__.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/__main__.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/AGENTS.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/CRON.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/CRON_LOG.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/HEARTBEAT.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/MEMORY.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/USER.md +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/mcp_config.json +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/agent/templates.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/auth.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/gitlab_api.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/gitlab_gql.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/gitlab_input_models.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/gitlab_response_models.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api/mcp_config.json +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api.egg-info/dependency_links.txt +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api.egg-info/entry_points.txt +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/gitlab_api.egg-info/top_level.txt +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/requirements.txt +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/scripts/validate_a2a_agent.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/scripts/validate_agent.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/setup.cfg +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/test_gitlab_a2a_validation.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/test_gitlab_api.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/test_gitlab_mcp_validation.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/test_gitlab_models.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/test_verify_agent.py +0 -0
- {gitlab_api-25.15.26 → gitlab_api-25.15.27}/tests/verify_a2a_queries.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 25.15.
|
|
3
|
+
Version: 25.15.27
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,11 +12,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.2.12
|
|
16
16
|
Provides-Extra: mcp
|
|
17
|
-
Requires-Dist: agent-utilities[mcp]>=0.2.
|
|
17
|
+
Requires-Dist: agent-utilities[mcp]>=0.2.12; extra == "mcp"
|
|
18
18
|
Provides-Extra: agent
|
|
19
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
19
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.12; extra == "agent"
|
|
20
20
|
Provides-Extra: gql
|
|
21
21
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
22
22
|
Provides-Extra: all
|
|
@@ -46,7 +46,7 @@ Dynamic: license-file
|
|
|
46
46
|

|
|
47
47
|

|
|
48
48
|
|
|
49
|
-
*Version: 25.15.
|
|
49
|
+
*Version: 25.15.27*
|
|
50
50
|
|
|
51
51
|
## Overview
|
|
52
52
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# IDENTITY.md - GitLab Agent Identity
|
|
2
|
+
|
|
3
|
+
## [default]
|
|
4
|
+
* **Name:** GitLab Agent
|
|
5
|
+
* **Role:** GitLab DevOps operations including projects, groups, branches, merge requests, pipelines, and runners.
|
|
6
|
+
* **Emoji:** 🦊
|
|
7
|
+
|
|
8
|
+
### System Prompt
|
|
9
|
+
You are the GitLab Agent.
|
|
10
|
+
You must always first run list_skills and list_tools to discover available skills and tools.
|
|
11
|
+
Your goal is to assist the user with GitLab operations using the `mcp-client` universal skill.
|
|
12
|
+
Check the `mcp-client` reference documentation for `gitlab-api.md` to discover the exact tags and tools available for your capabilities.
|
|
13
|
+
|
|
14
|
+
### Capabilities
|
|
15
|
+
- **MCP Operations**: Leverage the `mcp-client` skill to interact with the target MCP server. Refer to `gitlab-api.md` for specific tool capabilities.
|
|
16
|
+
- **Custom Agent**: Handle custom tasks or general tasks.
|
|
@@ -8,10 +8,10 @@ from agent_utilities import (
|
|
|
8
8
|
create_agent_parser,
|
|
9
9
|
create_agent_server,
|
|
10
10
|
initialize_workspace,
|
|
11
|
-
|
|
11
|
+
load_identity,
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
-
__version__ = "25.15.
|
|
14
|
+
__version__ = "25.15.27"
|
|
15
15
|
|
|
16
16
|
logging.basicConfig(
|
|
17
17
|
level=logging.INFO,
|
|
@@ -22,29 +22,17 @@ logger = logging.getLogger(__name__)
|
|
|
22
22
|
|
|
23
23
|
# Load identity and system prompt from workspace
|
|
24
24
|
initialize_workspace()
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
# Prepare supervisor identity
|
|
28
|
-
supervisor_meta = identities.get("supervisor", identities.get("default", {}))
|
|
29
|
-
DEFAULT_AGENT_NAME = os.getenv(
|
|
30
|
-
"DEFAULT_AGENT_NAME", supervisor_meta.get("name", "Gitlab Api")
|
|
31
|
-
)
|
|
25
|
+
meta = load_identity()
|
|
26
|
+
DEFAULT_AGENT_NAME = os.getenv("DEFAULT_AGENT_NAME", meta.get("name", "Gitlab Api"))
|
|
32
27
|
DEFAULT_AGENT_DESCRIPTION = os.getenv(
|
|
33
28
|
"AGENT_DESCRIPTION",
|
|
34
|
-
|
|
29
|
+
meta.get("description", "AI agent for GitLab Api management."),
|
|
35
30
|
)
|
|
36
31
|
DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
|
|
37
32
|
"AGENT_SYSTEM_PROMPT",
|
|
38
|
-
|
|
33
|
+
meta.get("content") or build_system_prompt_from_workspace(),
|
|
39
34
|
)
|
|
40
35
|
|
|
41
|
-
# Prepare child agent definitions from IDENTITY.md sections
|
|
42
|
-
CHILD_AGENT_DEFS = {
|
|
43
|
-
tag: (data["content"], data["name"])
|
|
44
|
-
for tag, data in identities.items()
|
|
45
|
-
if tag not in ["supervisor", "default"]
|
|
46
|
-
}
|
|
47
|
-
|
|
48
36
|
|
|
49
37
|
def agent_server():
|
|
50
38
|
print(f"{DEFAULT_AGENT_NAME} v{__version__}")
|
|
@@ -61,8 +49,6 @@ def agent_server():
|
|
|
61
49
|
model_id=args.model_id,
|
|
62
50
|
base_url=args.base_url,
|
|
63
51
|
api_key=args.api_key,
|
|
64
|
-
mcp_url=args.mcp_url,
|
|
65
|
-
mcp_config=args.mcp_config,
|
|
66
52
|
custom_skills_directory=args.custom_skills_directory,
|
|
67
53
|
debug=args.debug,
|
|
68
54
|
host=args.host,
|
|
@@ -77,7 +63,6 @@ def agent_server():
|
|
|
77
63
|
otel_public_key=args.otel_public_key,
|
|
78
64
|
otel_secret_key=args.otel_secret_key,
|
|
79
65
|
otel_protocol=args.otel_protocol,
|
|
80
|
-
agent_definitions=CHILD_AGENT_DEFS if CHILD_AGENT_DEFS else None,
|
|
81
66
|
)
|
|
82
67
|
|
|
83
68
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/python
|
|
2
2
|
# coding: utf-8
|
|
3
3
|
|
|
4
|
+
from dotenv import load_dotenv, find_dotenv
|
|
4
5
|
import os
|
|
5
6
|
import sys
|
|
6
7
|
import logging
|
|
@@ -32,7 +33,7 @@ from gitlab_api.auth import get_client
|
|
|
32
33
|
from starlette.requests import Request
|
|
33
34
|
from starlette.responses import JSONResponse
|
|
34
35
|
|
|
35
|
-
__version__ = "25.15.
|
|
36
|
+
__version__ = "25.15.27"
|
|
36
37
|
print(f"Gitlab MCP v{__version__}")
|
|
37
38
|
|
|
38
39
|
logger = get_logger(name="mcp_server")
|
|
@@ -44,11 +45,12 @@ DEFAULT_GITLAB_INSTANCE = os.getenv("GITLAB_INSTANCE", "https://gitlab.com")
|
|
|
44
45
|
DEFAULT_GITLAB_ACCESS_TOKEN = os.getenv("GITLAB_ACCESS_TOKEN", None)
|
|
45
46
|
|
|
46
47
|
|
|
47
|
-
def
|
|
48
|
-
@mcp.custom_route("/health", methods=["GET"])
|
|
48
|
+
def register_misc_tools(mcp: FastMCP):
|
|
49
49
|
def health_check(request: Request) -> JSONResponse:
|
|
50
50
|
return JSONResponse({"status": "OK"})
|
|
51
51
|
|
|
52
|
+
|
|
53
|
+
def register_branches_tools(mcp: FastMCP):
|
|
52
54
|
@mcp.tool(
|
|
53
55
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"branches"}
|
|
54
56
|
)
|
|
@@ -206,6 +208,8 @@ def register_tools(mcp: FastMCP):
|
|
|
206
208
|
ctx.info("Deletion complete")
|
|
207
209
|
return response
|
|
208
210
|
|
|
211
|
+
|
|
212
|
+
def register_commits_tools(mcp: FastMCP):
|
|
209
213
|
@mcp.tool(
|
|
210
214
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"commits"}
|
|
211
215
|
)
|
|
@@ -828,6 +832,8 @@ def register_tools(mcp: FastMCP):
|
|
|
828
832
|
ctx.info("GPG signature retrieval complete")
|
|
829
833
|
return response
|
|
830
834
|
|
|
835
|
+
|
|
836
|
+
def register_deploy_tokens_tools(mcp: FastMCP):
|
|
831
837
|
@mcp.tool(
|
|
832
838
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
833
839
|
tags={"deploy_tokens"},
|
|
@@ -1135,6 +1141,8 @@ def register_tools(mcp: FastMCP):
|
|
|
1135
1141
|
ctx.info("Deploy token deleted")
|
|
1136
1142
|
return response
|
|
1137
1143
|
|
|
1144
|
+
|
|
1145
|
+
def register_environments_tools(mcp: FastMCP):
|
|
1138
1146
|
@mcp.tool(
|
|
1139
1147
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
1140
1148
|
tags={"environments"},
|
|
@@ -1719,6 +1727,8 @@ def register_tools(mcp: FastMCP):
|
|
|
1719
1727
|
ctx.info("Environment unprotected")
|
|
1720
1728
|
return response
|
|
1721
1729
|
|
|
1730
|
+
|
|
1731
|
+
def register_groups_tools(mcp: FastMCP):
|
|
1722
1732
|
@mcp.tool(
|
|
1723
1733
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"groups"}
|
|
1724
1734
|
)
|
|
@@ -2050,6 +2060,8 @@ def register_tools(mcp: FastMCP):
|
|
|
2050
2060
|
response = client.get_group_merge_requests(group_id=group_id, **kwargs)
|
|
2051
2061
|
return {"merge_requests": response.data}
|
|
2052
2062
|
|
|
2063
|
+
|
|
2064
|
+
def register_jobs_tools(mcp: FastMCP):
|
|
2053
2065
|
@mcp.tool(exclude_args=["gitlab_instance", "access_token", "verify"], tags={"jobs"})
|
|
2054
2066
|
def get_project_jobs(
|
|
2055
2067
|
gitlab_instance: Optional[str] = Field(
|
|
@@ -2341,6 +2353,8 @@ def register_tools(mcp: FastMCP):
|
|
|
2341
2353
|
)
|
|
2342
2354
|
return {"jobs": response.data}
|
|
2343
2355
|
|
|
2356
|
+
|
|
2357
|
+
def register_members_tools(mcp: FastMCP):
|
|
2344
2358
|
@mcp.tool(
|
|
2345
2359
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"members"}
|
|
2346
2360
|
)
|
|
@@ -2442,6 +2456,8 @@ def register_tools(mcp: FastMCP):
|
|
|
2442
2456
|
response = client.get_project_members(project_id=project_id, **kwargs)
|
|
2443
2457
|
return {"members": response.data}
|
|
2444
2458
|
|
|
2459
|
+
|
|
2460
|
+
def register_merge_requests_tools(mcp: FastMCP):
|
|
2445
2461
|
@mcp.tool(
|
|
2446
2462
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
2447
2463
|
tags={"merge-requests"},
|
|
@@ -2637,6 +2653,8 @@ def register_tools(mcp: FastMCP):
|
|
|
2637
2653
|
)
|
|
2638
2654
|
return {"merge_requests": response.data}
|
|
2639
2655
|
|
|
2656
|
+
|
|
2657
|
+
def register_merge_rules_tools(mcp: FastMCP):
|
|
2640
2658
|
@mcp.tool(
|
|
2641
2659
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"merge_rules"}
|
|
2642
2660
|
)
|
|
@@ -3285,6 +3303,8 @@ def register_tools(mcp: FastMCP):
|
|
|
3285
3303
|
ctx.info("Approval settings edited")
|
|
3286
3304
|
return response
|
|
3287
3305
|
|
|
3306
|
+
|
|
3307
|
+
def register_packages_tools(mcp: FastMCP):
|
|
3288
3308
|
@mcp.tool(
|
|
3289
3309
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"packages"}
|
|
3290
3310
|
)
|
|
@@ -3442,6 +3462,8 @@ def register_tools(mcp: FastMCP):
|
|
|
3442
3462
|
)
|
|
3443
3463
|
return response
|
|
3444
3464
|
|
|
3465
|
+
|
|
3466
|
+
def register_pipelines_tools(mcp: FastMCP):
|
|
3445
3467
|
@mcp.tool(
|
|
3446
3468
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"pipelines"}
|
|
3447
3469
|
)
|
|
@@ -3567,6 +3589,8 @@ def register_tools(mcp: FastMCP):
|
|
|
3567
3589
|
ctx.info("Pipeline started")
|
|
3568
3590
|
return response
|
|
3569
3591
|
|
|
3592
|
+
|
|
3593
|
+
def register_pipeline_schedules_tools(mcp: FastMCP):
|
|
3570
3594
|
@mcp.tool(
|
|
3571
3595
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
3572
3596
|
tags={"pipeline_schedules"},
|
|
@@ -4090,6 +4114,8 @@ def register_tools(mcp: FastMCP):
|
|
|
4090
4114
|
ctx.info("Variable deleted")
|
|
4091
4115
|
return response
|
|
4092
4116
|
|
|
4117
|
+
|
|
4118
|
+
def register_projects_tools(mcp: FastMCP):
|
|
4093
4119
|
@mcp.tool(
|
|
4094
4120
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"projects"}
|
|
4095
4121
|
)
|
|
@@ -4559,6 +4585,8 @@ def register_tools(mcp: FastMCP):
|
|
|
4559
4585
|
ctx.info("Project shared")
|
|
4560
4586
|
return response
|
|
4561
4587
|
|
|
4588
|
+
|
|
4589
|
+
def register_protected_branches_tools(mcp: FastMCP):
|
|
4562
4590
|
@mcp.tool(
|
|
4563
4591
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
4564
4592
|
tags={"protected_branches"},
|
|
@@ -4795,6 +4823,8 @@ def register_tools(mcp: FastMCP):
|
|
|
4795
4823
|
ctx.info("Code owner approval setting updated")
|
|
4796
4824
|
return response
|
|
4797
4825
|
|
|
4826
|
+
|
|
4827
|
+
def register_releases_tools(mcp: FastMCP):
|
|
4798
4828
|
@mcp.tool(
|
|
4799
4829
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"releases"}
|
|
4800
4830
|
)
|
|
@@ -5306,6 +5336,8 @@ def register_tools(mcp: FastMCP):
|
|
|
5306
5336
|
ctx.info("Release deleted")
|
|
5307
5337
|
return response
|
|
5308
5338
|
|
|
5339
|
+
|
|
5340
|
+
def register_runners_tools(mcp: FastMCP):
|
|
5309
5341
|
@mcp.tool(
|
|
5310
5342
|
exclude_args=["gitlab_instance", "access_token", "verify"], tags={"runners"}
|
|
5311
5343
|
)
|
|
@@ -6004,6 +6036,8 @@ def register_tools(mcp: FastMCP):
|
|
|
6004
6036
|
ctx.info("Runner authentication token reset")
|
|
6005
6037
|
return response
|
|
6006
6038
|
|
|
6039
|
+
|
|
6040
|
+
def register_tags_tools(mcp: FastMCP):
|
|
6007
6041
|
@mcp.tool(exclude_args=["gitlab_instance", "access_token", "verify"], tags={"tags"})
|
|
6008
6042
|
def get_tags(
|
|
6009
6043
|
gitlab_instance: Optional[str] = Field(
|
|
@@ -6340,6 +6374,8 @@ def register_tools(mcp: FastMCP):
|
|
|
6340
6374
|
ctx.info("Tag unprotected")
|
|
6341
6375
|
return response
|
|
6342
6376
|
|
|
6377
|
+
|
|
6378
|
+
def register_custom_api_tools(mcp: FastMCP):
|
|
6343
6379
|
@mcp.tool(
|
|
6344
6380
|
exclude_args=["gitlab_instance", "access_token", "verify"],
|
|
6345
6381
|
tags={"custom-api"},
|
|
@@ -6456,6 +6492,7 @@ def mcp_server() -> None:
|
|
|
6456
6492
|
Example:
|
|
6457
6493
|
$ python gitlab_api_mcp.py --transport streamable-http --host localhost --port 5000
|
|
6458
6494
|
"""
|
|
6495
|
+
load_dotenv(find_dotenv())
|
|
6459
6496
|
parser = create_mcp_parser()
|
|
6460
6497
|
parser.description = "GitLab MCP Server"
|
|
6461
6498
|
args = parser.parse_args()
|
|
@@ -6758,7 +6795,67 @@ def mcp_server() -> None:
|
|
|
6758
6795
|
sys.exit(1)
|
|
6759
6796
|
|
|
6760
6797
|
mcp = FastMCP("GitLab", auth=auth)
|
|
6761
|
-
|
|
6798
|
+
DEFAULT_MISCTOOL = to_boolean(os.getenv("MISCTOOL", "True"))
|
|
6799
|
+
if DEFAULT_MISCTOOL:
|
|
6800
|
+
register_misc_tools(mcp)
|
|
6801
|
+
DEFAULT_BRANCHESTOOL = to_boolean(os.getenv("BRANCHESTOOL", "True"))
|
|
6802
|
+
if DEFAULT_BRANCHESTOOL:
|
|
6803
|
+
register_branches_tools(mcp)
|
|
6804
|
+
DEFAULT_COMMITSTOOL = to_boolean(os.getenv("COMMITSTOOL", "True"))
|
|
6805
|
+
if DEFAULT_COMMITSTOOL:
|
|
6806
|
+
register_commits_tools(mcp)
|
|
6807
|
+
DEFAULT_DEPLOY_TOKENSTOOL = to_boolean(os.getenv("DEPLOY_TOKENSTOOL", "True"))
|
|
6808
|
+
if DEFAULT_DEPLOY_TOKENSTOOL:
|
|
6809
|
+
register_deploy_tokens_tools(mcp)
|
|
6810
|
+
DEFAULT_ENVIRONMENTSTOOL = to_boolean(os.getenv("ENVIRONMENTSTOOL", "True"))
|
|
6811
|
+
if DEFAULT_ENVIRONMENTSTOOL:
|
|
6812
|
+
register_environments_tools(mcp)
|
|
6813
|
+
DEFAULT_GROUPSTOOL = to_boolean(os.getenv("GROUPSTOOL", "True"))
|
|
6814
|
+
if DEFAULT_GROUPSTOOL:
|
|
6815
|
+
register_groups_tools(mcp)
|
|
6816
|
+
DEFAULT_JOBSTOOL = to_boolean(os.getenv("JOBSTOOL", "True"))
|
|
6817
|
+
if DEFAULT_JOBSTOOL:
|
|
6818
|
+
register_jobs_tools(mcp)
|
|
6819
|
+
DEFAULT_MEMBERSTOOL = to_boolean(os.getenv("MEMBERSTOOL", "True"))
|
|
6820
|
+
if DEFAULT_MEMBERSTOOL:
|
|
6821
|
+
register_members_tools(mcp)
|
|
6822
|
+
DEFAULT_MERGE_REQUESTSTOOL = to_boolean(os.getenv("MERGE_REQUESTSTOOL", "True"))
|
|
6823
|
+
if DEFAULT_MERGE_REQUESTSTOOL:
|
|
6824
|
+
register_merge_requests_tools(mcp)
|
|
6825
|
+
DEFAULT_MERGE_RULESTOOL = to_boolean(os.getenv("MERGE_RULESTOOL", "True"))
|
|
6826
|
+
if DEFAULT_MERGE_RULESTOOL:
|
|
6827
|
+
register_merge_rules_tools(mcp)
|
|
6828
|
+
DEFAULT_PACKAGESTOOL = to_boolean(os.getenv("PACKAGESTOOL", "True"))
|
|
6829
|
+
if DEFAULT_PACKAGESTOOL:
|
|
6830
|
+
register_packages_tools(mcp)
|
|
6831
|
+
DEFAULT_PIPELINESTOOL = to_boolean(os.getenv("PIPELINESTOOL", "True"))
|
|
6832
|
+
if DEFAULT_PIPELINESTOOL:
|
|
6833
|
+
register_pipelines_tools(mcp)
|
|
6834
|
+
DEFAULT_PIPELINE_SCHEDULESTOOL = to_boolean(
|
|
6835
|
+
os.getenv("PIPELINE_SCHEDULESTOOL", "True")
|
|
6836
|
+
)
|
|
6837
|
+
if DEFAULT_PIPELINE_SCHEDULESTOOL:
|
|
6838
|
+
register_pipeline_schedules_tools(mcp)
|
|
6839
|
+
DEFAULT_PROJECTSTOOL = to_boolean(os.getenv("PROJECTSTOOL", "True"))
|
|
6840
|
+
if DEFAULT_PROJECTSTOOL:
|
|
6841
|
+
register_projects_tools(mcp)
|
|
6842
|
+
DEFAULT_PROTECTED_BRANCHESTOOL = to_boolean(
|
|
6843
|
+
os.getenv("PROTECTED_BRANCHESTOOL", "True")
|
|
6844
|
+
)
|
|
6845
|
+
if DEFAULT_PROTECTED_BRANCHESTOOL:
|
|
6846
|
+
register_protected_branches_tools(mcp)
|
|
6847
|
+
DEFAULT_RELEASESTOOL = to_boolean(os.getenv("RELEASESTOOL", "True"))
|
|
6848
|
+
if DEFAULT_RELEASESTOOL:
|
|
6849
|
+
register_releases_tools(mcp)
|
|
6850
|
+
DEFAULT_RUNNERSTOOL = to_boolean(os.getenv("RUNNERSTOOL", "True"))
|
|
6851
|
+
if DEFAULT_RUNNERSTOOL:
|
|
6852
|
+
register_runners_tools(mcp)
|
|
6853
|
+
DEFAULT_TAGSTOOL = to_boolean(os.getenv("TAGSTOOL", "True"))
|
|
6854
|
+
if DEFAULT_TAGSTOOL:
|
|
6855
|
+
register_tags_tools(mcp)
|
|
6856
|
+
DEFAULT_CUSTOM_APITOOL = to_boolean(os.getenv("CUSTOM_APITOOL", "True"))
|
|
6857
|
+
if DEFAULT_CUSTOM_APITOOL:
|
|
6858
|
+
register_custom_api_tools(mcp)
|
|
6762
6859
|
register_prompts(mcp)
|
|
6763
6860
|
|
|
6764
6861
|
for mw in middlewares:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 25.15.
|
|
3
|
+
Version: 25.15.27
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,11 +12,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.2.12
|
|
16
16
|
Provides-Extra: mcp
|
|
17
|
-
Requires-Dist: agent-utilities[mcp]>=0.2.
|
|
17
|
+
Requires-Dist: agent-utilities[mcp]>=0.2.12; extra == "mcp"
|
|
18
18
|
Provides-Extra: agent
|
|
19
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
19
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.12; extra == "agent"
|
|
20
20
|
Provides-Extra: gql
|
|
21
21
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
22
22
|
Provides-Extra: all
|
|
@@ -46,7 +46,7 @@ Dynamic: license-file
|
|
|
46
46
|

|
|
47
47
|

|
|
48
48
|
|
|
49
|
-
*Version: 25.15.
|
|
49
|
+
*Version: 25.15.27*
|
|
50
50
|
|
|
51
51
|
## Overview
|
|
52
52
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
requirements.txt
|
|
6
|
+
gitlab_api/__init__.py
|
|
7
|
+
gitlab_api/__main__.py
|
|
8
|
+
gitlab_api/agent.py
|
|
9
|
+
gitlab_api/auth.py
|
|
10
|
+
gitlab_api/gitlab_api.py
|
|
11
|
+
gitlab_api/gitlab_gql.py
|
|
12
|
+
gitlab_api/gitlab_input_models.py
|
|
13
|
+
gitlab_api/gitlab_response_models.py
|
|
14
|
+
gitlab_api/mcp.py
|
|
15
|
+
gitlab_api/mcp_config.json
|
|
16
|
+
gitlab_api.egg-info/PKG-INFO
|
|
17
|
+
gitlab_api.egg-info/SOURCES.txt
|
|
18
|
+
gitlab_api.egg-info/dependency_links.txt
|
|
19
|
+
gitlab_api.egg-info/entry_points.txt
|
|
20
|
+
gitlab_api.egg-info/requires.txt
|
|
21
|
+
gitlab_api.egg-info/top_level.txt
|
|
22
|
+
gitlab_api/agent/AGENTS.md
|
|
23
|
+
gitlab_api/agent/CRON.md
|
|
24
|
+
gitlab_api/agent/CRON_LOG.md
|
|
25
|
+
gitlab_api/agent/HEARTBEAT.md
|
|
26
|
+
gitlab_api/agent/IDENTITY.md
|
|
27
|
+
gitlab_api/agent/MEMORY.md
|
|
28
|
+
gitlab_api/agent/USER.md
|
|
29
|
+
gitlab_api/agent/mcp_config.json
|
|
30
|
+
gitlab_api/agent/templates.py
|
|
31
|
+
scripts/validate_a2a_agent.py
|
|
32
|
+
scripts/validate_agent.py
|
|
33
|
+
tests/test_gitlab_a2a_validation.py
|
|
34
|
+
tests/test_gitlab_api.py
|
|
35
|
+
tests/test_gitlab_mcp_validation.py
|
|
36
|
+
tests/test_gitlab_models.py
|
|
37
|
+
tests/test_verify_agent.py
|
|
38
|
+
tests/verify_a2a_queries.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gitlab-api"
|
|
7
|
-
version = "25.15.
|
|
7
|
+
version = "25.15.27"
|
|
8
8
|
description = "GitLab API + MCP Server + A2A Server"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Audel Rouhi", email = "knucklessg1@gmail.com" }]
|
|
@@ -14,24 +14,19 @@ classifiers = [
|
|
|
14
14
|
"License :: Public Domain",
|
|
15
15
|
"Environment :: Console",
|
|
16
16
|
"Operating System :: POSIX :: Linux",
|
|
17
|
-
"Programming Language :: Python :: 3"
|
|
18
|
-
]
|
|
17
|
+
"Programming Language :: Python :: 3"]
|
|
19
18
|
requires-python = ">=3.10"
|
|
20
19
|
dependencies = [
|
|
21
|
-
"agent-utilities>=0.2.
|
|
22
|
-
]
|
|
20
|
+
"agent-utilities>=0.2.12"]
|
|
23
21
|
[project.optional-dependencies]
|
|
24
22
|
mcp = [
|
|
25
|
-
"agent-utilities[mcp]>=0.2.
|
|
26
|
-
]
|
|
23
|
+
"agent-utilities[mcp]>=0.2.12"]
|
|
27
24
|
|
|
28
25
|
agent = [
|
|
29
|
-
"agent-utilities[agent,logfire]>=0.2.
|
|
30
|
-
]
|
|
26
|
+
"agent-utilities[agent,logfire]>=0.2.12"]
|
|
31
27
|
|
|
32
28
|
gql = [
|
|
33
|
-
"gql>=4.0.0"
|
|
34
|
-
]
|
|
29
|
+
"gql>=4.0.0"]
|
|
35
30
|
|
|
36
31
|
all = [
|
|
37
32
|
"gitlab-api[mcp,agent,gql,logfire]>=25.15.15"
|
|
@@ -42,7 +37,7 @@ gitlab-mcp = "gitlab_api.mcp:mcp_server"
|
|
|
42
37
|
gitlab-agent = "gitlab_api.agent:agent_server"
|
|
43
38
|
|
|
44
39
|
[tool.setuptools.package-data]
|
|
45
|
-
gitlab_api = [ "mcp_config.json", "
|
|
40
|
+
gitlab_api = [ "mcp_config.json", "agent/**"]
|
|
46
41
|
|
|
47
42
|
[tool.setuptools.packages.find]
|
|
48
43
|
where = ["."]
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# IDENTITY.md - GitLab Multi-Agent Identity
|
|
2
|
-
|
|
3
|
-
## [supervisor]
|
|
4
|
-
* **Name:** GitLab Supervisor
|
|
5
|
-
* **Role:** Coordination of DevOps tasks across GitLab projects and groups.
|
|
6
|
-
* **Emoji:** 🦊
|
|
7
|
-
* **Vibe:** Efficient, technical, organized
|
|
8
|
-
|
|
9
|
-
### System Prompt
|
|
10
|
-
You are the GitLab Supervisor Agent.
|
|
11
|
-
Your goal is to manage GitLab resources by delegating to specialized child agents.
|
|
12
|
-
Determine if the request is about code (branches/commits), project management (issues/MRs), or DevOps (pipelines/runners).
|
|
13
|
-
Coordinate the workflow and present a clear summary to the user.
|
|
14
|
-
|
|
15
|
-
## [projects]
|
|
16
|
-
* **Name:** GitLab Projects Agent
|
|
17
|
-
* **Role:** Manage GitLab projects and repositories.
|
|
18
|
-
* **Emoji:** 📁
|
|
19
|
-
### System Prompt
|
|
20
|
-
You are the GitLab Projects Agent.
|
|
21
|
-
You manage project settings, creation, discovery, and repository configuration.
|
|
22
|
-
|
|
23
|
-
## [groups]
|
|
24
|
-
* **Name:** GitLab Groups Agent
|
|
25
|
-
* **Role:** Manage GitLab groups and subgroups.
|
|
26
|
-
* **Emoji:** 👥
|
|
27
|
-
### System Prompt
|
|
28
|
-
You are the GitLab Groups Agent.
|
|
29
|
-
You manage group hierarchies, memberships, and group-level settings.
|
|
30
|
-
|
|
31
|
-
## [branches]
|
|
32
|
-
* **Name:** GitLab Branches Agent
|
|
33
|
-
* **Role:** Manage Git branches and protection rules.
|
|
34
|
-
* **Emoji:** 🌿
|
|
35
|
-
### System Prompt
|
|
36
|
-
You are the GitLab Branches Agent.
|
|
37
|
-
You handle branch creation, deletion, and branch protection settings.
|
|
38
|
-
|
|
39
|
-
## [commits]
|
|
40
|
-
* **Name:** GitLab Commits Agent
|
|
41
|
-
* **Role:** Manage Git commits and diffs.
|
|
42
|
-
* **Emoji:** 💾
|
|
43
|
-
### System Prompt
|
|
44
|
-
You are the GitLab Commits Agent.
|
|
45
|
-
You handle commit retrieval, diff analysis, and repository history.
|
|
46
|
-
|
|
47
|
-
## [merge-requests]
|
|
48
|
-
* **Name:** GitLab MR Agent
|
|
49
|
-
* **Role:** Manage Merge Requests and code reviews.
|
|
50
|
-
* **Emoji:** 🔀
|
|
51
|
-
### System Prompt
|
|
52
|
-
You are the GitLab Merge Request Agent.
|
|
53
|
-
You handle the lifecycle of Merge Requests, including creation, review, and merging.
|
|
54
|
-
|
|
55
|
-
## [pipelines]
|
|
56
|
-
* **Name:** GitLab pipelines Agent
|
|
57
|
-
* **Role:** Manage CI/CD pipelines and schedules.
|
|
58
|
-
* **Emoji:** 🚀
|
|
59
|
-
### System Prompt
|
|
60
|
-
You are the GitLab Pipelines Agent.
|
|
61
|
-
You handle pipeline execution, scheduling, and status monitoring.
|
|
62
|
-
|
|
63
|
-
## [runners]
|
|
64
|
-
* **Name:** GitLab Runners Agent
|
|
65
|
-
* **Role:** Manage GitLab CI runners.
|
|
66
|
-
* **Emoji:** 🏃
|
|
67
|
-
### System Prompt
|
|
68
|
-
You are the GitLab Runners Agent.
|
|
69
|
-
You manage the registration, configuration, and monitoring of GitLab runners.
|
|
70
|
-
|
|
71
|
-
## [environments]
|
|
72
|
-
* **Name:** GitLab Environments Agent
|
|
73
|
-
* **Role:** Manage deployment environments and releases.
|
|
74
|
-
* **Emoji:** 🌐
|
|
75
|
-
### System Prompt
|
|
76
|
-
You are the GitLab Environments Agent.
|
|
77
|
-
You handle environment configuration, deployments, and release management.
|
|
78
|
-
|
|
79
|
-
## [custom-api]
|
|
80
|
-
* **Name:** GitLab Custom API Agent
|
|
81
|
-
* **Role:** Handle specialized GitLab API calls.
|
|
82
|
-
* **Emoji:** 🛠️
|
|
83
|
-
### System Prompt
|
|
84
|
-
You are the GitLab Custom API Agent.
|
|
85
|
-
You handle specialized tasks or raw API interactions not covered by other specialists.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: test-skill
|
|
3
|
-
description: A test skill.
|
|
4
|
-
version: 0.1.0
|
|
5
|
-
tags: [test-skill]
|
|
6
|
-
input_modes: [text]
|
|
7
|
-
output_modes: [text]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# test-skill Skill
|
|
11
|
-
|
|
12
|
-
## When to use
|
|
13
|
-
For testing.
|
|
14
|
-
|
|
15
|
-
## How to use
|
|
16
|
-
Call it.
|
|
17
|
-
|
|
18
|
-
## Examples
|
|
19
|
-
- Example 1: ...
|