tree a97a3f12e62745b0a37705de3f5fb02c453ab1bd
parent b25c065781937856f5431514adf1740052d91d61
parent eb49c4034ce29a003665ea72286c9eda94dc948a
author Luca Milanesio <luca.milanesio@gmail.com> 1658955492 +0200
committer Luca Milanesio <luca.milanesio@gmail.com> 1658957853 +0200

Merge branch 'stable-3.3' into stable-3.2

* stable-3.3:
  Fix ApplyObjectIT.shouldApplyRefMetaObject test for apply object
  Introduce E2E apply object REST-API metrics
  Add missing @Override to parseRemotes
  Add more logging for the apply object REST-API
  Support ApplyObject of non-commit refs
  Fix 'illegal format conversion' compilation error
  Extract FetchApiClient interface
  Add user/password authentication for CGit client
  Manage removal of refs
  Use correct placeholders when logging in RevisionReader
  Honour the fetch ref-spec in replication.config
  Log the incoming git refs events for replication
  Fix pull-replication after the removal of Log4J from Gerrit
  Allow replication of refs that point to non-commit objects
  Fix the default logic in managing refs-filter
  Reuse Gerrit code for head update
  Add HEAD update REST API endpoint
  Add project initialisation during fetch REST Api call
  Add project delete REST API endpoint
  Allow project deletion on replicas
  Allow project creation only when CREATE_PROJECT capability is set
  Allow dynamic url creation in tests
  Handle HEAD update in replicas
  Trigger remote update HEAD
  Allow project deletion on primaries
  Add missing project creation support for replicas
  Add missing project creation support

Change-Id: If4e2540da850ba0cad821c0d074460674f8bc851
