Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1 | = Release notes for Gerrit 2.5.1 |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 2 | |
| 3 | Gerrit 2.5.1 is now available: |
| 4 | |
Shawn Pearce | 6d7ebc6 | 2015-06-12 16:34:42 -0700 | [diff] [blame] | 5 | link:https://www.gerritcodereview.com/download/gerrit-full-2.5.1.war[https://www.gerritcodereview.com/download/gerrit-full-2.5.1.war] |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 6 | |
| 7 | There are no schema changes from 2.5, or 2.5.1. |
| 8 | |
David Pursehouse | 1f1c7c7 | 2013-05-15 10:44:19 +0900 | [diff] [blame] | 9 | However, if upgrading from a version older than 2.5, follow the upgrade |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 10 | procedure in the 2.5 link:ReleaseNotes-2.5.html[Release Notes]. |
| 11 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 12 | == Security Fixes |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 13 | * Correctly identify Git-over-HTTP operations |
| 14 | + |
| 15 | Git operations over HTTP should be classified as using AccessPath.GIT |
| 16 | and not WEB_UI. This ensures RefControl will correctly test for Create, |
| 17 | Push or Delete access on a reference instead of Owner. |
| 18 | + |
| 19 | E.g. without this fix project owners are able to force push commits |
| 20 | via HTTP that are already in the history of the target branch, even |
| 21 | without having any Push access right assigned. |
| 22 | |
| 23 | * Make sure only Gerrit admins can change the parent of a project |
| 24 | + |
| 25 | Only Gerrit administrators should be able to change the parent of a |
| 26 | project because by changing the parent project access rights and BLOCK |
| 27 | rules which are configured on a parent project can be avoided. |
| 28 | + |
| 29 | The `set-project-parent` SSH command already verifies that the caller |
| 30 | is a Gerrit administrator, however project owners can change the parent |
| 31 | project by modifying the `project.config` file and pushing to the |
| 32 | `refs/meta/config` branch. |
| 33 | + |
| 34 | This fix ensures that changes to the `project.config` file that change |
| 35 | the parent project can only be pushed/submitted by Gerrit |
| 36 | administrators. |
| 37 | + |
Edwin Kempin | cc446ff | 2012-12-12 12:21:57 +0100 | [diff] [blame] | 38 | In addition it is now no longer possible to |
Edwin Kempin | 51e6242 | 2012-12-12 15:48:48 +0100 | [diff] [blame] | 39 | + |
| 40 | ** set a non-existing project as parent (as this would make the project |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 41 | be orphaned) |
Edwin Kempin | 51e6242 | 2012-12-12 15:48:48 +0100 | [diff] [blame] | 42 | ** set a parent project for the `All-Projects` root project (the root |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 43 | project by definition has no parent) |
| 44 | by pushing changes of the `project.config` file to `refs/meta/config`. |
| 45 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 46 | == Bug Fixes |
Edwin Kempin | dd5d96d | 2012-12-12 10:17:51 +0100 | [diff] [blame] | 47 | * Fix RequestCleanup bug with Git over HTTP |
| 48 | + |
| 49 | Decide if a continuation is going to be used early, before the filter |
| 50 | that will attempt to cleanup a RequestCleanup. If so don't allow |
| 51 | entering the RequestCleanup part of the system until the request is |
| 52 | actually going to be processed. |
| 53 | + |
| 54 | This fixes the IllegalStateException `Request has already been cleaned |
| 55 | up` that occurred when running on Jetty and pushing over HTTP for URLs |
| 56 | where the path starts with `/p/`. |
| 57 | |
| 58 | * Match all git fetch/clone/push commands to the command executor |
| 59 | + |
| 60 | Route not just `/p/` but any Git access to the same thread pool as the |
| 61 | SSH server is using, allowing all requests to compete fairly for |
| 62 | resources. |
| 63 | |
| 64 | * Fix auto closing of changes on direct push |
| 65 | + |
| 66 | When a commit is directly pushed into a repository (bypassing code |
| 67 | review) and this commit has a Change-Id in its commit message then the |
| 68 | corresponding change is automatically closed if it is open. |
| 69 | |
| 70 | * Allow assigning `Push` for `refs/meta/config` on `All-Projects` |
| 71 | + |
| 72 | The `refs/meta/config` branch of the `All-Projects project` should only |
| 73 | be modified by Gerrit administrators because being able to do |
| 74 | modifications on this branch means that the user could assign himself |
| 75 | administrator permissions. |
| 76 | + |
| 77 | In addition to being administrator we already require that the |
| 78 | administrator has the `Push` access right for `refs/meta/config` in |
| 79 | order to be able to modify it (just as with all other branches |
| 80 | administrators do not have edit permissions by default). |
| 81 | + |
| 82 | The problem was that assigning the `Push` access right for |
| 83 | `refs/meta/config` on the `All-Projects` project was not allowed. |
| 84 | + |
| 85 | Having the `Push` access right for `refs/meta/config` on the |
| 86 | `All-Projects` project without being administrator already has no |
| 87 | effect. |
| 88 | + |
| 89 | Prohibiting to assign the Push access right for `refs/meta/config` on |
| 90 | the `All-Project` project was anyway pointless since it was e.g. |
| 91 | possible to assign the `Push` access right on `refs/meta/*`. |
| 92 | |