Watchers and notifications

Hello!

Using the Community Edition of RhodeCode, I’m wondering what can I expect if I watch a repository. Initially, I supposed I would receive emails on new commits (we mainly use SVN), but this isn’t the case; neither for notifications.
Then what does it give to be watching a repo?

Thanks.

Hi !

The watch options allows you to have a filtered activity journal which is where you see all actions for a repository. This is also with an RSS feed of watched repositories.

  • If you want to get actions pushed, please subsribe to the RSS feed.
  • If you want to get email on push you can enable the email integration which is inside CE edition.

Best,

All right, thank you. I didn’t know where to look for.

Now I’m a bit confused:

  1. Where is my personal “Journal” in the web interface?
  2. Should the repo be set to “(Journal) Public visibility” for the “Watch” option to send messages to my Journal?
  3. Can I configure the email integration to send emails only to watchers? It seems no, currently.

image

Finally, I tested a solution to post messages to our internal Google Chat with a Webhook integration. This doesn’t work because the Google Chat app expects its own formatting.
Is it possible to alter the JSON content? To something like:

{"text":"${event_name} on ${repo_name} by ${username}.\nHave a check at ${repo_url}"}

Or should I create my own integration?
If so, it seems like this example can help me, but I have absolutely no idea on how to create and enable such a custom extension :thinking:

Any tips are welcome.

Can I alter the Webhook integration? With something like:

from rhodecode.integrations import webhook
webhook.#?

Or should I even create my own integration? Maybe with:

from rhodecode.integrations import webhook
#from rhodecode.integrations.types import webhook
class GoogleChatIntegrationType(webhook.WebhookIntegrationType):
    key = 'gchat'
    display_name = _('Google Chat')
    description = _('send message to a Google Chat Space')
    ## something here ##
integration_type_registry.register_integration_type(gchat.GoogleChatIntegrationType)

I’m ready to test but I don’t even know where to put my code since the current rcextensions documentation page may not apply to RCStack installations!

Hi,

Awesome tha you’re trying to build a new integration.

You cannot upload a custom integration without building a dev-env. Have you checked our dev docs

https://docs.rhodecode.com/rcstack/dev/dev-setup.html

?

This way you could develop a new integeration :slight_smile:

Nice! Seems like the documentation improved recently :wink:
Thank you, I’ll try that when (if) I have some free time…

In the meantime, can you please answer my questions about the “watching” feature?

Moreover, I added two recipients to a global “email” notifier (integration), but I can’t get it work… SVN commits don’t trigger any e-mail sending.

image

Watching shows action in this journal link

Well, at least not on our side.
We got many “repo.create” and “repo.edit” entries, but no push at all! (I’m personally watching almost all repos of our RhodeCode install)

hmm indeed, this is somehow also related to email integration for SVN failing… let us check this quickly with our dev team tomorrow, and get back to you.

can you try the latest beta image with SVN ?

I upgraded our server to 5.1.0.beta3. Nothing changes right now.

I’ll keep you posted as soon as we have made a new commit.

Please also make sure to run remap&rescan.

From RhodeCode web-interface, the last step is to run a full remap & rescan action.

  1. From the RhodeCode Web interface, open Admin ‣ Settings ‣ Remap and rescan
  2. Select Invalidate cache for all repositories to ensure we cleanup old caches from previous installs
  3. Click Rescan Repositories action

Hello,
Neither “remap & rescan” nor a new commit fills my Journal. No email is sent either.

This is weird, We did found an issue with a Docker image that basically didn’t allow the post commit/push actions on SVN, but this should be fixed in that recent build.

Could you create a test svn repo with integration of email, and check the logs of app while doing a push if integrations are actually triggered ?

Here it is (part 1):

vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.596577+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 394] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0012s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0011572837829589844, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.596" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001489" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.604381+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 395] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004532337188720703, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.604" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000766" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.607926+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 843] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> OPTIONS Request to /test_repo time: 0.0166s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "2ab20194-5146-444f-a2ea-566f93e4a23f", "time": 0.01661062240600586, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo", "view_name": "NOT_FOUND", "code": 401}
rhodecode-1    | time="2024-03-04 12:52:42.608" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.017425" response_code="401" response_bytes="260   " uri="OPTIONS:/test_repo " user=":-" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.623402+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 396] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.00048065185546875, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.623" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000783" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.631119+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 397] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.00047278404235839844, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.631" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000780" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.637852+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.641754+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.643957+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.702533+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.702993+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.707251+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.716390+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "pull action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4"}
svn-1          | { "time":"2024-03-04T12:52:42.723Z", "process":"362", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo", "query":"", "method":"OPTIONS", "status":"200", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.725245+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 844] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> OPTIONS Request to /test_repo time: 0.1056s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "e11b0e4b-19f0-4b68-90b3-bb4672070aa4", "time": 0.1056363582611084, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo", "view_name": "NOT_FOUND", "code": 200}
rhodecode-1    | time="2024-03-04 12:52:42.726" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.106771" response_code="200" response_bytes="189   " uri="OPTIONS:/test_repo " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.739518+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 822] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005164146423339844, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.739" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000821" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.746250+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 823] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005075931549072266, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.746" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000806" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.752536+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.756533+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.758250+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.817436+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.818208+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.821362+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.827858+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "pull action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f"}
svn-1          | { "time":"2024-03-04T12:52:42.834Z", "process":"1055", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo", "query":"", "method":"OPTIONS", "status":"200", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.836480+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 845] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> OPTIONS Request to /test_repo time: 0.1009s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "60ef5f03-6e49-4c6b-9959-08f8bf018c6f", "time": 0.10085773468017578, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo", "view_name": "NOT_FOUND", "code": 200}
rhodecode-1    | time="2024-03-04 12:52:42.838" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.102525" response_code="200" response_bytes="97    " uri="OPTIONS:/test_repo " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.850057+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[1044] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004878044128417969, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.850" pid=<29354> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000890" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.858339+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 398] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0006s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005917549133300781, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.858" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000991" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.864044+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.869245+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.871125+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.929190+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.929878+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.934431+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.944227+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "push action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a"}
svn-1          | { "time":"2024-03-04T12:52:42.959Z", "process":"11710", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo/!svn/me", "query":"", "method":"POST", "status":"201", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
rhodecode-1    | {"timestamp": "2024-03-04T12:52:42.974814+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 846] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> POST Request to /test_repo/!svn/me time: 0.1286s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "64f8b10b-40f8-406d-9a80-fb3fa8e3869a", "time": 0.12864351272583008, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo/!svn/me", "view_name": "NOT_FOUND", "code": 201}
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.984398+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 824] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005486011505126953, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.984" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000827" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.986536+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 825] IP: 127.0.0.1 POST Request to test_repo@/svn/lookup time: 0.0004s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004334449768066406, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "lookup", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.986" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000699" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:42.988794+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[1045] IP: 127.0.0.1 POST Request to test_repo@/svn/is_empty time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004513263702392578, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_empty", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:42.989" pid=<29354> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000991" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | time="2024-03-04 12:52:42.996" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.150298" response_code="201" response_bytes="0     " uri="POST:/test_repo/!svn/me " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.030543+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 826] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo/test_file.txt@/svn/is_path_valid_repository time: 0.0002s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.00022220611572265625, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo/test_file.txt"}
vcsserver-1    | time="2024-03-04 12:52:43.030" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000538" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.032339+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 827] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0004s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004146099090576172, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.032" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000632" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.039271+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 828] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0004s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0003867149353027344, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.039" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000638" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.043929+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.047610+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.048992+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.106862+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.107203+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.110142+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.118186+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "push action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8"}

Part 2:

