Gerrit 2.12 Release

Gerrit 2.12 Release

Release Highlights

New change submission workflows: ‘Submit Whole Topic’ and ‘Submitted Together’.
Support for GPG Keys and signed pushes.

Important Notes

Schema Changes

This release contains schema changes. To upgrade:

  java -jar gerrit.war init -d site_path
  
‘value too long’ error in schema migration
As described in Issue 4323, a ’value too long for type character varying(255)’ error can occur in the
 patch_sets table when migrating to schema version 108.

This error may occur under some circumstances when running the schema migration from an earlier 
version of Gerrit.

On sites where this occurs, it can be fixed with a manual schema update according to the comments
 in the issue.

Manual schema upgrade when updating from 2.12 to 2.12.x
When upgrading a site that is already running version 2.12 to 2.12.x, the patch_sets table must be 
manually migrated using the gerrit gsql SSH command or the gqsl site program.

For the default H2 database, execute the command:

  alter table patch_sets modify push_certficate clob;
  
For MySQL, execute the command:

  alter table patch_sets modify push_certficate text;
  
For PostgreSQL, execute the command:

  alter table patch_sets alter column push_certficate type text;


For other database types, execute the appropriate equivalent command.

Note that the misspelled push_certficate is the actual name of the column.

When upgrading from a version earlier than 2.12, this manual step is not necessary and should be omitted.

Online Reindexing

To use online reindexing when upgrading to 2.12.x, the server must first be upgraded to 2.8 (or 2.9) and
 
then through 2.10 and 2.11 to 2.12.x. If reindexing will be done offline, you may ignore this warning and

 upgrade directly to 2.12.x.

Bouncy Castle Upgrade

When upgrading from version 2.8.4 or older with a site that uses Bouncy Castle Crypto, new versions 
of the libraries will be downloaded. The old libraries should be manually removed from site’s lib folder 
to prevent the startup failure described in issue 3084.

Solr Index Support

The Solr secondary index is no longer supported. With this release the only supported secondary
 index is Lucene.

ref-updated Event Format Change

