)]}'
{
  "commit": "7985115bd1301db867935b52a689ccfc32f13794",
  "tree": "021ec7ae22b4817ec2008b0cd2b2a9ed48d73e22",
  "parents": [
    "0e4eebcfd98d079c93c33510284cdfe976e27725"
  ],
  "author": {
    "name": "Florian Zschocke",
    "email": "florian.zschocke@devolo.de",
    "time": "Sat Dec 10 16:02:21 2016 +0100"
  },
  "committer": {
    "name": "Florian Zschocke",
    "email": "florian.zschocke@devolo.de",
    "time": "Sat Dec 10 16:17:21 2016 +0100"
  },
  "message": "Fix user mention regular expression and group replacement.\n\nThe regular expression used for user mentions used to work\nonly inside sentences. Also, since it tested for whitespace, the\nwhitespace would get replaced, too, which would join lines together.\n\nInstead the new regex uses boundary matchers to match against\nword boundaires. As these are not capturing only the actual user\nmention can be captured and is then replaced. Also, this way the\nregex can ignore punctuation like in \"@jim, look at this.\"\n\nSince Gibtlit now requires Java 7 we can use named capture groups.\nThis makes the use of a centrally defined regular expression much\nsafer. The (admittedly only) group to capture the user name is named\n\"user\" and can be referenced by this name. By using the name instead\nof a group number, the regex could be changed without the code using\nit breaking because the group number changed.\n\nA simple test is added for user mentions, which unfortunately\nhas to deal with the full markdown replacement, too.\n\nFixes #985\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "acfc2042250bce5989809d161ee68acc8f9896bc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gitblit/Constants.java",
      "new_id": "c71128359c368cf6dc5b718a6cb4154cc8688ac9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gitblit/Constants.java"
    },
    {
      "type": "modify",
      "old_id": "924400f5375e9825c54c238ddf87965481935f1b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gitblit/models/TicketModel.java",
      "new_id": "65e29dc06a18348cf9b9cbf9b7e056eaa7a6e85e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gitblit/models/TicketModel.java"
    },
    {
      "type": "modify",
      "old_id": "1d7e4f243e4fcbbcbb45c24a45ad528b17a6e7b1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gitblit/tickets/TicketNotifier.java",
      "new_id": "b913db2572a6182b7b063411e500dc1b27571f8f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gitblit/tickets/TicketNotifier.java"
    },
    {
      "type": "modify",
      "old_id": "794d54ab189aee99b30877a373322a146dcf1743",
      "old_mode": 33188,
      "old_path": "src/main/java/com/gitblit/utils/MarkdownUtils.java",
      "new_id": "8371b3c6440c868cda8392e1dd71b53daf8b1e9f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/gitblit/utils/MarkdownUtils.java"
    },
    {
      "type": "modify",
      "old_id": "e40f1057a42584f776417f8954593f7b29b236b8",
      "old_mode": 33188,
      "old_path": "src/test/java/com/gitblit/tests/MarkdownUtilsTest.java",
      "new_id": "bc7aad49a40d00b87325fa7e2a367ca9d8d50be3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/gitblit/tests/MarkdownUtilsTest.java"
    }
  ]
}