svn-1          | { "time":"2024-03-04T12:52:43.124Z", "process":"426", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo/test_file.txt", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo/test_file.txt", "query":"", "method":"HEAD", "status":"404", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.126282+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 847] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> HEAD Request to /test_repo/test_file.txt time: 0.1019s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "0059441e-85b4-47e4-bd79-918568307dc8", "time": 0.10193800926208496, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo/test_file.txt", "view_name": "NOT_FOUND", "code": 404}
rhodecode-1    | time="2024-03-04 12:52:43.126" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.102703" response_code="404" response_bytes="0     " uri="HEAD:/test_repo/test_file.txt " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.165306+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 399] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005428791046142578, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.165" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000986" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.174847+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 400] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004973411560058594, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.175" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000865" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.180583+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.185369+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.187090+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.247212+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.248003+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.251519+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.261305+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "push action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d"}
svn-1          | { "time":"2024-03-04T12:52:43.268Z", "process":"12240", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo/test_file.txt", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo/!svn/txr/0-0/test_file.txt", "query":"", "method":"PUT", "status":"201", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.281736+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 848] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> PUT Request to /test_repo/!svn/txr/0-0/test_file.txt time: 0.1213s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "4b3ad5dd-3999-4253-b8cc-4d2b24f8da5d", "time": 0.12132430076599121, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo/!svn/txr/0-0/test_file.txt", "view_name": "NOT_FOUND", "code": 201}
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.293449+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 829] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005292892456054688, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.293" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000863" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.295594+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 401] IP: 127.0.0.1 POST Request to test_repo@/svn/lookup time: 0.0006s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005745887756347656, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "lookup", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.296" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001111" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.297976+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[1046] IP: 127.0.0.1 POST Request to test_repo@/svn/is_empty time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004744529724121094, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_empty", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.298" pid=<29354> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000785" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | time="2024-03-04 12:52:43.305" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="0.145085" response_code="201" response_bytes="250   " uri="PUT:/test_repo/!svn/txr/0-0/test_file.txt " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.332403+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 402] IP: 127.0.0.1 POST Request to var/opt/rhodecode_repo_store/test_repo@/svn/is_path_valid_repository time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005211830139160156, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "var/opt/rhodecode_repo_store/test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.332" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000952" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:43.340519+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 403] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0004s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0004391670227050781, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:43.340" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000796" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.347543+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#token plugin", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.352695+00:00", "levelname": "WARNING", "name": "rhodecode.authentication.plugins.auth_token", "message": "user `{{MASKED USER NAME}}` failed to authenticate via authtoken, reason: bad or inactive token.", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.354518+00:00", "levelname": "INFO", "name": "rhodecode.authentication.base", "message": "Authenticating user `{{MASKED USER NAME}}` using egg:rhodecode-enterprise-ce#rhodecode plugin", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.412894+00:00", "levelname": "INFO", "name": "rhodecode.authentication.plugins.auth_rhodecode", "message": "user `{{MASKED USER NAME}}` authenticated correctly", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5", "action": "user_auth_ok", "auth_module": "auth_rhodecode", "username": "{{MASKED USER NAME}}"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.413683+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "MAIN-AUTH successful for user `{{MASKED USER NAME}}` from rhodecode plugin", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.417272+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "Access for IP:172.18.0.1 allowed", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
rhodecode-1    | {"timestamp": "2024-03-04T12:52:43.426617+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.simplevcs", "message": "push action on svn repo \"test_repo\" by \"{{MASKED USER NAME}}\" from 172.18.0.1 SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5"}
svn-1          | { "time":"2024-03-04T12:52:43.433Z", "process":"1679200", "filename":"dav_svn:/var/opt/rhodecode_repo_store/test_repo", "remoteIP":"172.18.0.9", "host":"{{MASKED DOMAIN NAME}}", "request":"/test_repo", "query":"", "method":"MERGE", "status":"200", "userAgent":"SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673", "referer":"-" }
vcsserver-1    | {"timestamp": "2024-03-04T12:52:45.128756+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 404] IP: 127.0.0.1 POST Request to test_repo@/svn/is_path_valid_repository time: 0.0006s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0006461143493652344, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_path_valid_repository", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:45.129" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001311" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:45.131132+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 405] IP: 127.0.0.1 POST Request to test_repo@/svn/lookup time: 0.0008s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0007991790771484375, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "lookup", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:45.131" pid=<29610> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001295" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:45.133154+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[ 830] IP: 127.0.0.1 POST Request to test_repo@/svn/is_empty time: 0.0006s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0005800724029541016, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "is_empty", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:45.133" pid=<29406> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001087" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | {"timestamp": "2024-03-04T12:52:45.114337+00:00", "levelname": "INFO", "name": "rhodecode.lib.middleware.request_wrapper", "message": "Req[ 849] <AuthUser('id:0[ANONYMOUS] ip:172.18.0.1 auth:False')> MERGE Request to /test_repo time: 1.7859s [SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673], RhodeCode 5.1.0", "req_id": "e05dcf71-8512-4b9b-8a9e-d2eb4c8bd7e5", "time": 1.7858951091766357, "ver": "5.1.0", "ip": "172.18.0.1", "path": "/test_repo", "view_name": "NOT_FOUND", "code": 200}
vcsserver-1    | {"timestamp": "2024-03-04T12:52:45.135742+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[1047] IP: 127.0.0.1 POST Request to test_repo@/svn/lookup time: 0.0009s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.0009064674377441406, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "lookup", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:45.136" pid=<29354> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.001302" response_code="200" response_bytes="51    " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
vcsserver-1    | {"timestamp": "2024-03-04T12:52:45.137769+00:00", "levelname": "INFO", "name": "vcsserver.tweens.request_wrapper", "message": "Req[1048] IP: 127.0.0.1 POST Request to test_repo@/svn/revision_properties time: 0.0005s [RhodeCode HTTP 5.1.0], VCSServer 5.1.0", "req_id": null, "time": 0.000518798828125, "ver": "5.1.0", "code": 200, "path": "/svn", "view_name": "vcs", "user_agent": "RhodeCode HTTP 5.1.0", "vcs_method": "revision_properties", "repo_name": "test_repo"}
vcsserver-1    | time="2024-03-04 12:52:45.137" pid=<29354> level="INFO" type="[GNCRN]" ip="172.18.0.9     " rqt="0.000793" response_code="200" response_bytes="134   " uri="POST:/svn " user=":-" user_agent="RhodeCode HTTP 5.1.0"
rhodecode-1    | time="2024-03-04 12:52:45.143" pid=<29772> level="INFO" type="[GNCRN]" ip="172.18.0.1     " rqt="1.815445" response_code="200" response_bytes="486   " uri="MERGE:/test_repo " user=":{{MASKED USER NAME}}" user_agent="SVN/1.14.3 (x64-microsoft-windows) serf/1.3.10 TortoiseSVN-1.14.6.29673"

The test repo is a top-level repo that I watch.

From the configuration, a commit should send an e-mail at my personal email address.
image

No new entry in the journal, no e-mail received.

I also got an exception 5 minutes later about the webhook integration (first time I see this one!) but this may be expected because it is misconfigured (wrong JSON format).

++ TRACEBACK ++

Traceback (most recent call last):
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/integrations/__init__.py", line 60, in integrations_event_handler
    integration_model.send_event(integration, event)
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/model/integration.py", line 104, in send_event
    handler.send_event(event)
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/integrations/types/webhook.py", line 184, in send_event
    data = event.as_dict()
           ^^^^^^^^^^^^^^^
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/repo.py", line 168, in as_dict
    data = super().as_dict()
           ^^^^^^^^^^^^^^^^^
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/base.py", line 111, in as_dict
    'username': self.actor.username,
                ^^^^^^^^^^
  File "/home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/base.py", line 77, in actor
    instance = auth_user.get_instance()
               ^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not callable

+++ DETAILS +++

╭───────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────╮
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/integrations/__init__.py:60 in integrations_event_handler                                        │
│                                                                                                                                                              │
│   57 │   integrations = integration_model.get_for_event(event)                                                                                               │
│   58 │   for integration in integrations:                                                                                                                    │
│   59 │   │   try:                                                                                                                                            │
│ ❱ 60 │   │   │   integration_model.send_event(integration, event)                                                                                            │
│   61 │   │   except Exception:                                                                                                                               │
│   62 │   │   │   exc_info = sys.exc_info()                                                                                                                   │
│   63 │   │   │   store_exception(id(exc_info), exc_info)                                                                                                     │
│                                                                                                                                                              │
│ ╭──────────────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────────────╮                          │
│ │             event = <RepoCreateEvent:(repo-create)>                                                                             │                          │
│ │          exc_info = (<class 'TypeError'>, TypeError("'NoneType' object is not callable"), <traceback object at 0x7fd577c55a40>) │                          │
│ │       integration = <Integration('webhook', 'root_repos')>                                                                      │                          │
│ │ integration_model = <rhodecode.model.integration.IntegrationModel object at 0x7fd577dcf350>                                     │                          │
│ │  IntegrationModel = <class 'rhodecode.model.integration.IntegrationModel'>                                                      │                          │
│ │      integrations = [<Integration('email', 'root_repos')>, <Integration('webhook', 'root_repos')>]                              │                          │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯                          │
│                                                                                                                                                              │
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/model/integration.py:104 in send_event                                                           │
│                                                                                                                                                              │
│   101 │   │   │   log.debug(                                                                                                                                 │
│   102 │   │   │   │   'events: sending event %s on integration %s using handler %s',                                                                         │
│   103 │   │   │   │   event, integration, handler)                                                                                                           │
│ ❱ 104 │   │   │   handler.send_event(event)                                                                                                                  │
│   105 │                                                                                                                                                      │
│   106 │   def get_integrations(self, scope, IntegrationType=None):                                                                                           │
│   107 │   │   """                                                                                                                                            │
│                                                                                                                                                              │
│ ╭─────────────────────────────────────────────── locals ───────────────────────────────────────────────╮                                                     │
│ │       event = <RepoCreateEvent:(repo-create)>                                                        │                                                     │
│ │     handler = <rhodecode.integrations.types.webhook.WebhookIntegrationType object at 0x7fd577dce290> │                                                     │
│ │ integration = <Integration('webhook', 'root_repos')>                                                 │                                                     │
│ │        self = <rhodecode.model.integration.IntegrationModel object at 0x7fd577dcf350>                │                                                     │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯                                                     │
│                                                                                                                                                              │
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/integrations/types/webhook.py:184 in send_event                                                  │
│                                                                                                                                                              │
│   181 │   │   if not self.event_enabled(event):                                                                                                              │
│   182 │   │   │   return                                                                                                                                     │
│   183 │   │                                                                                                                                                  │
│ ❱ 184 │   │   data = event.as_dict()                                                                                                                         │
│   185 │   │   template_url = self.settings['url']                                                                                                            │
│   186 │   │                                                                                                                                                  │
│   187 │   │   headers = {}                                                                                                                                   │
│                                                                                                                                                              │
│ ╭──────────────────────────────────────────── locals ────────────────────────────────────────────╮                                                           │
│ │ event = <RepoCreateEvent:(repo-create)>                                                        │                                                           │
│ │  self = <rhodecode.integrations.types.webhook.WebhookIntegrationType object at 0x7fd577dce290> │                                                           │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯                                                           │
│                                                                                                                                                              │
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/repo.py:168 in as_dict                                                                    │
│                                                                                                                                                              │
│   165 │                                                                                        ╭─────────────────────── locals ───────────────────────╮      │
│   166 │   def as_dict(self):                                                                   │ RepoModel = <class 'rhodecode.model.repo.RepoModel'> │      │
│   167 │   │   from rhodecode.model.repo import RepoModel                                       │      self = <RepoCreateEvent:(repo-create)>          │      │
│ ❱ 168 │   │   data = super().as_dict()                                                         ╰──────────────────────────────────────────────────────╯      │
│   169 │   │                                                                                                                                                  │
│   170 │   │   extra_fields = collections.OrderedDict()                                                                                                       │
│   171 │   │   for field in self.repo.extra_fields:                                                                                                           │
│                                                                                                                                                              │
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/base.py:111 in as_dict                                                                    │
│                                                                                                                                                              │
│   108 │   │   │   'utc_timestamp': self.utc_timestamp,                                         ╭──────────────── locals ────────────────╮                    │
│   109 │   │   │   'actor_ip': self.actor_ip,                                                   │ self = <RepoCreateEvent:(repo-create)> │                    │
│   110 │   │   │   'actor': {                                                                   ╰────────────────────────────────────────╯                    │
│ ❱ 111 │   │   │   │   'username': self.actor.username,                                                                                                       │
│   112 │   │   │   │   'user_id': self.actor.user_id                                                                                                          │
│   113 │   │   │   },                                                                                                                                         │
│   114 │   │   │   'server_url': self.server_url                                                                                                              │
│                                                                                                                                                              │
│ /home/rhodecode/venv/lib/python3.11/site-packages/rhodecode/events/base.py:77 in actor                                                                       │
│                                                                                                                                                              │
│    74 │   def actor(self):                                                                                                                                   │
│    75 │   │   auth_user = self.auth_user                                                                                                                     │
│    76 │   │   if auth_user:                                                                                                                                  │
│ ❱  77 │   │   │   instance = auth_user.get_instance()                                                                                                        │
│    78 │   │   │   if not instance:                                                                                                                           │
│    79 │   │   │   │   return AttributeDict(dict(                                                                                                             │
│    80 │   │   │   │   │   username=auth_user.username,                                                                                                       │
│                                                                                                                                                              │
│ ╭───────────────────────────────────── locals ─────────────────────────────────────╮                                                                         │
│ │ auth_user = {'username': 'bootstrap-user', 'user_id': 1, 'ip_addr': '127.0.0.1'} │                                                                         │
│ │      self = <RepoCreateEvent:(repo-create)>                                      │                                                                         │
│ ╰──────────────────────────────────────────────────────────────────────────────────╯                                                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: 'NoneType' object is not callable

So I suppose the situation is better than before, but still no e-mail in the end.

interesting, it looks like a problem of mapping the commit author, does it correctly match your user ?

Yes, of course it does!