The format of the ref-updated event has changed. Users of the Jenkins Gerrit Trigger plugin with 
jobs triggering on ref-updated should upgrade to at least version 2.15.1. If an upgrade of the plugin
is not possible, a workaround is to change the branch configuration to type Path with a pattern
like refs/*/master instead of Plain and master.

New Features

New Change Submission Workflows

New ‘Submit Whole Topic’ setting. When the change.submitWholeTopic setting is enabled, all changes
 belonging to the same topic will be submitted at the same time. This setting should be considered
  experimental,  and is disabled by default.
  
Submission of changes may include ancestors. If a change is submitted that has submittable ancestor
 changes, those changes will also be submitted.
 
The merge queue is removed. Changes that cannot be submitted due to missing dependencies will
 no longer enter the ‘Submitted, Merge Pending’ state.

GPG Keys and Signed Pushes

Signed push can be enabled by setting receive.enableSignedPush to true. When a client pushes with
 git push --signed, Gerrit ensures that the push certificate is valid and signed with a valid public key 
 stored in the refs/meta/gpg-keys branch of the All-Users repository. When signed push is enabled, 
 and gerrit.editGpgKeys is set to true, users may upload their public GPG key via the REST API or UI.
  If this setting is not enabled, GPG keys may only be added by administrators with direct access to 
  the All-Users repository. Administrators may also configure receive.certNonceSeed and 
  receive.certNonceSlop.

Secondary Index

Issue 3333: Support searching for changes by author and committer. Changes are indexed by the
 git author and committer of the latest patch set, and can be searched with the author: and 
 committer: operators. Changes are matched on either the exact whole email address, 
 or on parts of the name or email address.
Add from: search operator to match by owner of change or author of comments.
Add commentby: search operator to search by author of comments.
Change the topic: search operator to search by the exact topic name.
Add intopic: search operator to search by topics containing the search term.
Issue 3291: Add has:edit search operator to match changes that have edit revisions on them.
Allow configuration of maximum query size. index.maxTerms can be set to limit the number of leaf index terms.
Expose Lucene index writers for plugins. Plugins can now reconfigure various Lucene performance
 related parameters at runtime.
Make Lucene index writers auto-commit writers. Plugins can now temporarily turn on auto-committing
 in situations where it makes sense to enforce all changes to be written to disk ASAP.

UI

General
Edit and diff preferences can be modified from the user preferences screen. Previously it was only 
possible to edit these preferences from the actual diff and edit screens.
Add ‘Edits’ to the ‘My’ dashboard menu to list changes on which the user has an unpublished edit revision.
Support for URL aliases. Administrators may define URL aliases to map plugin screens into the Gerrit 
URL namespace. Plugins may use user-specific URL aliases to replace certain screens for certain users.

Project Screen
New tab to list the project’s tags, similar to the branch list.

Inline Editor
Store and load edit preferences in git. Edit preferences are stored and loaded to/from the All-Users repository.
Add ‘auto close brackets’ feature.
Add ‘match brackets’ feature.
Make the cursor blink rate customizable.
Add support for Emacs and Vim key maps.

Change Screen
Issue 3318: Highlight ‘Reply’ button if there are draft comments on any patch set. If any patch set of the change
 has a draft comment by the current user, the ‘Reply’ button is highlighted.

The icons depicting draft comments are removed from the revisions drop-down list.

Issue 1100: Publish all draft comments when replying to a change. All draft comments, including those on 
older patch sets, are published when replying to a change.
Show file size increase/decrease for binary files.
Show uploader if different from change owner.
Show push certificate status.
Show change subject as tooltip on related changes list. This helps to identify changes when the subject is truncated in the list.

Side-By-Side Diff
Issue 3293: Add syntax highlighting for Puppet.
Issue 3447: Add syntax highlighting for VHDL.

Group Screen
Issue 1479: Group audit log. The group screen now includes an ‘Audit Log’ panel showing member 
additions, removals, and the user who made the change.

API

Several new APIs are added.
Accounts
Suggest accounts.
Tags
List tags.
Get tag.

REST API

New REST API endpoints and new options on existing endpoints.

Accounts
Set Username: Set the username of an account.
Get Account Details: Get the details of an account. In addition to the AccountInfo fields returned 
by the existing Get Account endpoint, the new REST endpoint returns the registration date of the 
account and the timestamp of when contact information was filed for this account.

Changes
Set Review: Add an option to omit duplicate comments.
Download Content: Download the content of a file from a certain revision, in a safe format that poses
 no risk for inadvertent execution of untrusted code.
Get Submitted Together: Get the list of all changes that will be submitted at the same time as the change.
Issue 1100: Set Review: Add an option to publish draft comments on all revisions.

Config
Get Server Info: Return information about the Gerrit server configuration.
Confirm Email: Confirm that the user owns an email address.

Groups
List Groups: Add option to suggest groups, allowing group auto-completion to be used in a plugin’s UI.
Get Audit Log: Get the audit log of a Gerrit internal group, showing member additions, removals, and the user who made the change.

Projects
Run GC: Add aggressive option to specify whether or not to run an aggressive garbage collection.
List Tags: Support filtering by substring and regex, and pagination with --start and --end.

SSH

Add support for ZLib Compression. To enable compression use the sshd.enableCompression setting.
Add support for hmac-sha2-256 and hmac-sha2-512 as MACs.

Plugins

General
Gerrit client can now pass JavaScriptObjects to extension panels.
New UI extension point for header bar in change screen.
New UI extension point to password screen.
New UI extension points to project info screen.
New UI extension point for pop down buttons on change screen.
New UI extension point for buttons in header bar on change screen.
New UI extension point at bottom of the user preferences screen.
New UI extension point for the ‘Included In’ drop-down panel. By implementing the Included In interface,
 plugins may add entries to the ‘Included In’ dropdown menu on the change screen.
 
Plugins can extend Gerrit screens with GWT controls.
Plugins can add custom settings screens.

Referencing groups in project.config. Plugins can refer to groups so that when they are renamed, the project config will also be updated in this section.

API
Allow to use CurrentSchemaVersion.
Allow to use InternalChangeQuery.query().
Allow to use JdbcUtil.port().
Allow to use GWTORM Key classes.

Other

Issue 3401: Add option to disable registration of new email addresses.

Issue 2061: Add Support for git-upload-archive. This allows use the standard git archive command to
 create an archive of the content of a repository.

Add a background job to automatically abandon inactive changes. The changeCleanup configuration
can be set to periodically check for inactive changes and automatically abandon them.

Add support for the DB2 database.

Issue 3441: Add support for the Apache Derby database.

Download commands plugin: Use commit IDs for download commands when change refs are hidden. 
Git has a configuration option to hide refs from the initial advertisement (uploadpack.hideRefs).
This option can be used to hide the change refs from the client. As consequence this prevented
fetching changes by change ref from working. Setting download.checkForHiddenChangeRefs 
in the gerrit.config to true allows the download commands plugin to check for hidden change refs.

Add a new ‘Maintain Server’ global capability. Members of a group with the ‘Maintain Server’ capability
may view caches, tasks, and queues, and invoke the index REST API on changes.

Bugfixes

Upgrade jsch to 0.1.53 to fix CVE-2015-4000: Weak Diffie-Hellman vulnerability, AKA “Logjam”. 
The Logjam attack allows a man-in-the-middle attacker to downgrade vulnerable TLS connections
to 512-bit export-grade cryptography. This allows the attacker to read and modify any data passed
over the connection. On February 22, 2018, Github removed support for weak cryptographic standards.
As a result of this, replication to Github over SSH no longer works with diffie-hellman-group1-sha1
or diffie-hellman-group14-sha1 SSH keys.

Issue 3499: Fix syntax highlighting of raw string literals in go.

Issue 3643: Fix syntax highlighting of ES6 string templating using backticks.

Issue 3653: Correct timezone in sshd log after DST change. When encountering a DST switch, 
the timezone wasn’t updated until the server was reloaded.

Issue 3306: Allow admins to read, push and create on refs/users/default.

Issue 3212: Fix failure to run init when --site-path option is not explicitly given.

Make email validation case insensitive. While RFC 5321 section 2.3.11 allows for the local-part (the part left of the ‘@’) of an email address to be case sensitive, the domain portion is case insensitive according to RFC 1035 section 3.1, and in practice, even the local-part is typically case insensitive also.

commit-msg hook: Don’t add Change-Id line on temporary commits. Commits created with git commit --fixup or git commit --squash are not intended to be pushed to Gerrit, and don’t need a Change-Id line. This also prevents changes from being accidentally uploaded, at least for projects that have the ‘Require Change-Id’ configuration enabled.

Issue 3444: download-commands plugin: Fix clone with commit-msg hook when project name contains ‘/’.
Use full ref name in refName attribute of ref-updated events. The refUpdate attribute in ref-updated events did not include the full name of the ref in the refName attribute, i.e. master was used instead of refs/heads/master. Support for the new format is added in version 2.15.1 of the Jenkins Gerrit Trigger plugin. Users who are unable to upgrade the plugin may instead change the trigger’s branch configuration to type Path with a pattern like refs/*/master instead of Plain and master.

