Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP sekrit project #10610

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft

Conversation

carols10cents
Copy link
Member

No description provided.

@carols10cents carols10cents force-pushed the more-logins branch 2 times, most recently from 7d91bcc to e072a0c Compare February 18, 2025 02:32
@carols10cents carols10cents force-pushed the more-logins branch 6 times, most recently from a31b6fa to 6c9d8ff Compare March 7, 2025 21:29
That has a `provider` column that will (for now) always be set to 0,
which corresponds to `AccountProvider::Github`.

The table's primary key is (provider, account_id), which corresponds to
(0, gh_id). This constraint will mean a particular GitHub/GitLab/etc
account, identified from the provider by an ID, may only be associated
with one crates.io user record, but a crates.io user record could
(eventually) have *both* a GitHub *and* a GitLab account associated with
it (or two GitHub accounts, even!)

This is the first step of many to eventually allow for crates.io
accounts linked to other OAuth providers in addition/instead of GitHub.

No code aside from one test is reading from the linked accounts table at
this time.

No backfill has been done yet.

No handling of creating/associating multiple OAuth accounts with one
crates.io account has been done yet.
Right now, this will always have the same value as gh_login on the users
table and login on the linked accounts table. All of these values will
get updated when we get a new gh_login value.

Eventually, we're going to have to decouple the concept of crates.io
"username" from the logins of the various account(s), which you may or
may not want to update when you update your GitHub or other login, and
which may or may not conflict with other users' crates.io usernames.

But for now, set up for that future and defer the harder decisions until
later by making this field always get the same value as gh_login.

This adds a `username` field to the JSON views returned from the API but
does not use that field anywhere yet.

Question: should team owner JSON also have a field named `username` as
done in this commit? it's a little weird for a team to have a username
because it's not a user. but it's consistent. something more generic
like `name` might also be confusing. something more specific like
`crates_io_identifier` is more verbose but less confusable. shrug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant