{
  "annotations": {
    "idempotentHint": false,
    "readOnlyHint": true,
    "title": "List commits"
  },
  "description": "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).",
  "inputSchema": {
    "properties": {
      "author": {
        "description": "Author username or email address to filter commits by",
        "type": "string"
      },
      "fields": {
        "description": "Subset of fields to return for each commit. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields, e.g. just 'sha' and 'html_url'.",
        "items": {
          "enum": [
            "sha",
            "html_url",
            "commit",
            "author",
            "committer"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "owner": {
        "description": "Repository owner",
        "type": "string"
      },
      "page": {
        "description": "Page number for pagination (min 1)",
        "minimum": 1,
        "type": "number"
      },
      "path": {
        "description": "Only commits containing this file path will be returned",
        "type": "string"
      },
      "perPage": {
        "description": "Results per page for pagination (min 1, max 100)",
        "maximum": 100,
        "minimum": 1,
        "type": "number"
      },
      "repo": {
        "description": "Repository name",
        "type": "string"
      },
      "sha": {
        "description": "Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA.",
        "type": "string"
      },
      "since": {
        "description": "Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)",
        "type": "string"
      },
      "until": {
        "description": "Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)",
        "type": "string"
      }
    },
    "required": [
      "owner",
      "repo"
    ],
    "type": "object"
  },
  "name": "list_commits"
}