{"action":"created","comment":{"url":"https://api.github.com/repos/container-storage-interface/spec/pulls/comments/233232734","pull_request_review_id":174588619,"id":233232734,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMzIzMjczNA==","diff_hunk":"@@ -1642,6 +1700,77 @@ The CO MUST implement the specified error recovery behavior when it encounters t\n | Invalid `starting_token` | 10 ABORTED | Indicates that `starting_token` is not valid. | Caller SHOULD start the `ListSnapshots` operation again with an empty `starting_token`. |\n \n \n+#### `ControllerExpandVolume`\n+\n+A Controller plugin MUST implement this RPC call if plugin has `EXPAND_VOLUME` controller capability.\n+This RPC allows the CO to expand the size of a volume.\n+\n+This call MAY be made by the CO during any time in the lifecycle of the volume after creation if plugin has `VolumeExpansion.ONLINE` capability.\n+If plugin has `EXPAND_VOLUME` node capability, then `NodeExpandVolume` MUST be called after successful `ControllerExpandVolume` and `node_expansion_required` in `ControllerExpandVolumeResponse` is `true`.\n+\n+If the plugin has only `VolumeExpansion.OFFLINE` expansion capability and volume is currently published or available on a node - `ControllerExpandVolume` MUST be called ONLY after either:\n+- The plugin has controller `PUBLISH_UNPUBLISH_VOLUME` capability and `ControllerUnpublishVolume` has been invoked successfully.\n+\n+OR ELSE\n+\n+- The plugin does NOT have controller `PUBLISH_UNPUBLISH_VOLUME` capability, the plugin has node `STAGE_UNSTAGE_VOLUME` capability, and `NodeUnstageVolume` has been completed successfully.\n+\n+OR ELSE\n+\n+- The plugin does NOT have controller `PUBLISH_UNPUBLISH_VOLUME` capability, nor node `STAGE_UNSTAGE_VOLUME` capability, and `NodeUnpublishVolume` has completed successfully.\n+\n+Examples:\n+* Offline Volume Expansion:\n+  Given an ElasticSearch process that runs on Azure Disk and needs more space.\n+  - The administrator takes the Elasticsearch server offline by stopping the workload and CO calls `ControllerUnpublishVolume`.\n+  - The administrator requests more space for the volume from CO.\n+  - The CO in turn first makes `ControllerExpandVolume` RPC call which results in requesting more space from Azure cloudprovider for volume-id that was being used by ElasticSearch.\n+  - Once `ControllerExpandVolume` is completed and successful, the CO will inform administrator about it and administrator will resume the ElasticSearch workload.\n+  - The node on which ElasticSearch workload is scheduled the CO calls `NodeExpandVolume` after calling `NodeStageVolume`.\n+  - Calling `NodeExpandVolume` on volume results in expanding the underlying file system and added space becomes available to workload when it starts up.\n+* Online Volume Expansion:\n+  Given a Mysql server running on Openstack Cinder and needs more space.\n+  - The administrator requests more space for volume from the CO.\n+  - The CO in turn first makes `ControllerExpandVolume` RPC call which results in requesting more space from Openstack Cinder for given volume.\n+  - The node on which mysql workload is running the CO makes `NodeExpandVolume` RPC call while volume is in-use using path where volume is staged.\n+  - Calling `NodeExpandVolume` on volume results in expanding the underlying file system and added space automatically becomes available to mysql workload without any downtime.\n+\n+\n+```protobuf\n+message ControllerExpandVolumeRequest {\n+  // The ID of the volume to expand. This field is REQUIRED.\n+  string volume_id = 1;\n+\n+  // This allows CO to specify the capacity requirements of the volume\n+  // after expansion. This field is REQUIRED.\n+  CapacityRange capacity_range = 2;\n+\n+  // Secrets required by the plugin for expanding the volume.\n+  // This field is OPTIONAL.\n+  map<string, string> controller_expand_volume_secrets = 3;\n+}\n+\n+message ControllerExpandVolumeResponse {\n+  // Capacity of volume after expansion. This field is REQUIRED.\n+  int64 capacity_bytes = 1;\n+\n+  // Whether node expansion is required for the volume. When true\n+  // the CO MUST make NodeExpandVolume RPC call on the node. This field\n+  // is REQUIRED.\n+  bool node_expansion_required = 2;\n+}\n+```\n+\n+##### ControllerExpandVolume Errors\n+\n+| Condition | gRPC Code | Description | Recovery Behavior |\n+|-----------|-----------|-------------|-------------------|\n+| Volume does not exist | 5 NOT FOUND | Indicates that a volume corresponding to the specified volume_id does not exist. | Caller MUST verify that the volume_id is correct and that the volume is accessible and has not been deleted before retrying with exponential back off. |\n+| Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be expanded because it is currently published on a node but the plugin does not have ONLINE expansion capability. | Caller SHOULD ensure that volume is not published and retry with exponential back off. |\n+| Operation pending for volume | 10 ABORTED | Indicates that there is already an expansion operation pending for the specified volume. In general the Cluster Orchestrator (CO) is responsible for ensuring that there is no more than one call \"in-flight\" per volume at a given time. However in some circumstances, the CO MAY lose state and MAY issue multiple calls simultaneously for the same volume. The Plugin, SHOULD handle this as gracefully as possible, and MAY return this error code to reject secondary calls| Caller SHOULD ensure that there are no other calls pending for the specified volume, and then retry with exponential back off. |","path":"spec.md","position":174,"original_position":174,"commit_id":"06c933894b53359f38c7307bb753c8b3e3d6a8a8","original_commit_id":"06c933894b53359f38c7307bb753c8b3e3d6a8a8","user":{"login":"jdef","id":2348332,"node_id":"MDQ6VXNlcjIzNDgzMzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2348332?v=4","gravatar_id":"","url":"https://api.github.com/users/jdef","html_url":"https://github.com/jdef","followers_url":"https://api.github.com/users/jdef/followers","following_url":"https://api.github.com/users/jdef/following{/other_user}","gists_url":"https://api.github.com/users/jdef/gists{/gist_id}","starred_url":"https://api.github.com/users/jdef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdef/subscriptions","organizations_url":"https://api.github.com/users/jdef/orgs","repos_url":"https://api.github.com/users/jdef/repos","events_url":"https://api.github.com/users/jdef/events{/privacy}","received_events_url":"https://api.github.com/users/jdef/received_events","type":"User","site_admin":false},"body":"We consolidated ABORTED error codes in the general errors section. This line isn't needed here.","created_at":"2018-11-13T21:42:08Z","updated_at":"2018-11-13T21:46:20Z","html_url":"https://github.com/container-storage-interface/spec/pull/222#discussion_r233232734","pull_request_url":"https://api.github.com/repos/container-storage-interface/spec/pulls/222","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/comments/233232734"},"html":{"href":"https://github.com/container-storage-interface/spec/pull/222#discussion_r233232734"},"pull_request":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/222"}}},"pull_request":{"url":"https://api.github.com/repos/container-storage-interface/spec/pulls/222","id":182886794,"node_id":"MDExOlB1bGxSZXF1ZXN0MTgyODg2Nzk0","html_url":"https://github.com/container-storage-interface/spec/pull/222","diff_url":"https://github.com/container-storage-interface/spec/pull/222.diff","patch_url":"https://github.com/container-storage-interface/spec/pull/222.patch","issue_url":"https://api.github.com/repos/container-storage-interface/spec/issues/222","number":222,"state":"open","locked":false,"title":"spec: Preliminary volume expansion API.","user":{"login":"gnufied","id":278,"node_id":"MDQ6VXNlcjI3OA==","avatar_url":"https://avatars0.githubusercontent.com/u/278?v=4","gravatar_id":"","url":"https://api.github.com/users/gnufied","html_url":"https://github.com/gnufied","followers_url":"https://api.github.com/users/gnufied/followers","following_url":"https://api.github.com/users/gnufied/following{/other_user}","gists_url":"https://api.github.com/users/gnufied/gists{/gist_id}","starred_url":"https://api.github.com/users/gnufied/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnufied/subscriptions","organizations_url":"https://api.github.com/users/gnufied/orgs","repos_url":"https://api.github.com/users/gnufied/repos","events_url":"https://api.github.com/users/gnufied/events{/privacy}","received_events_url":"https://api.github.com/users/gnufied/received_events","type":"User","site_admin":false},"body":"Add proposal for volume expansion in CSI\r\n\r\nCloses https://github.com/container-storage-interface/spec/issues/212","created_at":"2018-04-19T20:17:27Z","updated_at":"2018-11-13T21:46:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1fb347346970c4a4d920b902a602bb0475cc648b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":617885212,"node_id":"MDU6TGFiZWw2MTc4ODUyMTI=","url":"https://api.github.com/repos/container-storage-interface/spec/labels/priority/p1","name":"priority/p1","color":"fbca04","default":false}],"milestone":{"url":"https://api.github.com/repos/container-storage-interface/spec/milestones/1","html_url":"https://github.com/container-storage-interface/spec/milestone/1","labels_url":"https://api.github.com/repos/container-storage-interface/spec/milestones/1/labels","id":2543079,"node_id":"MDk6TWlsZXN0b25lMjU0MzA3OQ==","number":1,"title":"v1.0","description":"Initial stable release of the CSI Specification.","creator":{"login":"jdef","id":2348332,"node_id":"MDQ6VXNlcjIzNDgzMzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2348332?v=4","gravatar_id":"","url":"https://api.github.com/users/jdef","html_url":"https://github.com/jdef","followers_url":"https://api.github.com/users/jdef/followers","following_url":"https://api.github.com/users/jdef/following{/other_user}","gists_url":"https://api.github.com/users/jdef/gists{/gist_id}","starred_url":"https://api.github.com/users/jdef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdef/subscriptions","organizations_url":"https://api.github.com/users/jdef/orgs","repos_url":"https://api.github.com/users/jdef/repos","events_url":"https://api.github.com/users/jdef/events{/privacy}","received_events_url":"https://api.github.com/users/jdef/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":37,"state":"open","created_at":"2017-05-25T14:34:56Z","updated_at":"2018-11-12T18:50:31Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/container-storage-interface/spec/pulls/222/commits","review_comments_url":"https://api.github.com/repos/container-storage-interface/spec/pulls/222/comments","review_comment_url":"https://api.github.com/repos/container-storage-interface/spec/pulls/comments{/number}","comments_url":"https://api.github.com/repos/container-storage-interface/spec/issues/222/comments","statuses_url":"https://api.github.com/repos/container-storage-interface/spec/statuses/06c933894b53359f38c7307bb753c8b3e3d6a8a8","head":{"label":"gnufied:resize-proposal","ref":"resize-proposal","sha":"06c933894b53359f38c7307bb753c8b3e3d6a8a8","user":{"login":"gnufied","id":278,"node_id":"MDQ6VXNlcjI3OA==","avatar_url":"https://avatars0.githubusercontent.com/u/278?v=4","gravatar_id":"","url":"https://api.github.com/users/gnufied","html_url":"https://github.com/gnufied","followers_url":"https://api.github.com/users/gnufied/followers","following_url":"https://api.github.com/users/gnufied/following{/other_user}","gists_url":"https://api.github.com/users/gnufied/gists{/gist_id}","starred_url":"https://api.github.com/users/gnufied/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnufied/subscriptions","organizations_url":"https://api.github.com/users/gnufied/orgs","repos_url":"https://api.github.com/users/gnufied/repos","events_url":"https://api.github.com/users/gnufied/events{/privacy}","received_events_url":"https://api.github.com/users/gnufied/received_events","type":"User","site_admin":false},"repo":{"id":129927706,"node_id":"MDEwOlJlcG9zaXRvcnkxMjk5Mjc3MDY=","name":"spec","full_name":"gnufied/spec","private":false,"owner":{"login":"gnufied","id":278,"node_id":"MDQ6VXNlcjI3OA==","avatar_url":"https://avatars0.githubusercontent.com/u/278?v=4","gravatar_id":"","url":"https://api.github.com/users/gnufied","html_url":"https://github.com/gnufied","followers_url":"https://api.github.com/users/gnufied/followers","following_url":"https://api.github.com/users/gnufied/following{/other_user}","gists_url":"https://api.github.com/users/gnufied/gists{/gist_id}","starred_url":"https://api.github.com/users/gnufied/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnufied/subscriptions","organizations_url":"https://api.github.com/users/gnufied/orgs","repos_url":"https://api.github.com/users/gnufied/repos","events_url":"https://api.github.com/users/gnufied/events{/privacy}","received_events_url":"https://api.github.com/users/gnufied/received_events","type":"User","site_admin":false},"html_url":"https://github.com/gnufied/spec","description":"Container Storage Interface (CSI) Specification.","fork":true,"url":"https://api.github.com/repos/gnufied/spec","forks_url":"https://api.github.com/repos/gnufied/spec/forks","keys_url":"https://api.github.com/repos/gnufied/spec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gnufied/spec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gnufied/spec/teams","hooks_url":"https://api.github.com/repos/gnufied/spec/hooks","issue_events_url":"https://api.github.com/repos/gnufied/spec/issues/events{/number}","events_url":"https://api.github.com/repos/gnufied/spec/events","assignees_url":"https://api.github.com/repos/gnufied/spec/assignees{/user}","branches_url":"https://api.github.com/repos/gnufied/spec/branches{/branch}","tags_url":"https://api.github.com/repos/gnufied/spec/tags","blobs_url":"https://api.github.com/repos/gnufied/spec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gnufied/spec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gnufied/spec/git/refs{/sha}","trees_url":"https://api.github.com/repos/gnufied/spec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gnufied/spec/statuses/{sha}","languages_url":"https://api.github.com/repos/gnufied/spec/languages","stargazers_url":"https://api.github.com/repos/gnufied/spec/stargazers","contributors_url":"https://api.github.com/repos/gnufied/spec/contributors","subscribers_url":"https://api.github.com/repos/gnufied/spec/subscribers","subscription_url":"https://api.github.com/repos/gnufied/spec/subscription","commits_url":"https://api.github.com/repos/gnufied/spec/commits{/sha}","git_commits_url":"https://api.github.com/repos/gnufied/spec/git/commits{/sha}","comments_url":"https://api.github.com/repos/gnufied/spec/comments{/number}","issue_comment_url":"https://api.github.com/repos/gnufied/spec/issues/comments{/number}","contents_url":"https://api.github.com/repos/gnufied/spec/contents/{+path}","compare_url":"https://api.github.com/repos/gnufied/spec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gnufied/spec/merges","archive_url":"https://api.github.com/repos/gnufied/spec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gnufied/spec/downloads","issues_url":"https://api.github.com/repos/gnufied/spec/issues{/number}","pulls_url":"https://api.github.com/repos/gnufied/spec/pulls{/number}","milestones_url":"https://api.github.com/repos/gnufied/spec/milestones{/number}","notifications_url":"https://api.github.com/repos/gnufied/spec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gnufied/spec/labels{/name}","releases_url":"https://api.github.com/repos/gnufied/spec/releases{/id}","deployments_url":"https://api.github.com/repos/gnufied/spec/deployments","created_at":"2018-04-17T15:41:08Z","updated_at":"2018-11-08T17:03:19Z","pushed_at":"2018-11-09T18:25:11Z","git_url":"git://github.com/gnufied/spec.git","ssh_url":"git@github.com:gnufied/spec.git","clone_url":"https://github.com/gnufied/spec.git","svn_url":"https://github.com/gnufied/spec","homepage":"","size":1016,"stargazers_count":0,"watchers_count":0,"language":"Makefile","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"container-storage-interface:master","ref":"master","sha":"7a8d2d546db2b010d924708ab36f5dd43a10098d","user":{"login":"container-storage-interface","id":28406793,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4NDA2Nzkz","avatar_url":"https://avatars1.githubusercontent.com/u/28406793?v=4","gravatar_id":"","url":"https://api.github.com/users/container-storage-interface","html_url":"https://github.com/container-storage-interface","followers_url":"https://api.github.com/users/container-storage-interface/followers","following_url":"https://api.github.com/users/container-storage-interface/following{/other_user}","gists_url":"https://api.github.com/users/container-storage-interface/gists{/gist_id}","starred_url":"https://api.github.com/users/container-storage-interface/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/container-storage-interface/subscriptions","organizations_url":"https://api.github.com/users/container-storage-interface/orgs","repos_url":"https://api.github.com/users/container-storage-interface/repos","events_url":"https://api.github.com/users/container-storage-interface/events{/privacy}","received_events_url":"https://api.github.com/users/container-storage-interface/received_events","type":"Organization","site_admin":false},"repo":{"id":91765224,"node_id":"MDEwOlJlcG9zaXRvcnk5MTc2NTIyNA==","name":"spec","full_name":"container-storage-interface/spec","private":false,"owner":{"login":"container-storage-interface","id":28406793,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4NDA2Nzkz","avatar_url":"https://avatars1.githubusercontent.com/u/28406793?v=4","gravatar_id":"","url":"https://api.github.com/users/container-storage-interface","html_url":"https://github.com/container-storage-interface","followers_url":"https://api.github.com/users/container-storage-interface/followers","following_url":"https://api.github.com/users/container-storage-interface/following{/other_user}","gists_url":"https://api.github.com/users/container-storage-interface/gists{/gist_id}","starred_url":"https://api.github.com/users/container-storage-interface/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/container-storage-interface/subscriptions","organizations_url":"https://api.github.com/users/container-storage-interface/orgs","repos_url":"https://api.github.com/users/container-storage-interface/repos","events_url":"https://api.github.com/users/container-storage-interface/events{/privacy}","received_events_url":"https://api.github.com/users/container-storage-interface/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/container-storage-interface/spec","description":"Container Storage Interface (CSI) Specification.","fork":false,"url":"https://api.github.com/repos/container-storage-interface/spec","forks_url":"https://api.github.com/repos/container-storage-interface/spec/forks","keys_url":"https://api.github.com/repos/container-storage-interface/spec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/container-storage-interface/spec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/container-storage-interface/spec/teams","hooks_url":"https://api.github.com/repos/container-storage-interface/spec/hooks","issue_events_url":"https://api.github.com/repos/container-storage-interface/spec/issues/events{/number}","events_url":"https://api.github.com/repos/container-storage-interface/spec/events","assignees_url":"https://api.github.com/repos/container-storage-interface/spec/assignees{/user}","branches_url":"https://api.github.com/repos/container-storage-interface/spec/branches{/branch}","tags_url":"https://api.github.com/repos/container-storage-interface/spec/tags","blobs_url":"https://api.github.com/repos/container-storage-interface/spec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/container-storage-interface/spec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/container-storage-interface/spec/git/refs{/sha}","trees_url":"https://api.github.com/repos/container-storage-interface/spec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/container-storage-interface/spec/statuses/{sha}","languages_url":"https://api.github.com/repos/container-storage-interface/spec/languages","stargazers_url":"https://api.github.com/repos/container-storage-interface/spec/stargazers","contributors_url":"https://api.github.com/repos/container-storage-interface/spec/contributors","subscribers_url":"https://api.github.com/repos/container-storage-interface/spec/subscribers","subscription_url":"https://api.github.com/repos/container-storage-interface/spec/subscription","commits_url":"https://api.github.com/repos/container-storage-interface/spec/commits{/sha}","git_commits_url":"https://api.github.com/repos/container-storage-interface/spec/git/commits{/sha}","comments_url":"https://api.github.com/repos/container-storage-interface/spec/comments{/number}","issue_comment_url":"https://api.github.com/repos/container-storage-interface/spec/issues/comments{/number}","contents_url":"https://api.github.com/repos/container-storage-interface/spec/contents/{+path}","compare_url":"https://api.github.com/repos/container-storage-interface/spec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/container-storage-interface/spec/merges","archive_url":"https://api.github.com/repos/container-storage-interface/spec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/container-storage-interface/spec/downloads","issues_url":"https://api.github.com/repos/container-storage-interface/spec/issues{/number}","pulls_url":"https://api.github.com/repos/container-storage-interface/spec/pulls{/number}","milestones_url":"https://api.github.com/repos/container-storage-interface/spec/milestones{/number}","notifications_url":"https://api.github.com/repos/container-storage-interface/spec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/container-storage-interface/spec/labels{/name}","releases_url":"https://api.github.com/repos/container-storage-interface/spec/releases{/id}","deployments_url":"https://api.github.com/repos/container-storage-interface/spec/deployments","created_at":"2017-05-19T04:23:40Z","updated_at":"2018-11-13T20:45:29Z","pushed_at":"2018-11-13T18:53:48Z","git_url":"git://github.com/container-storage-interface/spec.git","ssh_url":"git@github.com:container-storage-interface/spec.git","clone_url":"https://github.com/container-storage-interface/spec.git","svn_url":"https://github.com/container-storage-interface/spec","homepage":"","size":1121,"stargazers_count":312,"watchers_count":312,"language":"Makefile","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":85,"mirror_url":null,"archived":false,"open_issues_count":50,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":85,"open_issues":50,"watchers":312,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/222"},"html":{"href":"https://github.com/container-storage-interface/spec/pull/222"},"issue":{"href":"https://api.github.com/repos/container-storage-interface/spec/issues/222"},"comments":{"href":"https://api.github.com/repos/container-storage-interface/spec/issues/222/comments"},"review_comments":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/222/comments"},"review_comment":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/container-storage-interface/spec/pulls/222/commits"},"statuses":{"href":"https://api.github.com/repos/container-storage-interface/spec/statuses/06c933894b53359f38c7307bb753c8b3e3d6a8a8"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jdef"}}