Home / Keptn v1 Docs / Release 0.19.x / Manage Keptn Projects / Git-based upstream
Keptn manages a project in an internal Git repository which is separate from the repository that stores your source code. To upstream this repository to a remote place that also works as backup, you must create a new Git repository. This GitHub repository is then specified as the upstream repo when creating a project.
Select one of the four options and make sure to have the Git user, token, and remote url before continuing.
If you do not have a GitHub user, create a user by signing up.
Create a personal access token for your user with repo scope:
(optional) If you want to use a dedicated GitHub organization for your repository, create a GitHub organization.
Go to your account or your GitHub organization and create a GitHub repository.
If you do not have a GitLab user, create a user by signing up for a free trial.
Create a personal access token for your user with write_repo scope:
Go to your account and create a GitLab project.
If you do not have a Bitbucket user, create a user by signing up for a free trial.
Create an app password for your user with Write permissions. Therefore, select your User > View profile > Settings > App passwords > Create app password
Go to your account and create a Bitbucket repository.
If you do not have an Azure DevOps user, create a user by signing up for a free trial.
Create a personal access token for your user with Read & write access for the Code:
Note: Please carefully select the Expiration date.
Go to your account and create an Azure project
Retrieve the URL for your repository.
Important: Remove the user from the URL before passing it to Keptn. For example, in the picture below the URL would be https://dev.azure.com/YOUR-ORG/keptn/_git/keptn.
After creating a Git repository, you can create a Keptn project as explained in Create a project.
If you have already a Keptn project and want to set the Git upstream, you can do this by executing the keptn update project command:
keptn update project PROJECTNAME --git-user=GIT_USER --git-token=GIT_TOKEN --git-remote-url=GIT_REMOTE_URL