action bitbucket_get_repositories_workspace_repo_slug_issues_issue_id_changes { label: "List changes on an issue" description: "Returns the list of all changes that have been made to the specified\nissue. Changes are returned in chronological order with the oldest\nchange first.\n\nEach time an issue is edited in the UI or through the API, an immutable\nchange record is created under the `/issues/123/changes` endpoint. It\nalso has a comment associated with the change.\n\nNote that this operation is changing significantly, due to privacy changes.\nSee the [announcement](https://developer.atlassian.com/cloud/bitbucket/bitbucket-api-changes-gdpr/#changes-to-the-issue-changes-api)\nfor details.\n\n```\n$ curl -s https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/issues/1/changes - | jq .\n\n{\n \"pagelen\": 20,\n \"values\": [\n {\n \"changes\": {\n \"priority\": {\n \"new\": \"trivial\",\n \"old\": \"major\"\n },\n \"assignee\": {\n \"new\": \"\",\n \"old\": \"evzijst\"\n },\n \"assignee_account_id\": {\n \"new\": \"\",\n \"old\": \"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443\"\n },\n \"kind\": {\n \"new\": \"enhancement\",\n \"old\": \"bug\"\n }\n },\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/issues/1/changes/2\"\n },\n \"html\": {\n \"href\": \"https://bitbucket.org/evzijst/dogslow/issues/1#comment-2\"\n }\n },\n \"issue\": {\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/repositories/evzijst/dogslow/issues/1\"\n }\n },\n \"type\": \"issue\",\n \"id\": 1,\n \"repository\": {\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/repositories/evzijst/dogslow\"\n },\n \"html\": {\n \"href\": \"https://bitbucket.org/evzijst/dogslow\"\n },\n \"avatar\": {\n \"href\": \"https://bitbucket.org/evzijst/dogslow/avatar/32/\"\n }\n },\n \"type\": \"repository\",\n \"name\": \"dogslow\",\n \"full_name\": \"evzijst/dogslow\",\n \"uuid\": \"{988b17c6-1a47-4e70-84ee-854d5f012bf6}\"\n },\n \"title\": \"Updated title\"\n },\n \"created_on\": \"2018-03-03T00:35:28.353630+00:00\",\n \"user\": {\n \"username\": \"evzijst\",\n \"nickname\": \"evzijst\",\n \"display_name\": \"evzijst\",\n \"type\": \"user\",\n \"uuid\": \"{aaa7972b-38af-4fb1-802d-6e3854c95778}\",\n \"links\": {\n \"self\": {\n \"href\": \"https://api.bitbucket.org/2.0/users/evzijst\"\n },\n \"html\": {\n \"href\": \"https://bitbucket.org/evzijst/\"\n },\n \"avatar\": {\n \"href\": \"https://bitbucket.org/account/evzijst/avatar/32/\"\n }\n }\n },\n \"message\": {\n \"raw\": \"Removed assignee, changed kind and priority.\",\n \"markup\": \"markdown\",\n \"html\": \"

Removed assignee, changed kind and priority.

\",\n \"type\": \"rendered\"\n },\n \"type\": \"issue_change\",\n \"id\": 2\n }\n ],\n \"page\": 1\n}\n```\n\nChanges support [filtering and sorting](/cloud/bitbucket/rest/intro/#filtering) that\ncan be used to search for specific changes. For instance, to see\nwhen an issue transitioned to \"resolved\":\n\n```\n$ curl -s https://api.bitbucket.org/2.0/repositories/site/master/issues/1/changes \\\n -G --data-urlencode='q=changes.state.new = \"resolved\"'\n```\n\nThis resource is only available on repositories that have the issue\ntracker enabled.\n\nN.B.\n\nThe `changes.assignee` and `changes.assignee_account_id` fields are not\na `user` object. Instead, they contain the raw `username` and\n`account_id` of the user. This is to protect the integrity of the audit\nlog even after a user account gets deleted.\n\nThe `changes.assignee` field is deprecated will disappear in the\nfuture. Use `changes.assignee_account_id` instead." provider: bitbucket method: GET path: "/repositories/{workspace}/{repo_slug}/issues/{issue_id}/changes" encoding: json input: { type: "object" properties: { q: { type: "string" } sort: { type: "string" } } additionalProperties: false } output: { type: "object" description: "A paginated list of issue changes." 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 10 with 100 being the maximum allowed value. Individual APIs may enforce different values." } 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: "An issue change." required: ["type"] properties: { changes: { type: "object" properties: { assignee: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } component: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } content: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } kind: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } milestone: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } priority: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } state: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } title: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } version: { type: "object" properties: { new: { type: "string" } old: { type: "string" } } additionalProperties: false } } additionalProperties: false } created_on: { type: "string" format: "date-time" } issue: { type: "object" } links: { type: "object" properties: { issue: { type: "object" description: "A link to a resource related to this object." properties: { href: { type: "string" format: "uri" } name: { type: "string" } } additionalProperties: false } self: { type: "object" description: "A link to a resource related to this object." properties: { href: { type: "string" format: "uri" } name: { type: "string" } } additionalProperties: false } } additionalProperties: false } message: { type: "object" properties: { html: { type: "string" description: "The user's content rendered as HTML." } markup: { type: "string" description: "The type of markup language the raw content is to be interpreted in." enum: ["markdown", "creole", "plaintext"] } raw: { type: "string" description: "The text as it was typed by a user." } } additionalProperties: false } name: { type: "string" } type: { type: "string" } user: { type: "object" } } } } } additionalProperties: false } }