# How does Makecode handle GitHub username migrations

**URL:** <https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716>\
**Category:** Help\
**Created:** [May 12, 2024, 1:00am UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716 "2024-05-12T01:00:29Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 12, 2024, 1:00am UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/1 "2024-05-12T01:00:29Z")

</div>

I’m thinking of changing my username on GitHub to match my username elsewhere, but I’m worried about the possible ripple effect it may cause. How does makecode handle this? I mean that in the context of my account link, my projects linked to my repositories but most importantly, in the context of dependencies. Does makecode download dependenices into a project when they’re imported or does it pull them from github? Because if it’s the latter, every project that imports my extensions would break, including my own. @richard please help 🙏

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [May 12, 2024, 9:50pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/2 "2024-05-12T21:50:22Z")

</div>

> **[Changing your GitHub username - GitHub Docs](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/changing-your-github-username#repository-references)**
>
> You can change the username for your account on GitHub.

🙂

> **After you change your username, GitHub will automatically redirect references to your repositories.**
> 
> **Web links to your existing repositories will continue to work.** This can take a few minutes to complete after you make the change.  
> Command line pushes from your local repository clones to the old remote tracking URLs will continue to work.  
> **If the new owner of your old username creates a repository with the same name as your repository, that will override the redirect entry and your redirect will stop working.** Because of this possibility, we recommend you update all existing remote repository URLs after changing your username…

* * *

By the way, if anyone changes their username, I would appreciate it if you notify me so I can update it on Awesome Arcade. 😁

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 13, 2024, 4:22pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/3 "2024-05-13T16:22:28Z")

</div>

What would happen if somebody imported eg. S0m3randomguy/extension before the migration, and then imported sargedev/extension after the migration? Would that override the old extension (granted that they share the same namespace and exported functions). That would be the desired outcome

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [May 13, 2024, 4:26pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/4 "2024-05-13T16:26:52Z")

</div>

@Sarge as far as makecode is concerned, they are completely different extensions at that point. I don’t think GitHub has a way for us to detect when usernames change on their service and even if they do we definitely don’t do anything like that today.

In the scenario you give, the project would have two extensions in it and they would probably collide/break in many places. That being said, I don’t think too many people would actually try to add the same extension on top of itself like that.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 13, 2024, 4:50pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/5 "2024-05-13T16:50:57Z")

</div>

@richard Yes, but that’s when the issue of me updating an extension that was made under my old username with my new username arises. How would I do this? Because there are certain extensions I want to work on, and I don’t want to force people to switch to js, uninstall the old extension, removing all blocks of the extension in the process and add the new version under the new username just to recieve an update.

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [May 13, 2024, 6:30pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/6 "2024-05-13T18:30:19Z")

</div>

@Sarge I’m afraid there’s no workaround here except keeping your old username.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 13, 2024, 7:13pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/7 "2024-05-13T19:13:51Z")

</div>

Eh, I suppose I’ll just change it and weather the storm because I don’t want to be stuck with this one. Time to go tell everyone to remove my old extensions, yay…

@richard, one final question: If an extension is imported into a project, and the repository of the extension is deleted, does the extension become inaccessible or is it cached per project somehow?

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [May 13, 2024, 9:02pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/8 "2024-05-13T21:02:57Z")

</div>

It is not cached per project, but it is cached in the browser. Still, it would eventually get kicked out of the cache so I would not rely on that behavior.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 13, 2024, 9:27pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/9 "2024-05-13T21:27:37Z")

</div>

What about games that have been shared with a link? They’re compiled, so they should work forever, right?

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [May 13, 2024, 10:32pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/10 "2024-05-13T22:32:45Z")

</div>

@Sarge I really have no idea what will happen here, this situation has never really come up before.

You can test it out yourself, though. Create a throwaway extension repo, share a project that uses it, then delete the repo.

I _think_ it might still work fine.

In any case, I’m interested in knowing the result.

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [May 14, 2024, 5:49pm UTC](https://forum.makecode.com/t/how-does-makecode-handle-github-username-migrations/28716/11 "2024-05-14T17:49:22Z")

</div>

Would you look at that, not only does it work in a shared project, after deleting the repository MakeCode seems to make a local copy of the code in the project I imported the extension in!

![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/0/0f69dce4885ff971dba0e148c47c90eeaa8c2cd4.png)

As you can gather from the photo, the usual sync button is gone, because the repo is too, but this means not only will games published with my extensions break, neither will projects. Projects that use my old extensions will be forced to remove the old extensions if they want to update though. This is a big find! Hooray!
