Environments are created automatically by Garden Cloud when it receives events from a Core command running in that environment. If it's missing from the UI and you need it, e.g. because you're creating a secret that's scoped to it but you haven't deployed it yet, you can also create one from the project Settings page.
When you add a project via GitHub or GitLab, Garden Cloud clones the repository and scans it for Garden configuration files (i.e.
garden.ymlfiles). It will create projects for all the Garden projects it find in the repository.
Furthermore, it will update the project list on every merge to the main branch. So if a new project is added to the repository, it'll become visible in Garden Cloud once it's merged. Similarly, it'll update the name of a given project if it has changed.
Garden Cloud receives VCS events from GitHub or GitLab, depending on how the GitHub App or the GitLab account with the associated access token is configured. To prevent this for a given repository, simply uninstall it from the GitHub App, or in the case of GitLab, remove the user account that owns the access token from the repository.