feat: Add Official Microsoft & Gemini Skills (845+ Total)
🚀 Impact Significantly expands the capabilities of **Antigravity Awesome Skills** by integrating official skill collections from **Microsoft** and **Google Gemini**. This update increases the total skill count to **845+**, making the library even more comprehensive for AI coding assistants. ✨ Key Changes 1. New Official Skills - **Microsoft Skills**: Added a massive collection of official skills from [microsoft/skills](https://github.com/microsoft/skills). - Includes Azure, .NET, Python, TypeScript, and Semantic Kernel skills. - Preserves the original directory structure under `skills/official/microsoft/`. - Includes plugin skills from the `.github/plugins` directory. - **Gemini Skills**: Added official Gemini API development skills under `skills/gemini-api-dev/`. 2. New Scripts & Tooling - **`scripts/sync_microsoft_skills.py`**: A robust synchronization script that: - Clones the official Microsoft repository. - Preserves the original directory heirarchy. - Handles symlinks and plugin locations. - Generates attribution metadata. - **`scripts/tests/inspect_microsoft_repo.py`**: Debug tool to inspect the remote repository structure. - **`scripts/tests/test_comprehensive_coverage.py`**: Verification script to ensure 100% of skills are captured during sync. 3. Core Improvements - **`scripts/generate_index.py`**: Enhanced frontmatter parsing to safely handle unquoted values containing `@` symbols and commas (fixing issues with some Microsoft skill descriptions). - **`package.json`**: Added `sync:microsoft` and `sync:all-official` scripts for easy maintenance. 4. Documentation - Updated `README.md` to reflect the new skill counts (845+) and added Microsoft/Gemini to the provider list. - Updated `CATALOG.md` and `skills_index.json` with the new skills. 🧪 Verification - Ran `scripts/tests/test_comprehensive_coverage.py` to verify all Microsoft skills are detected. - Validated `generate_index.py` fixes by successfully indexing the new skills.
This commit is contained in:
242
skills/official/microsoft/python/integration/apicenter/SKILL.md
Normal file
242
skills/official/microsoft/python/integration/apicenter/SKILL.md
Normal file
@@ -0,0 +1,242 @@
|
||||
---
|
||||
name: azure-mgmt-apicenter-py
|
||||
description: |
|
||||
Azure API Center Management SDK for Python. Use for managing API inventory, metadata, and governance across your organization.
|
||||
Triggers: "azure-mgmt-apicenter", "ApiCenterMgmtClient", "API Center", "API inventory", "API governance".
|
||||
package: azure-mgmt-apicenter
|
||||
---
|
||||
|
||||
# Azure API Center Management SDK for Python
|
||||
|
||||
Manage API inventory, metadata, and governance in Azure API Center.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install azure-mgmt-apicenter
|
||||
pip install azure-identity
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
```bash
|
||||
AZURE_SUBSCRIPTION_ID=your-subscription-id
|
||||
```
|
||||
|
||||
## Authentication
|
||||
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.mgmt.apicenter import ApiCenterMgmtClient
|
||||
import os
|
||||
|
||||
client = ApiCenterMgmtClient(
|
||||
credential=DefaultAzureCredential(),
|
||||
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
|
||||
)
|
||||
```
|
||||
|
||||
## Create API Center
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import Service
|
||||
|
||||
api_center = client.services.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
resource=Service(
|
||||
location="eastus",
|
||||
tags={"environment": "production"}
|
||||
)
|
||||
)
|
||||
|
||||
print(f"Created API Center: {api_center.name}")
|
||||
```
|
||||
|
||||
## List API Centers
|
||||
|
||||
```python
|
||||
api_centers = client.services.list_by_subscription()
|
||||
|
||||
for api_center in api_centers:
|
||||
print(f"{api_center.name} - {api_center.location}")
|
||||
```
|
||||
|
||||
## Register an API
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import Api, ApiKind, LifecycleStage
|
||||
|
||||
api = client.apis.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
api_name="my-api",
|
||||
resource=Api(
|
||||
title="My API",
|
||||
description="A sample API for demonstration",
|
||||
kind=ApiKind.REST,
|
||||
lifecycle_stage=LifecycleStage.PRODUCTION,
|
||||
terms_of_service={"url": "https://example.com/terms"},
|
||||
contacts=[{"name": "API Team", "email": "api-team@example.com"}]
|
||||
)
|
||||
)
|
||||
|
||||
print(f"Registered API: {api.title}")
|
||||
```
|
||||
|
||||
## Create API Version
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import ApiVersion, LifecycleStage
|
||||
|
||||
version = client.api_versions.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
api_name="my-api",
|
||||
version_name="v1",
|
||||
resource=ApiVersion(
|
||||
title="Version 1.0",
|
||||
lifecycle_stage=LifecycleStage.PRODUCTION
|
||||
)
|
||||
)
|
||||
|
||||
print(f"Created version: {version.title}")
|
||||
```
|
||||
|
||||
## Add API Definition
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import ApiDefinition
|
||||
|
||||
definition = client.api_definitions.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
api_name="my-api",
|
||||
version_name="v1",
|
||||
definition_name="openapi",
|
||||
resource=ApiDefinition(
|
||||
title="OpenAPI Definition",
|
||||
description="OpenAPI 3.0 specification"
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Import API Specification
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import ApiSpecImportRequest, ApiSpecImportSourceFormat
|
||||
|
||||
# Import from inline content
|
||||
client.api_definitions.import_specification(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
api_name="my-api",
|
||||
version_name="v1",
|
||||
definition_name="openapi",
|
||||
body=ApiSpecImportRequest(
|
||||
format=ApiSpecImportSourceFormat.INLINE,
|
||||
value='{"openapi": "3.0.0", "info": {"title": "My API", "version": "1.0"}, "paths": {}}'
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## List APIs
|
||||
|
||||
```python
|
||||
apis = client.apis.list(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default"
|
||||
)
|
||||
|
||||
for api in apis:
|
||||
print(f"{api.name}: {api.title} ({api.kind})")
|
||||
```
|
||||
|
||||
## Create Environment
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import Environment, EnvironmentKind
|
||||
|
||||
environment = client.environments.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
environment_name="production",
|
||||
resource=Environment(
|
||||
title="Production",
|
||||
description="Production environment",
|
||||
kind=EnvironmentKind.PRODUCTION,
|
||||
server={"type": "Azure API Management", "management_portal_uri": ["https://portal.azure.com"]}
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Create Deployment
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import Deployment, DeploymentState
|
||||
|
||||
deployment = client.deployments.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
workspace_name="default",
|
||||
api_name="my-api",
|
||||
deployment_name="prod-deployment",
|
||||
resource=Deployment(
|
||||
title="Production Deployment",
|
||||
description="Deployed to production APIM",
|
||||
environment_id="/workspaces/default/environments/production",
|
||||
definition_id="/workspaces/default/apis/my-api/versions/v1/definitions/openapi",
|
||||
state=DeploymentState.ACTIVE,
|
||||
server={"runtime_uri": ["https://api.example.com"]}
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Define Custom Metadata
|
||||
|
||||
```python
|
||||
from azure.mgmt.apicenter.models import MetadataSchema
|
||||
|
||||
metadata = client.metadata_schemas.create_or_update(
|
||||
resource_group_name="my-resource-group",
|
||||
service_name="my-api-center",
|
||||
metadata_schema_name="data-classification",
|
||||
resource=MetadataSchema(
|
||||
schema='{"type": "string", "title": "Data Classification", "enum": ["public", "internal", "confidential"]}'
|
||||
)
|
||||
)
|
||||
```
|
||||
|
||||
## Client Types
|
||||
|
||||
| Client | Purpose |
|
||||
|--------|---------|
|
||||
| `ApiCenterMgmtClient` | Main client for all operations |
|
||||
|
||||
## Operations
|
||||
|
||||
| Operation Group | Purpose |
|
||||
|----------------|---------|
|
||||
| `services` | API Center service management |
|
||||
| `workspaces` | Workspace management |
|
||||
| `apis` | API registration and management |
|
||||
| `api_versions` | API version management |
|
||||
| `api_definitions` | API definition management |
|
||||
| `deployments` | Deployment tracking |
|
||||
| `environments` | Environment management |
|
||||
| `metadata_schemas` | Custom metadata definitions |
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Use workspaces** to organize APIs by team or domain
|
||||
2. **Define metadata schemas** for consistent governance
|
||||
3. **Track deployments** to understand where APIs are running
|
||||
4. **Import specifications** to enable API analysis and linting
|
||||
5. **Use lifecycle stages** to track API maturity
|
||||
6. **Add contacts** for API ownership and support
|
||||
Reference in New Issue
Block a user