go-scm
go-scm copied to clipboard
Supported `RepositoryService.UpdateHook` in GitLab driver.
Note that the returned hook events are changed to reflect the actual parameter names used to create or update the webhook. Specifically, the original convertEvents in the GitLab driver sets the value of Hook.Events with the
following mapping:
issues_events=true -> "issue"
tag_push_events=true -> "tag"
push_events=true -> "push"
note_events=true -> "comment"
merge_requests_events=true -> "merge"
other options -> none
It seems the event name strings are arbitrary and not consistent across different drivers, so the mapping itself doesn't provide much abstraction (if any). More importantly, for all other drivers, Hook.Events contains native events unrecognized by go-scm, but GitLab driver completely discards them. This is important to implement logics to "reconcile" webhooks (i.e., update only if configuration has changed) to sync the list of watched events. Therefore, this patch proposes Hook.Events returned by the hook-related functions in the GitLab driver to store the option names if their values are true, e.g., ["issues_events", "push_events", "confidential_issues_events"].
This is a breaking change.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
chhsia0 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.