Expose user emails via GraphQL
What does this MR do and why?
Related to Make committer email be configurable for groups... (#26710)
In order to build a Vue app which allows us to configure default commit e-mails per namespace, we need to expose:
- available e-mails
- currently configured commit emails per namespace
- default commit e-mail
This MR adds them to GraphQL.
Screenshots or screen recordings
How to set up and validate locally
The only way to create namespace commit emails is currently via the rails console. To make life easier- and "practice what I preach" #385333 - I have created seed data. You can insert the seed data by running:
FILTER=emails rake db:seed_fu
Then run a GraphQL query something like:
query {
user(username: "root") {
id
emails {
nodes {
id
confirmedAt
email
}
}
namespaceCommitEmails {
nodes {
id
namespace {
id
fullPath
}
email {
id
email
}
}
}
commitEmail
publicEmail
}
}
When logged in as root
or an administrator, you should see all details, but if you impersonate a "non-administrator" you should see that the e-mail addresses are not returned.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.