Issue 3714: Improve visibility of comments on dark themes.

Fix highlighting of search results and trailing whitespaces in intraline diff chunks.

Fix server error when listing annotated/signed tag that has no tagger info.

Don’t create new account when claimed OAuth identity is unknown. The Claimed Identity feature was enabled to support old Google OpenID accounts, that cannot be activated anymore. In some corner cases, when for example the URL is not from the production Gerrit site, for example on a staging instance, the OpenID identity may deviate from the original one. In case of mismatch, the lookup of the user for the claimed identity would fail, causing a new account to be created.

Suggest to upgrade installed plugins per default during site initialization to new Gerrit version. The default was ‘No’ which resulted in some sites not upgrading core plugins and running the wrong versions.

Issue 3698: Fix creation of the administrator user on databases with pre-allocated auto-increment column values. When using a database configuration where auto-increment column values are pre-allocated, it was possible that the ‘Administrators’ group was created with an ID other than 1. In this case, the created admin user was not added to the correct group, and did not have the correct admin permissions.

Issue 3018: Fix query for changes using a label with a group operator. The group operator was being ignored when searching for changes with labels because the search index does not contain group information.

Fix online reindexing of changes that don’t already exist in the index. Changes are now always reloaded from the database during online reindex.

Fix reading of plugin documentation. Under some circumstances it was possible to fail with an IO error.

Documentation Updates

Issue 412: Update documentation of commentlink.match regular expression to clarify that the expression
 is applied to the rendered HTML.

Remove warning about unstable change edit REST API endpoints. These endpoints should be considered
 stable since version 2.11.

Document that ldap.groupBase and ldap.accountBase are repeatable.

Dependency Updates

