# GitHub Integration Generally, LiveCodes can be used anonymously without any accounts. This includes [importing](./import.html.md) code from GitHub gists or public repos. However, some features do require [login](./user-management.html.md) with a GitHub account and giving [specific permissions](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) to make use of GitHub services (e.g. [import](./import.html.md) from private repos, [export](./export.html.md) to gist, [deploy](./deploy.html.md), [assets](./assets.html.md) and [sync](./sync.html.md)). :::caution cookies User authentication is handled using [Firebase Authentication](https://firebase.google.com/products/auth) which **may use cookies**. By logging in, you agree that cookies may be stored on your device. ::: ## Features that require GitHub Account ### Public Repos Access to public repos is required for: - [Deploy](./deploy.html.md): A new public repo is created (if required) and code is pushed to the branch `gh-pages` of the repo. The is deployed on [GitHub pages](https://pages.github.com/). - [Assets](./assets.html.md): can be stored on a public repo published on [GitHub pages](https://pages.github.com/). ### Private Repos Access to private repos is required to: - [Import](./import.html.md) code from private repos. - [Sync](./sync.html.md) LiveCodes data to a private repo. ### Gists Access to gists is required to: - [Export](./export.html.md) projects to GitHub gist. ## Setting Permissions GitHub user permissions for LiveCodes app are set the first time the user logs in. Any subsequent login will use the first permissions, even if they are set differently. To change previously set permissions: - [Logout](./user-management.html.md) from the LiveCodes app. - [Revoke permissions](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-applications) of LiveCodes app in your GitHub account. - [Login](./user-management.html.md) again in LiveCodes and set the new permissions.