---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/quickstart.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/quickstart.md
  - href: en/sourcecraft/quickstart.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
title: Getting started with SourceCraft
description: 'How to get started with SourceCraft: signing up, creating a repository, setting up CI/CD, and making changes.'
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/en/llms.txt


# Getting started with SourceCraft

<!-- source: en/_includes/sourcecraft/intro.md -->
_SourceCraft_ is a platform you can use to develop source code, perform version management, test, assemble, deploy, and maintain software products. It is a code repository management system for [git](https://git-scm.com/) with error tracking and a CI/CD pipeline.

For more information on working with `git`, see [Getting started with Git](https://sourcecraft.dev/portal/docs/en/sourcecraft/tutorials/quickstart-git.md).
<!-- endsource: en/_includes/sourcecraft/intro.md -->

<!-- source: en/_includes/sourcecraft/terms-link.md -->
[SourceCraft Terms of Use](https://yandex.com/legal/cloud_terms_sourcecraft/en/)
<!-- endsource: en/_includes/sourcecraft/terms-link.md -->

<iframe width="640" height="360" src="https://runtime.strm.yandex.ru/player/video/vplvx5ax7rgnwegswboa?autoplay=0&mute=0" allow="autoplay; fullscreen; picture-in-picture; encrypted-media" frameborder="0" scrolling="no"></iframe>

To get started:
1. [Sign up](#registration).
1. [Create a repository](#create-repo).
1. [Check out the test CI process](#test-ci).
1. [Set up your environment](#prepare-environment).
1. [Add an SSH key to SourceCraft](#add-ssh).
1. [Clone the repository](#clone-repo).
1. [Make changes to the new branch](#commit-push).
1. [Create a pull request](#create-pr).
1. [Merge with the main branch](#merge-pr).

## Sign up {#registration}

<!-- source: en/_includes/sourcecraft/registration.md -->
1. If you do not have a [Yandex ID](https://id.yandex.com/) yet, [sign up](https://yandex.com/support/id/en/authorization/registration.html).

    If using your social network profile to log in to Yandex, [create a username and password](https://passport.yandex.com/passport?mode=postregistration&create_login=1).
1. On the [SourceCraft](https://sourcecraft.dev) homepage, click **Log in** and select the Yandex ID profile you want to use to sign up for the service.
1. Select the [organization](https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/index.md#org) you are going to use to work with the service.

    <!-- source: en/_includes/sourcecraft/org-yc.md -->
    If you already have a [Yandex Cloud organization](https://yandex.cloud/en/docs/billing/concepts/organization), you can use it in SourceCraft.

    If you have none, an organization will be automatically created for you to work with SourceCraft.
    <!-- endsource: en/_includes/sourcecraft/org-yc.md -->

    You can also create a new organization.

    {% note tip %}

    <!-- source: en/_includes/sourcecraft/federations-note.md -->
    To authorize corporate accounts in SourceCraft using single sign-on (SSO), you can use Yandex Cloud [SAML-compatiable identity federations](https://yandex.cloud/en/docs/organization/concepts/add-federation).
    <!-- endsource: en/_includes/sourcecraft/federations-note.md -->

    {% endnote %}

1. Click **Proceed** ![image](../_assets/console-icons/arrow-right.svg).
1.  On the page that opens, fill out the profile information:
    * **Name**: Required field.
    * **Country**.
    * **City**.
    * **Company**.
    * **Job title**.
    * **Bio**.
    * **Links**.

    You can also add a profile image and a background.

1. Click **Looks good to me, open dashboard**.
<!-- endsource: en/_includes/sourcecraft/registration.md -->

## Create a repository {#create-repo}

1. In the left-hand panel, click ![image](../_assets/console-icons/plus.svg) **Create repository**.
1. Under **Your new repository details**:
    * Select **Blank repository** to create a new repository.

      You can [import](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/migration.md) an existing repository to SourceCraft.

    * In the **Name** field, specify a name for the repository, e.g., `test-repo`. The name may contain the following [ASCII characters](https://ru.wikipedia.org/wiki/ASCII): lowercase and uppercase Latin letters, numbers, commas, hyphens, and underscores.
    * Optionally, in the **Description** field, enter a description for the repository.
1. <!-- source: en/_includes/sourcecraft/repo-create-template.md -->
   Under **Repository template**, click **Browse templates**, select suitable repository template, and click **Use template**.

   Templates contain a preinstalled [CI/CD configuration](https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/ci-cd.md) and standard project files.

   To view the template contents, click **Preview**.
   <!-- endsource: en/_includes/sourcecraft/repo-create-template.md -->
1. Under **Visibility**, select **Private** for repository access type. Only users invited by you will be able to access the repository.
1. Click **Create repository**.

## Check out the test CI/CD process {#test-ci}

When initializing the repository, a test CI/CD process will be initiated.

Check the CI/CD process:

<!-- source: en/_includes/sourcecraft/ci-cd/ui-overview.md -->
1. Under ![image](../_assets/console-icons/code.svg) **Code** on the repository page, go to ![image](../_assets/console-icons/arrows-3-rotate-right.svg) **CI/CD**.
1. Select a running workflow.
1. The page that opens will display all workflow tasks, cubes (task steps), as well as statuses and execution results.
<!-- endsource: en/_includes/sourcecraft/ci-cd/ui-overview.md -->

## Set up your environment {#prepare-environment}

<!-- source: en/_includes/sourcecraft/prepare-environment.md -->
1. Create a pair of public and private SSH keys for your SourceCraft account:

    {% list tabs group=operating_system %}

    - Linux/macOS {#linux-macos}

      <!-- source: en/_includes/vm-ssh-prepare-key-linux-macos.md -->
      1. Open the terminal.
      1. Use the `ssh-keygen` command to create a new key:

          ```bash
          ssh-keygen -t ed25519 -C "<optional_comment>"
          ```

          You can specify an empty string in the `-C` parameter to avoid adding a comment, or you may not specify the `-C` parameter at all: in this case, a default comment will be added.

          After running this command, you will be prompted to specify the name and path to the key files, as well as enter the password for the private key. If you only specify the name, the key pair will be created in the current directory. The public key will be saved in a file with the `.pub` extension, while the private key, in a file without extension.

          By default, the command prompts you to save the key under the `id_ed25519` name in the following directory: `/home/<username>/.ssh`. If there is already an SSH key named `id_ed25519` in this directory, you may accidentally overwrite it and lose access to the resources it is used in. Therefore, you may want to use unique names for all SSH keys.
      <!-- endsource: en/_includes/vm-ssh-prepare-key-linux-macos.md -->

    - Windows 10/11 {#windows}

      <!-- source: en/_includes/vm-ssh-prepare-key-win-10-11.md -->
      If you do not have [OpenSSH](https://en.wikipedia.org/wiki/OpenSSH) installed yet, follow this [guide](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui) to install it.

      1. Run `cmd.exe` or `powershell.exe` (make sure to update PowerShell before doing so).
      1. Use the `ssh-keygen` command to create a new key:

          ```shell
          ssh-keygen -t ed25519 -C "<optional_comment>"
          ```

          You can specify an empty string in the `-C` parameter to avoid adding a comment, or you may not specify the `-C` parameter at all: in this case, a default comment will be added.

          After running this command, you will be prompted to specify the name and path to the key files, as well as enter the password for the private key. If you only specify the name, the key pair will be created in the current directory. The public key will be saved in a file with the `.pub` extension, while the private key, in a file without extension.

          By default, the command prompts you to save the key under the `id_ed25519` name in the following folder: `C:\Users\<username>/.ssh`. If there is already an SSH key named `id_ed25519` in this directory, you may accidentally overwrite it and lose access to the resources it is used in. Therefore, you may want to use unique names for all SSH keys.
      <!-- endsource: en/_includes/vm-ssh-prepare-key-win-10-11.md -->

    - Windows 7/8 {#windows7-8}

      <!-- source: en/_includes/vm-ssh-prepare-key-win-7-8.md -->
      Create keys using the PuTTY app:

      1. [Download](https://www.putty.org) and install PuTTY.
      1. Add the folder with PuTTY to the `PATH` variable:

          <!-- source: en/_includes/windows-environment-vars.md -->
          1. Click **Start** and type **Change system environment variables** in the Windows search bar.
          1. Click **Environment Variables...** at the bottom right.
          1. In the window that opens, find the `PATH` parameter and click **Edit**.
          1. Add your folder path to the list.
          1. Click **OK**.
          <!-- endsource: en/_includes/windows-environment-vars.md -->

      1. Launch the PuTTYgen app.
      1. Select **EdDSA** as the pair type to generate. Click **Generate** and move the cursor in the field above it until key creation is complete.

          ![ssh_generate_key](../_assets/compute/ssh-putty/ssh_generate_key.png)

      1. In **Key passphrase**, enter a strong password. Enter it again in the field below.
      1. Click **Save private key** and save the private key. Do not share its key phrase with anyone.
      1. Click **Save public key** and save the public key to a file named `<key_name>.pub`.
      <!-- endsource: en/_includes/vm-ssh-prepare-key-win-7-8.md -->

    {% endlist %}

1. <!-- source: en/_includes/turn-on-ssh-agent.md -->
   Launch the SSH agent:

   {% list tabs group=operating_system %}

   - Linux/MacOS {#linux-macos}

      1. Run this command:

         ```bash
         ssh-agent -s
         ```

      1. For the SSH agent to start on login, add the launch command to the `~/.profile` file:

         ```bash
         ssh-agent -s
         ```

   - Windows {#windows}

      1. Open the **Start** button context menu.
      1. Select **Computer Management**.
      1. Go to **Services and Applications** → **Services**.
      1. Open the context menu of the **SSH agent** service and select **Properties**.
      1. On the **Main** tab, change the startup type from **Off** to **Automatic**.
      1. Click **OK** and start the service.

   {% endlist %}
   <!-- endsource: en/_includes/turn-on-ssh-agent.md -->
1. Add a key to the SSH agent:

    ```bash
    ssh-add <private_key_path>
    ```
<!-- endsource: en/_includes/sourcecraft/prepare-environment.md -->

You can also access the repository using a [personal token (PAT)](https://sourcecraft.dev/portal/docs/en/sourcecraft/security/pat.md).

## Add an SSH key to SourceCraft {#add-ssh}

<!-- source: en/_includes/sourcecraft/double-ssh-error.md -->
{% note warning %}

An SSH key can only be associated with one user account. An attempt to specify an SSH key already added to SourceCraft by another user will cause an error.

If using several different Yandex Cloud [SAML-compatible identity federations](https://yandex.cloud/en/docs/organization/concepts/add-federation) to authenticate in SourceCraft, or, for example, a federation and a personal [Yandex ID](https://id.yandex.com), add different SSH keys for each profile.

{% endnote %}
<!-- endsource: en/_includes/sourcecraft/double-ssh-error.md -->

<!-- source: en/_includes/sourcecraft/add-ssh.md -->
1. Open the [service home page](https://sourcecraft.dev).
1. In the left-hand panel, click ![image](../_assets/console-icons/house.svg) **Home**and go to ![image](../_assets/console-icons/lock.svg) **Access** → ![image](../_assets/console-icons/key.svg) **SSH keys**.
1. On the **SSH keys** page, click **New SSH key**:
    * In the **Key name** field, specify a key name.
    * In the **Content** field, paste the contents of the public SSH key file.
1. Click **Add SSH key**.
<!-- endsource: en/_includes/sourcecraft/add-ssh.md -->

## Clone the repository {#clone-repo}

<!-- source: en/_includes/sourcecraft/clone-repo-ssh.md -->
1. [Install Git](https://git-scm.com/downloads).
1. In the top-right corner of the repository page, click ![image](../_assets/console-icons/chevron-down-wide.svg) **Clone**.
1. Copy the ![image](../_assets/console-icons/copy.svg) link for cloning the repository from the **SSH** field:
1. In the terminal, run this command:
    
    ```bash
    git clone <link_for_cloning_repository>
    ```

    To clone the repository via port 443, specify the port number in the URL:

    ```bash
    git clone ssh://ssh.sourcecraft.dev:443/<organization_slug>/<repository_slug>.git
    ```

    Here is an example:

    ```bash
    git clone ssh://ssh.sourcecraft.dev:443/sourcecraft/sourcecraft.git
    ```

    For more information on using SSH over HTTPS, see [this GitHub guide](https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port).

1. Go to your cloned repository:
    
   ```bash
   cd <repository_name>
   ```
<!-- endsource: en/_includes/sourcecraft/clone-repo-ssh.md -->

## Make changes to the new branch {#commit-push}

1. Create a new branch for the changes and push it to the remote repository:

    ```bash
    git checkout -b new-feature
    git push -u origin new-feature
    ```

1. Make changes to the repository files; for example, edit `README.md`.
1. Add the modified file to the `git` index, then commit and push the changes to the remote repository:

    ```bash
    git add .
    git commit -m "updated README.md"
    git push origin new-feature
    ```

## Create a pull request {#create-pr}

1. Under ![image](../_assets/console-icons/code.svg) **Code** on the repository page in SourceCraft, go to ![image](../_assets/console-icons/code-pull-request.svg) **Pull requests**.
1. In the top-right corner, click **Create pull request**.
1. In the **source** drop-down list, select the `new-feature` branch, and `main` in **target**.
1. Optionally, provide a name and description for the pull request.
1. Click **Publish pull request**.

## Merge with the main branch {#merge-pr}

1. To view the proposed changes, go to the ![image](../_assets/console-icons/file-code.svg) **Files changed** tab.
1. To approve the changes, click ![image](../_assets/console-icons/thumbs-up.svg) **Approve** in the top-right corner.
1. Click ![image](../_assets/console-icons/code-pull-request.svg) **Merge**.

## Useful links {#see-also}

* [SourceCraft resource relationships](https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/index.md)
* [Access management in SourceCraft](https://sourcecraft.dev/portal/docs/en/sourcecraft/security/index.md)
* [Security in SourceCraft](https://sourcecraft.dev/portal/docs/en/sourcecraft/security/security-overview.md)
* [Importing or mirroring a repository in SourceCraft](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/migration.md)
* [Configuring CI/CD in a SourceCraft repository](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/ci-cd.md)
* [Continuous integration and continuous deployment in SourceCraft](https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/ci-cd.md)
* [Setting up approval rules in a SourceCraft repository](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/code-review.md)
* [Approval rules in SourceCraft](https://sourcecraft.dev/portal/docs/en/sourcecraft/concepts/code-review.md)
* [Getting started with the SourceCraft CLI](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/cli-quickstart.md)
* [Working with the SourceCraft REST API](https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/api-start.md)

<!-- source: en/_includes/sourcecraft/yandex-project.md -->
_Project by Yandex© 2026 Yandex.Cloud LLC_
<!-- endsource: en/_includes/sourcecraft/yandex-project.md -->
