Software Development


Source code management

Experience fast and scalable hosting for private, Git-based repositories with a web-based interface to browse and edit code plus flexible rules for granting member access.

Online code browsing

Online code browsing

Browse commits and files by change author, branch, or filename. Review the change history and annotations from other developers. Toggle the appearance of side-by-side diffs and discussions to gain insight into what changed and why.

Edit files and commit changes

Edit files and commit changes

Make minor changes directly in the web-UI, without switching to a dedicated code editor.

Commit status API

Monitor commit status from external build servers

Merge and move on with confidence by tracking whether changes committed to the codebase result in success or failure when built by a connected CI server. Space integrates with TeamCity (available) and GitHub Actions (planned), and it can retrieve status codes, branch details, timestamps, and more.

Manage and protect your source code

With Space, you have a choice of integrated security feature support that allows you the maximum flexibility to safely and securely control access to your source code.

Push restrictions

Configurable push restrictions make collaboration on the source code clear, transparent, and secure.

Protected branches

Set up rules for working with branches using a granular permission scheme.

Code Owners

Define an owner for specific paths or files in a Git repository, and enable approval from code owners as a quality gate for merge requests.

Mirroring

Mirror your repository from GitHub with two-way synchronization. Invite commits from external collaborators while keeping your development secure in Space.

Safe Merge and Dry Run

Ensure that your merge commit passes integration checks and doesn't result in failed builds, before merging it into the main branch.


Code review

Establish a robust, customizable, and integrated code review process that works for you no matter whether you want formal rules and conditions or not. Review code in the branch before it’s merged to master, or after merging one or more commits. Space supports both workflows with ease.

Collaborate on code in place

Collaborate on code in place

Start discussions and collaborate with your teammates directly inside the codebase. Contributors can reply directly or react with emoji. In the end, your code remains easy to read, debug, maintain, and extend. The messy conversations are safely contained inside the vacuum of Space.

Ping-pong code review process

Efficient and effective code reviews

Track discussions between the reviewer and the author with a transparent system for accepting changes and resolving concerns.

Review commits and enter comments as you go through each file before collaborating with the author, who can update the code and leave a reply or resolve the discussion.

Comment on multiple lines, and suggest direct changes to the code when reviewing a merge request. Your teammates can then accept them in a single click.

Merge requests

Merge requests

You can restrict direct commits to the master (or any) branch using the permission scheme. Create merge requests that are accepted automatically after Automation tests have passed or when a code review that follows a predefined flow is complete, or after a code owner approves the changes. Automatically update issues when a linked merge request is merged.

Set your rules

A successfully finished Automation job, approval from a code owner or a designated teammate, a check provided by an external service – any combination of these conditions can serve as a quality gate that must be passed before users can merge their changes.


Integration with JetBrains IDEs

Connect your favorite JetBrains IDE to a Space organization to get access to your repositories, code reviews, merge requests, Automation (CI builds), and packages. Experience the power of built-in Space code reviews right from the IDE, or enjoy even more powerful code reviews from the Space UI.

Space integration is bundled in IntelliJ IDEA starting from 2021.1, in PyCharm starting from 2021.2, and all JetBrains IDEs starting from version 2022.2.

With Space IDE integration you can:

  • Clone Space Git project repositories right from your IDE.
  • Create and perform code reviews with merge requests and discuss code snippets with your teammates from your IDE.
  • Assign and mention team members, and see the related branches in code reviews.
  • View and add reactions in code review chats: quickly react with a Eyes emoji, or react to a long-awaited change with a Party parrot dancing.
  • Easily edit Space Automation scripts in IntelliJ IDEA with code highlighting and automatic code completion.
  • Track an automation job’s progress in the Git log.

Cloud dev environments

Start coding in your IDE in seconds with prebuilt snapshots

Overcome the limits of local machines and slow laptops by keeping your source code safe and secure on a remote machine, with JetBrains’ remote development workflow.

Spin up a preconfigured Space cloud dev environment, connect to your JetBrains IDE, and start coding in seconds. No more waiting for building projects, downloading dependencies, or indexing IDEs.

Standardize your environments by installing all of the tools and libraries required by your project and reproduce them at any time to simplify onboarding. Newcomers can start developing almost instantly instead of wasting hours preparing their local machines.

Learn more about Space dev environments.


Automation

Modern and intuitive ways to organize your continuous delivery pipelines along with a solution for a broad spectrum of automation tasks.

Automate anything

Continuous Integration and Continuous Delivery (CI/CD)

Simple yet powerful CI/CD out of the box: on-the-fly test reporting, parallel execution, local reproducibility (planned), with coverage for major technical stacks like Gradle and Docker.

Continuous Integration and Continuous Delivery

Deployments

Deployments let you track the delivery of source code changes to a deployment environment, such as a production or staging server, an application store, and others. Deployments can be used with any CI/CD tool of your choice, including Space Automation, JetBrains TeamCity, GitHub Actions, and others.

Commit status API

Configuration as code

Automation in Space is configured using scripts. The Automation UI in Space is used to visualize script results: logs, tests, and artifacts. Space uses a Kotlin-based DSL as its scripting language, with plans to support YAML in the future.

Integrate with other Space modules

In an Automation script, you have access to the Space HTTP API client. This lets you work with any other Space module: send messages to Chats, create articles, access team directory, and much more.

Space Cloud run environments

  • Docker containers running in the Space Сloud infrastructure.
  • Docker containers running on self-hosted machines.
  • Self-hosted machines on Linux, Windows, and macOS.
  • Virtual machines in the Space Cloud infrastructure on Linux.
  • Virtual machines in the Space Cloud infrastructure on Windows and macOS. planned

Space On-Premises run environments

  • Docker containers running in a Kubernetes cluster.
  • Docker containers running on self-hosted machines.
  • Self-hosted machines on Linux, Windows, and macOS.

Integrate with external tools

Get access to an assortment of APIs that connect to external tools and services, including:

  • api.docker: to build and publish Docker images.
  • api.gradle: to build and report tests using Gradle.

In the future, we plan to extend this list to include .NET, npm, Maven, Bazel, and others.

Integration with TeamCity

Space integration with TeamCity, a powerful continuous integration and test reporting tool, allows you to do the following:

  • Publish build statuses in Space
  • Authenticate in TeamCity with a Space account
  • Create projects, build configurations, and VCS roots from a Space repository

Package management

Create and use package repositories in your CI/CD pipelines or from your local machine. Share packages and files between products using Container, Maven, NuGet, Python, Composer, Dart, Rust, npm, and File repositories.

Package management

Apps distribution

Use container registries to distribute your apps as container images, and use them during deployment.

Package dependencies

Use a local repository to store and consume packages privately and mirror repository to mirror an upstream repository, like Maven Central, to keep the required package dependencies as long as you need them.

Powerful search

Find and view package details to understand how it was produced.

Package vulnerability analysis planned

Configure Space to check packages against common vulnerability issues automatically. These checks can be especially helpful before publishing a package to production.

Automatic repository cleanup

Reduce the size of your repository by configuring the auto-deletion of packages you no longer need. Set your conditions to save essential packages from deletion.