If you find that your mergebots are not able to notify users of events and you work with more than one Plastic SCM server with different authentication modes, your problem can be easily addressed.
Let's review the problem in detail and then discuss a solution to fix it.
Problem
You have the following setup:
- A mergebot in your central, main server.
- Additional Plastic SCM servers working with different authentication modes. (For example: cloud server)
The mergebot notifier cannot send messages to the branch owner. The MergeBot is unable to find a valid profile for a certain user who replicated its branch from a non-central server to the main server.
Cause
The MergeBot fetches the user to notify an event as follows:
- The mergebot gets the branch owner.
- The plastic server tries to find a user profile file: <branch owner>.conf
- mergebot gets the defined profile field to obtain the actual value for the
notification system (e.g. user email).
But at this point, the branch owner does not match with any defined profile file. Why? The replicated server uses a different auth mode, and during replication from the replicated server to the main server, the branch owners name introduced into the main server's database could not match to a username in the main server's auth mode provider.
It is likely using "name" translation during replication, because it's the default translation mechanism. This type of translation will introduce into the destination server's database the branch owners name in the source server's branch as is.
There is no way in the GUI to define a user profile in the main server with a different name other than the username defined in the client.conf, which has to follow the main server's auth mode.
Example
- Maria works directly with the cloud server, where the auth mode is configured to use
user emails. - Maria creates a branch. The branch owner will be set to
"mneighborhoods@codicesw.es". - Maria performs some changes, and when her work is done, she replicates
her branch to the main on-premise server (thor.codicesw.com), which
uses LDAP auth mode (her user name in diana's LDAP provider is "maria",
and the corresponding profile file would be "maria.conf"). - The mergebot tries to merge her branch, but the mergebot notifier (the
main server) is unable to find the profile file
"mneighborhoods@codicesw.es.conf", and does not perform any notifications to the
actual branch owner.
Solution
Require users who replicate branches from non-main server to main
server to use a replica translation table instead of using "Copy" or
"Name" translations. This way, you ensure the destination branch will
have a valid translated user name for the destination, main server auth
mode.
- Ensure the profile file for that user exists.
- More info about replication and user translation here.
Further work
The webadmin will have a page not only to define a profile template, but
also to say "maria is also mneighborhoods, mneighborhoods@codicesw.es", etc.