Introduction
On July 25, 2024, AWS announced that their source code management (SCM) product - CodeCommit, is no longer available to new customers. If you’re considering moving to a different source code manager (SCM), here are a few things to consider while selecting a new SCM. This blog post also covers how to migrate your repositories from AWS CodeCommit to Harness Code Repository.
Considerations for selecting an SCM
Considerations for Developers' Experience
- Consider SCMs that have familiar Git experience as CodeCommit so that developers don’t spend a lot of time learning a new product.
- Evaluate the ease and efficiency of branching and merging in the SCM. Look for robust branching and merging capabilities, for example.
- Look for built-in code review functionalities or integrations with code review tools to facilitate collaborative development and ensure code quality.
- Systems like Harness Code Repository support pull requests, which streamline collaboration by allowing team members to review and discuss changes before merging.
- Evaluate the availability of plugins and extensions to enhance the SCM's functionality and tailor it to your specific needs.
Considerations for Management, Security, and Governance
- Assess how well the SCM handles large repositories and high volumes of changes. Scalability is crucial for large teams or projects with extensive codebases.
- Consider the system's performance with large binary files or many repositories. Some systems offer features like Git Large File Storage (LFS) to handle large files efficiently.
- Ensure the SCM integrates seamlessly with your CI/CD tools, issue trackers, and other parts of your development toolchain. Harness offers seamless integration with continuous integration, continuous deployment, feature flags, infrastructure such as management code, internal developer portal, and other SDLC features.
- Implement granular access controls to restrict who can view, commit, and merge code. Role-based access control (RBAC) is a key feature to look for.
- Ensure the system provides detailed audit logs to track changes and identify unauthorized access or modifications.
- Decide whether an open-source solution (e.g., Gitness - Harness’ Open Source Platform) or a proprietary solution (e.g., Harness Code Repository) better fits your budget and requirements.
- Ensure the SCM complies with any regulatory requirements relevant to your industry, such as data protection and privacy regulations.
- Look for features that support governance policies, such as mandatory code reviews and automated policy enforcement.
Migrating from AWS CodeCommit repositories to a new SCM
Pre-migration questions
- What is your migration timeline?
- What do you want to migrate?
- All Git repositories
- Continuous Integration (CI) / Build pipelines
- Continuous Delivery (CD) / Deploy pipelines
- Do you want to migrate everything at once or incrementally?
Recommended Migration path
- Migrate all build (CI) and deployment (CD) scripts and ensure workflow is functional.
- Copy/mirror the repository to the new SCM provider, test the code, and build and deploy the workflow.
- Set up bidirectional mirroring between the CodeCommit repository and the new SCM provider. See how to set up bidirectional sync between CodeCommit and Harness Code Repository.
- Move active development to the new DevOps platform.
Why Harness Code Repository?
Harness Code Repository is built with the primary pillars of security, governance, and developer experience augmented with AI.
Security and Governance
Harness Code Repository leverages the strengths of the Harness Platform around governance and provides features such as granular RBAC, audit trails, and the ability to create your organization-specific policies using Open Policy Agent (OPA).
On top of that, security features such as scanning for hard-coded secrets and open source vulnerabilities are built in as product-native features.
Developer Experience
Harness Code Repository supports all the Git experience features. So, developers familiar with Git can easily start using Code Repository. Additionally, Code Repository also supports generative AI features such as
- Searching code using natural language - this helps new developers learn the code and onboard quickly.
- Generate code, test, and comment - this is supported via a Visual Studio Code plugin.
- Chat with AI to understand, refactor, and generate code.
- Summarize pull requests - this leverages AI to generate a summary of the pull request based on the code changes.
Easy integration with the rest of SDLC
Harness Code Repository easily integrates with Harness Continuous Integration, Continuous Delivery, and other products. It also supports different AWS services, such as cloud connector, EKS connector, and secure CI connector.
Conclusion
Moving to a new source code manager (SCM) is always challenging. However, the toil can be reduced significantly with the right considerations and migration strategy. Try Harness Code Repository today and see if it matches your criteria!