Private.ConfigSourceA type to hold declarative values to configure crs commands for a given repository.
The expectations is that certain commands allow for a file to be given as argument to a --config FILE flag, which must contain a serialization of a value of type t.
This particular config is expected to contain repository specific configuration.
We are using JSON5 as serialization format.
type t = {default_repo_owner : Volgo_base.Vcs.User_handle.t Base.option;user_mentions_whitelist : Volgo_base.Vcs.User_handle.t Base.list Base.option;invalid_crs_annotation_severity : Annotation_severity.t Base.option;crs_due_now_annotation_severity : Annotation_severity.t Base.option;}default_repo_owner When not in a PR, the default_repo_owner may be used to assigned certain kinds of otherwise not easy to assign to a particular user. For example, invalid CRs when creating CRs annotation for a particular commit outside of a pull request.
If the repository is owned by an individual, this would typically be that user. If the repository is owned by an organization, this may be set to a user in particular who would be assigned otherwise unassignable CRs. If it isn't set, such CRs will simply not be assigned to any one in particular.
user_mentions_whitelist enables a specific list of users to be notified in annotations comments, when notifications is requested. This is a protection measure to avoid spamming users that do not have ties to a repo in particular, or simply do not wish to be notified via CRs.
val create :
?default_repo_owner:Volgo_base.Vcs.User_handle.t ->
?user_mentions_whitelist:Volgo_base.Vcs.User_handle.t Base.list ->
?invalid_crs_annotation_severity:Annotation_severity.t ->
?crs_due_now_annotation_severity:Annotation_severity.t ->
Base.unit ->
t