{"action":"created","comment":{"url":"https://api.github.com/repos/gyscos/Cursive/pulls/comments/82672698","pull_request_review_id":3563637,"id":82672698,"diff_hunk":"@@ -0,0 +1,218 @@\n+extern crate pancurses;\n+\n+use backend;\n+use event::{Event, Key};\n+\n+use self::super::find_closest;\n+use theme::{Color, ColorStyle, Effect};\n+\n+pub struct Concrete {\n+    window: pancurses::Window,\n+}\n+\n+impl backend::Backend for Concrete {\n+    fn init() -> Self {\n+        ::std::env::set_var(\"ESCDELAY\", \"25\");\n+        let window = pancurses::initscr();\n+        window.keypad(true);\n+        pancurses::noecho();\n+        pancurses::cbreak();\n+        pancurses::start_color();\n+        pancurses::curs_set(0);\n+        window.bkgd(pancurses::COLOR_PAIR(ColorStyle::Background.id() as u64));\n+\n+        Concrete { window: window }\n+    }\n+\n+    fn screen_size(&self) -> (usize, usize) {\n+        let (x, y) = self.window.get_max_yx();\n+        (x as usize, y as usize)\n+    }\n+\n+    fn has_colors(&self) -> bool {\n+        pancurses::has_colors()\n+    }\n+\n+    fn finish(&mut self) {\n+        pancurses::endwin();\n+    }\n+\n+    fn init_color_style(&mut self, style: ColorStyle, foreground: &Color,\n+                        background: &Color) {\n+        pancurses::init_pair(style.id(),\n+                             find_closest(foreground) as i16,\n+                             find_closest(background) as i16);\n+    }\n+\n+    fn with_color<F: FnOnce()>(&self, color: ColorStyle, f: F) {\n+        // TODO: pancurses doesn't have an `attr_get` equivalent\n+        // let mut current_style: pancurses::attr_t = 0;\n+        // let mut current_color: i16 = 0;\n+        // pancurses::attr_get(&mut current_style, &mut current_color);\n+\n+        let style = pancurses::COLOR_PAIR(color.id() as u64);\n+        self.window.attron(style);\n+        f();\n+        self.window.attroff(style);\n+        // pancurses::attron(current_style);\n+    }\n+\n+    fn with_effect<F: FnOnce()>(&self, effect: Effect, f: F) {\n+        let style = match effect {\n+            // A_REVERSE, taken from ncurses\n+            Effect::Reverse => 1 << (10 + 8u32),\n+            Effect::Simple => pancurses::A_NORMAL,\n+        };\n+        self.window.attron(style);\n+        f();\n+        self.window.attroff(style);\n+    }\n+\n+    fn clear(&self) {\n+        self.window.clear();\n+    }\n+\n+    fn refresh(&mut self) {\n+        self.window.refresh();\n+    }\n+\n+    fn print_at(&self, (x, y): (usize, usize), text: &str) {\n+        self.window.mvaddstr(y as i32, x as i32, text);\n+    }\n+\n+    fn poll_event(&self) -> Event {\n+        // TODO: there seems to not be any indication\n+        // of Ctrl/Alt/Shift in these :v\n+        if let Some(ev) = self.window.getch() {\n+            match ev {\n+                pancurses::Input::Character(c) => Event::Char(c),\n+                pancurses::Input::Unknown(i) => Event::Unknown(i),\n+                // TODO: I honestly have no fucking idea what KeyCodeYes is\n+                pancurses::Input::KeyCodeYes => Event::Refresh,\n+                pancurses::Input::KeyBreak => Event::Key(Key::PauseBreak),\n+                pancurses::Input::KeyDown => Event::Key(Key::Down),\n+                pancurses::Input::KeyUp => Event::Key(Key::Up),\n+                pancurses::Input::KeyLeft => Event::Key(Key::Left),\n+                pancurses::Input::KeyRight => Event::Key(Key::Right),\n+                pancurses::Input::KeyHome => Event::Key(Key::Home),\n+                pancurses::Input::KeyBackspace => Event::Key(Key::Backspace),\n+                pancurses::Input::KeyF0 => Event::Key(Key::F0),\n+                pancurses::Input::KeyF1 => Event::Key(Key::F1),\n+                pancurses::Input::KeyF2 => Event::Key(Key::F2),\n+                pancurses::Input::KeyF3 => Event::Key(Key::F3),\n+                pancurses::Input::KeyF4 => Event::Key(Key::F4),\n+                pancurses::Input::KeyF5 => Event::Key(Key::F5),\n+                pancurses::Input::KeyF6 => Event::Key(Key::F6),\n+                pancurses::Input::KeyF7 => Event::Key(Key::F7),\n+                pancurses::Input::KeyF8 => Event::Key(Key::F8),\n+                pancurses::Input::KeyF9 => Event::Key(Key::F9),\n+                pancurses::Input::KeyF10 => Event::Key(Key::F10),\n+                pancurses::Input::KeyF11 => Event::Key(Key::F11),\n+                pancurses::Input::KeyF12 => Event::Key(Key::F12),\n+                pancurses::Input::KeyF13 => Event::Shift(Key::F1),\n+                pancurses::Input::KeyF14 => Event::Shift(Key::F2),\n+                pancurses::Input::KeyF15 => Event::Shift(Key::F3),\n+                // TODO: not sure what those are\n+                pancurses::Input::KeyDL => Event::Refresh,\n+                pancurses::Input::KeyIL => Event::Refresh,\n+                pancurses::Input::KeyDC => Event::Refresh,\n+                pancurses::Input::KeyIC => Event::Refresh,\n+                pancurses::Input::KeyEIC => Event::Refresh,\n+                pancurses::Input::KeyClear => Event::Refresh,\n+                pancurses::Input::KeyEOS => Event::Refresh,\n+                pancurses::Input::KeyEOL => Event::Refresh,\n+                pancurses::Input::KeySF => Event::Refresh,\n+                pancurses::Input::KeySR => Event::Refresh,\n+                pancurses::Input::KeyNPage => Event::Refresh,\n+                pancurses::Input::KeyPPage => Event::Refresh,\n+                pancurses::Input::KeySTab => Event::Shift(Key::Tab),\n+                pancurses::Input::KeyCTab => Event::Ctrl(Key::Tab),\n+                pancurses::Input::KeyCATab => Event::CtrlAlt(Key::Tab),\n+                pancurses::Input::KeyEnter => Event::Key(Key::Enter),\n+                // TODO: not sure what those are\n+                pancurses::Input::KeySReset => Event::Refresh,\n+                pancurses::Input::KeyReset => Event::Refresh,\n+                pancurses::Input::KeyPrint => Event::Refresh,\n+                pancurses::Input::KeyLL => Event::Refresh,\n+                pancurses::Input::KeyAbort => Event::Refresh,\n+                pancurses::Input::KeySHelp => Event::Refresh,\n+                pancurses::Input::KeyLHelp => Event::Refresh,\n+                pancurses::Input::KeyBTab => Event::Refresh,\n+                pancurses::Input::KeyBeg => Event::Refresh,\n+                pancurses::Input::KeyCancel => Event::Refresh,\n+                pancurses::Input::KeyClose => Event::Refresh,\n+                pancurses::Input::KeyCommand => Event::Refresh,\n+                pancurses::Input::KeyCopy => Event::Refresh,\n+                pancurses::Input::KeyCreate => Event::Refresh,\n+                pancurses::Input::KeyEnd => Event::Refresh,\n+                pancurses::Input::KeyExit => Event::Refresh,\n+                pancurses::Input::KeyFind => Event::Refresh,\n+                pancurses::Input::KeyHelp => Event::Refresh,\n+                pancurses::Input::KeyMark => Event::Refresh,\n+                pancurses::Input::KeyMessage => Event::Refresh,\n+                pancurses::Input::KeyMove => Event::Refresh,\n+                pancurses::Input::KeyNext => Event::Refresh,\n+                pancurses::Input::KeyOpen => Event::Refresh,\n+                pancurses::Input::KeyOptions => Event::Refresh,\n+                pancurses::Input::KeyPrevious => Event::Refresh,\n+                pancurses::Input::KeyRedo => Event::Refresh,\n+                pancurses::Input::KeyReference => Event::Refresh,\n+                pancurses::Input::KeyRefresh => Event::Refresh,\n+                pancurses::Input::KeyReplace => Event::Refresh,\n+                pancurses::Input::KeyRestart => Event::Refresh,\n+                pancurses::Input::KeyResume => Event::Refresh,\n+                pancurses::Input::KeySave => Event::Refresh,\n+                pancurses::Input::KeySBeg => Event::Refresh,\n+                pancurses::Input::KeySCancel => Event::Refresh,\n+                pancurses::Input::KeySCommand => Event::Refresh,\n+                pancurses::Input::KeySCopy => Event::Refresh,\n+                pancurses::Input::KeySCreate => Event::Refresh,\n+                pancurses::Input::KeySDC => Event::Refresh,\n+                pancurses::Input::KeySDL => Event::Refresh,\n+                pancurses::Input::KeySelect => Event::Refresh,\n+                pancurses::Input::KeySEnd => Event::Refresh,\n+                pancurses::Input::KeySEOL => Event::Refresh,\n+                pancurses::Input::KeySExit => Event::Refresh,\n+                pancurses::Input::KeySFind => Event::Refresh,\n+                pancurses::Input::KeySHome => Event::Refresh,\n+                pancurses::Input::KeySIC => Event::Refresh,","path":"src/backend/curses/pan.rs","position":178,"original_position":178,"commit_id":"80e3e4f5364dd36c08a0930d3cc20a292adaac80","original_commit_id":"bd93f450df7503b870efdee085e741c720be7d0a","user":{"login":"gyscos","id":564903,"avatar_url":"https://avatars.githubusercontent.com/u/564903?v=3","gravatar_id":"","url":"https://api.github.com/users/gyscos","html_url":"https://github.com/gyscos","followers_url":"https://api.github.com/users/gyscos/followers","following_url":"https://api.github.com/users/gyscos/following{/other_user}","gists_url":"https://api.github.com/users/gyscos/gists{/gist_id}","starred_url":"https://api.github.com/users/gyscos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gyscos/subscriptions","organizations_url":"https://api.github.com/users/gyscos/orgs","repos_url":"https://api.github.com/users/gyscos/repos","events_url":"https://api.github.com/users/gyscos/events{/privacy}","received_events_url":"https://api.github.com/users/gyscos/received_events","type":"User","site_admin":false},"body":"I suppose `KeySIC` is `Shift-Ins`, but on my desktop it triggers \"paste\" instead.","created_at":"2016-10-10T20:02:13Z","updated_at":"2016-10-10T20:02:18Z","html_url":"https://github.com/gyscos/Cursive/pull/70#discussion_r82672698","pull_request_url":"https://api.github.com/repos/gyscos/Cursive/pulls/70","_links":{"self":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/comments/82672698"},"html":{"href":"https://github.com/gyscos/Cursive/pull/70#discussion_r82672698"},"pull_request":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/70"}}},"pull_request":{"url":"https://api.github.com/repos/gyscos/Cursive/pulls/70","id":88597814,"html_url":"https://github.com/gyscos/Cursive/pull/70","diff_url":"https://github.com/gyscos/Cursive/pull/70.diff","patch_url":"https://github.com/gyscos/Cursive/pull/70.patch","issue_url":"https://api.github.com/repos/gyscos/Cursive/issues/70","number":70,"state":"open","locked":false,"title":"Pancurses back-end","user":{"login":"nabijaczleweli","id":6709544,"avatar_url":"https://avatars.githubusercontent.com/u/6709544?v=3","gravatar_id":"","url":"https://api.github.com/users/nabijaczleweli","html_url":"https://github.com/nabijaczleweli","followers_url":"https://api.github.com/users/nabijaczleweli/followers","following_url":"https://api.github.com/users/nabijaczleweli/following{/other_user}","gists_url":"https://api.github.com/users/nabijaczleweli/gists{/gist_id}","starred_url":"https://api.github.com/users/nabijaczleweli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nabijaczleweli/subscriptions","organizations_url":"https://api.github.com/users/nabijaczleweli/orgs","repos_url":"https://api.github.com/users/nabijaczleweli/repos","events_url":"https://api.github.com/users/nabijaczleweli/events{/privacy}","received_events_url":"https://api.github.com/users/nabijaczleweli/received_events","type":"User","site_admin":false},"body":"To compile with `pancurses` run `cargo test --features=pancurses --no-default-features`\r\n\r\nCloses #69","created_at":"2016-10-09T22:50:43Z","updated_at":"2016-10-10T20:02:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c8a753ba1021bffeca0ea6917d4dfc9098d09a9e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/gyscos/Cursive/pulls/70/commits","review_comments_url":"https://api.github.com/repos/gyscos/Cursive/pulls/70/comments","review_comment_url":"https://api.github.com/repos/gyscos/Cursive/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gyscos/Cursive/issues/70/comments","statuses_url":"https://api.github.com/repos/gyscos/Cursive/statuses/80e3e4f5364dd36c08a0930d3cc20a292adaac80","head":{"label":"nabijaczleweli:master","ref":"master","sha":"80e3e4f5364dd36c08a0930d3cc20a292adaac80","user":{"login":"nabijaczleweli","id":6709544,"avatar_url":"https://avatars.githubusercontent.com/u/6709544?v=3","gravatar_id":"","url":"https://api.github.com/users/nabijaczleweli","html_url":"https://github.com/nabijaczleweli","followers_url":"https://api.github.com/users/nabijaczleweli/followers","following_url":"https://api.github.com/users/nabijaczleweli/following{/other_user}","gists_url":"https://api.github.com/users/nabijaczleweli/gists{/gist_id}","starred_url":"https://api.github.com/users/nabijaczleweli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nabijaczleweli/subscriptions","organizations_url":"https://api.github.com/users/nabijaczleweli/orgs","repos_url":"https://api.github.com/users/nabijaczleweli/repos","events_url":"https://api.github.com/users/nabijaczleweli/events{/privacy}","received_events_url":"https://api.github.com/users/nabijaczleweli/received_events","type":"User","site_admin":false},"repo":{"id":70388647,"name":"Cursive","full_name":"nabijaczleweli/Cursive","owner":{"login":"nabijaczleweli","id":6709544,"avatar_url":"https://avatars.githubusercontent.com/u/6709544?v=3","gravatar_id":"","url":"https://api.github.com/users/nabijaczleweli","html_url":"https://github.com/nabijaczleweli","followers_url":"https://api.github.com/users/nabijaczleweli/followers","following_url":"https://api.github.com/users/nabijaczleweli/following{/other_user}","gists_url":"https://api.github.com/users/nabijaczleweli/gists{/gist_id}","starred_url":"https://api.github.com/users/nabijaczleweli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nabijaczleweli/subscriptions","organizations_url":"https://api.github.com/users/nabijaczleweli/orgs","repos_url":"https://api.github.com/users/nabijaczleweli/repos","events_url":"https://api.github.com/users/nabijaczleweli/events{/privacy}","received_events_url":"https://api.github.com/users/nabijaczleweli/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nabijaczleweli/Cursive","description":"A Text User Interface library for rust","fork":true,"url":"https://api.github.com/repos/nabijaczleweli/Cursive","forks_url":"https://api.github.com/repos/nabijaczleweli/Cursive/forks","keys_url":"https://api.github.com/repos/nabijaczleweli/Cursive/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nabijaczleweli/Cursive/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nabijaczleweli/Cursive/teams","hooks_url":"https://api.github.com/repos/nabijaczleweli/Cursive/hooks","issue_events_url":"https://api.github.com/repos/nabijaczleweli/Cursive/issues/events{/number}","events_url":"https://api.github.com/repos/nabijaczleweli/Cursive/events","assignees_url":"https://api.github.com/repos/nabijaczleweli/Cursive/assignees{/user}","branches_url":"https://api.github.com/repos/nabijaczleweli/Cursive/branches{/branch}","tags_url":"https://api.github.com/repos/nabijaczleweli/Cursive/tags","blobs_url":"https://api.github.com/repos/nabijaczleweli/Cursive/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nabijaczleweli/Cursive/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nabijaczleweli/Cursive/git/refs{/sha}","trees_url":"https://api.github.com/repos/nabijaczleweli/Cursive/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nabijaczleweli/Cursive/statuses/{sha}","languages_url":"https://api.github.com/repos/nabijaczleweli/Cursive/languages","stargazers_url":"https://api.github.com/repos/nabijaczleweli/Cursive/stargazers","contributors_url":"https://api.github.com/repos/nabijaczleweli/Cursive/contributors","subscribers_url":"https://api.github.com/repos/nabijaczleweli/Cursive/subscribers","subscription_url":"https://api.github.com/repos/nabijaczleweli/Cursive/subscription","commits_url":"https://api.github.com/repos/nabijaczleweli/Cursive/commits{/sha}","git_commits_url":"https://api.github.com/repos/nabijaczleweli/Cursive/git/commits{/sha}","comments_url":"https://api.github.com/repos/nabijaczleweli/Cursive/comments{/number}","issue_comment_url":"https://api.github.com/repos/nabijaczleweli/Cursive/issues/comments{/number}","contents_url":"https://api.github.com/repos/nabijaczleweli/Cursive/contents/{+path}","compare_url":"https://api.github.com/repos/nabijaczleweli/Cursive/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nabijaczleweli/Cursive/merges","archive_url":"https://api.github.com/repos/nabijaczleweli/Cursive/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nabijaczleweli/Cursive/downloads","issues_url":"https://api.github.com/repos/nabijaczleweli/Cursive/issues{/number}","pulls_url":"https://api.github.com/repos/nabijaczleweli/Cursive/pulls{/number}","milestones_url":"https://api.github.com/repos/nabijaczleweli/Cursive/milestones{/number}","notifications_url":"https://api.github.com/repos/nabijaczleweli/Cursive/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nabijaczleweli/Cursive/labels{/name}","releases_url":"https://api.github.com/repos/nabijaczleweli/Cursive/releases{/id}","deployments_url":"https://api.github.com/repos/nabijaczleweli/Cursive/deployments","created_at":"2016-10-09T08:23:00Z","updated_at":"2016-10-09T08:23:01Z","pushed_at":"2016-10-10T20:02:11Z","git_url":"git://github.com/nabijaczleweli/Cursive.git","ssh_url":"git@github.com:nabijaczleweli/Cursive.git","clone_url":"https://github.com/nabijaczleweli/Cursive.git","svn_url":"https://github.com/nabijaczleweli/Cursive","homepage":"","size":3921,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"gyscos:master","ref":"master","sha":"9871e12734770a5227c97989f1de824c5713eeb9","user":{"login":"gyscos","id":564903,"avatar_url":"https://avatars.githubusercontent.com/u/564903?v=3","gravatar_id":"","url":"https://api.github.com/users/gyscos","html_url":"https://github.com/gyscos","followers_url":"https://api.github.com/users/gyscos/followers","following_url":"https://api.github.com/users/gyscos/following{/other_user}","gists_url":"https://api.github.com/users/gyscos/gists{/gist_id}","starred_url":"https://api.github.com/users/gyscos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gyscos/subscriptions","organizations_url":"https://api.github.com/users/gyscos/orgs","repos_url":"https://api.github.com/users/gyscos/repos","events_url":"https://api.github.com/users/gyscos/events{/privacy}","received_events_url":"https://api.github.com/users/gyscos/received_events","type":"User","site_admin":false},"repo":{"id":35341769,"name":"Cursive","full_name":"gyscos/Cursive","owner":{"login":"gyscos","id":564903,"avatar_url":"https://avatars.githubusercontent.com/u/564903?v=3","gravatar_id":"","url":"https://api.github.com/users/gyscos","html_url":"https://github.com/gyscos","followers_url":"https://api.github.com/users/gyscos/followers","following_url":"https://api.github.com/users/gyscos/following{/other_user}","gists_url":"https://api.github.com/users/gyscos/gists{/gist_id}","starred_url":"https://api.github.com/users/gyscos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gyscos/subscriptions","organizations_url":"https://api.github.com/users/gyscos/orgs","repos_url":"https://api.github.com/users/gyscos/repos","events_url":"https://api.github.com/users/gyscos/events{/privacy}","received_events_url":"https://api.github.com/users/gyscos/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gyscos/Cursive","description":"A Text User Interface library for rust","fork":false,"url":"https://api.github.com/repos/gyscos/Cursive","forks_url":"https://api.github.com/repos/gyscos/Cursive/forks","keys_url":"https://api.github.com/repos/gyscos/Cursive/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gyscos/Cursive/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gyscos/Cursive/teams","hooks_url":"https://api.github.com/repos/gyscos/Cursive/hooks","issue_events_url":"https://api.github.com/repos/gyscos/Cursive/issues/events{/number}","events_url":"https://api.github.com/repos/gyscos/Cursive/events","assignees_url":"https://api.github.com/repos/gyscos/Cursive/assignees{/user}","branches_url":"https://api.github.com/repos/gyscos/Cursive/branches{/branch}","tags_url":"https://api.github.com/repos/gyscos/Cursive/tags","blobs_url":"https://api.github.com/repos/gyscos/Cursive/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gyscos/Cursive/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gyscos/Cursive/git/refs{/sha}","trees_url":"https://api.github.com/repos/gyscos/Cursive/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gyscos/Cursive/statuses/{sha}","languages_url":"https://api.github.com/repos/gyscos/Cursive/languages","stargazers_url":"https://api.github.com/repos/gyscos/Cursive/stargazers","contributors_url":"https://api.github.com/repos/gyscos/Cursive/contributors","subscribers_url":"https://api.github.com/repos/gyscos/Cursive/subscribers","subscription_url":"https://api.github.com/repos/gyscos/Cursive/subscription","commits_url":"https://api.github.com/repos/gyscos/Cursive/commits{/sha}","git_commits_url":"https://api.github.com/repos/gyscos/Cursive/git/commits{/sha}","comments_url":"https://api.github.com/repos/gyscos/Cursive/comments{/number}","issue_comment_url":"https://api.github.com/repos/gyscos/Cursive/issues/comments{/number}","contents_url":"https://api.github.com/repos/gyscos/Cursive/contents/{+path}","compare_url":"https://api.github.com/repos/gyscos/Cursive/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gyscos/Cursive/merges","archive_url":"https://api.github.com/repos/gyscos/Cursive/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gyscos/Cursive/downloads","issues_url":"https://api.github.com/repos/gyscos/Cursive/issues{/number}","pulls_url":"https://api.github.com/repos/gyscos/Cursive/pulls{/number}","milestones_url":"https://api.github.com/repos/gyscos/Cursive/milestones{/number}","notifications_url":"https://api.github.com/repos/gyscos/Cursive/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gyscos/Cursive/labels{/name}","releases_url":"https://api.github.com/repos/gyscos/Cursive/releases{/id}","deployments_url":"https://api.github.com/repos/gyscos/Cursive/deployments","created_at":"2015-05-09T19:17:50Z","updated_at":"2016-10-10T07:33:21Z","pushed_at":"2016-10-10T20:02:11Z","git_url":"git://github.com/gyscos/Cursive.git","ssh_url":"git@github.com:gyscos/Cursive.git","clone_url":"https://github.com/gyscos/Cursive.git","svn_url":"https://github.com/gyscos/Cursive","homepage":"","size":3921,"stargazers_count":151,"watchers_count":151,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":19,"forks":5,"open_issues":19,"watchers":151,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/70"},"html":{"href":"https://github.com/gyscos/Cursive/pull/70"},"issue":{"href":"https://api.github.com/repos/gyscos/Cursive/issues/70"},"comments":{"href":"https://api.github.com/repos/gyscos/Cursive/issues/70/comments"},"review_comments":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/70/comments"},"review_comment":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gyscos/Cursive/pulls/70/commits"},"statuses":{"href":"https://api.github.com/repos/gyscos/Cursive/statuses/80e3e4f5364dd36c08a0930d3cc20a292adaac80"}}}}
{"actor":{"display_login":"gyscos"}}