{"action":"created","comment":{"url":"https://api.github.com/repos/JabRef/jabref/pulls/comments/64619673","id":64619673,"diff_hunk":"@@ -0,0 +1,210 @@\n+/*  Copyright (C) 2003-2015 JabRef contributors.\n+    This program is free software; you can redistribute it and/or modify\n+    it under the terms of the GNU General Public License as published by\n+    the Free Software Foundation; either version 2 of the License, or\n+    (at your option) any later version.\n+\n+    This program is distributed in the hope that it will be useful,\n+    but WITHOUT ANY WARRANTY; without even the implied warranty of\n+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+    GNU General Public License for more details.\n+\n+    You should have received a copy of the GNU General Public License along\n+    with this program; if not, write to the Free Software Foundation, Inc.,\n+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n+*/\n+package net.sf.jabref.gui.keyboard;\n+\n+import net.sf.jabref.Globals;\n+import net.sf.jabref.gui.FXAlert;\n+import net.sf.jabref.logic.l10n.Localization;\n+\n+import javafx.beans.property.SimpleStringProperty;\n+import javafx.collections.ObservableList;\n+import javafx.fxml.FXML;\n+import javafx.scene.control.Alert.AlertType;\n+import javafx.scene.control.Button;\n+import javafx.scene.control.ButtonBar;\n+import javafx.scene.control.ButtonBar.ButtonData;\n+import javafx.scene.control.ButtonType;\n+import javafx.scene.control.SelectionMode;\n+import javafx.scene.control.TreeItem;\n+import javafx.scene.control.TreeTableColumn;\n+import javafx.scene.control.TreeTableView;\n+import javafx.scene.input.KeyCode;\n+import javafx.scene.input.KeyEvent;\n+import javafx.stage.Stage;\n+\n+public class KeyBindingsDialogViewModel {\n+\n+    private KeyBindingRepository keyBindingRepository;\n+\n+    @FXML\n+    private TreeTableView<KeyBindingWrapper> keyBindingsTable;\n+\n+    @FXML\n+    private TreeTableColumn<KeyBindingWrapper, String> actionColumn;\n+\n+    @FXML\n+    private TreeTableColumn<KeyBindingWrapper, String> shortcutColumn;\n+\n+    @FXML\n+    private Button closeButton;\n+\n+    @FXML\n+    private Button resetButton;\n+\n+\n+    @FXML\n+    private void initialize() {\n+        keyBindingsTable.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);\n+        ButtonBar.setButtonData(resetButton, ButtonData.LEFT);\n+    }\n+\n+    public void initializeView() {\n+        registerKeyEvents();\n+        populateTable();\n+        bindColumnValues();\n+    }\n+\n+    /**\n+     * Read all keybindings from the keybinding repository and create table keybinding\n+     * models for them\n+     */\n+    private void populateTable() {\n+        TreeItem<KeyBindingWrapper> root = new TreeItem<>(new KeyBindingWrapper(null, \"\", KeyBindingCategory.FILE));\n+        for (KeyBindingCategory category : KeyBindingCategory.values()) {\n+            TreeItem<KeyBindingWrapper> categoryItem = new TreeItem<>(new KeyBindingWrapper(null, \"\", category));\n+            keyBindingRepository.getKeyBindings().forEach((keyBinding, bind) -> {\n+                if (keyBinding.getCategory() == category) {\n+                    KeyBindingWrapper keyBindWrapper = new KeyBindingWrapper(keyBinding, bind,\n+                            keyBinding.getCategory());\n+                    TreeItem<KeyBindingWrapper> keyBindTreeItem = new TreeItem<>(keyBindWrapper);\n+                    categoryItem.getChildren().add(keyBindTreeItem);\n+                }\n+            });\n+            categoryItem.setExpanded(true);\n+            root.getChildren().add(categoryItem);\n+        }\n+        root.setExpanded(true);\n+        keyBindingsTable.setRoot(root);\n+    }\n+\n+    private void bindColumnValues() {\n+        actionColumn\n+                .setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getValue().getName()));\n+        shortcutColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().bindProperty());\n+    }\n+\n+    private void registerKeyEvents() {\n+        keyBindingsTable.setOnKeyPressed(evt -> grabKey(evt));\n+    }\n+\n+    private Stage getDialogStage() {\n+        return (Stage) closeButton.getScene().getWindow();\n+    }\n+\n+    @FXML\n+    private void closeDialog() {\n+        Stage stage = getDialogStage();\n+        stage.close();\n+    }\n+\n+    @FXML\n+    private void saveKeyBindingsAndCloseDialog() {\n+        Globals.getKeyPrefs().setNewKeyBindings(keyBindingRepository.getKeyBindings());\n+\n+        // show success message\n+        FXAlert alert = new FXAlert(AlertType.INFORMATION, Localization.lang(\"Key bindings changed\"));\n+        alert.setHeaderText(null);\n+        alert.setContentText(Localization.lang(\"Your new key bindings have been stored.\") + '\\n'\n+                + Localization.lang(\"You must restart JabRef for the new key bindings to work properly.\"));\n+        alert.getButtonTypes().clear();\n+        alert.getButtonTypes().add(ButtonType.CLOSE);\n+        alert.showAndWait().ifPresent(response -> {\n+            if (response == ButtonType.CLOSE) {\n+                closeDialog();\n+            }\n+        });\n+    }\n+\n+    @FXML\n+    private void setDefaultBindings() {\n+        ObservableList<TreeItem<KeyBindingWrapper>> selectedKeyBindingWrapperItems = keyBindingsTable\n+                .getSelectionModel().getSelectedItems();\n+        if (selectedKeyBindingWrapperItems.isEmpty()) {\n+            FXAlert alert = new FXAlert(AlertType.INFORMATION, Localization.lang(\"Resetting all key bindings\"));\n+            alert.setHeaderText(null);\n+            alert.setContentText(Localization.lang(\"All key bindings will be reset to their defaults.\"));\n+            alert.getButtonTypes().clear();\n+            ButtonType resetButtonType = new ButtonType(\"Reset\", ButtonData.OK_DONE);\n+            alert.getDialogPane().getButtonTypes().addAll(resetButtonType, ButtonType.CANCEL);\n+            alert.showAndWait().ifPresent(response -> {\n+                if (response == resetButtonType) {\n+                    keyBindingRepository.resetToDefault();\n+                    populateTable();\n+                }\n+            });\n+        } else {\n+            selectedKeyBindingWrapperItems.forEach(keyBindWrapperItem -> {\n+                KeyBindingWrapper keyBindWrapper = keyBindWrapperItem.getValue();\n+                if (keyBindWrapper.getKeyBinding() != null) {\n+                    String key = keyBindWrapper.getKeyBinding().getKey();\n+                    keyBindingRepository.resetToDefault(key);\n+                    keyBindWrapperItem.getValue().setBind(keyBindingRepository.get(key));\n+                }\n+            });\n+        }\n+    }\n+\n+    private void grabKey(KeyEvent evt) {\n+        // first check if a valid entry is selected\n+        if (keyBindingsTable.getSelectionModel().getSelectedIndex() < 0) {\n+            return;\n+        }\n+        KeyBindingWrapper selectedEntry = keyBindingsTable.getSelectionModel().getSelectedItem().getValue();\n+        if ((selectedEntry == null) || (selectedEntry.getKeyBinding() == null)) {\n+            return;\n+        }\n+\n+        // validate the shortcut is no modifier key","path":"src/main/java/net/sf/jabref/gui/keyboard/KeyBindingsDialogViewModel.java","position":170,"original_position":170,"commit_id":"a559e058c065fe58cb5ced1380dda4f7ed889f51","original_commit_id":"a559e058c065fe58cb5ced1380dda4f7ed889f51","user":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"body":"Move the rest of this method to `selectedEntry.setNewBinding(event)`.","created_at":"2016-05-25T17:48:41Z","updated_at":"2016-05-25T17:48:41Z","html_url":"https://github.com/JabRef/jabref/pull/1390#discussion_r64619673","pull_request_url":"https://api.github.com/repos/JabRef/jabref/pulls/1390","_links":{"self":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/comments/64619673"},"html":{"href":"https://github.com/JabRef/jabref/pull/1390#discussion_r64619673"},"pull_request":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/1390"}}},"pull_request":{"url":"https://api.github.com/repos/JabRef/jabref/pulls/1390","id":69838735,"html_url":"https://github.com/JabRef/jabref/pull/1390","diff_url":"https://github.com/JabRef/jabref/pull/1390.diff","patch_url":"https://github.com/JabRef/jabref/pull/1390.patch","issue_url":"https://api.github.com/repos/JabRef/jabref/issues/1390","number":1390,"state":"open","locked":false,"title":"Ported the KeyBindings dialog to JavaFX","user":{"login":"boceckts","id":15340757,"avatar_url":"https://avatars.githubusercontent.com/u/15340757?v=3","gravatar_id":"","url":"https://api.github.com/users/boceckts","html_url":"https://github.com/boceckts","followers_url":"https://api.github.com/users/boceckts/followers","following_url":"https://api.github.com/users/boceckts/following{/other_user}","gists_url":"https://api.github.com/users/boceckts/gists{/gist_id}","starred_url":"https://api.github.com/users/boceckts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boceckts/subscriptions","organizations_url":"https://api.github.com/users/boceckts/orgs","repos_url":"https://api.github.com/users/boceckts/repos","events_url":"https://api.github.com/users/boceckts/events{/privacy}","received_events_url":"https://api.github.com/users/boceckts/received_events","type":"User","site_admin":false},"body":"The KeyBindings are now organized in categories referring to the JabRef menu titles.\r\nThe button graKey has been removed and once a entry is selected the table listens for valid key combinations. The FXAlert class has also been adjusted to listen to the closeDialog shortcut.\r\n\r\n- [X] Change in CHANGELOG.md described\r\n- [ ] Tests created for changes\r\n- [X] Screenshots added (for bigger UI changes)\r\n\r\n![keybindingsfx](https://cloud.githubusercontent.com/assets/15340757/15216595/0222b028-1858-11e6-8961-919f6c4f2cfb.PNG)\r\n![keybindingsfxdefault](https://cloud.githubusercontent.com/assets/15340757/15216594/021f868c-1858-11e6-8004-648124280b98.PNG)\r\n![keybindingssuccess](https://cloud.githubusercontent.com/assets/15340757/15216596/0222bbb8-1858-11e6-96d7-bb2d7a3d0f4a.PNG)\r\n","created_at":"2016-05-12T13:45:36Z","updated_at":"2016-05-25T17:48:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d5ebe3e5056d6eb1b8430eed97a59b201453712e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/JabRef/jabref/pulls/1390/commits","review_comments_url":"https://api.github.com/repos/JabRef/jabref/pulls/1390/comments","review_comment_url":"https://api.github.com/repos/JabRef/jabref/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JabRef/jabref/issues/1390/comments","statuses_url":"https://api.github.com/repos/JabRef/jabref/statuses/a559e058c065fe58cb5ced1380dda4f7ed889f51","head":{"label":"boceckts:KeyBindingsFX","ref":"KeyBindingsFX","sha":"a559e058c065fe58cb5ced1380dda4f7ed889f51","user":{"login":"boceckts","id":15340757,"avatar_url":"https://avatars.githubusercontent.com/u/15340757?v=3","gravatar_id":"","url":"https://api.github.com/users/boceckts","html_url":"https://github.com/boceckts","followers_url":"https://api.github.com/users/boceckts/followers","following_url":"https://api.github.com/users/boceckts/following{/other_user}","gists_url":"https://api.github.com/users/boceckts/gists{/gist_id}","starred_url":"https://api.github.com/users/boceckts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boceckts/subscriptions","organizations_url":"https://api.github.com/users/boceckts/orgs","repos_url":"https://api.github.com/users/boceckts/repos","events_url":"https://api.github.com/users/boceckts/events{/privacy}","received_events_url":"https://api.github.com/users/boceckts/received_events","type":"User","site_admin":false},"repo":{"id":45689595,"name":"jabref","full_name":"boceckts/jabref","owner":{"login":"boceckts","id":15340757,"avatar_url":"https://avatars.githubusercontent.com/u/15340757?v=3","gravatar_id":"","url":"https://api.github.com/users/boceckts","html_url":"https://github.com/boceckts","followers_url":"https://api.github.com/users/boceckts/followers","following_url":"https://api.github.com/users/boceckts/following{/other_user}","gists_url":"https://api.github.com/users/boceckts/gists{/gist_id}","starred_url":"https://api.github.com/users/boceckts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boceckts/subscriptions","organizations_url":"https://api.github.com/users/boceckts/orgs","repos_url":"https://api.github.com/users/boceckts/repos","events_url":"https://api.github.com/users/boceckts/events{/privacy}","received_events_url":"https://api.github.com/users/boceckts/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/boceckts/jabref","description":"Graphical Java application for managing bibtex (.bib) databases","fork":true,"url":"https://api.github.com/repos/boceckts/jabref","forks_url":"https://api.github.com/repos/boceckts/jabref/forks","keys_url":"https://api.github.com/repos/boceckts/jabref/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boceckts/jabref/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boceckts/jabref/teams","hooks_url":"https://api.github.com/repos/boceckts/jabref/hooks","issue_events_url":"https://api.github.com/repos/boceckts/jabref/issues/events{/number}","events_url":"https://api.github.com/repos/boceckts/jabref/events","assignees_url":"https://api.github.com/repos/boceckts/jabref/assignees{/user}","branches_url":"https://api.github.com/repos/boceckts/jabref/branches{/branch}","tags_url":"https://api.github.com/repos/boceckts/jabref/tags","blobs_url":"https://api.github.com/repos/boceckts/jabref/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boceckts/jabref/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boceckts/jabref/git/refs{/sha}","trees_url":"https://api.github.com/repos/boceckts/jabref/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boceckts/jabref/statuses/{sha}","languages_url":"https://api.github.com/repos/boceckts/jabref/languages","stargazers_url":"https://api.github.com/repos/boceckts/jabref/stargazers","contributors_url":"https://api.github.com/repos/boceckts/jabref/contributors","subscribers_url":"https://api.github.com/repos/boceckts/jabref/subscribers","subscription_url":"https://api.github.com/repos/boceckts/jabref/subscription","commits_url":"https://api.github.com/repos/boceckts/jabref/commits{/sha}","git_commits_url":"https://api.github.com/repos/boceckts/jabref/git/commits{/sha}","comments_url":"https://api.github.com/repos/boceckts/jabref/comments{/number}","issue_comment_url":"https://api.github.com/repos/boceckts/jabref/issues/comments{/number}","contents_url":"https://api.github.com/repos/boceckts/jabref/contents/{+path}","compare_url":"https://api.github.com/repos/boceckts/jabref/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boceckts/jabref/merges","archive_url":"https://api.github.com/repos/boceckts/jabref/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boceckts/jabref/downloads","issues_url":"https://api.github.com/repos/boceckts/jabref/issues{/number}","pulls_url":"https://api.github.com/repos/boceckts/jabref/pulls{/number}","milestones_url":"https://api.github.com/repos/boceckts/jabref/milestones{/number}","notifications_url":"https://api.github.com/repos/boceckts/jabref/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boceckts/jabref/labels{/name}","releases_url":"https://api.github.com/repos/boceckts/jabref/releases{/id}","deployments_url":"https://api.github.com/repos/boceckts/jabref/deployments","created_at":"2015-11-06T15:22:41Z","updated_at":"2016-02-25T13:22:47Z","pushed_at":"2016-05-25T15:00:26Z","git_url":"git://github.com/boceckts/jabref.git","ssh_url":"git@github.com:boceckts/jabref.git","clone_url":"https://github.com/boceckts/jabref.git","svn_url":"https://github.com/boceckts/jabref","homepage":"http://jabref.sourceforge.net/","size":80005,"stargazers_count":0,"watchers_count":0,"language":"Java","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":"JabRef:javafx","ref":"javafx","sha":"3fe26455674eee47e30fba410a7eedb2883e5734","user":{"login":"JabRef","id":3914421,"avatar_url":"https://avatars.githubusercontent.com/u/3914421?v=3","gravatar_id":"","url":"https://api.github.com/users/JabRef","html_url":"https://github.com/JabRef","followers_url":"https://api.github.com/users/JabRef/followers","following_url":"https://api.github.com/users/JabRef/following{/other_user}","gists_url":"https://api.github.com/users/JabRef/gists{/gist_id}","starred_url":"https://api.github.com/users/JabRef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JabRef/subscriptions","organizations_url":"https://api.github.com/users/JabRef/orgs","repos_url":"https://api.github.com/users/JabRef/repos","events_url":"https://api.github.com/users/JabRef/events{/privacy}","received_events_url":"https://api.github.com/users/JabRef/received_events","type":"Organization","site_admin":false},"repo":{"id":17634071,"name":"jabref","full_name":"JabRef/jabref","owner":{"login":"JabRef","id":3914421,"avatar_url":"https://avatars.githubusercontent.com/u/3914421?v=3","gravatar_id":"","url":"https://api.github.com/users/JabRef","html_url":"https://github.com/JabRef","followers_url":"https://api.github.com/users/JabRef/followers","following_url":"https://api.github.com/users/JabRef/following{/other_user}","gists_url":"https://api.github.com/users/JabRef/gists{/gist_id}","starred_url":"https://api.github.com/users/JabRef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JabRef/subscriptions","organizations_url":"https://api.github.com/users/JabRef/orgs","repos_url":"https://api.github.com/users/JabRef/repos","events_url":"https://api.github.com/users/JabRef/events{/privacy}","received_events_url":"https://api.github.com/users/JabRef/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JabRef/jabref","description":"Graphical Java application for managing bibtex (.bib) databases","fork":false,"url":"https://api.github.com/repos/JabRef/jabref","forks_url":"https://api.github.com/repos/JabRef/jabref/forks","keys_url":"https://api.github.com/repos/JabRef/jabref/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JabRef/jabref/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JabRef/jabref/teams","hooks_url":"https://api.github.com/repos/JabRef/jabref/hooks","issue_events_url":"https://api.github.com/repos/JabRef/jabref/issues/events{/number}","events_url":"https://api.github.com/repos/JabRef/jabref/events","assignees_url":"https://api.github.com/repos/JabRef/jabref/assignees{/user}","branches_url":"https://api.github.com/repos/JabRef/jabref/branches{/branch}","tags_url":"https://api.github.com/repos/JabRef/jabref/tags","blobs_url":"https://api.github.com/repos/JabRef/jabref/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JabRef/jabref/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JabRef/jabref/git/refs{/sha}","trees_url":"https://api.github.com/repos/JabRef/jabref/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JabRef/jabref/statuses/{sha}","languages_url":"https://api.github.com/repos/JabRef/jabref/languages","stargazers_url":"https://api.github.com/repos/JabRef/jabref/stargazers","contributors_url":"https://api.github.com/repos/JabRef/jabref/contributors","subscribers_url":"https://api.github.com/repos/JabRef/jabref/subscribers","subscription_url":"https://api.github.com/repos/JabRef/jabref/subscription","commits_url":"https://api.github.com/repos/JabRef/jabref/commits{/sha}","git_commits_url":"https://api.github.com/repos/JabRef/jabref/git/commits{/sha}","comments_url":"https://api.github.com/repos/JabRef/jabref/comments{/number}","issue_comment_url":"https://api.github.com/repos/JabRef/jabref/issues/comments{/number}","contents_url":"https://api.github.com/repos/JabRef/jabref/contents/{+path}","compare_url":"https://api.github.com/repos/JabRef/jabref/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JabRef/jabref/merges","archive_url":"https://api.github.com/repos/JabRef/jabref/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JabRef/jabref/downloads","issues_url":"https://api.github.com/repos/JabRef/jabref/issues{/number}","pulls_url":"https://api.github.com/repos/JabRef/jabref/pulls{/number}","milestones_url":"https://api.github.com/repos/JabRef/jabref/milestones{/number}","notifications_url":"https://api.github.com/repos/JabRef/jabref/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JabRef/jabref/labels{/name}","releases_url":"https://api.github.com/repos/JabRef/jabref/releases{/id}","deployments_url":"https://api.github.com/repos/JabRef/jabref/deployments","created_at":"2014-03-11T14:48:42Z","updated_at":"2016-05-25T04:41:56Z","pushed_at":"2016-05-25T15:00:27Z","git_url":"git://github.com/JabRef/jabref.git","ssh_url":"git@github.com:JabRef/jabref.git","clone_url":"https://github.com/JabRef/jabref.git","svn_url":"https://github.com/JabRef/jabref","homepage":"http://www.jabref.org/","size":85332,"stargazers_count":285,"watchers_count":285,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":236,"mirror_url":null,"open_issues_count":191,"forks":236,"open_issues":191,"watchers":285,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/1390"},"html":{"href":"https://github.com/JabRef/jabref/pull/1390"},"issue":{"href":"https://api.github.com/repos/JabRef/jabref/issues/1390"},"comments":{"href":"https://api.github.com/repos/JabRef/jabref/issues/1390/comments"},"review_comments":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/1390/comments"},"review_comment":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/1390/commits"},"statuses":{"href":"https://api.github.com/repos/JabRef/jabref/statuses/a559e058c065fe58cb5ced1380dda4f7ed889f51"}}}}
{"actor":{"display_login":"tobiasdiez"}}