# List Commits — Azure DevOps

> List a repository's commits, optionally narrowed by author, date range, branch or file path. Returns each commit's SHA, author, message and change counts. Use this to build a changelog or to find the commit that last touched a file…

- Key: `azure_devops-list-commits`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Azure DevOps (`azure_devops`) — https://pipedream.com/apps/azure-devops.md
- This page (HTML): https://pipedream.com/apps/azure-devops/actions/list-commits
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/azure_devops/actions/list-commits/list-commits.mjs

## Description

List a repository's commits, optionally narrowed by author, date range, branch or file path. Returns each commit's SHA, author, message and change counts. Use this to build a changelog or to find the commit that last touched a file. Example: author `jamal@fabrikam.com` since `2026-01-01T00:00:00Z`. Returns at most **Limit** results per call - if that many come back there may be more, so raise **Skip** by **Limit** and call again to page through the rest. [See the documentation](https://learn.microsoft.com/en-us/rest/api/azure/devops/git/commits/get-commits?view=azure-devops-rest-7.1)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `organization` | `string` | Yes | Name of the organization Options are loaded from the connected account. |
| `project` | `string` | Yes | Project ID or project name. Run the List Projects action first to obtain valid values. |
| `repositoryId` | `string` | Yes | Repository ID or repository name. Run the List Repositories action first to obtain valid values. |
| `version` | `string` | No | Branch, tag or commit to list history from. Defaults to the repository's default branch. |
| `versionType` | `string` | No | How Version is interpreted. Defaults to branch. |
| `author` | `string` | No | Alias or display name of the commit author to filter by |
| `itemPath` | `string` | No | Return only commits that touched this repository-relative path, e.g. /src/index.js |
| `fromDate` | `string` | No | Return commits made on or after this date, e.g. 2026-01-01T00:00:00Z |
| `toDate` | `string` | No | Return commits made on or before this date, e.g. 2026-01-31T00:00:00Z |
| `limit` | `integer` | No | Maximum number of commits to return (1-1000) |
| `skip` | `integer` | No | Number of results to skip before returning matches. Use with Limit to page through results. |
| `versionOptions` | `string` | No | Modifier applied to Version, e.g. previousChange to start from the commit before it |
| `compareVersion` | `string` | No | Return only commits between Version and this branch, tag or commit |
| `compareVersionType` | `string` | No | How to interpret Compare Version. Defaults to branch. |
| `compareVersionOptions` | `string` | No | Modifier applied to Compare Version |
| `ids` | `string[]` | No | Only return these commit SHAs, e.g. a3fecf65a6766ebc6f2e33b66a1520b827c67ef8. Azure DevOps treats this as an exclusive lookup: it cannot be combined with any other filter, though Limit, Skip and the include options still apply. |
| `user` | `string` | No | Alias or display name of the committer to filter by. Author filters on who wrote the change instead. |
| `fromCommitId` | `string` | No | Walk history starting at this commit SHA, e.g. a3fecf65a6766ebc6f2e33b66a1520b827c67ef8. Run the List Commits action without a range first to obtain valid SHAs. |
| `toCommitId` | `string` | No | Walk history up to this commit SHA, e.g. a3fecf65a6766ebc6f2e33b66a1520b827c67ef8. Run the List Commits action without a range first to obtain valid SHAs. |
| `historyMode` | `string` | No | How merge commits are walked when Item Path is set. Defaults to simplifiedHistory. |
| `excludeDeletes` | `boolean` | No | Exclude commits whose only change to Item Path was deleting it |
| `showOldestCommitsFirst` | `boolean` | No | Return the oldest commits first instead of the newest |
| `includeWorkItems` | `boolean` | No | Include the work items associated with each commit. Use this to tie delivered code back to the stories it closed. |
| `includePushData` | `boolean` | No | Include the push each commit arrived in |
| `includeUserImageUrl` | `boolean` | No | Include avatar urls for the author and committer |
| `includeLinks` | `boolean` | No | Include reference links for each commit |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "azure_devops",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "azure_devops-list-commits",
  arguments: {
    organization: "Organization",
    project: "Project",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "azure_devops-list-commits",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    azure_devops: { authProvisionId: "apn_xxxxxxx" },
    organization: "Organization",
    project: "Project",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "azure_devops-list-commits",
    "configured_props": {
      "azure_devops": { "authProvisionId": "apn_xxxxxxx" },
      "organization": "Organization",
      "project": "Project"
    }
  }'
```

---

- App: https://pipedream.com/apps/azure-devops.md · All apps: https://pipedream.com/apps
