ashmrtn 916bb0b27c
Create an interface and implementation for Reason struct (#3868)
Intermediate step to a few different goals including
* moving interface definitions to better locations while avoid cycles
* adding a flag to disable kopia-assisted incrementals

Create an interface and implementation for the existing Reason
struct. The goal is to set stuff up so that eventually the kopia
package can ask the struct for the subtree path to work with
when merging the hierarchy instead of having the backup operation
pass that information in

Code changes are mostly just turning stuff into a struct and
fixing up compile errors. Some functions have been excluded from
the struct (i.e. `Key`) and made into functions in the kopia
package itself

---

#### Does this PR need a docs update or release note?

- [ ]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x]  No

#### Type of change

- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #2360

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-07-21 21:05:38 +00:00
2023-02-18 15:35:59 +00:00
2022-12-20 19:58:11 +00:00

Corso Logo

Corso

Go Report Card Discord License Contributor Covenant

Corso is the first open-source tool that aims to assist IT admins with the critical task of protecting their Microsoft 365 data. It provides a reliable, secure, and efficient data protection engine. Admins decide where to store the backup data and have the flexibility to perform backups of their desired service through an intuitive interface. As Corso evolves, it can become a great building block for more complex data protection workflows.

Corso is currently in Beta.

Corso supports M365 Exchange and OneDrive with SharePoint and Teams support in active development. Coverage for more services, possibly beyond M365, will expand based on the interest and needs of the community.

Getting Started

See the Corso Quickstart on our docs page.

Building Corso

To learn more about working with the project source core and building Corso, see the Developer section of the Corso Documentation.

Roadmap

You can learn more about the Corso roadmap and how to interpret it here.

If you have feature requests, please file a GitHub issue and attach the enhancement label to the issue.

Contribution Guidelines

Code of Conduct

It's important that our community is inclusive and respectful of everyone. We ask that all Corso users and contributors take a few minutes to review our Code of Conduct.

License

Corso is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Description
Free, Secure, and Open-Source Backup for Microsoft 365
Readme Pixar 182 MiB
Languages
Go 91.1%
SCSS 7%
JavaScript 1.1%
PowerShell 0.6%