Skip to content

Conversation

@coopernetes
Copy link
Contributor

@coopernetes coopernetes commented Aug 21, 2025

Closes #1302

This PR adds a new end-to-end test setup using docker compose. It includes a few basic tests such as git clone (fetch) and a single push test with an expected failure. By moving end-to-end testing to a container-based setup, we can start to remove the state coupling that exists between various test suites at the moment. For example, attempting to run a single test can result in unexpected failures because it relies on setups from another test that starts a real GitProxy server, inserts some data into the database, etc. By refactoring those tests into these new e2e style tests, we can remove those dependencies and start to break apart the existing tests to focus more on the system-under-test.

In addition to this setup, a few other changes were made to support it as well as to cleanup some miscellaneous issues. If preferred, these can be moved out into their own PRs..

  1. Remove some database initialization that was triggered for local files even though Mongo is in use. fixed via fix: defer reading of database configuration until needed to fix race #1316
  2. Added a setup for the Vite frontend build to be able to fetch its base URL from the server to allow for dynamic URLs to be used to host the app.
  3. Added a Dockerfile for the main application.

Related issues:

See below compose logs:

Details
finos-git-proxy-git-proxy-1  | Created runtime configuration with:
finos-git-proxy-git-proxy-1  |   API URL: auto-detect
finos-git-proxy-git-proxy-1  |   Allowed Origins: *
finos-git-proxy-git-proxy-1  |   Environment: test
finos-git-proxy-git-proxy-1  | Configuration sources are disabled
finos-git-proxy-git-proxy-1  | Configuration loaded successfully
finos-git-proxy-git-proxy-1  | Setting config file to: /app/test-e2e.proxy.config.json
finos-git-proxy-git-proxy-1  | validating config
finos-git-proxy-git-proxy-1  | Setting up the proxy and Service
finos-git-proxy-git-proxy-1  | No plugins configured
finos-git-proxy-git-proxy-1  | Found 0 plugin modules
finos-git-proxy-git-proxy-1  | Loading MongoDB database adaptor
finos-git-proxy-git-proxy-1  | creating user
finos-git-proxy-git-proxy-1  |         user=admin,
finos-git-proxy-git-proxy-1  |         gitAccount=none
finos-git-proxy-git-proxy-1  |         email=admin@place.com,
finos-git-proxy-git-proxy-1  |         admin=true
finos-git-proxy-git-proxy-1  |         oidcId=
finos-git-proxy-git-proxy-1  | creating new repo {"project":"coopernetes","name":"test-repo","url":"https://git-server:8443/coopernetes/test-repo.git","users":{"canPush":[],"canAuthorise":[]}}
finos-git-proxy-git-proxy-1  | creating new repo {"project":"finos","name":"git-proxy","url":"https://git-server:8443/finos/git-proxy.git","users":{"canPush":[],"canAuthorise":[]}}
finos-git-proxy-git-proxy-1  | created new repo {"project":"coopernetes","name":"test-repo","url":"https://git-server:8443/coopernetes/test-repo.git","users":{"canPush":[],"canAuthorise":[]},"_id":"694051e93b06dd42f20b9379"}
finos-git-proxy-git-proxy-1  | created new repo {"project":"finos","name":"git-proxy","url":"https://git-server:8443/finos/git-proxy.git","users":{"canPush":[],"canAuthorise":[]},"_id":"694051e93b06dd42f20b937a"}
finos-git-proxy-git-proxy-1  | Initializing proxy router for origins: '["git-server:8443"]'
finos-git-proxy-git-proxy-1  | 	setting up origin: 'git-server:8443'
finos-git-proxy-git-proxy-1  | 	setting up catch-all route (github.com) for backwards compatibility
finos-git-proxy-git-proxy-1  | proxy keys registered:  ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | HTTP Proxy Listening on 8000
finos-git-proxy-git-proxy-1  | creating user
finos-git-proxy-git-proxy-1  |         user=user,
finos-git-proxy-git-proxy-1  |         gitAccount=none
finos-git-proxy-git-proxy-1  |         email=user@place.com,
finos-git-proxy-git-proxy-1  |         admin=false
finos-git-proxy-git-proxy-1  |         oidcId=
finos-git-proxy-git-proxy-1  | Service Listening on 8081
finos-git-proxy-git-proxy-1  | going to auth with local
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | Inserting loaded plugins (0 push, 0 pull) into proxy chains
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | (node:8) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
finos-git-proxy-git-proxy-1  |     at getAllowUnauthorized (node:internal/options:54:13)
finos-git-proxy-git-proxy-1  |     at Object.connect (node:_tls_wrap:1746:29)
finos-git-proxy-git-proxy-1  |     at Agent.createConnection (node:https:173:22)
finos-git-proxy-git-proxy-1  |     at Agent.createSocket (node:_http_agent:330:26)
finos-git-proxy-git-proxy-1  |     at Agent.addRequest (node:_http_agent:278:10)
finos-git-proxy-git-proxy-1  |     at new ClientRequest (node:_http_client:338:16)
finos-git-proxy-git-proxy-1  |     at Object.request (node:https:381:10)
finos-git-proxy-git-proxy-1  |     at /app/node_modules/express-http-proxy/app/steps/sendProxyRequest.js:14:51
finos-git-proxy-git-proxy-1  |     at new Promise (<anonymous>)
finos-git-proxy-git-proxy-1  |     at defaultSendProxyRequest (/app/node_modules/express-http-proxy/app/steps/sendProxyRequest.js:12:10)
finos-git-proxy-git-proxy-1  | serivce.routes.auth.login: user logged in, username=admin profile={"username":"admin","displayName":"","email":"admin@place.com","title":"","gitAccount":"none","admin":true}
finos-git-proxy-git-proxy-1  | creating user
finos-git-proxy-git-proxy-1  |         user=testuser,
finos-git-proxy-git-proxy-1  |         gitAccount=testuser
finos-git-proxy-git-proxy-1  |         email=testuser@example.com,
finos-git-proxy-git-proxy-1  |         admin=false
finos-git-proxy-git-proxy-1  |         oidcId=
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | creating user
finos-git-proxy-git-proxy-1  |         user=approver,
finos-git-proxy-git-proxy-1  |         gitAccount=approver
finos-git-proxy-git-proxy-1  |         email=approver@example.com,
finos-git-proxy-git-proxy-1  |         admin=false
finos-git-proxy-git-proxy-1  |         oidcId=
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/finos/git-proxy.git for inbound URL path: /git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/finos/git-proxy.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/finos/git-proxy.git for inbound URL path: /git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/finos/git-proxy.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/finos/git-proxy.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/finos/git-proxy.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/finos/git-proxy.git for inbound URL path: /git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/finos/git-proxy.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/finos/git-proxy.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/finos/git-proxy.git for inbound URL path: /git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/finos/git-proxy.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/finos/git-proxy.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/nonexistent/repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/nonexistent/repo.git for inbound URL path: /git-server:8443/nonexistent/repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | Parse action trying HTTP repo URL: http://git-server:8443/nonexistent/repo.git for inbound URL path: /git-server:8443/nonexistent/repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | Parse action fallback calculated repo URL: https://github.com/git-server:8443/nonexistent/repo.git for inbound URL path: /git-server:8443/nonexistent/repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://github.com/git-server:8443/nonexistent/repo.git is not in the authorised whitelist, ending
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - Rejecting repo https://github.com/git-server:8443/nonexistent/repo.git not in the authorised whitelist
finos-git-proxy-git-proxy-1  | Action processed: Error
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/nonexistent/repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  |     Error:       Rejecting repo https://github.com/git-server:8443/nonexistent/repo.git not in the authorised whitelist
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  | refUpdates: [
finos-git-proxy-git-proxy-1  |   "86ccf4a6bb31ac2821341c478b60cdc1d256708b 5855c453b143a887dea0c183bfd33511fe0e3ddb refs/heads/main\u0000 report-status-v2 side-band-64k quiet object-format=sha1 agent=git/2.40.0"
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | getContents returned 4 entries:
finos-git-proxy-git-proxy-1  | [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 0,
finos-git-proxy-git-proxy-1  |     "type": 1,
finos-git-proxy-git-proxy-1  |     "typeName": "commit",
finos-git-proxy-git-proxy-1  |     "content": "tree e632268bba080bdcc4e4ff28572d4057bc50930c\nparent 86ccf4a6bb31ac2821341c478b60cdc1d256708b\nauthor Thomas Cooper <thomas.cooper@rbc.com> 1765822996 -0500\ncommitter Thomas Cooper <thomas.cooper@rbc.com> 1765822996 -0500\ngpgsig -----BEGIN PGP SIGNATURE-----\n \n iHUEABYKAB0WIQSi50XjQ0ZxgKG2iYlkdm4ErUngrAUCaUBSFAAKCRBkdm4ErUng\n rE0cAQCDiNZObSQuzLtljLflX/6dg6C8f33uDfLGwRp/8UjJOwEA+dDoYgdJWCS0\n NwZIRYy9UC5h6eVD6Zlg3MpzuMNu6wA=\n =dEPu\n -----END PGP SIGNATURE-----\n\nE2E test commit - 2025-12-15T18:23:16.302Z\n",
finos-git-proxy-git-proxy-1  |     "size": 506,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 1,
finos-git-proxy-git-proxy-1  |     "type": 2,
finos-git-proxy-git-proxy-1  |     "typeName": "tree",
finos-git-proxy-git-proxy-1  |     "content": "100644 README.md\u0000]�\u0000�۱γ��=�\u000e_\u0001\"�/Ϯ100644 e2e-test-change.txt\u0000O@P\u00034�`\t�/ͣ\u001a&�qz\u0011��100644 hello.txt\u0000�\u0013P4��l�\u0019�O}\u0006�g\u0005�\nf",
finos-git-proxy-git-proxy-1  |     "size": 121,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 2,
finos-git-proxy-git-proxy-1  |     "type": 3,
finos-git-proxy-git-proxy-1  |     "typeName": "blob",
finos-git-proxy-git-proxy-1  |     "content": "# Test Repository\n\nThis is a test repository for the git proxy, simulating coopernetes/test-repo.\n\n\n## E2E Test Update\nUpdated at: 2025-12-15T18:23:16.302Z\n",
finos-git-proxy-git-proxy-1  |     "size": 156,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 3,
finos-git-proxy-git-proxy-1  |     "type": 3,
finos-git-proxy-git-proxy-1  |     "typeName": "blob",
finos-git-proxy-git-proxy-1  |     "content": "E2E Test Change\nTimestamp: 2025-12-15T18:23:16.302Z\nTest ID: 1765822996302\n",
finos-git-proxy-git-proxy-1  |     "size": 75,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | Push Request received from user Thomas Cooper with email thomas.cooper@rbc.com
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | The following commit messages are legal: E2E test commit - 2025-12-15T18:23:16.302Z
finos-git-proxy-git-proxy-1  | The following commit author e-mails are legal: thomas.cooper@rbc.com
finos-git-proxy-git-proxy-1  | Getting users for query = {"email":"thomas.cooper@rbc.com"}
finos-git-proxy-git-proxy-1  | User thomas.cooper@rbc.com permission on Repo https://git-server:8443/coopernetes/test-repo.git : false
finos-git-proxy-git-proxy-1  | No user with email address thomas.cooper@rbc.com found
finos-git-proxy-git-proxy-1  | User not allowed to Push
finos-git-proxy-git-proxy-1  | checkUserPushPermission - User thomas.cooper@rbc.com is not allowed to push on repo https://git-server:8443/coopernetes/test-repo.git, ending
finos-git-proxy-git-proxy-1  | checkUserPushPermission - Your push has been blocked (thomas.cooper@rbc.com is not allowed to push on repo https://git-server:8443/coopernetes/test-repo.git)
finos-git-proxy-git-proxy-1  | Action processed: Error
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  |     Error:       Your push has been blocked (thomas.cooper@rbc.com is not allowed to push on repo https://git-server:8443/coopernetes/test-repo.git)
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  | refUpdates: [
finos-git-proxy-git-proxy-1  |   "86ccf4a6bb31ac2821341c478b60cdc1d256708b 1d6e878943c13b6b12ec428e8fdaef4e000dbc31 refs/heads/main\u0000 report-status-v2 side-band-64k quiet object-format=sha1 agent=git/2.40.0"
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | getContents returned 3 entries:
finos-git-proxy-git-proxy-1  | [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 0,
finos-git-proxy-git-proxy-1  |     "type": 1,
finos-git-proxy-git-proxy-1  |     "typeName": "commit",
finos-git-proxy-git-proxy-1  |     "content": "tree 7cd4af6a294c5c8500219d7bb15946c32e002c3c\nparent 86ccf4a6bb31ac2821341c478b60cdc1d256708b\nauthor testuser <testuser@example.com> 1765822998 -0500\ncommitter testuser <testuser@example.com> 1765822998 -0500\ngpgsig -----BEGIN PGP SIGNATURE-----\n \n iHUEABYKAB0WIQSi50XjQ0ZxgKG2iYlkdm4ErUngrAUCaUBSFgAKCRBkdm4ErUng\n rIblAP92R/Em7udoF1nH7vZUn8PCI6j6YbpuUGT4tEhpiySzVwD+IvSsOzbGPZTZ\n huWJnY/FD83Cpsv87/2Bg7tzhYwrcQo=\n =RP8e\n -----END PGP SIGNATURE-----\n\nAuthorized E2E test commit - 2025-12-15T18:23:17.895Z\n",
finos-git-proxy-git-proxy-1  |     "size": 505,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 1,
finos-git-proxy-git-proxy-1  |     "type": 2,
finos-git-proxy-git-proxy-1  |     "typeName": "tree",
finos-git-proxy-git-proxy-1  |     "content": "100644 README.md\u0000�`\"⼌I��qL\n�~t���c5100644 authorized-push-test.txt\u0000?ʹ��\u001b`\u00023��\u0006О�-��]�100644 hello.txt\u0000�\u0013P4��l�\u0019�O}\u0006�g\u0005�\nf",
finos-git-proxy-git-proxy-1  |     "size": 126,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 2,
finos-git-proxy-git-proxy-1  |     "type": 3,
finos-git-proxy-git-proxy-1  |     "typeName": "blob",
finos-git-proxy-git-proxy-1  |     "content": "Authorized Push Test\nUser: testuser\nTimestamp: 2025-12-15T18:23:17.895Z\n",
finos-git-proxy-git-proxy-1  |     "size": 72,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | Push Request received from user testuser with email testuser@example.com
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | The following commit messages are legal: Authorized E2E test commit - 2025-12-15T18:23:17.895Z
finos-git-proxy-git-proxy-1  | The following commit author e-mails are legal: testuser@example.com
finos-git-proxy-git-proxy-1  | Getting users for query = {"email":"testuser@example.com"}
finos-git-proxy-git-proxy-1  | User testuser@example.com permission on Repo https://git-server:8443/coopernetes/test-repo.git : true
finos-git-proxy-git-proxy-1  | checkUserPushPermission - User testuser@example.com is allowed to push on repo https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Creating folder ./.remote/86ccf4a6bb31ac2821341c478b60cdc1d256708b__1d6e878943c13b6b12ec428e8fdaef4e000dbc31
finos-git-proxy-git-proxy-1  | pullRemote - Executing git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Completed git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | writePack - new idx files: pack-656c8943ba8c1b1708ed916d2727e1d005166c43.idx
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total introduced commits: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total commits in the pack: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - All pack commits are referenced in the introduced range.
finos-git-proxy-git-proxy-1  | executeExternalPreReceiveHook - Pre-receive hook not found, skipping execution.
finos-git-proxy-git-proxy-1  | diff - Executing "git diff 86ccf4a6bb31ac2821341c478b60cdc1d256708b 1d6e878943c13b6b12ec428e8fdaef4e000dbc31" in ./.remote/86ccf4a6bb31ac2821341c478b60cdc1d256708b__1d6e878943c13b6b12ec428e8fdaef4e000dbc31/test-repo.git
finos-git-proxy-git-proxy-1  | diff - diff --git a/authorized-push-test.txt b/authorized-push-test.txt
finos-git-proxy-git-proxy-1  | new file mode 100644
finos-git-proxy-git-proxy-1  | index 0000000..3fcab99
finos-git-proxy-git-proxy-1  | --- /dev/null
finos-git-proxy-git-proxy-1  | +++ b/authorized-push-test.txt
finos-git-proxy-git-proxy-1  | @@ -0,0 +1,3 @@
finos-git-proxy-git-proxy-1  | +Authorized Push Test
finos-git-proxy-git-proxy-1  | +User: testuser
finos-git-proxy-git-proxy-1  | +Timestamp: 2025-12-15T18:23:17.895Z
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | gitleaks is disabled, skipping
finos-git-proxy-git-proxy-1  | Scanning diff: 86ccf4a6bb31ac2821341c478b60cdc1d256708b:1d6e878943c13b6b12ec428e8fdaef4e000dbc31
finos-git-proxy-git-proxy-1  | diff --git a/authorized-push-test.txt b/authorized-push-test.txt
finos-git-proxy-git-proxy-1  | new file mode 100644
finos-git-proxy-git-proxy-1  | index 0000000..3fcab99
finos-git-proxy-git-proxy-1  | --- /dev/null
finos-git-proxy-git-proxy-1  | +++ b/authorized-push-test.txt
finos-git-proxy-git-proxy-1  | @@ -0,0 +1,3 @@
finos-git-proxy-git-proxy-1  | +Authorized Push Test
finos-git-proxy-git-proxy-1  | +User: testuser
finos-git-proxy-git-proxy-1  | +Timestamp: 2025-12-15T18:23:17.895Z
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | CHANGE [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     content: '@@ -0,0 +1,3 @@',
finos-git-proxy-git-proxy-1  |     changes: [ [Object], [Object], [Object] ],
finos-git-proxy-git-proxy-1  |     oldStart: 0,
finos-git-proxy-git-proxy-1  |     oldLines: 0,
finos-git-proxy-git-proxy-1  |     newStart: 1,
finos-git-proxy-git-proxy-1  |     newLines: 3
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | CHANGE { type: 'add', add: true, ln: 1, content: '+Authorized Push Test' }
finos-git-proxy-git-proxy-1  | CHANGE { type: 'add', add: true, ln: 2, content: '+User: testuser' }
finos-git-proxy-git-proxy-1  | CHANGE {
finos-git-proxy-git-proxy-1  |   type: 'add',
finos-git-proxy-git-proxy-1  |   add: true,
finos-git-proxy-git-proxy-1  |   ln: 3,
finos-git-proxy-git-proxy-1  |   content: '+Timestamp: 2025-12-15T18:23:17.895Z'
finos-git-proxy-git-proxy-1  | }
finos-git-proxy-git-proxy-1  | Action processed: Blocked
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  |     Blocked:       
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | �[32mGitProxy has received your push ✅�[0m
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 🔗 Shareable Link
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | �[34mhttp://localhost:8081/dashboard/push/86ccf4a6bb31ac2821341c478b60cdc1d256708b__1d6e878943c13b6b12ec428e8fdaef4e000dbc31�[0m
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | .remote is deleted!
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-upload-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-upload-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  | refUpdates: [
finos-git-proxy-git-proxy-1  |   "86ccf4a6bb31ac2821341c478b60cdc1d256708b e205aea1b14dfa48723183bd3def241a3297abf7 refs/heads/main\u0000 report-status-v2 side-band-64k quiet object-format=sha1 agent=git/2.40.0"
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | getContents returned 3 entries:
finos-git-proxy-git-proxy-1  | [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 0,
finos-git-proxy-git-proxy-1  |     "type": 1,
finos-git-proxy-git-proxy-1  |     "typeName": "commit",
finos-git-proxy-git-proxy-1  |     "content": "tree eb158154cfd92646ab6a9fd5e9c8d005f9941eec\nparent 86ccf4a6bb31ac2821341c478b60cdc1d256708b\nauthor testuser <testuser@example.com> 1765823001 -0500\ncommitter testuser <testuser@example.com> 1765823001 -0500\ngpgsig -----BEGIN PGP SIGNATURE-----\n \n iHUEABYKAB0WIQSi50XjQ0ZxgKG2iYlkdm4ErUngrAUCaUBSGQAKCRBkdm4ErUng\n rED9AP9BY8olR8z5bV0sQBHi8gltGh5FCP4vq/5vexqVxjQUeQEAsjJs/iE5Q5jg\n AjPDCoVUj4zuhOXYyF4W0kZU0rl41gk=\n =otg7\n -----END PGP SIGNATURE-----\n\nApproved workflow test - 2025-12-15T18:23:21.035Z\n",
finos-git-proxy-git-proxy-1  |     "size": 501,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 1,
finos-git-proxy-git-proxy-1  |     "type": 2,
finos-git-proxy-git-proxy-1  |     "typeName": "tree",
finos-git-proxy-git-proxy-1  |     "content": "100644 README.md\u0000�`\"⼌I��qL\n�~t���c5100644 approved-workflow-test.txt\u0000D�\u0011\u0002�����/�C׊�<n��z100644 hello.txt\u0000�\u0013P4��l�\u0019�O}\u0006�g\u0005�\nf",
finos-git-proxy-git-proxy-1  |     "size": 128,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 2,
finos-git-proxy-git-proxy-1  |     "type": 3,
finos-git-proxy-git-proxy-1  |     "typeName": "blob",
finos-git-proxy-git-proxy-1  |     "content": "Approved Workflow Test\nUser: testuser\nTimestamp: 2025-12-15T18:23:21.035Z\n",
finos-git-proxy-git-proxy-1  |     "size": 74,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | Push Request received from user testuser with email testuser@example.com
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | The following commit messages are legal: Approved workflow test - 2025-12-15T18:23:21.035Z
finos-git-proxy-git-proxy-1  | The following commit author e-mails are legal: testuser@example.com
finos-git-proxy-git-proxy-1  | Getting users for query = {"email":"testuser@example.com"}
finos-git-proxy-git-proxy-1  | User testuser@example.com permission on Repo https://git-server:8443/coopernetes/test-repo.git : true
finos-git-proxy-git-proxy-1  | checkUserPushPermission - User testuser@example.com is allowed to push on repo https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Creating folder ./.remote/86ccf4a6bb31ac2821341c478b60cdc1d256708b__e205aea1b14dfa48723183bd3def241a3297abf7
finos-git-proxy-git-proxy-1  | pullRemote - Executing git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Completed git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | writePack - new idx files: pack-b0b703ab149b1ab70ff26233b9a3f4ff6d75feea.idx
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total introduced commits: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total commits in the pack: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - All pack commits are referenced in the introduced range.
finos-git-proxy-git-proxy-1  | executeExternalPreReceiveHook - Pre-receive hook not found, skipping execution.
finos-git-proxy-git-proxy-1  | diff - Executing "git diff 86ccf4a6bb31ac2821341c478b60cdc1d256708b e205aea1b14dfa48723183bd3def241a3297abf7" in ./.remote/86ccf4a6bb31ac2821341c478b60cdc1d256708b__e205aea1b14dfa48723183bd3def241a3297abf7/test-repo.git
finos-git-proxy-git-proxy-1  | diff - diff --git a/approved-workflow-test.txt b/approved-workflow-test.txt
finos-git-proxy-git-proxy-1  | new file mode 100644
finos-git-proxy-git-proxy-1  | index 0000000..44a8110
finos-git-proxy-git-proxy-1  | --- /dev/null
finos-git-proxy-git-proxy-1  | +++ b/approved-workflow-test.txt
finos-git-proxy-git-proxy-1  | @@ -0,0 +1,3 @@
finos-git-proxy-git-proxy-1  | +Approved Workflow Test
finos-git-proxy-git-proxy-1  | +User: testuser
finos-git-proxy-git-proxy-1  | +Timestamp: 2025-12-15T18:23:21.035Z
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | gitleaks is disabled, skipping
finos-git-proxy-git-proxy-1  | Scanning diff: 86ccf4a6bb31ac2821341c478b60cdc1d256708b:e205aea1b14dfa48723183bd3def241a3297abf7
finos-git-proxy-git-proxy-1  | diff --git a/approved-workflow-test.txt b/approved-workflow-test.txt
finos-git-proxy-git-proxy-1  | new file mode 100644
finos-git-proxy-git-proxy-1  | index 0000000..44a8110
finos-git-proxy-git-proxy-1  | --- /dev/null
finos-git-proxy-git-proxy-1  | +++ b/approved-workflow-test.txt
finos-git-proxy-git-proxy-1  | @@ -0,0 +1,3 @@
finos-git-proxy-git-proxy-1  | +Approved Workflow Test
finos-git-proxy-git-proxy-1  | +User: testuser
finos-git-proxy-git-proxy-1  | +Timestamp: 2025-12-15T18:23:21.035Z
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | CHANGE [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     content: '@@ -0,0 +1,3 @@',
finos-git-proxy-git-proxy-1  |     changes: [ [Object], [Object], [Object] ],
finos-git-proxy-git-proxy-1  |     oldStart: 0,
finos-git-proxy-git-proxy-1  |     oldLines: 0,
finos-git-proxy-git-proxy-1  |     newStart: 1,
finos-git-proxy-git-proxy-1  |     newLines: 3
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | CHANGE { type: 'add', add: true, ln: 1, content: '+Approved Workflow Test' }
finos-git-proxy-git-proxy-1  | CHANGE { type: 'add', add: true, ln: 2, content: '+User: testuser' }
finos-git-proxy-git-proxy-1  | CHANGE {
finos-git-proxy-git-proxy-1  |   type: 'add',
finos-git-proxy-git-proxy-1  |   add: true,
finos-git-proxy-git-proxy-1  |   ln: 3,
finos-git-proxy-git-proxy-1  |   content: '+Timestamp: 2025-12-15T18:23:21.035Z'
finos-git-proxy-git-proxy-1  | }
finos-git-proxy-git-proxy-1  | Action processed: Blocked
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  |     Blocked:       
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | �[32mGitProxy has received your push ✅�[0m
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 🔗 Shareable Link
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | �[34mhttp://localhost:8081/dashboard/push/86ccf4a6bb31ac2821341c478b60cdc1d256708b__e205aea1b14dfa48723183bd3def241a3297abf7�[0m
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | 
finos-git-proxy-git-proxy-1  | .remote is deleted!
finos-git-proxy-git-proxy-1  | going to auth with local
finos-git-proxy-git-proxy-1  | serivce.routes.auth.login: user logged in, username=approver profile={"username":"approver","displayName":"","email":"approver@example.com","title":"","gitAccount":"approver","admin":false}
finos-git-proxy-git-proxy-1  | Getting users for query = {"email":"testuser@example.com"}
finos-git-proxy-git-proxy-1  | user approver can approve/reject for repo https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | User approver approved push request for 86ccf4a6bb31ac2821341c478b60cdc1d256708b__e205aea1b14dfa48723183bd3def241a3297abf7
finos-git-proxy-git-proxy-1  | Getting users for query = {"username":"approver"}
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/info/refs?service=git-receive-pack
finos-git-proxy-git-proxy-1  | processing request URL: '/git-server:8443/coopernetes/test-repo.git/git-receive-pack' against registered proxy keys: ["/git-server:8443/"]
finos-git-proxy-git-proxy-1  | 	using proxy /git-server:8443/
finos-git-proxy-git-proxy-1  | Parse action trying HTTPS repo URL: https://git-server:8443/coopernetes/test-repo.git for inbound URL path: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  | refUpdates: [
finos-git-proxy-git-proxy-1  |   "86ccf4a6bb31ac2821341c478b60cdc1d256708b e205aea1b14dfa48723183bd3def241a3297abf7 refs/heads/main\u0000 report-status-v2 side-band-64k quiet object-format=sha1 agent=git/2.40.0"
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | getContents returned 3 entries:
finos-git-proxy-git-proxy-1  | [
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 0,
finos-git-proxy-git-proxy-1  |     "type": 1,
finos-git-proxy-git-proxy-1  |     "typeName": "commit",
finos-git-proxy-git-proxy-1  |     "content": "tree eb158154cfd92646ab6a9fd5e9c8d005f9941eec\nparent 86ccf4a6bb31ac2821341c478b60cdc1d256708b\nauthor testuser <testuser@example.com> 1765823001 -0500\ncommitter testuser <testuser@example.com> 1765823001 -0500\ngpgsig -----BEGIN PGP SIGNATURE-----\n \n iHUEABYKAB0WIQSi50XjQ0ZxgKG2iYlkdm4ErUngrAUCaUBSGQAKCRBkdm4ErUng\n rED9AP9BY8olR8z5bV0sQBHi8gltGh5FCP4vq/5vexqVxjQUeQEAsjJs/iE5Q5jg\n AjPDCoVUj4zuhOXYyF4W0kZU0rl41gk=\n =otg7\n -----END PGP SIGNATURE-----\n\nApproved workflow test - 2025-12-15T18:23:21.035Z\n",
finos-git-proxy-git-proxy-1  |     "size": 501,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 1,
finos-git-proxy-git-proxy-1  |     "type": 2,
finos-git-proxy-git-proxy-1  |     "typeName": "tree",
finos-git-proxy-git-proxy-1  |     "content": "100644 README.md\u0000�`\"⼌I��qL\n�~t���c5100644 approved-workflow-test.txt\u0000D�\u0011\u0002�����/�C׊�<n��z100644 hello.txt\u0000�\u0013P4��l�\u0019�O}\u0006�g\u0005�\nf",
finos-git-proxy-git-proxy-1  |     "size": 128,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   },
finos-git-proxy-git-proxy-1  |   {
finos-git-proxy-git-proxy-1  |     "item": 2,
finos-git-proxy-git-proxy-1  |     "type": 3,
finos-git-proxy-git-proxy-1  |     "typeName": "blob",
finos-git-proxy-git-proxy-1  |     "content": "Approved Workflow Test\nUser: testuser\nTimestamp: 2025-12-15T18:23:21.035Z\n",
finos-git-proxy-git-proxy-1  |     "size": 74,
finos-git-proxy-git-proxy-1  |     "baseSha": null,
finos-git-proxy-git-proxy-1  |     "baseOffset": null
finos-git-proxy-git-proxy-1  |   }
finos-git-proxy-git-proxy-1  | ]
finos-git-proxy-git-proxy-1  | Push Request received from user testuser with email testuser@example.com
finos-git-proxy-git-proxy-1  | checkRepoInAuthorisedList - repo https://git-server:8443/coopernetes/test-repo.git is in the authorisedList
finos-git-proxy-git-proxy-1  | The following commit messages are legal: Approved workflow test - 2025-12-15T18:23:21.035Z
finos-git-proxy-git-proxy-1  | The following commit author e-mails are legal: testuser@example.com
finos-git-proxy-git-proxy-1  | Getting users for query = {"email":"testuser@example.com"}
finos-git-proxy-git-proxy-1  | User testuser@example.com permission on Repo https://git-server:8443/coopernetes/test-repo.git : true
finos-git-proxy-git-proxy-1  | checkUserPushPermission - User testuser@example.com is allowed to push on repo https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Creating folder ./.remote/86ccf4a6bb31ac2821341c478b60cdc1d256708b__e205aea1b14dfa48723183bd3def241a3297abf7
finos-git-proxy-git-proxy-1  | pullRemote - Executing git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | pullRemote - Completed git clone https://git-server:8443/coopernetes/test-repo.git
finos-git-proxy-git-proxy-1  | writePack - new idx files: pack-b0b703ab149b1ab70ff26233b9a3f4ff6d75feea.idx
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total introduced commits: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - Total commits in the pack: 1
finos-git-proxy-git-proxy-1  | checkHiddenCommits - All pack commits are referenced in the introduced range.
finos-git-proxy-git-proxy-1  | Action processed: Allowed
finos-git-proxy-git-proxy-1  |     Request URL: /git-server:8443/coopernetes/test-repo.git/git-receive-pack
finos-git-proxy-git-proxy-1  |     Host:        localhost:8000
finos-git-proxy-git-proxy-1  |     User-Agent:  git/2.40.0
finos-git-proxy-git-proxy-1  | Request resolved to https://git-server:8443/coopernetes/test-repo.git/git-receive-pack

@netlify
Copy link

netlify bot commented Aug 21, 2025

Deploy Preview for endearing-brigadeiros-63f9d0 canceled.

Name Link
🔨 Latest commit b2fe2e4
🔍 Latest deploy log https://app.netlify.com/projects/endearing-brigadeiros-63f9d0/deploys/69445c70a41fe20008e66e41

@coopernetes coopernetes force-pushed the e2e-testing branch 2 times, most recently from d351d4b to b5ed561 Compare August 21, 2025 23:27
@coopernetes coopernetes marked this pull request as draft August 22, 2025 16:04
@coopernetes coopernetes force-pushed the e2e-testing branch 2 times, most recently from 7765858 to f3f02db Compare August 26, 2025 14:59
@codecov
Copy link

codecov bot commented Aug 26, 2025

Codecov Report

❌ Patch coverage is 59.32203% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.42%. Comparing base (73b4831) to head (b2fe2e4).

Files with missing lines Patch % Lines
src/service/index.ts 48.71% 20 Missing ⚠️
src/proxy/processors/pre-processor/parseAction.ts 83.33% 3 Missing ⚠️
src/service/routes/repo.ts 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1165      +/-   ##
==========================================
- Coverage   80.65%   80.42%   -0.23%     
==========================================
  Files          65       65              
  Lines        4575     4619      +44     
  Branches      774      775       +1     
==========================================
+ Hits         3690     3715      +25     
- Misses        870      889      +19     
  Partials       15       15              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@dcoric dcoric left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work! This is a comprehensive and well-architected E2E testing implementation.

I really appreciate the complete testing infrastructure with Docker and CI/CD - this addresses a common pain point I've experienced where tests would fail due to incorrect Node.js versions on different machines. Having everything containerized with consistent environments is a huge improvement for reliability.

The only area I'd suggest improving is the async configuration loading in src/ui/services/*.js, which currently has race conditions. This could potentially create behavioral issues if API calls are made before the runtime configuration is fully loaded, leading to requests being sent to incorrect endpoints.

Overall, this is solid work that will significantly improve our testing capabilities! 🎉

@coopernetes
Copy link
Contributor Author

coopernetes commented Oct 28, 2025

@dcoric Can I get your 👀 on the API base URL handling? This should fix a number of unrelated issues regarding production deployments and it's a bit more robust now. Had to add a bit more logic for handling CORS properly as well. Thanks!

cc @jescalada @kriswest (sorry for the delays on this one)

Informing the rest of the maintainer team. There are "production deployment" related changes in this PR around CORS and base URL handling on the frontend required to make this testing setup work so hopefully we can merge that smoothly and add it to 2.x.

Copy link
Contributor Author

@coopernetes coopernetes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some changes of note that I would appreciate a set of 👀 on. Thanks!

Copy link
Contributor

@dcoric dcoric left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
The changes to use Vite's built-in terser configuration are a solid improvement and clean up the build process effectively.

@sidshas03
Copy link

@coopernetes I’ve checked that you’ve already updated the PR with the latest branch. Once I get the approval, I can go ahead and merge it and it should update automatically, right? Since all the checks have passed, I think we only need the admin’s approval now.

@coopernetes
Copy link
Contributor Author

@coopernetes I’ve checked that you’ve already updated the PR with the latest branch. Once I get the approval, I can go ahead and merge it and it should update automatically, right? Since all the checks have passed, I think we only need the admin’s approval now.

Hi @sidshas03 we are awaiting a maintainer to approve this PR. Your prior changes via #1199 were cherry-picked onto this branch so there is no action required on your side. Since #1199 incorporated commits from this PR, it was a duplicate. Hence why I re-integrated your changes here.

Once merged, both sets of combined changes will be merged into main. From there, you can merge those changes back into any other branches or PRs you may wish to contribute to the project such as the work ongoing in #1200. You may have conflicts that you have to deal with first before that new PR can be merged.

@coopernetes

This comment has been minimized.

@coopernetes coopernetes force-pushed the e2e-testing branch 3 times, most recently from 1e1caa4 to 3af93cd Compare December 15, 2025 19:26
coopernetes and others added 12 commits December 15, 2025 15:24
- Remove verbose logging from Dockerfile
- pin dependent actions in new e2e workflow to their respective commits
- refactor the tests to work slightly more robustly (handle creds, etc)
- Removed the obsolete 'version: 3.7' field from docker-compose.yml
- This fixes the warning about the version field being obsolete in newer Docker Compose versions
- The e2e tests now run without warnings
- Fix OIDC configuration syntax errors
- Update Cypress baseUrl to use correct port (8080)
- Fix CI workflow to use correct port and remove & from start command
- Ensure frontend is built before running tests
- CSRF protection already properly disabled in test environment

Cypress tests now pass:
- autoApproved.cy.js: 1/1 passing
- login.cy.js: 8/8 passing
- repo.cy.js: failing due to rate limiting (separate issue)

This resolves the main issues mentioned in the failing job:
- CSRF Token Missing Errors: Fixed by proper test environment config
- Shell Script Syntax Error: Fixed by removing & from start command
- Unknown Authentication Strategy: Fixed OIDC syntax errors
- Route Not Hit: Fixed by building frontend and using correct port
- Fix CSRF protection by setting NODE_ENV=test in CI
- Fix OIDC strategy by checking enabled flag before configuration
- Fix port configuration by using correct server port (8080)
- Add start:ci script to run server only (not dev client)
- Set CYPRESS_BASE_URL environment variable for consistency

This should resolve:
- CSRF token missing errors in CI
- Unknown authentication strategy errors
- Port mismatch issues (3000 vs 8080)
- Shell script syntax errors with & character
@coopernetes
Copy link
Contributor Author

@kriswest @jescalada this is ready to merge now. One last 👀 would be appreciated!

Copy link
Contributor

@jescalada jescalada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running npm run cypress:run seems to fail on my end - and the UI isn't displaying as expected on dev either:

Details image

I'll look into this in more detail as it might be a problem with my device or environment.

Seems things are executing fine on my Linux environment... Likely an issue related to #1318, will link this there.

it('Prevents regular users from adding repos', () => {
cy.get('[data-testid="repo-list-view"]')
// Set up intercepts before visiting the page
cy.intercept('GET', '**/api/auth/me').as('authCheck');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The /api/auth/me endpoint was removed since it was a duplicate of /api/auth/profile. The other usages should be removed as well!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering how these tests are passing if the /api/auth/me endpoint is gone (and hasn't been added accidentally during merge conflict resolution)... 🤔

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

co-pilot had some suggestions on this:

Your test is likely not hitting your Express API for /api/auth/me. Instead, a fallback (SPA dev server or reverse proxy) is returning a 200 (or 304) with an HTML page (e.g., index.html). Since your Cypress assertion only checks the status code and accepts 200/304, the test passes—even though the /api/auth/me API route does not exist.

Here’s how that can happen and how to confirm it.


Why a non-existent route can still yield 200/304

Several common setups can cause this:

  1. SPA fallback to index.html

    • If your UI dev server (e.g., Vite, CRA, Next’s static export) or NGINX is fronting the UI and not proxying /api/auth/* correctly, any unknown path like /api/auth/me can be served by the SPA’s catch‑all, returning 200 OK (or 304 Not Modified if cached).
    • Result: The response is HTML, not JSON, but your test only checks 200/304.
  2. Reverse proxy misrouting

  3. Caching leading to 304

    • If a previous run returned 200 with index.html for /api/auth/me and the browser has a cached copy (with ETag/Last-Modified), subsequent runs can get 304 Not Modified even though it’s not a real API.
  4. Loose intercept pattern

    • cy.intercept('GET', '**/api/auth/me') will match any host/path that ends with /api/auth/me. If your app makes that request to the UI origin (not the API), you’ll still intercept it and wait on it—even if it’s not JSON from your API.

How to prove this (quick checks)

Update the test temporarily to inspect the intercepted response:

cy.intercept('GET', '**/api/auth/me').as('authCheck');

cy.wait('@authCheck').then(({ response, request }) => {
  // Check headers and body shape
  cy.log('AuthCheck status', response?.statusCode);
  cy.log('AuthCheck content-type', response?.headers?.['content-type']);
  cy.log('AuthCheck body snippet', typeof response?.body === 'string'
    ? response.body.slice(0, 200)
    : JSON.stringify(response?.body)?.slice(0, 200)
  );

  // Make this strict to see the real behavior:
  expect(response?.headers?.['content-type']).to.include('application/json'); // likely to FAIL
});

If you see text/html and some HTML snippet in the log/body, you’re hitting the SPA index fallback—not your API.


Why the test still passes

Your test’s only assertion on the auth-check is:

expect([200, 304]).to.include(interception.response.statusCode);

This allows:

  • 200 with HTML (index fallback), or
  • 304 from cache,

So the test continues and then asserts UI behavior (absence of “Add repo” button), which can still hold true for a regular user regardless of whether the auth endpoint actually returned a valid JSON.


How to fix this robustly

Pick any (or a combination) of these options:

1) Make the backend expose /me (alias to /profile)

If the frontend expects /api/auth/me, add a small alias so you do have a route:

router.get('/me', async (req: Request, res: Response) => {
  if (!req.user) return res.status(401).send({ message: 'Not logged in' });
  const userVal = await db.findUser((req.user as User).username);
  if (!userVal) return res.status(404).send('User not found');
  res.json(toPublicUser(userVal));
});

This keeps tests and frontend happy and removes ambiguity.

2) Change the frontend/tests to use /api/auth/profile

If /me was never intended, update:

  • Frontend calls to /api/auth/profile.
  • Cypress intercepts:
cy.intercept('GET', '**/api/auth/profile').as('authCheck');
cy.wait('@authCheck').its('response.statusCode').should('be.oneOf', [200, 401, 404]);
cy.wait('@authCheck')
  .its('response.headers.content-type')
  .should('include', 'application/json');

(Notice we tightened assertions to ensure we’re dealing with JSON, not HTML.)

3) Fix proxying so /api/* always goes to the backend

Ensure your dev server or NGINX routes all /api/** requests to the API server and does not fall back to the SPA on those paths. For example:

  • Vite dev server proxy config:
    server: {
      proxy: {
        '/api': 'http://localhost:8080', // your API
      }
    }
  • NGINX:
    location /api/ {
      proxy_pass http://backend:8080;
    }
    location / {
      try_files $uri /index.html;
    }

4) Make Cypress assertions stricter

So you catch these issues early:

cy.intercept('GET', '**/api/auth/me').as('authCheck');

cy.wait('@authCheck').then(({ response }) => {
  expect(response?.headers?.['content-type']).to.include('application/json');
  // Optionally verify the shape of the JSON:
  expect(response?.body).to.have.property('username');
  // Or status must be one of the real API statuses:
  expect([200, 401, 404]).to.include(response?.statusCode);
});

TL;DR

  • The test passes because /api/auth/me is likely served by the SPA fallback (returns 200/304 HTML) rather than your API.
  • Your assertion accepts 200/304 no matter the content, so it doesn’t fail.
  • Fix by adding /me, or using /profile, and/or tightening intercept assertions and proxy config so /api/** always hits the backend.

Copy link
Contributor

@kriswest kriswest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

confused by an indefinite test...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle frontend base URL dynamically for production deployments

5 participants