{"action":"created","comment":{"url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/comments/226814558","pull_request_review_id":166735926,"id":226814558,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNjgxNDU1OA==","diff_hunk":"@@ -0,0 +1,304 @@\n+use std::cmp::Ordering;\n+use std::ops::Range;\n+\n+use liquid;\n+\n+use cobalt_model::pagination_config::Include;\n+use cobalt_model::pagination_config::PaginationConfig;\n+use cobalt_model::permalink;\n+use cobalt_model::SortOrder;\n+use document;\n+use document::Document;\n+use error::*;\n+\n+pub struct Paginator {\n+    pub pages: Option<Vec<liquid::value::Value>>,\n+    pub indexes: Option<Vec<String>>,\n+    pub index: usize,\n+    pub index_permalink: String,\n+    pub previous_index: usize,\n+    pub previous_index_permalink: Option<String>,\n+    pub next_index: usize,\n+    pub next_index_permalink: Option<String>,\n+    pub first_index_permalink: String,\n+    pub last_index_permalink: String,\n+    pub total_indexes: usize,\n+    pub total_pages: usize,\n+}\n+\n+impl Paginator {\n+    pub fn new(total_indexes: usize, total_pages: usize) -> Paginator {\n+        Paginator {\n+            pages: None,   // pages in current index\n+            indexes: None, // list of the available indexes, use when include is tags for instance\n+            index: 0,\n+            index_permalink: String::new(),\n+            previous_index: 0,\n+            previous_index_permalink: None,\n+            next_index: 0,\n+            next_index_permalink: None,\n+            first_index_permalink: String::new(),\n+            last_index_permalink: String::new(),\n+            total_indexes,\n+            total_pages,\n+        }\n+    }\n+\n+    pub fn set_first_last(\n+        &mut self,\n+        doc: &Document,\n+        config: &PaginationConfig,\n+        total_pages: usize,\n+    ) -> Result<()> {\n+        self.first_index_permalink = doc.url_path.to_string();\n+        self.last_index_permalink = interpret_permalink(&config, &doc, total_pages)?;\n+        Ok(())\n+    }\n+\n+    fn set_current_index_info(\n+        &mut self,\n+        index: usize,\n+        mut all_pages: Vec<&liquid::value::Value>,\n+        config: &PaginationConfig,\n+        doc: &Document,\n+    ) -> Result<()> {\n+        let nb_posts_left = all_pages.len();\n+        self.index = index;\n+        self.pages = Some(\n+            all_pages\n+                .drain(range_for_page(index, config.per_page, nb_posts_left))\n+                .map(|p| p.clone())\n+                .collect(),\n+        );\n+        self.index_permalink = interpret_permalink(&config, &doc, index)?;\n+        Ok(())\n+    }\n+\n+    fn set_previous_next_info(\n+        &mut self,\n+        index: usize,\n+        total_indexes: usize,\n+        doc: &Document,\n+        config: &PaginationConfig,\n+    ) -> Result<()> {\n+        if index > 1 {\n+            // we have a previous index\n+            self.previous_index_permalink = Some(interpret_permalink(&config, &doc, index - 1)?);\n+            self.previous_index = index - 1;\n+        }\n+\n+        if index < total_indexes {\n+            // we have a next index\n+            self.next_index = index + 1;\n+            self.next_index_permalink = Some(interpret_permalink(&config, &doc, index + 1)?);\n+        }\n+        Ok(())\n+    }\n+}\n+\n+impl Into<liquid::value::Object> for Paginator {\n+    fn into(self) -> liquid::value::Object {\n+        let mut object = liquid::value::Object::new();\n+        // if no pages, means we have indexes instead, `tags` like cases for exemple\n+        if let Some(pages) = self.pages {\n+            object.insert(\"pages\".into(), liquid::value::Value::Array(pages));\n+        }\n+        // list of available indexes, in `tags` like cases\n+        if let Some(indexes) = self.indexes {\n+            object.insert(\n+                \"indexes\".into(),\n+                liquid::value::Value::Array(\n+                    indexes.iter().map(liquid::value::Value::scalar).collect(),\n+                ),\n+            );\n+        }\n+        object.insert(\n+            \"index\".into(),\n+            liquid::value::Value::scalar(self.index as i32),\n+        );\n+        object.insert(\n+            \"index_permalink\".into(),\n+            liquid::value::Value::scalar(self.index_permalink),\n+        );\n+        if let Some(previous_index_permalink) = self.previous_index_permalink {\n+            object.insert(\n+                \"previous_index\".into(),\n+                liquid::value::Value::scalar(self.previous_index as i32),\n+            );\n+            object.insert(\n+                \"previous_index_permalink\".into(),\n+                liquid::value::Value::scalar(previous_index_permalink),\n+            );\n+        }\n+        if let Some(next_index_permalink) = self.next_index_permalink {\n+            object.insert(\n+                \"next_index\".into(),\n+                liquid::value::Value::scalar(self.next_index as i32),\n+            );\n+            object.insert(\n+                \"next_index_permalink\".into(),\n+                liquid::value::Value::scalar(next_index_permalink),\n+            );\n+        }\n+        object.insert(\n+            \"first_index_permalink\".into(),\n+            liquid::value::Value::scalar(self.first_index_permalink),\n+        );\n+        object.insert(\n+            \"last_index_permalink\".into(),\n+            liquid::value::Value::scalar(self.last_index_permalink),\n+        );\n+        object.insert(\n+            \"total_indexes\".into(),\n+            liquid::value::Value::scalar(self.total_indexes as i32),\n+        );\n+        object.insert(\n+            \"total_pages\".into(),\n+            liquid::value::Value::scalar(self.total_pages as i32),\n+        );\n+        object\n+    }\n+}\n+\n+pub fn generate_paginators(\n+    doc: &mut Document,\n+    posts_data: &[liquid::value::Value],\n+) -> Result<Vec<Paginator>> {\n+    let config = doc\n+        .front\n+        .pagination\n+        .as_ref()\n+        .expect(\"Front should have pagination here.\");\n+    let all_posts: Vec<_> = posts_data.iter().collect();\n+    match config.include {\n+        Include::All => {\n+            let all_posts = sort_posts(&all_posts, &config);","path":"src/pagination.rs","position":175,"original_position":175,"commit_id":"9c96d91265d5ecca6a95f048096f1afb17a6267e","original_commit_id":"9c96d91265d5ecca6a95f048096f1afb17a6267e","user":{"login":"epage","id":60961,"node_id":"MDQ6VXNlcjYwOTYx","avatar_url":"https://avatars2.githubusercontent.com/u/60961?v=4","gravatar_id":"","url":"https://api.github.com/users/epage","html_url":"https://github.com/epage","followers_url":"https://api.github.com/users/epage/followers","following_url":"https://api.github.com/users/epage/following{/other_user}","gists_url":"https://api.github.com/users/epage/gists{/gist_id}","starred_url":"https://api.github.com/users/epage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/epage/subscriptions","organizations_url":"https://api.github.com/users/epage/orgs","repos_url":"https://api.github.com/users/epage/repos","events_url":"https://api.github.com/users/epage/events{/privacy}","received_events_url":"https://api.github.com/users/epage/received_events","type":"User","site_admin":false},"body":"Its fine for sort to take ` &mut`.  No reason for us to make a clone just for that.","created_at":"2018-10-20T03:04:38Z","updated_at":"2018-10-20T03:27:58Z","html_url":"https://github.com/cobalt-org/cobalt.rs/pull/532#discussion_r226814558","pull_request_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/comments/226814558"},"html":{"href":"https://github.com/cobalt-org/cobalt.rs/pull/532#discussion_r226814558"},"pull_request":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532"}}},"pull_request":{"url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532","id":222717887,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIyNzE3ODg3","html_url":"https://github.com/cobalt-org/cobalt.rs/pull/532","diff_url":"https://github.com/cobalt-org/cobalt.rs/pull/532.diff","patch_url":"https://github.com/cobalt-org/cobalt.rs/pull/532.patch","issue_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/532","number":532,"state":"open","locked":false,"title":"feat(pagination): core logic","user":{"login":"Geobert","id":72570,"node_id":"MDQ6VXNlcjcyNTcw","avatar_url":"https://avatars1.githubusercontent.com/u/72570?v=4","gravatar_id":"","url":"https://api.github.com/users/Geobert","html_url":"https://github.com/Geobert","followers_url":"https://api.github.com/users/Geobert/followers","following_url":"https://api.github.com/users/Geobert/following{/other_user}","gists_url":"https://api.github.com/users/Geobert/gists{/gist_id}","starred_url":"https://api.github.com/users/Geobert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Geobert/subscriptions","organizations_url":"https://api.github.com/users/Geobert/orgs","repos_url":"https://api.github.com/users/Geobert/repos","events_url":"https://api.github.com/users/Geobert/events{/privacy}","received_events_url":"https://api.github.com/users/Geobert/received_events","type":"User","site_admin":false},"body":"And here is the last PR for the feature.","created_at":"2018-10-14T14:07:40Z","updated_at":"2018-10-20T03:27:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2bce0be52025b53a8fe457cabe6c0450e90f797d","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532/commits","review_comments_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532/comments","review_comment_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/532/comments","statuses_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/statuses/9c96d91265d5ecca6a95f048096f1afb17a6267e","head":{"label":"Geobert:pagination_logic","ref":"pagination_logic","sha":"9c96d91265d5ecca6a95f048096f1afb17a6267e","user":{"login":"Geobert","id":72570,"node_id":"MDQ6VXNlcjcyNTcw","avatar_url":"https://avatars1.githubusercontent.com/u/72570?v=4","gravatar_id":"","url":"https://api.github.com/users/Geobert","html_url":"https://github.com/Geobert","followers_url":"https://api.github.com/users/Geobert/followers","following_url":"https://api.github.com/users/Geobert/following{/other_user}","gists_url":"https://api.github.com/users/Geobert/gists{/gist_id}","starred_url":"https://api.github.com/users/Geobert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Geobert/subscriptions","organizations_url":"https://api.github.com/users/Geobert/orgs","repos_url":"https://api.github.com/users/Geobert/repos","events_url":"https://api.github.com/users/Geobert/events{/privacy}","received_events_url":"https://api.github.com/users/Geobert/received_events","type":"User","site_admin":false},"repo":{"id":106928812,"node_id":"MDEwOlJlcG9zaXRvcnkxMDY5Mjg4MTI=","name":"cobalt.rs","full_name":"Geobert/cobalt.rs","private":false,"owner":{"login":"Geobert","id":72570,"node_id":"MDQ6VXNlcjcyNTcw","avatar_url":"https://avatars1.githubusercontent.com/u/72570?v=4","gravatar_id":"","url":"https://api.github.com/users/Geobert","html_url":"https://github.com/Geobert","followers_url":"https://api.github.com/users/Geobert/followers","following_url":"https://api.github.com/users/Geobert/following{/other_user}","gists_url":"https://api.github.com/users/Geobert/gists{/gist_id}","starred_url":"https://api.github.com/users/Geobert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Geobert/subscriptions","organizations_url":"https://api.github.com/users/Geobert/orgs","repos_url":"https://api.github.com/users/Geobert/repos","events_url":"https://api.github.com/users/Geobert/events{/privacy}","received_events_url":"https://api.github.com/users/Geobert/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Geobert/cobalt.rs","description":"Static site generator written in Rust","fork":true,"url":"https://api.github.com/repos/Geobert/cobalt.rs","forks_url":"https://api.github.com/repos/Geobert/cobalt.rs/forks","keys_url":"https://api.github.com/repos/Geobert/cobalt.rs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Geobert/cobalt.rs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Geobert/cobalt.rs/teams","hooks_url":"https://api.github.com/repos/Geobert/cobalt.rs/hooks","issue_events_url":"https://api.github.com/repos/Geobert/cobalt.rs/issues/events{/number}","events_url":"https://api.github.com/repos/Geobert/cobalt.rs/events","assignees_url":"https://api.github.com/repos/Geobert/cobalt.rs/assignees{/user}","branches_url":"https://api.github.com/repos/Geobert/cobalt.rs/branches{/branch}","tags_url":"https://api.github.com/repos/Geobert/cobalt.rs/tags","blobs_url":"https://api.github.com/repos/Geobert/cobalt.rs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Geobert/cobalt.rs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Geobert/cobalt.rs/git/refs{/sha}","trees_url":"https://api.github.com/repos/Geobert/cobalt.rs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Geobert/cobalt.rs/statuses/{sha}","languages_url":"https://api.github.com/repos/Geobert/cobalt.rs/languages","stargazers_url":"https://api.github.com/repos/Geobert/cobalt.rs/stargazers","contributors_url":"https://api.github.com/repos/Geobert/cobalt.rs/contributors","subscribers_url":"https://api.github.com/repos/Geobert/cobalt.rs/subscribers","subscription_url":"https://api.github.com/repos/Geobert/cobalt.rs/subscription","commits_url":"https://api.github.com/repos/Geobert/cobalt.rs/commits{/sha}","git_commits_url":"https://api.github.com/repos/Geobert/cobalt.rs/git/commits{/sha}","comments_url":"https://api.github.com/repos/Geobert/cobalt.rs/comments{/number}","issue_comment_url":"https://api.github.com/repos/Geobert/cobalt.rs/issues/comments{/number}","contents_url":"https://api.github.com/repos/Geobert/cobalt.rs/contents/{+path}","compare_url":"https://api.github.com/repos/Geobert/cobalt.rs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Geobert/cobalt.rs/merges","archive_url":"https://api.github.com/repos/Geobert/cobalt.rs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Geobert/cobalt.rs/downloads","issues_url":"https://api.github.com/repos/Geobert/cobalt.rs/issues{/number}","pulls_url":"https://api.github.com/repos/Geobert/cobalt.rs/pulls{/number}","milestones_url":"https://api.github.com/repos/Geobert/cobalt.rs/milestones{/number}","notifications_url":"https://api.github.com/repos/Geobert/cobalt.rs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Geobert/cobalt.rs/labels{/name}","releases_url":"https://api.github.com/repos/Geobert/cobalt.rs/releases{/id}","deployments_url":"https://api.github.com/repos/Geobert/cobalt.rs/deployments","created_at":"2017-10-14T13:11:49Z","updated_at":"2018-05-02T08:50:20Z","pushed_at":"2018-10-18T21:05:24Z","git_url":"git://github.com/Geobert/cobalt.rs.git","ssh_url":"git@github.com:Geobert/cobalt.rs.git","clone_url":"https://github.com/Geobert/cobalt.rs.git","svn_url":"https://github.com/Geobert/cobalt.rs","homepage":"","size":1497,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"cobalt-org:master","ref":"master","sha":"1947539e0e94cc283768797825ec2f0b29838514","user":{"login":"cobalt-org","id":9417410,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk0MTc0MTA=","avatar_url":"https://avatars0.githubusercontent.com/u/9417410?v=4","gravatar_id":"","url":"https://api.github.com/users/cobalt-org","html_url":"https://github.com/cobalt-org","followers_url":"https://api.github.com/users/cobalt-org/followers","following_url":"https://api.github.com/users/cobalt-org/following{/other_user}","gists_url":"https://api.github.com/users/cobalt-org/gists{/gist_id}","starred_url":"https://api.github.com/users/cobalt-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cobalt-org/subscriptions","organizations_url":"https://api.github.com/users/cobalt-org/orgs","repos_url":"https://api.github.com/users/cobalt-org/repos","events_url":"https://api.github.com/users/cobalt-org/events{/privacy}","received_events_url":"https://api.github.com/users/cobalt-org/received_events","type":"Organization","site_admin":false},"repo":{"id":25877885,"node_id":"MDEwOlJlcG9zaXRvcnkyNTg3Nzg4NQ==","name":"cobalt.rs","full_name":"cobalt-org/cobalt.rs","private":false,"owner":{"login":"cobalt-org","id":9417410,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk0MTc0MTA=","avatar_url":"https://avatars0.githubusercontent.com/u/9417410?v=4","gravatar_id":"","url":"https://api.github.com/users/cobalt-org","html_url":"https://github.com/cobalt-org","followers_url":"https://api.github.com/users/cobalt-org/followers","following_url":"https://api.github.com/users/cobalt-org/following{/other_user}","gists_url":"https://api.github.com/users/cobalt-org/gists{/gist_id}","starred_url":"https://api.github.com/users/cobalt-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cobalt-org/subscriptions","organizations_url":"https://api.github.com/users/cobalt-org/orgs","repos_url":"https://api.github.com/users/cobalt-org/repos","events_url":"https://api.github.com/users/cobalt-org/events{/privacy}","received_events_url":"https://api.github.com/users/cobalt-org/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cobalt-org/cobalt.rs","description":"Static site generator written in Rust","fork":false,"url":"https://api.github.com/repos/cobalt-org/cobalt.rs","forks_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/forks","keys_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/teams","hooks_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/hooks","issue_events_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/events{/number}","events_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/events","assignees_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/assignees{/user}","branches_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/branches{/branch}","tags_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/tags","blobs_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/git/refs{/sha}","trees_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/statuses/{sha}","languages_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/languages","stargazers_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/stargazers","contributors_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/contributors","subscribers_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/subscribers","subscription_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/subscription","commits_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/commits{/sha}","git_commits_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/git/commits{/sha}","comments_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/comments{/number}","issue_comment_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/comments{/number}","contents_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/contents/{+path}","compare_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/merges","archive_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/downloads","issues_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues{/number}","pulls_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls{/number}","milestones_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/milestones{/number}","notifications_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/labels{/name}","releases_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/releases{/id}","deployments_url":"https://api.github.com/repos/cobalt-org/cobalt.rs/deployments","created_at":"2014-10-28T16:04:40Z","updated_at":"2018-10-18T17:04:02Z","pushed_at":"2018-10-18T21:05:25Z","git_url":"git://github.com/cobalt-org/cobalt.rs.git","ssh_url":"git@github.com:cobalt-org/cobalt.rs.git","clone_url":"https://github.com/cobalt-org/cobalt.rs.git","svn_url":"https://github.com/cobalt-org/cobalt.rs","homepage":"https://cobalt-org.github.io/","size":1393,"stargazers_count":646,"watchers_count":646,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":71,"mirror_url":null,"archived":false,"open_issues_count":52,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":71,"open_issues":52,"watchers":646,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532"},"html":{"href":"https://github.com/cobalt-org/cobalt.rs/pull/532"},"issue":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/532"},"comments":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/issues/532/comments"},"review_comments":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532/comments"},"review_comment":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/pulls/532/commits"},"statuses":{"href":"https://api.github.com/repos/cobalt-org/cobalt.rs/statuses/9c96d91265d5ecca6a95f048096f1afb17a6267e"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"epage"}}