Download: 3.3.11 | 3.3.10 | 3.3.9 | 3.3.8 | 3.3.7 | 3.3.6 | 3.3.5 | 3.3.4 | 3.3.3 | 3.3.2 | 3.3.1 | 3.3.0
Documentation: 3.3.11 | 3.3.10 | 3.3.9 | 3.3.8 | 3.3.7 | 3.3.6 | 3.3.5 | 3.3.4 | 3.3.3 | 3.3.2 | 3.3.1 | 3.3.0
Java 11 by default for Gerrit
New logs timestamp format
Attention Set
The java language level is now set to Java 11 by default for Gerrit.
Issue 13494; Generate a Java 11 Eclipse project by default
Update dev-{eclipse,intellij} development for Java 11.
This release contains schema changes. To upgrade:
java -jar gerrit.war init -d site_path
Upgrading to this schema version (184) renames the Non-Interactive Users
group to Service Users
.
Gerrit supports zero-downtime upgrade from Gerrit v3.2 when configured using a high-availability configuration, when the Git repositories are stored in a shared filesystem such as NFS or similar.
For upgrading with zero-downtime, you should enable the rolling upgrade migration in gerrit.config
on both Gerrit servers by setting the gerrit.experimentalRollingUpgrade
to true
.
During the zero-downtime upgrade, Gerrit end-users would not notice any outage or service disruption. They will be able to perform any read/write Gerrit operation on the GUI or using the Git protocol.
The zero-downtime upgrade consists of the following steps:
gerrit.experimentalRollingUpgrade
to true
in gerrit.config
on both Gerrit servers.gerrit.experimentalRollingUpgrade
from gerrit.config
on both Gerrit servers.NOTE: The schema version 184 is tolerated by the Gerrit v3.2 because the group-id of the Non-Interactive Users
remains the same, hence all existing ACLs are evaluated as expected also when the group is renamed to Service Users
. During steps 4, 5 and 6, the Gerrit server still running v3.2 will display Service Users
on the repositories ACLs screen.
Downgrade to any Gerrit v3.2.x release is possible, but requires the following manual steps:
refs/meta/version
) to 183
:git update-ref refs/meta/version $(echo -n 183|git hash-object --stdin)See git hash-object and git update-ref.
refs/meta/group-names
)The new format supports both ISO-8601 and RFC3339, which means that if you are parsing it as general ISO-8601 it should work as before. However you will be affected if you are parsing the timestamp with a static format.
Similar to the ChangeAttributeFactory, a ChangePluginDefinedInfoFactory allows plugins to provide additional data in change results. ChangePluginDefinedInfoFactory has the advantage that it allows plugins to know the full set of changes up front so that they can do bulk operations.
ChangeAttributeFactory will be removed in the next release.
receive.autogc
optionBy JGit's default, git-receive-pack
will run auto gc after receiving data from git-push and updating refs.
Init step is added to auto-disable receive.autogc
configuration option in $gerrit_site/etc/jgit.config
file.
By JGit's default, git wire protocol version 2 is disabled. Given, that git wire protocol version 2 on the server side is considered to be now very stable, activate it per default in init site program, so that gerrit sites benefit from improved fetch performance.
Issue 13621; CVE-2020-8919: Make PermissionBackend#ForRef
authoritative.
Fixes a misconception that leads to data being accessible through Gerrit APIs that should be locked down.
Gerrit had two components for determining if a Git ref is visible to a user: (Default)RefFilter
and PermissionBackend#ForRef
(e.g., RefControl
). The former was always capable of providing correct results for all refs. The latter only had logic to decide if a Git ref is visible according to the Gerrit READ
permissions. This includes all refs under refs/heads
as well as any other ref that isn't a database ref or a Git tag. This component was unaware of Git tags and notedb-related refs. Hence, when asked for a database reference such as refs/changes/xx/yyyyxx/meta
, the logic would allow access if the user has READ
permissions on any of the ref prefixes (such as the default “read refs/* Anonymous Users”).
That was problematic, because it bypassed documented behavior where a user should only have access to a change if he can see the destination ref. The same goes for other database references.
Issue 13514; CVE-2020-8920: Work around Gitiles bug on All-Users
visibility.
Gitiles has a special FilteredRepository
wrapper that allows carefully hiding refs based on the project's ACLs. There is however an optimization that skips the filtering in case a user has READ
permissions on every ACL pattern(s). When the target repository is All-Users
, the optimization turns into a security issue because it allows seeing all personal information associated with all accounts, i.e.:
This fix now blocks Gitiles or any other part of Gerrit to abuse this power when the target repository is All-Users
, where nobody can be authorized to skip the ACLs evaluation anyway.
Issue 12629; Verify hostname when sending emails via SMTP server with SMTPSClient
.
The SMTP server's certificate and hostname must be verified if encryption is enabled with SSL verification in the host settings (sendemail.smtpEncryption
and sendemail.sslVerify
).
SMTPSClient
from Apache Commons Net used for SSL processing. It has the following downside: if encryption is not required, SMTPSClient
is used in ‘explicit’ mode with the upgrade to TLS never called. Thus, the client is somewhat misused.
Allow to use init as a param in docker run
This allows to easily run the Gerrit image with the init
argument to explicitly re-run the initialization on an existing or new site.
CentOS docker image upgrade to v8.2.2004
For every change Gerrit maintains an “Attention Set” with users that are currently expected to act on the change. Both on the dashboard and on the change page, this is expressed by an arrow icon before the user name.
Enabled by default. The former assignee feature is therefore now disabled by default.
The reply dialog posts patchset level comments instead of change messages.
This is an experiment that is enabled by default. However, it can be disabled by adding ‘UiFeature__patchset_comments’ as disabled key in experiments section of gerrit.config. This is useful if your CI system parses back change messages (e.g. “/rerun”) and has not been updated yet to parse patchset level comments. The option to revert this behavior will be removed in Gerrit 3.4. Until then, administrators need to have migrated.
Issue 13670; Introduce cache.openFiles setting in gerrit.config.
Persistent caches might require the allocation of additional file descriptors depending on their configuration and backend engine. This new setting allows the gerrit.sh to be aware of that and increase the number of files accordingly before starting Gerrit.
E.g. when swapping the default H2 persistent cache implementation with the chronicle-map implementation the number of open files needs raising, since the latter is bound to open more file descriptors, mostly due to its usage of memory mapped files.
Reject REST requests with invalid enum values as bad request
Expose ‘Service User’ tag on the REST API
Add endpoints to allow enhancement on submit requirements
Add parameter for added reviewers on reply-reviewers endpoint
Add an alternate CreateChange
endpoint
Issue 13357; Add the work_in_progress option to the revert and revertSubmission endpoints
Issue 13082; Add Eclipse support for Gatling tests
New command: “Reset To”
Add a new command that allows to reset the current branch to the commit that was fetched. This is useful in cases when the user is working on a local branch and the existing commands are not appropriate:
“Checkout” will check out the FETCH_HEAD, i.e. moving off the current branch and leaving the local repository in ‘detached head’ state.
“Cherry-Pick” will commit the fetched change again, resulting in a ‘new’ commit (i.e. changed sha1) which will result in a new patch set if the user creates any commits on top of it and pushes for review.
Issue 10021; Avoid quoting on basic strings
Add method to push changes directly to given replica
This makes it possible to push changes directly to given replica instance without sending unnecessary requests to others.
The method is intended to be used by other plugins that extend the replication plugin.
Prevent persistent task listing interruptions on IOExceptions
Improved the logging by differentiating between failures that are severe versus potentially related to other node actions since in a multi-primary scenario with shared storage, it is common for operations on one node to “interfere” with task listing operations on another node without causing a malfunction. Specifically, improve the exception handling so that the logging in these latter cases have a likely explanation of the listing error, and do not consider these specific filesystem errors operational errors.
NOTE: The multi-primary replication is still experimental.
Issue 12769; Fix synopsis in replication start cmd documentation
--url
is usable with --all
or projects and on its own. Updated the usage to reflect this.
Issue 12769; Don't wait for pending events to process on startup
Previously, on large Gerrit installations with many projects and/or many replication destinations, the replication plugin could take very long periods of time to startup. This was particularly a problem if the pending (persisted) event count was large as they all were rescheduled before the plugin finished initializing. Change this behavior so that startup merely begins the process of scheduling the pending events, but does not wait for them to complete.
Issue 13480; Don't output directories during task walk
Add comment icon to CR column of the dashboard
Lock scroll for background when reply-dialog open
Fix use of registration dialog instead of overlay
A11y - Add meaningful label for Edit button on change page
Enable download dialog shortcut in diff page
Add title and shortcuts for some links and buttons
Fix titles for buttons
Add help icon to search bar with link to the doc
Fix first and last focusable elements in download and diff pref dialogs
Refine the UX on account chips
Add doc/bug icons to hovercard and change to help-outline icon
Re-use logic for opening up download dialog from ‘d’
Update hovercard text to say Your/their turn to take action
Offer an option to hide the file comment button
Update pg-plugin-dev document with polymer 3 examples
Fix broken link/icon to the master build status
Add link icon to messages in change log
A11y - Fix label and navigation for More Actions Button
Disable the ‘Send’ button when a comment is being edited
Fix the dangling comma after reviewer on dashboard
Fix Shift-A shortcut for hiding the left side of the diff
Issue 7458; Fix iron-dropdown positioning
Issue 13080; Fix the position of the hovercard
Issue 13175; Fix gr-hovercard-behavior under Firefox
Issue 13328; Redirect GWT links to project dashboard to Polygerit
Issue 13433; Unlock scroll if hovercard detached
Issue 13543; Fix navigate back to change page with ‘[’ on first diff.
Issue 13658; Convert comment counts to comment thread counts around the UI
config-reverseproxy.txt: Document X-Forwarded-For header
Document possibility to resume reviews with meetings
Document how to mitigate the issue of broken Eclipse project on MacOS
Clarify documentation about parent project access right
Document jgit options respected by gerrit gc; receive
Issue 13544; Ensure that GC#deleteOrphans
respects pack lock.
If pack or index files are guarded by a pack lock (.keep
file), deleteOrphans()
should not touch the respective files protected by the lock file. Otherwise it may interfere with PackInserter
concurrently inserting a new pack file and its index.
Issue 13694; Fix the git wire protocol v2 issue on JDK 15
ElasticContainer: Upgrade V6_8 to elasticsearch 6.8.13
ElasticContainer: Upgrade V7_8 to elasticsearch 7.8.1
Issue 12704; Simplify Init for Elasticsearch
Upgrade caffeine to 2.8.5
Upgrade jackson-core to 2.11.3
Upgrade metrics-core to 4.1.12.1
Upgrade soy to 2020-08-24
Issue 13474; Upgrade testcontainers to 1.15.0
Limit graceful shutdown to SSH sessions serving git requests
NoteDbMigrator: Improve log message when saving ref updates
Explicitly check READ permission when processing a git push
Introduce sshd.gracefulStopTimeout
Fix eclipse project generation
Update instructions for running on Docker
Fix links and file name in emails for patchset-level comments
Add JavaScript style guide
Issue 11637; Add a process to remove a core plugin
Issue 11774; Change filtering of messages in experimental ChangeLog
Issue 12707; Apply diff preferences immediately after clicking save
Issue 12934; Fix selection on diff with range comments
Issue 12994; Fix toggle on iOS
Issue 13014; Clean up disrespectful terms
Issue 13054; Restore keyboard shortcut for expand all diff context
Issue 13073; Fix highlight on multi-line range comments
Issue 13184; Respect log.textLogging and log.jsonLogging using --console-log
Issue 13266; Allow to use ‘Apply fix’ several times on the commit message
Issue 13349; When SSH is disabled, it should also be disabled on replica
Issue 13350; Decode group id before using it to add [cc-]reviewers
Issue 13376; Make sure that comment drafts are sorted to the end
Issue 13464; Use persistent cache provided by libModule for offline reindex
Issue 13754; Fix NPE with StoredCommentLinkInfoSerializer when enabled is null
Breaking changes
Issue 15941 Fix SSH queries to not show commit-message unless --commit-message is provided
This issue has existed for several years and should be considered breaking as users might expect commit message to be included by default in SSH query results.
Obtaining the commit message is a costly operation as the commit data has to be loaded. So, showing it even when --commit-message is not provided degrades the performance of SSH queries.
Performance Fixes
Change 338834 Avoid creating an IdentifiedUser multiple times in a SSH query
This improves performance of SSH queries.
Change 338574 Cache ProjectControl instances in SSH queries
A PerThreadCache is used to cache ProjectControl instances to improve SSH query performance.
Change 338474 Allow async receive-commits to have a thread-local cache
Improve caching when merging changes through git push
Change 338154 Lazy load change notes when submit by push
Improves performance of change submit via push
Bug Fixes
Change 337474 Use sane value for QueryProcessor's effective limit on “--no-limit”
Fix errors seen when --no-limit query option is used with ES index backend
Bug Fixes
Change 335705: Fix bazel build on Mac M1 (aarch64)
Change 334762: Use original javax.servlet-api instead of tomcat's copy
Change 334299: Reject invalid queries with status code 400 on POST /accounts/<account-identifier>/watched.projects
Issue 14109: Fix NPE with cherry pick REST-API onto an existing change in a different branch
Dependency Updates
Security Fixes
Change 333304: Ignore --no-limit
query changes option for anonymous users
Prevent the use of no-limit
option with query changes REST API. The option can result in excessive resources usage make Gerrit subject to DoS and DDoS by any remote endpoint without the need to have any Gerrit account or signing in.
Docker Images
Bug Fixes
Issue 14945: Account cache is not caching the access to the account data refs
Account cache in Gerrit v3.3 does not cache the access to the All-Users.git repository because of the refactoring of the cache key, which requires lookup of the All-Users.git refs. Gerrit allows now the refs in-memory caching using the cached-refs libModule.
Issue 14912: Fix lost watch notifications when attention-set-only is configured
Issue 15407: MultiBaseLocalDiskRepositoryManager cannot be overloaded by libModules
Allow the replacement of multi-base git repositories through libModules, which wasn't possible before. Allow to use multi-base git repositories with the multi-site plugin and the cached-refs libModule
Issue 15500: Fix java.util.IllegalFormatArgumentIndexException on Java 17 in MergeUtil#mergeWithConflicts
Issue 15590: Fix SLF4J binding to Reload4J
Use Reload4J-specific binding for SLF4J, fixing the broken MDC since the swap of Log4J with Reload4J done in Change 328081.
Change 330359: Fix gerrit ls-members --recursive
Fix a regression introduced with Change 134334 that caused it to ignore the --recursive flag.
Documentation Fixes
Change 331361: Fixup old references to Database in documentation
Change 331360: Remove leftover receive.changeUpdateThreads references
Change 290603: Fix gerrit ls-groups flag -g
in documentation
Other Fixes
Dependency Updates
Update SLF4J version to 1.7.36.
Replace Log4J with reload4j version 1.2.19.
Security Fixes
Issue 15481: Remove support for Elasticsearch versions vulnerable to CVE-2021-44228
Elasticsearch v7.16.2 includes the fix for the Log4J v2 vulnerability CVE-2021-44228.
Remove support in Gerrit for all other vulnerable Elasticsearch versions and keep compatibility with v7.16.2 only.
Change 325218: Show the bi-directional Unicode chars as red exclamation marks.
Bidirectional Unicode chars can be used to hack code base, as shown in Trojan Source web-site. Gerrit diff-view finds bidirectional unicode and shows them as red exclamation marks.
New Features
Reindexing performance improvements
Change 325417: Changes off-line reindex: schedule slices immediately
If a site has one huge repository and several small/medium sized repos, then slice creation for the large repo will effectively block other smaller repos from starting to reindex their changes. Schedule slices without waiting for any other slice creation, providing up to 25% performance improvement for large sites.
Bug Fixes
Replication Plugin Fixes
Issue 15315: Document in the replication plugin that remoteNameStyle might result in a names clashes
Issue 15318: Document in the replication plugin that remoteNameStyle is for non-Gerrit remote repos
Gitiles Plugin Fixes
Issue 15307: Fix Bazel build on MacOS
Change 273397: Load fonts directly from Gerrit instead of 3rd party domains
In environments without public Internet access or where tight control of loaded resources is necessary, loading fonts from 3rd party domains might be restricted. Use only the fonts included in the Gerrit war distribution and domain.
Breaking changes
Change 323855 Change 324115: ProjectCache#evict no longer triggers a reindex.
During offline project reindexing evict() was triggering a duplicate reindex on the project when we only wanted to evict the project cache entry. This same issue occurred with the HA plugin and could be/been present in other plugins.
If you have relied on a reindex being done on evict() you need to use evictAndReindex() instead. This behavior is now consistent with other evict() methods in Gerrit.
New features
Change 324095: Display cache statistics after reindex operation.
Help analyzing the cache utilization during reindex command and provide insight into sizing them for optimal performance.
Change 323786: Allow context-dependent group suggestions in gr-permission.
Reindexing performance improvements
Change 322935: Fix buggy Index-Interactive Executor.
Fix index.threads when set to a negative value which was not using a direct executor as mentioned in docs.
Change 323215 Change 322296: Disable auto flushing during offline Lucene indexing.
Change 322835: Use thread count specified on offline reindex command line.
Honor the “--threads” command line option when provided instead of batchThreads property from gerrit.config
.
Change 323396: Avoid lucene index deletes during offline reindexing.
Change 324115: Avoid double indexing work during project reindexing.
Bug Fixes
Issue 14963: Fix /access REST APIs returning incorrect rule when group is duplicated for same rule.
Issue 14097: Fix GC action not shown in project commands with Gerrit in multi-site configuration.
Issue 15293: Fix fetch of group suggestions for projects with a /
in their name.
Issue 15251: Ensure that user without edit permission can't change plugin configuration.
Change 313561: Handle null account-ids when sending e-mails.
Change 307602: Fix NPE while accessing draft refs.
Change 307482: EqualsLabelPredicate: fix bug that prevents matching owner votes.
Change 323255: Skip creating slices for projects with no changes during changes off-line reindexing so that empty slices are no longer included in the slice count.
New Features
Issue 14895: Support author:self and committer:self in change queries
It is possible to use self
for searching own changes (for both author and committer predicates).
Issue 14930: Include Command-Status
in the httpd_log
and the httpd_log.json
Indicates the overall result of the GIT command over HTTP.
Refer to the docs for more details.
Bug Fixes
Issue 9812 Issue 7338: Merge commit cannot be moved
If a merge was targetting branch A, but then it was decided to create a new branch for this merge named B, which starts from A - The merge is still valid for B, and the user has no way to move it without amending and creating a new change.
Issue 15024: Gerrit event json formatter produces inconsistent payload for different projects
AllProjectsName and AllUsersName were serialised as: {“name”:“All-Projects”} and {“name”:“All-Users”} while all other projects were serialised as a JSON string. The different JSON payloads were causing issues with the HA configuration using the high-availability plugin.
Issue 14968: PluginServletContext does not implement javax.servlet.ServletContext.getVirtualServerName()
Remove the noise on error_log of c.g.g.h.p.PluginServletContext does not implement j.s.ServletContext.getVirtualServerName(), when running Gerrit on Tomcat 8.5.69.
Security Fixes
Issue 14732: Commits/IncludedIn exposes branch names without respecting the ACLs on branches
When calling the REST endpoint for listing all branches that a commit SHA1 is part of, the commit is properly checked for visibility against the ACLs (it is a REST resource) but the branches are not checked.
The included-in may expose the list of non-visible branches to a user that has visibility of the SHA1.
Issue 7282: Hide repository name and description when user has no access
Gitiles did not respect Gerrit's permission and would show the repo name and description to any user who could guess the name. The repositories list as well as the content APIs were not affected.
New Features
Pop up accounts when typing within assignee or attention on the searchbar
Add attention operator for auto-complete on the searchbar
Bug Fixes
Issue 14726: Make “conflicts” cache reentrant for preventing deadlocks with concurrent cache loads of change conflicts computation.
Issue 14785: Limit returned changes for a triplet without Change-Id
Fix a bug where invoking the REST-API /changes/repobranch without mentioning the change-id resulted in the full scan of all changes on a repository/branch causing a high CPU overload and occupying the request threads for a long time.
Issue 14776: Prevent removing e-mail associated with OpenID external IDs
Gerrit prevents the user from removing the email address associated with their OpenId account.
Issue 14872: Disable setting cancelLeftPadding if avatars are not set in the config
Issue 13745 Issue 14173: Firefox: fix suggested reviewers pop up instantly and not disappearing when out of focus
Change 312602: Fix Mariadb status matching for AccountPatchReview
Mariadb connector uses SQLException.getSQLState() which returns the ANSI SQLSTATE value, not the MariaDB/mysql error code. Fix the removal of duplicate key detection when an already reviewed file opened up again returned 500 because of the incorrect handling of SQLSTATE value.
Change 312382: Fix deleting edits when change is merged
Fix the support of deleting a change edit after it has been merged or abandoned.
Change 313702: Remove contenteditable=“false” from within dragDropArea which caused issues with uploading
Plugins Fixes
Change 314364: codemirror-editor: stop propagation for all keys but exempt the save button
This fixes an issue where if using contenteditable (default on mobile) and you typed “/”, it would get intercepted within the app.
Dependency Updates
Update CodeMirror to 5.62.2.
Fix an issue on mobile where typing causes the keyboard line to go out of sync.
Breaking Changes
Bug Fixes
Issue 13955: Safari 14.1 for Mac OS BigSur 11.3.1: Multi-line code comment broken.
Issue 14495: SSH thread leak with authentication exception
A show-queue will show tasks in the Batch (or Interactive) queue hanging forever as a consequence of a Git/HTTP thread ended because of an error.
Issue 14577: Dedicated mergeable endpoint shouldn't be called if change.mergeabilityComputationBehavior is set to API_REF_UPDATED_AND_CHANGE_REINDEX
Issue 14600: Empty registered field on profile settings screen
Issue 14603: Attention-set operations count towards change.maxUpdates limit.
Issue 14613: Gerrit is killed before the gracefulStopTimeout
Avoids gerrit.sh killing the in-flight Git/HTTP just after 30 seconds regardless of the httpd.gracefulStopTimeout
configuration value.
Issue 14639: Searching repositories by name is case-sensitive
Restore the correct project search that was case-insensitive in 2.16.27, 3.1.3 and 3.3.2.
Issue 14645: Username to lowercase conversion fails with duplicates
Duplicated accounts names associated with the same account id was making the conversion to lowercase fail.
JGit Issue 573791: Stale file handle raised when loading a collection of notes with a NoteMap over NFS
Change 307602: Fix NPE while accessing draft refs
Change 307482: EqualsLabelPredicate: fix bug that prevents matching owner votes
Dependency Updates
Update JGit to 24d6d605388c82201092cf1699b51095299380a2.
Update highlightjs version to 10.7.2.
Bug Fixes
Issue 13721: Don't serve polygerrit assets for git requests
After migration to Polymer UI, PolyGerrit static resources are mounted at the root of the gerrit URL, and would collide with project namespaces, so that the project with these prefixes cannot be served with Git over HTTP protocol.
Fix EqualsLabelPredicate
to not fail when calling match() from a plugin
Calling match()
on the EqualsLabelPredicate
returned from ChangeQueryBuilder.parse()
in a plugin fails when in the context of an HTTP query.
Fix registration redirect on OpenID
Log when a new SSH connection is rejected due to exceeded limit
When the sshd.maxConnectionsPerUser
got exceeded for a user, new connections from that user were rejected but no log entry was reported.
Issue 14127: Fix binding of DELETE REST calls from plugins.
The processing of the DELETE request actually never reached the delete-project plugin due to bug in the RestApiServlet which wrongly delegated the request to a child collection in Gerrit core.
Issue 13140: OpenID: Remove support for Yahoo! OpenID provider.
Yahoo! discontinued support for OpenID provider: “OpenID2 will be EOLed on 6/30/20”
Issue 14246: Creation of internal account does not respect auth.userNameToLowerCase
.
The CreateAccount SSH command and REST API was able to create accounts with usernames that contained uppercase letters even if auth.userNameToLowerCase
was set to true.
Issue 14490: Missing LDAP metrics for authentication.
Expose the LDAP metrics in terms of latency and call rates so that any problem can be highlighted early on and potentially alerted to the Gerrit admin.
Issue 14497: Git/HTTP traffic overloads LDAP with duplicate authentication requests.
When authenticating incoming Git calls over HTTP the BasicAuth filter was called 3 times per call triggering multiple authentications against the backend.
Issue 14508: Allow GerritAccount Cookie authentication for Git/HTTP.
Allow to create a Gerrit session from the GerritAccount cookie set on the Git client, so that only the first HTTP call will actually authenticate and create a session whilst all the others would just reuse the existing cookie.
Issue 14553: Gerrit REST-API fails when using /a/ prefix and cookies
Recent fix to support GerritAccount Cookie authentication for Git/HTTP broke existing Python (or other) scripting when performing automation with Gerrit REST-API. That is due to the generation of the GerritAccount cookie in the HTTP response, which Python automatically manages to reuse in subsequent calls.
Issue 11142: ssh to gerrit with no args requires standard input to terminate.
JGit Issue 552173 Too many open files when fetching repos with lots of refs
JGit update fixes “Too many open files” errors.
Dependency Updates
New Features
Issue 12970: Support of patterns to filter input on Browse -> Repositories page (e.g.a/*/b
)
Issue 14004: Introduce gerrit.installBatchModule
in gerrit.config
to be used during Gerrit init step.
Issue 14091: Support the highlighting of LaTeX files with .tex extension.
Breaking Changes
Elasticsearch: Support for EOL versions 7.2 and 7.3 is discontinued. Both elasticsearch versions became EOL recently.
Issue 13931: Disallow editing the Change-Id during inline edits.
Bug Fixes
Issue 12443: Stop generating continuous “logging context is not empty” in error_log.
Issue 12847 Issue 12862: Fix NPE on trying to send email for user without email address.
Issue 13899: Shows reviewers column in the user's open changes dashboard.
Issue 14097: Allow enabling of Git GC button for non-local Git repository managers, such as multi-site repositories.
Issue 14117: Do not suggest service users as reviewers on changes.
Issue 14118: Quota management: enforce repository size on pack rather than on object.
Issue 14193: Ensure InternalUser can parse groups.
PolyGerrit Fixes
Issue 14035: Change --gr-formatted-text-prose-max-width from 80ch to 120ch.
Issue 14036: Fix multiline range commenting in Firefox.
Issue 14104: Decorate the number line element of a blank side, otherwise it won't be affected by the “hide-left” action to hide one side of the diff.
Issue 14127: Fix binding of DELETE REST calls from plugins which impacted the ability the delete projects using the delete-project plugin.
Issue 14257: Fix empty TopMenu drop down list.
Documentation updates
Align the recommended buildifier version to v4.0, the same used in the CI.
Development guidelines: mention that Optional in arguments is discouraged (use @Nullable instead) but may be used as return type.
New configuration setting suggest.skipServiceUsers
for preventing the suggestion of service users as reviewers.
New configuration setting gerrit.installBatchModule
for adding additional Guice modules to Gerrit init command.
Remove the now obsolete section about Java configuration for Strong Cryptography.
Dependency Updates
New Features
Add change query option allowing administrators to skip visibility filtering.
Add a new REST-API change query option “skip-visibility” to allow administrators to skip visibility filtering.
Security Fixes
Issue 13858 CVE-2021-22553: Fixed memory leak in Git-over-HTTP requests.
Unauthenticated users could exploit this problem in a Denial of Service attack, causing the server to go out-of-memory.
PolyGerrit Fixes
Issue 11811: Fix comments on partial text selection on Safari.
Issue 13870: Polygerrit: Remove license headers in minified gr-app.js.
Replication plugin fixes
Don‘t check read permission when authgroup isn’t set.
Do not check for read permission when authGroup is not set since the user is a RemoteSiteUser that is-an InternalUser having read access to everything. This fixes a regression introduced in v3.1.10 that prevented the All-Users.git repository to be fully replicated to Gerrit replicas.
Bug Fixes
Issue 13803: Limit number of ambiguous accounts in error message.
Don't list more than 3 ambiguous accounts in error message of UnresolvableAccountException in order to prevent flooding the log and displaying a lot of sensitive account data in an error dialog.
Issue 13936: Fix badly formatted error message shown in error dialog.
Issue 13884: Fix ‘is:submittable’ query on multiple submit records.
Dependency Updates
Update highlight.js to 10.5.0.
Update codemirror-minified to 5.59.1.
Update Jetty to 9.4.35.v20201120.
Downgrade soy-template to 2019-10-08.
Breaking changes
Elasticsearch: support for EOL version 6.8 is discontinued. This was the last supported minor version of Elasticsearch 6 in Gerrit. From this release, Gerrit no longer supports V6 but only the already supported versions 7.x of Elasticsearch.
Security Fixes
Issue 12629: Verify hostname when sending emails via SMTP server with SMTPSClient.
The SMTP server's certificate and hostname must be verified if encryption is enabled with SSL verification in the host settings (sendemail.smtpEncryption
and sendemail.sslVerify
).
PolyGerrit Fixes
Remove requesting DETAILED_LABELS for the dashboard.
Issue 13785 Add z-index to gr-main-header to avoid the box shadows being hidden behind the content.
Bug Fixes
Issue 13544 Ensure that GC#deleteOrphans respects pack lock:
If pack or index files are guarded by a pack lock (.keep file) deleteOrphans() should not touch the respective files protected by the lock file.
Issue 13775 Honor toogleWipState
permission for %ready
%wip
push options:
Issue 13781 Compact the REST-API output JSON unconditionally:
The output JSON was initially compacted only when the Accept header was set to application/json
: the compaction is now done unconditionally, unless the pp=1
query parameter is specified.
Issue 13786 ForRef#check should permit internal users to read all refs:
Make PermissionBackend#ForRef
authoritative change introduced a regression where gerrit internal users
(e.g. plugins) were not taken into consideration when checking READ permission. As consequence the All-Users.git
repository did not get any of the user's refs replicated to the slaves. After the upgrade it is required to trigger a forced replication of the All-Users.git
repository manually.
Avoid logging ssh exception for stream is already closed when length=0 if present in the stacktrace.
Adapt Bazel/RBE build to produce Java 11 language level.
Make UI experiments configurable from gerrit.config.
Allows users who upgrade Gerrit to make use of experimental features or temporarily revert to previous behavior in case the new behavior breaks them (e.g. turn off patch-set-level comments in 3.3 which breaks some CI workflows).
Issue 13800 Expose patch set level comment in stream event.
Documentation Updates
Clarify that ‘m’ push option sets patch set description.
Clarify that disk cache metrics require cache.enableDiskStatMetrics
.
Dependency Updates
Upgrade commons-io to 2.4.
Upgrade testcontainers to 1.15.1.