NIFI-15673 - Add support for Author+Committer with git-based Flow Registry Clients#10972
NIFI-15673 - Add support for Author+Committer with git-based Flow Registry Clients#10972pvillard31 wants to merge 1 commit intoapache:mainfrom
Conversation
exceptionfactory
left a comment
There was a problem hiding this comment.
Thanks for proposing this improvement @pvillard31.
There is certainly value is tracing the commit author, but as described and implemented, it requires the NiFi user identity to be an email address, which may not be the case in many situations. One possibility to attempting to determine if it is an email address.
Considering this from another perspective, what about adding some trailer to the commit message footer? One possibility is the common Co-authored-by. This still requires a name and email address for exact matching, but as a footer, it is more open to interpretation. The email could also be derived according to the Git service, such as username@users.noreply.github.com and username@noreply.gitlab.com. The approach only requires a NiFi username matching the Git service username. If it doesn't match, it is less of an issue.
I'm open to considering possible alternatives.
|
Another benefit of an approach based on the message footer is that it avoids the current reflection-based workaround. |
Summary
NIFI-15673 - Add support for Author+Committer with git-based Flow Registry Clients
Right now, in NiFi, when using a git-based Flow Registry Client, all commits are made with the identity that is configured for the authentication of the registry client. It means that if many users are using the same NiFi UI, all commits made by different users will be reported as being made with the same user (likely the service account used in the registry client configuration).
This is not ideal when working with multiple users and trying to distinguish who made the actual commits.
With the git-based implementations, it is possible to make a commit and specify both an author and a committer.
This change is to use the identity of the NiFi User connected in the UI as the author and use the identity configured in the registry client as the committer.
Important notes:
This has been tested with GitHub, GitLab, Azure DevOps and Bitbucket cloud. See some screenshots below.
A potential follow-up improvement would be to show this information in the UI in the views where we list flow versions.
Screenshots
When my NiFi identity does NOT resolve to a user in the git provider:
GitHub
GitLab
Bitbucket (only the author is shown in the UI - see https://jira.atlassian.com/browse/BCLOUD-13836)
When my NiFi identity does resolve to a user in the git provider:
GitHub
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000NIFI-00000VerifiedstatusPull Request Formatting
mainbranchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
./mvnw clean install -P contrib-checkLicensing
LICENSEandNOTICEfilesDocumentation