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