2608 Commits

Author SHA1 Message Date
Vaibhav Kamra
4814154928
Support opening repository in read-only mode (#4302)
Useful for running read only operations against the repository

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-20 04:05:12 +00:00
ashmrtn
b44585ba1c
Test cleanup (#4134)
Use helper functions and variable declarations
to reduce overall amount of code in file

No logic changes to any tests in the file

---

#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-20 02:36:48 +00:00
ashmrtn
108c243e54
Implement selective subtree pruning (#4133)
Determine if a subtree has any directory object changes and if it
doesn't skip traversing that subtree during hierarchy merging.
"Directory object changes" for a subtree are defined as:
  * moving/renaming a directory within the subtree
  * deleting a directory in the subtree
  * moving a directory into the subtree
  * creating a directory in the subtree
  * moving a directory out of the subtree

The resulting snapshot still contains all data in the
pruned subtree.

---

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

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

#### Type of change

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

#### Issue(s)

* #4117

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-20 01:56:44 +00:00
Abhishek Pandey
b00ac292c7
Add a minor fix for make buildimage (#4295)
<!-- PR description-->
`make buildimage` currently fails with `/bin/sh: 1: unzip: not found`. Adding a command to install unzip.

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [x] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-19 20:39:15 +00:00
ashmrtn
25b5f88ac9
Switch to long-lived AWS credentials (#4296)
We've been seeing token timeouts. Switching
to something that lasts for more than an
hour.

---

#### 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
- [x] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup


#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-19 18:48:56 +00:00
dependabot[bot]
e00340e3a1
⬆️ Bump go.uber.org/zap from 1.25.0 to 1.26.0 in /src (#4289)
Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.25.0 to 1.26.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/uber-go/zap/releases">go.uber.org/zap's releases</a>.</em></p>
<blockquote>
<h2>v1.26.0</h2>
<p>Enhancements:</p>
<ul>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1297">#1297</a>[]: Add <code>Dict</code> as a <code>Field</code>.</li>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1319">#1319</a>[]: Add <code>WithLazy</code> method to <code>Logger</code> which lazily evaluates the structured
context.</li>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1350">#1350</a>[]: String encoding is much (~50%) faster now.</li>
</ul>
<p>Thanks to <a href="https://github.com/hhk7734"><code>@​hhk7734</code></a>, <a href="https://github.com/jquirke"><code>@​jquirke</code></a>, <a href="https://github.com/cdvr1993"><code>@​cdvr1993</code></a> for their contributions to this release.</p>
<p><a href="https://redirect.github.com/uber-go/zap/issues/1297">#1297</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1297">uber-go/zap#1297</a>
<a href="https://redirect.github.com/uber-go/zap/issues/1319">#1319</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1319">uber-go/zap#1319</a>
<a href="https://redirect.github.com/uber-go/zap/issues/1350">#1350</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1350">uber-go/zap#1350</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/uber-go/zap/blob/master/CHANGELOG.md">go.uber.org/zap's changelog</a>.</em></p>
<blockquote>
<h2>1.26.0 (14 Sep 2023)</h2>
<p>Enhancements:</p>
<ul>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1297">#1297</a>[]: Add Dict as a Field.</li>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1319">#1319</a>[]: Add <code>WithLazy</code> method to <code>Logger</code> which lazily evaluates the structured
context.</li>
<li><a href="https://redirect.github.com/uber-go/zap/issues/1350">#1350</a>[]: String encoding is much (~50%) faster now.</li>
</ul>
<p>Thanks to <a href="https://github.com/hhk7734"><code>@​hhk7734</code></a>, <a href="https://github.com/jquirke"><code>@​jquirke</code></a>, and <a href="https://github.com/cdvr1993"><code>@​cdvr1993</code></a> for their contributions to this release.</p>
<p><a href="https://redirect.github.com/uber-go/zap/issues/1297">#1297</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1297">uber-go/zap#1297</a>
<a href="https://redirect.github.com/uber-go/zap/issues/1319">#1319</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1319">uber-go/zap#1319</a>
<a href="https://redirect.github.com/uber-go/zap/issues/1350">#1350</a>: <a href="https://redirect.github.com/uber-go/zap/pull/1350">uber-go/zap#1350</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="96038b71a7"><code>96038b7</code></a> Prepare for release v1.26.0 (<a href="https://redirect.github.com/uber-go/zap/issues/1355">#1355</a>)</li>
<li><a href="c17272e1a5"><code>c17272e</code></a> Add WithLazy Logger method (<a href="https://redirect.github.com/uber-go/zap/issues/1319">#1319</a>)</li>
<li><a href="99f1811d5d"><code>99f1811</code></a> exp: Add a changelog (<a href="https://redirect.github.com/uber-go/zap/issues/1353">#1353</a>)</li>
<li><a href="7728f39323"><code>7728f39</code></a> chore(CHANGELOG): Move reference links to sections (<a href="https://redirect.github.com/uber-go/zap/issues/1352">#1352</a>)</li>
<li><a href="5a27bab892"><code>5a27bab</code></a> perf: Faster string encoding (<a href="https://redirect.github.com/uber-go/zap/issues/1350">#1350</a>)</li>
<li><a href="82c728b023"><code>82c728b</code></a> Replace benbjohnson/clock with custom MockClock (<a href="https://redirect.github.com/uber-go/zap/issues/1349">#1349</a>)</li>
<li><a href="b7aed24b01"><code>b7aed24</code></a> zapslog: Handle empty attrs centrally (<a href="https://redirect.github.com/uber-go/zap/issues/1351">#1351</a>)</li>
<li><a href="2b359631a1"><code>2b35963</code></a> lint: Enable errcheck, fix failures (<a href="https://redirect.github.com/uber-go/zap/issues/1345">#1345</a>)</li>
<li><a href="9a36792d58"><code>9a36792</code></a> test: improve slog coverage (<a href="https://redirect.github.com/uber-go/zap/issues/1347">#1347</a>)</li>
<li><a href="e5e8b705f4"><code>e5e8b70</code></a> build(deps): bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/uber-go/zap/issues/1346">#1346</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/uber-go/zap/compare/v1.25.0...v1.26.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=go.uber.org/zap&package-manager=go_modules&previous-version=1.25.0&new-version=1.26.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-19 17:06:02 +00:00
dependabot[bot]
b5175e55a7
⬆️ Bump golang.org/x/tools from 0.12.0 to 0.13.0 in /src (#4292)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.12.0 to 0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/golang/tools/releases">golang.org/x/tools's releases</a>.</em></p>
<blockquote>
<h2>gopls/v0.13.0</h2>
<p><strong>These are release notes are identical to that of gopls@v0.13.0-pre.3. Thanks to all who tested the prerelease!</strong></p>
<pre><code>go install golang.org/x/tools/gopls@v0.13.0
</code></pre>
<p>This release fixes several bugs and mitigates a few performance regressions. It also somewhat reduces the latency and CPU cost of most operations, and includes a few small additional features.</p>
<h1>Performance improvements</h1>
<p>While <a href="mailto:gopls@v0.12.x">gopls@v0.12.x</a> drastically reduced memory usage, several operations got around 50% slower due to additional I/O reading from the filesystem and time spent decoding indexes. This release optimizes those additional operations to (in most cases) achieve parity or better with the equivalent operation in gopls@v0.11.0.  Additionally, this release reduces total CPU while typing or performing common operations.</p>
<h2>Faster code actions</h2>
<p>This release includes a particularly large performance improvement in the evaluation of code actions (including formatting/goimports on save). In the past, there have been several reasons why this operation was expensive -- VS Code users may recognize the <code>getting code actions from &quot;Go&quot;</code> pop-up. This release fundamentally changes the way code actions are evaluated so that almost all of the work is pre-computed. As a result, formatting and adding or removing imports on save should be much faster.</p>
<h2>Analysis performance</h2>
<p>A notable exception to CPU performance parity with gopls@v0.11.0 is running static analysis. In this case, the additional cost incurred by <a href="mailto:gopls@v0.12.x">gopls@v0.12.x</a> was not a regression, but rather the cost of analyzing many more packages to enable &quot;deep&quot; static analysis (see &quot;Improved static analysis&quot; in the <a href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.12.0">gopls@v0.12.0 release notes</a>.</p>
<p>In smaller repositories, the cost of this additional analysis is negligible -- analysis does not run until you stop typing, and typically just re-evaluates the changed package. However, it was discovered that in large workspaces that import low-level packages with a very large API surface (such as a cloud provider SDK or proto library), certain quadratic factors involved with the encoding/decoding of analysis results can dominate the cost of analysis, and result in enormous resource consumption: overloading the CPU and exhausting all memory.</p>
<p>This release partially mitigates those quadratic factors, significantly reducing their cost and limiting concurrency so that they do not exhaust all resources. However, fully eliminating these factors will require additional work to fix their quadratic nature. Until that is done, analysis may continue to be costly on certain repos, especially if <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#staticcheck-bool"><code>&quot;staticcheck&quot;</code></a> is enabled (because staticcheck does more deep analysis than the default set of analyzers).</p>
<p>In the meantime, a notification is added to make you aware when analysis is slow, and provide an update on the progress of indexing &quot;deep&quot; analysis results. Canceling this notification will cancel the ongoing analysis, but it will resume after the next change. If you don't want to see these notifications, you can set the new <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#analysisprogressreporting-bool"><code>&quot;analysisProgressReporting&quot;</code></a> setting to <code>&quot;false&quot;</code>.
<img src="https://github.com/golang/tools/assets/57144380/4335a3c9-245b-409d-ab5c-5bbb650b7234" alt="image" />.</p>
<h1>New Features</h1>
<h2>Highlight deprecated symbols</h2>
<p>Deprecated symbols and packages are now marked as such. To turn off this feature, disable the <a href="https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md#deprecated"><code>&quot;deprecated&quot;</code></a> analysis.</p>
<p><img src="https://github.com/golang/tools/assets/57144380/f6714035-f37b-487a-a110-591388bb5677" alt="image" /></p>
<h2>Stub methods to fix missing method errors</h2>
<p>The <a href="https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md#stubmethods"><code>&quot;stubmethods&quot;</code></a> refactoring is now available as a quick-fix for errors related to missing methods.
<img src="https://github.com/golang/tools/assets/57144380/715c3025-8beb-4cd5-bb8c-970be197b897" alt="image" /></p>
<h2>Improvements to function extraction</h2>
<p>Function extraction now puts <code>context.Context</code> parameters first in the resulting extracted function. See <a href="https://redirect.github.com/golang/go/issues/60738">golang/go#60738</a> for details.</p>
<h2>Improvements to the embeddirective analyzer</h2>
<p>The embed directive analyzer now verifies the location of <code>//go:embed</code> directives, and provides a quick-fix to add missing <code>&quot;embed&quot;</code> imports.
<img src="https://github.com/golang/tools/assets/57144380/acbe8599-3a2d-40cd-856e-3451ea03c939" alt="image" /></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b5e55d1984"><code>b5e55d1</code></a> go/analysis/analysistest: give better hint in SuggestedFix assertion</li>
<li><a href="a807ccf39a"><code>a807ccf</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="21090a2aa8"><code>21090a2</code></a> gopls/internal/lsp/cache: use persistent.Set in a couple places</li>
<li><a href="38b898b246"><code>38b898b</code></a> internal/persistent: add Set</li>
<li><a href="44f7796438"><code>44f7796</code></a> gopls: add and enable the slog analyzer</li>
<li><a href="2c6ba93996"><code>2c6ba93</code></a> gopls: tidy for 1.17+</li>
<li><a href="5a9656936d"><code>5a96569</code></a> gopls/internal/lsp/cmd: don't use x/exp/slices</li>
<li><a href="77c6ac601f"><code>77c6ac6</code></a> gopls/internal/telemetry: don't schedule the next upload</li>
<li><a href="010e045c4e"><code>010e045</code></a> internal/persistent: use generics</li>
<li><a href="a1a928ddbe"><code>a1a928d</code></a> gopls: remove dead code</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.12.0...v0.13.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/tools&package-manager=go_modules&previous-version=0.12.0&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-19 16:22:33 +00:00
Abhishek Pandey
fd221587ec
Create documentation for filesystem repositories (#4287)
<!-- PR description-->

Website documentation update for local storage. 


---

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

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [x] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/1416

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-19 12:11:36 +00:00
Abhishek Pandey
d2c73827cb
Add CLI for local storage (#4243)
<!-- PR description-->

New commands to initialize & connect to a repo on local or network attached storage.
* `repo init filesystem --path /tmp/repo`
* `repo connect filesystem --path /tmp/repo`

Includes basic unit & e2e tests. More coverage to be added in a following PR to keep the size contained.

**Updates:**
* Added Repo path sanitization i.e. handle relative paths, make paths cross platform compatible, etc. 
* Removed retention artifacts, not supported for filesystem storage.
* cli docs - auto updated.
* Manually tested with all corso backup/restore/export commands.

**Doesn't include** 
1. Symlinks
2. User ids wiring into repo.
3. Repos documentation update - in an upcoming PR.
4. Prefix support -> kopia doesn't support prefixes for `filesystem` storage
5. More E2E tests. 

---

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

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #1416 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-19 09:46:54 +00:00
dependabot[bot]
810acbdc3a
⬆️ Bump golang.org/x/net from 0.14.0 to 0.15.0 in /src (#4293)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.14.0 to 0.15.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="2a0da8be5a"><code>2a0da8b</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="97384c11dd"><code>97384c1</code></a> quic: remove streams from the conn when done</li>
<li><a href="03d5e62339"><code>03d5e62</code></a> http2: remove unused ClientConn.tconnClosed</li>
<li><a href="b82f062c4b"><code>b82f062</code></a> quic: include ignored frames in test log output</li>
<li><a href="7374d342a2"><code>7374d34</code></a> quic: don't block when closing read-only streams</li>
<li><a href="b4d09be751"><code>b4d09be</code></a> dns/dnsmessage: compress all names while appending to a buffer</li>
<li><a href="8b010a5243"><code>8b010a5</code></a> quic: fix race condition in runAsync test helper</li>
<li><a href="fe2abcb6e1"><code>fe2abcb</code></a> quic: validate stream limits in transport params</li>
<li><a href="d1b0a97d84"><code>d1b0a97</code></a> quic: avoid sending 1-RTT frames in initial/handshake packets</li>
<li><a href="4332436fd1"><code>4332436</code></a> quic: send more transport parameters</li>
<li>Additional commits viewable in <a href="https://github.com/golang/net/compare/v0.14.0...v0.15.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/net&package-manager=go_modules&previous-version=0.14.0&new-version=0.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-19 03:28:24 +00:00
ashmrtn
6355cb7bad
Rename existing Exchange collection implementation (#4285)
Will be making another collection type based
on the same skeleton.

No logic changes in this PR, just naming.

---

#### 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)

* #2023

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
v0.13.0
2023-09-19 02:36:02 +00:00
Keepers
a60d599eaa
document and release groups and teams (#4238)
Adds the release documentation and reveals all cli commands for groups and teams channelMessages and files support.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🗺️ Documentation

#### Issue(s)

* #3988 

#### Test Plan

- [x] 💪 Manual
2023-09-19 01:52:24 +00:00
Keepers
9a04d7154a
bump docker actions (#4286)
bump all docker gh actions
2023-09-19 00:46:14 +00:00
Keepers
abe2bf01de
quick mod tidy (#4284)
Quick lint fix from `go mod tidy`.
2023-09-18 23:53:15 +00:00
ashmrtn
8b9f63879b
Allow getting a path prefix from a string (#4132)
Will be required for selective subtree pruning since hierarchy merging starts at the category directory.

---

#### 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

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

#### Issue(s)

* #4117

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 23:05:10 +00:00
ashmrtn
4a9951b876
Fetch mod time when getting added and removed items (#4266)
Also return mod time when available if
getting the set of added and removed
items. This will be leveraged in later
PRs to implement kopia assisted
incrementals for exchange

Does not change any logic in
collections right now, just adds the
fields to be returned

Also adds an additional return value
denoting if the mod times are expected
to be valid. This is required because
events delta cannot return mod time

---

#### 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)

* #2023

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 22:30:56 +00:00
ashmrtn
647f7326d7
Refactor exchange collection (#4283)
No real changes to API or internal structure,
but pull out more generic functionality like
getting the path/location info for an
exchange collection into a separate struct
and factor out some soon-to-be common
functions

---

#### 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)

* #2023

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 21:49:53 +00:00
Keepers
8f7070ffac
add humanstring to path category type (#4282)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3988

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-09-18 20:57:15 +00:00
ashmrtn
1bacad72aa
Minor test expansion for failed backup cleanup (#4244)
Add or update tests to ensure garbage collection works (or at least
behaves reasonably and in a known fashion) if:
  * the youngest assist base has a merge base older than it
  * there's a legacy backup model merge base younger than the assist
    base
  * there's legacy and current backup model merge bases younger than the
    assist base

---

#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 20:14:03 +00:00
Abin Simon
357b897ab5
Add flags for disabling incrementals for groups (#4277)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 18:56:13 +00:00
Keepers
77c48ebf95
minor touchups from manual testing (#4265)
#### Does this PR need a docs update or release note?

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3988

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-18 16:55:15 +00:00
Abin Simon
dbbf9246fe
Add flags to filter sp items for Groups (#4281)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 16:14:05 +00:00
Abhishek Pandey
8590b24199
Introduce new interfaces for storage configuration (#4251)
<!-- PR description-->
Introducing a new `Configurer` interface to abstract out storage config information(for s3, filesystem etc) from caller code. I consider this as a short term solution. We need to consolidate overall config handling in a better way, but that's out of scope for this PR chain.

Testing
* Most of the changes here are code movement under the hood. So relying on existing tests.
* I'll address any test gaps in a later PR.


---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/1416

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 14:32:54 +00:00
Abin Simon
eb357e1051
Move MetadataFileNames to test file (#4279)
This is not used in live code and so moving to tests.
Ref: https://github.com/alcionai/corso/pull/4248/files#r1326490460

<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-18 13:51:43 +00:00
Abhishek Pandey
fb6398ea41
Remove tight CLI coupling with S3 storage provider (#4237)
<!-- PR description-->

One of the 2 remaining setup PRs before we can introduce local storage repos.

**Changes:**
1. Read storage provider(`provider`) from config file except for `repo init * ` or `repo connect *` commands.
2. Apply flag overrides based on provider type( e.g. `S3FlagOverrides` if provider is `S3`)
3. Propagate storage provider type to functions which read/write config. These functions arbitrate on config hierarchy - flags, env, config file, in that order. 

**Reasons**
* Reason 1 is needed is because config file is the source of truth for storage provider for all commands except `repo init` or `repo connect`. In the exception cases, we pick the provider in command (e.g. `s3`) as the source of truth. e.g. consider a `repo init s3`, followed by `repo init filesystem`.During `repo init filesystem`, config file would indicate `S3` provider, but the correct behavior here is to select `filesystem` provider.
* One alternative was to push provider from the init/connect cmds into an override flag, and let the config code decide on hierarchy. However, this felt hacky. provider here is not a flag to begin with. It's part of init/connect commands.


---

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

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/1416

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-18 13:01:00 +00:00
Abin Simon
471a0fa35a
Drop TODOs that are not relevant anymore (#4280)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-18 12:07:09 +00:00
dependabot[bot]
cbff2173ec
⬆️ Bump aws-actions/configure-aws-credentials from 3 to 4 (#4271)
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws-actions/configure-aws-credentials/releases">aws-actions/configure-aws-credentials's releases</a>.</em></p>
<blockquote>
<h2>v4</h2>
<p>This tag tracks the latest v4.x.x release</p>
<h2>v4.0.0</h2>
<p>See the <a href="https://github.com/aws-actions/configure-aws-credentials/blob/v4.0.0/CHANGELOG.md">changelog</a> for details about the changes included in this release.</p>
<h2>v3.0.2</h2>
<p>See the <a href="https://github.com/aws-actions/configure-aws-credentials/blob/v3.0.2/CHANGELOG.md">changelog</a> for details about the changes included in this release.</p>
<h2>v3.0.1</h2>
<p>See the <a href="https://github.com/aws-actions/configure-aws-credentials/blob/v3.0.1/CHANGELOG.md">changelog</a> for details about the changes included in this release.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md">aws-actions/configure-aws-credentials's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v3.0.0...v3.0.1">3.0.1</a> (2023-08-24)</h2>
<h3>Features</h3>
<ul>
<li>Can configure <code>special-characters-workaround</code> to keep retrying credentials if the returned
credentials have special characters (Fixes <a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/599">#599</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixes <a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/792">#792</a>: Action fails when intending to use existing credentials</li>
<li>Minor typo fix from <a href="https://github.com/ubaid-ansari21"><code>@​ubaid-ansari21</code></a></li>
</ul>
<h3>Changes to existing functionality</h3>
<ul>
<li>Special characters are now allowed in returned credential variables unless you configure the
<code>special-characters-workaround</code> option</li>
</ul>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.2.0...v3.0.0">3.0.0</a> (2023-08-21)</h2>
<h3>Features</h3>
<ul>
<li>Can configure <code>max-retries</code> and <code>disable-retry</code> to modify retry functionality when the assume role call fails</li>
<li>Set returned credentials as step outputs with <code>output-credentials</code></li>
<li>Clear AWS related environment variables at the start of the action with <code>unset-current-credentials</code></li>
<li>Unique role identifier is now printed in the workflow logs</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Can't use credentials if they contain a special character</li>
<li>Retry functionality added when generating the JWT fails</li>
<li>Can now use <code>webIdentityTokenFile</code> option</li>
<li>Branch name validation too strict</li>
<li>JS SDK v2 deprecation warning in workflow logs</li>
</ul>
<h3>Changes to existing functionality</h3>
<ul>
<li>Default session duration is now 1 hour in all cases (from 6 hours in some cases)</li>
<li>Account ID will not be masked by default in logs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8c3f20df09"><code>8c3f20d</code></a> chore: release v4 (<a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/840">#840</a>)</li>
<li>See full diff in <a href="https://github.com/aws-actions/configure-aws-credentials/compare/v3...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-actions/configure-aws-credentials&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-18 10:13:14 +00:00
Abin Simon
153df8ba23
Fix incorrect sharepoint export test (#4278)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-18 09:29:09 +00:00
dependabot[bot]
5f85e2b51e
⬆️ Bump cachix/install-nix-action from 22 to 23 (#4274)
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 22 to 23.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's releases</a>.</em></p>
<blockquote>
<h2>install-nix-action-v23</h2>
<ul>
<li>always show Nix trace</li>
<li>Nix 2.17</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6a9a9e84a1"><code>6a9a9e8</code></a> Merge pull request <a href="https://redirect.github.com/cachix/install-nix-action/issues/192">#192</a> from grahamc/patch-1</li>
<li><a href="4509d84f10"><code>4509d84</code></a> Update to Nix 2.17.0</li>
<li><a href="5cfd5166ea"><code>5cfd516</code></a> bump</li>
<li><a href="e02ea8c42e"><code>e02ea8c</code></a> Fix links to nix.dev</li>
<li><a href="fffc90f426"><code>fffc90f</code></a> always show trace</li>
<li>See full diff in <a href="https://github.com/cachix/install-nix-action/compare/v22...v23">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=22&new-version=23)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-18 06:13:36 +00:00
Abin Simon
c2a3041cc8
Add restore tests for groups (#4249)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* closes https://github.com/alcionai/corso/issues/3992

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-09-17 05:03:16 +00:00
Georgi Matev
2f4acc2c5f
Update Discord link to Corso Discord (#4267)
Looks like the link in this blog was pointing to Alcion discord and not the Corso Discord. 

---

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

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-16 22:04:23 +00:00
Abin Simon
4a7847936e
Add incremental backup test for groups (#4248)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* closes https://github.com/alcionai/corso/issues/3990

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-09-16 05:04:28 +00:00
Keepers
f7042129f4
minimize channel messages exports (#4245)
reduces channel message export data to the minimal set of valuable info: message content, creator,
creation and modification time, and replies (each
reply has the same data, sans other replies).

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3991  

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2023-09-15 21:16:06 +00:00
Keepers
265a77f1cd
match item type in groups selectors info filter (#4255)
adds item type comparisons to the info filter during groups selector reduction.  This ensures cross-
contamination of item types on shared info properties does not occur.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3988 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-15 20:29:14 +00:00
neha_gupta
6b8b500df0
handle path for channel (#4257)
<!-- PR description-->

Handle the path creation for Onedrive and Channel.

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

- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🐛 Bugfix

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
2023-09-15 18:39:04 +00:00
Keepers
8602bd132b
add the test teams site to the purge list (#4253)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 💻 CI/Deployment

#### Test Plan

- [x] 💚 E2E
2023-09-15 17:49:31 +00:00
Abin Simon
fdeff75f22
Skip exporting SharePoint Libraries from Groups (#4258)
We currently don't have support for SP export in groups. Do not try to do them.

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-15 16:15:41 +00:00
Abin Simon
ce422f0b1d
Add linter for checking with empty string (#4246)
Finding failing cases:

``` bash
tree-grepper -q go '((binary_expression (identifier) ["==" "!="] (interpreted_string_literal) @ri) (#eq? @ri "\"\""))'
```

Fixing failing cases:

``` bash
comby 'if :[1~[^ ]*] == ""' 'if len(:[1]) == 0' -matcher .go -in-place
comby 'if :[1~[^ ]*] != ""' 'if len(:[1]) > 0' -matcher .go -in-place
```

<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* closes https://github.com/alcionai/corso/issues/3654

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-15 06:45:00 +00:00
Abin Simon
04628c7f91
SharePoint MatchesInfo tests (#4250)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #3990

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-15 03:52:05 +00:00
Abin Simon
636be4feed
Fxi issues with GetMetadataPaths (#4252)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-15 03:20:46 +00:00
Keepers
14416094e6
get replies when getting message (#4232)
This was somehow sliced out of changes persisted
in prior branch merges.  It re-adds persisting replies as part of message content retrieval.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3989

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-09-14 21:42:05 +00:00
Keepers
d11eea5f9c
add groups cli selectors (#4231)
populates all selectors in the groups cli.  adds
both info-based filters (such as message creation
time) and also basic channel and mesage selection.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3989

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-14 17:53:20 +00:00
Keepers
cb319bb2ae
use display name to look up groups (#4242)
Allows lookup of groups using their display name in addition to their ID.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3988 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-14 17:03:14 +00:00
Abin Simon
edf753382e
CLI and selector changes for groups restore (#4218)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-14 09:29:01 +00:00
Abin Simon
80f11d9876
Restore for Groups SharePoint Sites (#4209)
Still a few pending items like CLI handling and restoring specific items. Will be handled in a follow up.

---

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

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/3992

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-14 08:49:34 +00:00
Abin Simon
6e1be1f08c
Incrementals for Groups SharePoint backup (#4205)
<!-- PR description-->

---

#### 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

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/3990

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-14 06:54:39 +00:00
dependabot[bot]
248fc80fcd
⬆️ Bump sass from 1.66.1 to 1.67.0 in /website (#4247)
Bumps [sass](https://github.com/sass/dart-sass) from 1.66.1 to 1.67.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/sass/dart-sass/releases">sass's releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.67.0</h2>
<p>To install Sass 1.67.0, download one of the packages below and <a href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or see <a href="https://sass-lang.com/install">the Sass website</a> for full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>
<p>All functions defined in CSS Values and Units 4 are now once again parsed as calculation objects: <code>round()</code>, <code>mod()</code>, <code>rem()</code>, <code>sin()</code>, <code>cos()</code>, <code>tan()</code>, <code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>, <code>pow()</code>, <code>sqrt()</code>, <code>hypot()</code>, <code>log()</code>, <code>exp()</code>, <code>abs()</code>, and <code>sign()</code>.</p>
<p>Unlike in 1.65.0, function calls are <em>not</em> locked into being parsed as calculations or plain Sass functions at parse-time. This means that user-defined functions will take precedence over CSS calculations of the same name. Although the function names <code>calc()</code> and <code>clamp()</code> are still forbidden, users may continue to freely define functions whose names overlap with other CSS calculations (including <code>abs()</code>, <code>min()</code>, <code>max()</code>, and <code>round()</code> whose names overlap with global Sass functions).</p>
</li>
<li>
<p>As a consequence of the change in calculation parsing described above, calculation functions containing interpolation are now parsed more strictly than before. However, all interpolations that would have produced valid CSS will continue to work, so this is not considered a breaking change.</p>
</li>
<li>
<p>Interpolations in calculation functions that aren't used in a position that could also have a normal calculation value are now deprecated. For example, <code>calc(1px #{&quot;+ 2px&quot;})</code> is deprecated, but <code>calc(1px + #{&quot;2px&quot;})</code> is still allowed. This deprecation is named <code>calc-interp</code>. See <a href="https://sass-lang.com/install">the Sass website</a> for more information.</p>
</li>
<li>
<p><strong>Potentially breaking bug fix</strong>: The importer used to load a given file is no longer used to load absolute URLs that appear in that file. This was unintented behavior that contradicted the Sass specification. Absolute URLs will now correctly be loaded only from the global importer list. This applies to the modern JS API, the Dart API, and the embedded protocol.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Substantially improve the embedded compiler's performance when compiling many files or files that require many importer or function call round-trips with the embedded host.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1670">full changelog</a> for changes in earlier releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's changelog</a>.</em></p>
<blockquote>
<h2>1.67.0</h2>
<ul>
<li>
<p>All functions defined in CSS Values and Units 4 are now once again parsed as
calculation objects: <code>round()</code>, <code>mod()</code>, <code>rem()</code>, <code>sin()</code>, <code>cos()</code>, <code>tan()</code>,
<code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>, <code>pow()</code>, <code>sqrt()</code>, <code>hypot()</code>,
<code>log()</code>, <code>exp()</code>, <code>abs()</code>, and <code>sign()</code>.</p>
<p>Unlike in 1.65.0, function calls are <em>not</em> locked into being parsed as
calculations or plain Sass functions at parse-time. This means that
user-defined functions will take precedence over CSS calculations of the same
name. Although the function names <code>calc()</code> and <code>clamp()</code> are still forbidden,
users may continue to freely define functions whose names overlap with other
CSS calculations (including <code>abs()</code>, <code>min()</code>, <code>max()</code>, and <code>round()</code> whose
names overlap with global Sass functions).</p>
</li>
<li>
<p>As a consequence of the change in calculation parsing described above,
calculation functions containing interpolation are now parsed more strictly
than before. However, all interpolations that would have produced valid CSS
will continue to work, so this is not considered a breaking change.</p>
</li>
<li>
<p>Interpolations in calculation functions that aren't used in a position that
could also have a normal calculation value are now deprecated. For example,
<code>calc(1px #{&quot;+ 2px&quot;})</code> is deprecated, but <code>calc(1px + #{&quot;2px&quot;})</code> is still
allowed. This deprecation is named <code>calc-interp</code>. See <a href="https://sass-lang.com/d/calc-interp">the Sass website</a> for
more information.</p>
</li>
<li>
<p><strong>Potentially breaking bug fix</strong>: The importer used to load a given file is no
longer used to load absolute URLs that appear in that file. This was
unintented behavior that contradicted the Sass specification. Absolute URLs
will now correctly be loaded only from the global importer list. This applies
to the modern JS API, the Dart API, and the embedded protocol.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Substantially improve the embedded compiler's performance when compiling many
files or files that require many importer or function call round-trips with
the embedded host.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5c31d1f245"><code>5c31d1f</code></a> Re-enable new calculation functions (<a href="https://redirect.github.com/sass/dart-sass/issues/2080">#2080</a>)</li>
<li><a href="bdb145f039"><code>bdb145f</code></a> Fix example (<a href="https://redirect.github.com/sass/dart-sass/issues/2074">#2074</a>)</li>
<li><a href="77e208c204"><code>77e208c</code></a> Run cli compilations in parallel dart isolates (<a href="https://redirect.github.com/sass/dart-sass/issues/2078">#2078</a>)</li>
<li><a href="fddf421c8f"><code>fddf421</code></a> Don't try to load absolute URLs from the base importer (<a href="https://redirect.github.com/sass/dart-sass/issues/2077">#2077</a>)</li>
<li><a href="af0118ad64"><code>af0118a</code></a> Improve <code>sass --embedded</code> performance (<a href="https://redirect.github.com/sass/dart-sass/issues/2013">#2013</a>)</li>
<li><a href="58cbab42e6"><code>58cbab4</code></a> Stop working around <a href="https://redirect.github.com/dart-lang/linter/issues/4381">dart-lang/linter#4381</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2071">#2071</a>)</li>
<li><a href="8f0eca33e2"><code>8f0eca3</code></a> Update README.md (<a href="https://redirect.github.com/sass/dart-sass/issues/2069">#2069</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.66.1...1.67.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sass&package-manager=npm_and_yarn&previous-version=1.66.1&new-version=1.67.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
2023-09-14 05:51:01 +00:00
ashmrtn
c3f61bb017
Add repo maintenance command to sanity tests (#4241)
Runs on an empty repo for speed but will
help ensure that at least the CLI layer
is working as expected.

Manual test run (expected failure) [here](https://github.com/alcionai/corso/actions/runs/6177888032/job/16769984698)

---

#### 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
- [x] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3217

Merge after the below to avoid failures
* #4240

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-14 00:02:32 +00:00
ashmrtn
f2b0bd7eb4
Fix repo maintenance command (#4240)
If we continue passing UnknownService then the
command fails when trying to initialize the
graph client. Longer term we should rework the
logic in the helper functions for connecting
to a repo (see #4239)

This issue isn't present in the most recent
release

---

#### 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
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3217

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-13 23:15:03 +00:00
neha_gupta
804131338d
fix: nightly test (#4235)
<!-- PR description-->

fix: group nightly test cases 

#### Does this PR need a docs update or release note?
- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🤖 Supportability/Tests

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💚 E2E
2023-09-13 17:12:43 +00:00