Upgrade Asciidoctor to 1.5.2
Upgrade AutoValue to 1.1
Upgrade Bouncy Castle to 1.52
Upgrade CodeMirror to 5.7
Upgrade gson to 2.3.1
Upgrade guava to 19.0-RC2
Upgrade gwtorm to 1.14-20-gec13fdc
Upgrade H2 to 1.3.176
Upgrade httpcomponents to 4.4.1
Upgrade Jetty to 9.2.13.v20150730
Upgrade JGit to 4.1.1.201511131810-r
Upgrade joda-time to 2.8
Upgrade JRuby to 1.7.18
Upgrade jsch to 0.1.53 (upgraded to 0.1.54 in 2.12.8)
Upgrade JUnit to 4.11
Upgrade Lucene to 5.3.0
Upgrade Prolog Cafe 1.4.1
Upgrade servlet API to 8.0.24
Upgrade Truth to version 0.27

Bugfix Releases

2.12.8
Upgrade jsch to 0.1.54 to fix CVE-2016-5725: Directory traversal vulnerability. Versions of jsch prior to 0.1.54 have a directory traversal vulnerability on Windows. When the mode is ChannelSftp.OVERWRITE, it allows remote SFTP servers to write to arbitrary files via a ..\ (dot dot backslash) in a response to a recursive GET command. For other fixes in jsch since 0.1.53, please refer to the jsch change log.
Issue 5759: Fix intopic: search with regular expression.
Fix database connection pool verification. A broken connection could be returned from the connection pool and this caused an internal server error when trying, for example, to read a change from the database.
Do not check visibility of parent when creating project. A project can be visible to a user but not necessarily its parent. To be consistent, a user with create-project permission should be able to create a project with a parent that exists even if the parent is not visible to the user.
Fix merging a merge commit that refers to commits not submitted as changes.
Update commit-msg hook to Add Change-Id line after Depends-On: footer.

2.12.7

Issue 4930 Allow submit of merge commit of a branch that is not a change. A regression introduced in 2.12.6 prevented a merge commit from being submitted if it merges a branch that is not associated to a change.
Avoid unnecessary group visibility checks in list-groups REST endpoint. The list-groups REST API call checked group visibility even for those groups which were filtered out. In a system with 10-20K of groups, this could cause 30-60 seconds delay when checking if the current user can see a group.
Download Commands plugin: Fix HTTP clone command inconsistency. When cloning a project using HTTP schema, the /a in the URL was added only when choosing to clone without the commit hook. Now the URL is the same in both cases.

2.12.6

Issue 4158: Notice merged commits even if they appear on a different branch. If a change was pushed to a topic branch, and then pushed to another branch for review, merging it did not result in it appearing in the repository.
Issue 4887: Fix submission of multiple changes by cherry-pick. When submitting multiple changes by cherry-pick, update the merge tip for each change such that each subsequent change is cherry-picked onto the updated tip of the target branch.
Issue 4647: Fix copying text in Internet Explorer.
Prevent double closing of repository when merging changes.

2.12.5

New preference to enable line wrapping in diff screen and inline editor.
Fix the diff and edit preference dialogs for smaller screens. On smaller screens the options at the bottom of the dialogs would get cut off, making it difficult to change them.
Issue 4521: Fix internal server error during validation of email addresses. When creating a new account or adding a new email address to an existing account, the email validation crashed.
Lucene stability improvements. Each Lucene index is now written using a dedicated background thread. Lucene threads may not be cancelled, to prevent interruptions while writing.
Don’t try to change username that is already set. Since Gerrit version 2.1.4 it is not allowed to change the username once it has been set, and attempting to do so results in an exception. If ldap.accountSshUserName is set in the gerrit.config using ${userPrincipalName.localPart} to initialize the username from the user’s email address, and then the email address is changed, the username gets resolved to something different and the account manager tried to change it. As a result, an exception was raised and the user could no longer log in. Instead of trying to change the username, a warning is logged.
Issue 4006: Prevent search limit parameter from exceeding maximum integer value.
Fix internal server error when generating task names.
Print proper names for query tasks in the output of the show-queue command.
Double-check change status when auto-abandoning changes. It was possible that changes could be updated in the time between the query results being returned and the change being abandoned.

2.12.4

