Bump SSHD version to 2.8.0 and update JGit to stable-6.1 tip (d01376106)

This is a big update of JGit (but not quite catching up to Gerrit
master) in order to 1) ensure no JGit regressions and 2) include the
JGit change [1] which adapts to the SSHD 2.8.0 release and fixes the
issues listed below.

The highlights of SSHD update from Gerrit's perspective are:

SSHD-1163: Wrong server key signature algorithm chosen in DH group key exchange
SSHD-1197: A race condition in key exchange fixed.
SSHD-1216: Server-side implementation of the RFC 8332 server-sig-algs
extension: the server announces that it prefers the SHA-2 signatures
for RSA keys.

Additionally, SSHD 2.8.0 now supports (and prefers) the
chacha20-poly1305@openssh.com cipher (SSHD-1017), and supports the
curve25519 and curve448 KEX algorithms (SSHD-704).

Official change list at [2].

Also adapt Gerrit code base to recent JGit changes.

This update includes the following commits:
$ git log --oneline --no-merges 5efd32e91...d01376106
035e0e23f UploadPack: don't prematurely terminate timer in case of error
4bb469363 Do not create reflog for remote tracking branches during clone
66ace4b9a UploadPack: do not check reachability of visible SHA1s
f4cbf31ae Add missing package import javax.management to org.eclipse.jgit
db074a135 Prepare 5.13.2-SNAPSHOT builds
b34961a49 JGit v5.13.1.202206130422-r
e9a5430c2 AmazonS3: Add support for AWS API signature version 4
8984e1f66 HTTP Smart: set correct HTTP status on error
8f7ef245f Prepare 6.1.1-SNAPSHOT builds
e982de3fc JGit v6.1.0.202203080745-r
f26ab4ebe [checkout] Use .gitattributes from the commit to be checked out
72bba7bd5 Don't use final for method parameters
8a2c76941 [push] support the "matching" RefSpecs ":" and "+:"
90df7c123 [push] Call the pre-push hook later in the push process
72ae234e7 IndexDiff: use tree filter also for SubmoduleWalk
46d58b84c Run license check with option -Ddash.projectId=technology.jgit
c77284ab7 Exclude transitive dependencies of sshd-sftp
aed354a1e Update DEPENDENCIES for 6.1.0 release
996e651c1 Add dependency to dash-licenses
877c79dc6 Fix typos of some keys in LfsText
5ac27a55b Sort LfsText entries alphabetically
a229072fc Support for "lfs.url" from ".lfsconfig"
e2a484f33 Update Orbit to R20220302172233 for 2022-03
60d52c9cf Prepare 6.1.0-SNAPSHOT builds
4b9fb3161 JGit v6.1.0.202203021511-rc1
6f175ea6c Describe: add support for core.abbrev config option
9244c07d7 Add a typed config getter for integers confined to a range
9284ed5db Remove odd prefix of PersonIdent test class
67097f5de PersonIdent: Add ctors that accept Instant in addition to Date
889b82f0e Remove ignored potentiallyUnclosedCloseable check
c543b8ee1 Make precedence more explicit
9c27002c4 [pgm] Add describe --abbrev option
85d8b31cb Cap describe abbrev option
a2d5650b8 DescribeCommand: Add support for --abbrev=0
8845f2e91 Prepare 6.1.0-SNAPSHOT builds
261f46dc4 JGit v6.1.0.202202221755-m3
00bb7cc9a Remove SuppressWarnings since currently ignored
73831b34b Add comment to explain why try-with-resource is not used
a7386ffe3 DescribeCommand: Support configuring the hash abbreviation
69ef598bd Simplify implementation of WorkingTreeIterator
d73b7cdeb Update Orbit to S20220215213605
63c1c6e4d Transport: load all refs only if push refspecs have wildcards
855a73487 PushCommand: determine remote from git config if not given
504001228 PushCommand: consider push.default when no RefSpecs are given
c3fbd2cdf Prevent that an instance of PushCommand is reused
db2d379c9 Remove unused warning suppression
288376221 Support for git config push.default
0d2825cdc Update Orbit to S20220208191225
a054f3ce7 Support LFS Server URL without .git suffix
7e752364a [rebase] InteractiveHandler2: handle Gerrit Change-Ids
d0553759a [errorprone] Fix DefaultCharset warning in BareSuperprojectWriterTest
20bdcf9ea Introduce a constant for the length of an abbreviated hash string
f7707e402 Make sure to close Repository in tests
70e9ace02 Fix resource leak in CancellableDigestOutputStreamTest
d929e72d7 Fix "Empty block should be documented" warning
e84988f2a Replace deprecated org.eclipse.jgit.lib.RefDatabase.getRefs
035d24097 RebaseCommand: fix commit message in "fixup" case
92158af52 reftable: close old Db in FileRepository#convertToPackedRefs
a650ae8ad reftable: tweaks for Windows
58d203fc7 [test] Fix EolRepositoryTest for eol=native
8dcb86b60 Fix FS_Win32 if a non-directory is listed
0588dd0a9 [test] Fix ConfigTest for Windows
961d5e687 [test] Fix CommitTemplateConfigTest for Windows
fbe7f9c29 [test] RepoCommandTest: guard tests for executable files
dba66dbfc RepoCommand: Offer to set extra files in the destination repository
dee4240ce RepoCommand: Move bare/regular superproject writing to their own classes
1fd15e40c Merge conflict messages: prefix conflict lines with a hash
e297f503a RebaseCommand: better commit message rewording
513c7318d CommitCommand: commit message cleanup
318a25f0e Provide git config commit.cleanup
2b01ac338 [test] Fix closing of test repositories
8633ea4f0 [test] DirCacheCheckoutTest: fix test expectation for eol=native
4bb87a957 ObjectWalk: close ObjectReader on close() if needed
d4d30bc71 [test] Fix a Windows-only test in CheckoutCommandTest
f8eb53071 [test] Fix ApplyCommandTest for Windows
002e13f0f [test] Fix OpenSshConfigFileTest for Windows
8bca5245e BinaryHunkInputStream: accept CR-LF
0fb5f47d2 sshd: Add README.md for SSH agents
8e9a42b7c sshd: support the ConnectTimeout ssh config
f41929708 sshd: Skip unknown keys from the SSH agent
b73548bc4 sshd: support the AddKeysToAgent ssh config
68bd2c146 sshd: handle "IdentityAgent SSH_AUTH_SOCK" in ssh config
e0281c5ad sshd: Connector for the Win32-OpenSSH SSH agent
071084818 sshd: handle IdentitiesOnly with an SSH agent
4efc6a396 sshd: support IdentityAgent config
ad098b3b8 LFS: Fix error occurring during delete branch
1a86c1044 PackOutputStream: Extract cancellation and digest to superclass
75e7d0848 Bazel: Include bazel resource configuration file for RBE build
b536dbdb9 DFS block cache: report index load and evict stats
788f439c0 Fix warning: The value of the parameter otp is not used
969601c74 Bazel: Add RBE support
be732c16a Bazel: Switch to using toolchain resolution for java rules
c81294796 Bazel: Simplify java 11 toolchain definition
bf3298478 Bazel: Format build files with buildifier
9a16e9a20 Bazel: Remove JDK 15 toolchain definition
8227098d7 Bazel: Remove version check
132ba05c8 ExternalToolTest: Rename class name to usual name for test cases
f8a96e1a0 Bazel: Add missing java packages to error_prone package group
51b909d9e Adapt junit_tests invocation to removal of resource_jars attribute
56f45e36d Update orbit to I20220111151929
685cc5404 Update org.apache.maven.wagon:wagon-ssh to 3.5.1
32cc4c56a Update org.eclipse.jdt:ecj to 3.28.0
73c398a95 Update org.osgi:org.osgi.core to 6.0.0
4aca4e0a3 [errorprone] Fix implicit use of platform default charset
8e306e7a6 [bazel] Fix build of ExternalDiffToolTest
9a57ae470 Let org.eclipse.jgit.pgm use BooleanTriState
b33133497 [bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory
a268faf72 [errorprone] Fix InfiniteRecursion error in RecordingLogger
6fde4d3a6 [errorprone] Suppress Finally error in ObjectDownloadListener
8b00cb932 [errorprone] Fix implicit use of default charset in FileBasedConfigTest
2fed62528 [errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc
1e932c2e5 Complete update to servlet api 4.0.0
d30447e26 Switch to Apache MINA sshd 2.8.0
4c555f074 sshd: backport upstream fix for SSHD-1231
e4f6e0af4 Add myself to .mailmap
709087c58 [releng] bump japicmp base version and configure sshd bundles
14a59bdc7 Add config reader for user-defined difftools
4e915f956 PackBitmapIndexV1: support parallel loading of reverse index
fb684a382 Add o.e.j.ssh.apache.agent to maven central deployment scripts
30b79cd0e Prepare 6.0.1-SNAPSHOT builds
9492e84fe JGit v6.0.0.202111291000-r
26fb2b7f0 Don't block in GC#gc until garbage collection finished
cce547d6d FS: debug logging only if system config file cannot be found
a26618f86 Update .factorypath used by annotation processor for benchmarks
81482008c Use  maven-compiler-plugin's release tag instead of source and target
8d2650773 Fix MANIFEST.MF of org.eclipse.jgit to correctly export packages:
48f4d97a2 Add command line support for "git difftool"
0a3aaac33 Don't use deprecated Repository#getAllRefs in Repository
403338e11 Don't use deprecated Repository#getAllRefs in FileRepository
c20dd8206 RevListTest: fix warning that method parameter hides field 'git'
75c716f5d Implement RecordingLogger based on org.slf4j.Logger
c05d711bb Let ObjectDatabase implement AutoClosable
4453a6e04 Prepare 6.1.0-SNAPSHOT builds
e3707a6ce Prepare 6.0.0-SNAPSHOT builds
ad8d89b9c JGit v6.0.0.202111241155-rc1
fc60efff0 Add 4.22 target platform for 2021-12
009c043b0 Update Orbit to R20211122181901 for 2021-12
791d3b0eb AppServer: fix keystore used to setup test SSL context factory
515458543 [6.0 API cleanup] Public interface for PackLock
1e37438cb [6.0 API cleanup] StoredObjectRepresentationNotAvailableException
cde3ed9ec RepoCommand: Do not wrap GitApiExceptions in GitApiExceptions
ce6826f50 [6.0 API cleanup] CancelledException vs. CanceledException
a4542d06b Javadoc fixes
9446e6273 Better git system config finding
84a6ac3b6 HttpClientConnectionTest: organize imports
f91e47f5b Update Jetty to 10.0.6
dedb58604 Fix missing @since 6.0 tag
00f6fe72a Support commit.template config property
6807661d3 Prepare 6.0.0-SNAPSHOT builds
400b5acae JGit v6.0.0.202111161950-m3
49d243b13 DFS block cache: harden against race over ref locks.
ee28780bf Make BinaryBlobException stackless
78b7d9e4f Typo fix in o.e.j.ssh.{jsch,apache}/README.md
057f1d912 ssh: Handle "ProxyJump none" from SSH config file
180bc67e2 ssh: use a single SecureRandom instance for hashing hostnames
af0126e1d OpenSshConfigFile: line comments and quoted strings
c4b3ec72f OpenSshConfigFile: update token replacements
ffb5cac36 Add missing .gitignore in o.e.j.ssh.apache.agent
d4296d96b Upgrade plexus-compiler version to 2.9.0
e7838b9c0 [sshd agent] Introduce ConnectorDescriptor
b84738c36 Update version of last release defining the API baseline to 5.13.0
a74dfb090 Update Orbit to S20211108222137
5cbf70fd9 Update README
a92ff5369 Update jetty to 9.4.44.v20210927
3a7db8b78 Simplify SshdFtpChannel
c6d48ab2f [test] test OpenSshConfigFile directly, not via the JSch config
634302d2d sshd: add support for ssh-agent
68017a029 sshd: prepare for using an SSH agent
c04884fc9 [releng] bazel: Enable errorprone on o.e.j.ssh.apache
4184ff095 [releng] Make the bazel build use Java 11
f6ef2f620 [doc] Add README and package-info to the SSH bundles
83eddaf7f Binary and CR-LF detection: lone CRs -> binary
3444a3be8 Factor out parsing git-style size numbers to StringUtils
c2204bb68 Make the buffer size for text/binary detection configurable
99b06900b Prepare 6.0.0-SNAPSHOT builds
6fd7a25d9 JGit v6.0.0.202110270955-m2
b3a8a94a9 Fix checkout of files with mixed line endings on text=auto eol=crlf
fc6fe793c Don't rely on an implicit default character set
ff3c3d8ff Fix bad indentation in pom.xml
6640baf57 Minor code-clean-up in OpenSshConfigFile
4b4a95b1b Remove use of deprecated getAllRefs() in UploadPack
3b960ae72 DFS block cache: fix lock issue and support parallel index loading
f698fbf91 JSch: fix service publication for ServiceLoader
f8b0c00e6 Set JSch global config values only if not set already
7d4f3c22a DFS block cache: allow multiple passes for blocks before eviction
578b6a79a GarbageCollectCommand: add numberOfBitmaps to statistics
0cfb1f77b Prepare 6.0.0-SNAPSHOT builds
ffe678f08 JGit v6.0.0.202110060947-m1
4657e7a99 Rename a local variable
bdba9edd5 Remove redundant type arguments
3d86d3e81 Delete old target platforms and corresponding Orbit releases
39d4daefd Update tycho to 2.5.0 and target platform to jgit-4.17
e4550807a Update ecj to 3.27.0
1aa19c67e Replace XMLReaderFactory deprecated since Java 9
81771d862 IndexDiffWithSymlinkTest: handle InaccessibleObjectException
9683bc71b Fix split package in bundle org.eclipse.jgit.ssh.jsch
68a638deb KeyGrip: fix build error on java 15
05cd1fa5c Enable using JMH annotation processor on Java>=9
72b89b4b6 Update errorprone to 2.9.0 and enable using it on java 16
9ba3a521a [errorprone] fix ReturnValueIgnored in PushCertificateStore#next
f3eff2308 [errorprone] NameRevCommand: remove ignored call of #toString
1d280db14 Enable compiler option --release
f81a3fc91 Bump minimum required Java version to 11
211900aaf Update maven plugins
5334586d2 Removed unused API filters
9951dce84 RepoCommand: Move building the index for base repos to its own method
b6d4844b5 Enable CommitCommand to use a fluent style
c885cbd11 Prepare 6.0.0-SNAPSHOT builds

[1] https://git.eclipse.org/r/c/jgit/jgit/+/188371
[2] https://github.com/apache/mina-sshd/blob/master/docs/changes/2.8.0.md

Bug: Issue 12758
Bug: Issue 13930
Change-Id: I9d823f8eb5912112076c4330ab32d0b5dea053ce
Release-Notes: Update JGit to d01376106 which requires Java 11
7 files changed
tree: 9f81ef63f1017720dd665b7e7302a0fd84aea996
  1. .settings/
  2. .ts-out/
  3. antlr3/
  4. contrib/
  5. Documentation/
  6. e2e-tests/
  7. java/
  8. javatests/
  9. lib/
  10. modules/
  11. plugins/
  12. polygerrit-ui/
  13. prolog/
  14. prologtests/
  15. proto/
  16. resources/
  17. tools/
  18. webapp/
  19. .bazelignore
  20. .bazelproject
  21. .bazelrc
  22. .bazelversion
  23. .editorconfig
  24. .git-blame-ignore-revs
  25. .gitignore
  26. .gitmodules
  27. .gitreview
  28. .mailmap
  29. .pydevproject
  30. .zuul.yaml
  31. BUILD
  34. Jenkinsfile
  35. package.json
  36. README.md
  38. version.bzl
  40. yarn.lock

Gerrit Code Review

Gerrit is a code review and project management tool for Git based projects.

Build Status Maven Central


Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.

Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.


For information about how to install and use Gerrit, refer to the documentation.


Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.

Reporting bugs

Please report bugs on the issue tracker.


Gerrit is the work of hundreds of contributors. We appreciate your help!

Please read the contribution guidelines.

Note that we do not accept Pull Requests via the Github mirror.

Getting in contact

The Developer Mailing list is repo-discuss on Google Groups.


Gerrit is provided under the Apache License 2.0.


Install Bazel and run the following:

    git clone --recurse-submodules https://gerrit.googlesource.com/gerrit
    cd gerrit && bazel build release

Install binary packages (Deb/Rpm)

The instruction how to configure GerritForge/BinTray repositories is here

On Debian/Ubuntu run:

    apt-get update & apt-get install gerrit=<version>-<release>

NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.

On CentOS/RedHat run:

    yum clean all && yum install gerrit-<version>[-<release>]

On Fedora run:

    dnf clean all && dnf install gerrit-<version>[-<release>]

Use pre-built Gerrit images on Docker

Docker images of Gerrit are available on DockerHub

To run a CentOS 8 based Gerrit image:

    docker run -p 8080:8080 gerritcodereview/gerrit[:version]-centos8

To run a Ubuntu 20.04 based Gerrit image:

    docker run -p 8080:8080 gerritcodereview/gerrit[:version]-ubuntu20

NOTE: release is optional. Last released package of the version is installed if the release number is omitted.