Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Useful tools and tips for backup and recovery across all supported DevOps platforms.

Learn about repository and project selection methods in Xopero ONE, including manual selection and rule-based configuration.

Configure selection rules to automatically include or exclude specific Git repositories and projects from backup jobs.

How Xopero ONE restores repositories and metadata across Git providers for rapid disaster recovery and DevOps migrations.

Learn how Xopero ONE restores Git LFS objects alongside repositories to ensure complete data recovery for DevOps organizations.

How to restore a DevOps organization wiki and its metadata separately.
Learn about repository and project selection methods in Xopero ONE, including manual selection and rule-based configuration.
Xopero ONE supports multiple repository selection methods that allow administrators to define the scope of backup and recovery operations according to organizational requirements. Repositories can be selected manually, automatically, or included and excluded based on configurable rules and filters.
When creating a backup plan, one of the steps is to specify which repositories you want to protect. Xopero ONE offers several methods for selecting repositories:
Protect all: this option ensures that all existing repositories and projects, as well as any newly created ones, are automatically included in the backup plan without requiring manual updates.
Select projects: using checkboxes, you can choose specific projects to protect.
Select repositories: using checkboxes, you can choose specific repositories to protect.
Exclude repositories: using checkboxes, you can exclude specific repositories, allowing the plan to cover all other repositories by default.
Set rules: this option lets you define criteria to include repositories and projects based on attributes such as their names or associated topics, ensuring that repositories meeting these conditions are automatically protected.
Learn how Xopero ONE restores Git LFS objects alongside repositories to ensure complete data recovery for DevOps organizations.
Xopero ONE supports backup and recovery of Git Large File Storage (LFS) content for DevOps organizations, ensuring that repositories configured with Git LFS are protected together with their associated large binary objects. During restore operations, both standard Git data and LFS objects are recovered to preserve repository integrity and maintain consistency across supported DevOps platforms.
Xopero ONE supports the backup and recovery of LFS objects across all supported DevOps platforms.
While you can choose whether to include LFS metadata during the recovery process, please note that LFS must be restored alongside its parent repository; it cannot be recovered as a standalone item.
Learn about API limitations for Azure DevOps & DevOps Server in Xopero ONE.
Rate limits enhance security by preventing an overwhelming number of requests that could disrupt, block, or destabilize the application's functionality—the system enforces these limits for stability. For more information, visit .
In Azure DevOps Server (on-premises), API limits are flexible and depend on server resources and configuration. Unlike the cloud version, there are no fixed, global request limits—administrators set performance parameters and limits tailored to the organization's specific needs.
Overview of Azure DevOps and DevOps Server backup recovery in Xopero ONE, including restoration of repositories, wikis, and related metadata.
Rate limits are enforced for security and stability— excessive requests may block access or disrupt the application’s operation. For detailed information, refer to the .
Overview of Bitbucket data recovery in Xopero ONE, including restoration of repositories, wikis, and related metadata.
Repositories and projects created after applying method 2 or method 3 will not be automatically included in the backup plan and must be added manually.
Unfortunately, unlike other DevOps, Microsoft does not provide information about the exact number of queries that can be sent in a given time period.

How Xopero ONE restores repositories and metadata across Git providers for rapid disaster recovery and DevOps migrations.

Recover a single Azure DevOps and DevOps Server project backup copy, including its repositories and other metadata.

Learn how to restore a single Azure DevOps and DevOps Server repository backup.

Restore multiple Azure DevOps and DevOps Server project backup copies at once.

How to restore multiple Azure DevOps and DevOps Server repository backup copies at once.

How to restore a DevOps organization wiki and its metadata separately.

How Xopero ONE restores repositories and metadata across Git providers for rapid disaster recovery and DevOps migrations.

How to restore a single Bitbucket repository backup copy to a Git service or to localhost.

Restore multiple Bitbucket repository backup copies at once to a local device or to any Git service integrated with Xopero ONE.

How to restore a DevOps organization wiki and its metadata separately.



If LFS objects are included in your repository’s source code archives, downloading those archives will count toward the repository’s bandwidth usage.