Issue 4400: Fix AlreadyClosedException in Lucene index. If a Lucene indexing thread was interrupted by an SSH connection being closed, this would also close file handles being used to read the index. Lucene queries are now executed on background threads to isolate them from SSH threads. This may also reduce latency for user dashboards on a multi-core system as each query for the different sections can now run on separate threads and return results when ready.
Issue 4249: Fix ‘Duplicate stages not allowed’ error during indexing.
Issue 4238: Fix ‘not found’ error when browsing tree in gitweb. The refs/heads/ prefix was incorrectly being added to HEAD, causing a ‘404 Not Found’ error.
Allow to read repositories that do not end with .git.
Issue 4262: Fix GPG push certificate for first patch set of new changes. The GPG certificate was not being set for the first patch set of new changes.
Issue 4296: Fix internal error when a query does not contain any token.
Issue 4241: Fix ‘Cannot format velocity template’ error when sending notification emails.
Fix sshd.idleTimeout setting being ignored. The sshd.idleTimeout setting was not being correctly set on the SSHD backend, causing idle sessions to not time out.
Issue 4324: Set the correct uploader on new patch sets created via the inline editor.
Log a warning instead of failing when invalid commentlinks are configured.
Issue 4136: Fix support for HEAD requests in the REST API. Sending a HEAD request failed with ‘404 Not Found’.
Return proper error response when trying to confirm an email that is already used by another user.
Issue 4318 Fix ‘Rebase if Necessary’ merge strategy to prevent introducing a duplicate commit when submitting a merge commit.
Issue 4332: Allow local as a valid TLD for outgoing emails.
Bypass hostname verification when sendemail.sslVerify is disabled.
Issue 4398: Replication: Consider ref visibility when scheduling replication. It was possible for refs to be replicated to remotes despite not being visible to groups mentioned in the authGroup setting.
Issue 4036: Fix hanging query when using is:watched without authentication.

2.12.3

Fix SSL security issue in the SMTP email relay. The hostname of the SSL socket was not verified. This made the read from the socket insecure since without verifying the hostname it may be vulnerable to a man-in-the-middle attack.
Issue 3895: Fix failure to submit with ‘Rebase if Necessary’ after changes were reordered with interactive rebase.
Issue 4052: Fix failure to start server after upgrade from version 2.9.4.
Issue 3891: Fix query with label: operator and zero value.
Issue 4112: Fix failure to submit changes caused by empty user edit ref.
Issue 4087: Fix failure to submit change when a branch is created on the change ref.
Issue 4155: Fix tags REST API to correctly return all tags.
Issue 4154: Add support for .team and several more TLDs in email address validation. Update commons-validator to 1.5.1.
Issue 4163: Prevent removal of non-voting reviewers on submit of change.
Issue 2647: Fix usage of CTRL-C on change screen.
Issue 4236: Fix internal error when pushing an amended commit with the %edit option.
Issue 3426: Fix pushing changes with %base option or newChangeForAllNotInTarget option.
Show ‘Submitted Together’ tab for changes with same topic.
Improve submit button tooltip messages shown when change is not submittable.
Fix firing of the topic-changed hook.
Remove --dry-run option from the Reindex site program. The implementation of the option was removed, but the option was mistakenly added back to the command and did not actually work.
Print proper task names in the output of the show-queues command.
Replication plugin: Double check if a ref is missing locally before deleting from remote.
Show an error message when trying to add a non-existent group to an ACL.

2.12.2

Upgrade Apache commons-collections to version 3.2.2. Includes a fix for a remote code execution exploit.
Issue 3919: Explicitly set parent project to ‘All-Projects’ when a project is created without giving the parent.
Don’t add message twice on abandon or restore via ssh review command. When abandoning or reviewing a change via the ssh review command, and providing a message with the --message option, the message was added to the change twice.
Clear the input box after cancelling add reviewer action. When the action was cancelled, the content of the input box was still there when opening it again.
Fix internal server error when aborting ssh command.
Issue 3969: Fix internal server error when submitting a change with ‘Rebase If Necessary’ strategy.

2.12.1

General

