action bitbucket_get_repositories_workspace_repo_slug_diffstat_spec { label: "Compare two commit diff stats" description: "Produces a response in JSON format with a record for every path\nmodified, including information on the type of the change and the\nnumber of lines added and removed.\n\n#### Single commit spec\n\nIf the `spec` argument to this API is a single commit, the diff is\nproduced against the first parent of the specified commit.\n\n#### Two commit spec\n\nTwo commits separated by `..` may be provided as the `spec`, e.g.,\n`3a8b42..9ff173`. When two commits are provided and the `topic` query\nparameter is true or absent, this API produces a 2-way three dot diff.\nThis is the diff between source commit and the merge base of the source\ncommit and the destination commit. When the `topic` query param is false,\na simple git-style diff is produced.\n\nThe two commits are interpreted as follows:\n\n* First commit: the commit containing the changes we wish to preview\n* Second commit: the commit representing the state to which we want to\n compare the first commit\n* **Note**: This is the opposite of the order used in `git diff`.\n\n#### Sample output\n```\ncurl https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/diffstat/d222fa2..e174964\n{\n \"pagelen\": 500,\n \"values\": [\n {\n \"type\": \"diffstat\",\n \"status\": \"modified\",\n \"lines_removed\": 1,\n \"lines_added\": 2,\n \"old\": {\n \"path\": \"setup.py\",\n \"escaped_path\": \"setup.py\",\n \"type\": \"commit_file\",\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/src/e1749643d655d7c7014001a6c0f58abaf42ad850/setup.py\"\n }\n }\n },\n \"new\": {\n \"path\": \"setup.py\",\n \"escaped_path\": \"setup.py\",\n \"type\": \"commit_file\",\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/repositories/bitbucket/geordi/src/d222fa235229c55dad20b190b0b571adf737d5a6/setup.py\"\n }\n }\n }\n }\n ],\n \"page\": 1,\n \"size\": 1\n}\n```" provider: bitbucket method: GET path: "/repositories/{workspace}/{repo_slug}/diffstat/{spec}" encoding: json output: { type: "object" description: "A paginated list of diffstats." properties: { next: { type: "string" format: "uri" description: "Link to the next page if it exists. The last page of a collection does not have this value. Use this link to navigate the result set and refrain from constructing your own URLs." } page: { type: "integer" description: "Page number of the current results. This is an optional element that is not provided in all responses." } pagelen: { type: "integer" description: "Current number of objects on the existing page. The default value is 500 with 5000 being the maximum allowed value." } previous: { type: "string" format: "uri" description: "Link to previous page if it exists. A collections first page does not have this value. This is an optional element that is not provided in all responses. Some result sets strictly support forward navigation and never provide previous links. Clients must anticipate that backwards navigation is not always available. Use this link to navigate the result set and refrain from constructing your own URLs." } size: { type: "integer" description: "Total number of objects in the response. This is an optional element that is not provided in all responses, as it can be expensive to compute." } values: { type: "array" items: { type: "object" description: "A diffstat object that includes a summary of changes made to a file between two commits." required: ["type"] properties: { lines_added: { type: "integer" } lines_removed: { type: "integer" } new: { type: "object" description: "A file object, representing a file at a commit in a repository" required: ["type"] properties: { attributes: { type: "string" enum: ["link", "executable", "subrepository", "binary", "lfs"] } commit: { type: "object" } escaped_path: { type: "string" description: "The escaped version of the path as it appears in a diff. If the path does not require escaping this will be the same as path." } path: { type: "string" description: "The path in the repository" } type: { type: "string" } } } old: { type: "object" additionalProperties: true } status: { type: "string" enum: ["added", "removed", "modified", "renamed"] } type: { type: "string" } } } } } additionalProperties: false } }