naftiko: 1.0.0-alpha2 info: label: Azure Repos Git API — Pushes description: 'Azure Repos Git API — Pushes. 3 operations. Lead operation: Azure Repos List pushes. Self-contained Naftiko capability covering one Microsoft Azure Repo business surface.' tags: - Microsoft Azure Repo - Pushes created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MICROSOFT_AZURE_REPO_API_KEY: MICROSOFT_AZURE_REPO_API_KEY capability: consumes: - type: http namespace: azure-repo-git-pushes baseUri: https://dev.azure.com/{organization}/{project}/_apis description: Azure Repos Git API — Pushes business capability. Self-contained, no shared references. resources: - name: git-repositories-repositoryId-pushes path: /git/repositories/{repositoryId}/pushes operations: - name: pusheslist method: GET description: Azure Repos List pushes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: $top in: query type: integer description: Number of pushes to return - name: $skip in: query type: integer description: Number of pushes to skip - name: searchCriteria.fromDate in: query type: string description: Start date for filtering pushes - name: searchCriteria.toDate in: query type: string description: End date for filtering pushes - name: searchCriteria.pusherId in: query type: string description: Filter by pusher identity ID - name: searchCriteria.refName in: query type: string description: Filter by branch name (e.g., refs/heads/main) - name: searchCriteria.includeRefUpdates in: query type: boolean description: Include ref update details in results - name: pushescreate method: POST description: Azure Repos Create a push outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: git-repositories-repositoryId-pushes-pushId path: /git/repositories/{repositoryId}/pushes/{pushId} operations: - name: pushesget method: GET description: Azure Repos Get a push outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pushId in: path type: integer description: ID of the push required: true - name: includeCommits in: query type: integer description: Number of commits to include - name: includeRefUpdates in: query type: boolean description: Include ref update details authentication: type: bearer token: '{{env.MICROSOFT_AZURE_REPO_API_KEY}}' exposes: - type: rest namespace: azure-repo-git-pushes-rest port: 8080 description: REST adapter for Azure Repos Git API — Pushes. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/git/repositories/{repositoryid}/pushes name: git-repositories-repositoryid-pushes description: REST surface for git-repositories-repositoryId-pushes. operations: - method: GET name: pusheslist description: Azure Repos List pushes call: azure-repo-git-pushes.pusheslist with: $top: rest.$top $skip: rest.$skip searchCriteria.fromDate: rest.searchCriteria.fromDate searchCriteria.toDate: rest.searchCriteria.toDate searchCriteria.pusherId: rest.searchCriteria.pusherId searchCriteria.refName: rest.searchCriteria.refName searchCriteria.includeRefUpdates: rest.searchCriteria.includeRefUpdates outputParameters: - type: object mapping: $. - method: POST name: pushescreate description: Azure Repos Create a push call: azure-repo-git-pushes.pushescreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/git/repositories/{repositoryid}/pushes/{pushid} name: git-repositories-repositoryid-pushes-pushid description: REST surface for git-repositories-repositoryId-pushes-pushId. operations: - method: GET name: pushesget description: Azure Repos Get a push call: azure-repo-git-pushes.pushesget with: pushId: rest.pushId includeCommits: rest.includeCommits includeRefUpdates: rest.includeRefUpdates outputParameters: - type: object mapping: $. - type: mcp namespace: azure-repo-git-pushes-mcp port: 9090 transport: http description: MCP adapter for Azure Repos Git API — Pushes. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: azure-repos-list-pushes description: Azure Repos List pushes hints: readOnly: true destructive: false idempotent: true call: azure-repo-git-pushes.pusheslist with: $top: tools.$top $skip: tools.$skip searchCriteria.fromDate: tools.searchCriteria.fromDate searchCriteria.toDate: tools.searchCriteria.toDate searchCriteria.pusherId: tools.searchCriteria.pusherId searchCriteria.refName: tools.searchCriteria.refName searchCriteria.includeRefUpdates: tools.searchCriteria.includeRefUpdates outputParameters: - type: object mapping: $. - name: azure-repos-create-push description: Azure Repos Create a push hints: readOnly: false destructive: false idempotent: false call: azure-repo-git-pushes.pushescreate with: body: tools.body outputParameters: - type: object mapping: $. - name: azure-repos-get-push description: Azure Repos Get a push hints: readOnly: true destructive: false idempotent: true call: azure-repo-git-pushes.pushesget with: pushId: tools.pushId includeCommits: tools.includeCommits includeRefUpdates: tools.includeRefUpdates outputParameters: - type: object mapping: $.