Configure selection rules to automatically include or exclude specific Git repositories and projects from backup jobs.
Xopero ONE provides selection rules, allowing administrators to determine which repositories and projects are included or excluded from backup and recovery tasks. Rules can be based on names, owners, creation dates, branches, or specific patterns, offering granular control over the backup scope and ensuring that only relevant repositories and projects are processed.
Below are the selection rules and rule patterns you can use in Xopero ONE to select repositories and projects for inclusion in backup jobs within your DevOps organization.
Repository name — you can use the full or partial name of a repository. Wildcard characters can be used at the end of the rule to match repository names:
* matches zero or more characters
? matches exactly one character
Project name: protects all repositories within the specified project.
Repository name — you can use the full or partial name of a repository. Wildcard characters can be used at the end of the rule to match repository names:
* matches zero or more characters
? matches exactly one character
Repository name — you can use the full or partial name of a repository. Wildcard characters can be used at the end of the rule to match repository names:
* matches zero or more characters
? matches exactly one character
The following are examples of rule patterns, along with brief explanations:
Pattern: yourorganization/*
This will match all repositories in the organization named yourorganization.
Pattern: yourorganization/n??
All selection rules can use regular expression patterns (regex).
Regular expressions let you create flexible and adaptable rules that align with your organization's naming conventions. This approach allows precise targeting and automation based on consistent patterns in repository or project names.
The following are illustrative examples of how these rules can be applied, although the available configurations extend well beyond these cases:
Pattern: yourorganization/repo[0-9]+
This will match repositories such as repo1, repo12, repo123, and so on.
This article explains how to add an Azure DevOps Server organization to Xopero ONE.
Azure DevOps Server (self-managed, on-premise) does not support OAuth and requires a personal access token.
Log in to XMS, open the DevOps tab on the left side of the window, and select Azure DevOps from the list.
Click the Connect button under Azure DevOps Server.
Set your authentication method.
In Authentication, select Azure DevOps Server.
Enter the service address of your Azure DevOps Server (IP or DNS name, including the protocol).
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your Azure DevOps Server organization and grant Xopero ONE access to the specified resources.
Your Azure DevOps Server organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Learn more about the backup process for Azure DevOps.
Xopero ONE is designed to protect DevOps ecosystems, including Azure DevOps.
To ensure your entire Azure DevOps environment is reliably backed up, make sure to include all repositories along with their related metadata — the best practice is to create a backup plan for critical repositories and metadata that change daily (or even more frequently), for example, using the recommended Grandfather-Father-Son (GFS) rotation scheme.
Additionally, create a separate backup plan for unused repositories that you need to keep for future reference. This type of backup primarily serves Azure DevOps archival purposes, and with unlimited retention, you can store your copies for as long as needed — even indefinitely.
You can also delete repositories from your Azure DevOps account while keeping a copy in storage, which helps bypass Azure DevOps limits.
Incremental and differential backups help save storage space. In Xopero ONE you can define different retention and performance settings for each type of backup (full, incremental, and differential). For example, our software allows you to include only the blocks of Azure DevOps data that have changed since the last backup, reducing storage usage, speeding up the process, and limiting bandwidth.
Use different types of storage to replicate backups, minimize the risk of outages or disasters, and comply with the 3-2-1 backup rule (which means having at least three copies of your data on two different storage types, with at least one copy stored in the cloud).
Xopero ONE is a multi-storage system that allows you to store your data:
This article contains information on how to set up Azure DevOps & DevOps Server backup plan.
Login to Xopero ONE Management Service, open the Plans > Backup tab and click the Add plan button in the top bar.
Select Azure DevOps from the list.
Select (or add) the Azure DevOps or DevOps Server environment you want to include in the backup process, and choose the repositories to back up.
Protect all — protects an entire Azure DevOps organization.
Select projects — allows you to protect selected Azure DevOps projects (including its metadata).
Select repositories — protects only
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
This article explains how to add an Azure DevOps organization to Xopero ONE.
Log in to XMS, open the DevOps tab on the left side of the window, and select Azure DevOps from the list.
Topic name — specify the exact name of a topic. For example, if you enter the topic html, all repositories assigned to the html topic will be backed up.
Topic name — specify the exact name of a topic. For example, if you enter the topic html, all repositories assigned to the html topic will be backed up.
Group path: protects all repositories within the specified group or subgroup path.
Matches repositories where n is followed by exactly two characters.
yourorganization/.*data.* Matches any repository name containing the word data.
Pattern: yourorganization/(?!.*data.*)
Excludes any repository name that contains the word data.
Set rules — lets you set rules for Xopero ONE to automatically select resources to protect.
Xopero ONE allows you to protect the entire Azure DevOps environment.
You can have multiple workers and assign different workers to each backup plan.






Choose whether Xopero should automatically add new repositories to your backup.
Cloud workers cannot access local network storage. Choose a device with the necessary access if backing up locally.



In the window that pops-up, log in with a user account which has the required permissions for the repositories or projects to protect. If your Azure login session is active in a different tab, the login will complete automatically.
Check the Consent on behalf of your organization checkbox and click Accept to proceed.
Your Azure DevOps organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Log in to XMS, open the DevOps tab on the left side of the window, and select Azure DevOps from the list.
Click the advanced mode link under Azure DevOps and Azure DevOps Server tiles.
Set your authentication method.
In Authentication, select Azure DevOps.
For Connect using, choose Username and Personal Access Token.
Add or select PAT from the Password Manager.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your Azure DevOps organization and grant Xopero ONE access to the specified resources.
Your Azure DevOps organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
When adding an organization, you may be prompted to grant additional permissions to the Xopero ONE application — make sure your browser allows Xopero to open pop-up windows.
Depending on your browser, you can either adjust the settings to allow pop-ups or permit the authorization window to open once.

Restore multiple Azure DevOps and DevOps Server project backup copies at once.
Restoring multiple Azure DevOps projects enables organizations to quickly recover projects, repositories, and source code at scale, ensuring consistent and reliable restoration across the development environment.
The below steps demonstrate how to restore multiple Azure DevOps projects at once using Xopero ONE Management Service.
Deleted artifacts cannot be restored while they remain in the recycle bin — they can be restored, but you must remove them from the recycle bin first.
Azure does not allow restoring deleted packages to the same feed. Once a package is deleted, it must remain deleted. Restoring to a new feed does not have this limitation, so all packages should be restored there.
Get into the restore view using the following method:
Open the Azure DevOps tab (DevOps > Azure DevOps), then click the Explore button next to the organization whose backup you want to restore (explore icon in list view).
In the Projects & repositories tab, select all projects you want to restore, and then click Restore in the top menu.
Click every chosen project to select the backup plan and copy from which you want to restore data, then click Next.
Select the destination for the recovery and click Next.
In Data to restore section at the top, click Edit and select data you want to restore.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
Configure the recovery destination settings, depending on where the backup will be restored.
Select the target organization (where applicable).
In Restore settings, you can set custom names for all projects and repositories in the project, or add a suffix to their original names.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new project/repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Permissions required to integrate Bitbucket with Xopero ONE to protect its resources.
To protect a Bitbucket environment with Xopero ONE, the account or token used to authorize the connection must have sufficient permissions to access the workspaces, repositories, and related resources designated for backup. The specific permission scopes vary depending on the chosen authorization method.
When integrating Bitbucket using the OAuth authentication method, Xopero ONE requires the following permissions to securely access and protect your repository data:
Issues
Read and modify repositories' issues.
Pipelines
Access repositories' build pipelines and configure their variables.
Project settings
Read and modify workspace's project settings.
Read and transfer repositories within workspace's projects.
Repositories & pull requests
Administer repositories.
Delete repositories.
Read and modify repositories and their pull requests.
Manage runners
Access and edit workspaces and repositories' runners.
Snippets
Read and modify code snippets.
Team membership
Read and modify team membership details.
Workspaces
Access your workspaces for authentication.
Access and edit your workspaces and repositories' test.
Webhooks
Read and modify repositories' webhooks.
Wikis
Read and modify repositories' wikis.
Every API token created for Bitbucket integration with Xopero ONE requires specific permission scopes to restrict data access and define the exact operations the token can execute.
To ensure successful backup and recovery tasks, API token must be provisioned with the below required permissions.
read:webhook:bitbucket (hooks)
read:user:bitbucket (required to link the organization)
read:repository:bitbucket (repositories, downloads, synchronization)
read:pullrequest:bitbucket (pull requests)
read:pipeline:bitbucket (schedules)
read:pullrequest:bitbucket (pull requests)
read:webhook:bitbucket (hooks)
read:issue:bitbucket (issues)
How to restore a DevOps organization wiki and its metadata separately.
Recovering an organization wiki restores lost or overwritten documentation, enabling projects to quickly regain access to their knowledge base without affecting other repository or project metadata.
The following steps demonstrate how to quickly recover your wiki using Xopero ONE Management Service.
Get into the restore view using the following method:
Open the appropriate DevOps tab, then click the Explore button next to the organization whose backup you want to restore (explore icon in list view).
Search for the repository containing the wiki you want to restore, then click the restore icon in the action menu of that repository.
In the Backup plans section, select the appropriate backup plan, then go to the Backup copies section to choose the point in time from which you want to restore your wiki.
Select the Restore now button in the Restore wiki section to configure the restoration settings.
Select the destination for the recovery and click Next.
In the Restore to section, select the repository where you want to restore the wiki. If you are restoring the wiki to an Azure DevOps or Azure DevOps Server organization, also select the target project.
In the Restore settings section, you can limit the bandwidth if required by your network infrastructure and change the backup agent (default worker) that will perform the restoration.
Once all parameters are defined, click Restore to start the recovery process. You can monitor the progress in the Tasks tab; once finished, the wiki will be available in the defined organization account.
The following steps demonstrate how to quickly recover your Azure DevOps project wiki using Xopero ONE Management Service.
Get into the restore view using the following method:
Open the appropriate DevOps tab, then click the Explore button next to the organization whose backup you want to restore (explore icon in list view).
In the Projects & repositories tab, search for the project containing the wiki you want to restore, then click the restore icon in the action menu of that project.
Overview of protected Azure DevOps and Azure DevOps Server resources, including projects, repositories, wikis, and metadata secured by backup.
Azure DevOps protected resources define which parts of the environment Xopero ONE can access, backup, and restore.
The following tables list all Azure DevOps and Azure DevOps Server resources covered by backup.
Learn how to restore a single Azure DevOps and DevOps Server repository backup.
Xopero ONE allows organizations to restore individual Azure DevOps repositories along with their associated metadata. The process ensures repository integrity and consistency while minimizing impact on other projects, supporting efficient disaster recovery, migration, and point-in-time restore operations.
The following steps demonstrate how to quickly restore a single Azure DevOps repository using Xopero ONE Management Service.
Get into the restore view using the following method:
How to restore multiple Azure DevOps and DevOps Server repository backup copies at once.
Recovering multiple Azure DevOps repositories simultaneously enables organizations to quickly restore only the selected repositories, ensuring consistent and reliable recovery across the development environment.
The following steps demonstrate how to restore multiple Azure DevOps repositories at once using Xopero ONE Management Service.
Get into the restore view using the following method:
How to restore a single Bitbucket repository backup copy to a Git service or to localhost.
Single repository recovery for Bitbucket enables restoration of an individual repository together with its complete Git history, branches, tags, and associated metadata, without impacting other projects or repositories within the workspace.
The below steps demonstrate how to quickly restore a single Bitbucket repository using Xopero ONE Management Service.
Get into the restore view using the following method:
Restore multiple Bitbucket repository backup copies at once to a local device or to any Git service integrated with Xopero ONE.
Xopero ONE enables multiple Bitbucket repositories recovery, allowing administrators to restore several repositories simultaneously within a selected organization or project scope. The process preserves Git history, branches, tags, and supported metadata, ensuring data integrity and consistency across the restored resources.
The below steps demonstrate how to restore multiple Bitbucket repositories at once using Xopero ONE Management Service.
Get into the restore view using the following method:

Choose whether Xopero should automatically add new repositories to your backup.
Cloud workers cannot access local network storage. Choose a device with the necessary access if backing up locally.








Choose whether to restore repositories from the project's copy:
When the Restore repositories from this project's copy switch is turned off during the restore process, along with the project, all of its protected repositories are restored, regardless of whether the repositories were protected by the same plan or by different plans. The latest available backups are used.
When the switch is turned on, a different restore mechanism is applied. In this case, only repositories backed up by the same plan as the project are restored.
Adjust the bandwidth and other available settings, depending on the recovery destination.
Check which agent is set as the default for recovery and change it if necessary.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
By default, all items are selected for restoration. However, Xopero ONE allows you to choose which metadata to restore. You can include or exclude each element by toggling the switch next to it.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
If the custom name—or the original project and repository names—already exists within the selected Git organization, the restoration will fail. To ensure successful recovery, choose unique names or select the Add suffix to repo/project name option, so the restored items to retain their original names with an automatically generated suffix.




Due to required changes, the latter mechanism is not available for backups created with Xopero ONE versions earlier than 2.0.5 or for agents running versions lower than 2.0.5.
To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.
read:issue:bitbucket (issues)
read:wiki:bitbucket (wiki)
admin:repository:bitbucket (branch restriction rules, deployment keys, branching models)
read:wiki:bitbucket (wiki)
write:wiki:bitbucket (wiki)
write:webhook:bitbucket (hooks)
write:ssh-key:bitbucket (deployment keys)
write:repository:bitbucket (repositories, downloads)
write:pullrequest:bitbucket (pull requests)
write:pipeline:bitbucket (schedules)
write:issue:bitbucket (issues)
admin:pipeline:bitbucket (known hosts, variables)
admin:repository:bitbucket (repositories, schedules, deployment keys, advanced details, branching models, branch restrictions)
admin:project:bitbucket (project — in some cases, creation is required to restore the repository)
read:repository:bitbucket (required for synchronization, repositories)
read:user:bitbucket (required to link the organization, repositories)
Xopero ONE does not support unscoped API tokens for Bitbucket integrations.
Applying minimal privileges may cause certain metadata (such as issues) to be omitted from the backup. Furthermore, while read-only permissions are sufficient for running backups, restoring data requires write access, which will necessitate generating a new token with elevated privileges during a recovery operation. To prevent backup omissions and ensure seamless, immediate data recovery, it is strongly recommended to select all required permissions when creating an API token for Bitbucket.
In the Backup plans section, select the appropriate backup plan, then go to the Backup copies section to choose the point in time from which you want to restore your wiki.
Select the destination for the recovery and click Next.
If your destination is GitHub, make sure that your repository has at least one wiki page created.
Select the Restore now button in the Restore wiki section to configure the restoration settings.
In the Restore to section, select the repository where you want to restore the wiki. If you are restoring the wiki to an Azure DevOps or Azure DevOps Server organization, also select the target project.
In the Restore settings section, you can limit the bandwidth if required by your network infrastructure and change the backup agent (default worker) that will perform the restoration.
Once all parameters are defined, click Restore to start the recovery process. You can monitor the progress in the Tasks tab; once finished, the wiki will be available in the defined organization account.
If your destination is GitHub, make sure that your repository has at least one wiki page created.







Work Item Attachments
Work Item Comments*
Work Items**
Work Items Related Work
Work Item Types***
Work Item Types - Layout
Fields
Groups
*The restored comment is attributed to the account performing the restore; content includes the original comment author information and the original creation date.
**Assignee and identity-type fields are not restored directly; instead, a comment is added identifying the original assignee and related values.
***A work item type consists of a name, description, color, icon, enabled/disabled status, and its internal configuration (layout and states).
Environments
Pipelines*
Variable Groups**
Project Wiki
*Configuration and definitions are restored; logs, run history, and artifacts are not. Only YAML pipelines that use Azure Repos are supported.
**Secret variables are not backed up due to an API limitation.
Closed Pull Requests*
Comments
Creation Date
Creator
Branches
Commits
Commit Creators
Commit History
Configurations
Configuration Variables
Test Cases (assignment to Test Suites)
Test Plans
*Included in backup, but can be restored only to GitHub and GitLab.
**Test run history is backed up and restored. The run state (for example, in progress or needs investigation) is restored in a separate step after the run is created.
***Automated test settings (associated pipelines) are not restored due to current pipeline restore limitations.
Artifact Settings
Deleted Package Options
Feed
Feed Name
Go to the Repositories tab and search for the repository you want to restore, then click the restore icon in the action menu of that repository.
Select the backup plan from which you want to restore data. Click the drop-down under Backup plans section and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the data available to restore and click Restore selected or Restore all to proceed.
Select the destination for the recovery and click Next.
In the Data to restore section at the top, you can select which of the previously chosen available data you want to restore.
In the Restore to section, you can change the previously selected recovery destination if needed.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings, you can set a unique, custom name for the repository (or use the custom name automatically generated by Xopero ONE).
Restoring never overwrites existing repositories in the organization — if you do not set a new name for the restored repository, it keeps its original name with an automatically generated suffix.
When you set a custom name for the repository, and a repository with that name already exists in the specified organization, the recovery will fail.
If you are restoring your repository to a different Git organization than the original (for example, GitHub), in addition to setting a custom name, you can choose whether to add a label to the restored elements (where applicable).
Check which agent is set as the default for recovery and change it if necessary.
If needed, you can also adjust the bandwidth.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Go to the Repositories tab, select all repositories you want to restore, and then click Restore in the top menu.
Click every chosen repository to select the backup plan and copy from which you want to restore data, then click Next.
Select the destination for the recovery and click Next.
In Data to restore section at the top, click Edit and select data you want to restore.
By default, all items are selected for restoration. However, Xopero ONE allows you to choose which metadata to restore. You can include or exclude each element by toggling the switch next to it.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organizations where the repositories will be restored.
In Restore settings, you can set custom names for all repositories or add a suffix to the original repository names.
Restoration will never overwrite existing repositories. If you enter a custom name—or leave the name as default—and a repository with that name already exists in your organization, the recovery will fail. To ensure successful recovery, either provide a unique name or select Add suffix to repo name to automatically append a unique identifier to the original repository name.
Adjust the bandwidth and other available settings, depending on the recovery destination.
Check which worker is set as the default for recovery and change it if necessary.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new project/repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Search for the repository you want to restore, then click the restore icon in the action menu of that repository.
Select the backup plan from which you want to restore data. Click the drop-down under Backup plans section and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the data available to restore and click Restore selected or Restore all to proceed.
Select the destination for the recovery and click Next.
In the Data to restore section at the top, you can select which of the previously chosen available data you want to restore.
Xopero ONE allows you to select specific metadata to restore — each element can be included or excluded by toggling the switch next to it.
If an item cannot be restored to the selected Git platform, it will be marked with an orange dot.
In the Restore to section, you can change the previously selected recovery destination if needed.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings, you can set a unique, custom name for the repository (or use the custom name automatically generated by Xopero ONE).
Restoring never overwrites existing repositories in the organization — if you do not set a new name for the restored repository, it keeps its original name with an automatically generated suffix.
When you set a custom name for the repository, and a repository with that name already exists in the specified organization, the recovery will fail.
If you are restoring your repository to a different Git organization than the original (for example, GitHub), in addition to setting a custom name, you can choose whether to add a label to the restored elements and whether to enable pipelines (where applicable).
Check which agent is set as the default for recovery and change it if necessary.
If needed, you can also adjust the bandwidth.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Select all repositories you want to restore and click Restore in the top menu.
Click every chosen repository to select the backup plan and copy from which you want to restore data, then click Next.
Select the destination for the recovery and click Next.
In Data to restore section at the top, click Edit and select data you want to restore.
By default, all items are selected for restoration. However, Xopero ONE allows you to choose which metadata to restore. You can include or exclude each element by toggling the switch next to it.
If an item cannot be restored to the selected Git platform, it will be marked with an orange dot.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organizations where the repositories will be restored.
In Restore settings, you can set custom names for all repositories or add a suffix to the original repository names.
Restoration will never overwrite existing repositories. If you enter a custom name—or leave the name as default—and a repository with that name already exists in your organization, the recovery will fail. To ensure successful recovery, either provide a unique name or select Add suffix to repo name to automatically append a unique identifier to the original repository name.
Adjust the bandwidth and other available settings, depending on the recovery destination.
Check which worker is set as the default for recovery and change it if necessary.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new project/repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Recover a single Azure DevOps and DevOps Server project backup copy, including its repositories and other metadata.
Xopero ONE enables single project recovery for Azure DevOps, allowing organizations to restore individual projects along with their selected metadata, ensuring data integrity and consistency while minimizing disruption to other projects and repositories.
The below steps demonstrate how to quickly restore a single Azure DevOps project using Xopero ONE Management Service.
Deleted artifacts cannot be restored while they remain in the recycle bin — they can be restored, but you must remove them from the recycle bin first.
Azure does not allow restoring deleted packages to the same feed. Once a package is deleted, it must remain deleted. Restoring to a new feed does not have this limitation, so all packages should be restored there.
Get into the restore view using the following method:
Open the Azure DevOps tab (DevOps > Azure DevOps), then click the Explore button next to the organization whose backup you want to restore (explore icon in list view).
In the Projects & repositories tab, search for the project you want to restore, then click the restore icon in the action menu of that project.
Select the backup plan from which you want to restore data. Click the drop-down under Backup plans section and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the destination for the recovery and click Next.
Select the available metadata to restore and click Restore selected or Restore all to proceed.
In the Data to restore section at the top, you can select which of the previously chosen available data you want to restore, if needed.
In the Restore to section, you can change the previously selected recovery destination if needed.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
Configure the recovery destination settings, depending on where the backup will be restored.
Select the target organization (where applicable).
If you are restoring your project to Azure DevOps or DevOps Server organization:
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new project/repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
Full list of permissions required for integrating Azure DevOps and Azure DevOps Server with Xopero ONE.
The account used for integration must have an appropriate access level assigned within Azure DevOps:
Basic.
Visual Studio Subscriber — professional or enterprise tier.
Overview of protected Bitbucket resources, including repositories, wikis, and metadata secured by backup.
Bitbucket protected resources define which parts of your environment Xopero ONE can access, secure, and restore.
The following list includes all Bitbucket resources covered by backup.
Package Sharing Options
Pages
Picklists
Work Item Types - States
Merged Pull Requests*
Open Pull Requests
Reviewers
Tags
Default Branch
Git Objects
LFS
Tags
Test Results
Test Run**
Test Suites***








To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.











To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.







To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.











To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.







Choose whether to restore repositories from the project's copy:
When the Restore repositories from this project's copy switch is turned off during the restore process, all of project's protected repositories are restored, regardless of whether the repositories were protected by the same plan or by different plans. The latest available backups are used.
When the switch is turned on, a different restore mechanism is applied. In this case, only repositories backed up by the same plan as the project are restored.
If you are restoring your project to a different Git organization than the original (for example, GitHub), you can set custom names for all repositories in the project or add a suffix to the original repository names. You can also choose whether to add a label to the restored elements (where applicable).
Adjust the bandwidth settings.
Check which agent is set as the default for recovery and change it if necessary.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
Xopero ONE allows you to select specific metadata to restore — each element can be included or excluded by toggling the switch next to it.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).







Due to required changes, the latter mechanism is not available for backups created with Xopero ONE versions earlier than 2.0.5 or for agents running versions lower than 2.0.5.
If the custom name or the original repository name already exists in the selected Git organization, the restore will fail. To complete the restoration successfully, you must choose unique repository names or select the Add suffix to repo name option so the restored repositories keep their original names with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.
Stakeholder (not recommended) — this level has limited access and cannot properly protect repositories.
To integrate Azure DevOps with Xopero ONE using OAuth, make sure the account has an administrator role. Otherwise, you may encounter permission errors or find that the approval button is inactive.
When integrating Azure DevOps via OAuth, the following scopes are required:
Build: read and execute (vso.build_execute)
Code: read, write and manage (vso.code_manage)
Environment: read and manage (vso.environment_manage)
Projects and Teams: read, write and manage (vso.project_manage)
Variable Groups: read and create (vso.variablegroups_write)
Wiki: read and write (vso.wiki_write)
Work Items: read and write (vso.work_write)
Packaging: read, write and manage (vso.packaging_manage)
Artifacts: user_impersonation
Login and read the profile
The ability to authorize the Xopero ONE OAuth application depends on your organization's User consent settings within Azure DevOps. The following options are available:
Allow user consent for apps from verified publishers, for selected permissions
Any user can authorize the app, provided that all requested permissions are classified as low impact by your administrator.
Do not allow user consent
Only users with the Application Administrator or Global Administrator role can authorize the integration.
Let Microsoft manage your consent settings (Recommended)
Organization — when generating PAT, you must enable the All accessible organizations value in the Organization field.
Build: read and execute
Code: read, write and manage
Environment: read and manage
Extensions: read
Project and Team: read, write and manage
Test Management: read and write
Variable Groups: read and create
Wiki: read and write
Work Items: read and write
Packaging: read, write and manage
To ensure both backup and restore operations succeed, the following permissions are required:
Organization level:
General:
Create new projects (restore)
Boards:
Create process (restore)
Edit process (restore)
Project level:
General:
View project-level information (backup)
Repositories level:
Create branch (restore)
Create repository (restore)
Read (backup)
For on-premise installations, use the personal access token (PAT) method.
Organization — when generating PAT, you must enable the All accessible organizations value in the Organization field.
Build: read and execute
Code: read, write and manage
Environment: read and manage
Extensions: read
Project and Team: read, write and manage
Test Management: read and write
Variable Groups: read and create
Wiki: read and write
Work Items: read and write
Packaging: read, write and manage
Xopero ONE can only protect projects that the integrated user account has explicit access to.
Xopero supports only organizational accounts (Microsoft Entra ID) — personal accounts are not supported. For private accounts, use PAT instead.
When performing a backup with minimal permissions, some metadata might be excluded. To ensure complete protection, select the permissions based on your data protection needs. Note that with read-only permissions, backups can be made, but restoring requires a new token or password with write access.
When performing a backup with minimal permissions, some metadata might be excluded. To ensure complete protection, select the permissions based on your data protection needs. Note that with read-only permissions, backups can be made, but restoring requires a new token or password with write access.

Minimum number of approvals from default reviewers
Minimum number of successful builds for the last commit with no failed builds and no in progress builds
No changes are requested
No unresolved pull request tasks
Prevent a merge with unresolved merge checks
Reset approvals when the source branch is modified
Reset requested changes when source branch is modified
Project
Website


Authorization is subject to Microsoft's current security guidelines. While this currently allows for Xopero ONE integration, availability may change based on Microsoft's evolving policies.









This article explains how to add a Bitbucket DC organization to Xopero ONE.
Log in to XMS, open the DevOps tab on the left side of the window, and select Bitbucket from the list.
Click the Connect button under Bitbucket Data Center.
Set your authentication method.
In Authentication, select Bitbucket DC.
Enter the Bitbucket DC server IP address and your username.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your Bitbucket DC organization and grant Xopero ONE access to the specified resources.
Overview of Bitbucket Data Center data recovery in Xopero ONE, including restoration of repositories and related metadata.
Choose whether Xopero ONE should automatically add new repositories to your backup.

How Xopero ONE restores repositories and metadata across Git providers for rapid disaster recovery and DevOps migrations.
Xopero ONE enables cross-recovery across DevOps ecosystems by letting organizations restore repositories and associated metadata between different hosting providers such as GitHub, GitLab, Bitbucket and Azure DevOps. Recovered content covers repositories and many forms of metadata, including pull requests, wikis, issues and other repository artifacts where supported by the source and target platforms.
The following tables outline which resources and metadata can be cross-restored between platforms.
How Xopero ONE restores repositories and metadata across Git providers for rapid disaster recovery and DevOps migrations.
Restore a single Bitbucket DC repository backup copy to a Git service or to localhost.
Restore multiple Bitbucket DC repository backup copies at once to any local device or Git service assigned to the Xopero ONE platform.



For Bitbucket DC, you can also use an HTTP access token instead of a password.



Different vendors provide various types of metadata, which may not be common to all providers. As a result, during the restore process, some metadata might not be available for restoration.
GitHub Enterprise
GitLab
GitHub
❌
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
✅
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
GitHub
❌
❌
❌
✅
✅
❌
GitHub Enterprise
❌
❌
❌
✅
✅
❌
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
✅
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
Bitbucket
❌
✅
❌
✅
✅
✅
GitHub
❌
✅
❌
✅
✅
✅
GitHub Enterprise
❌
✅
❌
✅
✅
✅
GitLab
❌
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
GitHub
❌
❌
❌
✅
✅
❌
GitHub Enterprise
GitLab
Bitbucket
❌
✅
❌
✅
✅
✅
GitHub
❌
✅
❌
✅
✅
✅
GitHub Enterprise
❌
✅
❌
✅
✅
✅
GitLab
❌
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
Bitbucket
❌
✅
❌
✅
✅
✅
GitHub
❌
❌
❌
✅
✅
✅
GitHub Enterprise
❌
❌
❌
✅
✅
✅
GitLab
❌
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
Bitbucket
❌
✅
❌
✅
✅
✅
GitHub
❌
✅
❌
✅
✅
✅
GitHub Enterprise
❌
✅
❌
✅
✅
✅
GitLab
❌
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
❌
❌
✅
✅
✅
GitHub
✅
❌
❌
✅
✅
✅
GitHub Enterprise
❌
❌
❌
✅
✅
✅
GitLab
✅
❌
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
✅
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
GitHub
❌
❌
❌
✅
✅
✅
GitHub Enterprise
❌
❌
❌
✅
✅
✅
GitLab
❌
❌
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
❌
✅
✅
✅
Bitbucket
✅
✅
❌
✅
✅
✅
GitHub
✅
✅
❌
✅
✅
✅
GitHub Enterprise
✅
✅
❌
✅
✅
✅
GitLab
✅
✅
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
❌
❌
❌
✅
✅
✅
GitHub
❌
❌
❌
✅
✅
✅
GitHub Enterprise
❌
❌
❌
✅
✅
✅
GitLab
❌
❌
❌
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
❌
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
GitHub
❌
❌
❌
✅
✅
❌
GitHub Enterprise
❌
❌
❌
✅
✅
❌
GitHub Enterprise
GitLab
GitHub
❌
❌
❌
✅
✅
❌
GitHub Enterprise
❌
❌
❌
✅
✅
❌
GitLab
❌
❌
❌
❌
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
✅
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
✅
✅
✅
✅
Bitbucket
✅
✅
✅
✅
✅
✅
Bitbucket DC
✅
✅
✅
✅
✅
✅
GitHub
✅
✅
✅
✅
✅
✅
GitHub Enterprise
✅
✅
✅
✅
✅
✅
GitLab
✅
✅
✅
✅
✅
✅
GitHub Enterprise
GitLab
Azure DevOps
✅
✅
❌
✅
✅
✅
Bitbucket
✅
✅
❌
✅
✅
✅
GitHub
✅
✅
❌
✅
✅
✅
GitHub Enterprise
✅
✅
❌
✅
✅
✅
GitLab
✅
✅
❌
✅
✅
✅
Overview of protected Bitbucket Data Center resources, including repositories, wikis, and metadata secured by backup.
Learn about recovering GitHub Enterprise teams in Xopero ONE.
When restoring repositories, one type of metadata that can be restored is teams. Xopero ONE ensures that teams and their associated users are reinstated.
This process may include sending invitations for users to rejoin the organization.
Before starting the restoration process, a prompt will inform you of this action—accepting the prompt will restore teams and send invitations as needed. Canceling the prompt will exclude teams from the restoration process.
This article provides instructions on how to set up a Bitbucket backup plan.
Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select Bitbucket from the list.
This article describes how to create a backup plan to back up your GitHub Enterprise repositories.
Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select GitHub from the list.
Required permissions for integrating GitHub Enterprise with Xopero ONE and protecting its resources.
Connecting GitHub Enterprise with Xopero ONE requires appropriate permissions to access and protect repositories and their associated metadata. The required permissions depend on the type of data that needs to be protected.
Integrating GitHub with Xopero ONE to back up and restore repositories, projects, and associated metadata requires an account with full administrative privileges.
To authenticate and access your account, Xopero ONE requires the following permission scopes:
Personal user data (read-only): access to email addresses and profile information.
In this article, you will find information about GitLab group backup in Xopero ONE.
Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select GitLab from the list, and then click Groups in the next aside.
To log in to your account, Xopero ONE requires the following permissions:
Access the authenticated user’s API — Xopero needs read and write access to the API, including:
All groups and projects.
The container registry.
This article contains information on how to set up a GitLab repository backup plan.
Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select GitLab from the list, and then click Repos and metadata in the next aside.
Rate limits are implemented to ensure the stability and security of the system, as excessive requests could overload or destabilize the application. For detailed information on GitLab rate limits, refer to .























Select (or add) the Bitbucket environment you want to include in the backup process, and choose the repositories to back up.
Optionally, Xopero ONE allows you to protect the entire Bitbucket environment.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
You can have multiple workers and assign different workers to each backup plan.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
Select (or add) the GitHub Enterprise environment you want to include in the backup process, and choose the repositories to back up.
In Xopero ONE, you can select repositories based on custom properties, but these properties must be configured at the organization level in GitHub. During synchronization, Xopero ONE retrieves the property definitions from the organization and the assigned values from the repositories. After synchronization, the panel displays a list of all properties fetched from every organization on the GitHub side that was added to XMS. For the feature to work correctly, the token used for authorization must also include the read:org permission.
Optionally, Xopero ONE allows you to protect the entire GitHub Enterprise environment.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
You can have multiple workers and assign different workers to each backup plan.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
Code and resources: access to issues, pull requests, wikis, settings, webhooks and services, deploy keys, collaboration invites, and workflow management (including updating GitHub Actions workflow files).
Personal access tokens are generated in GitHub Enterprise account settings under Tokens and can be assigned different permissions.
Registering the Xopero ONE application and executing full repository backup and restore tasks requires a token configured with at least repo and workflow permissions.
Xopero ONE supports backup and restore for GitHub Enterprise Cloud deployments that are separated from the main GitHub environment (for example, your-org.ghe.com). You can integrate isolated GitHub Enterprise Cloud instances as GitHub Enterprise Cloud with Data Residency.
With minimal privileges, certain metadata may not be included in the backup. Select the permissions based on the specific data you need to protect.
Add or select the GitLab groups you want to add to your plan.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
Information about groups and subgroups is included in the backup by default.
You can have multiple workers and assign different workers to each backup plan.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
The package registry.
The following permissions are the minimum needed to register the Xopero ONE application in your account and access repositories:
read_api
read_repository
By creating Personal Access Token, you can assign various types of permissions. Below is a list of permissions that will allow you to backup the repository metadata you are interested in in your organization.
read_api - Read permission required to assign an organization to GitLab.
api - Grants complete read/write access to the API, including all groups and projects.
read_repository - it is required to access the list of repositories and to be able to back them up.
write_repository - it is required to access to restore repository.
read_registry - grants read access to a Container Registry images if a project is private and authorization is required.
By creating a personal access token, you can assign different types of permissions. The following permissions allow you to back up the repository metadata in your organization:
read_api — required to assign an organization to GitLab.
api — grants full read/write access to the API, including all groups and projects.
read_repository — required to access the list of repositories and perform backups.
write_repository — required to restore a repository.
read_registry — grants read access to Container Registry images when a project is private and authorization is required.
Xopero ONE supports legacy tokens; for proper system operation, it is recommended to use them instead of fine-grained tokens.
With minimal privileges, some metadata (such as issues) may not be included in the backup. Select the necessary permissions based on the data you need to protect— if you grant only read permissions, backups can be performed, but restoring data will require a new token or password with write permissions.
Select (or add) the GitLab environment you want to include in the backup process, and choose the repositories to back up.
Optionally, Xopero ONE allows you to protect the entire GitLab environment.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
You can have multiple workers and assign different workers to each backup plan.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
Learn how to integrate your GitHub Enterprise organization with Xopero ONE using a personal access token (PAT).
Integrating a GitHub Enterprise organization with Xopero ONE allows centralized backup and management of all repositories within the selected GitHub environment. Once the organization is connected, administrators can set backup schedules, apply retention policies, organize repositories into groups, and monitor synchronization status and backup times directly from the dashboard to ensure consistent protection and compliance with data security policies.
Integration with GitHub Enterprise Cloud and GitHub Enterprise Server in Xopero ONE is only possible through a personal access token (PAT).
Additionally, if a GitHub Enterprise Cloud organization with data residency includes managed users with SSO enabled, the token must be authorized. Although authorizing the token in a single organization allows Xopero ONE to retrieve all organizations, we recommend authorizing each one you intend to protect. Token authorization is also required in any organization to which you plan to restore data.
The below steps demonstrate how to quickly integrate a GitHub Enterprise organization with Xopero ONE using Xopero ONE Management Service.
Open the DevOps tab on the left side of the window and select GitHub from the list.
Click Connect under the appropriate GitHub Enterprise instance type (GitHub Enterprise Server or GitHub Enterprise Cloud with Data Residency).
In this article, you will learn how to restore data from a GitLab group backup.
Get into the restore view using the following method:
Open the GitLab tab (DevOps > GitLab), then click the Groups button next to the organization whose backup you want to restore.
Search for the repository you want to restore, and click the Restore button in the action menu of that repository.
Next, select the backup plan from which you want to restore data. Click AVAILABLE PLANS and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Choose the data you want to restore, or use the default settings.
In the next aside, click Edit next to Data to restore if you need to adjust it.
Next, select the destination where you want to restore the data.
In Restore settings you can set a custom name for the repository that will be created during the restore process and limit the internet bandwidth.
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, a new repository will be created in your organization account.
This article explains how to add a GitLab (self-managed) organization to Xopero ONE.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitLab from the list.
Click the Connect button under GitLab Self-managed.
Set your authentication method.
In Authentication, select GitLab Self-Managed.
In Settings, enter your GitLab service IP address.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your GitLab (self-managed) organization and grant Xopero ONE access to the specified resources.
Learn more about the backup process for GitHub.
Xopero ONE is designed to protect DevOps ecosystems, including GitHub.
To ensure your entire GitHub environment is reliably backed up, make sure to include all repositories along with their related metadata — the best practice is to create a backup plan for critical repositories and metadata that change daily (or even more frequently), for example, using the recommended Grandfather-Father-Son (GFS) rotation scheme.
Additionally, create a separate backup plan for unused repositories that you need to keep for future reference. This type of backup primarily serves GitHub archival purposes, and with unlimited retention, you can store your copies for as long as needed — even indefinitely.
You can also delete repositories from your GitHub account while keeping a copy in storage, which helps bypass GitHub limits.
Incremental and differential backups help save storage space. In


















There is no option to restore GitLab groups to other Git providers — they can only be restored between GitLab environments.
Cloud worker (cloud-installed Xopero ONE worker) allows you to perform cloud-to-cloud backups if you want to store your backups in the cloud.












Use different types of storage to replicate backups, minimize the risk of outages or disasters, and comply with the 3-2-1 backup rule (which means having at least three copies of your data on two different storage types, with at least one copy stored in the cloud).
Xopero ONE is a multi-storage system that allows you to store your data:
In the cloud (Xopero Cloud Storage, AWS S3, Wasabi Cloud, Backblaze B2, Google Cloud Storage, Azure Blob Storage, or any S3-compatible public cloud).
Locally (NFS, CIFS, SMB network shares, or local disk resources).
In a hybrid or multi-cloud environment.
In Settings, enter the GitHub Enterprise service address and add or select a personal access token (PAT) from the Password Manager.
Choose whether Xopero ONE should automatically add new repositories to your backup.
Configure the repository synchronization and the default worker. Specify the synchronization start time or set a time interval for automatic updates.
Click Proceed to complete the process of adding your GitHub Enterprise organization and grant Xopero ONE access to the specified resources.
Your GitHub Enterprise organization has been successfully added to Xopero ONE. Click Custom policy to modify the backup policy settings, or click Run backup to start the backup immediately using the current policy configuration.
Xopero ONE supports backup and restore for GitHub Enterprise Cloud deployments that are separated from the main GitHub environment (for example, your-org.ghe.com). You can integrate isolated GitHub Enterprise Cloud instances as GitHub Enterprise Cloud with Data Residency.


Choose whether Xopero should automatically add new repositories to your backup and whether it should include GitLab groups in the backup.



This article explains how to add a GitLab (cloud) organization to the Xopero ONE platform to protect repositories or restore existing backups.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitLab from the list.
Click the Connect button under GitLab.
, log in with a user account which has the required permissions for the repositories or projects to protect. If your GitLab login session is active in a different tab, the login will complete automatically.
Grant Xopero ONE access to the specified resources (when prompted).
Your GitLab organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitLab from the list.
Click the advanced mode link under GitLab and GitLab Self-managed tiles.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitLab from the list.
Click the advanced mode link under GitLab and GitLab Self-managed tiles.
When adding an organization, you may be prompted to grant additional permissions to the Xopero ONE application— make sure your browser allows Xopero to open pop-up windows.
Depending on your browser, you can either adjust the settings to allow pop-ups or permit the authorization window to open once.
Learn about recovering GitHub teams in Xopero ONE.
When restoring repositories, one type of metadata that can be restored is teams. Xopero ONE ensures that teams and their associated users are reinstated.
This process may include sending invitations for users to rejoin the organization.
Before starting the restoration process, a prompt will inform you of this action—accepting the prompt will restore teams and send invitations as needed. Canceling the prompt will exclude teams from the restoration process.
The maximum number of external collaborators that can be restored for a single repository in one operation is limited to 50. This restriction is due to GitHub API limitations, which define how many collaborators can be processed in a single batch. This constraint is independent of Xopero ONE and cannot be bypassed by the backup solution.

Required permissions for integrating GitHub with Xopero ONE and protecting its resources.
Connecting GitHub with Xopero ONE requires appropriate permissions to access and protect repositories and their associated metadata. The required permissions depend on the authorization method used, such as a GitHub App or personal access token (PAT), and on the type of data that needs to be protected.
Integrating GitHub with Xopero ONE to back up and restore repositories, projects, and associated metadata requires an account with full administrative privileges.
Exact roles and permission levels may vary depending on individual repository settings, project configurations, or organization-level security policies. Below are examples of different roles, along with the corresponding permissions and the capabilities they provide in Xopero ONE.
To ensure seamless integration and correct operation, the Xopero ONE OAuth application* requires the following permissions:
This article outlines the classic projects restoration process.
According to the official GitHub page, projects (classic) are being discontinued.
You can only create a new project (classic) for an organization, repository, or user that already has at least one project (classic). If you are unable to create a project (classic), create a project v2 instead.
When repositories containing projects (classic) are restored to an organization that does not support this feature, direct restoration in the original format is not possible. Instead, the system converts the restoration from projects (classic) to projects v2.
Key considerations include:


Set your authentication method.
In Authentication, select GitLab.
For Connect using, choose OAuth App.
Choose whether Xopero should automatically add new repositories to your backup and whether it should include GitLab groups in the backup.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
In the window that pops-up, log in with a user account which has the required permissions for the repositories or projects to protect. If your GitLab login session is active in a different tab, the login will complete automatically.
Grant Xopero ONE access to the specified resources (when prompted).
Your GitLab organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Set your authentication method.
In Authentication, select GitLab.
For Connect using, choose Login and Personal Access Token.
Enter your username or email.
Add or select PAT from the Password Manager.
Choose whether Xopero should automatically add new repositories to your backup and whether it should include GitLab groups in the backup.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your GitLab organization and grant Xopero ONE access to the specified resources.








Full control of projects.
Read team discussions.
Read org and team membership, read org projects.
Read all user profile data.
Full control of private repositories.
Access user email addresses (read-only).
Update GitHub Actions workflows.
*The Xopero ONE OAuth application for GitHub is called GitProtect.
Xopero ONE GitHub App* installation requires the following permissions:
Read access to actions, deployments, metadata, and repository projects.
Read and write access to administration, code, issues, pull requests, repository hooks, and workflows.
*The Xopero ONE GitHub App is called GitProtect.
Personal access tokens are generated in GitHub account settings under Settings > Developer settings > Personal access tokens and can be assigned different permissions.
Registering the Xopero ONE application and executing full repository backup and restore tasks requires a token configured with at least repo and workflow permissions.
The following list outlines the permissions required to back up repository metadata within an organization:
repo (access repositories)
project (read the projects associated with the repository)
admin:org (read the organization's projects)
read:discussion (read team discussions)
read:public_key (access keys)
read:repo_hook (access webhooks)
With minimal privileges, certain metadata may not be included in the backup. Select the permissions based on the specific data you need to protect.
If you grant the token only read permissions, you can perform backups, but restoring data requires generating a new token with write permissions.
The conversion retains elements such as the project name, issue cards, and pull request cards.
Certain metadata, such as columns or notes, cannot be restored due to GitHub API limitations.
The system flags these conversions in the restoration summary for transparency.
Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.
Data that cannot be converted remains in the backup copy. Future updates to the GitHub API may enable improved restoration capabilities, allowing additional metadata to be recovered.
This article explains how to restore a single repository to a Git service or localhost.
Get into the restore view using the following method:
Open the GitHub tab (DevOps > GitHub), then click the Restore button next to the organization whose backup you want to restore.
You can also use the Explore button to restore your data.
Search for the repository you want to restore, and click the Restore button in the action menu of that repository.
Next, select the backup plan from which you want to restore data. Click View available plans and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device. After selecting the repository and the metadata you want to include, click the Restore selected or Restore all button to proceed.
In the next aside, click Edit next to Data to restore if you need to adjust it.
Next, select the destination where you want to restore the data.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings you can set a custom name for the repository that will be created during the restore process and limit the internet bandwidth.
You can enter a new repository name in one of the following formats:
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, a new repository will be created in your organization account.
Extensive testing and analysis have shown that restoring repositories with many issues and pull requests significantly prolongs the restoration process. This delay is caused by limitations within GitHub’s infrastructure and the API used for repository restoration.
To speed up the repository access, it is recommended to exclude issues and pull requests during the initial restore. Once the repository is restored, you can perform a subsequent restore—including issues and pull requests—under a different repository name. This approach ensures quick access while still allowing full restoration of repository content.
This article provides instructions for adding a Bitbucket organization to Xopero ONE.
Log in to XMS, open the DevOps tab on the left side of the window, and select Bitbucket from the list.
Click the Connect button under Bitbucket.
A pop-up with Bitbucket login page will appear. Log in using your admin credentials and grant Xopero ONE access to the specified resources (when prompted).
Your Bitbucket organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Log in to XMS, open the DevOps tab on the left side of the window, and select Bitbucket from the list.
Click the advanced mode link under Bitbucket and Bitbucket DC tiles.
Log in to XMS, open the DevOps tab on the left side of the window, and select Bitbucket from the list.
Click the advanced mode link under Bitbucket and Bitbucket DC tiles.
When adding an organization, you may be prompted to grant additional permissions to the Xopero ONE application— make sure your browser allows Xopero to open pop-up windows.
Depending on your browser, you can either adjust the settings to allow pop-ups or permit the authorization window to open once.
This article contains information on how to set up a GitHub backup plan.
Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select GitHub from the list.
Select (or add) the GitHub environment you want to include in the backup process, and choose the repositories to back up.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.




In this article, you will get information about all protected resources, elements and metadata in GitHub Enterprise.
In this article, you will learn how to restore a single repository to a Git service or localhost.
Get into the restore view using the following method:
Open the GitHub tab (DevOps > GitHub), then click the Restore button next to the organization whose backup you want to restore.
In Xopero ONE, you can select repositories based on custom properties, but these properties must be configured at the organization level in GitHub. During synchronization, Xopero ONE retrieves the property definitions from the organization and the assigned values from the repositories. After synchronization, the panel displays a list of all properties fetched from every organization on the GitHub side that was added to XMS. For the feature to work correctly, the token used for authorization must also include the read:org permission.
Optionally, Xopero ONE allows you to protect the entire GitHub environment.
You can have multiple workers and assign different workers to each backup plan.





If you enter only the repository name (e.g., test) and the source organization is registered in Xopero ONE, the repository will be restored there. If the organization is not registered, the repository will be restored to your account.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
Xopero ONE allows you to select specific metadata to restore — each element can be included or excluded by toggling the switch next to it. Additionally, there is a Wiki recovery option below these settings. If your repository already exists in GitHub, you can choose to restore only the Wiki.
Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.
Closed or merged pull requests are recovered as closed issues.








Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
If a repository already exists in the selected folder, you can choose to overwrite the existing data.
Set your authentication method.
In Authentication, select Bitbucket.
For Connect using, choose OAuth App.
In the Settings section, choose whether to enable read-only mode and whether Xopero should automatically add new repositories to your backup.
If the Read-Only Access switch is enabled, the recovery options will be disabled.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your Bitbucket organization and grant Xopero ONE access to the specified resources (when prompted).
Set your authentication method.
In Authentication, select Bitbucket.
For Connect using, choose Username and App password.
Enter your Bitbucket email address.
Add or select App Password that contains your API token from the Password Manager.
Choose whether Xopero should automatically add new repositories to your backup.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your Bitbucket organization and grant Xopero ONE access to the specified resources.







Next, select the backup plan from which you want to restore data. Click View available plans and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Xopero ONE allows you to select specific metadata to restore — each element can be included or excluded by toggling the switch next to it. Additionally, there is a Wiki recovery option below these settings. If your repository already exists in GitHub Enterprise, you can choose to restore only the Wiki.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device. After selecting the repository and the metadata you want to include, click the Restore selected or Restore all button to proceed.
In the next aside, click Edit next to Data to restore if you need to adjust it.
Next, select the destination where you want to restore the data.
Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings you can set a custom name for the repository that will be created during the restore process and limit the internet bandwidth.
You can enter a new repository name in one of the following formats:
If you enter organization/name (e.g., xsupport/test), the repository will be restored with the chosen name in the specified organization. If the entered organization does not exist, the repository will be restored to the source organization.
If you enter only the repository name (e.g., test) and the source organization is registered in Xopero ONE, the repository will be restored there. If the organization is not registered, the repository will be restored to your account.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, a new repository will be created in your organization account.
You can also use the Explore button to restore your data.
Default
Full backup and restore.
Admin
Full backup and restore.
Write
Full backup and restore.
Read
Full backup. Restore only to the user's own account.
Member
Admin
Full backup. Restore only to the user's own account.
Maintain
Full backup. Restore only to the user's own account.
Write
Full backup. Restore only to the user's own account.
Triage
Backup excluding collaborators. Restore only to the user's own account.
Collaborator
Read
Backup excluding collaborators. Restore only to the user's own account.
Outside collaborator
Default
Backup excluding collaborators. Restore only to the user's own account.

Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.





Restore a single Bitbucket DC repository backup copy to a Git service or to localhost.
Xopero ONE enables single repository recovery for Bitbucket DC, allowing restoration of an individual repository together with its complete Git history, branches, tags, and supported metadata. The recovery process maintains repository integrity while ensuring that other projects and repositories within the Bitbucket DC instance remain unaffected.
The following steps demonstrate how to quickly restore a single Bitbucket DC repository using Xopero ONE Management Service.
Get into the restore view using the following method:
Open the Bitbucket tab (DevOps > Bitbucket), then click the Explore button next to the organization whose backup you want to restore (explore icon in list view).
Search for the repository you want to restore, then click the restore icon in the action menu of that repository.
Select the backup plan from which you want to restore data. Click the drop-down under Backup plans section and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the data available to restore and click Restore selected or Restore all to proceed.
Select the destination for the recovery and click Next.
In the Data to restore section at the top, you can select which of the previously chosen available data you want to restore.
In the Restore to section, you can change the previously selected recovery destination if needed.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings, you can set a unique, custom name for the repository (or use the custom name automatically generated by Xopero ONE).
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
In this article, you will learn how to restore multiple repositories to a Git service or localhost.
Get into the restore view using the following method:
Open the GitHub tab (DevOps > GitHub), then click the Restore button next to the organization whose backup you want to restore.
You can also use the Explore button to restore your data.
Select the repositories you want to restore and click the Restore selected button in the top menu.
By clicking an individual repository, an aside will appear where you can select a backup plan and a backup version to restore. Click Select under your chosen backup copies to continue.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device.
In the Data to restore section, you can use the switch to include or exclude metadata in the backup.
Next, select the destination where you want to restore the data.
In Map organizations section, select the target organizations where the repositories will be restored.
In the Restore settings, you can configure the following options:
When you toggle Restoring repos with custom name switch, a window will appear allowing you to rename one or more repositories.
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, new repositories will be created in your organization account.
In this article, you will learn how to restore multiple repositories to a Git service or localhost.
Get into the restore view using the following method:
Open the GitLab tab (DevOps > GitLab), then click the Manage & Restore button next to the organization whose backup you want to restore.
Select the repositories you want to restore and click the Restore selected button in the top menu.
By clicking an individual repository, an aside will appear where you can select a backup plan and a backup version to restore. Click Select under your chosen backup copies to continue.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device.
Choose whether to include metadata in the backup.
Next, select the destination where you want to restore the data.
In Map organizations section, select the target organizations where the repositories will be restored.
In the Restore settings, you can configure the following options:
When you toggle Restoring repos with custom name switch, a window will appear allowing you to rename one or more repositories.
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, new repositories will be created in your organization account.
In this article, you will find information on how to restore a single repository to a Git service or localhost.
Get into the restore view using one of the following methods:
Open the GitLab tab (DevOps > GitLab), then click the Manage & Restore button next to the organization whose backup you want to restore.
Search for the repository you want to restore, and click the Restore button in the action menu of that repository.
Open the Storages tab, and click the browse storage button in the storage action menu.
Click the Device section — you will then see all repositories that have been backed up and sent to the selected storage. Select one of the available repositories to proceed.
Next, select the backup plan from which you want to restore data. Click View available plans and choose one of the plans from the list.
Choose the backup version from all the backups that have already been performed — select the desired date and click the Restore button.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device. After selecting the repository and the metadata you want to include, click the Restore selected or Restore all button to proceed.
In the next aside, click Edit next to Data to restore if you need to adjust it.
Next, select the destination where you want to restore the data.
In Map organizations section, select the target organization to which the repository will be restored.
In Restore settings you can set a custom name for the repository that will be created during the restore process and limit the internet bandwidth.
You can enter a new repository name in one of the following formats:
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, a new repository will be created in your organization account.
Default Branch
Default Merge Commits Message
Default Squash Merging Message
Template Repository


If you are restoring your repository to a different Git organization than the original (for example, GitHub), in addition to setting a custom name, you can choose whether to add a label to the restored elements and whether to enable pipelines (where applicable).
Check which agent is set as the default for recovery and change it if necessary.
If needed, you can also adjust the bandwidth.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
Xopero ONE allows you to select specific metadata to restore — each element can be included or excluded by toggling the switch next to it.
If an item cannot be restored to the selected Git platform, it will be marked with an orange dot.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Restoring never overwrites existing repositories in the organization — if you do not set a new name for the restored repository, it keeps its original name with an automatically generated suffix.
When you set a custom name for the repository, and a repository with that name already exists in the specified organization, the recovery will fail.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
Additionally, in the Restore settings, you can limit bandwidth usage during the recovery process.
Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.
Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
Additionally, in the Restore settings, you can limit bandwidth usage during the recovery process.
Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
If you enter only the repository name (e.g., test) and the source organization is registered in Xopero ONE, the repository will be restored there. If the organization is not registered, the repository will be restored to your account.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
By default, the system restores the entire repository (all files, source code, etc.), while repository metadata is optional. Xopero ONE allows you to restore only selected metadata— each element can be included or excluded by toggling the switch next to it.
Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
If a repository already exists in the selected folder, you can choose to overwrite the existing data.












Overview of protected GitHub resources, including repositories, wikis, and metadata secured by backup.
GitHub protected resources define which repositories and data Xopero ONE can access, secure, and restore.
The following list includes all GitHub resources covered by backup.




If a repository already exists in the selected folder, you can choose to overwrite the existing data.








If a repository already exists in the selected folder, you can choose to overwrite the existing data.







Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
If a repository already exists in the selected folder, you can choose to overwrite the existing data.











To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.











Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic). When restored, projects (classic) are automatically converted to projects v2. Protected metadata for projects (classic) includes cards, issues assigned to cards, pull requests assigned to cards, columns, and notes.

Default branch
Default merge commits message
Default squash merging message
Template repository



This article provides information about protected resources, elements, and metadata in GitLab cloud and GitLab self-managed.
{*} — restored as comments in format: [{creation date}] {user name}: {content}; the author of these restored comments will always be the account performing the restore task, not the original commenter.



Login to XMS, open the Plans > Backup tab and click the Add plan button in the top bar.
Select Bitbucket from the list.
Select (or add) the Bitbucket DC environment you want to include in the backup process, and choose the repositories to back up.
Specify a name for the backup plan.
Select the appropriate metadata that you want to back up. Here, you can also change the default worker, which is the device directly responsible for the backup process of your repositories.
Select one of the locations assigned to your Xopero ONE instance as storage.
Customize the scheduler and specify how long your data should be retained. If needed, adjust the advanced settings to suit your needs.
If necessary, adjust the advanced settings such as encryption, error handling, or bandwidth limits to fit your requirements.
Double-check your data and click Save to create the backup plan.
Optionally, Xopero ONE allows you to protect the entire Bitbucket DC environment.
You can have multiple workers and assign different workers to each backup plan.






Learn how to integrate GitHub Enterprise (cloud or self-hosted) with Xopero ONE to protect repositories and their metadata.
Required permissions for integrating GitHub Enterprise with Xopero ONE and protecting its resources.
Learn how to integrate your GitHub Enterprise organization with Xopero ONE using a personal access token (PAT).


This article explains how to add a GitHub organization to Xopero ONE.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitHub from the list.
Click the Connect button under GitHub.
, log in with a user account which has the required permissions for the repositories or projects to protect. If your GitHub login session is active in a different tab, the login will complete automatically.
Grant Xopero ONE access to the specified resources (when prompted).
Your GitHub organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitHub from the list.
Click the advanced mode link under GitHub and GitHub Enterprise Server tiles.
Log in to XMS, open the DevOps tab on the left side of the window, and select GitHub from the list.
Click the advanced mode link under GitHub and GitHub Enterprise Server tiles.
When adding an organization, you may be prompted to grant additional permissions to the Xopero ONE application— make sure your browser allows Xopero to open pop-up windows.
Depending on your browser, you can either adjust the settings to allow pop-ups or permit the authorization window to open once.
Set your authentication method.
In Authentication, select GitHub.
For Connect using, choose GitHub App.
Choose whether Xopero should automatically add new repositories to your backup.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your GitHub organization and grant Xopero ONE access to the specified resources. In the window that pops-up, log in with a user account which has the required permissions for the repositories or projects to protect. If your GitHub login session is active in a different tab, the login will complete automatically.
Select repositories you want to protect and click Install & Authorize to proceed.
Your GitHub organization has now been successfully added to Xopero ONE. Click Custom policy to adjust your backup policy settings, or click Run backup to execute the backup immediately using the current policy configuration.
Set your authentication method.
In Authentication, select GitHub.
For Connect using, choose Login and Personal Access Token.
Enter your username.
Add or select PAT from the Password Manager.
Choose whether Xopero should automatically add new repositories to your backup.
Configure your repository sync and default worker. Specify hours for synchronization, or set a time interval for automatic updates.
Click Proceed to complete adding your GitHub organization and grant Xopero ONE access to the specified resources.







If the PAT does not exist, you need to add it. The PAT should be pasted into the password field.







Learn more about GitHub Apps and their features.
GitHub can be integrated with Xopero ONE using several authorization methods, including a GitHub App, which provides a secure and scalable way to connect GitHub organizations for backup and recovery operations. With granular permissions, repository-level access, and short-lived authentication tokens, GitHub Apps help protect repositories and related metadata while supporting automated backup workflows, repository synchronization, and streamlined management across the Xopero ONE environment.
A GitHub App is a type of integration you can build to interact with and extend GitHub's functionality. GitHub Apps can provide flexibility and reduce friction in your processes without requiring users to sign in or create a service account.
Like OAuth apps, GitHub Apps use OAuth 2.0 and can act on a user's behalf. Unlike OAuth apps, GitHub Apps can also act independently of a user.
The key advantages of using the GitHub App for integration with Xopero ONE include enhanced security, better rate limit handling, and more reliable repository management.
GitHub Apps provide enhanced control and security compared to OAuth apps. Instead of broad scopes, GitHub Apps use fine-grained permissions, giving administrators better control over what the app can access and perform:
Granular permissions — GitHub Apps request only the permissions they need, unlike OAuth apps, which rely on broader permission scopes.
Repository-specific access — users or organization owners can choose which repositories an app can access, whereas OAuth apps can access all repositories available to the authorizing user.
Short-lived tokens — GitHub Apps use tokens that expire quickly, reducing the risk of misuse. In contrast, OAuth app tokens remain valid until explicitly revoked.
These features make GitHub Apps more suitable for organizations with strict security requirements, offering stronger protection against potential security risks.
GitHub Apps that use installation access tokens are initially allowed 5,000 requests per hour. This limit can increase under specific conditions:
GitHub Enterprise Cloud organizations — installations associated with a GitHub Enterprise Cloud organization have a rate limit of 15,000 requests per hour.
Scaling by repositories and users — for installations that are not part of a GitHub Enterprise Cloud organization:
Organizations with more than 20 repositories receive an additional 50 requests per hour per repository.
The above rules are designed to ensure fair usage while maintaining system stability and security.
GitHub Apps can be installed by users on their personal accounts and by organization owners within organizations they own. Additionally, repository admins within an organization can install GitHub Apps, provided the app is limited to repositories they administer and does not request permissions that affect the organization or involve repository administration.
However, organization owners have the capability to restrict these installations by outside collaborators who are repository admins. If organization members who are neither owners nor admins choose an organization during the app installation process, instead of directly installing the app, GitHub will notify the organization owner to request installation approval.
After installing a GitHub App, you may also need to authorize it. Installation lets you specify which repositories the app can access and grants it permission to use certain organizational resources.
During installation, the app displays the for review and approval. Once authorized, the app can also operate on your behalf.
Throttling limits the number of API calls or operations within a given time window to prevent resource overuse and ensure server stability. If throttling limits are exceeded, further client requests may be temporarily restricted, which can extend backup times.
Xopero ONE can use up to 10 additional apps to increase request limit and reduce throttling impact.
With the upcoming release of Xopero ONE (scheduled for May 2026), we are introducing support for GitHub issue types.
To enable this new feature, GitHub requires a manual update to your GitHub App permissions. While your existing backup plans will continue to run without interruption, this manual approval is required to unlock the new capabilities and ensure future compatibility.
Below is a step-by-step walkthrough of the approval process.
You will get an email from GitHub containing information about the application and the organization or account requesting elevated access. To grant Xopero ONE the required permissions, click the Review permission request to accept or reject this change link.
After clicking the link, you will be redirected to GitHub, where you can review the requested permissions and approve them.
Organizations with more than 20 users receive an additional 50 requests per hour for each user beyond 20.
The total rate limit is capped at 12,500 requests per hour.
Once the requested permissions are accepted, your environment will be ready for full backup coverage of issue type data when the next Xopero ONE release goes live.
You will receive an email notification from GitHub for each of your installations and will need to manually review and approve the new issue types permission request within your GitHub account.


Learn about GitHub API rate limits.
Rate limits are enforced for security reasons to prevent a large number of requests from blocking or destabilizing the application.
GitHub limits the number of API requests that you can make within a specific time period to prevent abuse, protect against denial-of-service conditions, and maintain platform stability. Primary rate limit thresholds are determined by your authentication method, though specific resource-intensive endpoints—such as search APIs—enforce stricter request quotas.
You can learn more about GitHub API rate limits in the official GitHub documentation.
Permissions required to integrate Bitbucket Data Center with Xopero ONE to protect its resources.
To protect a Bitbucket Data Center (DC) environment with Xopero ONE, the account used to authorize the connection must have sufficient permissions to access the workspaces, repositories, and related resources designated for backup.
Xopero ONE supports Bitbucket Data Center (DC) version 3.0.4 and higher, enabling comprehensive repository and metadata protection regardless of the underlying host operating system.
In Bitbucket Data Center, account permissions can be managed in three distinct ways, all of which are fully supported for use with Xopero ONE:
Global permissions — the user account connecting Bitbucket DC with Xopero ONE must have at least administrator privileges. Using global permissions grants the application access to protect all repositories across the entire Bitbucket DC instance.
Project permissions — alternatively, you can assign write permissions at the project level to the connecting user account. This method restricts Xopero ONE synchronization and backup scope strictly to the repositories within those specific projects.
Repository permissions — permissions can also be configured individually for each specific repository, offering granular control via two operational tiers:
Read (sufficient to perform data backups, but cannot be used to execute repository restorations).
Write (full authorization to perform both backup and restoration operations).
Restore multiple Bitbucket DC repository backup copies at once to any local device or Git service assigned to the Xopero ONE platform.
Xopero ONE enables multiple repositories recovery for Bitbucket DC, allowing administrators to restore several repositories simultaneously within a selected project or instance scope. The process preserves complete Git history, branches, tags, and supported metadata, ensuring consistency and data integrity across restored repositories.
The below steps demonstrate how to restore multiple Bitbucket DC repositories at once using Xopero ONE Management Service.
Get into the restore view using the following method:
Select all repositories you want to restore and click Restore in the top menu.
Click every chosen repository to select the backup plan and copy from which you want to restore data, then click Next.
Select the destination for the recovery and click Next.
In Data to restore section at the top, click Edit and select data you want to restore.
By default, all items are selected for restoration. However, Xopero ONE allows you to choose which metadata to restore. You can include or exclude each element by toggling the switch next to it.
If an item cannot be restored to the selected Git platform, it will be marked with an orange dot.
In the Throttling prevention section, you can add additional DevOps organization accounts to avoid throttling.
To use additional organization accounts, you must first add them in the organization settings (organization view > Edit).
Configure the recovery destination settings, depending on where the backup will be restored.
In Map organizations section, select the target organizations where the repositories will be restored.
In Restore settings, you can set custom names for all repositories or add a suffix to the original repository names.
Restoration will never overwrite existing repositories. If you enter a custom name—or leave the name as default—and a repository with that name already exists in your organization, the recovery will fail. To ensure successful recovery, either provide a unique name or select Add suffix to repo name to automatically append a unique identifier to the original repository name.
Adjust the bandwidth and other available settings, depending on the recovery destination.
Check which worker is set as the default for recovery and change it if necessary.
Select the destination device (a registered device).
Make sure the device where you want to restore data has the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required) — if it isn’t, you will have to configure it manually.
Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the Management Service level.
After defining all parameters, click the Restore button to begin the recovery process. When the process is complete, a new project/repository/folder will be created in your organization/on your device. You can monitor the restoration process in the Tasks tab.
To restore a repository to a local device, you must have a Git client and the Xopero ONE agent installed on that device (you can find more information about agents in Useful links and items section).
You can restore only the repository (without metadata) when restoring data to local resources.







In this article, you will learn how to restore multiple repositories to a Git service or localhost.
Get into the restore view using the following method:
Open the GitHub tab (DevOps > GitHub), then click the Restore button next to the organization whose backup you want to restore.
You can also use the Explore button to restore your data.
Select the repositories you want to restore and click the Restore selected button in the top menu.
By clicking an individual repository, an aside will appear where you can select a backup plan and a backup version to restore. Click Select under your chosen backup copies to continue.
Select the destination for the restore process. You can choose one of the assigned organizations from any Git service or any device.
Next, select the destination where you want to restore the data.
In Map organizations section, select the target organizations where the repositories will be restored.
In the Restore settings, you can configure the following options:
When you toggle Restoring repos with custom name switch, a window will appear allowing you to rename one or more repositories.
In Device used to restore the data section, choose the device that will be responsible for performing the restoration.
After defining all parameters, click the Start now button to begin the restore process. When the process is complete, new repositories will be created in your organization account.
Extensive testing and analysis have shown that restoring repositories with many issues and pull requests significantly prolongs the restoration process. This delay is caused by limitations within GitHub’s infrastructure and the API used for repository restoration.
To speed up the repository access, it is recommended to exclude issues and pull requests during the initial restore. Once the repository is restored, you can perform a subsequent restore—including issues and pull requests—under a different repository name. This approach ensures quick access while still allowing full restoration of repository content.
Select the destination device.
Make sure the device where you want to restore data has the Xopero ONE agent installed and the Git client added to the PATH environment variable. The PATH variable is usually configured automatically after Git installation (a system restart may be required). If it isn’t, set it manually to the path of the git.exe file: C:\Program Files\Git\bin\git.exe
Select the directory where you want the data to be restored.
Additionally, in the Restore settings, you can limit bandwidth usage during the recovery process.
Support for backing up projects (classic) has been removed. It is now available only for restoring previously backed-up projects (classic) — when restored, projects (classic) are automatically converted into projects v2.
Restoring never overwrites existing repositories in the organization — if you do not choose a repository name, or if you enter the name of a repository that already exists in your organization, the restore will fail. To complete the restoration successfully, you must choose a unique repository name or select the Add suffix to repo name option so the restored repository keeps its original name with an automatically generated suffix.
To restore a repository to a local device, you must have a Git client installed on that device.
You can restore only the repository (without metadata) when restoring data to local resources.
Closed or merged pull requests are recovered as closed issues.
If a repository already exists in the selected folder, you can choose to overwrite the existing data.