Fix column type for signed push certificates. The column type VARCHAR(255) was too small, preventing some PGP push certificates from being stored.
Add the DRAFT_COMMENTS option to the list changes REST API endpoint and mark it as deprecated. It was removed in version 2.12 because it’s not needed any more by the UI, but this caused failures for clients that still use it. Now it is added back, although it does not do anything and is marked as deprecated.
Issue 3669: Fix schema migration when migrating to 2.12.x directly from a version earlier than 2.11.
Issue 3733: Correctly detect symlinked log directory on startup. If $site_path/logs was a symlink, the server would not start.
Issue 3871: Throw an explicit exception when failing to load a change from the database. If a change could not be loaded from the database, for example if it was manually removed from the changes table but references to it were remaining in other tables, a null change was returned which would then lead to an ‘Internal Server Error’ that was difficult to track down. Now an error is raised earlier which will help administrators to find the root cause.
Issue 3743: Use submitter identity as committer when using ‘Rebase if Necessary’ merge strategy. When submitting a change that required rebase, the committer was being set to ‘Gerrit Code Review’ instead of the name of the submitter.
Issue 3758: Fix serving of static resources when deployed in application container. When deployed in a container, for example Tomcat, it was not possible to load the UI because static content could not be loaded from the WAR file.
Issue 3790: Fix documentation link when deployed in application container. When deployed in a container, for example Tomcat, the ‘Documentation’ menu was missing.
Issue 3786: Fix SQL statement syntax in schema migration. An extra semicolon was preventing migration from 2.11.x to 2.12 when using an Oracle database.
Send email using email queue instead of the default queue. Some emails sent asynchronously were already being sent using that queue but some were not. This was confusing for a gerrit administrator because if there is a build up of send-email tasks in the queue, he would think that increasing sendemail.threadPoolSize would help but it did not because some of the email were sent using the default queue which is configurable using execution.defaultThreadPoolSize.
Fix XSRF token cookie to honor auth.cookieSecure setting.
Issue 3767: Fix replication of first patch set for new changes. When new changes were pushed from the command line, the first patch set did not get replicated to destinations.
Issue 3771: Remove index.defaultMaxClauseCount configuration option. When index.maxTerms was either not set (thus no limit) or set to a value higher than index.defaultMaxClauseCount it was possible that viewing the related changes tab could cause a ‘Too many clauses’ error for changes that have a lot of related changes. The index.defaultMaxClauseCount configuration option is removed, and the existing index.maxTerms is reused. The default value of index.maxTerms is reduced from ‘no limit’ to 1024.
Issue 3919: Explicitly set parent project to ‘All-Projects’ when a project is created without giving the parent.
Issue 3948: Fix submit of project parent updates on refs/meta/config. When submitting a change on refs/meta/config to update a project’s parent, the error ‘The change must be submitted by a Gerrit administrator’ was being displayed even when the submitter was an admin. The submit was successful when clicking ‘Submit’ a second time.
Issue 3811: Fix submittability of merge commits that resolve merge conflicts. If a series of changes contained a change that conflicted with the destination branch, but the conflict was solved by a merge commit at the tip of the series, the series was not submittable.
Issue 3883: Respect the core.commentchar setting from .gitconfig in commit-msg hook.

UI

Issue 3894: Fix display of ‘Related changes’ after change is rebased in web UI:
Issue 3071: Fix display of submodule differences in side-by-side view.
Issue 3718: Hide avatar images when no avatars are available. The UI was showing a transparent empty image with a border.
Issue 3731: Fix syntax higlighting of tcl files.
Issue 3863: Fix display of active row marker in tag list. Clicking on one of the rows would cause the tag name to disappear.
Issue 1207: Fix keyboard shortcuts for non-US keyboards on side-by-side diff screen. The forward/backward navigation keys [ and ] only worked on keyboards where these characters could be typed without using any modifier key (like CTRL, ALT, etc..). Note that the problem still exists on the unified diff screen.
Improve tooltip on ‘Submit’ button when ‘Submit whole topic’ is enabled and the topic can’t be submitted due to some changes not being ready.

Plugins

Issue 3821: Fix repeated reloading of plugins when running on OpenJDK 8. 
OpenJDK 8 uses nanotime precision for file modification time on systems that are POSIX 2008 compatible. 
This leads to precision incompatibility when comparing the plugin’s JAR file timestamp, resulting in the 
plugin being reloaded every minute.

Issue 3741: Fix handling of merge validation exceptions emitted by plugins. If a plugin raised an exception,
 it was reported to the user as ‘Change is new’, rather than ‘Missing dependency’.
 
Allow plugins to get the caller in merge validation requests. Plugins that implement the MergeValidationListener
 interface now get the caller (the user who initiated the merge) in the onPreMerge method. Existing plugins
  that implement this interface must be adapted to the new method signature.


Issue 3892: Allow plugins to suggest reviewers based on either change or project resources.

Documentation

Update documentation of commentlink to reflect changed search URL.
Add missing documentation of valid database.type values.

Upgrades

Upgrade JGit to 4.1.2.201602141800-r.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章