Compare commits

...

1002 Commits

Author SHA1 Message Date
Georgi Matev
880cb899b5
Update README.md (#5466)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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
2024-10-11 11:42:38 -07:00
Georgi Matev
779bb70301
Update README.md type (#5465)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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
2024-10-11 11:38:56 -07:00
Georgi Matev
2487072d95
Update README.md with archival notice (#5463)
<!-- 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
- [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.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-10-11 11:33:20 -07:00
dependabot[bot]
ad927afbc1
⬆️ Bump sass from 1.78.0 to 1.79.1 in /website (#5444)
Bumps [sass](https://github.com/sass/dart-sass) from 1.78.0 to 1.79.1.
<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.79.1</h2>
<p>To install Sass 1.79.1, 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>No user-visible changes.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1791">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.79.1</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.79.0</h2>
<ul>
<li>
<p><strong>Breaking change</strong>: Passing a number with unit <code>%</code> to the <code>$alpha</code> parameter
of <code>color.change()</code>, <code>color.adjust()</code>, <code>change-color()</code>, and <code>adjust-color()</code>
is now interpreted as a percentage, instead of ignoring the unit. For example,
<code>color.change(red, $alpha: 50%)</code> now returns <code>rgb(255 0 0 / 0.5)</code>.</p>
</li>
<li>
<p><strong>Potentially breaking compatibility fix</strong>: Sass no longer rounds RGB channels
to the nearest integer. This means that, for example, <code>rgb(0 0 1) != rgb(0 0 0.6)</code>. This matches the latest version of the CSS spec and browser behavior.</p>
</li>
<li>
<p><strong>Potentially breaking compatibility fix</strong>: Passing large positive or negative
values to <code>color.adjust()</code> can now cause a color's channels to go outside that
color's gamut. In most cases this will currently be clipped by the browser and
end up showing the same color as before, but once browsers implement gamut
mapping it may produce a different result.</p>
</li>
<li>
<p>Add support for CSS Color Level 4 [color spaces]. Each color value now tracks
its color space along with the values of each channel in that color space.
There are two general principles to keep in mind when dealing with new color
spaces:</p>
<ol>
<li>
<p>With the exception of legacy color spaces (<code>rgb</code>, <code>hsl</code>, and <code>hwb</code>), colors
will always be emitted in the color space they were defined in unless
they're explicitly converted.</p>
</li>
<li>
<p>The <code>color.to-space()</code> function is the only way to convert a color to
another color space. Some built-in functions may do operations in a
different color space, but they'll always convert back to the original space
afterwards.</p>
</li>
</ol>
</li>
<li>
<p><code>rgb</code> colors can now have non-integer channels and channels outside the normal
gamut of 0-255. These colors are always emitted using the <code>rgb()</code> syntax so
that modern browsers that are being displayed on wide-gamut devices can
display the most accurate color possible.</p>
</li>
<li>
<p>Add support for all the new color syntax defined in Color Level 4, including:</p>
<ul>
<li><code>oklab()</code>, <code>oklch()</code>, <code>lab()</code>, and <code>lch()</code> functions;</li>
<li>a top-level <code>hwb()</code> function that matches the space-separated CSS syntax;</li>
<li>and a <code>color()</code> function that supports the <code>srgb</code>, <code>srgb-linear</code>,
<code>display-p3</code>, <code>a98-rgb</code>, <code>prophoto-rgb</code>, <code>rec2020</code>, <code>xyz</code>, <code>xyz-d50</code>, and
<code>xyz-d65</code> color spaces.</li>
</ul>
</li>
<li>
<p>Add new functions for working with color spaces:</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5fa04d3dbc"><code>5fa04d3</code></a> Fix sass-parser publishing (<a href="https://redirect.github.com/sass/dart-sass/issues/2349">#2349</a>)</li>
<li><a href="d740d02e10"><code>d740d02</code></a> Emit deprecation warnings for the legacy JS API (<a href="https://redirect.github.com/sass/dart-sass/issues/2343">#2343</a>)</li>
<li><a href="a957eeadd1"><code>a957eea</code></a> Bump chokidar to v4 (<a href="https://redirect.github.com/sass/dart-sass/issues/2347">#2347</a>)</li>
<li><a href="aa35aa20dd"><code>aa35aa2</code></a> Bump bufbuild/buf-setup-action in /.github/util/initialize (<a href="https://redirect.github.com/sass/dart-sass/issues/2346">#2346</a>)</li>
<li><a href="f826ed2e54"><code>f826ed2</code></a> Stop emitting <code>mixed-decls</code> in a bunch of unnecessary cases (<a href="https://redirect.github.com/sass/dart-sass/issues/2342">#2342</a>)</li>
<li><a href="2f0d0daaf4"><code>2f0d0da</code></a> Merge pull request <a href="https://redirect.github.com/sass/dart-sass/issues/2341">#2341</a> from sass/feature.color-4</li>
<li><a href="de181d9192"><code>de181d9</code></a> Poke CI</li>
<li><a href="34f98c703b"><code>34f98c7</code></a> Update color API tests</li>
<li><a href="422f037ebd"><code>422f037</code></a> Fix a typo</li>
<li><a href="4db68a1d4f"><code>4db68a1</code></a> Merge pull request <a href="https://redirect.github.com/sass/dart-sass/issues/2339">#2339</a> from sass/merge-main</li>
<li>Additional commits viewable in <a href="https://github.com/sass/dart-sass/compare/1.78.0...1.79.1">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.78.0&new-version=1.79.1)](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>
2024-09-18 05:58:05 +00:00
ashmrtn
b086f8c3ff
Use new client created for PnP ops in purge script (#5442)
PowerShell switched to requiring certificate credentials so the existing cleanup jobs have been failing since the switch

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-09-17 23:08:14 +00:00
dependabot[bot]
d9bf48be7e
⬆️ Bump dompurify from 3.0.6 to 3.1.6 in /website (#5437)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.6 to 3.1.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cure53/DOMPurify/releases">dompurify's releases</a>.</em></p>
<blockquote>
<h2>DOMPurify 3.1.6</h2>
<ul>
<li>Fixed an issue with the execution logic of attribute hooks to prevent bypasses, thanks <a href="https://github.com/kevin-mizu"><code>@​kevin-mizu</code></a></li>
<li>Fixed an issue with element removal leading to uncaught errors through DOM Clobbering, thanks <a href="https://github.com/realansgar"><code>@​realansgar</code></a></li>
<li>Fixed a minor problem with the bower file pointing to the wrong dist path</li>
<li>Fixed several minor typos in docs, comments and comment blocks, thanks <a href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a></li>
<li>Updated several development dependencies</li>
</ul>
<h2>DOMPurify 3.1.5</h2>
<ul>
<li>Fixed a minor issue with the dist paths in <code>bower.js</code>, thanks <a href="https://github.com/HakumenNC"><code>@​HakumenNC</code></a></li>
<li>Fixed a minor issue with sanitizing HTML coming from copy&amp;paste Word content, thanks <a href="https://github.com/kakao-bishop-cho"><code>@​kakao-bishop-cho</code></a></li>
</ul>
<h2>DOMPurify 3.1.4</h2>
<ul>
<li>Fixed an issue with the recently implemented <code>isNaN</code> checks, thanks <a href="https://github.com/tulach"><code>@​tulach</code></a></li>
<li>Added several new popover attributes to allow-list, thanks <a href="https://github.com/Gigabyte5671"><code>@​Gigabyte5671</code></a></li>
<li>Fixed the tests and adjusted the test runner to cover all branches</li>
</ul>
<h2>DOMPurify 3.1.3</h2>
<ul>
<li>Fixed several mXSS variations found by and thanks to <a href="https://github.com/kevin-mizu"><code>@​kevin-mizu</code></a> &amp; <a href="https://github.com/Ry0taK"><code>@​Ry0taK</code></a></li>
<li>Added better configurability for comment scrubbing default behavior</li>
<li>Added better hardening against Prototype Pollution attacks, thanks <a href="https://github.com/kevin-mizu"><code>@​kevin-mizu</code></a></li>
<li>Added better handling and readability of the <code>nodeType</code> property, thanks <a href="https://github.com/ssi02014"><code>@​ssi02014</code></a></li>
<li>Fixed some smaller issues in README and other documentation</li>
</ul>
<h2>DOMPurify 3.1.2</h2>
<ul>
<li>Addressed and fixed a mXSS variation found by <a href="https://github.com/kevin-mizu"><code>@​kevin-mizu</code></a></li>
<li>Addressed and fixed a mXSS variation found by <a href="https://twitter.com/hash_kitten">Adam Kues</a> of Assetnote</li>
<li>Updated tests for older Safari and Chrome versions</li>
</ul>
<h2>DOMPurify 3.1.1</h2>
<ul>
<li>Fixed an mXSS sanitiser bypass reported by <a href="https://github.com/icesfont"><code>@​icesfont</code></a></li>
<li>Added new code to track element nesting depth</li>
<li>Added new code to enforce a maximum nesting depth of 255</li>
<li>Added coverage tests and necessary clobbering protections</li>
</ul>
<p><strong>Note that this is a security release and should be upgraded to immediately. Please also note that further releases may follow as the underlying vulnerability is apparently new and further variations may be discovered.</strong></p>
<h2>DOMPurify 3.1.0</h2>
<ul>
<li>Added new setting <code>SAFE_FOR_XML</code> to enable better control over comment scrubbing</li>
<li>Updated README to warn about <em>happy-dom</em> not being safe for use with DOMPurify yet</li>
<li>Updated the LICENSE file to show the accurate year number</li>
<li>Updated several build and test dependencies</li>
</ul>
<h2>DOMPurify 3.0.11</h2>
<ul>
<li>Fixed another conditional bypass caused by Processing Instructions, thanks <a href="https://github.com/Ry0taK"><code>@​Ry0taK</code></a></li>
<li>Fixed the regex for HTML Custom Element detection, thanks <a href="https://github.com/AlekseySolovey3T"><code>@​AlekseySolovey3T</code></a></li>
</ul>
<h2>DOMPurify 3.0.10</h2>
<ul>
<li>Fixed two possible bypasses when sanitizing an XML document and later using it in HTML, thanks <a href="https://github.com/Slonser"><code>@​Slonser</code></a></li>
<li>Bumped up some build and test dependencies</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4083a9096b"><code>4083a90</code></a> Merge pull request <a href="https://redirect.github.com/cure53/DOMPurify/issues/978">#978</a> from cure53/main</li>
<li><a href="90a10a14af"><code>90a10a1</code></a> fix: Fixed a typo on the README</li>
<li><a href="65df0428f0"><code>65df042</code></a> chore: Preparing 3.1.6 release</li>
<li><a href="6e03334bab"><code>6e03334</code></a> fix: Made sure that remove() is not called directly from node</li>
<li><a href="00fc06cf57"><code>00fc06c</code></a> fix: Fixed a DOM clobbering issue leading to an error being thrown</li>
<li><a href="f8c2ef5911"><code>f8c2ef5</code></a> Merge pull request <a href="https://redirect.github.com/cure53/DOMPurify/issues/977">#977</a> from cure53/dependabot/npm_and_yarn/multi-99ca4f73d8</li>
<li><a href="e5112ec40a"><code>e5112ec</code></a> build(deps): bump ws and socket.io-adapter</li>
<li><a href="9978cecea2"><code>9978cec</code></a> docs: Added better security warning about SAFE_FOR_XML to README</li>
<li><a href="fa542df7e8"><code>fa542df</code></a> fix: Changed the order for attribute checks slightly for safer hooks</li>
<li><a href="b8b552cb21"><code>b8b552c</code></a> Merge pull request <a href="https://redirect.github.com/cure53/DOMPurify/issues/975">#975</a> from cure53/dependabot/npm_and_yarn/multi-2d3aef8690</li>
<li>Additional commits viewable in <a href="https://github.com/cure53/DOMPurify/compare/3.0.6...3.1.6">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dompurify&package-manager=npm_and_yarn&previous-version=3.0.6&new-version=3.1.6)](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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2024-09-16 20:47:23 +00:00
dependabot[bot]
fe261b22c5
⬆️ Bump sass from 1.77.0 to 1.78.0 in /website (#5423)
Bumps [sass](https://github.com/sass/dart-sass) from 1.77.0 to 1.78.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.78.0</h2>
<p>To install Sass 1.78.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>The <code>meta.feature-exists</code> function is now deprecated. This deprecation is named <code>feature-exists</code>.</p>
</li>
<li>
<p>Fix a crash when using <code>@at-root</code> without any queries or children in the indented syntax.</p>
</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Backport the deprecation options (<code>fatalDeprecations</code>, <code>futureDeprecations</code>, and <code>silenceDeprecations</code>) to the legacy JS API. The legacy JS API is itself deprecated, and you should move off of it if possible, but this will allow users of bundlers and other tools that are still using the legacy API to still control deprecation warnings.</p>
</li>
<li>
<p>Fix a bug where accessing <code>SourceSpan.url</code> would crash when a relative URL was passed to the Sass API.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Explicitly expose a <code>sass</code> executable from the <code>sass-embedded</code> npm package. This was intended to be included in 1.63.0, but due to the way platform-specific dependency executables are installed it did not work as intended. Now users can run <code>npx sass</code> for local installs or just <code>sass</code> when <code>sass-embedded</code> is installed globally.</p>
</li>
<li>
<p>Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the <code>sass-embedded</code> npm package.</p>
</li>
<li>
<p>Fix an edge case where the Dart VM could hang when shutting down when requests were in flight.</p>
</li>
<li>
<p>Fix a race condition where the embedded host could fail to shut down if it was closed around the same time a new compilation was started.</p>
</li>
<li>
<p>Fix a bug where parse-time deprecation warnings could not be controlled by the deprecation options in some circumstances.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1780">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.77.8</h2>
<p>To install Sass 1.77.8, 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>No user-visible changes.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1778">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.77.5</h2>
<p>To install Sass 1.77.5, 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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</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.78.0</h2>
<ul>
<li>
<p>The <code>meta.feature-exists</code> function is now deprecated. This deprecation is
named <code>feature-exists</code>.</p>
</li>
<li>
<p>Fix a crash when using <code>@at-root</code> without any queries or children in the
indented syntax.</p>
</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Backport the deprecation options (<code>fatalDeprecations</code>, <code>futureDeprecations</code>,
and <code>silenceDeprecations</code>) to the legacy JS API. The legacy JS API is itself
deprecated, and you should move off of it if possible, but this will allow
users of bundlers and other tools that are still using the legacy API to
still control deprecation warnings.</p>
</li>
<li>
<p>Fix a bug where accessing <code>SourceSpan.url</code> would crash when a relative URL was
passed to the Sass API.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Explicitly expose a <code>sass</code> executable from the <code>sass-embedded</code> npm package.
This was intended to be included in 1.63.0, but due to the way
platform-specific dependency executables are installed it did not work as
intended. Now users can run <code>npx sass</code> for local installs or just <code>sass</code> when
<code>sass-embedded</code> is installed globally.</p>
</li>
<li>
<p>Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the
<code>sass-embedded</code> npm package.</p>
</li>
<li>
<p>Fix an edge case where the Dart VM could hang when shutting down when requests
were in flight.</p>
</li>
<li>
<p>Fix a race condition where the embedded host could fail to shut down if it was
closed around the same time a new compilation was started.</p>
</li>
<li>
<p>Fix a bug where parse-time deprecation warnings could not be controlled by
the deprecation options in some circumstances.</p>
</li>
</ul>
<h2>1.77.8</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.77.7</h2>
<ul>
<li>
<p>Declarations that appear after nested rules are deprecated, because the
semantics Sass has historically used are different from the semantics
specified by CSS. In the future, Sass will adopt the standard CSS semantics.</p>
<p>See <a href="https://sass-lang.com/d/mixed-decls">the Sass website</a> for details.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="90a70ef168"><code>90a70ef</code></a> Fix failing double check test for sass-parser (<a href="https://redirect.github.com/sass/dart-sass/issues/2330">#2330</a>)</li>
<li><a href="b1d5f987d9"><code>b1d5f98</code></a> Backport deprecation API to legacy JS API (<a href="https://redirect.github.com/sass/dart-sass/issues/2293">#2293</a>)</li>
<li><a href="56a42371e0"><code>56a4237</code></a> Delete unreachable <code>default</code> clause. (<a href="https://redirect.github.com/sass/dart-sass/issues/2323">#2323</a>)</li>
<li><a href="a7f623dd13"><code>a7f623d</code></a> Bump bufbuild/buf-setup-action in /.github/util/initialize (<a href="https://redirect.github.com/sass/dart-sass/issues/2319">#2319</a>)</li>
<li><a href="9f82850504"><code>9f82850</code></a> Ignore new <code>unreachable_switch_default</code> warning. (<a href="https://redirect.github.com/sass/dart-sass/issues/2318">#2318</a>)</li>
<li><a href="798cd7cf57"><code>798cd7c</code></a> Update pubspec.yaml (<a href="https://redirect.github.com/sass/dart-sass/issues/2321">#2321</a>)</li>
<li><a href="2bf3ae0eed"><code>2bf3ae0</code></a> Fix a comment (<a href="https://redirect.github.com/sass/dart-sass/issues/2316">#2316</a>)</li>
<li><a href="eb6c19e53c"><code>eb6c19e</code></a> Initial implementation of a PostCSS-compatible parser JS API (<a href="https://redirect.github.com/sass/dart-sass/issues/2304">#2304</a>)</li>
<li><a href="c3cccefe2e"><code>c3cccef</code></a> Bump dartdoc from 8.0.7 to 8.0.8 (<a href="https://redirect.github.com/sass/dart-sass/issues/2300">#2300</a>)</li>
<li><a href="f0a01829ce"><code>f0a0182</code></a> docs: Fix link to custom importer (<a href="https://redirect.github.com/sass/dart-sass/issues/2315">#2315</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/sass/dart-sass/compare/1.77.0...1.78.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.77.0&new-version=1.78.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>
2024-09-04 05:54:58 +00:00
dependabot[bot]
18e3661289
⬆️ Bump webpack from 5.89.0 to 5.94.0 in /website (#5417)
Bumps [webpack](https://github.com/webpack/webpack) from 5.89.0 to 5.94.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/webpack/webpack/releases">webpack's releases</a>.</em></p>
<blockquote>
<h2>v5.94.0</h2>
<h2>Bug Fixes</h2>
<ul>
<li>Added runtime condition for harmony reexport checked</li>
<li>Handle properly <code>data</code>/<code>http</code>/<code>https</code> protocols in source maps</li>
<li>Make <code>bigint</code> optimistic when browserslist not found</li>
<li>Move <code>@​types/eslint-scope</code> to dev deps</li>
<li>Related in asset stats is now always an array when no related found</li>
<li>Handle ASI for export declarations</li>
<li>Mangle destruction incorrect with export named default properly</li>
<li>Fixed unexpected asi generation with sequence expression</li>
<li>Fixed a lot of types</li>
</ul>
<h2>New Features</h2>
<ul>
<li>Added new external type &quot;module-import&quot;</li>
<li>Support <code>webpackIgnore</code> for <code>new URL()</code> construction</li>
<li>[CSS] <code>@import</code> pathinfo support</li>
</ul>
<h2>Security</h2>
<ul>
<li>Fixed DOM clobbering in auto public path</li>
</ul>
<h2>v5.93.0</h2>
<h2>Bug Fixes</h2>
<ul>
<li>Generate correct relative path to runtime chunks</li>
<li>Makes <code>DefinePlugin</code> quieter under default log level</li>
<li>Fixed mangle destructuring default in namespace import</li>
<li>Fixed consumption of eager shared modules for module federation</li>
<li>Strip slash for pretty regexp</li>
<li>Calculate correct contenthash for CSS generator options</li>
</ul>
<h2>New Features</h2>
<ul>
<li>Added the <code>binary</code> generator option for asset modules to explicitly keep source maps produced by loaders</li>
<li>Added the <code>modern-module</code> library value for tree shakable output</li>
<li>Added the <code>overrideStrict</code> option to override strict or non-strict mode for javascript modules</li>
</ul>
<h2>v5.92.1</h2>
<h2>Bug Fixes</h2>
<ul>
<li>Doesn't crash with an error when the css experiment is enabled and contenthash is used</li>
</ul>
<h2>v5.92.0</h2>
<h2>Bug Fixes</h2>
<ul>
<li>Correct tidle range's comutation for module federation</li>
<li>Consider runtime for pure expression dependency update hash</li>
<li>Return value in the <code>subtractRuntime</code> function for runtime logic</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="eabf85d858"><code>eabf85d</code></a> chore(release): 5.94.0</li>
<li><a href="955e057abc"><code>955e057</code></a> security: fix DOM clobbering in auto public path</li>
<li><a href="9822387362"><code>9822387</code></a> test: fix</li>
<li><a href="cbb86ede32"><code>cbb86ed</code></a> test: fix</li>
<li><a href="5ac3d7f2cd"><code>5ac3d7f</code></a> fix: unexpected asi generation with sequence expression</li>
<li><a href="2411661bd1"><code>2411661</code></a> security: fix DOM clobbering in auto public path</li>
<li><a href="b8c03d4772"><code>b8c03d4</code></a> fix: unexpected asi generation with sequence expression</li>
<li><a href="f46a03ccbc"><code>f46a03c</code></a> revert: do not use heuristic fallback for &quot;module-import&quot;</li>
<li><a href="60f189871a"><code>60f1898</code></a> fix: do not use heuristic fallback for &quot;module-import&quot;</li>
<li><a href="66306aa456"><code>66306aa</code></a> Revert &quot;fix: module-import get fallback from externalsPresets&quot;</li>
<li>Additional commits viewable in <a href="https://github.com/webpack/webpack/compare/v5.89.0...v5.94.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpack&package-manager=npm_and_yarn&previous-version=5.89.0&new-version=5.94.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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2024-08-30 22:06:35 +00:00
dependabot[bot]
d87e24d839
⬆️ Bump @docusaurus/plugin-google-gtag from 3.4.0 to 3.5.1 in /website (#5402)
Bumps [@docusaurus/plugin-google-gtag](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag) from 3.4.0 to 3.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/plugin-google-gtag</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.5.1 (2024-08-09)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10384">#10384</a> fix(core): algolia context import (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10382">#10382</a> fix(theme-algolia): useDocusaurusContext import error (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Sunghyun Cho (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.5.0 (2024-08-09)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10375">#10375</a> feat(blog): add <code>onUntruncatedBlogPosts</code> blog options (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10376">#10376</a> feat(theme): show unlisted/draft banners in dev mode (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9252">#9252</a> feat(blog): add feed xlst options to render beautiful RSS and Atom feeds (<a href="https://github.com/Xebec19"><code>@​Xebec19</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10216">#10216</a> feat(blog): authors page (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10339">#10339</a> feat(translation): add Estonian default translation (<a href="https://github.com/chirbard"><code>@​chirbard</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10325">#10325</a> feat(translations): Indonesian translation (<a href="https://github.com/priyadi"><code>@​priyadi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10335">#10335</a> feat(mdx-loader): wrap mdx content title (<code># Title</code>) in <code>&lt;header&gt;</code> for concistency (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10222">#10222</a> feat(blog): author header social icons (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-google-analytics</code>, <code>docusaurus-plugin-google-gtag</code>, <code>docusaurus-plugin-google-tag-manager</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-plugin-vercel-analytics</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10286">#10286</a> feat(core): allow plugins to self-disable by returning null (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10252">#10252</a> feat(blog): group sidebar items by year (<code>themeConfig.blog.sidebar.groupByYear</code>) (<a href="https://github.com/alicelovescake"><code>@​alicelovescake</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10224">#10224</a> feat(blog): warn duplicate and inline authors (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils-validation</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10241">#10241</a> feat(mdx): support recma plugins (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10344">#10344</a> fix(translations): fix wrong Estonian (et) translations and typos (<a href="https://github.com/Gekd"><code>@​Gekd</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10360">#10360</a> fix(translations): Fix and Improve Spanish translations (<a href="https://github.com/sergioalmela"><code>@​sergioalmela</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10235">#10235</a> fix(theme-translation): add missing German (de) theme.admonition translations (<a href="https://github.com/franzd1"><code>@​franzd1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10342">#10342</a> fix(search): fix algolia search ignore ctrl + F in search input (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/plugin-google-gtag</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.5.1 (2024-08-09)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10384">#10384</a> fix(core): algolia context import (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10382">#10382</a> fix(theme-algolia): useDocusaurusContext import error (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Sunghyun Cho (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.5.0 (2024-08-09)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10375">#10375</a> feat(blog): add <code>onUntruncatedBlogPosts</code> blog options (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10376">#10376</a> feat(theme): show unlisted/draft banners in dev mode (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9252">#9252</a> feat(blog): add feed xlst options to render beautiful RSS and Atom feeds (<a href="https://github.com/Xebec19"><code>@​Xebec19</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10216">#10216</a> feat(blog): authors page (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10339">#10339</a> feat(translation): add Estonian default translation (<a href="https://github.com/chirbard"><code>@​chirbard</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10325">#10325</a> feat(translations): Indonesian translation (<a href="https://github.com/priyadi"><code>@​priyadi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10335">#10335</a> feat(mdx-loader): wrap mdx content title (<code># Title</code>) in <code>&lt;header&gt;</code> for concistency (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10222">#10222</a> feat(blog): author header social icons (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-google-analytics</code>, <code>docusaurus-plugin-google-gtag</code>, <code>docusaurus-plugin-google-tag-manager</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-plugin-vercel-analytics</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10286">#10286</a> feat(core): allow plugins to self-disable by returning null (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10252">#10252</a> feat(blog): group sidebar items by year (<code>themeConfig.blog.sidebar.groupByYear</code>) (<a href="https://github.com/alicelovescake"><code>@​alicelovescake</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10224">#10224</a> feat(blog): warn duplicate and inline authors (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils-validation</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10241">#10241</a> feat(mdx): support recma plugins (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10344">#10344</a> fix(translations): fix wrong Estonian (et) translations and typos (<a href="https://github.com/Gekd"><code>@​Gekd</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10360">#10360</a> fix(translations): Fix and Improve Spanish translations (<a href="https://github.com/sergioalmela"><code>@​sergioalmela</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10235">#10235</a> fix(theme-translation): add missing German (de) theme.admonition translations (<a href="https://github.com/franzd1"><code>@​franzd1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10342">#10342</a> fix(search): fix algolia search ignore ctrl + F in search input (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5acbc57bd6"><code>5acbc57</code></a> v3.5.1</li>
<li><a href="daa6b87f24"><code>daa6b87</code></a> chore: release Docusaurus v3.5 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10379">#10379</a>)</li>
<li><a href="afa9fcc965"><code>afa9fcc</code></a> docs(plugin-google-gtag): replace the broken Google Developers links with val...</li>
<li><a href="80203b385d"><code>80203b3</code></a> feat(core): allow plugins to self-disable by returning null (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10286">#10286</a>)</li>
<li><a href="6dd9a5076e"><code>6dd9a50</code></a> chore: simplify TypeScript configs, use TS 5.5 configDir placeholder (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10256">#10256</a>)</li>
<li><a href="dbdd4dfb2e"><code>dbdd4df</code></a> chore: release Docusaurus v3.4 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10186">#10186</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.5.1/packages/docusaurus-plugin-google-gtag">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/plugin-google-gtag&package-manager=npm_and_yarn&previous-version=3.4.0&new-version=3.5.1)](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>
2024-08-12 06:00:52 +00:00
dependabot[bot]
b3775e2feb
⬆️ Bump @docusaurus/module-type-aliases from 3.4.0 to 3.5.1 in /website (#5400)
Bumps [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) from 3.4.0 to 3.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/module-type-aliases</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.5.1 (2024-08-09)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10384">#10384</a> fix(core): algolia context import (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10382">#10382</a> fix(theme-algolia): useDocusaurusContext import error (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Sunghyun Cho (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.5.0 (2024-08-09)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10375">#10375</a> feat(blog): add <code>onUntruncatedBlogPosts</code> blog options (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10376">#10376</a> feat(theme): show unlisted/draft banners in dev mode (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9252">#9252</a> feat(blog): add feed xlst options to render beautiful RSS and Atom feeds (<a href="https://github.com/Xebec19"><code>@​Xebec19</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10216">#10216</a> feat(blog): authors page (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10339">#10339</a> feat(translation): add Estonian default translation (<a href="https://github.com/chirbard"><code>@​chirbard</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10325">#10325</a> feat(translations): Indonesian translation (<a href="https://github.com/priyadi"><code>@​priyadi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10335">#10335</a> feat(mdx-loader): wrap mdx content title (<code># Title</code>) in <code>&lt;header&gt;</code> for concistency (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10222">#10222</a> feat(blog): author header social icons (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-google-analytics</code>, <code>docusaurus-plugin-google-gtag</code>, <code>docusaurus-plugin-google-tag-manager</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-plugin-vercel-analytics</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10286">#10286</a> feat(core): allow plugins to self-disable by returning null (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10252">#10252</a> feat(blog): group sidebar items by year (<code>themeConfig.blog.sidebar.groupByYear</code>) (<a href="https://github.com/alicelovescake"><code>@​alicelovescake</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10224">#10224</a> feat(blog): warn duplicate and inline authors (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils-validation</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10241">#10241</a> feat(mdx): support recma plugins (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10344">#10344</a> fix(translations): fix wrong Estonian (et) translations and typos (<a href="https://github.com/Gekd"><code>@​Gekd</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10360">#10360</a> fix(translations): Fix and Improve Spanish translations (<a href="https://github.com/sergioalmela"><code>@​sergioalmela</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10235">#10235</a> fix(theme-translation): add missing German (de) theme.admonition translations (<a href="https://github.com/franzd1"><code>@​franzd1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10342">#10342</a> fix(search): fix algolia search ignore ctrl + F in search input (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/module-type-aliases</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.5.1 (2024-08-09)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10384">#10384</a> fix(core): algolia context import (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10382">#10382</a> fix(theme-algolia): useDocusaurusContext import error (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Sunghyun Cho (<a href="https://github.com/anaclumos"><code>@​anaclumos</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.5.0 (2024-08-09)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10375">#10375</a> feat(blog): add <code>onUntruncatedBlogPosts</code> blog options (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10376">#10376</a> feat(theme): show unlisted/draft banners in dev mode (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9252">#9252</a> feat(blog): add feed xlst options to render beautiful RSS and Atom feeds (<a href="https://github.com/Xebec19"><code>@​Xebec19</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-theme-translations</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10216">#10216</a> feat(blog): authors page (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10339">#10339</a> feat(translation): add Estonian default translation (<a href="https://github.com/chirbard"><code>@​chirbard</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10325">#10325</a> feat(translations): Indonesian translation (<a href="https://github.com/priyadi"><code>@​priyadi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10335">#10335</a> feat(mdx-loader): wrap mdx content title (<code># Title</code>) in <code>&lt;header&gt;</code> for concistency (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10222">#10222</a> feat(blog): author header social icons (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-google-analytics</code>, <code>docusaurus-plugin-google-gtag</code>, <code>docusaurus-plugin-google-tag-manager</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-plugin-vercel-analytics</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10286">#10286</a> feat(core): allow plugins to self-disable by returning null (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10252">#10252</a> feat(blog): group sidebar items by year (<code>themeConfig.blog.sidebar.groupByYear</code>) (<a href="https://github.com/alicelovescake"><code>@​alicelovescake</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10224">#10224</a> feat(blog): warn duplicate and inline authors (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils-validation</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10241">#10241</a> feat(mdx): support recma plugins (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10344">#10344</a> fix(translations): fix wrong Estonian (et) translations and typos (<a href="https://github.com/Gekd"><code>@​Gekd</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10360">#10360</a> fix(translations): Fix and Improve Spanish translations (<a href="https://github.com/sergioalmela"><code>@​sergioalmela</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10235">#10235</a> fix(theme-translation): add missing German (de) theme.admonition translations (<a href="https://github.com/franzd1"><code>@​franzd1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10342">#10342</a> fix(search): fix algolia search ignore ctrl + F in search input (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5acbc57bd6"><code>5acbc57</code></a> v3.5.1</li>
<li><a href="daa6b87f24"><code>daa6b87</code></a> chore: release Docusaurus v3.5 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10379">#10379</a>)</li>
<li><a href="dbdd4dfb2e"><code>dbdd4df</code></a> chore: release Docusaurus v3.4 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10186">#10186</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.5.1/packages/docusaurus-module-type-aliases">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/module-type-aliases&package-manager=npm_and_yarn&previous-version=3.4.0&new-version=3.5.1)](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>
2024-08-12 05:51:21 +00:00
dependabot[bot]
4fc5b5b146
⬆️ Bump @docusaurus/plugin-google-gtag from 3.3.2 to 3.4.0 in /website (#5347)
Bumps [@docusaurus/plugin-google-gtag](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag) from 3.3.2 to 3.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/plugin-google-gtag</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.4.0 (2024-05-31)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10137">#10137</a> feat(docs, blog): add support for <code>tags.yml</code>, predefined list of tags (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10151">#10151</a> feat(theme-translations): Added Turkmen (tk) default theme translations (<a href="https://github.com/ilmedova"><code>@​ilmedova</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10111">#10111</a> feat(theme-translations): Add Bulgarian default theme translations (bg) (<a href="https://github.com/PetarMc1"><code>@​PetarMc1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-theme-search-algolia</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9859">#9859</a> feat(core): hash router option - browse site offline (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10121">#10121</a> feat(core): site storage config options (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10185">#10185</a> fix(docs, blog): Markdown link resolution does not support hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10178">#10178</a> fix(theme): SearchPage should respect <code>contextualSearch: false</code> setting (<a href="https://github.com/ncoughlin"><code>@​ncoughlin</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10164">#10164</a> fix(search): fix algolia search container bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10168">#10168</a> fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10165">#10165</a> fix(theme-translation): add missing Korean (ko) theme translations (<a href="https://github.com/revi"><code>@​revi</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10157">#10157</a> fix(theme-translations): complete Vietnamese theme translations (<a href="https://github.com/namnguyenthanhwork"><code>@​namnguyenthanhwork</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10145">#10145</a> fix(core): fix serve workaround regexp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10142">#10142</a> fix(core): fix <code>docusaurus serve</code> broken for assets when using trailingSlash (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10130">#10130</a> fix(core): the broken anchor checker should not be sensitive pathname trailing slashes (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10144">#10144</a> fix(theme): fix announcement bar layout shift due to missing storage key namespace (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10132">#10132</a> fix(core): <code>configurePostCss()</code> should run after <code>configureWebpack()</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10131">#10131</a> fix(core): codegen should generate unique route prop filenames (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10118">#10118</a> fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10176">#10176</a> docs: add community plugin docusaurus-graph (<a href="https://github.com/Arsero"><code>@​Arsero</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10173">#10173</a> docs: improve how to use <code>&lt;details&gt;</code> (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10167">#10167</a> docs: suggest using <code>{&lt;...&gt;...&lt;/...&gt;}</code> if don't use Markdown in migra… (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10143">#10143</a> docs: recommend users to remove hast-util-is-element in migration to v3 (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10124">#10124</a> docs: v3 prepare your site blog post should point users to the upgrade guide (<a href="https://github.com/homotechsual"><code>@​homotechsual</code></a>)</li>
</ul>
<h4>🤖 Dependencies</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10155">#10155</a> chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 (<a href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/plugin-google-gtag</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.4.0 (2024-05-31)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10137">#10137</a> feat(docs, blog): add support for <code>tags.yml</code>, predefined list of tags (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10151">#10151</a> feat(theme-translations): Added Turkmen (tk) default theme translations (<a href="https://github.com/ilmedova"><code>@​ilmedova</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10111">#10111</a> feat(theme-translations): Add Bulgarian default theme translations (bg) (<a href="https://github.com/PetarMc1"><code>@​PetarMc1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-theme-search-algolia</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9859">#9859</a> feat(core): hash router option - browse site offline (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10121">#10121</a> feat(core): site storage config options (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10185">#10185</a> fix(docs, blog): Markdown link resolution does not support hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10178">#10178</a> fix(theme): SearchPage should respect <code>contextualSearch: false</code> setting (<a href="https://github.com/ncoughlin"><code>@​ncoughlin</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10164">#10164</a> fix(search): fix algolia search container bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10168">#10168</a> fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10165">#10165</a> fix(theme-translation): add missing Korean (ko) theme translations (<a href="https://github.com/revi"><code>@​revi</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10157">#10157</a> fix(theme-translations): complete Vietnamese theme translations (<a href="https://github.com/namnguyenthanhwork"><code>@​namnguyenthanhwork</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10145">#10145</a> fix(core): fix serve workaround regexp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10142">#10142</a> fix(core): fix <code>docusaurus serve</code> broken for assets when using trailingSlash (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10130">#10130</a> fix(core): the broken anchor checker should not be sensitive pathname trailing slashes (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10144">#10144</a> fix(theme): fix announcement bar layout shift due to missing storage key namespace (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10132">#10132</a> fix(core): <code>configurePostCss()</code> should run after <code>configureWebpack()</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10131">#10131</a> fix(core): codegen should generate unique route prop filenames (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10118">#10118</a> fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10176">#10176</a> docs: add community plugin docusaurus-graph (<a href="https://github.com/Arsero"><code>@​Arsero</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10173">#10173</a> docs: improve how to use <code>&lt;details&gt;</code> (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10167">#10167</a> docs: suggest using <code>{&lt;...&gt;...&lt;/...&gt;}</code> if don't use Markdown in migra… (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10143">#10143</a> docs: recommend users to remove hast-util-is-element in migration to v3 (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10124">#10124</a> docs: v3 prepare your site blog post should point users to the upgrade guide (<a href="https://github.com/homotechsual"><code>@​homotechsual</code></a>)</li>
</ul>
<h4>🤖 Dependencies</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10155">#10155</a> chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 (<a href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="49e9a21432"><code>49e9a21</code></a> v3.4.0</li>
<li><a href="c125f7a272"><code>c125f7a</code></a> chore: release Docusaurus 3.3.0 + 3.3.1 + 3.3.2 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10101">#10101</a>)</li>
<li><a href="6b53d4263d"><code>6b53d42</code></a> misc: make copyUntypedFiles work for watch mode (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7445">#7445</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.4.0/packages/docusaurus-plugin-google-gtag">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/plugin-google-gtag&package-manager=npm_and_yarn&previous-version=3.3.2&new-version=3.4.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>
2024-06-03 05:46:49 +00:00
dependabot[bot]
0fe2588e78
⬆️ Bump @docusaurus/module-type-aliases from 3.3.2 to 3.4.0 in /website (#5346)
Bumps [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) from 3.3.2 to 3.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/module-type-aliases</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.4.0 (2024-05-31)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10137">#10137</a> feat(docs, blog): add support for <code>tags.yml</code>, predefined list of tags (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10151">#10151</a> feat(theme-translations): Added Turkmen (tk) default theme translations (<a href="https://github.com/ilmedova"><code>@​ilmedova</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10111">#10111</a> feat(theme-translations): Add Bulgarian default theme translations (bg) (<a href="https://github.com/PetarMc1"><code>@​PetarMc1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-theme-search-algolia</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9859">#9859</a> feat(core): hash router option - browse site offline (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10121">#10121</a> feat(core): site storage config options (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10185">#10185</a> fix(docs, blog): Markdown link resolution does not support hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10178">#10178</a> fix(theme): SearchPage should respect <code>contextualSearch: false</code> setting (<a href="https://github.com/ncoughlin"><code>@​ncoughlin</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10164">#10164</a> fix(search): fix algolia search container bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10168">#10168</a> fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10165">#10165</a> fix(theme-translation): add missing Korean (ko) theme translations (<a href="https://github.com/revi"><code>@​revi</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10157">#10157</a> fix(theme-translations): complete Vietnamese theme translations (<a href="https://github.com/namnguyenthanhwork"><code>@​namnguyenthanhwork</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10145">#10145</a> fix(core): fix serve workaround regexp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10142">#10142</a> fix(core): fix <code>docusaurus serve</code> broken for assets when using trailingSlash (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10130">#10130</a> fix(core): the broken anchor checker should not be sensitive pathname trailing slashes (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10144">#10144</a> fix(theme): fix announcement bar layout shift due to missing storage key namespace (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10132">#10132</a> fix(core): <code>configurePostCss()</code> should run after <code>configureWebpack()</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10131">#10131</a> fix(core): codegen should generate unique route prop filenames (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10118">#10118</a> fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10176">#10176</a> docs: add community plugin docusaurus-graph (<a href="https://github.com/Arsero"><code>@​Arsero</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10173">#10173</a> docs: improve how to use <code>&lt;details&gt;</code> (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10167">#10167</a> docs: suggest using <code>{&lt;...&gt;...&lt;/...&gt;}</code> if don't use Markdown in migra… (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10143">#10143</a> docs: recommend users to remove hast-util-is-element in migration to v3 (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10124">#10124</a> docs: v3 prepare your site blog post should point users to the upgrade guide (<a href="https://github.com/homotechsual"><code>@​homotechsual</code></a>)</li>
</ul>
<h4>🤖 Dependencies</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10155">#10155</a> chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 (<a href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/module-type-aliases</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.4.0 (2024-05-31)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>create-docusaurus</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10137">#10137</a> feat(docs, blog): add support for <code>tags.yml</code>, predefined list of tags (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10151">#10151</a> feat(theme-translations): Added Turkmen (tk) default theme translations (<a href="https://github.com/ilmedova"><code>@​ilmedova</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10111">#10111</a> feat(theme-translations): Add Bulgarian default theme translations (bg) (<a href="https://github.com/PetarMc1"><code>@​PetarMc1</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-client-redirects</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-pwa</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-theme-search-algolia</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9859">#9859</a> feat(core): hash router option - browse site offline (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10121">#10121</a> feat(core): site storage config options (experimental) (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10185">#10185</a> fix(docs, blog): Markdown link resolution does not support hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10178">#10178</a> fix(theme): SearchPage should respect <code>contextualSearch: false</code> setting (<a href="https://github.com/ncoughlin"><code>@​ncoughlin</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10164">#10164</a> fix(search): fix algolia search container bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10168">#10168</a> fix(mdx-loader): resolve Markdown/MDX links with Remark instead of RegExp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10165">#10165</a> fix(theme-translation): add missing Korean (ko) theme translations (<a href="https://github.com/revi"><code>@​revi</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10157">#10157</a> fix(theme-translations): complete Vietnamese theme translations (<a href="https://github.com/namnguyenthanhwork"><code>@​namnguyenthanhwork</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10145">#10145</a> fix(core): fix serve workaround regexp (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10142">#10142</a> fix(core): fix <code>docusaurus serve</code> broken for assets when using trailingSlash (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10130">#10130</a> fix(core): the broken anchor checker should not be sensitive pathname trailing slashes (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10144">#10144</a> fix(theme): fix announcement bar layout shift due to missing storage key namespace (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10132">#10132</a> fix(core): <code>configurePostCss()</code> should run after <code>configureWebpack()</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10131">#10131</a> fix(core): codegen should generate unique route prop filenames (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10118">#10118</a> fix(theme-translations): fix missing pluralization for label DocCard.categoryDescription.plurals (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10176">#10176</a> docs: add community plugin docusaurus-graph (<a href="https://github.com/Arsero"><code>@​Arsero</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10173">#10173</a> docs: improve how to use <code>&lt;details&gt;</code> (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10167">#10167</a> docs: suggest using <code>{&lt;...&gt;...&lt;/...&gt;}</code> if don't use Markdown in migra… (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10143">#10143</a> docs: recommend users to remove hast-util-is-element in migration to v3 (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10124">#10124</a> docs: v3 prepare your site blog post should point users to the upgrade guide (<a href="https://github.com/homotechsual"><code>@​homotechsual</code></a>)</li>
</ul>
<h4>🤖 Dependencies</h4>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10155">#10155</a> chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 (<a href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="49e9a21432"><code>49e9a21</code></a> v3.4.0</li>
<li><a href="620e46350a"><code>620e463</code></a> feat(core): site storage config options (experimental) (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10121">#10121</a>)</li>
<li><a href="c125f7a272"><code>c125f7a</code></a> chore: release Docusaurus 3.3.0 + 3.3.1 + 3.3.2 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10101">#10101</a>)</li>
<li><a href="53564f33ab"><code>53564f3</code></a> refactor(core): prefetch/preload refactor (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7282">#7282</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.4.0/packages/docusaurus-module-type-aliases">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/module-type-aliases&package-manager=npm_and_yarn&previous-version=3.3.2&new-version=3.4.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>
2024-06-03 05:41:31 +00:00
Orhan Tozan
d9d993d267
docs: improve definition of a Backup (#5316)
After some building, I realized that a backup is a snapshot of a
resource, not the whole m365 service. Initially, I assumed that 1 backup
takes the whole service per tenant
(https://discord.com/channels/1022200980487557130/1022200981376745474/1231385151376719892).
This doc update should help clear the confusion more.

Maybe there is a better way to word it, so any other suggestions are
welcome.

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E

---------

Co-authored-by: ashmrtn <3891298+ashmrtn@users.noreply.github.com>
2024-05-22 08:57:05 -07:00
dependabot[bot]
1b842a1c60
⬆️ Bump sass from 1.76.0 to 1.77.0 in /website (#5324)
Bumps [sass](https://github.com/sass/dart-sass) from 1.76.0 to 1.77.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.77.0</h2>
<p>To install Sass 1.77.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><em>Don't</em> throw errors for at-rules in keyframe blocks.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1770">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.77.0</h2>
<ul>
<li><em>Don't</em> throw errors for at-rules in keyframe blocks.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="85f39d5ad7"><code>85f39d5</code></a> Allow at-rules in <code>@keyframes</code> blocks (<a href="https://redirect.github.com/sass/dart-sass/issues/2236">#2236</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.76.0...1.77.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.76.0&new-version=1.77.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>
2024-05-07 05:36:17 +00:00
dependabot[bot]
64de1d9e17
⬆️ Bump @docusaurus/plugin-google-gtag from 3.2.0 to 3.3.2 in /website (#5320)
Bumps [@docusaurus/plugin-google-gtag](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag) from 3.2.0 to 3.3.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/plugin-google-gtag</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.3.0 (2024-05-03)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-sitemap</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10083">#10083</a> feat: add createSitemapItems hook (<a href="https://github.com/johnnyreilly"><code>@​johnnyreilly</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10064">#10064</a> feat(core): add new site config option <code>siteConfig.markdown.anchors.maintainCase</code> (<a href="https://github.com/iAdramelk"><code>@​iAdramelk</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9767">#9767</a> feat(cli): docusaurus deploy should support a --target-dir option (<a href="https://github.com/SandPod"><code>@​SandPod</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10042">#10042</a> feat(core): simplify plugin API, support route.props (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-pages</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10032">#10032</a> feat(pages): add LastUpdateAuthor &amp; LastUpdateTime &amp; editUrl (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-cssnano-preset</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10092">#10092</a> chore: Upgrade svgr / svgo / cssnano (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10091">#10091</a> fix(theme): <code>&lt;Tabs&gt;</code> props should allow overriding defaults (<a href="https://github.com/gagdiez"><code>@​gagdiez</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10080">#10080</a> fix(theme): <code>&lt;Admonition&gt;</code> should render properly without heading/icon (<a href="https://github.com/andrmaz"><code>@​andrmaz</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10090">#10090</a> fix(core): <code>docusaurus serve</code> redirects should include the site <code>/baseUrl/</code> prefix (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-preset-classic</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10079">#10079</a> fix: handle React v18.3 warnings (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10070">#10070</a> fix(theme-translations): add missing theme translations for pt-BR (<a href="https://github.com/h3nr1ke"><code>@​h3nr1ke</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10051">#10051</a> fix(theme-translations): correct label for tip admonition in italian (<a href="https://github.com/tomsotte"><code>@​tomsotte</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10048">#10048</a> fix(algolia): add insights property on Algolia Theme Config object TS definition (<a href="https://github.com/Virgil993"><code>@​Virgil993</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10054">#10054</a> fix(core): sortRoutes shouldn't have a default baseUrl value, this led to a bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10025">#10025</a> fix(docs): sidebar item label impact the pagination label of docs (<a href="https://github.com/Abdullah-03"><code>@​Abdullah-03</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10022">#10022</a> fix(utils): getFileCommitDate should support <code>log.showSignature=true</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<ul>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10060">#10060</a> refactor(core): optimize App entrypoint, it should not re-render when navigating (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10061">#10061</a> refactor(theme): simplify CSS solution to solve empty search container (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10023">#10023</a> refactor(website): refactor showcase components (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/plugin-google-gtag</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.3.2 (2024-05-03)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10103">#10103</a> fix(core): do not recreate ReactDOM Root, fix React warning on hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.3.1 (2024-05-03)</h2>
<p>Failed release</p>
<h2>3.3.0 (2024-05-03)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-sitemap</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10083">#10083</a> feat: add createSitemapItems hook (<a href="https://github.com/johnnyreilly"><code>@​johnnyreilly</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10064">#10064</a> feat(core): add new site config option <code>siteConfig.markdown.anchors.maintainCase</code> (<a href="https://github.com/iAdramelk"><code>@​iAdramelk</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9767">#9767</a> feat(cli): docusaurus deploy should support a --target-dir option (<a href="https://github.com/SandPod"><code>@​SandPod</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10042">#10042</a> feat(core): simplify plugin API, support route.props (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-pages</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10032">#10032</a> feat(pages): add LastUpdateAuthor &amp; LastUpdateTime &amp; editUrl (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-cssnano-preset</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10092">#10092</a> chore: Upgrade svgr / svgo / cssnano (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10091">#10091</a> fix(theme): <code>&lt;Tabs&gt;</code> props should allow overriding defaults (<a href="https://github.com/gagdiez"><code>@​gagdiez</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10080">#10080</a> fix(theme): <code>&lt;Admonition&gt;</code> should render properly without heading/icon (<a href="https://github.com/andrmaz"><code>@​andrmaz</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10090">#10090</a> fix(core): <code>docusaurus serve</code> redirects should include the site <code>/baseUrl/</code> prefix (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-preset-classic</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10079">#10079</a> fix: handle React v18.3 warnings (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10070">#10070</a> fix(theme-translations): add missing theme translations for pt-BR (<a href="https://github.com/h3nr1ke"><code>@​h3nr1ke</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10051">#10051</a> fix(theme-translations): correct label for tip admonition in italian (<a href="https://github.com/tomsotte"><code>@​tomsotte</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10048">#10048</a> fix(algolia): add insights property on Algolia Theme Config object TS definition (<a href="https://github.com/Virgil993"><code>@​Virgil993</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10054">#10054</a> fix(core): sortRoutes shouldn't have a default baseUrl value, this led to a bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10025">#10025</a> fix(docs): sidebar item label impact the pagination label of docs (<a href="https://github.com/Abdullah-03"><code>@​Abdullah-03</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bc638d674b"><code>bc638d6</code></a> v3.3.2</li>
<li><a href="f3524cf332"><code>f3524cf</code></a> v3.3.1</li>
<li><a href="2ec4e078b5"><code>2ec4e07</code></a> v3.3.0</li>
<li><a href="f88da6c66d"><code>f88da6c</code></a> refactor: extract base TS client config + upgrade TS + refactor TS setup (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10">#10</a>...</li>
<li><a href="e012e03158"><code>e012e03</code></a> chore: release Docusaurus 3.2.1 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10016">#10016</a>)</li>
<li><a href="debfc87d34"><code>debfc87</code></a> chore: release Docusaurus v3.2.0 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/10000">#10000</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.3.2/packages/docusaurus-plugin-google-gtag">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/plugin-google-gtag&package-manager=npm_and_yarn&previous-version=3.2.0&new-version=3.3.2)](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>
2024-05-06 06:17:05 +00:00
dependabot[bot]
48c0ab5175
⬆️ Bump @docusaurus/module-type-aliases from 3.2.0 to 3.3.2 in /website (#5317)
Bumps [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) from 3.2.0 to 3.3.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/module-type-aliases</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.3.0 (2024-05-03)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-sitemap</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10083">#10083</a> feat: add createSitemapItems hook (<a href="https://github.com/johnnyreilly"><code>@​johnnyreilly</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10064">#10064</a> feat(core): add new site config option <code>siteConfig.markdown.anchors.maintainCase</code> (<a href="https://github.com/iAdramelk"><code>@​iAdramelk</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9767">#9767</a> feat(cli): docusaurus deploy should support a --target-dir option (<a href="https://github.com/SandPod"><code>@​SandPod</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10042">#10042</a> feat(core): simplify plugin API, support route.props (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-pages</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10032">#10032</a> feat(pages): add LastUpdateAuthor &amp; LastUpdateTime &amp; editUrl (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-cssnano-preset</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10092">#10092</a> chore: Upgrade svgr / svgo / cssnano (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10091">#10091</a> fix(theme): <code>&lt;Tabs&gt;</code> props should allow overriding defaults (<a href="https://github.com/gagdiez"><code>@​gagdiez</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10080">#10080</a> fix(theme): <code>&lt;Admonition&gt;</code> should render properly without heading/icon (<a href="https://github.com/andrmaz"><code>@​andrmaz</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10090">#10090</a> fix(core): <code>docusaurus serve</code> redirects should include the site <code>/baseUrl/</code> prefix (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-preset-classic</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10079">#10079</a> fix: handle React v18.3 warnings (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10070">#10070</a> fix(theme-translations): add missing theme translations for pt-BR (<a href="https://github.com/h3nr1ke"><code>@​h3nr1ke</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10051">#10051</a> fix(theme-translations): correct label for tip admonition in italian (<a href="https://github.com/tomsotte"><code>@​tomsotte</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10048">#10048</a> fix(algolia): add insights property on Algolia Theme Config object TS definition (<a href="https://github.com/Virgil993"><code>@​Virgil993</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10054">#10054</a> fix(core): sortRoutes shouldn't have a default baseUrl value, this led to a bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10025">#10025</a> fix(docs): sidebar item label impact the pagination label of docs (<a href="https://github.com/Abdullah-03"><code>@​Abdullah-03</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10022">#10022</a> fix(utils): getFileCommitDate should support <code>log.showSignature=true</code> (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<ul>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10060">#10060</a> refactor(core): optimize App entrypoint, it should not re-render when navigating (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10061">#10061</a> refactor(theme): simplify CSS solution to solve empty search container (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10023">#10023</a> refactor(website): refactor showcase components (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/module-type-aliases</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.3.2 (2024-05-03)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10103">#10103</a> fix(core): do not recreate ReactDOM Root, fix React warning on hot reload (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
<h2>3.3.1 (2024-05-03)</h2>
<p>Failed release</p>
<h2>3.3.0 (2024-05-03)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-sitemap</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10083">#10083</a> feat: add createSitemapItems hook (<a href="https://github.com/johnnyreilly"><code>@​johnnyreilly</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10064">#10064</a> feat(core): add new site config option <code>siteConfig.markdown.anchors.maintainCase</code> (<a href="https://github.com/iAdramelk"><code>@​iAdramelk</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9767">#9767</a> feat(cli): docusaurus deploy should support a --target-dir option (<a href="https://github.com/SandPod"><code>@​SandPod</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10042">#10042</a> feat(core): simplify plugin API, support route.props (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-pages</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10032">#10032</a> feat(pages): add LastUpdateAuthor &amp; LastUpdateTime &amp; editUrl (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-cssnano-preset</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10092">#10092</a> chore: Upgrade svgr / svgo / cssnano (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10091">#10091</a> fix(theme): <code>&lt;Tabs&gt;</code> props should allow overriding defaults (<a href="https://github.com/gagdiez"><code>@​gagdiez</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10080">#10080</a> fix(theme): <code>&lt;Admonition&gt;</code> should render properly without heading/icon (<a href="https://github.com/andrmaz"><code>@​andrmaz</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10090">#10090</a> fix(core): <code>docusaurus serve</code> redirects should include the site <code>/baseUrl/</code> prefix (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>, <code>docusaurus-preset-classic</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10079">#10079</a> fix: handle React v18.3 warnings (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10070">#10070</a> fix(theme-translations): add missing theme translations for pt-BR (<a href="https://github.com/h3nr1ke"><code>@​h3nr1ke</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10051">#10051</a> fix(theme-translations): correct label for tip admonition in italian (<a href="https://github.com/tomsotte"><code>@​tomsotte</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10048">#10048</a> fix(algolia): add insights property on Algolia Theme Config object TS definition (<a href="https://github.com/Virgil993"><code>@​Virgil993</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10054">#10054</a> fix(core): sortRoutes shouldn't have a default baseUrl value, this led to a bug (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-docs</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/10025">#10025</a> fix(docs): sidebar item label impact the pagination label of docs (<a href="https://github.com/Abdullah-03"><code>@​Abdullah-03</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bc638d674b"><code>bc638d6</code></a> v3.3.2</li>
<li><a href="f3524cf332"><code>f3524cf</code></a> v3.3.1</li>
<li><a href="3490433f94"><code>3490433</code></a> Merge branch 'main' into slorber/docusaurus-v3.3</li>
<li><a href="2d8281fc03"><code>2d8281f</code></a> fix(core): do not recreate ReactDOM Root, fix React warning on hot reload (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/1">#1</a>...</li>
<li><a href="2ec4e078b5"><code>2ec4e07</code></a> v3.3.0</li>
<li><a href="ca33858ca0"><code>ca33858</code></a> fix: handle React v18.3 warnings (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10079">#10079</a>)</li>
<li><a href="e012e03158"><code>e012e03</code></a> chore: release Docusaurus 3.2.1 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10016">#10016</a>)</li>
<li><a href="debfc87d34"><code>debfc87</code></a> chore: release Docusaurus v3.2.0 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/10000">#10000</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.3.2/packages/docusaurus-module-type-aliases">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/module-type-aliases&package-manager=npm_and_yarn&previous-version=3.2.0&new-version=3.3.2)](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>
2024-05-06 06:06:58 +00:00
dependabot[bot]
eb3ab3aebc
⬆️ Bump sass from 1.75.0 to 1.76.0 in /website (#5313)
Bumps [sass](https://github.com/sass/dart-sass) from 1.75.0 to 1.76.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.76.0</h2>
<p>To install Sass 1.76.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>Throw errors for misplaced statements in keyframe blocks.</p>
</li>
<li>
<p>Mixins and functions whose names begin with <code>--</code> are now deprecated for forwards-compatibility with the in-progress CSS functions and mixins spec. This deprecation is named <code>css-function-mixin</code>.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1760">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.76.0</h2>
<ul>
<li>
<p>Throw errors for misplaced statements in keyframe blocks.</p>
</li>
<li>
<p>Mixins and functions whose names begin with <code>--</code> are now deprecated for
forwards-compatibility with the in-progress CSS functions and mixins spec.
This deprecation is named <code>css-function-mixin</code>.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="264b2d58b0"><code>264b2d5</code></a> Deprecate function and mixin names beginning with <code>--</code> (<a href="https://redirect.github.com/sass/dart-sass/issues/2230">#2230</a>)</li>
<li><a href="f145e1c11b"><code>f145e1c</code></a> Throw errors for misplaced statements in keyframe blocks (<a href="https://redirect.github.com/sass/dart-sass/issues/2226">#2226</a>)</li>
<li><a href="eafc279ae7"><code>eafc279</code></a> Explicitly add a breaking change exemption for invalid CSS output (<a href="https://redirect.github.com/sass/dart-sass/issues/2225">#2225</a>)</li>
<li><a href="b97f26f71f"><code>b97f26f</code></a> Add a per-importer cache for loads that aren't cacheable en masse (<a href="https://redirect.github.com/sass/dart-sass/issues/2219">#2219</a>)</li>
<li><a href="2a9eaadefa"><code>2a9eaad</code></a> Implement access tracking for containingUrl (<a href="https://redirect.github.com/sass/dart-sass/issues/2220">#2220</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.75.0...1.76.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.75.0&new-version=1.76.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>
2024-05-01 05:12:33 +00:00
dependabot[bot]
df423d5e18
⬆️ Bump react-dom from 18.2.0 to 18.3.0 in /website (#5307)
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 18.2.0 to 18.3.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/facebook/react/commits/HEAD/packages/react-dom">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~react-bot">react-bot</a>, a new releaser for react-dom since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-dom&package-manager=npm_and_yarn&previous-version=18.2.0&new-version=18.3.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>
2024-04-26 05:17:28 +00:00
Abhishek Pandey
23de1d53dd
Skip more conv tests (#5302)
<!-- 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-04-23 05:38:51 +00:00
Abhishek Pandey
963dd4a11d
Disable conversations integ tests (#5299)
<!-- PR description-->
`CorsoCITeam` group mailbox backup is currently broken because of invalid `odata.NextLink` which causes an infinite loop during paging. Disabling conv backups while we go fix the impacted group mailbox.



---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-04-18 05:51:21 +00:00
dependabot[bot]
e96f74e634
⬆️ Bump sass from 1.74.1 to 1.75.0 in /website (#5297)
Bumps [sass](https://github.com/sass/dart-sass) from 1.74.1 to 1.75.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.75.0</h2>
<p>To install Sass 1.75.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>Fix a bug in which stylesheet canonicalization could be cached incorrectly when custom importers or the Node.js package importer made decisions based on the URL of the containing stylesheet.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>Allow <code>importer</code> to be passed without <code>url</code> in <code>StringOptionsWithImporter</code>.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1750">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.75.0</h2>
<ul>
<li>Fix a bug in which stylesheet canonicalization could be cached incorrectly
when custom importers or the Node.js package importer made decisions based on
the URL of the containing stylesheet.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>Allow <code>importer</code> to be passed without <code>url</code> in <code>StringOptionsWithImporter</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="821b98e26c"><code>821b98e</code></a> Don't cache canonicalize calls when <code>containingUrl</code> is available (<a href="https://redirect.github.com/sass/dart-sass/issues/2215">#2215</a>)</li>
<li><a href="c5aff1b2f2"><code>c5aff1b</code></a> Make it possible to build npm with a linked language repo (<a href="https://redirect.github.com/sass/dart-sass/issues/2214">#2214</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.74.1...1.75.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.74.1&new-version=1.75.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>
2024-04-12 05:09:36 +00:00
Keepers
b180dee597
adding retries to purge action powershell scripts (#5294)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 💻 CI/Deployment

#### Test Plan

- [x] 💚 E2E
2024-04-09 18:32:37 +00:00
dependabot[bot]
44d4821a8d
⬆️ Bump sass from 1.72.0 to 1.74.1 in /website (#5286)
Bumps [sass](https://github.com/sass/dart-sass) from 1.72.0 to 1.74.1.
<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.74.1</h2>
<p>To install Sass 1.74.1, 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>No user-visible changes.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1741">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.74.1</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
<h2>1.74.0</h2>
<h3>JS API</h3>
<ul>
<li>
<p>Add a new top-level <code>deprecations</code> object, which contains various
<code>Deprecation</code> objects that define the different types of deprecation used by
the Sass compiler and can be passed to the options below.</p>
</li>
<li>
<p>Add a new <code>fatalDeprecations</code> compiler option that causes the compiler to
error if any deprecation warnings of the provided types are encountered. You
can also pass in a <code>Version</code> object to treat all deprecations that were active
in that Dart Sass version as fatal.</p>
</li>
<li>
<p>Add a new <code>futureDeprecations</code> compiler option that allows you to opt-in to
certain deprecations early (currently just <code>import</code>).</p>
</li>
<li>
<p>Add a new <code>silenceDeprecations</code> compiler option to ignore any deprecation
warnings of the provided types.</p>
</li>
</ul>
<h3>Command-Line Interface</h3>
<ul>
<li>
<p>Add a new <code>--silence-deprecation</code> flag, which causes the compiler to ignore
any deprecation warnings of the provided types.</p>
</li>
<li>
<p>Previously, if a future deprecation was passed to <code>--fatal-deprecation</code> but
not <code>--future-deprecation</code>, it would be treated as fatal despite not being
enabled. Both flags are now required to treat a future deprecation as fatal
with a warning emitted if <code>--fatal-deprecation</code> is passed without
<code>--future-deprecation</code>, matching the JS API's behavior.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>
<p>The <code>compile</code> methods now take in a <code>silenceDeprecations</code> parameter, which
causes the compiler to ignore any deprecation warnings of the provided types.</p>
</li>
<li>
<p>Add <code>Deprecation.obsoleteIn</code> to match the JS API. This is currently null for
all deprecations, but will be used once some deprecations become obsolete in
Dart Sass 2.0.0.</p>
</li>
<li>
<p><strong>Potentially breaking bug fix:</strong> Fix a bug where <code>compileStringToResultAsync</code>
ignored <code>fatalDeprecations</code> and <code>futureDeprecations</code>.</p>
</li>
<li>
<p>The behavior around making future deprecations fatal mentioned in the CLI
section above has also been changed in the Dart API.</p>
</li>
</ul>
<h2>1.73.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1137797f17"><code>1137797</code></a> Fix bulma and release 1.74.1 (<a href="https://redirect.github.com/sass/dart-sass/issues/2210">#2210</a>)</li>
<li><a href="d9220d9c37"><code>d9220d9</code></a> Complete implementation the deprecations API (<a href="https://redirect.github.com/sass/dart-sass/issues/2207">#2207</a>)</li>
<li><a href="783c248d2f"><code>783c248</code></a> Fix typo in function documentation (<a href="https://redirect.github.com/sass/dart-sass/issues/2205">#2205</a>)</li>
<li><a href="c8d064368c"><code>c8d0643</code></a> Better handle filesystem importers when load paths aren't necessary (<a href="https://redirect.github.com/sass/dart-sass/issues/2203">#2203</a>)</li>
<li><a href="9302b3519c"><code>9302b35</code></a> Add support for nesting in plain CSS (<a href="https://redirect.github.com/sass/dart-sass/issues/2198">#2198</a>)</li>
<li><a href="772280a7ff"><code>772280a</code></a> Support linux-riscv64 and windows-arm64 (<a href="https://redirect.github.com/sass/dart-sass/issues/2201">#2201</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.72.0...1.74.1">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.72.0&new-version=1.74.1)](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>
2024-04-04 05:58:44 +00:00
dependabot[bot]
6bbb46b29a
⬆️ Bump @docusaurus/plugin-google-gtag from 3.1.1 to 3.2.0 in /website (#5284)
Bumps [@docusaurus/plugin-google-gtag](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag) from 3.1.1 to 3.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/plugin-google-gtag</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.2.0 (2024-03-29)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9954">#9954</a> feat(sitemap): add support for &quot;lastmod&quot; (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9912">#9912</a> feat(blog): add LastUpdateAuthor &amp; LastUpdateTime (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9931">#9931</a> feat(core): add new plugin allContentLoaded lifecycle (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9928">#9928</a> feat(theme-translations) Icelandic (is) (<a href="https://github.com/Hallinn"><code>@​Hallinn</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9886">#9886</a> feat(blog): allow processing blog posts through a processBlogPosts function (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9838">#9838</a> feat(blog): add blog pageBasePath plugin option (<a href="https://github.com/ilg-ul"><code>@​ilg-ul</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9681">#9681</a> feat(swizzle): ask user preferred language if no language CLI option provided (<a href="https://github.com/yixiaojiu"><code>@​yixiaojiu</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9442">#9442</a> feat(create-docusaurus): ask user for preferred language when no language CLI option provided (<a href="https://github.com/Rafael-Martins"><code>@​Rafael-Martins</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-vercel-analytics</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9687">#9687</a> feat(plugin-vercel-analytics): add new vercel analytics plugin (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9684">#9684</a> feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials (<a href="https://github.com/anatolykopyl"><code>@​anatolykopyl</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9999">#9999</a> fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9945">#9945</a> fix(a11y): move focus algolia-search focus back to search input on Escape (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9920">#9920</a> fix(blog): apply trailing slash to blog feed (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9944">#9944</a> fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9915">#9915</a> fix(theme-translations): complete and modify Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9910">#9910</a> fix(theme-translations): add Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9872">#9872</a> fix(theme-translations): complete and improve Spanish theme translations (<a href="https://github.com/4troDev"><code>@​4troDev</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9812">#9812</a> fix(i18n): add missing theme translations for fa locale (<a href="https://github.com/VahidNaderi"><code>@​VahidNaderi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9897">#9897</a> fix(mdx-loader): mdx-code-block should support CRLF (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9878">#9878</a> fix(core): fix default i18n calendar used, infer it from locale if possible (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9852">#9852</a> fix(core): ensure core error boundary is able to render theme layout (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-remark-plugin-npm2yarn</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9861">#9861</a> fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9851">#9851</a> fix(theme-classic): should use plurals for category items description (<a href="https://github.com/baradusov"><code>@​baradusov</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/plugin-google-gtag</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.2.0 (2024-03-29)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9954">#9954</a> feat(sitemap): add support for &quot;lastmod&quot; (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9912">#9912</a> feat(blog): add LastUpdateAuthor &amp; LastUpdateTime (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9931">#9931</a> feat(core): add new plugin allContentLoaded lifecycle (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9928">#9928</a> feat(theme-translations) Icelandic (is) (<a href="https://github.com/Hallinn"><code>@​Hallinn</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9886">#9886</a> feat(blog): allow processing blog posts through a processBlogPosts function (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9838">#9838</a> feat(blog): add blog pageBasePath plugin option (<a href="https://github.com/ilg-ul"><code>@​ilg-ul</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9681">#9681</a> feat(swizzle): ask user preferred language if no language CLI option provided (<a href="https://github.com/yixiaojiu"><code>@​yixiaojiu</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9442">#9442</a> feat(create-docusaurus): ask user for preferred language when no language CLI option provided (<a href="https://github.com/Rafael-Martins"><code>@​Rafael-Martins</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-vercel-analytics</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9687">#9687</a> feat(plugin-vercel-analytics): add new vercel analytics plugin (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9684">#9684</a> feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials (<a href="https://github.com/anatolykopyl"><code>@​anatolykopyl</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9999">#9999</a> fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9945">#9945</a> fix(a11y): move focus algolia-search focus back to search input on Escape (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9920">#9920</a> fix(blog): apply trailing slash to blog feed (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9944">#9944</a> fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9915">#9915</a> fix(theme-translations): complete and modify Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9910">#9910</a> fix(theme-translations): add Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9872">#9872</a> fix(theme-translations): complete and improve Spanish theme translations (<a href="https://github.com/4troDev"><code>@​4troDev</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9812">#9812</a> fix(i18n): add missing theme translations for fa locale (<a href="https://github.com/VahidNaderi"><code>@​VahidNaderi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9897">#9897</a> fix(mdx-loader): mdx-code-block should support CRLF (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9878">#9878</a> fix(core): fix default i18n calendar used, infer it from locale if possible (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9852">#9852</a> fix(core): ensure core error boundary is able to render theme layout (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-remark-plugin-npm2yarn</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9861">#9861</a> fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9851">#9851</a> fix(theme-classic): should use plurals for category items description (<a href="https://github.com/baradusov"><code>@​baradusov</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5af143651b"><code>5af1436</code></a> v3.2.0</li>
<li><a href="49ecd8f472"><code>49ecd8f</code></a> fix(gtag): send the newly rendered page's title instead of the old one's (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7424">#7424</a>)</li>
<li><a href="47a2cca17d"><code>47a2cca</code></a> chore: require Node 16.14 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7501">#7501</a>)</li>
<li><a href="bf1513a3e3"><code>bf1513a</code></a> refactor: fix a lot of errors in type-aware linting (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7477">#7477</a>)</li>
<li><a href="6b53d4263d"><code>6b53d42</code></a> misc: make copyUntypedFiles work for watch mode (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7445">#7445</a>)</li>
<li><a href="a555fd1dcb"><code>a555fd1</code></a> refactor: make each tsconfig explicitly declare module and include/exclude (#...</li>
<li><a href="7613ecb9ea"><code>7613ecb</code></a> refactor: use TS project references instead of running tsc multiple times (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7">#7</a>...</li>
<li><a href="26df8c83ce"><code>26df8c8</code></a> chore: prepare v2.0.0-beta.20 release (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7347">#7347</a>)</li>
<li><a href="6fa51890f0"><code>6fa5189</code></a> chore: prepare v2.0.0-beta.19 release (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/7325">#7325</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.2.0/packages/docusaurus-plugin-google-gtag">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/plugin-google-gtag&package-manager=npm_and_yarn&previous-version=3.1.1&new-version=3.2.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>
2024-04-01 05:42:47 +00:00
dependabot[bot]
f197d7cf7b
⬆️ Bump @docusaurus/module-type-aliases from 3.1.1 to 3.2.0 in /website (#5281)
Bumps [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) from 3.1.1 to 3.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/module-type-aliases</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.2.0 (2024-03-29)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9954">#9954</a> feat(sitemap): add support for &quot;lastmod&quot; (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9912">#9912</a> feat(blog): add LastUpdateAuthor &amp; LastUpdateTime (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9931">#9931</a> feat(core): add new plugin allContentLoaded lifecycle (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9928">#9928</a> feat(theme-translations) Icelandic (is) (<a href="https://github.com/Hallinn"><code>@​Hallinn</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9886">#9886</a> feat(blog): allow processing blog posts through a processBlogPosts function (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9838">#9838</a> feat(blog): add blog pageBasePath plugin option (<a href="https://github.com/ilg-ul"><code>@​ilg-ul</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9681">#9681</a> feat(swizzle): ask user preferred language if no language CLI option provided (<a href="https://github.com/yixiaojiu"><code>@​yixiaojiu</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9442">#9442</a> feat(create-docusaurus): ask user for preferred language when no language CLI option provided (<a href="https://github.com/Rafael-Martins"><code>@​Rafael-Martins</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-vercel-analytics</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9687">#9687</a> feat(plugin-vercel-analytics): add new vercel analytics plugin (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9684">#9684</a> feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials (<a href="https://github.com/anatolykopyl"><code>@​anatolykopyl</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9999">#9999</a> fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9945">#9945</a> fix(a11y): move focus algolia-search focus back to search input on Escape (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9920">#9920</a> fix(blog): apply trailing slash to blog feed (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9944">#9944</a> fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9915">#9915</a> fix(theme-translations): complete and modify Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9910">#9910</a> fix(theme-translations): add Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9872">#9872</a> fix(theme-translations): complete and improve Spanish theme translations (<a href="https://github.com/4troDev"><code>@​4troDev</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9812">#9812</a> fix(i18n): add missing theme translations for fa locale (<a href="https://github.com/VahidNaderi"><code>@​VahidNaderi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9897">#9897</a> fix(mdx-loader): mdx-code-block should support CRLF (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9878">#9878</a> fix(core): fix default i18n calendar used, infer it from locale if possible (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9852">#9852</a> fix(core): ensure core error boundary is able to render theme layout (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-remark-plugin-npm2yarn</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9861">#9861</a> fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9851">#9851</a> fix(theme-classic): should use plurals for category items description (<a href="https://github.com/baradusov"><code>@​baradusov</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/module-type-aliases</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.2.0 (2024-03-29)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-plugin-sitemap</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9954">#9954</a> feat(sitemap): add support for &quot;lastmod&quot; (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-theme-common</code>, <code>docusaurus-utils-validation</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9912">#9912</a> feat(blog): add LastUpdateAuthor &amp; LastUpdateTime (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-debug</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9931">#9931</a> feat(core): add new plugin allContentLoaded lifecycle (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9928">#9928</a> feat(theme-translations) Icelandic (is) (<a href="https://github.com/Hallinn"><code>@​Hallinn</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9886">#9886</a> feat(blog): allow processing blog posts through a processBlogPosts function (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9838">#9838</a> feat(blog): add blog pageBasePath plugin option (<a href="https://github.com/ilg-ul"><code>@​ilg-ul</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9681">#9681</a> feat(swizzle): ask user preferred language if no language CLI option provided (<a href="https://github.com/yixiaojiu"><code>@​yixiaojiu</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>, <code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9442">#9442</a> feat(create-docusaurus): ask user for preferred language when no language CLI option provided (<a href="https://github.com/Rafael-Martins"><code>@​Rafael-Martins</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-vercel-analytics</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9687">#9687</a> feat(plugin-vercel-analytics): add new vercel analytics plugin (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9684">#9684</a> feat(mdx-loader): the table-of-contents should display toc/headings of imported MDX partials (<a href="https://github.com/anatolykopyl"><code>@​anatolykopyl</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9999">#9999</a> fix(mdx-loader): Ignore contentTitle coming after Markdown thematicBreak (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9945">#9945</a> fix(a11y): move focus algolia-search focus back to search input on Escape (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9920">#9920</a> fix(blog): apply trailing slash to blog feed (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9944">#9944</a> fix(theme): improve a11y of DocSidebarItemCategory expand/collapsed button (<a href="https://github.com/mxschmitt"><code>@​mxschmitt</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9915">#9915</a> fix(theme-translations): complete and modify Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9910">#9910</a> fix(theme-translations): add Japanese translations (<a href="https://github.com/Suenaga-Ryuya"><code>@​Suenaga-Ryuya</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9872">#9872</a> fix(theme-translations): complete and improve Spanish theme translations (<a href="https://github.com/4troDev"><code>@​4troDev</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9812">#9812</a> fix(i18n): add missing theme translations for fa locale (<a href="https://github.com/VahidNaderi"><code>@​VahidNaderi</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9897">#9897</a> fix(mdx-loader): mdx-code-block should support CRLF (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9878">#9878</a> fix(core): fix default i18n calendar used, infer it from locale if possible (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9852">#9852</a> fix(core): ensure core error boundary is able to render theme layout (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-remark-plugin-npm2yarn</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9861">#9861</a> fix(remark-npm2yarn): update npm-to-yarn from 2.0.0 to 2.2.1, fix pnpm extra args syntax (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9851">#9851</a> fix(theme-classic): should use plurals for category items description (<a href="https://github.com/baradusov"><code>@​baradusov</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏃‍♀️ Performance</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5af143651b"><code>5af1436</code></a> v3.2.0</li>
<li><a href="4388267c26"><code>4388267</code></a> fix(core): various broken anchor link fixes (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/9732">#9732</a>)</li>
<li><a href="fd49301a45"><code>fd49301</code></a> feat(core): make broken link checker detect broken anchors - add `onBrokenAnc...</li>
<li><a href="8dd1e13f2a"><code>8dd1e13</code></a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components ...</li>
<li><a href="fa1ce230ea"><code>fa1ce23</code></a> refactor: capitalize comments (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7188">#7188</a>)</li>
<li><a href="171927342f"><code>1719273</code></a> feat(core): fail-safe global data fetching (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7083">#7083</a>)</li>
<li><a href="24c205a835"><code>24c205a</code></a> refactor: replace non-prop interface with type; allow plugin lifecycles to ha...</li>
<li><a href="3f33e90704"><code>3f33e90</code></a> chore: upgrade dependencies (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7065">#7065</a>)</li>
<li><a href="77662260f8"><code>7766226</code></a> refactor(core): refactor routes generation logic (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7054">#7054</a>)</li>
<li><a href="5fb09a2946"><code>5fb09a2</code></a> refactor(core): reorganize files (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/7042">#7042</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.2.0/packages/docusaurus-module-type-aliases">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/module-type-aliases&package-manager=npm_and_yarn&previous-version=3.1.1&new-version=3.2.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>
2024-04-01 05:38:16 +00:00
dependabot[bot]
6c9de9bef3
⬆️ Bump express from 4.18.2 to 4.19.2 in /website (#5276)
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/expressjs/express/releases">express's releases</a>.</em></p>
<blockquote>
<h2>4.19.2</h2>
<h2>What's Changed</h2>
<ul>
<li><a href="0b746953c4">Improved fix for open redirect allow list bypass</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/expressjs/express/compare/4.19.1...4.19.2">https://github.com/expressjs/express/compare/4.19.1...4.19.2</a></p>
<h2>4.19.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix ci after location patch by <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5552">expressjs/express#5552</a></li>
<li>fixed un-edited version in history.md for 4.19.0 by <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5556">expressjs/express#5556</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/expressjs/express/compare/4.19.0...4.19.1">https://github.com/expressjs/express/compare/4.19.0...4.19.1</a></p>
<h2>4.19.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix typo in release date by <a href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5527">expressjs/express#5527</a></li>
<li>docs: nominating <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> to be project captian by <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5511">expressjs/express#5511</a></li>
<li>docs: loosen TC activity rules by <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5510">expressjs/express#5510</a></li>
<li>Add note on how to update docs for new release by <a href="https://github.com/crandmck"><code>@​crandmck</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5541">expressjs/express#5541</a></li>
<li><a href="660ccf5fa3">Prevent open redirect allow list bypass due to encodeurl</a></li>
<li>Release 4.19.0 by <a href="https://github.com/wesleytodd"><code>@​wesleytodd</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5551">expressjs/express#5551</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/crandmck"><code>@​crandmck</code></a> made their first contribution in <a href="https://redirect.github.com/expressjs/express/pull/5541">expressjs/express#5541</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/expressjs/express/compare/4.18.3...4.19.0">https://github.com/expressjs/express/compare/4.18.3...4.19.0</a></p>
<h2>4.18.3</h2>
<h2>Main Changes</h2>
<ul>
<li>Fix routing requests without method</li>
<li>deps: body-parser@1.20.2
<ul>
<li>Fix strict json error message on Node.js 19+</li>
<li>deps: content-type@~1.0.5</li>
<li>deps: raw-body@2.5.2</li>
</ul>
</li>
</ul>
<h2>Other Changes</h2>
<ul>
<li>Use https: protocol instead of deprecated git: protocol by <a href="https://github.com/vcsjones"><code>@​vcsjones</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5032">expressjs/express#5032</a></li>
<li>build: Node.js@16.18 and Node.js@18.12 by <a href="https://github.com/abenhamdine"><code>@​abenhamdine</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5034">expressjs/express#5034</a></li>
<li>ci: update actions/checkout to v3 by <a href="https://github.com/armujahid"><code>@​armujahid</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5027">expressjs/express#5027</a></li>
<li>test: remove unused function arguments in params by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5124">expressjs/express#5124</a></li>
<li>Remove unused originalIndex from acceptParams by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5119">expressjs/express#5119</a></li>
<li>Fixed typos by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5117">expressjs/express#5117</a></li>
<li>examples: remove unused params by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5113">expressjs/express#5113</a></li>
<li>fix: parameter str is not described in JSDoc by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5130">expressjs/express#5130</a></li>
<li>fix: typos in History.md by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5131">expressjs/express#5131</a></li>
<li>build : add Node.js@19.7 by <a href="https://github.com/abenhamdine"><code>@​abenhamdine</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5028">expressjs/express#5028</a></li>
<li>test: remove unused function arguments in params by <a href="https://github.com/raksbisht"><code>@​raksbisht</code></a> in <a href="https://redirect.github.com/expressjs/express/pull/5137">expressjs/express#5137</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/expressjs/express/blob/master/History.md">express's changelog</a>.</em></p>
<blockquote>
<h1>4.19.2 / 2024-03-25</h1>
<ul>
<li>Improved fix for open redirect allow list bypass</li>
</ul>
<h1>4.19.1 / 2024-03-20</h1>
<ul>
<li>Allow passing non-strings to res.location with new encoding handling checks</li>
</ul>
<h1>4.19.0 / 2024-03-20</h1>
<ul>
<li>Prevent open redirect allow list bypass due to encodeurl</li>
<li>deps: cookie@0.6.0</li>
</ul>
<h1>4.18.3 / 2024-02-29</h1>
<ul>
<li>Fix routing requests without method</li>
<li>deps: body-parser@1.20.2
<ul>
<li>Fix strict json error message on Node.js 19+</li>
<li>deps: content-type@~1.0.5</li>
<li>deps: raw-body@2.5.2</li>
</ul>
</li>
<li>deps: cookie@0.6.0
<ul>
<li>Add <code>partitioned</code> option</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="04bc62787b"><code>04bc627</code></a> 4.19.2</li>
<li><a href="da4d763ff6"><code>da4d763</code></a> Improved fix for open redirect allow list bypass</li>
<li><a href="4f0f6cc67d"><code>4f0f6cc</code></a> 4.19.1</li>
<li><a href="a003cfab03"><code>a003cfa</code></a> Allow passing non-strings to res.location with new encoding handling checks f...</li>
<li><a href="a1fa90fcea"><code>a1fa90f</code></a> fixed un-edited version in history.md for 4.19.0</li>
<li><a href="11f2b1db22"><code>11f2b1d</code></a> build: fix build due to inconsistent supertest behavior in older versions</li>
<li><a href="084e36506a"><code>084e365</code></a> 4.19.0</li>
<li><a href="0867302ddb"><code>0867302</code></a> Prevent open redirect allow list bypass due to encodeurl</li>
<li><a href="567c9c665d"><code>567c9c6</code></a> Add note on how to update docs for new release (<a href="https://redirect.github.com/expressjs/express/issues/5541">#5541</a>)</li>
<li><a href="69a4cf2819"><code>69a4cf2</code></a> deps: cookie@0.6.0</li>
<li>Additional commits viewable in <a href="https://github.com/expressjs/express/compare/4.18.2...4.19.2">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~wesleytodd">wesleytodd</a>, a new releaser for express since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=express&package-manager=npm_and_yarn&previous-version=4.18.2&new-version=4.19.2)](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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2024-03-25 21:07:53 +00:00
ashmrtn
686867bd96
Pull in kopia with fixed manifest error wrap (#5273)
Updated version only contains the change to not clobber manifest compaction error messages.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-03-25 20:57:33 +00:00
ashmrtn
cd41d2fbce
Reduce test to just a single site to avoid failure (#5274)
#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-03-25 20:16:43 +00:00
dependabot[bot]
2b79c1b797
⬆️ Bump sass from 1.71.0 to 1.72.0 in /website (#5262)
Bumps [sass](https://github.com/sass/dart-sass) from 1.71.0 to 1.72.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.72.0</h2>
<p>To install Sass 1.72.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>Support adjacent <code>/</code>s without whitespace in between when parsing plain CSS expressions.</p>
</li>
<li>
<p>Allow the Node.js <code>pkg:</code> importer to load Sass stylesheets for <code>package.json</code> <code>exports</code> field entries without extensions.</p>
</li>
<li>
<p>When printing suggestions for variables, use underscores in variable names when the original usage used underscores.</p>
</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>Properly resolve <code>pkg:</code> imports with the Node.js package importer when arguments are passed to the JavaScript process.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1720">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.71.1</h2>
<p>To install Sass 1.71.1, 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>
<h3>Command-Line Interface</h3>
<ul>
<li>Ship the musl Linux release with the proper Dart executable.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Export the <code>NodePackageImporter</code> class in ESM mode.</p>
</li>
<li>
<p>Allow <code>NodePackageImporter</code> to locate a default directory even when the entrypoint is an ESM module.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Make passing a null argument to <code>NodePackageImporter()</code> a static error rather than just a runtime error.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the musl Linux embedded compiler when running on musl Linux.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1711">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.72.0</h2>
<ul>
<li>
<p>Support adjacent <code>/</code>s without whitespace in between when parsing plain CSS
expressions.</p>
</li>
<li>
<p>Allow the Node.js <code>pkg:</code> importer to load Sass stylesheets for <code>package.json</code>
<code>exports</code> field entries without extensions.</p>
</li>
<li>
<p>When printing suggestions for variables, use underscores in variable names
when the original usage used underscores.</p>
</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>Properly resolve <code>pkg:</code> imports with the Node.js package importer when
arguments are passed to the JavaScript process.</li>
</ul>
<h2>1.71.1</h2>
<h3>Command-Line Interface</h3>
<ul>
<li>Ship the musl Linux release with the proper Dart executable.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Export the <code>NodePackageImporter</code> class in ESM mode.</p>
</li>
<li>
<p>Allow <code>NodePackageImporter</code> to locate a default directory even when the
entrypoint is an ESM module.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Make passing a null argument to <code>NodePackageImporter()</code> a static error rather
than just a runtime error.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the musl Linux embedded compiler
when running on musl Linux.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ce16b35ca1"><code>ce16b35</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2194">#2194</a>)</li>
<li><a href="9af6bbf8a0"><code>9af6bbf</code></a> Properly handle <code>pkg:</code> imports with args (<a href="https://redirect.github.com/sass/dart-sass/issues/2193">#2193</a>)</li>
<li><a href="033049102b"><code>0330491</code></a> Update to node 20 (<a href="https://redirect.github.com/sass/dart-sass/issues/2192">#2192</a>)</li>
<li><a href="48e2d0cb02"><code>48e2d0c</code></a> Preserve underscores in <code>VariableExpression.toString()</code> (<a href="https://redirect.github.com/sass/dart-sass/issues/2185">#2185</a>)</li>
<li><a href="6e2d637ac3"><code>6e2d637</code></a> Allow adjacent forward slashes in plain CSS expressions (<a href="https://redirect.github.com/sass/dart-sass/issues/2190">#2190</a>)</li>
<li><a href="fa4d909f92"><code>fa4d909</code></a> Bump softprops/action-gh-release from 1 to 2 (<a href="https://redirect.github.com/sass/dart-sass/issues/2191">#2191</a>)</li>
<li><a href="fd67fe678c"><code>fd67fe6</code></a> [Hotfix Node Package Importer]- Handle subpath without extensions (<a href="https://redirect.github.com/sass/dart-sass/issues/2184">#2184</a>)</li>
<li><a href="1b4d703ad3"><code>1b4d703</code></a> Release 1.71.1 (<a href="https://redirect.github.com/sass/dart-sass/issues/2182">#2182</a>)</li>
<li><a href="6d66c4376a"><code>6d66c43</code></a> Properly handle <code>new NodePackageImporter()</code> with an ESM entrypoint (<a href="https://redirect.github.com/sass/dart-sass/issues/2181">#2181</a>)</li>
<li><a href="85a932f648"><code>85a932f</code></a> Add missing ESM export of NodePackageImporter (<a href="https://redirect.github.com/sass/dart-sass/issues/2177">#2177</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/sass/dart-sass/compare/1.71.0...1.72.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.71.0&new-version=1.72.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>
2024-03-14 05:44:43 +00:00
dependabot[bot]
2ab6d34538
⬆️ Bump mermaid from 10.8.0 to 10.9.0 in /website (#5256)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.8.0 to 10.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>v10.9.0</h2>
<h1>Release Notes</h1>
<p>We now have Katex support!</p>
<p><img src="https://user-images.githubusercontent.com/16135852/161395052-4dee19da-faa6-4934-94f3-dd0cbcecfccd.png" alt="image" />
<a href="https://mermaid.live/edit#pako:eNptUl1r6zAM_SvClJHQ5mFh7I7CBuu2tz3tPl7dDsdxUkOTdI46Mlz998lJCh3ML5KOdc7xh4IyXWnVWtVeH3bw-oYtyHr8h2qxqBJEb_d6CAOncA-IrqX3kMVY0Rdv50Q2dppCxdI_uBRxZbchF_TgwEHEYGBBy5guFqj-Q5Y9nKIF4sbVtfCKKUg1FYmEymsTskJ0GsT-w1Motnl2ow1zyDWnY2M6kqZ8Luo0mpxgk0SL6-WsJIfK8ngoZgg_0Jtf0dtf0btL1JQd9SwrGqbz211crvu0vhCmDXpZLA1vAyLZgULbkZ1YJ3hKpubDTvc2ZH_u5F2N8-ZSdBNF4XnsHMavKGzt2mCE0jNouJqFXQUMhewjgvmJloLatpw5F-JPo_jLJJ5Qem_er88GRaPJu4Hl003XB2K5dS848WiRn-FZ-9weB4AmD7VSjfWNdqWMWYiOqGhnG4tqLWlpK33cEypsWVr1kbq_X61Ra_JHu1LHQ6nJPjstA9qodaX3veVvObPoTQ">Demo</a></p>
<h2>🚀 Features</h2>
<ul>
<li>Bump <code>@​zenuml/core</code> and update render options in mermaid-zenuml (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5257">#5257</a>) <a href="https://github.com/dontry"><code>@​dontry</code></a></li>
<li>Implement &quot;until&quot; keyword in gantt charts (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5224">#5224</a>) <a href="https://github.com/fzag"><code>@​fzag</code></a></li>
<li>Integrated Katex typesetting into flowcharts (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/2885">#2885</a>) <a href="https://github.com/NicolasNewman"><code>@​NicolasNewman</code></a></li>
</ul>
<h2>🧰 Maintenance</h2>
<ul>
<li>Add gitgraph parallel commits to docs (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5336">#5336</a>) <a href="https://github.com/NicolasCwy"><code>@​NicolasCwy</code></a></li>
<li>Update recommended Vitest extension (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5322">#5322</a>) <a href="https://github.com/NicolasCwy"><code>@​NicolasCwy</code></a></li>
<li>Correcting path to docker-entrypoint.sh (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5327">#5327</a>) <a href="https://github.com/bstordrup"><code>@​bstordrup</code></a></li>
<li>Fix chrome webstore url causing 404 (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5352">#5352</a>) <a href="https://github.com/Abrifq"><code>@​Abrifq</code></a></li>
<li>Fix color and arrow for merge commit (gitGraph) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5152">#5152</a>) <a href="https://github.com/macherel"><code>@​macherel</code></a></li>
<li>Fix link to Contributors section in README (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5298">#5298</a>) <a href="https://github.com/BaumiCoder"><code>@​BaumiCoder</code></a></li>
<li>Fix macOS onboarding issues (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5262">#5262</a>) <a href="https://github.com/thedustin"><code>@​thedustin</code></a></li>
<li>Fix netlify deploy (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5332">#5332</a>) <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a></li>
<li>Link to webhelp (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5316">#5316</a>) <a href="https://github.com/BaumiCoder"><code>@​BaumiCoder</code></a></li>
<li>Update contribute (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5268">#5268</a>) <a href="https://github.com/FutzMonitor"><code>@​FutzMonitor</code></a></li>
<li>Updates Timeline Documentation (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5315">#5315</a>) <a href="https://github.com/FutzMonitor"><code>@​FutzMonitor</code></a></li>
<li>[Docs] Updated chrome extension url's to new store (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5297">#5297</a>) <a href="https://github.com/Abrifq"><code>@​Abrifq</code></a></li>
<li>chore: Update CSpell configuration (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5286">#5286</a>) <a href="https://github.com/Jason3S"><code>@​Jason3S</code></a></li>
<li>feat: add name field to the actors (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5284">#5284</a>) <a href="https://github.com/ad1992"><code>@​ad1992</code></a></li>
<li>fix typo cutomers =&gt; customers (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5269">#5269</a>) <a href="https://github.com/elgalu"><code>@​elgalu</code></a></li>
</ul>
<h2>📚 Documentation</h2>
<ul>
<li>Add new extension to integrations (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5287">#5287</a>) <a href="https://github.com/BoDonkey"><code>@​BoDonkey</code></a></li>
<li>Added link to Blazorade Mermaid to the community integrations page. (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5333">#5333</a>) <a href="https://github.com/MikaBerglund"><code>@​MikaBerglund</code></a></li>
<li>Replace version number placeholder (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5304">#5304</a>) <a href="https://github.com/BaumiCoder"><code>@​BaumiCoder</code></a></li>
</ul>
<p>🎉 <strong>Thanks to all contributors helping with this release!</strong> 🎉</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="da33867ad7"><code>da33867</code></a> Draft release</li>
<li><a href="539010c65c"><code>539010c</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5337">#5337</a> from mermaid-js/release/10.9.0</li>
<li><a href="cbe44a6cff"><code>cbe44a6</code></a> v10.9.0</li>
<li><a href="b077fedd4c"><code>b077fed</code></a> Merge branch 'develop' into release/10.9.0</li>
<li><a href="5aa884f594"><code>5aa884f</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5354">#5354</a> from mermaid-js/renovate/patch-all-patch</li>
<li><a href="5b3f320e5d"><code>5b3f320</code></a> Merge branch 'develop' into renovate/patch-all-patch</li>
<li><a href="803e068630"><code>803e068</code></a> Merge branch 'master' into develop</li>
<li><a href="3147bb34ee"><code>3147bb3</code></a> Update docs</li>
<li><a href="8daa28dd8b"><code>8daa28d</code></a> Lychee ignore chrome webstore</li>
<li><a href="231534a0db"><code>231534a</code></a> Update link</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.8.0...v10.9.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.8.0&new-version=10.9.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>
2024-03-06 05:45:41 +00:00
Abin Simon
e0884c734c
Fix ics high memory usage by disabling auto wrap text in html2text (#5244)
Related: jaytaylor/html2text#48<!-- PR description-->

---

#### 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
2024-02-23 06:20:59 +00:00
ashmrtn
f3fdb4a885
harden sanitree population (#5237)
Allow sanity tree checking to require multiple folder subtrees have no
errors. This allows us to ensure both the source folder subtree and
restore folder subtree are populated without issue.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-21 23:53:12 +00:00
ashmrtn
f4dbaf60b0
Normalize case when checking for user email (#5240)
Reduce chance of test failures by normalizing the case prior to comparison. This should hopefully reduce spurious test failures.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-20 22:45:21 +00:00
Niraj Tolia
b9b5650506
Tweak website (#5238)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2024-02-19 04:56:16 +00:00
Abhishek Pandey
f28e79c098
Log token lifetimes on 401 errors (#5239)
<!-- PR description-->

* When we encounter 401s, process the JWT token present in the [`Authorization` header](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow#use-a-token) of request. 
* Dump the issued at time and expires at time for the token. 
---

#### 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
2024-02-18 00:20:55 +00:00
Abin Simon
42af271526
Close body of file after writing to zip file in export (#5234)
<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-17 17:35:18 +00:00
dependabot[bot]
d87435fdc2
⬆️ Bump sass from 1.70.0 to 1.71.0 in /website (#5235)
Bumps [sass](https://github.com/sass/dart-sass) from 1.70.0 to 1.71.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.71.0</h2>
<p>To install Sass 1.71.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>
<p>For more information about <code>pkg:</code> importers, see <a href="https://sass-lang.com/blog/announcing-pkg-importers">the announcement</a> on the Sass blog.</p>
<h3>Command-Line Interface</h3>
<ul>
<li>Add a <code>--pkg-importer</code> flag to enable built-in <code>pkg:</code> importers. Currently this only supports the Node.js package resolution algorithm, via <code>--pkg-importer=node</code>. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load <code>node_modules/bootstrap/scss/bootstrap.scss</code>.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>Add a <code>NodePackageImporter</code> importer that can be passed to the <code>importers</code> option. This loads files using the <code>pkg:</code> URL scheme according to the Node.js package resolution algorithm. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load <code>node_modules/bootstrap/scss/bootstrap.scss</code>. The constructor takes a single optional argument, which indicates the base directory to use when locating <code>node_modules</code> directories. It defaults to <code>path.dirname(require.main.filename)</code>.</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Add a <code>NodePackageImporter</code> importer that can be passed to the <code>importers</code> option. This loads files using the <code>pkg:</code> URL scheme according to the Node.js package resolution algorithm. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load <code>node_modules/bootstrap/scss/bootstrap.scss</code>. The constructor takes a single argument, which indicates the base directory to use when locating <code>node_modules</code> directories.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1710">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.71.0</h2>
<p>For more information about <code>pkg:</code> importers, see <a href="https://sass-lang.com/blog/announcing-pkg-importers">the
announcement</a> on the Sass blog.</p>
<h3>Command-Line Interface</h3>
<ul>
<li>Add a <code>--pkg-importer</code> flag to enable built-in <code>pkg:</code> importers. Currently
this only supports the Node.js package resolution algorithm, via
<code>--pkg-importer=node</code>. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load
<code>node_modules/bootstrap/scss/bootstrap.scss</code>.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>Add a <code>NodePackageImporter</code> importer that can be passed to the <code>importers</code>
option. This loads files using the <code>pkg:</code> URL scheme according to the Node.js
package resolution algorithm. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load
<code>node_modules/bootstrap/scss/bootstrap.scss</code>. The constructor takes a single
optional argument, which indicates the base directory to use when locating
<code>node_modules</code> directories. It defaults to
<code>path.dirname(require.main.filename)</code>.</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Add a <code>NodePackageImporter</code> importer that can be passed to the <code>importers</code>
option. This loads files using the <code>pkg:</code> URL scheme according to the Node.js
package resolution algorithm. For example, <code>@use &quot;pkg:bootstrap&quot;</code> will load
<code>node_modules/bootstrap/scss/bootstrap.scss</code>. The constructor takes a single
argument, which indicates the base directory to use when locating
<code>node_modules</code> directories.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3e6721e79f"><code>3e6721e</code></a> Fix new static warnings with Dart 3.3 (<a href="https://redirect.github.com/sass/dart-sass/issues/2173">#2173</a>)</li>
<li><a href="2cab33e2b3"><code>2cab33e</code></a> Update the language revision in Homebrew on release (<a href="https://redirect.github.com/sass/dart-sass/issues/2171">#2171</a>)</li>
<li><a href="84ededd368"><code>84ededd</code></a> Use musl support in cli_pkg (<a href="https://redirect.github.com/sass/dart-sass/issues/2172">#2172</a>)</li>
<li><a href="00571ec531"><code>00571ec</code></a> Add a <code>--pkg-importer</code> flag (<a href="https://redirect.github.com/sass/dart-sass/issues/2169">#2169</a>)</li>
<li><a href="84f31f0def"><code>84f31f0</code></a> Update pubspec/changelog for <code>pkg:</code> importers (<a href="https://redirect.github.com/sass/dart-sass/issues/2168">#2168</a>)</li>
<li><a href="9ee5408211"><code>9ee5408</code></a> [Package Importer] Dart Implementation (<a href="https://redirect.github.com/sass/dart-sass/issues/2130">#2130</a>)</li>
<li><a href="9423aa53ae"><code>9423aa5</code></a> Use macos-14 runner instead of macos-latest-xlarge runner (<a href="https://redirect.github.com/sass/dart-sass/issues/2167">#2167</a>)</li>
<li><a href="bbf97b4fb4"><code>bbf97b4</code></a> Remove the sass dependency from package.json (<a href="https://redirect.github.com/sass/dart-sass/issues/2162">#2162</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.70.0...1.71.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.70.0&new-version=1.71.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>
2024-02-16 05:34:00 +00:00
Keepers
8bdf86bbad
apply missing opts to api client (#5233)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-02-15 17:25:49 +00:00
Abin Simon
bf52fdbe6a
Log every 1000 items when exporting (#5227)
<!-- 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-15 06:45:16 +00:00
ashmrtn
90d6db486b
Log if the context expired during retry (#5229)
#### 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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-15 01:24:42 +00:00
Keepers
f10730cf98
add new control opt for skipping event 503s (#5223)
adds a new control option for skipping certain event item 503 failures.
Also adds a skip cause for that case. And exports the skipCause value
for future preparation.
2024-02-14 16:55:52 -07:00
Keepers
bb2bd6df3f
add authentication to requester (#5198)
the graph requester for large item downloads now includes the option to authenticate requests.  The option is configured at the time of creating the requester, therefore all requests using that servier are either authenticatd or not. In our case, we're opting to authenticate all requests, since we do not use this requester for non-graph api calls, and even if we did the addition of auth headers is likely benign.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x] 💚 E2E
2024-02-14 17:50:36 +00:00
ashmrtn
5e8407a970
Don't alert on old compressor (#5222)
When verifying the repo config, don't create an alert if the repo has the old s2-default compressor that we temporarily used.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-13 21:18:29 +00:00
Hitesh Pattanayak
4b56754546
sanitizes replyTo emailAddresses (#5221)
sanitizes replyTo emailAddresses based on:
- valid email address format
- valid DN format

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

#### Issue(s)
INC-43

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-02-13 18:52:11 +00:00
ashmrtn
28aba60cc5
Check for and retry 404s with no content (#5217)
We've started seeing 404 errors with no content being returned. Check for these in the http wrapper we use and retry them.

While graph SDK returns an error for this sort of situation it's a very basic error since it normally expects to parse info out of the response body. Therefore it should be safe to inject our own error that we can check for.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-13 02:26:04 +00:00
ashmrtn
03048a6ca8
Fix contains check for exchange nightly tests (#5214)
Data being checked drifted due to recent changes in the test helper
and possible CLI output changes

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-12 20:32:25 +00:00
dependabot[bot]
97535e2afc
⬆️ Bump golangci/golangci-lint-action from 3 to 4 (#5213)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Documentation</h3>
<ul>
<li>docs: update examples by <a href="https://github.com/KunalSin9h"><code>@​KunalSin9h</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/826">golangci/golangci-lint-action#826</a></li>
<li>docs: update section about GitHub Annotations by <a href="https://github.com/JustinDFuller"><code>@​JustinDFuller</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/931">golangci/golangci-lint-action#931</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.3.0 to 6.4.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/829">golangci/golangci-lint-action#829</a></li>
<li>build(deps-dev): bump eslint-plugin-import from 2.28.0 to 2.28.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/830">golangci/golangci-lint-action#830</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.5.0 to 20.5.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/827">golangci/golangci-lint-action#827</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.3.0 to 6.4.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/831">golangci/golangci-lint-action#831</a></li>
<li>build(deps-dev): bump prettier from 3.0.1 to 3.0.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/828">golangci/golangci-lint-action#828</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.5.1 to 20.5.7 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/833">golangci/golangci-lint-action#833</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.4.0 to 6.4.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/834">golangci/golangci-lint-action#834</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.4.0 to 6.4.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/835">golangci/golangci-lint-action#835</a></li>
<li>build(deps-dev): bump eslint from 8.47.0 to 8.48.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/837">golangci/golangci-lint-action#837</a></li>
<li>build(deps-dev): bump typescript from 5.1.6 to 5.2.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/836">golangci/golangci-lint-action#836</a></li>
<li>build(deps): bump <code>@​types/semver</code> from 7.5.0 to 7.5.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/838">golangci/golangci-lint-action#838</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.4.1 to 6.5.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/839">golangci/golangci-lint-action#839</a></li>
<li>build(deps-dev): bump prettier from 3.0.2 to 3.0.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/842">golangci/golangci-lint-action#842</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.4.1 to 6.5.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/840">golangci/golangci-lint-action#840</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.5.7 to 20.5.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/841">golangci/golangci-lint-action#841</a></li>
<li>chore: bump to use node20 runtime, actions/checkout to v4 by <a href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/843">golangci/golangci-lint-action#843</a></li>
<li>build(deps): bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/845">golangci/golangci-lint-action#845</a></li>
<li>build(deps-dev): bump eslint from 8.48.0 to 8.49.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/846">golangci/golangci-lint-action#846</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.5.9 to 20.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/847">golangci/golangci-lint-action#847</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.5.0 to 6.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/848">golangci/golangci-lint-action#848</a></li>
<li>build(deps-dev): bump <code>@​vercel/ncc</code> from 0.36.1 to 0.38.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/850">golangci/golangci-lint-action#850</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.5.0 to 6.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/849">golangci/golangci-lint-action#849</a></li>
<li>build(deps): bump <code>@​types/semver</code> from 7.5.1 to 7.5.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/853">golangci/golangci-lint-action#853</a></li>
<li>build(deps): bump <code>@​types/tmp</code> from 0.2.3 to 0.2.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/854">golangci/golangci-lint-action#854</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.6.0 to 6.7.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/855">golangci/golangci-lint-action#855</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.6.0 to 20.6.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/857">golangci/golangci-lint-action#857</a></li>
<li>build(deps): bump <code>@​actions/core</code> from 1.10.0 to 1.10.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/856">golangci/golangci-lint-action#856</a></li>
<li>build(deps-dev): bump eslint from 8.49.0 to 8.50.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/859">golangci/golangci-lint-action#859</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.6.2 to 20.6.5 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/860">golangci/golangci-lint-action#860</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.6.0 to 6.7.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/861">golangci/golangci-lint-action#861</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.7.0 to 6.7.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/862">golangci/golangci-lint-action#862</a></li>
<li>build(deps): bump <code>@​types/semver</code> from 7.5.2 to 7.5.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/864">golangci/golangci-lint-action#864</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.7.2 to 6.7.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/865">golangci/golangci-lint-action#865</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.6.5 to 20.8.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/867">golangci/golangci-lint-action#867</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.7.2 to 6.7.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/866">golangci/golangci-lint-action#866</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.7.3 to 6.7.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/868">golangci/golangci-lint-action#868</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.8.0 to 20.8.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/869">golangci/golangci-lint-action#869</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.7.3 to 6.7.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/870">golangci/golangci-lint-action#870</a></li>
<li>build(deps-dev): bump eslint from 8.50.0 to 8.51.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/871">golangci/golangci-lint-action#871</a></li>
<li>build(deps): bump <code>@​actions/http-client</code> from 2.1.1 to 2.2.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/872">golangci/golangci-lint-action#872</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.7.4 to 6.7.5 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/874">golangci/golangci-lint-action#874</a></li>
<li>build(deps): bump <code>@​types/node</code> from 20.8.3 to 20.8.6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golangci/golangci-lint-action/pull/875">golangci/golangci-lint-action#875</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3cfe3a4abb"><code>3cfe3a4</code></a> build(deps): bump <code>@​actions/cache</code> from 3.2.3 to 3.2.4 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/963">#963</a>)</li>
<li><a href="cbc59cf0d1"><code>cbc59cf</code></a> build(deps-dev): bump prettier from 3.2.4 to 3.2.5 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/960">#960</a>)</li>
<li><a href="459a04b021"><code>459a04b</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.19.1 to 6.20.0 ...</li>
<li><a href="e2315b67db"><code>e2315b6</code></a> build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.19.1 to 6.20.0 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/961">#961</a>)</li>
<li><a href="d6173a45d0"><code>d6173a4</code></a> build(deps): bump <code>@​types/node</code> from 20.11.10 to 20.11.16 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/962">#962</a>)</li>
<li><a href="0e8f5bf773"><code>0e8f5bf</code></a> build(deps): bump <code>@​types/node</code> from 20.11.5 to 20.11.10 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/958">#958</a>)</li>
<li><a href="349d20632d"><code>349d206</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.19.0 to 6.19.1 ...</li>
<li><a href="2221aee284"><code>2221aee</code></a> build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 6.18.1 to 6.19.1 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/954">#954</a>)</li>
<li><a href="3b44ae5b24"><code>3b44ae5</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 6.18.1 to 6.19.0 ...</li>
<li><a href="323b871bbc"><code>323b871</code></a> build(deps-dev): bump prettier from 3.2.2 to 3.2.4 (<a href="https://redirect.github.com/golangci/golangci-lint-action/issues/950">#950</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/golangci/golangci-lint-action/compare/v3...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golangci/golangci-lint-action&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>
2024-02-12 19:53:24 +00:00
dependabot[bot]
cd7450395e
⬆️ Bump github.com/minio/minio-go/v7 from 7.0.66 to 7.0.67 in /src (#5210)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.66 to 7.0.67.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/minio/minio-go/releases">github.com/minio/minio-go/v7's releases</a>.</em></p>
<blockquote>
<h2>Bugfix release</h2>
<h2>What's Changed</h2>
<ul>
<li>detect offline for more valid errors by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1919">minio/minio-go#1919</a></li>
<li>NEW API: GetObjectAttributes by <a href="https://github.com/zveinn"><code>@​zveinn</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1921">minio/minio-go#1921</a></li>
<li>fix: support more type to StringSet umnarshaJSON by <a href="https://github.com/jiuker"><code>@​jiuker</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1925">minio/minio-go#1925</a></li>
<li>Update api-remove.go by <a href="https://github.com/fwessels"><code>@​fwessels</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1926">minio/minio-go#1926</a></li>
<li>Enable --expired-object-all-versions by <a href="https://github.com/shtripat"><code>@​shtripat</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1927">minio/minio-go#1927</a></li>
<li>fix: latest linter issues by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1929">minio/minio-go#1929</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/zveinn"><code>@​zveinn</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1921">minio/minio-go#1921</a></li>
<li><a href="https://github.com/jiuker"><code>@​jiuker</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1925">minio/minio-go#1925</a></li>
<li><a href="https://github.com/shtripat"><code>@​shtripat</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1927">minio/minio-go#1927</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/minio/minio-go/compare/v7.0.66...v7.0.67">https://github.com/minio/minio-go/compare/v7.0.66...v7.0.67</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="99c6311121"><code>99c6311</code></a> fix: latest linter issues (<a href="https://redirect.github.com/minio/minio-go/issues/1929">#1929</a>)</li>
<li><a href="72b90536ab"><code>72b9053</code></a> Enable --expired-object-all-versions (<a href="https://redirect.github.com/minio/minio-go/issues/1927">#1927</a>)</li>
<li><a href="c6d47d8f4b"><code>c6d47d8</code></a> Update api-remove.go (<a href="https://redirect.github.com/minio/minio-go/issues/1926">#1926</a>)</li>
<li><a href="6ad2b4a178"><code>6ad2b4a</code></a> fix: support all types in StringSet JSON unmarshal (<a href="https://redirect.github.com/minio/minio-go/issues/1925">#1925</a>)</li>
<li><a href="76a41461fe"><code>76a4146</code></a> NEW API: GetObjectAttributes (<a href="https://redirect.github.com/minio/minio-go/issues/1921">#1921</a>)</li>
<li><a href="56d9949682"><code>56d9949</code></a> detect offline for more valid errors (<a href="https://redirect.github.com/minio/minio-go/issues/1919">#1919</a>)</li>
<li><a href="f86f90f5f4"><code>f86f90f</code></a> update x/crypto and add CREDITS</li>
<li><a href="594eb81116"><code>594eb81</code></a> Update version to next release</li>
<li>See full diff in <a href="https://github.com/minio/minio-go/compare/v7.0.66...v7.0.67">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/minio/minio-go/v7&package-manager=go_modules&previous-version=7.0.66&new-version=7.0.67)](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>
2024-02-12 18:16:07 +00:00
Abhishek Pandey
411ef24024
Handle item attachments with missing name (#5209)
<!-- PR description-->

Extending the earlier fix in https://github.com/alcionai/corso/pull/5199 to `itemAttachments`. Posts are not impacted here since they don't have attachment types like messages do.

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-11 22:13:20 +00:00
Vaibhav Kamra
b3b52c0dfc
Do not backup shared calendars (#5207)
Skip backup of shared calendars. These will be backed up with the resource that owns the calendar.

---

#### 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
- [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
2024-02-11 18:58:09 +00:00
Abin Simon
8502e1fee6
Use recurrence timezone for ics exports (#5206)
<!-- PR description-->

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-10 08:50:38 +00:00
Abin Simon
f0b8041c3f
Fix possible panic in contacts fetch (#5205)
We were not checking for the error returned by the Get method before trying to use the result to get contact info.

<!-- 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-10 07:57:57 +00:00
Abhishek Pandey
f92f811559
Retry more errors in graph adapter wrapper (#5203)
<!-- PR description-->

* We have started seeing `io.ErrUnexpectedEOF` and `read: connection timed out` in the last 2 days for exchange backups. Retry those.
* Also increase retry count from 3 to 6. This is more of a hail mary to retry `InvalidAuthenticationToken` errors. We have observed that retries do help. But for a small set of requests, we end up exhausting retries and eventually fail with InvalidAuthenticationToken error. Hoping that bumping this to 6 will get us some relief. This fix may be removed if we find the rootcause/pattern behind this.
* The event list test was taking > 150 secs. Thought I'd push this change as its a small fix. I first thought my PR https://github.com/alcionai/corso/pull/5202 broke the test. So I investigated this.

---

#### 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
2024-02-10 05:11:05 +00:00
ashmrtn
71a9087e4d
Add a fallback to non-delta pager during event item enumeration (#5201)
If the delta pager with a smaller page size also falls then attempt to
use the regular events endpoint to enumerate items

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-10 00:45:43 +00:00
Keepers
45886e2ad9
allow eml export when attachments have no name (#5199)
#### Does this PR need a docs update or release note?

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-02-09 18:41:10 +00:00
ashmrtn
7262d3b284
Remove deleted flag from test command (#5192)
Longevity tests run using the latest release of corso. Since we
recently made a release that contains the removal of this flag we need
to update the github action

---

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


#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-08 17:31:30 +00:00
ashmrtn
2ab3c890b4
Retry events item enumeration with smaller page size for some cases (#5194)
Update the events item enumerator to switch to a smaller page size for
the delta pager if we fail enumeration with a 503 error and no content.
We've found that that situation is indicative of the Graph server
being slow and a smaller page size allows us to make progress still

---

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

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

#### Issue(s)

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test (in another PR)
- [ ] 💚 E2E
2024-02-08 07:43:20 +00:00
Keepers
f00dd0f88a
introduce intg and unit test setup packages (#5140)
corso has a thousand bespoke approaches to setting the same info in all of its tests.  This is a first step towards minimizing and standardizing the lift around that work. Future PRs will distribute these packages through the repo.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-02-07 18:01:35 +00:00
Abin Simon
a2d40b4d38
Handle itemAttachments for emails (#5181)
<!-- PR description-->

---

#### 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: --->
- [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/5040

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-07 04:50:30 +00:00
Abhishek Pandey
c1ec1585a2
Skip exchange items which fail to download due to ErrorCorruptData error (#5191)
<!-- PR description-->

* We are seeing 500 errors from graph during exchange(email) backup. * Error is `:{"code":"ErrorCorruptData","message":"Data is corrupt., Invalid global object ID: some ID`. 
* Catch the error and add a skip since these items cannot be downloaded from graph. 

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-07 02:40:14 +00:00
Keepers
a680f13f84
add by-resp-code catcher to err transformer (#5184)
Start catching graph responses by broad response code, in addition to the response body details.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-02-06 18:02:34 +00:00
Abin Simon
9c8ac96aed
Skip emails with incorrect email when export ics file (#5190)
<!-- 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
2024-02-06 17:03:58 +00:00
Hitesh Pattanayak
e6dd387811
Add v0.19.0 changelog (#5189)
marks unrelease changes for v0.19.0

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-06 13:36:27 +00:00
Hitesh Pattanayak
fb64a2f52b
adds sharepoint lists changelog (#5188)
adds lists support to change log

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-06 09:07:45 +00:00
Abhishek Pandey
0cde1a4778
Update docs for group mailbox release (#5187)
<!-- PR description-->

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-02-06 08:34:52 +00:00
Keepers
e86592f51e
replace graph Wrap and Stack with clues (#5018)
Now that graph errors are always transformed as part of the graph client wrapper or http_wrapper, we don't need to call graph.Stack or graph.Wrap outside of those inner helpers any longer. This PR swaps all those graph calls with equivalent clues funcs as a cleanup.

Should not contain any logical changes.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #4685 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-02-06 01:08:26 +00:00
Abhishek Pandey
53a0525bfd
Handle previous paths for group mailbox (#5154)
<!-- PR description-->

* Tombstone collections weren't being added because we were not processing prev paths for group mailbox category.
* Hence deleted conversations were being carried forward even if `--disable-incrementals` was used.

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-05 23:10:09 +00:00
Abhishek Pandey
de22131b23
Split tombstone handling for groups services (#5170)
<!-- PR description-->

* Prerequisite to the currently failing PR https://github.com/alcionai/corso/pull/5154 
* Conversations tombstone IDs are currently 2 part ( `convID/threadID`).
* However, tombstones are looked up by `convID` part only, see [code](9a603d1f21/src/internal/m365/collection/groups/backup.go (L128)).
* Adding a change so that tombstone IDs are reduced to `convID`. Otherwise, we'd never delete tombstones while processing collections, and we'll run into `conflict: tombstone exists for a live collection` errors.
* This is safe to do as there is always a 1:1 relationship between `convID` and `threadID`. For e.g. attempting to create another thread inside a conversation creates a new conversation.

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-02-05 22:24:09 +00:00
Keepers
4cf4c22259
skip chats e2e tests (#5183)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests
2024-02-05 21:44:37 +00:00
dependabot[bot]
b5ac65c3d0
⬆️ Bump peter-evans/slash-command-dispatch from 3 to 4 (#5178)
Bumps [peter-evans/slash-command-dispatch](https://github.com/peter-evans/slash-command-dispatch) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/peter-evans/slash-command-dispatch/releases">peter-evans/slash-command-dispatch's releases</a>.</em></p>
<blockquote>
<h2>Slash Command Dispatch v4.0.0</h2>
<p>⚙️  Updated runtime to Node.js 20</p>
<ul>
<li>The action now requires a minimum version of <a href="https://github.com/actions/runner/releases/tag/v2.308.0">v2.308.0</a> for the Actions runner. Update self-hosted runners to v2.308.0 or later to ensure compatibility.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): bump <code>@​types/node</code> from 16.18.67 to 16.18.68 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/302">peter-evans/slash-command-dispatch#302</a></li>
<li>build(deps-dev): bump prettier from 3.1.0 to 3.1.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/303">peter-evans/slash-command-dispatch#303</a></li>
<li>build(deps-dev): bump jest-circus from 27.4.2 to 27.5.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/176">peter-evans/slash-command-dispatch#176</a></li>
<li>build(deps): bump actions/download-artifact from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/304">peter-evans/slash-command-dispatch#304</a></li>
<li>build(deps): bump actions/upload-artifact from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/305">peter-evans/slash-command-dispatch#305</a></li>
<li>build(deps-dev): bump eslint from 8.55.0 to 8.56.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/306">peter-evans/slash-command-dispatch#306</a></li>
<li>build(deps-dev): bump eslint-plugin-prettier from 5.0.1 to 5.1.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/308">peter-evans/slash-command-dispatch#308</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 16.18.68 to 16.18.69 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/309">peter-evans/slash-command-dispatch#309</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 16.18.69 to 16.18.70 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/310">peter-evans/slash-command-dispatch#310</a></li>
<li>build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/311">peter-evans/slash-command-dispatch#311</a></li>
<li>build(deps-dev): bump prettier from 3.1.1 to 3.2.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/312">peter-evans/slash-command-dispatch#312</a></li>
<li>build(deps-dev): bump prettier from 3.2.2 to 3.2.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/314">peter-evans/slash-command-dispatch#314</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 16.18.70 to 16.18.74 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/315">peter-evans/slash-command-dispatch#315</a></li>
<li>build(deps): bump peter-evans/create-or-update-comment from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/317">peter-evans/slash-command-dispatch#317</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 16.18.74 to 16.18.76 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/318">peter-evans/slash-command-dispatch#318</a></li>
<li>feat: update runtime to node 20 by <a href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/316">peter-evans/slash-command-dispatch#316</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/slash-command-dispatch/compare/v3.0.2...v4.0.0">https://github.com/peter-evans/slash-command-dispatch/compare/v3.0.2...v4.0.0</a></p>
<h2>Slash Command Dispatch v3.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: replace use of any type by <a href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/152">peter-evans/slash-command-dispatch#152</a></li>
<li>fixing link to <code>Get a pull request</code> by <a href="https://github.com/Borda"><code>@​Borda</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/270">peter-evans/slash-command-dispatch#270</a></li>
<li>Update getting-started.md due to changes in Github UI by <a href="https://github.com/martin-displayr"><code>@​martin-displayr</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/289">peter-evans/slash-command-dispatch#289</a></li>
<li>[Security] Fix GraphQL query to get a collaborator's permission by <a href="https://github.com/0xn3va"><code>@​0xn3va</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/301">peter-evans/slash-command-dispatch#301</a></li>
<li>129 dependency updates by <a href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Borda"><code>@​Borda</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/270">peter-evans/slash-command-dispatch#270</a></li>
<li><a href="https://github.com/martin-displayr"><code>@​martin-displayr</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/289">peter-evans/slash-command-dispatch#289</a></li>
<li><a href="https://github.com/0xn3va"><code>@​0xn3va</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/301">peter-evans/slash-command-dispatch#301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/slash-command-dispatch/compare/v3.0.1...v3.0.2">https://github.com/peter-evans/slash-command-dispatch/compare/v3.0.1...v3.0.2</a></p>
<h2>Slash Command Dispatch v3.0.1</h2>
<p>⚙️ Bumps <code>@actions/core</code> to transition away from <a href="https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/">deprecated runner commands</a>.</p>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump peter-evans/create-pull-request from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/142">peter-evans/slash-command-dispatch#142</a></li>
<li>build(deps): bump <code>@​actions/core</code> from 1.6.0 to 1.9.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/144">peter-evans/slash-command-dispatch#144</a></li>
<li>Update distribution by <a href="https://github.com/github-actions"><code>@​github-actions</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/145">peter-evans/slash-command-dispatch#145</a></li>
<li>build(deps): bump <code>@​actions/core</code> from 1.9.1 to 1.10.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/149">peter-evans/slash-command-dispatch#149</a></li>
<li>Update distribution by <a href="https://github.com/github-actions"><code>@​github-actions</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/150">peter-evans/slash-command-dispatch#150</a></li>
<li>build(deps): bump <code>@​actions/github</code> from 5.0.0 to 5.1.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/slash-command-dispatch/pull/148">peter-evans/slash-command-dispatch#148</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="13bc09769d"><code>13bc097</code></a> feat: update runtime to node 20 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/316">#316</a>)</li>
<li><a href="128d8b9272"><code>128d8b9</code></a> build(deps-dev): bump <code>@​types/node</code> from 16.18.74 to 16.18.76 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/318">#318</a>)</li>
<li><a href="df481df93d"><code>df481df</code></a> build(deps): bump peter-evans/create-or-update-comment from 3 to 4 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/317">#317</a>)</li>
<li><a href="d4579a0d22"><code>d4579a0</code></a> build(deps-dev): bump <code>@​types/node</code> from 16.18.70 to 16.18.74 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/315">#315</a>)</li>
<li><a href="8f053eaa2e"><code>8f053ea</code></a> build(deps-dev): bump prettier from 3.2.2 to 3.2.4 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/314">#314</a>)</li>
<li><a href="b3eb783760"><code>b3eb783</code></a> build(deps-dev): bump prettier from 3.1.1 to 3.2.2 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/312">#312</a>)</li>
<li><a href="c0334d0fed"><code>c0334d0</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/311">#311</a>)</li>
<li><a href="e627c61300"><code>e627c61</code></a> build(deps-dev): bump <code>@​types/node</code> from 16.18.69 to 16.18.70 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/310">#310</a>)</li>
<li><a href="5c23a33777"><code>5c23a33</code></a> build(deps-dev): bump <code>@​types/node</code> from 16.18.68 to 16.18.69 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/309">#309</a>)</li>
<li><a href="8dd62d5c45"><code>8dd62d5</code></a> build(deps-dev): bump eslint-plugin-prettier from 5.0.1 to 5.1.2 (<a href="https://redirect.github.com/peter-evans/slash-command-dispatch/issues/308">#308</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/peter-evans/slash-command-dispatch/compare/v3...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/slash-command-dispatch&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>
2024-02-05 21:05:21 +00:00
dependabot[bot]
b4b8088a97
⬆️ Bump mermaid from 10.7.0 to 10.8.0 in /website (#5179)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.7.0 to 10.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h1>v10.8.0</h1>
<h2>Features</h2>
<!-- raw HTML omitted -->
<ul>
<li>
<p>Adding new diagram type - Block Diagram by <a href="https://github.com/knsv"><code>@​knsv</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5221">mermaid-js/mermaid#5221</a></p>
</li>
<li>
<p>Feature/5114 add parallel commit config by <a href="https://github.com/mathbraga"><code>@​mathbraga</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5161">mermaid-js/mermaid#5161</a></p>
</li>
<li>
<p>Changes to Gantt Parsers to allow hashes and semicolons to titles, sections, and task data. by <a href="https://github.com/FutzMonitor"><code>@​FutzMonitor</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5095">mermaid-js/mermaid#5095</a></p>
</li>
<li>
<p>Feature/4653 add actor-top class to sequence diagram by <a href="https://github.com/Ronid1"><code>@​Ronid1</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5241">mermaid-js/mermaid#5241</a></p>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>Updated gantt chart docs to show all config options by <a href="https://github.com/murdoa"><code>@​murdoa</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5192">mermaid-js/mermaid#5192</a></li>
<li>Contribution documentation improvements by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5132">mermaid-js/mermaid#5132</a></li>
<li>Update flowchart.md - how to use font-awesome <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5195">#5195</a> by <a href="https://github.com/arukiidou"><code>@​arukiidou</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5196">mermaid-js/mermaid#5196</a></li>
<li>Add more detailed docs for Gantt tasks by <a href="https://github.com/sorenisanerd"><code>@​sorenisanerd</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5194">mermaid-js/mermaid#5194</a></li>
<li>Docs/4974 reorder integration links by <a href="https://github.com/Ronid1"><code>@​Ronid1</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5066">mermaid-js/mermaid#5066</a></li>
<li>docs: fix swimm link by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5219">mermaid-js/mermaid#5219</a></li>
<li>Update Slack community links to Discord by <a href="https://github.com/Olegt0rr"><code>@​Olegt0rr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5225">mermaid-js/mermaid#5225</a></li>
<li>Docs: Mermaid chart updates by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5232">mermaid-js/mermaid#5232</a></li>
<li>Fix typos in timeline syntax samples by <a href="https://github.com/sblom"><code>@​sblom</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5139">mermaid-js/mermaid#5139</a></li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>Bug/5059 fix external connection after updating edges by <a href="https://github.com/mathbraga"><code>@​mathbraga</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5127">mermaid-js/mermaid#5127</a></li>
<li>[Fix] Sequence diagram actor menu popup by <a href="https://github.com/vitorsss"><code>@​vitorsss</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5160">mermaid-js/mermaid#5160</a></li>
<li>fix: Dompurify Hooks by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5236">mermaid-js/mermaid#5236</a></li>
<li>Accurate pie chart labeling for text alignment by <a href="https://github.com/JenningsWilliam"><code>@​JenningsWilliam</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5141">mermaid-js/mermaid#5141</a></li>
<li>fix: Redirect of old URLs by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5250">mermaid-js/mermaid#5250</a></li>
<li>Fixed Typo in ErrorRenderer.ts by <a href="https://github.com/FutzMonitor"><code>@​FutzMonitor</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5256">mermaid-js/mermaid#5256</a></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Revert &quot;Revert 5041 feature/4935 subgraph title margin config option&quot; by <a href="https://github.com/mathbraga"><code>@​mathbraga</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5205">mermaid-js/mermaid#5205</a></li>
<li>build(deps-dev): bump follow-redirects from 1.15.2 to 1.15.5 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5200">mermaid-js/mermaid#5200</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5150">mermaid-js/mermaid#5150</a></li>
<li>E2E Image comparison by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5208">mermaid-js/mermaid#5208</a></li>
<li>E2E test by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5210">mermaid-js/mermaid#5210</a></li>
<li>Optimise caching of test results by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5213">mermaid-js/mermaid#5213</a></li>
<li>Update update-browserlist.yml to fix deprecation and action fails by <a href="https://github.com/Abrifq"><code>@​Abrifq</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5151">mermaid-js/mermaid#5151</a></li>
<li>UpdateCypress by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5228">mermaid-js/mermaid#5228</a></li>
<li>Use node v20 by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5248">mermaid-js/mermaid#5248</a></li>
<li>Convert Mindmap to TS by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5247">mermaid-js/mermaid#5247</a></li>
<li>chore: Add interface naming Convention by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5254">mermaid-js/mermaid#5254</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/murdoa"><code>@​murdoa</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5192">mermaid-js/mermaid#5192</a></li>
<li><a href="https://github.com/arukiidou"><code>@​arukiidou</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5196">mermaid-js/mermaid#5196</a></li>
<li><a href="https://github.com/sorenisanerd"><code>@​sorenisanerd</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/5194">mermaid-js/mermaid#5194</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="51e7444b94"><code>51e7444</code></a> <a href="https://redirect.github.com/mermaid-js/mermaid/issues/3358">#3358</a> Layoutfix for growing parent when children spans new rows due to update...</li>
<li><a href="2fa9219353"><code>2fa9219</code></a> Update docs</li>
<li><a href="f5555245f9"><code>f555524</code></a> Mermaid version 10.8.0</li>
<li><a href="5c9857c4eb"><code>5c9857c</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5247">#5247</a> from mermaid-js/sidv/mindmapToTs</li>
<li><a href="494ba45c5e"><code>494ba45</code></a> Fixed Typo in ErrorRenderer.ts (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5256">#5256</a>)</li>
<li><a href="b38def6866"><code>b38def6</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5221">#5221</a> from mermaid-js/3358-blocks-diagram</li>
<li><a href="a7afc11079"><code>a7afc11</code></a> <a href="https://redirect.github.com/mermaid-js/mermaid/issues/3358">#3358</a> Removing redundant file</li>
<li><a href="d3c5b02008"><code>d3c5b02</code></a> Merge branch '3358-blocks-diagram' of github.com:mermaid-js/mermaid into 3358...</li>
<li><a href="16149abcc0"><code>16149ab</code></a> <a href="https://redirect.github.com/mermaid-js/mermaid/issues/3358">#3358</a> Fix after review</li>
<li><a href="13d0b61757"><code>13d0b61</code></a> Merge branch 'develop' into 3358-blocks-diagram</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.7.0...v10.8.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.7.0&new-version=10.8.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>
2024-02-05 05:33:58 +00:00
Hitesh Pattanayak
29f6582bc7
fixes failing nightly tests due to PR#5060 changes (#5176)
Fixes tests failing due to change in PR #5060 

#### 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)
- https://github.com/alcionai/corso/actions/runs/7736081427
- https://github.com/alcionai/corso/actions/runs/7751227007

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-02-02 07:57:53 +00:00
dependabot[bot]
d983488154
⬆️ Bump docusaurus-plugin-image-zoom from 1.0.1 to 2.0.0 in /website (#5174)
Bumps [docusaurus-plugin-image-zoom](https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom) from 1.0.1 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/releases">docusaurus-plugin-image-zoom's releases</a>.</em></p>
<blockquote>
<h2>Release 2.0.0</h2>
<h4>💥 Breaking Change</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/30">#30</a> Upgrading to Docusaurus v3 (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/26">#26</a> Document update: Usage section (<a href="https://github.com/chellman"><code>@​chellman</code></a>)</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
<li><a href="https://github.com/chellman"><code>@​chellman</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/blob/main/CHANGELOG.md">docusaurus-plugin-image-zoom's changelog</a>.</em></p>
<blockquote>
<h2>v2.0.0 (2024-02-01)</h2>
<h4>💥 Breaking Change</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/30">#30</a> Upgrading to Docusaurus v3 (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>📝 Documentation</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/26">#26</a> Document update: Usage section (<a href="https://github.com/chellman"><code>@​chellman</code></a>)</li>
</ul>
<h4>Committers: 2</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
<li><a href="https://github.com/chellman"><code>@​chellman</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0e9c504a60"><code>0e9c504</code></a> Release 2.0.0</li>
<li><a href="78e132cf1a"><code>78e132c</code></a> Merge pull request <a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/issues/26">#26</a> from chellman/docs-update-2023-06-01</li>
<li><a href="2935b60e12"><code>2935b60</code></a> Merge pull request <a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/issues/30">#30</a> from gabrielcsapo/docusaurus-v3</li>
<li><a href="724625bae9"><code>724625b</code></a> Upgrading to Docusaurus v3</li>
<li><a href="aaa5d81758"><code>aaa5d81</code></a> Updated usage section in readme to reflect current usage, and the need for co...</li>
<li>See full diff in <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/compare/v1.0.1...v2.0.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docusaurus-plugin-image-zoom&package-manager=npm_and_yarn&previous-version=1.0.1&new-version=2.0.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>
2024-02-02 05:48:01 +00:00
Abhishek Pandey
7e2b9dab62
Add group mailbox export (#5153)
<!-- PR description-->

* Add EML exports for group mailbox.
* Tested E2E manually along with unit tests added in this PR.
* Will follow it up with a sanity test PR.
---

#### 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: --->
- [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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-31 05:14:59 +00:00
Abhishek Pandey
1537db59c4
Convert serialized posts to eml (#5152)
<!-- PR description-->

* Add the serialized `Postable` to EML converter code for group mailboxes and associated tests.
* We should converge this with `Messageable` code at some point with a small translator function which converts `Postable` to `Messageable`. Reason being that posts are a subset of messages. Although I feel it's a bit premature right now. Once we have tested this in prod a bit, and we know for a fact that posts are indeed a true subset of messages, we can do this convergence. 

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-30 21:00:50 +00:00
Keepers
80d7d5c63d
boilerplate teamschat collection package (#5087)
seems like a lot of code, but this is 95% boilerplate additions copied from groups collections packages, with a find-replace for names.

Some noteworthy differences:
* teamsChats does not handle metadata, so all metadata, delta, and previous path handling was removed
* teamsChats does not produce tombstones
* chats are never deleted, so no "removed" items are tracked
* all chats gets stored at the prefix root, so no "containers" are iterated, and therefore only one collection is ever produced.

This means that, overall, while the boilerplate here is still the same, it's much reduced compared to similar packages.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #5062

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-30 20:04:49 +00:00
ashmrtn
ca3ca60ba4
Update repo init for partial init case (#5060)
Unclear if this is precisely the path we want to take to handle possible
partial repo initialization so feel free to leave suggestions if a
different behavior would be better

Update the repo init logic to continue if the repo is marked as already existing. If it already exists then the process will try to update persistent config info in the repo. If the repo already exists but some connection credential is incorrect then stack errors such that both the reason for the connect failure and the fact that the repo already exists are both visible.

Manually tested attempting to initialize a repo that was already
initialized but using a different passphrase and got the output:
```text
Error: initializing repository: a repository was already initialized with that configuration: connecting to kopia repo: unable to create format manager: invalid repository password: repo already exists: repository already initialized
exit status 1
```

Attempting to initialize a repo again using the same passphrase resulted
in a success message with no errors reported

Unfortunately I can't really add unit tests to ensure the config ends up
the way we expect because I have no way to trigger an error partway through
kopia's init logic (or even just after it) without some non-trivial code
refactoring

---

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

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-30 18:27:35 +00:00
Abhishek Pandey
50ba30539a
Persist metadata files for group mailbox posts (#5135)
<!-- PR description-->

* Each post now has a `.data` and `.meta` file.
* I've only made changes to groups lazy reader to keep this PR short. Note that channels don't have meta/data file concepts, we don't want to accidentally enable this for channels. Given channels doesn't use lazy reader, this is safe to do short term.
* I'll be adding small follow up PRs to 1) Make sure channels files don't get assigned `.data` suffix. 2) Support for data and meta files for prefetch conversations backup. 

---

#### 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
2024-01-30 11:10:07 +00:00
Hitesh Pattanayak
f1406a3334
adds documentation for sharepoint lists (#5099)
adds documentation for sharepoint lists.
should go in after: https://github.com/alcionai/corso/pull/5048

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-30 16:05:09 +05:30
Hitesh Pattanayak
f615198c78
makes backup of lists explicit and not by default (#5165)
makes backup of lists explicit and not by default.

**Backup whole site**:
```
corso backup create sharepoint --site https://10rqc2.sharepoint.com/sites/CorsoCI

Completed Backups:
  ID                                    Started at            Duration       Status     Protected resource                           Data     
  4a324fd8-dcfc-4833-961f-316d11da34e9  2024-01-30T05:45:24Z  21.530965673s  Completed  https://10rqc2.sharepoint.com/sites/CorsoCI  Libraries
  

corso backup details sharepoint --backup 4a324fd8-dcfc-4833-961f-316d11da34e9

ID            ItemName                                     Library         ParentPath                                                                                                            Size    Owner                            Created               Modified            
  15204b287c5c  wat.jpg                                      More Documents  test                                                                                                                  6.1 kB  RFinders@10rqc2.onmicrosoft.com  2023-03-24T20:33:46Z  2023-03-24T20:33:46Z
  69f63c25d3f1  test-file.txt                                Documents       Corso_Test_od_restore_and_backup_multi_30-Jan-2024_05-06-04.380107/b                                                  387 B                                    2024-01-30T05:06:09Z  2024-01-30T05:06:09Z
  c2d55ecb218f  test-file.txt                                Documents       Corso_Test_od_restore_and_backup_multi_30-Jan-2024_05-06-04.380107/folder-a                                           131 B                                    2024-01-30T05:06:11Z  2024-01-30T05:06:12Z
  5d38274759fd  test-file.txt                                Documents       Corso_Test_od_restore_and_backup_multi_30-Jan-2024_05-06-04.380107                                                    87 B                                     2024-01-30T05:06:06Z  2024-01-30T05:06:07Z
  b5c075c00737  test-file.txt                                Documents       Corso_Test_od_restore_and_backup_multi_30-Jan-2024_05-06-04.380107/folder-a/b/folder-a                                387 B                                    2024-01-30T05:06:16Z  2024-01-30T05:06:17Z
 ...
 ...
```

**Backup lists explicitely**:
```
corso backup create sharepoint --site https://10rqc2.sharepoint.com/sites/CorsoCI --data lists
 
 Completed Backups:
  ID                                    Started at            Duration       Status     Protected resource                           Data 
  cf480086-2094-4184-82be-26e2c5c64288  2024-01-30T05:50:35Z  23.605968852s  Completed  https://10rqc2.sharepoint.com/sites/CorsoCI  Lists
 

corso backup details sharepoint --backup cf480086-2094-4184-82be-26e2c5c64288

ID            List                                                                                                                  Items  Created               Modified            
  85d453fd0f13  Corso_Test_Sanity_2024-01-30_05-31-05_e6be57ae-4236-44aa-b506-a5801377f937                                            20     2024-01-30T05:31:15Z  2024-01-30T05:31:18Z
  f8919f072c7c  Corso_Test_Sanity_Restore_20240130_053009_Corso_Test_Sanity_2024-01-30_05-29-33_4fed1e50-f045-4ebb-8a61-8fb608ac9673  20     2024-01-30T05:30:26Z  2024-01-30T05:30:29Z
  821df8ab207d  Corso_Test_Sanity_Restore_20240130_053147_Corso_Test_Sanity_2024-01-30_05-29-33_b44ce328-106c-4880-8e37-e0bbb510ed4d  20     2024-01-30T05:31:58Z  2024-01-30T05:32:02Z
  721f0aadf07f  new-list-name                                                                                                         1      2024-01-19T17:44:26Z  2024-01-29T04:05:42Z
...
...

```

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-30 08:11:42 +00:00
Hitesh Pattanayak
820d6aba33
enables lists restore (#5158)
enables lists restore

should go in after https://github.com/alcionai/corso/pull/5121

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-30 07:32:17 +00:00
Hitesh Pattanayak
576c9f6b53
handles single & multiple values for metadata columns (#5121)
handles single & multiple values for metadata columns

Similar to `Hyperlink` and `Column` columns, `Metadata` column too is unrecognizable from GRAPH API response. Hence identifying from the field column names.

`Metadata` fields are like tags. A `Metadata` fields can be configured to hold multiple values/tags

**Original List with `Metadata` column (Department) with single value/tag**:
![Metadata-List](https://github.com/alcionai/corso/assets/48874082/0b913a2a-46d5-4d9c-83f9-69a5236b1024)

**Restored List with `Metadata` column with single value/tag**:
![Restored-Metadata-List](https://github.com/alcionai/corso/assets/48874082/9420012b-345c-4fac-90c3-c0d421b2edfb)

**Original List with `Metadata` column (Department) with multiple value/tag**:
![Metadata-List-Multi](https://github.com/alcionai/corso/assets/48874082/054ef4a1-c46e-48ba-b410-a95b540cde33)

**Restored List with `Metadata` column with multiple value/tag**:
![Restored-Multi-Metadata-List](https://github.com/alcionai/corso/assets/48874082/ef6c904b-e431-4a85-9ef2-f08bcf8e21e4)


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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-30 06:35:33 +00:00
Hitesh Pattanayak
08d4803ebe
handles multiple lookup field values (#5112)
handles multiple lookup field values.

**Original `Lookup` list with single value**:
![Lookup-List-Single](https://github.com/alcionai/corso/assets/48874082/6a6b68cf-8fb9-4dfb-985e-702c4d74d3f0)

**Restored `Lookup` list with single value**:
![Restored-Lookup-List](https://github.com/alcionai/corso/assets/48874082/f97ac974-6a3b-4dd2-82c5-9f3596f9adaa)

**Original `Lookup` list with multiple values**:
![Lookup-List-Multi](https://github.com/alcionai/corso/assets/48874082/5f8b1b92-297f-4a66-b0b6-b5007d430690)

**Restored `Lookup` list with multiple values**:
![Restored-Lookup-List-Multi](https://github.com/alcionai/corso/assets/48874082/6c6d79ca-775d-4f50-abee-8090a28f3871)


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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-30 05:49:00 +00:00
Hitesh Pattanayak
734fd7239e
handles multiple persons list items (#5111)
handles multiple persons list items.

**Original `person` list with single value**:
![Person-List](https://github.com/alcionai/corso/assets/48874082/a4a87cde-f907-4fc7-94da-f9ddda0f5a18)
 
**Restored `person` list with single value**:
![Restored-Person-List](https://github.com/alcionai/corso/assets/48874082/6b5c2a8b-743c-4020-9393-356d28948bf0)

**Original `person` list with multi value**:
![Person-List-Multi](https://github.com/alcionai/corso/assets/48874082/18d2c536-67ac-4b28-87be-2352764f2c95)

**Restored `person` list with multi value**:
![Restored-Person-List-Multi](https://github.com/alcionai/corso/assets/48874082/f9694e0d-d2cc-48d9-94f2-16b61c5b7cdb)

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-30 04:55:03 +00:00
ashmrtn
d2f1bbb5c7
Skip ms auth checks for gock client (#5163)
Disable sending requests to microsoft servers to get API tokens when
using the gock client. This is accomplished by passing in a mock that
always returns no error for auth requests.

**This PR does not go through and make existing tests using gock unit
tests instead of integration tests. That will need to be done
separately**

---

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

* #5124

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-30 02:41:53 +00:00
Niraj Tolia
45b021d58e
Upgrade Docusaurus to 3.1.1 (#5157)
Upgrades deps in sync

---

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

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2024-01-29 23:43:59 +00:00
Keepers
8e6a47b103
add chats service and category to paths (#5065)
introduces the Chats service and Chats category

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #5061

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-29 22:03:31 +00:00
Hitesh Pattanayak
8ac7e6caa2
provisions to identify fields with multiple value (#5109)
provisions to identify fields with multiple value.
Some fields can hold multiple values and single value based on a property called `allowMultipleValues`.
For example, `Lookup` column:
```
"lookup": {
    "allowMultipleValues": true,
    "allowUnlimitedLength": false,
    "columnName": "Title",
    "listId": "21b45bf2-e495-4582-b114-839577ff8e4f"
}
```
But `choice` columns, even though allows to set multiple choices/value, does not have that particular field `allowMultipleValues` to indicate.
So in this PR we are trying determine the same by the stored values while restoring.

**Original list with `choice` column in site**:
![Choice-List-Multi](https://github.com/alcionai/corso/assets/48874082/d4457b3c-0230-4a69-8467-f64b7d7d4f04)

**Restored list with `choice` column in site**
![Restored-Choice-List-Multi](https://github.com/alcionai/corso/assets/48874082/78478055-0e84-43d0-ac83-262b564ce778)
The color does not come through though


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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-29 21:27:35 +00:00
ashmrtn
6ef2c2d494
Use type switch instead of strings of types (#5156)
Instead of relying on strings pulled from the graph SDK to identify the types of the items we're dealing with use the type of the interface in golang.

---

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

* #5124

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-29 19:53:22 +00:00
Abin Simon
8a7a61f05d
CI to catch incorrect use of clues (#5144)
<!-- PR description-->

Catches issues where we use `WC` variant of clues when `ctx` is passed and as well as cases where we don't use WC variant when `ctx` is not passed in.

---

#### 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
- [x] 💻 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
2024-01-29 18:26:42 +00:00
ashmrtn
e1cb5b6313
Test closing repo without connect works (#5115)
Just make sure we can call Close() on the repository struct even if we have made a connection to kopia or initialized all the internal fields.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-29 17:52:03 +00:00
ashmrtn
85aaa448c5
Call config verify command during maintenance (#5123)
Add the wiring to actually call the new config verify command during
maintenance

---

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

merge after:
* #5117
* #5118
* #5122

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-29 16:25:25 +00:00
dependabot[bot]
8437724254
⬆️ Bump dorny/paths-filter from 2 to 3 (#5151)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dorny/paths-filter/releases">dorny/paths-filter's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md: added real world usage example by <a href="https://github.com/iamtodor"><code>@​iamtodor</code></a> in <a href="https://redirect.github.com/dorny/paths-filter/pull/178">dorny/paths-filter#178</a></li>
<li>Update Node.js to version 20 by <a href="https://github.com/danielhjacobs"><code>@​danielhjacobs</code></a> in <a href="https://redirect.github.com/dorny/paths-filter/pull/206">dorny/paths-filter#206</a></li>
<li>Update to nodejs 20 by <a href="https://github.com/dorny"><code>@​dorny</code></a> in <a href="https://redirect.github.com/dorny/paths-filter/pull/210">dorny/paths-filter#210</a></li>
<li>chore(deps): bump checkout action to v4 and use setup-node to setup node and cache npm deps by <a href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a href="https://redirect.github.com/dorny/paths-filter/pull/211">dorny/paths-filter#211</a></li>
<li>Update all dependencies by <a href="https://github.com/dorny"><code>@​dorny</code></a> in <a href="https://redirect.github.com/dorny/paths-filter/pull/215">dorny/paths-filter#215</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/iamtodor"><code>@​iamtodor</code></a> made their first contribution in <a href="https://redirect.github.com/dorny/paths-filter/pull/178">dorny/paths-filter#178</a></li>
<li><a href="https://github.com/danielhjacobs"><code>@​danielhjacobs</code></a> made their first contribution in <a href="https://redirect.github.com/dorny/paths-filter/pull/206">dorny/paths-filter#206</a></li>
<li><a href="https://github.com/chenrui333"><code>@​chenrui333</code></a> made their first contribution in <a href="https://redirect.github.com/dorny/paths-filter/pull/211">dorny/paths-filter#211</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/dorny/paths-filter/compare/v2.11.1...v3.0.0">https://github.com/dorny/paths-filter/compare/v2.11.1...v3.0.0</a></p>
<h2>v2.11.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/167">Update <code>@​actions/core</code> to v1.10.0 - Fixes warning about deprecated set-output</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/168">Document need for pull-requests: read permission</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/164">Updating to actions/checkout@v3</a></li>
</ul>
<h2>v2.11.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/157">Set list-files input parameter as not required</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/161">Update Node.js</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/162">Fix incorrect handling of Unicode characters in exec()</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/163">Use Octokit pagination</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/160">Updates real world links</a></li>
</ul>
<h2>v2.10.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/91">Fix getLocalRef() returns wrong ref</a></li>
</ul>
<h2>v2.10.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/85">Improve robustness of change detection</a></li>
</ul>
<h2>v2.10.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/82">Add ref input parameter</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/83">Fix change detection in PR when <code>pullRequest.changed_files</code> is incorrect</a></li>
</ul>
<h2>v2.9.3</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/78">Fix change detection when base is a tag</a></li>
</ul>
<h2>v2.9.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/75">Fix fetching git history</a></li>
</ul>
<h2>v2.9.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/74">Fix fetching git history + fallback to unshallow repo</a></li>
</ul>
<h2>v2.9.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/68">Add list-files: csv format</a></li>
</ul>
<h2>v2.8.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md">dorny/paths-filter's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v3.0.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/210">Update to Node.js 20 </a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/215">Update all dependencies</a></li>
</ul>
<h2>v2.11.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/167">Update <code>@​actions/core</code> to v1.10.0 - Fixes warning about deprecated set-output</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/168">Document need for pull-requests: read permission</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/164">Updating to actions/checkout@v3</a></li>
</ul>
<h2>v2.11.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/157">Set list-files input parameter as not required</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/161">Update Node.js</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/162">Fix incorrect handling of Unicode characters in exec()</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/163">Use Octokit pagination</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/160">Updates real world links</a></li>
</ul>
<h2>v2.10.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/91">Fix getLocalRef() returns wrong ref</a></li>
</ul>
<h2>v2.10.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/85">Improve robustness of change detection</a></li>
</ul>
<h2>v2.10.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/82">Add ref input parameter</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/83">Fix change detection in PR when pullRequest.changed_files is incorrect</a></li>
</ul>
<h2>v2.9.3</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/78">Fix change detection when base is a tag</a></li>
</ul>
<h2>v2.9.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/75">Fix fetching git history</a></li>
</ul>
<h2>v2.9.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/74">Fix fetching git history + fallback to unshallow repo</a></li>
</ul>
<h2>v2.9.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/68">Add list-files: csv format</a></li>
</ul>
<h2>v2.8.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/65">Add count output variable</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/61">Fix log grouping of changes</a></li>
</ul>
<h2>v2.7.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/59">Add &quot;changes&quot; output variable to support matrix job configuration</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/58">Improved listing of matching files with <code>list-files: shell</code> and <code>list-files: escape</code> options</a></li>
</ul>
<h2>v2.6.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/53">Support local changes</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0bc4621a31"><code>0bc4621</code></a> Bump major version to v3</li>
<li><a href="7267a8516b"><code>7267a85</code></a> Update CHANGELOG for v2.12.0</li>
<li><a href="e36f1124bf"><code>e36f112</code></a> Merge pull request <a href="https://redirect.github.com/dorny/paths-filter/issues/215">#215</a> from dorny/update-dependencies</li>
<li><a href="2f74457227"><code>2f74457</code></a> Update all dependencies</li>
<li><a href="67617953b4"><code>6761795</code></a> Update examples in README  to use checkout@v4</li>
<li><a href="a35d8d6a33"><code>a35d8d6</code></a> Merge pull request <a href="https://redirect.github.com/dorny/paths-filter/issues/211">#211</a> from chenrui333/node-20</li>
<li><a href="b5a5203f8b"><code>b5a5203</code></a> chore(deps): bump checkout action to v4 and use setup-node to setup node and ...</li>
<li><a href="3c49e64ca2"><code>3c49e64</code></a> Merge pull request <a href="https://redirect.github.com/dorny/paths-filter/issues/210">#210</a> from dorny/use-nodejs-20</li>
<li><a href="8ec7be4734"><code>8ec7be4</code></a> Update to nodejs 20</li>
<li><a href="100a1198b2"><code>100a119</code></a> Revert back to node16</li>
<li>Additional commits viewable in <a href="https://github.com/dorny/paths-filter/compare/v2...v3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dorny/paths-filter&package-manager=github_actions&previous-version=2&new-version=3)](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>
2024-01-29 11:06:45 +00:00
dependabot[bot]
08e1b1d1e6
⬆️ Bump github.com/arran4/golang-ical from 0.2.3 to 0.2.4 in /src (#5145)
Bumps [github.com/arran4/golang-ical](https://github.com/arran4/golang-ical) from 0.2.3 to 0.2.4.
<details>
<summary>Commits</summary>
<ul>
<li><a href="51fa6f1213"><code>51fa6f1</code></a> Merge pull request <a href="https://redirect.github.com/arran4/golang-ical/issues/85">#85</a> from brackendawson/panic</li>
<li><a href="46e2a5c0ed"><code>46e2a5c</code></a> Exclude fuzz testing from pre-1.18 toolchains</li>
<li><a href="a8f0586c90"><code>a8f0586</code></a> fix panic when param value has incomplete escape sequence</li>
<li><a href="3631125a31"><code>3631125</code></a> fix panic when property ends without colon or value</li>
<li><a href="681cc6e62c"><code>681cc6e</code></a> fix panic for missing property param operator</li>
<li><a href="804f4d3436"><code>804f4d3</code></a> Merge pull request <a href="https://redirect.github.com/arran4/golang-ical/issues/84">#84</a> from arran4/pull-66-add-todo-journal</li>
<li><a href="cf8d1b371d"><code>cf8d1b3</code></a> Ignore explicitly</li>
<li><a href="1e96c15957"><code>1e96c15</code></a> Consistent receivers.</li>
<li><a href="9e30bdf5f0"><code>9e30bdf</code></a> Ignore explicitly</li>
<li><a href="55df13ec27"><code>55df13e</code></a> Consistent todo receiver</li>
<li>Additional commits viewable in <a href="https://github.com/arran4/golang-ical/compare/v0.2.3...v0.2.4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/arran4/golang-ical&package-manager=go_modules&previous-version=0.2.3&new-version=0.2.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>
2024-01-29 10:28:48 +00:00
dependabot[bot]
41f2808bd9
⬆️ Bump jarallax from 2.1.4 to 2.2.0 in /website (#5147)
Bumps [jarallax](https://github.com/nk-o/jarallax) from 2.1.4 to 2.2.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/nk-o/jarallax/blob/master/CHANGELOG.md">jarallax's changelog</a>.</em></p>
<blockquote>
<h2>[2.2.0] - Jan 27, 2024</h2>
<ul>
<li>updated video worker:
<ul>
<li>added support for private Vimeo videos hash in URL</li>
<li>fixed <code>play</code> method play when <code>endTime</code> reached</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f8060f98d1"><code>f8060f9</code></a> v2.2.0</li>
<li><a href="2df482e478"><code>2df482e</code></a> updated video-worker</li>
<li><a href="afa456f38b"><code>afa456f</code></a> Update npm-publish.yml</li>
<li>See full diff in <a href="https://github.com/nk-o/jarallax/compare/v2.1.4...v2.2.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jarallax&package-manager=npm_and_yarn&previous-version=2.1.4&new-version=2.2.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>
2024-01-29 05:25:28 +00:00
Abin Simon
79194c44df
Fix event cancellation status in export (#5107)
<!-- 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
2024-01-29 04:38:09 +00:00
ashmrtn
5f036a0cc1
Use fault bus and alerts instead of error for config verify (#5122)
Switch to using alerts and the fault bus instead of errors. Hopefully
this will make it easier to ensure this verify code doesn't fail
maintenance overall and that callers can consume the info in a
standardized manner

---

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

merge after:
* #5117
* #5118

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-27 04:04:12 +00:00
ashmrtn
d426250931
Validate kopia config (#5118)
Add function that returns errors if it finds issues with common config
info in the kopia repo. Parameters that are currently checked are:

* kopia global policy:
    * kopia snapshot retention is disabled
    * kopia compression matches the default compression for corso
    * kopia scheduling is disabled
* object locking:
    * maintenance and blob config blob parameters are consistent (i.e. all
    enabled or all disabled)

Note that tests for this will fail until alcionai/clues#40 is
merged and clues is updated in corso

---

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

#### Issue(s)

merge after:
* #5117
* alcionai/clues#40

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-27 01:53:11 +00:00
ashmrtn
c3f4dd6bcf
Pull in latest version of clues (#5132)
Latest clues patch fixes bug where the result of `clues.Stack(clues.Stack(nil))` was
not considered nil

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-27 00:49:11 +00:00
Keepers
f7a9ca836f
flush progress bars before all print calls (#5131)
hopefully fixes clobbering issues for end-of-run tables

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #5113

#### Test Plan

- [x] 💪 Manual
2024-01-27 00:10:10 +00:00
Abhishek Pandey
8133da3087
Centralize metadata suffix definitions (#5134)
<!-- PR description-->

Centralizing the suffixes so that group mailbox and future services can also use them.

* Move `.meta`, `.data`, `.dirmeta` definitions from `internal/m365/collection/drive/metadata` pkg to `pkg/services/m365/api/graph/metadata`.
* Adjust package names in misc places.
* No logic change. 
* We should probably keep all metadata definitions and code in one place, i.e. relocate drive metadata definitions to `pkg/services/m365/api/graph/metadata`. This is a bigger change, we can do it later.
---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-26 22:06:04 +00:00
ashmrtn
683f163df1
Code and tests to validate retention config (#5117)
Basic validation checks that make sure maintenance and retention options are consistent with each other. This at least makes sure retention is either enabled and maintenance extends locks or nothing is locked at all.

Going to be part of a set of PRs for validating the kopia config

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-26 00:09:35 +00:00
Keepers
cc24f9b6e7
fix up the backup failure output message (#5120)
metadata is too much data to be useful to an end user, meanwhile err is getting clobbered.

before
```
Error: Unable to complete backup
Message: <nil>
Metadata:{"assist_bases":"0","backup_id":"40940295-3611-42fb-ac27-5b80691ba793","base_backup_id":"832fff09-4988-4a3e-a0d0-4e51b197ea14","can_use_metadata":"true","can_use_previous_backup":"true","categories":"[Chats]","clues_trace":"c3bbd0e6","collection_count":"2","disable_assist_backup":"false","incremental":"true","merge_bases":"1","repo_ref":"fb8afbaa-e94c-4ea5-8a8a-24aff04d7874/chats/311d2a89-4c80-4da4-86ef-a08d8d6f0f94/chats/19:311d2a89-4c80-4da4-86ef-a08d8d6f0f94_817c2506-de4a-4795-971e-371ea75a03ed@unq.gbl.spaces","resource_owner_id":"311d2a89-4c80-4da4-86ef-a08d8d6f0f94","resource_owner_name":"rfinders@10rqc2.onmicrosoft.com","resource_owner_selected":"rfinders@10rqc2.onmicrosoft.com","service":"service(5)","tenant_id":"fb8afbaa-e94c-4ea5-8a8a-24aff04d7874"}
```
after
```
Error: Unable to complete backup
Cause: running backup: merging details: merging merge backup base details: getting updated info for entry: getting previous item location: unable to extract LocationRef from RepoRef
```

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
2024-01-25 19:40:56 +00:00
Hitesh Pattanayak
ff28ca2081
adds CI sanity test steps to github workflow (#5037)
adds CI sanity test steps to github workflow

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 💻 CI/Deployment

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-25 03:51:11 +00:00
ashmrtn
e4e4bae850
Add a pin to kopia snapshots so they won't be GCed by kopia accidentally (#5090)
Internally kopia has the notion of a retention policy. This adds a pin to each snapshot that corso uses kopia to create so that those snapshots won't be subject to kopia's rentention policy. As we disable kopia's retention policy during repo init this just acts as another layer of security to ensure snapshots won't be deleted unexpectedly.

Note that this PR only applies to _new_ snapshots that corso creates.
It doesn't go back and pin older snapshots for already existing backups

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-24 21:55:58 +00:00
ashmrtn
cb4006eb60
Configure new corso repos with 8 hr minEpochDuration (#5086)
We've found that reducing the MinEpochDuration parameter in kopia
can reduce GET requests sent to the object store by a large amount
(>50% in some cases) for repos that run many backups each day

This PR updates the init repo code path to set this parameter to
8hrs instead of the default 24hrs to bring in some of those savings

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-24 21:18:22 +00:00
Keepers
e1457c23bf
show data category in backup list (#5023)
Adds the backup's data category to the cli output.

before:
```
  ID                                    Started At            Duration    Status     Resource Owner
  09e8d1e3-92d4-426d-9ca1-3cd063ce8bb9  2024-01-12T17:54:33Z  16.103569s  Completed  rfinders@10rqc2.onmicrosoft.com
  893ef934-9403-4775-b667-09f77cd26e83  2024-01-12T17:55:22Z  5.66253s    Completed  rfinders@10rqc2.onmicrosoft.com
```

after:
```
  ID                                    Started at            Duration    Status     Protected resource               Data
  09e8d1e3-92d4-426d-9ca1-3cd063ce8bb9  2024-01-12T17:54:33Z  16.103569s  Completed  rfinders@10rqc2.onmicrosoft.com  Contacts,Emails,Events
  893ef934-9403-4775-b667-09f77cd26e83  2024-01-12T17:55:22Z  5.66253s    Completed  rfinders@10rqc2.onmicrosoft.com  Emails
```

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3748

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2024-01-24 20:22:08 +00:00
Abin Simon
214d8a6030
Fixing handling of permissions for external users (#5097)
<!-- PR description-->

---

#### 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. -->
* fixes https://github.com/alcionai/corso/issues/5046

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-24 19:32:03 +00:00
Abin Simon
c526ced23e
Skip attachments without any content for events (#5110)
<!-- PR description-->

Known issue, tracking in https://github.com/alcionai/corso/issues/4772

---

#### 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
2024-01-24 18:50:51 +00:00
ashmrtn
963d0e3fef
Skip base finding steps if we don't need bases (#5066)
Minor optimization where we skip trying to find BackupBases if we know
we're going to end up dropping them anyway. This can save us from
loading all the kopia manifests only to discard the information we
pulled from them. Note that this optimization only kicks in for
backups that request no merge bases and no assist bases
("full backup")

Existing test coverage in `operations/manifests_test.go` ensures this
doesn't break base selection altogether

As this is an optimization we don't need to merge this PR if it seems
like it will make code maintenance more difficult going forward

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-24 17:05:34 +00:00
dependabot[bot]
db5b73e74d
⬆️ Bump github.com/google/uuid from 1.5.0 to 1.6.0 in /src (#5106)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.5.0 to 1.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/releases">github.com/google/uuid's releases</a>.</em></p>
<blockquote>
<h2>v1.6.0</h2>
<h2><a href="https://github.com/google/uuid/compare/v1.5.0...v1.6.0">1.6.0</a> (2024-01-16)</h2>
<h3>Features</h3>
<ul>
<li>add Max UUID constant (<a href="https://redirect.github.com/google/uuid/issues/149">#149</a>) (<a href="c58770eb49">c58770e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>fix typo in version 7 uuid documentation (<a href="https://redirect.github.com/google/uuid/issues/153">#153</a>) (<a href="016b199544">016b199</a>)</li>
<li>Monotonicity in UUIDv7 (<a href="https://redirect.github.com/google/uuid/issues/150">#150</a>) (<a href="a2b2b32373">a2b2b32</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/blob/master/CHANGELOG.md">github.com/google/uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/google/uuid/compare/v1.5.0...v1.6.0">1.6.0</a> (2024-01-16)</h2>
<h3>Features</h3>
<ul>
<li>add Max UUID constant (<a href="https://redirect.github.com/google/uuid/issues/149">#149</a>) (<a href="c58770eb49">c58770e</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>fix typo in version 7 uuid documentation (<a href="https://redirect.github.com/google/uuid/issues/153">#153</a>) (<a href="016b199544">016b199</a>)</li>
<li>Monotonicity in UUIDv7 (<a href="https://redirect.github.com/google/uuid/issues/150">#150</a>) (<a href="a2b2b32373">a2b2b32</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0f11ee6918"><code>0f11ee6</code></a> chore(master): release 1.6.0 (<a href="https://redirect.github.com/google/uuid/issues/151">#151</a>)</li>
<li><a href="16939dafc3"><code>16939da</code></a> chore(tests):  add strict monotonicity test case for uuid v7. (<a href="https://redirect.github.com/google/uuid/issues/154">#154</a>)</li>
<li><a href="016b199544"><code>016b199</code></a> fix: fix typo in version 7 uuid documentation (<a href="https://redirect.github.com/google/uuid/issues/153">#153</a>)</li>
<li><a href="1d8b6ea099"><code>1d8b6ea</code></a> ci: set token permissions to github workflows (<a href="https://redirect.github.com/google/uuid/issues/143">#143</a>)</li>
<li><a href="a2b2b32373"><code>a2b2b32</code></a> fix: Monotonicity in UUIDv7 (<a href="https://redirect.github.com/google/uuid/issues/150">#150</a>)</li>
<li><a href="c58770eb49"><code>c58770e</code></a> feat: add Max UUID constant (<a href="https://redirect.github.com/google/uuid/issues/149">#149</a>)</li>
<li>See full diff in <a href="https://github.com/google/uuid/compare/v1.5.0...v1.6.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/google/uuid&package-manager=go_modules&previous-version=1.5.0&new-version=1.6.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>
2024-01-24 15:53:48 +00:00
Hitesh Pattanayak
19148e177c
enables sharepoint lists backup and export (#5048)
enables sharepoint lists `backup` and `export`.
`restore` is enabled via `--allow-lists-restore` flag and is hidden in
CLI. So that it can be sanity-tested.

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-24 20:45:21 +05:30
Abhishek Pandey
b073c204c8
Store parent post content (#5096)
<!-- PR description-->

* Expand inReplyTo property to additionally get the parent post contents. This will be persisted as part of post data.
* This additional data will be useful for building a reply tree if we decide to do in-order restore/export in future.


---

#### 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
2024-01-24 06:36:44 +00:00
ashmrtn
5a05223e90
Use more unique data in the kopia SourceInfo for snapshots (#5093)
Use unique info for the kopia snapshot source information to help
isolate snapshots for different resources from each other. This will
come in handy both for checkpoint snapshots and regular snapshots if
kopia's retention policy happens to look for things.

Integration tests for this probably won't pass until the next PR in
the series is merged into this 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

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

#### Issue(s)

merge after:
* #5091
* #5092

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-24 02:46:57 +00:00
ashmrtn
e45b3565ad
Create a helper to go from a reason to a reason with the metadata service of the original reason (#5092)
Will be used in later PRs to help make long-running streamstore
snapshots safer to create if they ever go past the kopia checkpoint
interval

---

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

merge after:
* #5091

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-23 20:47:04 +00:00
ashmrtn
dd9bba6caa
Create helper function to go from service type to metadata service type (#5091)
Will also be used more in later PRs

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-23 19:32:25 +00:00
Keepers
d501a30761
use the tree-based drive backup by standard (#4980)
reverses the drive backup process toggle by making the tree-based backup standard, and the old, linear enumeration the toggleable fallback.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4690

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-23 18:57:11 +00:00
ashmrtn
5b4389d4e1
Update kopia, use upstream minio instead of fork (#5042)
Switch from the `custom-query-params` kopia branch in the alcion org to
the `corsostaging` kopia branch. The `corsostaging` branch was just
updated to include recent changes from the upstream kopia repo. This
allows us to stop using our custom fork of minio because upstream kopia
has updated to the version that includes the change we need

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-23 18:08:45 +00:00
Hitesh Pattanayak
8ca1a05400
generates test lists for sanity test (#5035)
generates test lists for CI sanity tests

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-23 18:16:59 +05:30
Hitesh Pattanayak
07da7f16a1
adds local sanity tests for lists (#5031)
adds local sanity tests for lists

for reference:
- `lists` do not have `folders` concept, they are directly created in a site. As a result cannot be restored to a different folder to test. Therefore they need to be created in adjacent to the 'backed-up' lists. Due to this there is a requirement of `SANITY_TEST_RESTORE_CONTAINER_PREFIX`. Using this, during restore check, this env-var is used to find restored lists.
- Similarly, `SANITY_TEST_SOURCE_CONTAINER` is also used a prefix matcher to filter created test lists
- When exported, lists are stored in local into the provided directory as `<SANITY_TEST_RESTORE_CONTAINER>/Lists/<list-id>/<list-id>.json`

should go in after:
- https://github.com/alcionai/corso/pull/5024
- https://github.com/alcionai/corso/pull/5026

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

#### Type of change

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

#### Issue(s)
#4754

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-23 12:08:16 +00:00
Hitesh Pattanayak
dfb4a73f56
modifies list restore handler and handles lists advanced restore (#5024)
- includes GetList in list restore handler
- includes GetListsByCollisionKey in list restore handler
- updates mock list restore handler


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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-23 16:18:47 +05:30
Abhishek Pandey
90648ef564
Augment post details with recipient information (#5027)
<!-- PR description-->
Posts are always sent to the group email address, along with additional
recipients if any. Currently, we don't have a way to get the unique
recipient list for individual posts due to graph api limitations.

Store the group mail address so that we can use it to populate the 'To'
field during Post -> EML exports.


---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-23 05:18:37 +00:00
Abin Simon
deead262ae
Allow for timezone from TZ database (#5078)
<!-- PR description-->

Graph sometimes just send timezone value which are available in TZ
database. This PR makes sure that we don't always try to convert, but
check if the timezone is already in the format that we need first.

---

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

---------

Co-authored-by: zackrossman <zrossman@alcion.ai>
2024-01-22 14:11:39 -08:00
Keepers
9a4a664106
ignore drive sanitree build errors outside of target folder (#5082)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests
- [x] 💻 CI/Deployment

#### Issue(s)

* #5081

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-22 19:36:12 +00:00
Abin Simon
f1f805b3f8
Export event data for invites (#5049)
<!-- 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/5039

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-22 05:58:49 +00:00
Abin Simon
6d2d9c0099
Log more clues for export operations (#5068)
<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-22 04:36:52 +00:00
Keepers
89a6a76630
fix item property selection when getting drive items (#5077)
we already select these properties when paging drive items, we just missed the configuration on per-item GETs.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-21 06:43:27 +00:00
ashmrtn
a6ec08375f
Fix in-place contacts restore when restore destination is empty (#5053)
Fix bug where we tried to create folders with an empty display name
when the user did a restore with `/` or `""` as the restore destination
for contacts

This PR is safe with the current flow for backing up contact folders
because nested folders aren't backed up at all (at least nesting beyond
the first level). It is unclear, though possible, that this patch will
continue to work if we backup nested contact folders

Also adds basic smoke tests for this issue for all exchange data types

---

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

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-18 23:50:50 +00:00
dependabot[bot]
916322addd
⬆️ Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.4.0 to 1.5.1 in /src (#5056)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.4.0 to 1.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p>
<blockquote>
<h2>sdk/azidentity/v1.5.1</h2>
<h2>1.5.1 (2024-01-17)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li><code>InteractiveBrowserCredential</code> handles <code>AdditionallyAllowedTenants</code> correctly</li>
</ul>
<h2>sdk/azidentity/v1.5.0</h2>
<h2>1.5.0 (2024-01-16)</h2>
<h3>Breaking Changes</h3>
<blockquote>
<p>These changes affect only code written against a beta version such as v1.5.0-beta.1</p>
</blockquote>
<ul>
<li>Removed persistent token caching. It will return in v1.6.0-beta.1</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li>Credentials now preserve MSAL headers e.g. X-Client-Sku</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>Upgraded dependencies</li>
</ul>
<h2>sdk/internal/v1.5.1</h2>
<h2>1.5.1 (2023-12-06)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li>Recording will restore the original scheme/host after making a successful HTTP(s) call.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0270c003ff"><code>0270c00</code></a> Refactor 4bc279bfefcf94d2049aee9801efd418a12e0314 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22111">#22111</a>)</li>
<li><a href="12830d02cb"><code>12830d0</code></a> Prep internal for release (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22110">#22110</a>)</li>
<li><a href="4bc279bfef"><code>4bc279b</code></a> Restore scheme/host when recording HTTP(S) (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22102">#22102</a>)</li>
<li><a href="f8be4a3c0b"><code>f8be4a3</code></a> suffix .go (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22096">#22096</a>)</li>
<li><a href="12712c9342"><code>12712c9</code></a> Add AzureCLICredentialOptions.Subscription (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/21962">#21962</a>)</li>
<li><a href="c85cf6cb8c"><code>c85cf6c</code></a> Add docs on writing testable examples (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22084">#22084</a>)</li>
<li><a href="8404d16d88"><code>8404d16</code></a> Add CODEOWNERS linter baseline error file (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22083">#22083</a>)</li>
<li><a href="943ecbb1dd"><code>943ecbb</code></a> Sync eng/common directory with azure-sdk-tools for PR 7346 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22063">#22063</a>)</li>
<li><a href="c23f22035a"><code>c23f220</code></a> Lets not treat https code 401 as broken link (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22072">#22072</a>)</li>
<li><a href="0d3efbd9bb"><code>0d3efbd</code></a> Sync eng/common directory with azure-sdk-tools for PR 7334 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22068">#22068</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/Azure/azure-sdk-for-go/compare/sdk/azcore/v1.4.0...sdk/internal/v1.5.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/Azure/azure-sdk-for-go/sdk/azidentity&package-manager=go_modules&previous-version=1.4.0&new-version=1.5.1)](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>
2024-01-18 22:31:23 +00:00
dependabot[bot]
6ab0ae2216
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.29.0 to 1.30.0 in /src (#5055)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.29.0 to 1.30.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.30.0]- 2024-01-17</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="59c6b20d2a"><code>59c6b20</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/646">#646</a>)</li>
<li><a href="a80c224fcc"><code>a80c224</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/647">#647</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="12659ec0c6"><code>12659ec</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.3 to 1.5.4</li>
<li><a href="7b266d8a37"><code>7b266d8</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/645">#645</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="d9c02c9793"><code>d9c02c9</code></a> Bump github.com/microsoft/kiota-serialization-json-go</li>
<li><a href="f10f79f009"><code>f10f79f</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/636">#636</a>)</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.29.0...v1.30.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.29.0&new-version=1.30.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>
2024-01-18 21:51:06 +00:00
dependabot[bot]
68655ac09b
⬆️ Bump autoprefixer from 10.4.16 to 10.4.17 in /website (#5058)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.16 to 10.4.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/autoprefixer/releases">autoprefixer's releases</a>.</em></p>
<blockquote>
<h2>10.4.17</h2>
<ul>
<li>Fixed <code>user-select: contain</code> prefixes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md">autoprefixer's changelog</a>.</em></p>
<blockquote>
<h2>10.4.17</h2>
<ul>
<li>Fixed <code>user-select: contain</code> prefixes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="46cd2cccab"><code>46cd2cc</code></a> Release 10.4.17 version</li>
<li><a href="2738f72023"><code>2738f72</code></a> Update dependencies</li>
<li><a href="b0a4007c49"><code>b0a4007</code></a> Fix user-select: contain</li>
<li><a href="1db31f0e6d"><code>1db31f0</code></a> Update dependencies</li>
<li>See full diff in <a href="https://github.com/postcss/autoprefixer/compare/10.4.16...10.4.17">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=autoprefixer&package-manager=npm_and_yarn&previous-version=10.4.16&new-version=10.4.17)](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>
2024-01-18 05:52:49 +00:00
dependabot[bot]
a15db57b00
⬆️ Bump sass from 1.69.7 to 1.70.0 in /website (#5057)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.7 to 1.70.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.70.0</h2>
<p>To install Sass 1.70.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>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Add a <code>sass.initCompiler()</code> function that returns a <code>sass.Compiler</code> object which supports <code>compile()</code> and <code>compileString()</code> methods with the same API as the global Sass object. On the Node.js embedded host, each <code>sass.Compiler</code> object uses a single long-lived subprocess, making compiling multiple stylesheets much more efficient.</p>
</li>
<li>
<p>Add a <code>sass.initAsyncCompiler()</code> function that returns a <code>sass.AsyncCompiler</code> object which supports <code>compileAsync()</code> and <code>compileStringAsync()</code> methods with the same API as the global Sass object. On the Node.js embedded host, each <code>sass.AsynCompiler</code> object uses a single long-lived subprocess, making compiling multiple stylesheets much more efficient.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Support the <code>CompileRequest.silent</code> field. This allows compilations with no logging to avoid unnecessary request/response cycles.</p>
</li>
<li>
<p>The Dart Sass embedded compiler now reports its name as &quot;dart-sass&quot; rather than &quot;Dart Sass&quot;, to match the JS API's <code>info</code> field.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1700">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.70.0</h2>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Add a <code>sass.initCompiler()</code> function that returns a <code>sass.Compiler</code> object
which supports <code>compile()</code> and <code>compileString()</code> methods with the same API as
the global Sass object. On the Node.js embedded host, each <code>sass.Compiler</code>
object uses a single long-lived subprocess, making compiling multiple
stylesheets much more efficient.</p>
</li>
<li>
<p>Add a <code>sass.initAsyncCompiler()</code> function that returns a <code>sass.AsyncCompiler</code>
object which supports <code>compileAsync()</code> and <code>compileStringAsync()</code> methods with
the same API as the global Sass object. On the Node.js embedded host, each
<code>sass.AsynCompiler</code> object uses a single long-lived subprocess, making
compiling multiple stylesheets much more efficient.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Support the <code>CompileRequest.silent</code> field. This allows compilations with no
logging to avoid unnecessary request/response cycles.</p>
</li>
<li>
<p>The Dart Sass embedded compiler now reports its name as &quot;dart-sass&quot; rather
than &quot;Dart Sass&quot;, to match the JS API's <code>info</code> field.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="076414d3e7"><code>076414d</code></a> [Shared Resources] dart-sass implementation (<a href="https://redirect.github.com/sass/dart-sass/issues/2134">#2134</a>)</li>
<li><a href="0d91c92dfb"><code>0d91c92</code></a> Support CompileRequest.silent of embedded protocol (<a href="https://redirect.github.com/sass/dart-sass/issues/2160">#2160</a>)</li>
<li><a href="b263a72608"><code>b263a72</code></a> Use implementation name dart-sass for VersionResponse (<a href="https://redirect.github.com/sass/dart-sass/issues/2156">#2156</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.69.7...1.70.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.69.7&new-version=1.70.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>
2024-01-18 05:45:46 +00:00
Keepers
232ebba13a
catch basic notFound graph errors (#5052)
make the NotFound error comparison more lenient so that it catches the broader set of not-found error responses from graph.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-17 22:57:15 +00:00
ashmrtn
b8b1299514
Cleanup immutable ID config passing (#5013)
This value was present in the control.Options in the struct and
passed as a parameter. This PR removes the parameter so it's clear
the control.Options one is used

---

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

* #5012

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-17 00:51:11 +00:00
Keepers
6e50d5216e
remove builder.toServicePath from paths (#5028)
path.Build produces the same result with more standard and centralized behavior.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #4025

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-16 16:42:49 +00:00
dependabot[bot]
ec35ea9b62
⬆️ Bump mermaid from 10.6.1 to 10.7.0 in /website (#5038)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.6.1 to 10.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>v10.7.0</h2>
<h1>Release Notes</h1>
<ul>
<li>3952 lexical ids (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5028">#5028</a>) <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a></li>
<li>Add new Atlassian integrations (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5021">#5021</a>) <a href="https://github.com/nashtechlabs"><code>@​nashtechlabs</code></a></li>
<li>Adds Unison programming language to community integrations list (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5180">#5180</a>) <a href="https://github.com/rlmark"><code>@​rlmark</code></a></li>
<li>Bump GitHub workflow actions to latest versions (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5026">#5026</a>) <a href="https://github.com/deining"><code>@​deining</code></a></li>
<li>Changes to .prettierignore (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5109">#5109</a>) <a href="https://github.com/FutzMonitor"><code>@​FutzMonitor</code></a></li>
<li>Chore: Typo fixed in multiple files (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4947">#4947</a>) <a href="https://github.com/SusheelThapa"><code>@​SusheelThapa</code></a></li>
<li>DOCS: update Flowchart page  (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5169">#5169</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>DOCS: update announcement bar (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5193">#5193</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Docs: Ecosystem section pages - verbiage updates (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5124">#5124</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Docs: Update latest news (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5147">#5147</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Docs: add Mermaid for Slack integration (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4824">#4824</a>) <a href="https://github.com/JackuB"><code>@​JackuB</code></a></li>
<li>Docs: add latest blog post - JetBrains extension (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5158">#5158</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Docs: update Latest News section (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5048">#5048</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Documentation: clarify sentence (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5025">#5025</a>) <a href="https://github.com/deining"><code>@​deining</code></a></li>
<li>Fix issue with generic class not rendering (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5098">#5098</a>) <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a></li>
<li>Holiday 2023 promo (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5080">#5080</a>) <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a></li>
<li>Referenced the PmWiki's Cookbook recipe enabling MermaidJs schematics… (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5085">#5085</a>) <a href="https://github.com/d-faure"><code>@​d-faure</code></a></li>
<li>Release/10.7.0 (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5188">#5188</a>) <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a></li>
<li>Update NiceGuy.io links in integrations-community.md (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5120">#5120</a>) <a href="https://github.com/Abrifq"><code>@​Abrifq</code></a></li>
<li>Update all minor dependencies (minor) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5047">#5047</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>Update all patch dependencies (patch) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5046">#5046</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>Update all patch dependencies (patch) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5033">#5033</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>Update generics docs (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5130">#5130</a>) <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a></li>
<li>Update index.md (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5012">#5012</a>) <a href="https://github.com/StefonSimmons"><code>@​StefonSimmons</code></a></li>
<li>Update integrations-community.md (Add Codemia to the list of productivity tools using Mermaid) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5189">#5189</a>) <a href="https://github.com/markqian"><code>@​markqian</code></a></li>
<li>Updated README with expandable table of content. (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4961">#4961</a>) <a href="https://github.com/claesgill"><code>@​claesgill</code></a></li>
<li>add links to make it easier (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4952">#4952</a>) <a href="https://github.com/ajdamico"><code>@​ajdamico</code></a></li>
<li>bug: <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4905">#4905</a> change shiki theme to github-light (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4924">#4924</a>) <a href="https://github.com/raiman264"><code>@​raiman264</code></a></li>
<li>build(deps-dev): bump vite from 4.4.9 to 4.4.12 (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5115">#5115</a>) <a href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
<li>chore(deps): update all minor dependencies (minor) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5172">#5172</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>chore(deps): update all minor dependencies (minor) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5131">#5131</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>chore(deps): update all minor dependencies (minor) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5099">#5099</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>chore(deps): update all minor dependencies (minor) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5071">#5071</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>chore(deps): update all patch dependencies (patch) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5070">#5070</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>chore(deps): update all patch dependencies (patch) (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5015">#5015</a>) <a href="https://github.com/renovate"><code>@​renovate</code></a></li>
<li>docs: Update classDiagram.md (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4973">#4973</a>) <a href="https://github.com/SahilNagpure07"><code>@​SahilNagpure07</code></a></li>
<li>docs: fixed typo (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4893">#4893</a>) <a href="https://github.com/0xflotus"><code>@​0xflotus</code></a></li>
<li>feat(gantt): update styles (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4930">#4930</a>) <a href="https://github.com/Mister-Hope"><code>@​Mister-Hope</code></a></li>
<li>fix: <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5064">#5064</a> Handle case when line has only one point (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5065">#5065</a>) <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a></li>
<li>fix: getMessageAPI so it considers entity codes (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5002">#5002</a>) <a href="https://github.com/ad1992"><code>@​ad1992</code></a></li>
<li>fix: render the participants in same order as they are created (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5017">#5017</a>) <a href="https://github.com/ad1992"><code>@​ad1992</code></a></li>
<li>fix: target blank removed from anchor tag (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4933">#4933</a>) <a href="https://github.com/REVERB283"><code>@​REVERB283</code></a></li>
<li>prevent-inherited-lineheights-on-edgeterminal-4083 (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4915">#4915</a>) <a href="https://github.com/Patronud"><code>@​Patronud</code></a></li>
</ul>
<h2>🚀 Features</h2>
<ul>
<li>Added functionality to support style keyword (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/5111">#5111</a>) <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="dc857f804e"><code>dc857f8</code></a> Draft release on master</li>
<li><a href="0bd2340a33"><code>0bd2340</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5188">#5188</a> from mermaid-js/release/10.7.0</li>
<li><a href="d972ddd932"><code>d972ddd</code></a> docs: Add release version</li>
<li><a href="54307bb0f4"><code>54307bb</code></a> Merge branch 'develop' of github.com:mermaid-js/mermaid into release/10.7.0</li>
<li><a href="b3fa9167a0"><code>b3fa916</code></a> Merge branches 'master' and 'release/10.7.0' of github.com:mermaid-js/mermaid...</li>
<li><a href="7508d9adc5"><code>7508d9a</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5198">#5198</a> from mermaid-js/revert-5017-bug/4946-fix-svg-order-s...</li>
<li><a href="d91b3ce857"><code>d91b3ce</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5197">#5197</a> from mermaid-js/revert-5041-feature/4935_subgraph-ti...</li>
<li><a href="11542b3b5d"><code>11542b3</code></a> Revert &quot;fix: render the participants in same order as they are created&quot;</li>
<li><a href="b46da49f85"><code>b46da49</code></a> Revert &quot;Feature/4935 subgraph title margin config option&quot;</li>
<li><a href="0e105afbf9"><code>0e105af</code></a> Fix typo</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.6.1...v10.7.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.6.1&new-version=10.7.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>
2024-01-16 05:07:53 +00:00
Abin Simon
d0d661398c
Fix nightly user not found tests (#5034)
Similar to https://github.com/alcionai/corso/pull/4990
Change due to https://github.com/alcionai/corso/pull/5017

<!-- 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
- [ ]  Unit test
- [x] 💚 E2E
2024-01-15 10:29:56 +00:00
dependabot[bot]
b5343f2114
⬆️ Bump cachix/cachix-action from 13 to 14 (#5033)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 13 to 14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cachix/cachix-action/releases">cachix/cachix-action's releases</a>.</em></p>
<blockquote>
<h2>cachix-action-v14</h2>
<p><a href="https://blog.cachix.org/posts/2024-01-12-cachix-v1-7/">https://blog.cachix.org/posts/2024-01-12-cachix-v1-7/</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="18cf96c7c9"><code>18cf96c</code></a> Merge pull request <a href="https://redirect.github.com/cachix/cachix-action/issues/166">#166</a> from cachix/feature/daemon</li>
<li><a href="467b7ad67e"><code>467b7ad</code></a> daemon: fix support check in post run</li>
<li><a href="c9fc59c798"><code>c9fc59c</code></a> Merge pull request <a href="https://redirect.github.com/cachix/cachix-action/issues/161">#161</a> from cachix/feature/daemon</li>
<li><a href="e54c44ceb8"><code>e54c44c</code></a> daemon: drop latest daemon installer</li>
<li><a href="3a94faeceb"><code>3a94fae</code></a> daemon: update tests</li>
<li><a href="a7c8acb335"><code>a7c8acb</code></a> daemon: add even more logging to trusted user logic</li>
<li><a href="11a95a781d"><code>11a95a7</code></a> daemon: resolve promise</li>
<li><a href="608ce1e442"><code>608ce1e</code></a> daemon: add debugging logs to trusted user logic</li>
<li><a href="711a732439"><code>711a732</code></a> daemon: fix reading trusted-users</li>
<li><a href="8426524a2b"><code>8426524</code></a> daemon: check for credentials early</li>
<li>Additional commits viewable in <a href="https://github.com/cachix/cachix-action/compare/v13...v14">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/cachix-action&package-manager=github_actions&previous-version=13&new-version=14)](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>
2024-01-15 07:12:44 +00:00
dependabot[bot]
b7262b4fdd
⬆️ Bump cachix/install-nix-action from 24 to 25 (#5032)
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 24 to 25.
<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-v25</h2>
<p>Nix 2.19.2</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6004951b18"><code>6004951</code></a> Nix: 2.19.1 -&gt; 2.19.2</li>
<li>See full diff in <a href="https://github.com/cachix/install-nix-action/compare/v24...v25">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=24&new-version=25)](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>
2024-01-15 06:18:48 +00:00
Hitesh Pattanayak
8989fcd7cd
handles hyperlink columns and fields (#4971)
Hyperlink column of a list item is not identifiable from GRAPH's
response.
Hence this is a workaround to handle such fields until a column
definition is introduced for `Hyperlink`.

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-13 13:07:28 +05:30
Hitesh Pattanayak
06afd53660
handles location columns and fields (#4970)
Location column of a list item is not identifiable from GRAPH's
response.
Hence this is a maneouver to handle such fields until a column
definition is introduced for `Location`.

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E

---------

Co-authored-by: aviator-app[bot] <48659329+aviator-app[bot]@users.noreply.github.com>
2024-01-13 11:35:28 +05:30
Aarti Jivrajani
b459d27cc7
Fix typo in website's developer documentation (#5029)
---

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [X] 🗺️ Documentation

#### 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
2024-01-13 00:21:09 +00:00
Keepers
1e2bf61fd8
deduplicate sortFlags toggles (#5019)
No logic changes, just removing a toggle that's already been set.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #2988

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-13 00:07:54 +00:00
Keepers
dab53502ae
minor logging and cli output tweaks (#5016)
just touchups for supportability and tracking, plus a ux tweak here and there.  No real logic changes.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-12 22:25:07 +00:00
Keepers
8c2d7c3c18
log api call start-end times (#5025)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
2024-01-12 20:53:25 +00:00
Abin Simon
6beb774ba8
Enable events export (#5015)
<!-- PR description-->

---

#### 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: --->
- [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. -->
* closes https://github.com/alcionai/corso/issues/3890

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-12 20:06:50 +00:00
Keepers
9aa32d2755
allow groups to have no display name (#5020)
relax conditions on groups by allowing them to have an empty display name.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* Fixes #4918

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2024-01-12 19:16:35 +00:00
Abin Simon
722c69b3cc
Generate text in case of utf8 descriptions (#5014)
The idea is to mimic the format in which graph convert html into text when generating ics which gets embedded into eml file.

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-12 18:35:46 +00:00
Hitesh Pattanayak
c43ad6c517
get lists with collision key (#5009)
gets lists with collision key

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-12 17:50:54 +00:00
Hitesh Pattanayak
e16d4c5bd9
select list by name while export and restore (#4999)
selects list by name while export and restore

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 
#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-12 15:54:58 +00:00
Abin Simon
985220562c
Few more fixes to ics export (#5004)
<!-- 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/3890

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-12 14:28:25 +00:00
Abin Simon
da8466ae0b
Fix handling of recurring events with end date (#4997)
Previously we were not accurately handling the end date of recurring
events. This was because we treated end date to be start of the day
instead of the end of day.
<!-- 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/3890

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-12 12:25:27 +00:00
Abin Simon
303b8c31ce
Cancelled and modified events in ics export (#4996)
<!-- 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/3890

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-12 10:41:10 +00:00
dependabot[bot]
7f0b5ebf34
⬆️ Bump golang.org/x/tools from 0.16.1 to 0.17.0 in /src (#5021)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.16.1 to 0.17.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="0b1f1d4bc2"><code>0b1f1d4</code></a> gopls/internal/lsp/cache: (re-)ensure clean shutdown</li>
<li><a href="706525de51"><code>706525d</code></a> gopls/internal/lsp/source/completion: support postfix completion (iferr,</li>
<li><a href="581c0b357f"><code>581c0b3</code></a> gopls/internal/lsp/source: add receiver name to stubbed methods</li>
<li><a href="c95fa0ff4c"><code>c95fa0f</code></a> gopls/internal/test: skip marker tests on darwin builders if -short</li>
<li><a href="25a0e9d3e3"><code>25a0e9d</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="c9c95f97fd"><code>c9c95f9</code></a> internal/refactor/inline: improve a confusing error message</li>
<li><a href="ba8672b53f"><code>ba8672b</code></a> go/analysis/passes/unusedresult: add functions from slices package</li>
<li><a href="3e8a0a3b08"><code>3e8a0a3</code></a> gopls/internal/lsp/cache: address additional comments from CL 553095</li>
<li><a href="920d665b99"><code>920d665</code></a> gopls/internal/cmd: factor three loops in fix subcommand</li>
<li><a href="782573673a"><code>7825736</code></a> gopls/internal/lsp/cache: simplify critical errors</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.16.1...v0.17.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.16.1&new-version=0.17.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>
2024-01-12 07:03:19 +00:00
Keepers
1694581e26
make a not found core error (#4975)
make a canonical 'not found' error for our core sentinels. This replaces the graph.DeletedInFlight error, which acted as an interpretation of "not found".

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #4685

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-12 01:29:39 +00:00
Niraj Tolia
940d6e8245
Update Corso website to reflect SP and Teams status (#5011)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🗺️ Documentation
2024-01-11 22:45:35 +00:00
Keepers
279a6dab3c
normalize observe usage, ensure deferred closers (#5006)
some housecleaning before reviewing deadlock issues

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
2024-01-11 22:42:10 +00:00
Hitesh Pattanayak
ad783172b7
refactors post list to accept deseriallized stored list (#5008)
refactors post list to accept deseriallized stored list

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-11 13:52:48 +00:00
Abhishek Pandey
26e851ed01
Reduce graph adapter & http wrapper test runtime (#5002)
<!-- PR description-->
Another retry related optimization. This PR reduces `TestGraphIntgSuite/TestAdapterWrap_retriesConnectionClose` runtime from 150sec to 0.7sec.


---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2024-01-11 00:25:44 +00:00
ashmrtn
72cfd3c4e5
Pull in latest kiota json version (#5007)
New version has fix for serializing strings. It should now use the golang standard library to serialize things.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-10 20:01:04 +00:00
Keepers
b1af13b7b6
centralize core err interpretation (#4972)
now that we have a core error library, we can start swapping out the percolation of graph api errors with core error sentinels.  This PR begins that process by adding a centralized transformer to the graph service handlers that ensures all calls produce the same set of core errors according to some standard categorizations. This is just an initial step, and does not transfer all graph errors into core sentinels.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4685 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-10 17:25:25 +00:00
Abhishek Pandey
fad3dfe769
Download attachments for group mailbox posts (#4992)
<!-- PR description-->

* Attachment download needed an expand operation. Added that. 
* Added test coverage with gock. Tested with manual backup of posts which contain attachments(embedded/non-embedded). We can't add e2e tests with attachments, since API to create new conversations requires delegated access.
* Note that https://github.com/alcionai/corso/issues/4991 is still an open item. We don't have a resolution for it right now, since attachment endpoint requires delegated token. Defaulting to let the backup fail for "too many attachments" error case. We don't know yet if we'd see that with group mailboxes, and whether it'd be the same error that we saw with exchange (recurring 503s).
---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2024-01-10 04:49:04 +00:00
Abhishek Pandey
dbac8a9fbf
Add retries for transient graph 400 "invalidRequest" errors (#4993)
<!-- PR description-->

* Adding a retry for 400 "invalidRequest" errors. Restricting it to GET requests to limit the scope of the fix.
* Retrying at adapter wrapper `Send` level instead of doing it in retry middleware. If we do it in middleware, we'll have to resort to a string search of "invalidRequest" in the http response, which is not the best way. kiota-http nicely parses the http response into an odata error after the request has finished. So doing retry after that in adapter wrapper `Send` is better as we have better guarantees on it being an odata error type. 
* Also added a small test optimization to reduce test run time.

---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2024-01-10 03:17:50 +00:00
dependabot[bot]
a40807aa18
⬆️ Bump follow-redirects from 1.15.3 to 1.15.4 in /website (#5000)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
<details>
<summary>Commits</summary>
<ul>
<li><a href="65858205e5"><code>6585820</code></a> Release version 1.15.4 of the npm package.</li>
<li><a href="7a6567e16d"><code>7a6567e</code></a> Disallow bracketed hostnames.</li>
<li><a href="05629af696"><code>05629af</code></a> Prefer native URL instead of deprecated url.parse.</li>
<li><a href="1cba8e85fa"><code>1cba8e8</code></a> Prefer native URL instead of legacy url.resolve.</li>
<li><a href="72bc2a4229"><code>72bc2a4</code></a> Simplify _processResponse error handling.</li>
<li><a href="3d42aecdca"><code>3d42aec</code></a> Add bracket tests.</li>
<li><a href="bcbb096b32"><code>bcbb096</code></a> Do not directly set Error properties.</li>
<li>See full diff in <a href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.3&new-version=1.15.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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2024-01-09 22:32:59 +00:00
dependabot[bot]
7718f8519e
⬆️ Bump golang.org/x/net from 0.19.0 to 0.20.0 in /src (#4994)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.19.0 to 0.20.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="cb5b10f0bb"><code>cb5b10f</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="689bbc7005"><code>689bbc7</code></a> quic: deflake TestStreamsCreateConcurrency</li>
<li><a href="f12db26b1c"><code>f12db26</code></a> internal/quic/cmd/interop: use wget --no-verbose in Dockerfile</li>
<li><a href="c136d0c937"><code>c136d0c</code></a> quic: avoid panic when PTO expires and implicitly-created streams exist</li>
<li><a href="f9726a9e4a"><code>f9726a9</code></a> quic: fix packet size logging</li>
<li><a href="c337daf7db"><code>c337daf</code></a> quic: enable qlog output in tests</li>
<li><a href="2b416c3c96"><code>2b416c3</code></a> quic/qlog: create log files with O_EXCL</li>
<li><a href="1e59a7e58c"><code>1e59a7e</code></a> quic/qlog: correctly write negative durations</li>
<li><a href="b0eb4d6c94"><code>b0eb4d6</code></a> quic: compute pnum len from max ack received, not sent</li>
<li><a href="b952594c26"><code>b952594</code></a> quic: fix data race in connection close</li>
<li>Additional commits viewable in <a href="https://github.com/golang/net/compare/v0.19.0...v0.20.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.19.0&new-version=0.20.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>
2024-01-09 21:56:56 +00:00
ashmrtn
584fc21d36
Fixup a few calls for adding clues to errors (#4989)
Called functions add clues so there's no need to add them ourselves.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-08 23:04:35 +00:00
Keepers
d953ca6c41
fix nightly user not found tests (#4990)
Tests got out of date due to brittle comparisons on error message strings.  No good solution for the brittleness, unfortunately.  But we can fix the failure.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2024-01-08 22:10:05 +00:00
Keepers
af64b487ac
swap pkg/metrics to threadsafe map (#4899)
<!-- PR description-->

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💚 E2E
2024-01-08 20:22:54 +00:00
ashmrtn
443aed639c
Extra logging and clues context for folder caches (#4988)
Add extra logging and clues to errors when populating container caches for Exchange. This could help track down some things related to time spent getting data.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-08 19:37:02 +00:00
dependabot[bot]
2279d612d9
⬆️ Bump tailwindcss from 3.4.0 to 3.4.1 in /website (#4984)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.0 to 3.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.4.1</h2>
<h3>Fixed</h3>
<ul>
<li>Don't remove keyframe stops when using important utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12639">#12639</a>)</li>
<li>Don't add spaces to gradients and grid track names when followed by <code>calc()</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12704">#12704</a>)</li>
<li>Restore old behavior for <code>class</code> dark mode strategy (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add new <code>selector</code> and <code>variant</code> strategies for dark mode (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Support <code>rtl</code> and <code>ltr</code> variants on same element as <code>dir</code> attribute (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/v3.4.1/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.4.1] - 2014-01-05</h2>
<h3>Fixed</h3>
<ul>
<li>Don't remove keyframe stops when using important utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12639">#12639</a>)</li>
<li>Don't add spaces to gradients and grid track names when followed by <code>calc()</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12704">#12704</a>)</li>
<li>Restore old behavior for <code>class</code> dark mode strategy (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add new <code>selector</code> and <code>variant</code> strategies for dark mode (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Support <code>rtl</code> and <code>ltr</code> variants on same element as <code>dir</code> attribute (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12717">#12717</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7361468f77"><code>7361468</code></a> 3.4.1</li>
<li><a href="508e7f2349"><code>508e7f2</code></a> Fix code style</li>
<li><a href="3fb57e55ab"><code>3fb57e5</code></a> Restore old behavior for <code>class</code> dark mode, add new <code>selector</code> and <code>variant</code> ...</li>
<li><a href="78fedd5cc0"><code>78fedd5</code></a> Don't add spaces to gradients and grid track names when followed by <code>calc()</code> ...</li>
<li><a href="08a0a6c966"><code>08a0a6c</code></a> Update changelog</li>
<li><a href="88907757c1"><code>8890775</code></a> Don't remove keyframe stops when using important utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12639">#12639</a>)</li>
<li><a href="f33d6a5d75"><code>f33d6a5</code></a> Update CI</li>
<li>See full diff in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.4.0...v3.4.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.4.0&new-version=3.4.1)](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>
2024-01-08 19:01:14 +00:00
Abin Simon
a3d573973e
Drop GroupsMap in favor of api.GetAllIDsAndNames (#4967)
Follow up from https://github.com/alcionai/corso/pull/4955#discussion_r1440922835

---

#### 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
- [x] 💚 E2E
2024-01-08 14:19:33 +00:00
Abin Simon
ca50b1e908
Filter out non existent entities in permissions and link shares (#4955)
<!-- 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
2024-01-08 13:44:25 +00:00
Hitesh Pattanayak
8067c72904
sets list item fields based on columns created (#4969)
sets list item fields based on columns created while list creation

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-08 12:54:29 +00:00
Abin Simon
35ac37313d
Return proper error when backups are empty for details command (#4968)
<!-- PR description-->

---

#### 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
- [ ] 🗺️ 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
- [x]  Unit test
- [ ] 💚 E2E
2024-01-08 11:11:02 +00:00
Niraj Tolia
1f97c96285
Upgrade Docusaurus to 3.1.0 (#4986)
Dependabot has done a partial upgrade with TBD behavior. This upgrades everything together.

---

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

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2024-01-08 10:35:43 +00:00
Abin Simon
a52b085cea
Update handling of permissions restore failures (#4954)
- All permissions failures are now recoverable to the granularity of a single permission or link share
- Failure to delete child permissions because the permission was not restored on parent will now not produce any warnings

---

#### 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
2024-01-08 10:32:41 +00:00
dependabot[bot]
ffbcbe8907
⬆️ Bump @docusaurus/module-type-aliases from 3.0.1 to 3.1.0 in /website (#4985)
Bumps [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) from 3.0.1 to 3.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/module-type-aliases</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.1.0 (2024-01-05)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9528">#9528</a> feat(core): make broken link checker detect broken anchors - add <code>onBrokenAnchors</code> config (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9674">#9674</a> feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9671">#9671</a> feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9624">#9624</a> feat: siteConfig.markdown.parseFrontMatter hook (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9610">#9610</a> feat(core): enable port configuration via environment variable (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9704">#9704</a> fix(theme): allow empty code blocks and live playgrounds (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9696">#9696</a> fix(create-docusaurus): fix init template code blocks, and little improvements (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-pwa</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9668">#9668</a> fix(pwa-plugin): upgrade workbox (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9648">#9648</a> fix(cli): output help when no conventional config + no subcommand (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9631">#9631</a> fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9617">#9617</a> fix(utils): Markdown link replacement with &lt;&gt; but no spaces (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9612">#9612</a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components (<a href="https://github.com/axmmisaka"><code>@​axmmisaka</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9581">#9581</a> fix(content-blog): add baseUrl for author.image_url (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9477">#9477</a> fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (<a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9335">#9335</a> refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔧 Maintenance</h4>
<ul>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9604">#9604</a> chore: add lint autofix CI job (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 8</h4>
<ul>
<li>Janessa Garrow (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
<li>Joshua Chen (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
<li>Simen Bekkhus (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li>Tatsunori Uchino (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/module-type-aliases</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.1.0 (2024-01-05)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9528">#9528</a> feat(core): make broken link checker detect broken anchors - add <code>onBrokenAnchors</code> config (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9674">#9674</a> feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9671">#9671</a> feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9624">#9624</a> feat: siteConfig.markdown.parseFrontMatter hook (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9610">#9610</a> feat(core): enable port configuration via environment variable (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9704">#9704</a> fix(theme): allow empty code blocks and live playgrounds (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9696">#9696</a> fix(create-docusaurus): fix init template code blocks, and little improvements (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-pwa</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9668">#9668</a> fix(pwa-plugin): upgrade workbox (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9648">#9648</a> fix(cli): output help when no conventional config + no subcommand (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9631">#9631</a> fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9617">#9617</a> fix(utils): Markdown link replacement with &lt;&gt; but no spaces (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9612">#9612</a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components (<a href="https://github.com/axmmisaka"><code>@​axmmisaka</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9581">#9581</a> fix(content-blog): add baseUrl for author.image_url (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9477">#9477</a> fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (<a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9335">#9335</a> refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔧 Maintenance</h4>
<ul>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9604">#9604</a> chore: add lint autofix CI job (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 8</h4>
<ul>
<li>Janessa Garrow (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
<li>Joshua Chen (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a5e675821f"><code>a5e6758</code></a> v3.1.0</li>
<li><a href="760a5ae533"><code>760a5ae</code></a> feat(core): make broken link checker detect broken anchors - add `onBrokenAnc...</li>
<li><a href="ab6147a99b"><code>ab6147a</code></a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components ...</li>
<li><a href="a2e05d2118"><code>a2e05d2</code></a> chore: release Docusaurus 3.0.1 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases/issues/9596">#9596</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.1.0/packages/docusaurus-module-type-aliases">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/module-type-aliases&package-manager=npm_and_yarn&previous-version=3.0.1&new-version=3.1.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>
2024-01-08 06:05:09 +00:00
dependabot[bot]
d0530e2b9c
⬆️ Bump @docusaurus/plugin-google-gtag from 3.0.1 to 3.1.0 in /website (#4981)
Bumps [@docusaurus/plugin-google-gtag](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag) from 3.0.1 to 3.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/releases"><code>@​docusaurus/plugin-google-gtag</code>'s releases</a>.</em></p>
<blockquote>
<h2>3.1.0 (2024-01-05)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9528">#9528</a> feat(core): make broken link checker detect broken anchors - add <code>onBrokenAnchors</code> config (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9674">#9674</a> feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9671">#9671</a> feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9624">#9624</a> feat: siteConfig.markdown.parseFrontMatter hook (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9610">#9610</a> feat(core): enable port configuration via environment variable (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9704">#9704</a> fix(theme): allow empty code blocks and live playgrounds (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9696">#9696</a> fix(create-docusaurus): fix init template code blocks, and little improvements (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-pwa</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9668">#9668</a> fix(pwa-plugin): upgrade workbox (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9648">#9648</a> fix(cli): output help when no conventional config + no subcommand (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9631">#9631</a> fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9617">#9617</a> fix(utils): Markdown link replacement with &lt;&gt; but no spaces (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9612">#9612</a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components (<a href="https://github.com/axmmisaka"><code>@​axmmisaka</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9581">#9581</a> fix(content-blog): add baseUrl for author.image_url (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9477">#9477</a> fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (<a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9335">#9335</a> refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔧 Maintenance</h4>
<ul>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9604">#9604</a> chore: add lint autofix CI job (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 8</h4>
<ul>
<li>Janessa Garrow (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
<li>Joshua Chen (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
<li>Simen Bekkhus (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
<li>Sébastien Lorber (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
<li>Tatsunori Uchino (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
<li><a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md"><code>@​docusaurus/plugin-google-gtag</code>'s changelog</a>.</em></p>
<blockquote>
<h2>3.1.0 (2024-01-05)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-module-type-aliases</code>, <code>docusaurus-theme-classic</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9528">#9528</a> feat(core): make broken link checker detect broken anchors - add <code>onBrokenAnchors</code> config (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-types</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9674">#9674</a> feat(mdx-loader): add support for siteConfig.markdown.remarkRehypeOptions (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9671">#9671</a> feat(theme-common): code block MagicComments support for (Visual) Basic/Batch/Fortran/COBOL/ML (<a href="https://github.com/tats-u"><code>@​tats-u</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-mdx-loader</code>, <code>docusaurus-plugin-content-blog</code>, <code>docusaurus-plugin-content-docs</code>, <code>docusaurus-plugin-content-pages</code>, <code>docusaurus-types</code>, <code>docusaurus-utils</code>, <code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9624">#9624</a> feat: siteConfig.markdown.parseFrontMatter hook (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9610">#9610</a> feat(core): enable port configuration via environment variable (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>docusaurus-theme-classic</code>, <code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9704">#9704</a> fix(theme): allow empty code blocks and live playgrounds (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>create-docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9696">#9696</a> fix(create-docusaurus): fix init template code blocks, and little improvements (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-pwa</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9668">#9668</a> fix(pwa-plugin): upgrade workbox (<a href="https://github.com/SimenB"><code>@​SimenB</code></a>)</li>
</ul>
</li>
<li><code>docusaurus</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9648">#9648</a> fix(cli): output help when no conventional config + no subcommand (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-live-codeblock</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9631">#9631</a> fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-utils</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9617">#9617</a> fix(utils): Markdown link replacement with &lt;&gt; but no spaces (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-module-type-aliases</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9612">#9612</a> fix(type-aliases): add <code>title</code> prop for imported inline SVG React components (<a href="https://github.com/axmmisaka"><code>@​axmmisaka</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-plugin-content-blog</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9581">#9581</a> fix(content-blog): add baseUrl for author.image_url (<a href="https://github.com/OzakIOne"><code>@​OzakIOne</code></a>)</li>
</ul>
</li>
<li><code>docusaurus-theme-translations</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9477">#9477</a> fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (<a href="https://github.com/c0h1b4"><code>@​c0h1b4</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>docusaurus-theme-common</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9335">#9335</a> refactor(theme-common): allow optional desktopBreakpoint param in useWindowSize (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔧 Maintenance</h4>
<ul>
<li><code>docusaurus-theme-search-algolia</code>
<ul>
<li><a href="https://redirect.github.com/facebook/docusaurus/pull/9604">#9604</a> chore: add lint autofix CI job (<a href="https://github.com/slorber"><code>@​slorber</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 8</h4>
<ul>
<li>Janessa Garrow (<a href="https://github.com/jgarrow"><code>@​jgarrow</code></a>)</li>
<li>Joshua Chen (<a href="https://github.com/Josh-Cena"><code>@​Josh-Cena</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a5e675821f"><code>a5e6758</code></a> v3.1.0</li>
<li><a href="a2e05d2118"><code>a2e05d2</code></a> chore: release Docusaurus 3.0.1 (<a href="https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-google-gtag/issues/9596">#9596</a>)</li>
<li>See full diff in <a href="https://github.com/facebook/docusaurus/commits/v3.1.0/packages/docusaurus-plugin-google-gtag">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@docusaurus/plugin-google-gtag&package-manager=npm_and_yarn&previous-version=3.0.1&new-version=3.1.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>
2024-01-08 06:00:45 +00:00
Hitesh Pattanayak
87104ce404
exports sharepoint lists (#4959)
provision to export sharepoint lists

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4752 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-08 05:57:32 +00:00
dependabot[bot]
9dbf9f3676
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.28.0 to 1.29.0 in /src (#4966)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.28.0 to 1.29.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.29.0]- 2024-01-03</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="525fbcd170"><code>525fbcd</code></a> Update changelog</li>
<li><a href="ef026b37d8"><code>ef026b3</code></a> Update changelog</li>
<li><a href="9af4fcbaf3"><code>9af4fcb</code></a> Update generated files with build 130935</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.28.0...v1.29.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.28.0&new-version=1.29.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>
2024-01-05 17:29:37 +00:00
dependabot[bot]
5388b78f03
⬆️ Bump postcss from 8.4.32 to 8.4.33 in /website (#4974)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.32 to 8.4.33.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.33</h2>
<ul>
<li>Fixed <code>NoWorkResult</code> behavior difference with normal mode (by <a href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed <code>NoWorkResult</code> usage conditions (by <a href="https://github.com/ahmdammarr"><code>@​ahmdammarr</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.33</h2>
<ul>
<li>Fixed <code>NoWorkResult</code> behavior difference with normal mode (by Romain Menke).</li>
<li>Fixed <code>NoWorkResult</code> usage conditions (by <a href="https://github.com/ahmdammarr"><code>@​ahmdammarr</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ae57d83523"><code>ae57d83</code></a> Release 8.4.33 version</li>
<li><a href="2e9d029da5"><code>2e9d029</code></a> Update dependencies</li>
<li><a href="892b269717"><code>892b269</code></a> Update size limit for new metric on brotli</li>
<li><a href="f2e7a9f900"><code>f2e7a9f</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1908">#1908</a> from ahmdammarr/refactor/safe-check-for-NoWorkResult</li>
<li><a href="c751e11ae8"><code>c751e11</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1909">#1909</a> from romainmenke/no-work-result-vs-lazy-result--inve...</li>
<li><a href="3c2fa2ad5a"><code>3c2fa2a</code></a> fix</li>
<li><a href="a4626e96d8"><code>a4626e9</code></a> failing test</li>
<li><a href="c37346d61a"><code>c37346d</code></a> refactor: check all falsy conditions of plugins and opts before returning NoW...</li>
<li>See full diff in <a href="https://github.com/postcss/postcss/compare/8.4.32...8.4.33">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.32&new-version=8.4.33)](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>
2024-01-05 05:36:55 +00:00
Keepers
79c96248f8
hide failed-items flag (#4965)
This flag is a guaranteed no-op since the error handling settings that allow for no-failure backups are not exposed in the CLI either.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-04 17:40:44 +00:00
Hitesh Pattanayak
d113fa3926
store lists previouspath (#4938)
saves previous path for lists in storage. 

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 
#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-04 13:49:33 +00:00
Keepers
26b1299927
improve CtxErr handling (#4914)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-03 20:48:10 +00:00
Abhishek Pandey
c1d0c5bb8d
Add more tests for email attachment downloads (#4830)
<!-- 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
- [ ]  Unit test
- [x] 💚 E2E
2024-01-03 19:58:51 +00:00
Keepers
6a56e32898
bump clues to latest version (#4915)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-03 19:04:38 +00:00
Keepers
971d874462
introduce errs/core (#4897)
first step towards having a centralized set of error sentinels that can be passed around corso instead of re-using low level error sentinels like those found in the graph/errors.go file.

This PR works as a standalone, and only handles the lowest hanging fruit. SDK consumers will need to change their error enum references, but all api behavior should remain the same.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4685

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2024-01-03 18:13:41 +00:00
Hitesh Pattanayak
be6cb13a7b
skip cli level tests for sharepoint lists to fix nightly tests (#4963)
skips cli level tests for sharepoint lists to fix nightly tests

Tests skipped:
- TestBackupSharepointE2ESuite/TestSharepointBackupCmd_lists
- TestBackupSharepointE2ESuite/TestSharepointBackupCmd_siteNotFound_lists (was already skipped from an earlier [PR](https://github.com/alcionai/corso/pull/4936) merge today)

Test failed but not skipped:
- TestPreparedBackupSharepointE2ESuite/TestSharepointDetailsCmd_lists  (this [commit](c87533a266) should fix this failure)

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

#### Type of change

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

#### Issue(s)
https://github.com/alcionai/corso/actions/runs/7393325015/job/20113092443

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-03 16:14:29 +00:00
Abin Simon
b47fa8b14f
Ensure that we propagate errors if available (#4964)
<!-- PR description-->

Fixed all cases where we missed propagating errors. Also added a lint rule in CI to catch it.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-03 15:38:46 +00:00
Abin Simon
b49c124512
Events export as ICS (#4958)
There are a few more pending items. I've added TODO entries for them. The PR was getting pretty big and so I thought I would address them in a followup PR.

---

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

- [ ]  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
- [ ] 🗺️ 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/3890

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-03 10:44:28 +00:00
Hitesh Pattanayak
c87533a266
fix tests referencing top level of sharepointInfo for listInfo (#4936)
fix tests referencing top level of SharepointInfo for list details instead of nested ListInfo.
also disables a test that requires list backup to be enabled in CLI level.

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

#### Type of change

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

#### Issue(s)
https://github.com/alcionai/corso/actions/runs/7312375792/job/19922878417#step:6:666

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-03 08:48:44 +00:00
Hitesh Pattanayak
7a8c96964c
ignores accessRequest list templates from backup and restore (#4957)
ignores accessRequest list templates from backup and restore

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-03 08:08:26 +00:00
dependabot[bot]
e675ca13d7
⬆️ Bump @loadable/component from 5.16.2 to 5.16.3 in /website (#4937)
Bumps [@loadable/component](https://github.com/gregberge/loadable-components) from 5.16.2 to 5.16.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/gregberge/loadable-components/blob/main/CHANGELOG.md"><code>@​loadable/component</code>'s changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/smooth-code/loadable-components/compare/v5.16.2...v5.16.3">5.16.3</a> (2023-12-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>correct react-is for mjs export; remove isValidComponent check (<a href="https://redirect.github.com/smooth-code/loadable-components/issues/991">#991</a>) (<a href="9d381c35b7">9d381c3</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8f40762051"><code>8f40762</code></a> v5.16.3</li>
<li><a href="607733caac"><code>607733c</code></a> commit size snapshot</li>
<li><a href="9d381c35b7"><code>9d381c3</code></a> fix: correct react-is for mjs export; remove isValidComponent check (<a href="https://redirect.github.com/gregberge/loadable-components/issues/991">#991</a>)</li>
<li>See full diff in <a href="https://github.com/gregberge/loadable-components/compare/v5.16.2...v5.16.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@loadable/component&package-manager=npm_and_yarn&previous-version=5.16.2&new-version=5.16.3)](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>
2024-01-03 06:00:08 +00:00
dependabot[bot]
6fb7c620be
⬆️ Bump sass from 1.69.5 to 1.69.7 in /website (#4962)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.5 to 1.69.7.
<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.69.7</h2>
<p>To install Sass 1.69.7, 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>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the x64 Dart Sass executable on ARM64 Windows.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1697">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.69.6</h2>
<p>To install Sass 1.69.6, 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>Produce better output for numbers with complex units in <code>meta.inspect()</code> and debugging messages.</p>
</li>
<li>
<p>Escape U+007F DELETE when serializing strings.</p>
</li>
<li>
<p>When generating CSS error messages to display in-browser, escape all code points that aren't in the US-ASCII region. Previously only code points U+0100 LATIN CAPITAL LETTER A WITH MACRON were escaped.</p>
</li>
<li>
<p>Provide official releases for musl LibC and for Android.</p>
</li>
<li>
<p>Don't crash when running <code>meta.apply()</code> in asynchronous mode.</p>
</li>
</ul>
<h3>JS API</h3>
<ul>
<li>Fix a bug where certain exceptions could produce <code>SourceSpan</code>s that didn't follow the documented <code>SourceSpan</code> API.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1696">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.69.7</h2>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the x64 Dart Sass executable on
ARM64 Windows.</li>
</ul>
<h2>1.69.6</h2>
<ul>
<li>
<p>Produce better output for numbers with complex units in <code>meta.inspect()</code> and
debugging messages.</p>
</li>
<li>
<p>Escape U+007F DELETE when serializing strings.</p>
</li>
<li>
<p>When generating CSS error messages to display in-browser, escape all code
points that aren't in the US-ASCII region. Previously only code points U+0100
LATIN CAPITAL LETTER A WITH MACRON were escaped.</p>
</li>
<li>
<p>Provide official releases for musl LibC and for Android.</p>
</li>
<li>
<p>Don't crash when running <code>meta.apply()</code> in asynchronous mode.</p>
</li>
</ul>
<h3>JS API</h3>
<ul>
<li>Fix a bug where certain exceptions could produce <code>SourceSpan</code>s that didn't
follow the documented <code>SourceSpan</code> API.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="006baa5642"><code>006baa5</code></a> Update the pubspec and changelog for <a href="https://redirect.github.com/sass/embedded-host-node/issues/266">sass/embedded-host-node#266</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2158">#2158</a>)</li>
<li><a href="6205eac5d1"><code>6205eac</code></a> Add wait time before update website (<a href="https://redirect.github.com/sass/dart-sass/issues/2153">#2153</a>)</li>
<li><a href="f3c7be5aff"><code>f3c7be5</code></a> Make meta.apply() an AsyncBuiltInCallable (<a href="https://redirect.github.com/sass/dart-sass/issues/2152">#2152</a>)</li>
<li><a href="1fc740db40"><code>1fc740d</code></a> Upload releases for musl-libc and android (<a href="https://redirect.github.com/sass/dart-sass/issues/2149">#2149</a>)</li>
<li><a href="6f665c1dd2"><code>6f665c1</code></a> Escape unprintable 0x7F (delete control character) (<a href="https://redirect.github.com/sass/dart-sass/issues/2144">#2144</a>)</li>
<li><a href="f5dab76b4e"><code>f5dab76</code></a> Bump dartdoc from 7.0.2 to 8.0.2 (<a href="https://redirect.github.com/sass/dart-sass/issues/2146">#2146</a>)</li>
<li><a href="4daf0b4ec1"><code>4daf0b4</code></a> Escape non-US-ASCII characters in <code>SassException.toCssString()</code> (<a href="https://redirect.github.com/sass/dart-sass/issues/2143">#2143</a>)</li>
<li><a href="cd798bfb7b"><code>cd798bf</code></a> Improve inspect() output for complex units (<a href="https://redirect.github.com/sass/dart-sass/issues/2138">#2138</a>)</li>
<li><a href="bd80c58752"><code>bd80c58</code></a> Make LazyFileSpans work in JavaScript (<a href="https://redirect.github.com/sass/dart-sass/issues/2142">#2142</a>)</li>
<li><a href="13830a50c0"><code>13830a5</code></a> Fix new recommended lints (<a href="https://redirect.github.com/sass/dart-sass/issues/2139">#2139</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/sass/dart-sass/compare/1.69.5...1.69.7">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.69.5&new-version=1.69.7)](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>
2024-01-03 05:56:41 +00:00
Abin Simon
dcff3056ff
Contacts export for exchange (#4883)
<!-- PR description-->

---

#### 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: --->
- [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. -->
* closes https://github.com/alcionai/corso/issues/3891

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2024-01-03 05:22:54 +00:00
Abhishek Pandey
aa97567dff
Add v0.18.0 changelog (#4961)
<!-- PR description-->

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2024-01-02 21:19:35 +00:00
Hitesh Pattanayak
4224a98927
disable backup of sharepoint lists (#4960)
disable backup of sharepoint lists

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2024-01-02 19:41:35 +00:00
dependabot[bot]
e43fec2de6
⬆️ Bump clsx from 2.0.0 to 2.1.0 in /website (#4956)
Bumps [clsx](https://github.com/lukeed/clsx) from 2.0.0 to 2.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/lukeed/clsx/releases">clsx's releases</a>.</em></p>
<blockquote>
<h2>v2.1.0</h2>
<h2>Features</h2>
<ul>
<li>
<p>Add new <code>clsx/lite</code> submodule for <code>string</code>-only usage: 1a49142</p>
<p><em>This is a <strong>140b</strong> version of <code>clsx</code> that is ideal for Tailwind and/or React contexts, which typically follow this <code>clsx</code> usage pattern:</em></p>
<pre lang="js"><code>clsx('foo bar', props.maybe &amp;&amp; 'conditional classes', props.className);
</code></pre>
<blockquote>
<p><strong>Important:</strong> This <code>clsx/lite</code> module <strong>ignores all non-string arguments</strong> and is therefore not a 1:1 replacement for <code>clsx</code> itself!</p>
</blockquote>
<pre lang="js"><code>import { clsx } from 'clsx';
import { clsx as lite } from 'clsx/lite';
<p>// strings-only usage is identical
clsx('foo', null, 'bar', true &amp;&amp; 'baz'); //=&gt; &quot;foo bar baz&quot;
lite('foo', null, 'bar', true &amp;&amp; 'baz'); //=&gt; &quot;foo bar baz&quot;</p>
<p>// clsx/lite ignores all non-strings
clsx('foo', { a: true, b: false, c: true }); //=&gt; &quot;foo a c&quot;
lite('foo', { a: true, b: false, c: true }); //=&gt; &quot;foo&quot;
</code></pre></p>
</li>
</ul>
<hr />
<blockquote>
<p><strong>Full Changelog</strong>: <a href="https://github.com/lukeed/clsx/compare/v2.0.1...v2.1.0">https://github.com/lukeed/clsx/compare/v2.0.1...v2.1.0</a></p>
</blockquote>
<h2>v2.0.1</h2>
<h2>Patches</h2>
<ul>
<li>(perf) Cache <code>arguments.length</code> &amp; <code>array.length</code> for 6% performance gain (<a href="https://redirect.github.com/lukeed/clsx/issues/26">#26</a>): deff09b
<em>Adds 5 bytes (+2%) for ~3% avg performance gain</em>
<em>Thank you <a href="https://github.com/jalalazimi"><code>@​jalalazimi</code></a></em></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Update module size: bf64e71</li>
<li>Update benchmark results: 855eec2, 6e3b2b9,</li>
<li>Replace <code>nyc</code> with <code>c8</code> in CI: 6e2468e</li>
<li>Update Node CI matrix: 308a238</li>
<li>Fix readme typos (<a href="https://redirect.github.com/lukeed/clsx/issues/76">#76</a>, <a href="https://redirect.github.com/lukeed/clsx/issues/82">#82</a>): 42354d3, 4c9a55d
<em>Thank you <a href="https://github.com/andipaetzold"><code>@​andipaetzold</code></a> and <a href="https://github.com/acusti"><code>@​acusti</code></a></em></li>
</ul>
<hr />
<blockquote>
<p><strong>Full Changelog</strong>: <a href="https://github.com/lukeed/clsx/compare/v2.0.0...v2.0.1">https://github.com/lukeed/clsx/compare/v2.0.0...v2.0.1</a></p>
</blockquote>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a60db12a53"><code>a60db12</code></a> 2.1.0</li>
<li><a href="1a491425ef"><code>1a49142</code></a> feat: add <code>clsx/lite</code> module</li>
<li><a href="5cac14c2c8"><code>5cac14c</code></a> 2.0.1</li>
<li><a href="855eec2e97"><code>855eec2</code></a> chore(bench): include ≠ symbol</li>
<li><a href="bf64e71018"><code>bf64e71</code></a> chore: update module size</li>
<li><a href="6e3b2b99cd"><code>6e3b2b9</code></a> chore: update benchmarks;</li>
<li><a href="554ad31e92"><code>554ad31</code></a> chore: dedicated string vs number var usage;</li>
<li><a href="deff09b0fe"><code>deff09b</code></a> chore: cache arguments/array lengths (<a href="https://redirect.github.com/lukeed/clsx/issues/26">#26</a>)</li>
<li><a href="6e2468e7db"><code>6e2468e</code></a> fix(ci): replace nyc -&gt; c8</li>
<li><a href="308a2387b8"><code>308a238</code></a> chore(ci): update node matrix</li>
<li>Additional commits viewable in <a href="https://github.com/lukeed/clsx/compare/v2.0.0...v2.1.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clsx&package-manager=npm_and_yarn&previous-version=2.0.0&new-version=2.1.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>
2024-01-01 05:19:52 +00:00
Hitesh Pattanayak
13f549c6cb
lists prefetech (#4943)
refactors sharepoint lists collection by:
- renaming `Collection` interface as `preFetchCollection` interface
- making `finishPopulation` method as independent function 
- seralizing list using `serializeContent` function

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

#### Type of change
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-30 15:08:29 +00:00
Hitesh Pattanayak
823fcdc559
skips lists with certain templates from being backed-up (#4931)
skips documentLibrary templated lists from:
- restoration
- details

but the lists with 'documentLibrary' are backed-up.
this is in addition to 'webTemplateExtensionsList' templated lists which were previously skipped from restore.

the `skipping` of lists with template 'documentLibrary' is temporary and to be enabled with correct handling.

**update:27/12/2023**
skips `documentLibrary`, `sharingLinks`, `webTemplateExtensionsList` templated lists from being backed-up altogether


site contents of `https://10rqc2.sharepoint.com/sites/CorsoCI`:
![Screenshot from 2023-12-23 20-20-45](https://github.com/alcionai/corso/assets/48874082/c31bf233-57c9-497d-bb59-2dab0ffc5dab)

backup details
```
./corso backup details sharepoint --backup 5e0a13b0-bff0-471b-8860-2aec869717b2
Logging to file: /home/hitesh/.cache/corso/logs/2023-12-23T14-52-37Z.log
Connecting to M365                               done 
Connecting to repository                     30s done 
  ID            List                                                     Items  Created               Modified            
  c7ffe2f0a275  Test List                                                0      2023-05-12T12:28:51Z  2023-05-12T12:28:51Z
  5345df87b565  Meh                                                      0      2023-05-12T12:59:50Z  2023-05-12T12:59:50Z
  cd2854591ab4  corso-restore-list_135b9067-0e19-4a5c-9475-ced51730c211  0      2023-12-11T10:25:27Z  2023-12-23T13:19:24Z
  0f56b7f450fa  corsorestorelist_newlist                                 0      2023-12-11T10:31:54Z  2023-12-11T10:31:54Z
  3a7be2fb9d50  new list                                                 0      2023-11-29T18:29:07Z  2023-11-29T18:29:07Z
  edab0c775e5e  New List Name                                            0      2023-05-12T12:39:06Z  2023-12-23T13:25:39Z
  4d7ad9b1df98  MockListing                                              0      2023-05-12T12:15:14Z  2023-12-14T06:22:36Z
  d2bdca596f75  integration-test-list                                    6      2023-11-30T06:57:01Z  2023-12-14T06:09:45Z
  c9eccc9771a3  Sharing Links                                            74     2023-06-26T07:21:31Z  2023-12-14T06:06:31Z
  5e79dcd93c92  New List Name 2                                          0      2023-05-12T12:40:15Z  2023-05-12T12:40:15Z
  6a6acbaa0d10  corsorestorelist_7f99d792-cae0-4a87-9e68-fd930f5b123e    0      2023-12-11T10:28:25Z  2023-12-23T13:19:57Z
```

restore details
```
./corso restore sharepoint --backup 5e0a13b0-bff0-471b-8860-2aec869717b2
Logging to file: /home/hitesh/.cache/corso/logs/2023-12-23T14-53-37Z.log
Connecting to M365                               done 
Connecting to repository                     26s done 
Restoring to folder Corso_Restore_23-Dec-2023_14-54-05
  
Restoring ∙ https://10rqc2.sharepoint.com/sites/CorsoCI              
Discovered 11 items in backup 5e0a13b0-bff0-471b-8860-2aec869717b2 to restore   
Enumerating items in repository             1m2s done 
Restoring data                               50s done 
Restore Complete
Restored 11 items
  ID            List                                                                                        Items  Created               Modified            
  edab0c775e5e  Corso_Restore_23-Dec-2023_14-54-05_New List Name                                            0      2023-12-23T14:54:23Z  2023-12-23T14:54:23Z
  cd2854591ab4  Corso_Restore_23-Dec-2023_14-54-05_corso-restore-list_135b9067-0e19-4a5c-9475-ced51730c211  0      2023-12-23T14:54:25Z  2023-12-23T14:54:25Z
  5345df87b565  Corso_Restore_23-Dec-2023_14-54-05_Meh                                                      0      2023-12-23T14:54:26Z  2023-12-23T14:54:26Z
  4d7ad9b1df98  Corso_Restore_23-Dec-2023_14-54-05_MockListing                                              0      2023-12-23T14:54:28Z  2023-12-23T14:54:28Z
  d2bdca596f75  Corso_Restore_23-Dec-2023_14-54-05_integration-test-list                                    6      2023-12-23T14:54:29Z  2023-12-23T14:54:31Z
  c7ffe2f0a275  Corso_Restore_23-Dec-2023_14-54-05_Test List                                                0      2023-12-23T14:54:34Z  2023-12-23T14:54:34Z
  c9eccc9771a3  Corso_Restore_23-Dec-2023_14-54-05_Sharing Links                                            74     2023-12-23T14:54:36Z  2023-12-23T14:54:36Z
  5e79dcd93c92  Corso_Restore_23-Dec-2023_14-54-05_New List Name 2                                          0      2023-12-23T14:55:09Z  2023-12-23T14:55:09Z
  6a6acbaa0d10  Corso_Restore_23-Dec-2023_14-54-05_corsorestorelist_7f99d792-cae0-4a87-9e68-fd930f5b123e    0      2023-12-23T14:55:10Z  2023-12-23T14:55:10Z
  0f56b7f450fa  Corso_Restore_23-Dec-2023_14-54-05_corsorestorelist_newlist                                 0      2023-12-23T14:55:11Z  2023-12-23T14:55:11Z
```


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

#### Type of change

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

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-28 16:59:23 +00:00
Abhishek Pandey
2be9b3f301
Remove duplicated integration tests for groups (#4929)
<!-- PR description-->

* We had a few duplicated tests. Removing them.
* Adding conversations selector for group v9 bump tests. Although technically it's not needed, since we didn't have conversations support prior to v9.

---

#### 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
- [x] 💚 E2E
2023-12-27 20:11:09 +00:00
Vaibhav Kamra
1b04b7500e
Fix docs rendering by updating mdx-mermaid (#4942)
This fixes an issue on the docs site where `import { Mermaid } from 'mdx-mermaid/lib/Mermaid';` shows up at the top
of the pages.

https://github.com/sjwall/mdx-mermaid/issues/88 indicates updating to `2.0.0` fixes the issue

![image](https://github.com/alcionai/corso/assets/918191/7d6073e4-f6bb-458e-8647-0d5c965f3382)


---

#### 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-12-27 19:04:12 +00:00
Hitesh Pattanayak
66664b69e5
skips backup of non-recoverable list templates (#4940)
Skips backup of non-recoverable list templates.

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-27 09:59:10 +00:00
Abhishek Pandey
c6b9615c7d
Integrate lazy item reader into conversations backup (#4921)
<!-- PR description-->




---

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

- [x]  Yes, it's included

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature


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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x] 💚 E2E
2023-12-27 07:09:12 +00:00
Abhishek Pandey
abc5ec1942
Skip group mailbox items that were deleted in flight (#4939)
<!-- PR description-->

Discovered an issue with how we were handling items deleted in flight with the lazy item reader. This needs to go in before integration PR. https://github.com/alcionai/corso/pull/4921 

Here are the details.

**Orig:**
* For such items, we were using the exchange approach to persist an empty data file (with serialized version) and not persist it in details file.
* Exchange discovers the deleted items during next backup during delta query and excludes them.

**Problem:**
* Group mailbox doesn't support delta queries. Also, there is no graph API to discover/fetch deleted items.
* So if we use the exchange lazy reader approach like above, the ongoing backup will succeed. However, the next incremental backup fails during details merge with ` running backup: merging details: incomplete migration of backup details`. 
* Failure is [here](c58cd9302f/src/internal/operations/backup.go (L837)). It's because the deleted item reporefs are still present in the merge base. Since there is no delta query, there is no `GetDeleted()` to exclude the item.

**Mod:**
* Using the approach drive lazy reader code uses to mark an item as skipped, so that kopia doesn't error out during upload.

---

#### 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. -->
* https://github.com/alcionai/corso/issues/4862

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-27 05:30:57 +00:00
ashmrtn
aa876cabb9
Sanitize JSON input if it's invalid on the first attempt (#4928)
Add code and tests for sanitizing emails

Also adds code for sanitizing events and contacts but we can remove
that if we'd like to address it if/when needed. We haven't yet seen
or tried to create instances of those

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-26 20:26:07 +00:00
ashmrtn
f63a6e9b4f
Some testing QoL functions (#4927)
Functions help check things like
  * are two items equal when taking into account nil, empty slices, and
    other zero-values?
  * is something fully populated?

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-26 18:52:50 +00:00
Hitesh Pattanayak
1c18131122
replaces deleteList with errors fault bus (#4933)
replaces list deletion, on creation of list items failure, with fault bus. Thereby restores list with list items that could be restored.

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-26 12:29:40 +00:00
Hitesh Pattanayak
43ca43910f
fixes lists delete in CI during sites purge (#4935)
fixes lists delete in CI during sites purge

manual testing commad used:
```
pwsh ./onedrivePurge.ps1 -Site "https://10rqc2.sharepoint.com/sites/CorsoCI" -LibraryNameList "Shared Documents","More Documents" -FolderPrefixPurgeList Corso_Restore_,TestRestore,testfolder,incrementals_ci_,Alcion_Restore_,Corso_Test -LibraryPrefixDeleteList Corso_Restore_,TestRestore,testfolder,incrementals_ci_,Alcion_Restore_,Corso_Test -PurgeBeforeTimestamp 2023-12-24T06:03:24Z
```

output
```
Authenticating and connecting to https://10rqc2.sharepoint.com/sites/CorsoCI
Connected to https://10rqc2.sharepoint.com/sites/CorsoCI


Purging library: Shared Documents
Found 0 folders to purge

Purging library: More Documents
Found 0 folders to purge

Deleting library: Corso_Restore_,TestRestore,testfolder,incrementals_ci_,Alcion_Restore_,Corso_Test
Found 8 lists to delete
Deleting list:  Corso_Restore_23-Dec-2023_14-54-05_Sharing Links
List: Corso_Restore_23-Dec-2023_14-54-05_Sharing Links is hidden. Skipping...
Deleting list:  Corso_Restore_23-Dec-2023_15-50-29_Corso_Restore_23-Dec-2023_14-54-05_Sharing Links
List: Corso_Restore_23-Dec-2023_15-50-29_Corso_Restore_23-Dec-2023_14-54-05_Sharing Links is hidden. Skipping...
Deleting list:  Corso_Restore_23-Dec-2023_15-50-29_Sharing Links
List: Corso_Restore_23-Dec-2023_15-50-29_Sharing Links is hidden. Skipping...
Deleting list:  Corso_Test_24-Dec-2023_04-24-09.117728_MockListing
Deleting list:  Corso_Test_24-Dec-2023_05-05-31.706634_MockListing
Deleting list:  Corso_Test_list_api_post_drive_23-Dec-2023_16-50-05.901602
Deleting list:  Corso_Test_list_api_post_drive_24-Dec-2023_04-44-48.244327
Deleting list:  Corso_Test_list_api_post_drive_24-Dec-2023_05-25-51.302396
```

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

#### Issue(s)
https://github.com/alcionai/corso/actions/runs/7313019888/job/19924151485

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-24 07:37:52 +00:00
Hitesh Pattanayak
95dab16f67
skip cleanup of hidden list (#4934)
skips cleanup of hidden list considering them system generated and delete attempt for them would result in graph error `General exception while processing` 

list details response for list `Corso_Restore_23-Dec-2023_14-54-05_Sharing Links` of 'hidden' type
```
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a')/lists/$entity",
    "@odata.etag": "\"35697c04-415d-44ad-b328-527e32a20126,1\"",
    "createdDateTime": "2023-12-23T14:54:36Z",
    "description": "Use this list to track documents which have internal or anonymous sharing links in the site.",
    "eTag": "\"35697c04-415d-44ad-b328-527e32a20126,1\"",
    "id": "35697c04-415d-44ad-b328-527e32a20126",
    "lastModifiedDateTime": "2023-12-23T14:55:07Z",
    "name": "Corso_Restore_23Dec2023_145405_Sharing Links",
    "webUrl": "https://10rqc2.sharepoint.com/sites/CorsoCI/Corso_Restore_23Dec2023_145405_Sharing%20Links",
    "displayName": "Corso_Restore_23-Dec-2023_14-54-05_Sharing Links",
    "createdBy": {
        "user": {
            "displayName": "SharePoint App"
        }
    },
    "parentReference": {
        "siteId": "10rqc2.sharepoint.com,4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a,38ab6d06-fc82-4417-af93-22d8733c22be"
    },
    "list": {
        "contentTypesEnabled": false,
        "hidden": true,
        "template": "sharingLinks"
    }
}
```

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 💻 CI/Deployment

#### Issue(s)
https://github.com/alcionai/corso/actions/runs/7312141926/job/19922423733

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💚 E2E
2023-12-24 04:55:10 +00:00
ashmrtn
87e41b20e0
JSON sanitizer and tests (#4925)
We've found that it's possible to get malformed JSON back from
the graph server and graph SDK. This results in errors while trying
to deserialize objects that are malformed JSON

This adds a simple JSON sanitizer and tests to make sure that even if
graph and the graph SDK happen to generate malformed JSON we can get
back to a state where we can deserialize it again. The tests also
print info when the received content differs from the original

This PR does not change any of the logic that corso uses during
backups or restores, it just adds sanitization code and tests

---

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-23 05:24:00 +00:00
Abhishek Pandey
f5f65f0cfe
Add lazy item reader for groups (#4913)
<!-- PR description-->

Lazy item reader similar to exchange. Tests are also inspired from exchange.

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-23 02:31:05 +00:00
Abhishek Pandey
341a838181
Disable export and restore for sharepoint lists (#4930)
<!-- PR description-->

We are hitting a sanity test failure during export. `Error: Failed to run SharePoint export: running export: exporting collections: transforming path to drive path: folder path doesn't match expected format for Drive items`. CI [run](https://github.com/alcionai/corso/actions/runs/7304614358/job/19907054349).

After debugging I found out that it's because we don't support exports for lists yet. This PR disables list export and restore.

We are also hitting a panic during list restore, so I am temporarily disabling list restores too. `Error: Failed to run SharePoint restore: panic recovery: file /Users/pandeyab/corso/src/pkg/services/m365/api/lists.go - line 607: runtime error: invalid memory address or nil pointer dereference`. 
Will request @HiteshRepo to investigate restore failure. 

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-23 01:52:25 +00:00
Abhishek Pandey
1940d3a1f1
Minor refactor of status update code (#4912)
<!-- PR description-->

I missed this change in https://github.com/alcionai/corso/pull/4906. Moving out the status updater code out of `prefetchCollection` scope so that `lazyFetchCollection` can also use it in upcoming PRs.


---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-23 01:15:48 +00:00
Abhishek Pandey
ddf29e98dd
Add feature flag to disable lazy item reader (#4907)
<!-- PR description-->
AddDisableLazyItemReader disables lazy item reader, such that we fall
back to prefetch reader. This flag is currently only meant for groups
conversations backup. Although it can be utilized for other services
in future.

This flag should only be used if lazy item reader is the default choice
and we want to fallback to prefetch reader.

---

#### 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. -->
* https://github.com/alcionai/corso/issues/4862

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-22 23:59:00 +00:00
Abhishek Pandey
127570953a
Add prefetch collection for groups (#4906)
<!-- PR description-->

Minor refactor before introducing `lazyFetchCollection` for groups. We'll utilize `lazyFetchCollection` for group mailboxes and will continue to use `prefetchCollection` for channels.


---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-22 23:18:58 +00:00
Hitesh Pattanayak
926489d004
fix: integrate correct AddCategories (#4926)
fixes duplication of AddCategories function.
calls the correct AddCategories function

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

#### Type of change
- [x] 🐛 Bugfix

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 19:19:41 +00:00
Hitesh Pattanayak
a1590e0d2f
enables sharepoint to use lists restore handler for lists ops (#4923)
enables sharepoint to use lists restore handler for lists ops
Changes previously approved in: 
- https://github.com/alcionai/corso/pull/4854
- https://github.com/alcionai/corso/pull/4910

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 17:18:24 +00:00
Hitesh Pattanayak
98e8cac374
enable restore path creation for sharepoint lists (#4922)
Enable restore path creation for sharepoint lists
Changes previously approved in: https://github.com/alcionai/corso/pull/4855

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 16:42:53 +00:00
Hitesh Pattanayak
d6e9a2112d
cli changes for sharepoint lists (#4924)
cli changes for sharepoint lists
Changes previously approved in: https://github.com/alcionai/corso/pull/4850

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 15:22:03 +00:00
Hitesh Pattanayak
dc47001cba
enables sharepoint to use lists backup handler for lists ops (#4920)
enables sharepoint to use lists backup handler for lists ops
Changes previously approved in:
-  https://github.com/alcionai/corso/pull/4786
- https://github.com/alcionai/corso/pull/4787
- https://github.com/alcionai/corso/pull/4909

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 14:26:23 +00:00
Hitesh Pattanayak
00662c4cd9
adds list backup and restore handlers (#4919)
adds list backup and restore handlers
Changes previously approved in:
- https://github.com/alcionai/corso/pull/4786
- https://github.com/alcionai/corso/pull/4854

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 09:59:19 +00:00
Hitesh Pattanayak
1270e64637
adds list client apis and pagers (#4917)
adds list client apis and pagers to fetch, create and delete lists and list relations.
Changes previously approved in PRs:
- https://github.com/alcionai/corso/pull/4785
- https://github.com/alcionai/corso/pull/4815
- https://github.com/alcionai/corso/pull/4852

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 08:02:32 +00:00
Hitesh Pattanayak
50fd28aab2
adds ListInfo details to SharepointInfo details (#4916)
adds ListInfo details to SharepointInfo details
Changes previously approved in PR: https://github.com/alcionai/corso/pull/4851

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

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)
#4754 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-22 06:50:34 +00:00
Abin Simon
c3b15a00bd
Note about anonymous link shares (#4905)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-12-22 06:13:28 +00:00
Keepers
8c0ac505a2
better parsing of graph odata errs (#4900)
parse the odataerr to a local struct that has
a more complete view of the data.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #4685

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-21 21:39:31 +00:00
ashmrtn
c65527e5c4
Log and ignore sharing disabled errors when doing permissions restores (#4901)
We've encountered an error where the user previously had sharing for
one or more external users on an item and then did a backup. They
subsequently disabled sharing for the SharePoint site in either the
tenant-wide config or for the site in particular. Once sharing was
disabled, they attempted a restore which subsequently failed while
trying to restore sharing for the external user

This PR logs and ignores errors about sharing being disabled when
doing a restore

This has been tested manually

---

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

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-21 19:28:55 +00:00
Keepers
753ed1a075
use tree version in nightly tests (#4885)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x] 💚 E2E
2023-12-21 18:44:09 +00:00
ashmrtn
1944c070cf
Beef up Exchange export error handling (#4898)
Add log statements when errors are encountered so we get full clues
output and make sure context clues are added to returned errors. The
additional logging is necessary because not all corso SDK consumers
will use clues which means they could miss out on valuable information
if they just log the returned errors normally

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-21 16:40:47 +00:00
ashmrtn
e46119a818
Remove options form service handler initializer (#4895)
Now that optiosn are being broken up a bit more passing a struct of a single type to the service handler initializer doesn't make much sense. Just remove the parameter since it was unused anyway.

---

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

#### Issues

- #4896

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-20 18:49:28 +00:00
Abin Simon
d6db70c239
Update to latest go-simple-mail (#4894)
This adds support for empty attachments and also cleans up how email validation skip is done.

Contains PRs 97 and 98 upstream

<!-- 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-12-20 18:05:11 +00:00
dependabot[bot]
21b9142aa0
⬆️ Bump golang.org/x/tools from 0.16.0 to 0.16.1 in /src (#4838)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.16.0 to 0.16.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="2acb2e697b"><code>2acb2e6</code></a> gopls/internal/test/marker: minor clean up of marker test doc</li>
<li><a href="28b92af286"><code>28b92af</code></a> internal/typeparams: eliminate remainining compatibility shims</li>
<li><a href="ee35f8ea92"><code>ee35f8e</code></a> gopls/internal/lsp/source: hovering over broken packages is not an error</li>
<li><a href="67611a11a1"><code>67611a1</code></a> internal/typeparams: eliminate type aliases</li>
<li><a href="23c86e8ed6"><code>23c86e8</code></a> internal/typeparams: delete const Enabled=true and simplify</li>
<li><a href="e46688f413"><code>e46688f</code></a> gopls/internal/analysis/fillstruct: don't panic with invalid fields</li>
<li><a href="8bd7553f7c"><code>8bd7553</code></a> gopls/internal/util/goversion: warn about EOL for Go 1.18</li>
<li><a href="bc9cd159c5"><code>bc9cd15</code></a> gopls/internal/settings: remove MemoryMode option</li>
<li><a href="bbc30f1f81"><code>bbc30f1</code></a> gopls/protocol: Allow AnnotatedTextEdits</li>
<li><a href="f40889dc8b"><code>f40889d</code></a> gopls/internal/analysis/stubmethods: fix OOB panic in fromValueSpec</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.16.0...v0.16.1">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.16.0&new-version=0.16.1)](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-12-20 17:31:52 +00:00
dependabot[bot]
b6ef73425f
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.27.0 to 1.28.0 in /src (#4892)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.27.0 to 1.28.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.28.0]- 2023-12-19</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4ae88ab4fc"><code>4ae88ab</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/634">#634</a> from microsoftgraph/v1.0/pipelinebuild/130669</li>
<li><a href="63483a78db"><code>63483a7</code></a> - adds changelog entry for weekly generation</li>
<li><a href="4e03479d9d"><code>4e03479</code></a> Update generated files with build 130669</li>
<li><a href="ef5cb24541"><code>ef5cb24</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/631">#631</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="0061e7c964"><code>0061e7c</code></a> Bump github.com/google/uuid from 1.4.0 to 1.5.0</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.27.0...v1.28.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.27.0&new-version=1.28.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-12-20 16:49:17 +00:00
dependabot[bot]
893c94add3
⬆️ Bump tailwindcss from 3.3.7 to 3.4.0 in /website (#4891)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.7 to 3.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.4.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<p>Tailwind CSS v3.4 has arrived! Check out the <a href="https://tailwindcss.com/blog/tailwindcss-v3-4">announcement post</a> for a guided tour through all of the highlights.</p>
<h3>Added</h3>
<ul>
<li>Add <code>svh</code>, <code>lvh</code>, and <code>dvh</code> values to default <code>height</code>/<code>min-height</code>/<code>max-height</code> theme (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11317">#11317</a>)</li>
<li>Add <code>has-*</code> variants for <code>:has(...)</code> pseudo-class (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11318">#11318</a>)</li>
<li>Add <code>text-wrap</code> utilities including <code>text-balance</code> and <code>text-pretty</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11320">#11320</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12031">#12031</a>)</li>
<li>Extend default <code>opacity</code> scale to include all steps of 5 (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11832">#11832</a>)</li>
<li>Update Preflight <code>html</code> styles to include shadow DOM <code>:host</code> pseudo-class (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11200">#11200</a>)</li>
<li>Increase default values for <code>grid-rows-*</code> utilities from 1–6 to 1–12 (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12180">#12180</a>)</li>
<li>Add <code>size-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12287">#12287</a>)</li>
<li>Add utilities for CSS subgrid (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12298">#12298</a>)</li>
<li>Add spacing scale to <code>min-w-*</code>, <code>min-h-*</code>, and <code>max-w-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12300">#12300</a>)</li>
<li>Add <code>forced-color-adjust</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11931">#11931</a>)</li>
<li>Add <code>forced-colors</code> variant (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11694">#11694</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12582">#12582</a>)</li>
<li>Add <code>appearance-auto</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12404">#12404</a>)</li>
<li>Add logical property values for <code>float</code> and <code>clear</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12480">#12480</a>)</li>
<li>Add <code>*</code> variant for targeting direct children (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12551">#12551</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Simplify the <code>sans</code> font-family stack (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11748">#11748</a>)</li>
<li>Disable the tap highlight overlay on iOS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12299">#12299</a>)</li>
<li>Improve relative precedence of <code>rtl</code>, <code>ltr</code>, <code>forced-colors</code>, and <code>dark</code> variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12584">#12584</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.4.0] - 2023-12-19</h2>
<h3>Added</h3>
<ul>
<li>Add <code>svh</code>, <code>lvh</code>, and <code>dvh</code> values to default <code>height</code>/<code>min-height</code>/<code>max-height</code> theme (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11317">#11317</a>)</li>
<li>Add <code>has-*</code> variants for <code>:has(...)</code> pseudo-class (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11318">#11318</a>)</li>
<li>Add <code>text-wrap</code> utilities including <code>text-balance</code> and <code>text-pretty</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11320">#11320</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12031">#12031</a>)</li>
<li>Extend default <code>opacity</code> scale to include all steps of 5 (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11832">#11832</a>)</li>
<li>Update Preflight <code>html</code> styles to include shadow DOM <code>:host</code> pseudo-class (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11200">#11200</a>)</li>
<li>Increase default values for <code>grid-rows-*</code> utilities from 1–6 to 1–12 (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12180">#12180</a>)</li>
<li>Add <code>size-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12287">#12287</a>)</li>
<li>Add utilities for CSS subgrid (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12298">#12298</a>)</li>
<li>Add spacing scale to <code>min-w-*</code>, <code>min-h-*</code>, and <code>max-w-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12300">#12300</a>)</li>
<li>Add <code>forced-color-adjust</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11931">#11931</a>)</li>
<li>Add <code>forced-colors</code> variant (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11694">#11694</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12582">#12582</a>)</li>
<li>Add <code>appearance-auto</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12404">#12404</a>)</li>
<li>Add logical property values for <code>float</code> and <code>clear</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12480">#12480</a>)</li>
<li>Add <code>*</code> variant for targeting direct children (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12551">#12551</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Simplify the <code>sans</code> font-family stack (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11748">#11748</a>)</li>
<li>Disable the tap highlight overlay on iOS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12299">#12299</a>)</li>
<li>Improve relative precedence of <code>rtl</code>, <code>ltr</code>, <code>forced-colors</code>, and <code>dark</code> variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12584">#12584</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8350cffdad"><code>8350cff</code></a> 3.4.0</li>
<li><a href="fbdb858e97"><code>fbdb858</code></a> Improve relative precedence of <code>rtl</code>, <code>ltr</code>, <code>forced-colors</code> and <code>dark</code> varia...</li>
<li><a href="dae4618e97"><code>dae4618</code></a> Update changelog</li>
<li><a href="11a6ba3949"><code>11a6ba3</code></a> Move forced-colors variant after dark variant (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12582">#12582</a>)</li>
<li><a href="47dbb4a2b3"><code>47dbb4a</code></a> Add <code>*</code> variant for targeting direct children (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12551">#12551</a>)</li>
<li><a href="7642e28cfe"><code>7642e28</code></a> Disable tap highlights on iOS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12299">#12299</a>)</li>
<li><a href="06972065de"><code>0697206</code></a> feat(preflight): simplify sans-serif font stack (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11748">#11748</a>)</li>
<li><a href="b215f13276"><code>b215f13</code></a> Update changelog</li>
<li><a href="9129defd0d"><code>9129def</code></a> Add logical properties support for float and clear (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12480">#12480</a>)</li>
<li><a href="4ef97179cd"><code>4ef9717</code></a> Fix typo in changelog</li>
<li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.3.7...v3.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.3.7&new-version=3.4.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-12-20 05:49:46 +00:00
Abhishek Pandey
0888b9eeda
Exclude conversation selectors from export and restore (#4890)
<!-- PR description-->

Group export sanity test is failing because we added conversations to `sel.AllData()`. But we don't have export support for conversations yet.

Adding conv selector to exclude so that it doesn't fail exports for groups libraries and channels. This is a short term change, and will be removed once we have export support https://github.com/alcionai/corso/issues/4822

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-20 04:59:42 +00:00
Keepers
7e25fe30f4
fix up cli tabular display and locationRef (#4594)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4536

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-20 03:23:13 +00:00
ashmrtn
5669619a8d
Remove other event fields ignored by server (#4888)
Update the set of ignored fields for event restores. Most important inclusion is the `iCalUId_v2` field which will cause failures if it's not removed.

---

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

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-20 00:26:10 +00:00
dependabot[bot]
5aa9515d67
⬆️ Bump github.com/spf13/viper from 1.18.1 to 1.18.2 in /src (#4877)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.1 to 1.18.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/spf13/viper/releases">github.com/spf13/viper's releases</a>.</em></p>
<blockquote>
<h2>v1.18.2</h2>
<p><strong>tl;dr Skip 1.18.0 and 1.18.1 and upgrade to this version instead.</strong></p>
<p>This release fixes a regression that appears in rare circumstances when using <code>Unmarshal</code> or <code>UnmarshalExact</code> to decode values onto pointers with multiple indirection (eg. pointer to a pointer, etc). The change was introduced in 1.18.0 as a means to resolve a long-standing bug when decoding environment variables to structs.</p>
<p>The feature is now disabled by default and can be enabled using the <code>viper_bind_struct</code> build tag. It's also considered experimental at this point, so breaking changes may be introduced in the future.</p>
<h2>What's Changed</h2>
<h3>Bug Fixes 🐛</h3>
<ul>
<li>feat!: hide struct binding behind a feature flag by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1715">spf13/viper#1715</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spf13/viper/compare/v1.18.1...v1.18.2">https://github.com/spf13/viper/compare/v1.18.1...v1.18.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ab3a50c0ce"><code>ab3a50c</code></a> fix!: hide struct binding behind a feature flag</li>
<li><a href="9154b900c3"><code>9154b90</code></a> build(deps): bump actions/setup-go from 4.1.0 to 5.0.0</li>
<li><a href="08e4a00949"><code>08e4a00</code></a> build(deps): bump github/codeql-action from 2.22.8 to 2.22.9</li>
<li>See full diff in <a href="https://github.com/spf13/viper/compare/v1.18.1...v1.18.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/viper&package-manager=go_modules&previous-version=1.18.1&new-version=1.18.2)](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-12-19 22:18:31 +00:00
Keepers
92b996a3de
deltaURL stub refactor (#4865)
clean up the handling of deltaURL by using its own func instead of the id() func.  Also minimizes the delta stub constructor by using the suffix pattern used by id and folder constructors.

no logic changes, just a quick refactor.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-19 20:12:42 +00:00
Abin Simon
b896405e92
Add tests to check for invalid email addresses in eml export (#4881)
<!-- 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-12-19 19:41:42 +00:00
Abin Simon
6f1c5c6249
Do not try to add empty attachments to eml export (#4880)
The upstream library we are currently using errors out if we try to attach an empty file. This PR skips trying to attach empty files.

<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-19 19:11:07 +00:00
Abin Simon
90bed4c14e
Fix inline images for eml exports (#4879)
We have to use `contentId` instead of name for inline attachments as filenames can be duplicated.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-19 18:10:56 +00:00
dependabot[bot]
40d1d4fb21
⬆️ Bump tailwindcss from 3.3.6 to 3.3.7 in /website (#4878)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.6 to 3.3.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.3.7</h2>
<h3>Fixed</h3>
<ul>
<li>Fix support for container query utilities with arbitrary values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12534">#12534</a>)</li>
<li>Fix custom config loading in Standalone CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12616">#12616</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/v3.3.7/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.3.7] - 2023-12-18</h2>
<h3>Fixed</h3>
<ul>
<li>Fix support for container query utilities with arbitrary values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12534">#12534</a>)</li>
<li>Fix custom config loading in Standalone CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12616">#12616</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b01283cc9b"><code>b01283c</code></a> 3.3.7</li>
<li><a href="67fd939d3e"><code>67fd939</code></a> Fix custom config loading in Standalone CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12616">#12616</a>)</li>
<li><a href="cc94c76ee5"><code>cc94c76</code></a> Fix support for container query utilities with arbitrary values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12534">#12534</a>)</li>
<li>See full diff in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.3.6...v3.3.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.3.6&new-version=3.3.7)](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-12-19 06:08:29 +00:00
dependabot[bot]
c983191d8d
⬆️ Bump golang.org/x/crypto from 0.16.0 to 0.17.0 in /src (#4876)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="9d2ee975ef"><code>9d2ee97</code></a> ssh: implement strict KEX protocol changes</li>
<li><a href="4e5a26183e"><code>4e5a261</code></a> ssh: close net.Conn on all NewServerConn errors</li>
<li><a href="152cdb1503"><code>152cdb1</code></a> x509roots/fallback: update bundle</li>
<li><a href="fdfe1f8531"><code>fdfe1f8</code></a> ssh: defer channel window adjustment</li>
<li><a href="b8ffc16e10"><code>b8ffc16</code></a> blake2b: drop Go 1.6, Go 1.8 compatibility</li>
<li><a href="7e6fbd82c8"><code>7e6fbd8</code></a> ssh: wrap errors from client handshake</li>
<li><a href="bda2f3f5cf"><code>bda2f3f</code></a> argon2: avoid clobbering BP</li>
<li>See full diff in <a href="https://github.com/golang/crypto/compare/v0.16.0...v0.17.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/crypto&package-manager=go_modules&previous-version=0.16.0&new-version=0.17.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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2023-12-19 00:51:38 +00:00
ashmrtn
fd056119dd
Add struct definitions and CLI helpers for backup options (#4860)
Define structs that will be used for backup options and add some CLI
helpers/tests to populate those structs with flag values

Rate limiter config is pulled out as a separate struct because it will
likely be used for backup and restore operations and it has values that
are [passed separately](505c06441a/src/internal/m365/backup.go (L232)) to the rate limiter config code

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-18 23:11:52 +00:00
dependabot[bot]
2c6df6716e
⬆️ Bump actions/upload-artifact from 3 to 4 (#4872)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<p>The release of upload-artifact@v4 and download-artifact@v4 are major changes to the backend architecture of Artifacts. They have numerous performance and behavioral improvements.</p>
<p>For more information, see the <a href="https://github.com/actions/toolkit/tree/main/packages/artifact"><code>@​actions/artifact</code></a> documentation.</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/vmjoseph"><code>@​vmjoseph</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/464">actions/upload-artifact#464</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v3...v4.0.0">https://github.com/actions/upload-artifact/compare/v3...v4.0.0</a></p>
<h2>v3.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(github): remove trailing whitespaces by <a href="https://github.com/ljmf00"><code>@​ljmf00</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/313">actions/upload-artifact#313</a></li>
<li>Bump <code>@​actions/artifact</code> version to v1.1.2 by <a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/436">actions/upload-artifact#436</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v3...v3.1.3">https://github.com/actions/upload-artifact/compare/v3...v3.1.3</a></p>
<h2>v3.1.2</h2>
<ul>
<li>Update all <code>@actions/*</code> NPM packages to their latest versions- <a href="https://redirect.github.com/actions/upload-artifact/issues/374">#374</a></li>
<li>Update all dev dependencies to their most recent versions - <a href="https://redirect.github.com/actions/upload-artifact/issues/375">#375</a></li>
</ul>
<h2>v3.1.1</h2>
<ul>
<li>Update actions/core package to latest version to remove <code>set-output</code> deprecation warning <a href="https://redirect.github.com/actions/upload-artifact/issues/351">#351</a></li>
</ul>
<h2>v3.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​actions/artifact</code> to v1.1.0 (<a href="https://redirect.github.com/actions/upload-artifact/pull/327">actions/upload-artifact#327</a>)
<ul>
<li>Adds checksum headers on artifact upload (<a href="https://redirect.github.com/actions/toolkit/pull/1095">actions/toolkit#1095</a>) (<a href="https://redirect.github.com/actions/toolkit/pull/1063">actions/toolkit#1063</a>)</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c7d193f32e"><code>c7d193f</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/466">#466</a> from actions/v4-beta</li>
<li><a href="13131bb095"><code>13131bb</code></a> licensed cache</li>
<li><a href="4a6c273b98"><code>4a6c273</code></a> Merge branch 'main' into v4-beta</li>
<li><a href="f391bb91a3"><code>f391bb9</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/465">#465</a> from actions/robherley/v4-documentation</li>
<li><a href="9653d03c4b"><code>9653d03</code></a> Apply suggestions from code review</li>
<li><a href="875b630764"><code>875b630</code></a> add limitations section</li>
<li><a href="ecb21463e9"><code>ecb2146</code></a> add compression example</li>
<li><a href="5e7604f84a"><code>5e7604f</code></a> trim some repeated info</li>
<li><a href="d6437d0758"><code>d6437d0</code></a> naming</li>
<li><a href="1b56155703"><code>1b56155</code></a> s/v4-beta/v4/g</li>
<li>Additional commits viewable in <a href="https://github.com/actions/upload-artifact/compare/v3...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&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-12-18 19:02:33 +00:00
Keepers
c58cd9302f
move /cli/config to /pkg (#4858)
Part 1 of two changes I've been carting around since the hackathon.
This PR moves the /cli/config package into /pkg/config.  This allows
sdk consumers to access corso configuration handling, intead of
requiring the CLI package to access it.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests


#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-18 18:24:33 +00:00
Abin Simon
5140e75804
Accept possibly incorrect email addressses in export (#4869)
Uses a fork of the upstream library to create eml files
e8c58c45d8

---

#### 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
- [ ] 🧹 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-12-18 09:18:44 +00:00
Abin Simon
891814f15c
Add shortref and rename item_id (#4868)
<!-- 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
- [ ] 🧹 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-12-18 08:42:40 +00:00
Abin Simon
83d9492b4f
Do not try to export items with error (#4867)
<!-- 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-12-18 07:08:57 +00:00
dependabot[bot]
b57115b353
⬆️ Bump @loadable/component from 5.15.3 to 5.16.2 in /website (#4874)
Bumps [@loadable/component](https://github.com/gregberge/loadable-components) from 5.15.3 to 5.16.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gregberge/loadable-components/releases"><code>@​loadable/component</code>'s releases</a>.</em></p>
<blockquote>
<h2>ESM all the things</h2>
<ul>
<li>thanks to <a href="https://redirect.github.com/gregberge/loadable-components/issues/989">#989</a>, <a href="https://github.com/zewish"><code>@​zewish</code></a> and <a href="https://github.com/wojtekmaj"><code>@​wojtekmaj</code></a> <code>loadable-components</code> is now fully ESM compatible package 👏</li>
</ul>
<h2>Babel plugin improvements</h2>
<h2>Features</h2>
<ul>
<li>Allow additional identifiers to be passed in to the babel plugin (<a href="https://redirect.github.com/smooth-code/loadable-components/issues/966">smooth-code/loadable-components#966</a>) (<a href="e18e37afd8">e18e37a</a>) by <a href="https://github.com/edkimmel"><code>@​edkimmel</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/gregberge/loadable-components/blob/main/CHANGELOG.md"><code>@​loadable/component</code>'s changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/smooth-code/loadable-components/compare/v5.16.1...v5.16.2">5.16.2</a> (2023-12-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add esm exports to package.json and change esm bundle extension to .mjs to allow node.js to properly import esm version of package. (<a href="https://redirect.github.com/smooth-code/loadable-components/issues/989">#989</a>) (<a href="e4a37188b8">e4a3718</a>)</li>
</ul>
<h2><a href="https://github.com/smooth-code/loadable-components/compare/v5.16.0...v5.16.1">5.16.1</a> (2023-07-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>correct babel plugin default signature to allow any source of 'loadable' (<a href="https://redirect.github.com/smooth-code/loadable-components/issues/972">#972</a>) (<a href="19849b6ba7">19849b6</a>), closes <a href="https://redirect.github.com/smooth-code/loadable-components/issues/971">#971</a></li>
</ul>
<h1><a href="https://github.com/smooth-code/loadable-components/compare/v5.15.3...v5.16.0">5.16.0</a> (2023-07-09)</h1>
<h3>Features</h3>
<ul>
<li>Allow additional identifiers to be passed in to the babel plugin (<a href="https://redirect.github.com/smooth-code/loadable-components/issues/966">#966</a>) (<a href="e18e37afd8">e18e37a</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2210bcf43b"><code>2210bcf</code></a> v5.16.2</li>
<li><a href="e4a37188b8"><code>e4a3718</code></a> fix: add esm exports to package.json and change esm bundle extension to .mjs ...</li>
<li><a href="09af82568f"><code>09af825</code></a> v5.16.1</li>
<li><a href="19849b6ba7"><code>19849b6</code></a> fix: correct babel plugin default signature to allow any source of 'loadable'...</li>
<li><a href="0e4b57fed4"><code>0e4b57f</code></a> v5.16.0</li>
<li><a href="edaf30c2ca"><code>edaf30c</code></a> update documentation for babel plugin</li>
<li><a href="e18e37afd8"><code>e18e37a</code></a> feat: Allow additional identifiers to be passed in to the babel plugin (<a href="https://redirect.github.com/gregberge/loadable-components/issues/966">#966</a>)</li>
<li><a href="2d1645d855"><code>2d1645d</code></a> Added getEntrypointPath to ChunkExtractor and reading json from fs (<a href="https://redirect.github.com/gregberge/loadable-components/issues/951">#951</a>)</li>
<li>See full diff in <a href="https://github.com/gregberge/loadable-components/compare/v5.15.3...v5.16.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@loadable/component&package-manager=npm_and_yarn&previous-version=5.15.3&new-version=5.16.2)](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-12-18 06:04:57 +00:00
Keepers
44078e1db2
fix up test fullPath generation (#4833)
fixes up the generation of paths in drive testing so that paths are created correctly and consistently, even for values that will have escaped slashes.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-12-15 21:44:26 +00:00
Keepers
e3363aaa46
fix up failures found when manually testing (#4825)
correct the tree post-process traversal, ensuring the root folder doesn't appear twice in the path.  And provide the drive name to the collection so that the backup details can utilize it.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #4689

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-12-14 23:28:16 +00:00
ashmrtn
505c06441a
Add config passing test that future PRs will leverage (#4857)
We're currently passing some backup options during repo connect which
complicates how SDK users can connect to a corso repo. This PR starts
to lay the groundwork for passing a discrete set of config parameters
to backup operations

This PR adds a test around config values passed into the
NewBackupOperation function. It checks that the config values stored
in the backup operation match what's passed in. It also makes sure
the passed in config parameters have all non-zero values so that
future changes don't silently pass the test when they shouldn't

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-14 22:41:00 +00:00
Keepers
791f4435d9
deduplicate error messages for ease of debugging (#4856)
#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-12-14 19:49:59 +00:00
dependabot[bot]
93963752bc
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.26.0 to 1.27.0 in /src (#4835)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.26.0 to 1.27.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.27.0]- 2023-12-12</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f05270cf4c"><code>f05270c</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/630">#630</a> from microsoftgraph/v1.0/pipelinebuild/130446</li>
<li><a href="aa760b0a3a"><code>aa760b0</code></a> - adds weekly generation changelog entry</li>
<li><a href="930d1d71a3"><code>930d1d7</code></a> Update generated files with build 130446</li>
<li><a href="ce754b4f8d"><code>ce754b4</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/629">#629</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="4de25096d6"><code>4de2509</code></a> Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.9.0 to 1.9.1</li>
<li><a href="0563a323c1"><code>0563a32</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/628">#628</a> from microsoftgraph/dependabot/github_actions/actions...</li>
<li><a href="0b21713d38"><code>0b21713</code></a> Bump actions/setup-go from 4 to 5</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.26.0...v1.27.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.26.0&new-version=1.27.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-12-14 19:17:26 +00:00
dependabot[bot]
b486bc301d
⬆️ Bump github.com/jhillyerd/enmime from 1.0.1 to 1.1.0 in /src (#4837)
Bumps [github.com/jhillyerd/enmime](https://github.com/jhillyerd/enmime) from 1.0.1 to 1.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/jhillyerd/enmime/releases">github.com/jhillyerd/enmime's releases</a>.</em></p>
<blockquote>
<h2>v1.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Export readHeader as ReadHeader. by <a href="https://github.com/davrux"><code>@​davrux</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/306">jhillyerd/enmime#306</a></li>
<li>Add parser option to parse raw content by <a href="https://github.com/jerjako"><code>@​jerjako</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/304">jhillyerd/enmime#304</a></li>
<li>Add new option SetCustomParseMediaType to customise mediatype parsing by <a href="https://github.com/vadzappa"><code>@​vadzappa</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/308">jhillyerd/enmime#308</a></li>
<li>Don't remove CTE header when using the RawContent parser option by <a href="https://github.com/jerjako"><code>@​jerjako</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/309">jhillyerd/enmime#309</a></li>
<li>Don't auto detect charset when using raw content parser option by <a href="https://github.com/jerjako"><code>@​jerjako</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/310">jhillyerd/enmime#310</a></li>
<li>Fix RecipientDSN typo by <a href="https://github.com/corey-aloia"><code>@​corey-aloia</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/312">jhillyerd/enmime#312</a></li>
<li>Skip empty parameters by <a href="https://github.com/milankonir"><code>@​milankonir</code></a> in <a href="https://redirect.github.com/jhillyerd/enmime/pull/313">jhillyerd/enmime#313</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jerjako"><code>@​jerjako</code></a> made their first contribution in <a href="https://redirect.github.com/jhillyerd/enmime/pull/304">jhillyerd/enmime#304</a></li>
<li><a href="https://github.com/vadzappa"><code>@​vadzappa</code></a> made their first contribution in <a href="https://redirect.github.com/jhillyerd/enmime/pull/308">jhillyerd/enmime#308</a></li>
<li><a href="https://github.com/corey-aloia"><code>@​corey-aloia</code></a> made their first contribution in <a href="https://redirect.github.com/jhillyerd/enmime/pull/312">jhillyerd/enmime#312</a></li>
<li><a href="https://github.com/milankonir"><code>@​milankonir</code></a> made their first contribution in <a href="https://redirect.github.com/jhillyerd/enmime/pull/313">jhillyerd/enmime#313</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/jhillyerd/enmime/compare/v1.0.1...v1.1.0">https://github.com/jhillyerd/enmime/compare/v1.0.1...v1.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ed0394eda0"><code>ed0394e</code></a> nix: update flake deps (<a href="https://redirect.github.com/jhillyerd/enmime/issues/314">#314</a>)</li>
<li><a href="54fdf4dc7f"><code>54fdf4d</code></a> feat: skip empty parameters (<a href="https://redirect.github.com/jhillyerd/enmime/issues/313">#313</a>)</li>
<li><a href="ea70bfea9a"><code>ea70bfe</code></a> Fix RecipientDSN typo (<a href="https://redirect.github.com/jhillyerd/enmime/issues/312">#312</a>)</li>
<li><a href="2f48e1bbab"><code>2f48e1b</code></a> feat: don't auto detect charset when using raw content parser option (<a href="https://redirect.github.com/jhillyerd/enmime/issues/310">#310</a>)</li>
<li><a href="c35a936602"><code>c35a936</code></a> build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 (<a href="https://redirect.github.com/jhillyerd/enmime/issues/307">#307</a>)</li>
<li><a href="5a18bd532e"><code>5a18bd5</code></a> fix: don't remove CTE header when using the RawContent parser option (<a href="https://redirect.github.com/jhillyerd/enmime/issues/309">#309</a>)</li>
<li><a href="b88939ac72"><code>b88939a</code></a> add new option SetCustomParseMediaType (<a href="https://redirect.github.com/jhillyerd/enmime/issues/308">#308</a>)</li>
<li><a href="9d1f8fe81e"><code>9d1f8fe</code></a> feat: add parser option to parse raw content (<a href="https://redirect.github.com/jhillyerd/enmime/issues/304">#304</a>)</li>
<li><a href="e6dab52873"><code>e6dab52</code></a> Export readHeader as ReadHeader (<a href="https://redirect.github.com/jhillyerd/enmime/issues/306">#306</a>)</li>
<li>See full diff in <a href="https://github.com/jhillyerd/enmime/compare/v1.0.1...v1.1.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/jhillyerd/enmime&package-manager=go_modules&previous-version=1.0.1&new-version=1.1.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-12-14 18:44:14 +00:00
Keepers
dc3cfd1ec3
clean up drive unit test helpers (#4805)
Adds some cleanups to the drive unit test helpers.  Goals were as follows:
1. remove idx() and namex() funcs, replace with id() and name()
2. minimize factory duplication in helper_test.go
3. improve readability in id() and name() calls by adding file and folder variants to handle the 99% of cases we use them in.

No logic changes in this PR.  Only test func updates.
---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-12-14 17:02:44 +00:00
dependabot[bot]
3f1f9588f2
⬆️ Bump github.com/google/uuid from 1.4.0 to 1.5.0 in /src (#4836)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.4.0 to 1.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/releases">github.com/google/uuid's releases</a>.</em></p>
<blockquote>
<h2>v1.5.0</h2>
<h2><a href="https://github.com/google/uuid/compare/v1.4.0...v1.5.0">1.5.0</a> (2023-12-12)</h2>
<h3>Features</h3>
<ul>
<li>Validate UUID without creating new UUID (<a href="https://redirect.github.com/google/uuid/issues/141">#141</a>) (<a href="9ee7366e66">9ee7366</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/blob/master/CHANGELOG.md">github.com/google/uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/google/uuid/compare/v1.4.0...v1.5.0">1.5.0</a> (2023-12-12)</h2>
<h3>Features</h3>
<ul>
<li>Validate UUID without creating new UUID (<a href="https://redirect.github.com/google/uuid/issues/141">#141</a>) (<a href="9ee7366e66">9ee7366</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4d47f8eb06"><code>4d47f8e</code></a> chore(master): release 1.5.0 (<a href="https://redirect.github.com/google/uuid/issues/145">#145</a>)</li>
<li><a href="9ee7366e66"><code>9ee7366</code></a> feat: Validate UUID without creating new UUID (<a href="https://redirect.github.com/google/uuid/issues/141">#141</a>)</li>
<li><a href="b35aa6a595"><code>b35aa6a</code></a> add uuid version 6 and 7 (<a href="https://redirect.github.com/google/uuid/issues/139">#139</a>)</li>
<li>See full diff in <a href="https://github.com/google/uuid/compare/v1.4.0...v1.5.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/google/uuid&package-manager=go_modules&previous-version=1.4.0&new-version=1.5.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-12-14 06:32:07 +00:00
ashmrtn
3866ed2368
Exit test early if setup fails (#4842)
Reduce what needs searched through for debugging by exiting early.

---

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


#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-14 01:36:15 +00:00
ashmrtn
ddabfc3b3a
Just pass in config to helpers (#4843)
Instead of passing in many parameters and assembling that in the helper function, just pass in the config.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-14 01:00:13 +00:00
ashmrtn
4b64faef70
Add retries for posting item attachments (#4840)
Add exponential backoff and some retries when posting item attachments.

Manual testing was showing upwards of 50 retries in some cases when
~250-300 attachments total were being added. Of the retries, none
were at the max amount. However, all tests were for relatively small
datasets

---

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

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-13 23:59:42 +00:00
Vaibhav Kamra
d16528be50
Skip emails that cannot be retrieved (#4834)
Adds a skip condition for emails that can be enumerated but are not returned from the server (Exchange) because
it believes they are corrupt/invalid.

This handles the `ErrorInvalidRecipients` condition we believe is hit when exchange finds an email that pre-dates
M365 mailbox creation (either a server corruption or triggered by on-prem->M365 migration)

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-13 03:21:45 +00:00
dependabot[bot]
b6dd06b458
⬆️ Bump github.com/spf13/viper from 1.18.0 to 1.18.1 in /src (#4827)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.0 to 1.18.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/spf13/viper/releases">github.com/spf13/viper's releases</a>.</em></p>
<blockquote>
<h2>v1.18.1</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Bug Fixes 🐛</h3>
<ul>
<li>Merge missing struct keys inside UnmarshalExact by <a href="https://github.com/krakowski"><code>@​krakowski</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1704">spf13/viper#1704</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spf13/viper/compare/v1.18.0...v1.18.1">https://github.com/spf13/viper/compare/v1.18.0...v1.18.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="fb6eb1e8e9"><code>fb6eb1e</code></a> fix: merge missing struct keys inside UnmarshalExact</li>
<li>See full diff in <a href="https://github.com/spf13/viper/compare/v1.18.0...v1.18.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/viper&package-manager=go_modules&previous-version=1.18.0&new-version=1.18.1)](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-12-12 21:31:30 +00:00
Keepers
b94e5a677d
add test.t and pfx to test tree generators (#4777)
this is needed to standardize the presence of a path prefix in all test-helper trees, so that we can use standard test factory helpers for producing complete post-process data.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-12 17:44:23 +00:00
Abhishek Pandey
f62760f65a
Add changelog for v0.17.0 release (#4829)
<!-- PR description-->

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-12 02:38:56 +00:00
Keepers
9e36267303
minor mail attachment cleanup (#4816)
started down the path of changing behavior under error conditions involving server-side nil reference errors.  Issue turned out to be transient.  I'm commiting the cleanup without the error case handling.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-11 23:58:51 +00:00
jules
66ff1efc47
Adding new call to services middleware (#4823)
As the tittle suggests. Adding this call to the middleware used by clients.

---

#### 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
- [x] 💚 E2E - added CI test
2023-12-08 20:28:02 +00:00
Keepers
8af0e31e4e
remove 'errors' from count keys (#4813)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
2023-12-08 19:45:39 +00:00
Abin Simon
a66b500d90
Fix Groups messages export sanity test (#4775)
#### 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-08 19:16:48 +00:00
Keepers
eb4f238502
add prev-path updates to tree (#4762)
introduces a func to the delta tree that allows a caller to set the previous-path on a folder by ID.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-08 18:14:06 +00:00
Keepers
17c1bbda19
fix messages backup deadlock (#4809)
Moving scope backup code to their own functions allows us to defer closing the progress bar for the scope, rather than closing it on a specific line of code, which might get missed and cause a lock.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💪 Manual
2023-12-08 17:33:17 +00:00
Keepers
54ba241fbe
require rootID on tree construction (#4746)
Turns out the root ID name isn't an appropriate match for establishing the root node.  Instead, the backup hander is now extended with a getRootFolder method and will pass the expected root folder ID into the tree's constructor func to ensure we establish the correct root node.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-07 23:54:45 +00:00
dependabot[bot]
c6306942f7
⬆️ Bump github.com/spf13/viper from 1.17.0 to 1.18.0 in /src (#4812)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.17.0 to 1.18.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/spf13/viper/releases">github.com/spf13/viper's releases</a>.</em></p>
<blockquote>
<h2>v1.18.0</h2>
<h2>Major changes</h2>
<p>Highlighting some of the changes for better visibility.</p>
<p>Please share your feedback in the Discussion forum. Thanks! ❤️</p>
<h3><code>AutomaticEnv</code> works with <code>Unmarshal</code></h3>
<p>Previously,  environment variables that weren't bound manually or had no defaults could not be mapped by <code>Unmarshal</code>. (The problem is explained in details in this issue: <a href="https://redirect.github.com/spf13/viper/issues/761">#761</a>)</p>
<p><a href="https://redirect.github.com/spf13/viper/issues/1429">#1429</a> introduced a solution that solves that issue.</p>
<h2>What's Changed</h2>
<h3>Enhancements 🚀</h3>
<ul>
<li>chore: rename files according to enabled build tags by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1642">spf13/viper#1642</a></li>
<li>test: replace ifs with asserts to simplify tests by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1656">spf13/viper#1656</a></li>
<li>ci: enable test shuffle and fix tests by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1643">spf13/viper#1643</a></li>
<li>fix: gocritic lint issues by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1696">spf13/viper#1696</a></li>
</ul>
<h3>Bug Fixes 🐛</h3>
<ul>
<li>Implement viper.BindStruct for automatic unmarshalling from environment variables by <a href="https://github.com/krakowski"><code>@​krakowski</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1429">spf13/viper#1429</a></li>
<li>fix isPathShadowedInFlatMap type cast bug by <a href="https://github.com/linuxsong"><code>@​linuxsong</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1585">spf13/viper#1585</a></li>
</ul>
<h3>Dependency Updates ⬆️</h3>
<ul>
<li>build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1661">spf13/viper#1661</a></li>
<li>build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1659">spf13/viper#1659</a></li>
<li>build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1663">spf13/viper#1663</a></li>
<li>build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1686">spf13/viper#1686</a></li>
<li>build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1688">spf13/viper#1688</a></li>
<li>build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1692">spf13/viper#1692</a></li>
<li>build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1690">spf13/viper#1690</a></li>
<li>build(deps): bump cachix/install-nix-action from 23 to 24 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1689">spf13/viper#1689</a></li>
<li>build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1672">spf13/viper#1672</a></li>
<li>build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1691">spf13/viper#1691</a></li>
<li>build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1668">spf13/viper#1668</a></li>
<li>chore: update dependencies by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1694">spf13/viper#1694</a></li>
<li>chore: update crypt by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1701">spf13/viper#1701</a></li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>Add info about multiple hosts for remote config by <a href="https://github.com/KaymeKaydex"><code>@​KaymeKaydex</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1684">spf13/viper#1684</a></li>
<li>refactor: drop fsonitfy wrapper by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1693">spf13/viper#1693</a></li>
<li>Note Get* behavior on parse failure by <a href="https://github.com/scop"><code>@​scop</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1687">spf13/viper#1687</a></li>
<li>fix: godot lint issues by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1657">spf13/viper#1657</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/KaymeKaydex"><code>@​KaymeKaydex</code></a> made their first contribution in <a href="https://redirect.github.com/spf13/viper/pull/1684">spf13/viper#1684</a></li>
<li><a href="https://github.com/krakowski"><code>@​krakowski</code></a> made their first contribution in <a href="https://redirect.github.com/spf13/viper/pull/1429">spf13/viper#1429</a></li>
<li><a href="https://github.com/linuxsong"><code>@​linuxsong</code></a> made their first contribution in <a href="https://redirect.github.com/spf13/viper/pull/1585">spf13/viper#1585</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spf13/viper/compare/v1.17.0...v1.18.0">https://github.com/spf13/viper/compare/v1.17.0...v1.18.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f5fcb4a104"><code>f5fcb4a</code></a> chore: update crypt</li>
<li><a href="f7363633d1"><code>f736363</code></a> fix isPathShadowedInFlatMap type cast bug (<a href="https://redirect.github.com/spf13/viper/issues/1585">#1585</a>)</li>
<li><a href="36a38682ba"><code>36a3868</code></a> Review changes</li>
<li><a href="f0c4ccd6cd"><code>f0c4ccd</code></a> fix: gocritic lint issues</li>
<li><a href="3a23b80b11"><code>3a23b80</code></a> ci: enable test shuffle; fix tests</li>
<li><a href="73dfb94c57"><code>73dfb94</code></a> feat: make Unmarshal work with AutomaticEnv</li>
<li><a href="6ea31ae4ca"><code>6ea31ae</code></a> refactor: move all settings code to a getter</li>
<li><a href="c4dcd31f68"><code>c4dcd31</code></a> fix: godot lint issues</li>
<li><a href="4c9b2a26ae"><code>4c9b2a2</code></a> Note Get* behavior on parse failure</li>
<li><a href="a4a551fd2a"><code>a4a551f</code></a> chore: update dependencies</li>
<li>Additional commits viewable in <a href="https://github.com/spf13/viper/compare/v1.17.0...v1.18.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/viper&package-manager=go_modules&previous-version=1.17.0&new-version=1.18.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-12-07 17:37:05 +00:00
Vaibhav Kamra
29b37e9c15
Add a GetTeamByID API to lookup a team by ID (#4811)
Allows the caller to get Team information if they know a group is a team.

---

#### 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-12-07 03:39:26 +00:00
Abhishek Pandey
3838258a57
Remove graph sdk store references in url cache item map (#4800)
<!-- PR description-->

Use `Clone()` on item properties so that we don't hold on to graph in-memory store references.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-07 01:10:55 +00:00
Keepers
27ff840be8
match specific error message for resourcre locked (#4806)
Matches a specific error message returned by graph when an account does not have support for microsoft teams.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-06 01:26:08 +00:00
ashmrtn
68a0bebd1a
Update kopia version (#4807)
Pulls in the proper version of kopia for what we need

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-06 00:11:45 +00:00
Abhishek Pandey
3f98aa33de
Switch to custom drive items for backup operations (#4784)
<!-- PR description-->

Switch to using `custom.DriveItem` instead of `models.DriveItemable` during backups. There is a slight impact to restore as well, since backup and restore both use a few common interfaces e.g. `AugmentItemInfo`. 

---

#### 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: --->
- [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.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-05 22:48:02 +00:00
Keepers
047d46ea53
add new funcs and tidy up drive limiter (#4734)
adds some new functions to the drive limiter that will be used specifically in the tree-based backup process. Also updates the limiter tests to have separate versions for the tree and non-tree variations.  In this PR, the tree variation will definitely fail.  The next PR will be focused on backup process corrections needed to ensure that the limit handling is correct according to the existing tests.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-05 22:18:49 +00:00
Abhishek Pandey
b5c9199695
Add custom drive item (#4783)
<!-- PR description-->

Add a `custom.DriveItem` struct which partially replicates `DriveItemable` and only stores the fields corso makes use of during a backup operation. 

Sorry about the PR size, I don't have a way to split this into multiple PRs. Also it should be trivial to review because it's simply copying over fields to another struct.

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-05 21:40:11 +00:00
ashmrtn
02e9e1310e
Wire up setting min epoch duration (#4799)
Add the required wiring for SDK consumers to set the min epoch duration
(and eventually other persistent config info). This is just boiler-plate
with some tests at the various layers to make sure that layer is run as
expected. More nuanced tests about setting various config values are
left to the code in `internal/kopia/conn_test.go`

---

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

* #4782

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-05 16:44:20 +00:00
Abin Simon
e3fdc8d5d8
Fix OneDrive sanity tests (#4774)
<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-05 09:15:11 +00:00
Abin Simon
60307e39fd
Handle cases where we don't have attachment data (#4773)
Some attachments have an "item" field instead of
"contentBytes". There are items like contacts, emails
or calendar events which will not be a normal format
and will have to be converted to a text format.

---

#### 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. -->
* https://github.com/alcionai/corso/issues/4772
* Needed for https://github.com/alcionai/corso/pull/4756

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-05 08:47:25 +00:00
Abin Simon
3314acc78e
Fix sanity tests for exchange emails export (#4756)
<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-05 08:07:45 +00:00
dependabot[bot]
496fcf3a9b
⬆️ Bump tailwindcss from 3.3.5 to 3.3.6 in /website (#4803)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.5 to 3.3.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.3.6</h2>
<h3>Fixed</h3>
<ul>
<li>Don’t add spaces to negative numbers following a comma (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12324">#12324</a>)</li>
<li>Don't emit <code>@config</code> in CSS when watching via the CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12327">#12327</a>)</li>
<li>Improve types for <code>resolveConfig</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12272">#12272</a>)</li>
<li>Ensure configured <code>font-feature-settings</code> for <code>mono</code> are included in Preflight (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12342">#12342</a>)</li>
<li>Improve candidate detection in minified JS arrays (without spaces) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12396">#12396</a>)</li>
<li>Don't crash when given applying a variant to a negated version of a simple utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12514">#12514</a>)</li>
<li>Fix support for slashes in arbitrary modifiers (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12515">#12515</a>)</li>
<li>Fix source maps of variant utilities that come from an <code>@layer</code> rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12508">#12508</a>)</li>
<li>Fix loading of built-in plugins when using an ESM or TypeScript config with the Standalone CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12506">#12506</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.3.6] - 2023-12-04</h2>
<h3>Fixed</h3>
<ul>
<li>Improve types for <code>resolveConfig</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12272">#12272</a>)</li>
<li>Don’t add spaces to negative numbers following a comma (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12324">#12324</a>)</li>
<li>Don't emit <code>@config</code> in CSS when watching via the CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12327">#12327</a>)</li>
<li>Ensure configured <code>font-feature-settings</code> for <code>mono</code> are included in Preflight (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12342">#12342</a>)</li>
<li>Improve candidate detection in minified JS arrays (without spaces) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12396">#12396</a>)</li>
<li>Don't crash when given applying a variant to a negated version of a simple utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12514">#12514</a>)</li>
<li>Fix support for slashes in arbitrary modifiers (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12515">#12515</a>)</li>
<li>Fix source maps of variant utilities that come from an <code>@layer</code> rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12508">#12508</a>)</li>
<li>Fix loading of built-in plugins when using an ESM or TypeScript config with the Standalone CLI (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12506">#12506</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3125829919"><code>3125829</code></a> 3.3.6</li>
<li><a href="16fd9ffdb4"><code>16fd9ff</code></a> Fix candidate detection regex</li>
<li><a href="89470d29b4"><code>89470d2</code></a> Improve candidate detection in minified JS arrays (without spaces) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12396">#12396</a>)</li>
<li><a href="e26a1ba5f1"><code>e26a1ba</code></a> Fix loading of built-in plugins when using an ESM or TypeScript config with t...</li>
<li><a href="2dcb1fcd82"><code>2dcb1fc</code></a> Fix source maps of variant utilities that come from an <code>@layer</code> rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12508">#12508</a>)</li>
<li><a href="adb6f15bc1"><code>adb6f15</code></a> Fix generation of utilities that use slashes in arbitrary modifiers (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12515">#12515</a>)</li>
<li><a href="bbfb5a3c66"><code>bbfb5a3</code></a> Don't crash when given applying a variant to a negated version of a simple ut...</li>
<li><a href="3713207744"><code>3713207</code></a> Fix code style</li>
<li><a href="da0ee9c746"><code>da0ee9c</code></a> Remove unused import</li>
<li><a href="817c466c1e"><code>817c466</code></a> Ensure configured <code>font-feature-settings</code> for <code>mono</code> are included in Prefligh...</li>
<li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.3.5...v3.3.6">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.3.5&new-version=3.3.6)](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-12-05 05:41:04 +00:00
InfraOwner
3684aa1c6a
[Snyk] Security upgrade ubuntu from mantic-20231011 to 23.10 (#4788)
<p>This PR was automatically created by Snyk using the credentials of a real user.</p><br />Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.

#### Changes included in this PR 


- website/Dockerfile

We recommend upgrading to `ubuntu:23.10`, as this image has only 8 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.



Some of the most important vulnerabilities in your base image include:

| Severity                                                                                                                 | Priority Score / 1000  | Issue                                                                     | Exploit Maturity      |
| :------:                                                                                                                 | :--------------------  | :----                                                                     | :---------------      |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **586**  | CVE-2023-5981 <br/>[SNYK-UBUNTU2310-GNUTLS28-6069047](https://snyk.io/vuln/SNYK-UBUNTU2310-GNUTLS28-6069047)   | No Known Exploit   |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **586**  | CVE-2023-47038 <br/>[SNYK-UBUNTU2310-PERL-6085371](https://snyk.io/vuln/SNYK-UBUNTU2310-PERL-6085371)   | No Known Exploit   |
| ![low severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/l.png "low severity")   | **364**  | Out-of-bounds Write <br/>[SNYK-UBUNTU2310-PROCPS-5972730](https://snyk.io/vuln/SNYK-UBUNTU2310-PROCPS-5972730)   | No Known Exploit   |
| ![low severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/l.png "low severity")   | **364**  | Out-of-bounds Write <br/>[SNYK-UBUNTU2310-PROCPS-5972730](https://snyk.io/vuln/SNYK-UBUNTU2310-PROCPS-5972730)   | No Known Exploit   |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **371**  | CVE-2023-39804 <br/>[SNYK-UBUNTU2310-TAR-6096092](https://snyk.io/vuln/SNYK-UBUNTU2310-TAR-6096092)   | No Known Exploit   |



---

**Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._

For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI5NjQ5YzkwMi05YWUxLTQyNTYtYTU3OS0xMmJmNWVlNGE3MzAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijk2NDljOTAyLTlhZTEtNDI1Ni1hNTc5LTEyYmY1ZWU0YTczMCJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source&#x3D;github-enterprise&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr)

🛠 [Adjust project settings](https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source&#x3D;github-enterprise&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr/settings)

[//]: # 'snyk:metadata:{"prId":"9649c902-9ae1-4256-a579-12bf5ee4a730","prPublicId":"9649c902-9ae1-4256-a579-12bf5ee4a730","dependencies":[{"name":"ubuntu","from":"mantic-20231011","to":"23.10"}],"packageManager":"dockerfile","projectPublicId":"be35e6c9-5393-4702-af3c-f4aebb53488e","projectUrl":"https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source=github-enterprise&utm_medium=referral&page=fix-pr","type":"auto","patch":[],"vulns":["SNYK-UBUNTU2310-GNUTLS28-6069047","SNYK-UBUNTU2310-PERL-6085371","SNYK-UBUNTU2310-TAR-6096092","SNYK-UBUNTU2310-PROCPS-5972730"],"upgrade":["SNYK-UBUNTU2310-GNUTLS28-6069047","SNYK-UBUNTU2310-PERL-6085371","SNYK-UBUNTU2310-PROCPS-5972730","SNYK-UBUNTU2310-PROCPS-5972730","SNYK-UBUNTU2310-TAR-6096092"],"isBreakingChange":false,"env":"prod","prType":"fix","templateVariants":["updated-fix-title","priorityScore"],"priorityScoreList":[586,586,371,364],"remediationStrategy":"vuln"}'

---

**Learn how to fix vulnerabilities with free interactive lessons:**

 🦉 [Learn about vulnerability in an interactive lesson of Snyk Learn.](https://learn.snyk.io/?loc&#x3D;fix-pr)
2023-12-05 04:19:06 +00:00
dependabot[bot]
8a1ef1aa9c
⬆️ Bump postcss from 8.4.31 to 8.4.32 in /website (#4791)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.31 to 8.4.32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.32</h2>
<ul>
<li>Fixed <code>postcss().process()</code> types (by <a href="https://github.com/ferreira-tb"><code>@​ferreira-tb</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.32</h2>
<ul>
<li>Fixed <code>postcss().process()</code> types (by Andrew Ferreira).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a0d9f10324"><code>a0d9f10</code></a> Release 8.4.32 version</li>
<li><a href="0146b3e36f"><code>0146b3e</code></a> Add Node.js 21 to CI</li>
<li><a href="2398534350"><code>2398534</code></a> Update dependencies</li>
<li><a href="1918533810"><code>1918533</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1902">#1902</a> from ferreira-tb/main</li>
<li><a href="395e6dc1b9"><code>395e6dc</code></a> Fix <code>ProcessOptions</code> interface</li>
<li><a href="fa8cd158fd"><code>fa8cd15</code></a> Update dependencies</li>
<li><a href="199a7c4210"><code>199a7c4</code></a> Typo</li>
<li><a href="2528047169"><code>2528047</code></a> Update EM link</li>
<li>See full diff in <a href="https://github.com/postcss/postcss/compare/8.4.31...8.4.32">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.31&new-version=8.4.32)](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-12-05 04:14:34 +00:00
Abhishek Pandey
3ee1a8d166
Minor url cache logging & counting improvements (#4801)
<!-- PR description-->

1. Move cache miss logs to debug, as it can be chatty sometimes. We will leverage the end of operation `URLCacheMiss` counter to get this information instead.
2. Counter renaming. 
---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-05 02:18:13 +00:00
ashmrtn
7ef5a33edf
Allow setting the minimum epoch duration in kopia (#4798)
This PR lays the groundwork for changing persistent config info in
kopia. Specifically, it allows setting the minimum epoch duration (but
does so in a generic manner that can be expanded on later)

This PR only adds the code to actually do the configuration, it doesn't
add wiring to make this new function available to other callers

---

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

* #4782

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-05 00:08:35 +00:00
ashmrtn
a2e80073be
Rewrite remaining directory iteration during hierarchy merging (#4467)
Switch the remaining call of iterating through
directory entries to explicitly use the iterator
instead of a helper function that takes a
callback

Mostly just just to switch everything over to
the new iterator and to reduce indentation of
things overall

---

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

#### Issue(s)

* closes #4457

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-12-04 19:33:52 +00:00
Abhishek Pandey
2cd73e2d91
Remove sharepointids from delta query $select params (#4748)
<!-- PR description-->

We are not making use of `GetSharepointIds()` anymore. It was removed a month back, see [PR](https://github.com/alcionai/corso/pull/4436/files#diff-fc955b9b2e400cdda711ab2b6bf459845369691c5abc3973bbfaa1c83a664688L43). So we don't need to fetch this per item-property from graph during delta queries.

This will reduce overall mem usage since we don't need to store references to the sharepoint id map. It can also make delta queries go slightly faster since we are transferring & processing fewer bytes over network.

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-12-04 18:07:35 +00:00
Keepers
6e572fd133
add and delete file support in the tree (#4724)
now that folder handling is complete, we can ingest items in the delta tree as well.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-12-04 16:37:53 +00:00
dependabot[bot]
152e77182f
⬆️ Bump cachix/cachix-action from 12 to 13 (#4793)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 12 to 13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/cachix/cachix-action/releases">cachix/cachix-action's releases</a>.</em></p>
<blockquote>
<h2>cachix-action-v13</h2>
<ul>
<li>run on node20</li>
<li>add <code>skipAddingSubstituter</code> to skip running <code>cachix use</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6a2e08b5eb"><code>6a2e08b</code></a> Merge pull request <a href="https://redirect.github.com/cachix/cachix-action/issues/158">#158</a> from cachix/bump-node</li>
<li><a href="e98f643462"><code>e98f643</code></a> Commit dist</li>
<li><a href="2025bdaff1"><code>2025bda</code></a> Bump node in devenv</li>
<li><a href="6d013b15ef"><code>6d013b1</code></a> Bump dependencies</li>
<li><a href="33393dc192"><code>33393dc</code></a> Update tsconfig</li>
<li><a href="1ad072581d"><code>1ad0725</code></a> Merge pull request <a href="https://redirect.github.com/cachix/cachix-action/issues/156">#156</a> from cachix/dependabot/github_actions/cachix/install-...</li>
<li><a href="70d2b7fe3d"><code>70d2b7f</code></a> Merge pull request <a href="https://redirect.github.com/cachix/cachix-action/issues/157">#157</a> from cachix/dependabot/github_actions/actions/checkout-4</li>
<li><a href="d0ac1486c5"><code>d0ac148</code></a> Run on node20</li>
<li><a href="fe4b2e9abc"><code>fe4b2e9</code></a> chore(deps): bump actions/checkout from 3 to 4</li>
<li><a href="8d53462873"><code>8d53462</code></a> chore(deps): bump cachix/install-nix-action from 22 to 23</li>
<li>Additional commits viewable in <a href="https://github.com/cachix/cachix-action/compare/v12...v13">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/cachix-action&package-manager=github_actions&previous-version=12&new-version=13)](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-12-04 08:17:06 +00:00
dependabot[bot]
9af56fc153
⬆️ Bump github.com/golang-jwt/jwt/v5 from 5.1.0 to 5.2.0 in /src (#4790)
Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.1.0 to 5.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/golang-jwt/jwt/releases">github.com/golang-jwt/jwt/v5's releases</a>.</em></p>
<blockquote>
<h2>v5.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Exported <code>NewValidator</code> by <a href="https://github.com/oxisto"><code>@​oxisto</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/349">golang-jwt/jwt#349</a></li>
<li>Improve ErrInvalidKeyType error messages by <a href="https://github.com/Laurin-Notemann"><code>@​Laurin-Notemann</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/361">golang-jwt/jwt#361</a></li>
<li>Update MIGRATION_GUIDE.md by <a href="https://github.com/jbarham"><code>@​jbarham</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/363">golang-jwt/jwt#363</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Laurin-Notemann"><code>@​Laurin-Notemann</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/361">golang-jwt/jwt#361</a></li>
<li><a href="https://github.com/jbarham"><code>@​jbarham</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/363">golang-jwt/jwt#363</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/golang-jwt/jwt/compare/v5.1.0...v5.2.0">https://github.com/golang-jwt/jwt/compare/v5.1.0...v5.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b27c88965d"><code>b27c889</code></a> Update MIGRATION_GUIDE.md (<a href="https://redirect.github.com/golang-jwt/jwt/issues/363">#363</a>)</li>
<li><a href="b05644bf94"><code>b05644b</code></a> Improve ErrInvalidKeyType error messages (<a href="https://redirect.github.com/golang-jwt/jwt/issues/361">#361</a>)</li>
<li><a href="a49fa5d91d"><code>a49fa5d</code></a> Exported <code>NewValidator</code> (<a href="https://redirect.github.com/golang-jwt/jwt/issues/349">#349</a>)</li>
<li>See full diff in <a href="https://github.com/golang-jwt/jwt/compare/v5.1.0...v5.2.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/golang-jwt/jwt/v5&package-manager=go_modules&previous-version=5.1.0&new-version=5.2.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-12-04 07:28:08 +00:00
dependabot[bot]
dc2019c614
⬆️ Bump cachix/install-nix-action from 23 to 24 (#4792)
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 23 to 24.
<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-v24</h2>
<ul>
<li>Nix 2.19.1</li>
<li>enables KVM on linux</li>
<li>set <code>TMPDIR</code> to avoid potential disk space issues</li>
<li>don't use the default GitHub token for Enterprise</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7ac1ec2549"><code>7ac1ec2</code></a> Nix 2.19.1</li>
<li><a href="dc33a216cb"><code>dc33a21</code></a> Merge pull request <a href="https://redirect.github.com/cachix/install-nix-action/issues/200">#200</a> from cachix/fix/196</li>
<li><a href="2b90cd3130"><code>2b90cd3</code></a> Merge pull request <a href="https://redirect.github.com/cachix/install-nix-action/issues/202">#202</a> from cachix/feature/kvm</li>
<li><a href="fe19c91c6b"><code>fe19c91</code></a> feat: enable KVM on Linux if available</li>
<li><a href="a56e3a8089"><code>a56e3a8</code></a> Merge pull request <a href="https://redirect.github.com/cachix/install-nix-action/issues/199">#199</a> from jalaziz/tempdir</li>
<li><a href="81eb746179"><code>81eb746</code></a> Update install-nix.sh</li>
<li><a href="97a1be3c09"><code>97a1be3</code></a> fix: don't use the default GitHub token for Enterprise</li>
<li><a href="2cce1fd76b"><code>2cce1fd</code></a> fix: Set TMPDIR to avoid disk space issues</li>
<li><a href="300721fe01"><code>300721f</code></a> Merge pull request <a href="https://redirect.github.com/cachix/install-nix-action/issues/193">#193</a> from cachix/dependabot/github_actions/actions/checkout-4</li>
<li><a href="fe6788c5de"><code>fe6788c</code></a> chore(deps): bump actions/checkout from 3 to 4</li>
<li>See full diff in <a href="https://github.com/cachix/install-nix-action/compare/v23...v24">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=23&new-version=24)](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-12-04 07:01:16 +00:00
ashmrtn
08dfe6df66
Minio custom query params (#4763)
Add and wire up custom query parameters for minio to add extra fields
to S3 server access log output

** This switches to a custom minio version and updates kopia **

Diffs for the package updates (based on current versions used in corso):
* [minio](https://github.com/minio/minio-go/compare/v7.0.64...alcionai:minio-go:pass-custom-get-query-params-local?expand=1)
* [kopia](https://github.com/alcionai/kopia/compare/corsostaging-dir-iterator...custom-query-params)

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-02 00:22:33 +00:00
Abhishek Pandey
120219cdfb
Skip nightly conversations details test (#4781)
<!-- PR description-->

See https://github.com/alcionai/corso/issues/4780

---

#### 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
- [ ]  Unit test
- [x] 💚 E2E
2023-12-01 22:36:49 +00:00
Vaibhav Kamra
5a77db656e
Fix panic in GroupByID call (#4778)
`resp` is nil if there's an error and `getGroupFromResponse` will panic.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-01 19:33:19 +00:00
Keepers
37dcb952fb
add insufficient auth to graph, errs (#4776)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
2023-12-01 19:03:21 +00:00
Abhishek Pandey
79a37bfb91
Remove duplicate recoverable err during item download (#4766)
<!-- PR description-->

We are logging a recoverable error in 2 places for the same failure during lazy item download. See the [code](6307d8cbf6/src/internal/kopia/upload.go (L228)) for the other location.  For e.g. below 2 recoverable errors are referring to the same graph 400 failure. 

`running backup: recoverable error 1 of 6: downloading item content: retrieving expired item: getting item: Invalid request: Invalid request`
`
running backup: recoverable error 2 of 6: kopia reported error: fetching item content: retrieving expired item: getting item: Invalid request: Invalid request`

Removing the duplicate since it can be confusing to the end user & devs.

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-01 18:33:01 +00:00
ashmrtn
6ccf32cde0
Minor update to secret name/step name (#4759)
Make referenced secret consistent. Will update environment once this merges.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-01 17:03:18 +00:00
ashmrtn
53d77117d3
Rework binary publish failure notification (#4760)
Switch notification to be per workflow instead of per action. This means that CI jobs that want to check the result of the binary publish step will need to do so manually after the step runs.

---

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

#### Issue(s)

* closes #4758

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-12-01 16:36:15 +00:00
Niraj Tolia
b5cee37ad7
Upgrade Docusaurus to 3.0.1 (#4771)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2023-12-01 06:55:50 +00:00
Keepers
6307d8cbf6
prep groups handler for addition of conversations (#4583)
Makes modifications to the groups handlers to facilitate the incoming introduction of conversations backup handling. Changes include:
* new handler methods (canMakeDeltas and LocationRef)
* binding handlers to generics
* some naming normalization

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4536

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-12-01 00:40:37 +00:00
Keepers
d9c42f790c
introduce flat deletions to delta tree (#4719)
there are certain enumeration cases where tombstoning isn't the correct behavior, and we want to delete a folder from the tree entirely.  This primarily occurrs when we have a create->delete pair of markers either within or across enumerations.

---

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

- [x]  No

#### Type of change

- [ ] 🌻 Feature

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-12-01 00:12:57 +00:00
ashmrtn
53ce27a23b
Switch to new secret name for teams webhook (#4757)
Fix notification delivery for sanity test failures

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-30 18:15:34 +00:00
dependabot[bot]
4bb042bd1a
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.25.0 to 1.26.0 in /src (#4753)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.25.0 to 1.26.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.26.0]- 2023-11-29</h2>
<ul>
<li>Weekly generation.</li>
</ul>
<h3>Changed</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a233e14ba6"><code>a233e14</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/625">#625</a>)</li>
<li><a href="1fedd2da9a"><code>1fedd2d</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/624">#624</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="525b63b9dd"><code>525b63b</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.2 to 1.5.3</li>
<li><a href="93ffe8bec8"><code>93ffe8b</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/623">#623</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="77fd0e633f"><code>77fd0e6</code></a> Bump github.com/microsoftgraph/msgraph-sdk-go-core from 1.0.0 to 1.0.1</li>
<li><a href="36fddc6257"><code>36fddc6</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/622">#622</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="9eb8303dcf"><code>9eb8303</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.1 to 1.5.2</li>
<li><a href="f1a813ffa1"><code>f1a813f</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/621">#621</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="d5d65a8cff"><code>d5d65a8</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.0 to 1.5.1</li>
<li><a href="f3bebc59bb"><code>f3bebc5</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/616">#616</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li>Additional commits viewable in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/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=github.com/microsoftgraph/msgraph-sdk-go&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-11-30 17:13:40 +00:00
InfraOwner
13a98f8fa9
[Snyk] Security upgrade ubuntu from 23.04 to mantic-20231011 (#4601)
<p>This PR was automatically created by Snyk using the credentials of a real user.</p><br />Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.

#### Changes included in this PR 


- website/Dockerfile

We recommend upgrading to `ubuntu:mantic-20231011`, as this image has only 8 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.



Some of the most important vulnerabilities in your base image include:

| Severity                                                                                                                 | Priority Score / 1000  | Issue                                                                     | Exploit Maturity      |
| :------:                                                                                                                 | :--------------------  | :----                                                                     | :---------------      |
| ![low severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/l.png "low severity")   | **150**  | Improper Input Validation <br/>[SNYK-UBUNTU2304-COREUTILS-5484945](https://snyk.io/vuln/SNYK-UBUNTU2304-COREUTILS-5484945)   | No Known Exploit   |
| ![low severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/l.png "low severity")   | **150**  | Allocation of Resources Without Limits or Throttling <br/>[SNYK-UBUNTU2304-GLIBC-5484975](https://snyk.io/vuln/SNYK-UBUNTU2304-GLIBC-5484975)   | No Known Exploit   |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **300**  | Memory Leak <br/>[SNYK-UBUNTU2304-GLIBC-5919743](https://snyk.io/vuln/SNYK-UBUNTU2304-GLIBC-5919743)   | No Known Exploit   |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **300**  | Memory Leak <br/>[SNYK-UBUNTU2304-GLIBC-5919743](https://snyk.io/vuln/SNYK-UBUNTU2304-GLIBC-5919743)   | No Known Exploit   |
| ![medium severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png "medium severity")   | **300**  | CVE-2020-22916 <br/>[SNYK-UBUNTU2304-XZUTILS-5854648](https://snyk.io/vuln/SNYK-UBUNTU2304-XZUTILS-5854648)   | No Known Exploit   |



---

**Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._

For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJlMGFiYWIxYS0xMTNhLTQ0YjgtYjE3Yy0yZmI2ZTllOWRlNDAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImUwYWJhYjFhLTExM2EtNDRiOC1iMTdjLTJmYjZlOWU5ZGU0MCJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source&#x3D;github-enterprise&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr)

🛠 [Adjust project settings](https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source&#x3D;github-enterprise&amp;utm_medium&#x3D;referral&amp;page&#x3D;fix-pr/settings)

[//]: # 'snyk:metadata:{"prId":"e0abab1a-113a-44b8-b17c-2fb6e9e9de40","prPublicId":"e0abab1a-113a-44b8-b17c-2fb6e9e9de40","dependencies":[{"name":"ubuntu","from":"23.04","to":"mantic-20231011"}],"packageManager":"dockerfile","projectPublicId":"be35e6c9-5393-4702-af3c-f4aebb53488e","projectUrl":"https://app.snyk.io/org/alcion/project/be35e6c9-5393-4702-af3c-f4aebb53488e?utm_source=github-enterprise&utm_medium=referral&page=fix-pr","type":"auto","patch":[],"vulns":["SNYK-UBUNTU2304-GLIBC-5919743","SNYK-UBUNTU2304-XZUTILS-5854648","SNYK-UBUNTU2304-COREUTILS-5484945","SNYK-UBUNTU2304-GLIBC-5484975"],"upgrade":["SNYK-UBUNTU2304-COREUTILS-5484945","SNYK-UBUNTU2304-GLIBC-5484975","SNYK-UBUNTU2304-GLIBC-5919743","SNYK-UBUNTU2304-GLIBC-5919743","SNYK-UBUNTU2304-XZUTILS-5854648"],"isBreakingChange":false,"env":"prod","prType":"fix","templateVariants":["updated-fix-title","priorityScore"],"priorityScoreList":[300,300,150,150],"remediationStrategy":"vuln"}'

---

**Learn how to fix vulnerabilities with free interactive lessons:**

 🦉 [Memory Leak](https://learn.snyk.io/lesson/memory-leaks/?loc&#x3D;fix-pr)
 🦉 [Improper Input Validation](https://learn.snyk.io/lesson/improper-input-validation/?loc&#x3D;fix-pr)
 🦉 [Allocation of Resources Without Limits or Throttling](https://learn.snyk.io/lesson/no-rate-limiting/?loc&#x3D;fix-pr)
2023-11-30 06:27:54 +00:00
Abhishek Pandey
e1f3ffd0b3
Add configurable retries for 503 and 504 errors (#4750)
<!-- PR description-->

We use kiota retry handlers for 503 and 504 retries. We have a request from SDK users to configure number of retry attempts for 5xx errors. We already have configurability around retry attempts, plumbing it through to kiota retry handler.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-30 02:25:59 +00:00
Abhishek Pandey
5184fad18c
Minor retry handler test refactor (#4752)
<!-- PR description-->

Switch to configurable retries/timeouts/backoffs. Set up PR for https://github.com/alcionai/corso/pull/4750/files testing. 

With configurable retries, we can cut down the `TestRetryMiddleware_RetryResponse_maintainBodyAfter503` runtime from ~40seconds to around 1-2 seconds in the following PR #4750 



---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2023-11-30 01:21:08 +00:00
Abin Simon
9efe413e35
Sanity tests for email exports (#4741)
<!-- 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/4652

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-29 08:24:16 +00:00
Abin Simon
925c70d9d2
Fix sanity tests for SharePoint and Groups (#4740)
<!-- 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-29 07:56:09 +00:00
Abin Simon
1ae9c05651
Fix export sanity tests (#4730)
The export sanity tests were not running because the if condition was not being evaluated correctly.


**Export sanity tests are currently broken. We never detected it as we were never running it.**

<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-11-29 07:26:52 +00:00
ashmrtn
e6477a67a8
Rewrite Corso's kopia snapshot tie-ins to use directory iterators (#4466)
kopia/kopia#3365 switched kopia to use iterators
for traversing directory entries instead of
callbacks

This PR adds a new iterator struct that uses a
state machine to traverse the different data
sources we use to back a single directory passed
to kopia. While the state machine execution
logic is new, much of the logic for returning
individual entries is adapted from existing code

Recommend viewing by commit and possibly
ignoring whitespace changes

---

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

#### Issue(s)

* #4457

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-28 23:44:41 +00:00
Keepers
6aff258c8b
add boilerplate for drive tree processing (#4716)
begins implementation of the drive delta tree support by adding boilerplate funcs for getting the backup data, and adding a framework of unit tests that will be used bring testing parity up to par with current tests.

---

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

- [x]  No

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-11-28 21:07:49 +00:00
Keepers
793658c790
bump changelog with v16 release (#4742)
#### Does this PR need a docs update or release note?

- [x]  Yes, it's included

#### Type of change

- [x] 🗺️ Documentation
2023-11-28 18:44:09 +00:00
Keepers
9458fc6c4b
generic package update (#4743)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-11-28 18:43:20 +00:00
Keepers
5a6ddde363
allow sdk users to set graph client timeouts (#4744)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-28 18:16:04 +00:00
Keepers
bbf5350f6e
add basic folder operations to tree (#4696)
adds SetFolder and AddTombstone operations
to the drive delta tree.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-11-28 17:20:22 +00:00
ashmrtn
d36636285a
Use service-handler for restore operations (#4714)
Switch restore code path to use service-level handlers. Does a few
things:
* switches existing service-level functions to be methods on
  service-level handlers
* update interfaces as necessary
* moves some logic from old controller-level restore function to either
  the new handlers or the operation-level function
* removes old code

May be easiest to review by commit

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-28 16:47:45 +00:00
dependabot[bot]
1be4c4dbe7
⬆️ Bump golang.org/x/net from 0.18.0 to 0.19.0 in /src (#4738)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.18.0 to 0.19.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="a8e0109124"><code>a8e0109</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="13e88dd2f7"><code>13e88dd</code></a> quic: rename listener{_test}.go to endpoint{_test}.go</li>
<li><a href="e26b9a4457"><code>e26b9a4</code></a> quic: rename Listener to Endpoint</li>
<li><a href="399218d6bc"><code>399218d</code></a> quic: implement stream flush</li>
<li><a href="d87f99be5d"><code>d87f99b</code></a> quic: idle timeouts, handshake timeouts, and keepalive</li>
<li><a href="7b5abfaf7f"><code>7b5abfa</code></a> quic: basic qlog support</li>
<li>See full diff in <a href="https://github.com/golang/net/compare/v0.18.0...v0.19.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.18.0&new-version=0.19.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-11-28 14:38:26 +00:00
dependabot[bot]
bbe6b74247
⬆️ Bump golang.org/x/tools from 0.15.0 to 0.16.0 in /src (#4739)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.15.0 to 0.16.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="a9ef4cfeac"><code>a9ef4cf</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="d9b9452656"><code>d9b9452</code></a> gopls/internal/lsp/cache: move quick-fix bundling logic to the cache pkg</li>
<li><a href="1733061d5f"><code>1733061</code></a> go/analysis/passes/testinggoroutine: report by enclosing regions</li>
<li><a href="b19be0fa71"><code>b19be0f</code></a> gopls/internal/cmd/help_test.go: document</li>
<li><a href="daa4aa59ed"><code>daa4aa5</code></a> gopls/internal/lsp/source: stubmethods: fix out-of-bounds index</li>
<li><a href="a586d0db84"><code>a586d0d</code></a> go/types/internal/play: show more types.Scope detail</li>
<li><a href="53ad329bd9"><code>53ad329</code></a> gopls/internal/lsp/source: move edit logic into the protocol package</li>
<li><a href="3c677e3f7d"><code>3c677e3</code></a> gopls/internal/lsp/cache: move SuggestedFixFromCommand into cache</li>
<li><a href="ab6af7d4bb"><code>ab6af7d</code></a> gopls/internal/lsp/source: extract InDir to a new pathutil package</li>
<li><a href="e7d61d9d57"><code>e7d61d9</code></a> gopls/internal/lsp/cache: simplify named error values</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.15.0...v0.16.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.15.0&new-version=0.16.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-11-28 14:37:19 +00:00
dependabot[bot]
a76db2de69
⬆️ Bump golang.org/x/time from 0.4.0 to 0.5.0 in /src (#4737)
Bumps [golang.org/x/time](https://github.com/golang/time) from 0.4.0 to 0.5.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="883aed5197"><code>883aed5</code></a> rate: add documentation on Limiter concurrent usage</li>
<li>See full diff in <a href="https://github.com/golang/time/compare/v0.4.0...v0.5.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/time&package-manager=go_modules&previous-version=0.4.0&new-version=0.5.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-11-28 09:42:16 +00:00
Abhishek Pandey
b4b24edca9
Add regression tests for drive pagers (#4620)
<!-- PR description-->


Adds regression tests for query params & headers used for delta/non delta requests.  Closes https://github.com/alcionai/corso/issues/4614


---

#### 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. -->
* https://github.com/alcionai/corso/issues/4614

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-27 23:14:13 +00:00
ashmrtn
c48329f844
Return stats directly from restore function (#4713)
Rework restore return status so that later PRs will have a smaller diff

Instead of returning a status and then waiting on the message just return the restore stats directly. The status getter was only setup to wait for one item anyway and was setup to wait after the entire restore operation already completed (at end of
m365/restore.go:ConsumeRestoreCollections())

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-27 17:09:37 +00:00
dependabot[bot]
37b75bc691
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go-core from 1.0.0 to 1.0.1 in /src (#4732)
Bumps [github.com/microsoftgraph/msgraph-sdk-go-core](https://github.com/microsoftgraph/msgraph-sdk-go-core) from 1.0.0 to 1.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go-core/releases">github.com/microsoftgraph/msgraph-sdk-go-core's releases</a>.</em></p>
<blockquote>
<h2>v1.0.1</h2>
<h3>Changed</h3>
<ul>
<li>Fixed a bug where page iterator would panic if it couldn't find the GetValue method on the collection.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go-core/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go-core's changelog</a>.</em></p>
<blockquote>
<h2>[1.0.1] - 2023-11-24</h2>
<h3>Changed</h3>
<ul>
<li>Fixed a bug where page iterator would panic if it couldn't find the GetValue method on the collection.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1eda54572b"><code>1eda545</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go-core/issues/245">#245</a> from manisharma/panic-fix</li>
<li><a href="471e50b4bc"><code>471e50b</code></a> - adds changelog entry for fix</li>
<li><a href="8ebe404a49"><code>8ebe404</code></a> re-stored deleted test setup</li>
<li><a href="d23f107090"><code>d23f107</code></a> unit test for convertToPage</li>
<li><a href="cd0c170455"><code>cd0c170</code></a> method.IsNil() panics and the actual error is never returned</li>
<li><a href="c73cc93da7"><code>c73cc93</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go-core/issues/244">#244</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="a801561ec5"><code>a801561</code></a> Bump github.com/microsoft/kiota-http-go from 1.1.0 to 1.1.1</li>
<li><a href="5bc4a3ae59"><code>5bc4a3a</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go-core/issues/243">#243</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="f6dfdd8c72"><code>f6dfdd8</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.1 to 1.5.2</li>
<li><a href="114c7fa488"><code>114c7fa</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go-core/issues/242">#242</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li>Additional commits viewable in <a href="https://github.com/microsoftgraph/msgraph-sdk-go-core/compare/v1.0.0...v1.0.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go-core&package-manager=go_modules&previous-version=1.0.0&new-version=1.0.1)](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-11-27 10:09:31 +00:00
dependabot[bot]
84ace9668d
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.5.2 to 1.5.3 in /src (#4733)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.5.2 to 1.5.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.5.3</h2>
<h3>Added</h3>
<ul>
<li>Added support for multi valued query and path parameters of type other than string. <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/pull/124">#124</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.5.3] - 2023-11-24</h2>
<h3>Added</h3>
<ul>
<li>Added support for multi valued query and path parameters of type other than string. <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/pull/124">#124</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="920cc73050"><code>920cc73</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/124">#124</a> from papegaaij/fix-int64-slice-query-paramers</li>
<li><a href="de1d6c994c"><code>de1d6c9</code></a> Update changelog</li>
<li><a href="fcaa8a3174"><code>fcaa8a3</code></a> Normalize slices of all types to []any</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.5.2...v1.5.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.5.2&new-version=1.5.3)](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-11-27 09:25:00 +00:00
Abin Simon
e160df5de0
Fix small typo in ci config (#4728)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-11-24 17:37:09 +00:00
dependabot[bot]
0db246682b
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.4.0 to 1.5.2 in /src (#4727)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.4.0 to 1.5.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.5.2</h2>
<h3>Added</h3>
<ul>
<li>Added ApiErrorable interface. <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/110">microsoft/kiota-http-go#110</a></li>
</ul>
<h2>v1.5.1</h2>
<h3>Added</h3>
<ul>
<li>Added support for query an path parameters of enum type. <a href="https://redirect.github.com/microsoft/kiota/issues/3693">microsoft/kiota#3693</a></li>
</ul>
<h2>v1.5.0</h2>
<h3>Added</h3>
<ul>
<li>Added request information methods to reduce the amount of generated code.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.5.2] - 2023-11-22</h2>
<h3>Added</h3>
<ul>
<li>Added ApiErrorable interface. <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/110">microsoft/kiota-http-go#110</a></li>
</ul>
<h2>[1.5.1] - 2023-11-15</h2>
<h3>Added</h3>
<ul>
<li>Added support for query an path parameters of enum type. <a href="https://redirect.github.com/microsoft/kiota/issues/3693">microsoft/kiota#3693</a></li>
</ul>
<h2>[1.5.0] - 2023-11-08</h2>
<h3>Added</h3>
<ul>
<li>Added request information methods to reduce the amount of generated code.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="edbb11f8ee"><code>edbb11f</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/123">#123</a> from NerdJeremia/Add-ApiErrorable-interface</li>
<li><a href="adff5e8b05"><code>adff5e8</code></a> update CHANGELOG.md</li>
<li><a href="5cb2a5e97e"><code>5cb2a5e</code></a> add ApiErrorable interface</li>
<li><a href="47652f831b"><code>47652f8</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/120">#120</a> from microsoft/bugfix/enum-queryparameters-serialization</li>
<li><a href="18d4202ace"><code>18d4202</code></a> - upgrades std uri template dependency</li>
<li><a href="5f7feecd91"><code>5f7feec</code></a> adds changelog entry for enum parameters support</li>
<li><a href="5ae9659863"><code>5ae9659</code></a> - adds support for enum path parameters</li>
<li><a href="0348011378"><code>0348011</code></a> - adds support for enum query parameters</li>
<li><a href="2802b20398"><code>2802b20</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/122">#122</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="552bee68f5"><code>552bee6</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/121">#121</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.4.0...v1.5.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.4.0&new-version=1.5.2)](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-11-23 10:36:16 +00:00
dependabot[bot]
9ec687a0b9
⬆️ Bump github.com/microsoft/kiota-http-go from 1.1.0 to 1.1.1 in /src (#4726)
Bumps [github.com/microsoft/kiota-http-go](https://github.com/microsoft/kiota-http-go) from 1.1.0 to 1.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/releases">github.com/microsoft/kiota-http-go's releases</a>.</em></p>
<blockquote>
<h2>v1.1.1</h2>
<h3>Added</h3>
<ul>
<li>Added response headers and status code to returned error in <code>throwIfFailedResponse</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-http-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.1.1] - 2023-11-22</h2>
<h3>Added</h3>
<ul>
<li>Added response headers and status code to returned error in <code>throwIfFailedResponse</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="390840a931"><code>390840a</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/125">#125</a> from NerdJeremia/fix/response-headers-in-returned-error</li>
<li><a href="92d11b6643"><code>92d11b6</code></a> use correct err value</li>
<li><a href="651bf8321b"><code>651bf83</code></a> add response headers and status code to prematurely returned error</li>
<li><a href="f5fbbcd6a3"><code>f5fbbcd</code></a> add response headers and status code to returned error</li>
<li><a href="7176e1cccf"><code>7176e1c</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/124">#124</a> from microsoft/dependabot/go_modules/github.com/micro...</li>
<li><a href="296d32a734"><code>296d32a</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.5.0 to 1.5.1</li>
<li><a href="6cec5c7fde"><code>6cec5c7</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/123">#123</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="306bc97476"><code>306bc97</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/122">#122</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="ccf2bedc49"><code>ccf2bed</code></a> Bump go.opentelemetry.io/otel/trace from 1.20.0 to 1.21.0</li>
<li><a href="50c13cf1fa"><code>50c13cf</code></a> Bump go.opentelemetry.io/otel from 1.20.0 to 1.21.0</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/kiota-http-go/compare/v1.1.0...v1.1.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-http-go&package-manager=go_modules&previous-version=1.1.0&new-version=1.1.1)](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-11-23 10:33:54 +00:00
Abhishek Pandey
d4519159e7
Move rate limiter reset to defer block (#4722)
Move `ResetLimiter()` call to defer block to ensure that it gets called even if the backup fails. Without this change, any following mailbox backups may get artificially throttled by limiter.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-22 17:02:02 +00:00
dependabot[bot]
cd55325139
⬆️ Bump github.com/minio/minio-go/v7 from 7.0.63 to 7.0.64 in /src (#4718)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.63 to 7.0.64.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/minio/minio-go/releases">github.com/minio/minio-go/v7's releases</a>.</em></p>
<blockquote>
<h2>Bugfix release</h2>
<h2>What's Changed</h2>
<ul>
<li>Added new supported Bucket Event types by <a href="https://github.com/bexsoft"><code>@​bexsoft</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1885">minio/minio-go#1885</a></li>
<li>Support External Id and Session Token by <a href="https://github.com/ekristen"><code>@​ekristen</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1887">minio/minio-go#1887</a></li>
<li>Link to godoc by <a href="https://github.com/klauspost"><code>@​klauspost</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1894">minio/minio-go#1894</a></li>
<li>Bump golang.org/x/net from 0.14.0 to 0.17.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1889">minio/minio-go#1889</a></li>
<li>Bump golang.org/x/net from 0.14.0 to 0.17.0 in /examples/minio by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1888">minio/minio-go#1888</a></li>
<li>Update s3-endpoints.go: add il-central-1 by <a href="https://github.com/emaildanwilson"><code>@​emaildanwilson</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1886">minio/minio-go#1886</a></li>
<li>Update the Go Quickstart README by <a href="https://github.com/feorlen"><code>@​feorlen</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1896">minio/minio-go#1896</a></li>
<li>Add Expires to PutObject opts by <a href="https://github.com/vadmeste"><code>@​vadmeste</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1900">minio/minio-go#1900</a></li>
<li>snowball: Support per object advanced PUT options by <a href="https://github.com/vadmeste"><code>@​vadmeste</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1901">minio/minio-go#1901</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ekristen"><code>@​ekristen</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1887">minio/minio-go#1887</a></li>
<li><a href="https://github.com/dependabot"><code>@​dependabot</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1889">minio/minio-go#1889</a></li>
<li><a href="https://github.com/emaildanwilson"><code>@​emaildanwilson</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1886">minio/minio-go#1886</a></li>
<li><a href="https://github.com/feorlen"><code>@​feorlen</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1896">minio/minio-go#1896</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/minio/minio-go/compare/v7.0.63...v7.0.64">https://github.com/minio/minio-go/compare/v7.0.63...v7.0.64</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0108287f5f"><code>0108287</code></a> snowball: Support per object advanced PUT options (<a href="https://redirect.github.com/minio/minio-go/issues/1901">#1901</a>)</li>
<li><a href="6eebdd6d5e"><code>6eebdd6</code></a> Add Expires to PutObject opts (<a href="https://redirect.github.com/minio/minio-go/issues/1900">#1900</a>)</li>
<li><a href="e0b6838500"><code>e0b6838</code></a> Update the Go Quickstart README (<a href="https://redirect.github.com/minio/minio-go/issues/1896">#1896</a>)</li>
<li><a href="4ec0ff83de"><code>4ec0ff8</code></a> Update s3-endpoints.go: add il-central-1 (<a href="https://redirect.github.com/minio/minio-go/issues/1886">#1886</a>)</li>
<li><a href="26ae627fff"><code>26ae627</code></a> Bump golang.org/x/net from 0.14.0 to 0.17.0 in /examples/minio (<a href="https://redirect.github.com/minio/minio-go/issues/1888">#1888</a>)</li>
<li><a href="49fd3d63d2"><code>49fd3d6</code></a> Bump golang.org/x/net from 0.14.0 to 0.17.0 (<a href="https://redirect.github.com/minio/minio-go/issues/1889">#1889</a>)</li>
<li><a href="fbae65cafe"><code>fbae65c</code></a> Link to godoc (<a href="https://redirect.github.com/minio/minio-go/issues/1894">#1894</a>)</li>
<li><a href="4c868ef069"><code>4c868ef</code></a> Support External Id and Session Token (<a href="https://redirect.github.com/minio/minio-go/issues/1887">#1887</a>)</li>
<li><a href="e783c9ba11"><code>e783c9b</code></a> Added new supported Bucket Events types (<a href="https://redirect.github.com/minio/minio-go/issues/1885">#1885</a>)</li>
<li><a href="5aaca534bb"><code>5aaca53</code></a> Update version to next release</li>
<li>See full diff in <a href="https://github.com/minio/minio-go/compare/v7.0.63...v7.0.64">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/minio/minio-go/v7&package-manager=go_modules&previous-version=7.0.63&new-version=7.0.64)](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-11-21 09:33:47 +00:00
dependabot[bot]
c17c19d2b3
⬆️ Bump actions/github-script from 6 to 7 (#4715)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/github-script/releases">actions/github-script's releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add base-url option by <a href="https://github.com/robandpdx"><code>@​robandpdx</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/429">actions/github-script#429</a></li>
<li>Expose async-function argument type by <a href="https://github.com/viktorlott"><code>@​viktorlott</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/402">actions/github-script#402</a>, see for details <a href="https://github.com/actions/github-script#use-scripts-with-jsdoc-support">https://github.com/actions/github-script#use-scripts-with-jsdoc-support</a></li>
<li>Update dependencies and use Node 20 by <a href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/425">actions/github-script#425</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/navarroaxel"><code>@​navarroaxel</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/285">actions/github-script#285</a></li>
<li><a href="https://github.com/robandpdx"><code>@​robandpdx</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/429">actions/github-script#429</a></li>
<li><a href="https://github.com/viktorlott"><code>@​viktorlott</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/402">actions/github-script#402</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/github-script/compare/v6.4.1...v7.0.0">https://github.com/actions/github-script/compare/v6.4.1...v7.0.0</a></p>
<h2>v6.4.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>@​octokit/plugin-request-log</code>, to produce debug output for requests by <a href="https://github.com/mjpieters"><code>@​mjpieters</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/358">actions/github-script#358</a></li>
<li>fix input handling by <a href="https://github.com/mjpieters"><code>@​mjpieters</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/357">actions/github-script#357</a></li>
<li>Remove unused dependencies by <a href="https://github.com/mjpieters"><code>@​mjpieters</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/356">actions/github-script#356</a></li>
<li>Default debug to current runner debug state by <a href="https://github.com/mjpieters"><code>@​mjpieters</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/363">actions/github-script#363</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mjpieters"><code>@​mjpieters</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/358">actions/github-script#358</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/github-script/compare/v6.4.0...v6.4.1">https://github.com/actions/github-script/compare/v6.4.0...v6.4.1</a></p>
<h2>v6.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump json5 from 2.1.3 to 2.2.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/319">actions/github-script#319</a></li>
<li>Bump minimatch from 3.0.4 to 3.1.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/320">actions/github-script#320</a></li>
<li>Add node-fetch by <a href="https://github.com/danmichaelo"><code>@​danmichaelo</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/321">actions/github-script#321</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jongwooo"><code>@​jongwooo</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/313">actions/github-script#313</a></li>
<li><a href="https://github.com/austinvazquez"><code>@​austinvazquez</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/306">actions/github-script#306</a></li>
<li><a href="https://github.com/danmichaelo"><code>@​danmichaelo</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/321">actions/github-script#321</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/github-script/compare/v6.3.3...v6.4.0">https://github.com/actions/github-script/compare/v6.3.3...v6.4.0</a></p>
<h2>v6.3.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@actions/glob</code> to 0.3.0 by <a href="https://github.com/nineinchnick"><code>@​nineinchnick</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/279">actions/github-script#279</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/nineinchnick"><code>@​nineinchnick</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/279">actions/github-script#279</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/github-script/compare/v6.3.2...v6.3.3">https://github.com/actions/github-script/compare/v6.3.2...v6.3.3</a></p>
<h2>v6.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​actions/core</code> to 1.10.0 by <a href="https://github.com/rentziass"><code>@​rentziass</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/295">actions/github-script#295</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="60a0d83039"><code>60a0d83</code></a> Merge pull request <a href="https://redirect.github.com/actions/github-script/issues/440">#440</a> from actions/joshmgross/v7.0.1</li>
<li><a href="b7fb2001b4"><code>b7fb200</code></a> Update version to 7.0.1</li>
<li><a href="12e22ed06b"><code>12e22ed</code></a> Merge pull request <a href="https://redirect.github.com/actions/github-script/issues/439">#439</a> from actions/joshmgross/avoid-setting-base-url</li>
<li><a href="d319f8f5b5"><code>d319f8f</code></a> Avoid setting <code>baseUrl</code> to undefined when input is not provided</li>
<li><a href="e69ef5462f"><code>e69ef54</code></a> Merge pull request <a href="https://redirect.github.com/actions/github-script/issues/425">#425</a> from actions/joshmgross/node-20</li>
<li><a href="ee0914b839"><code>ee0914b</code></a> Update licenses</li>
<li><a href="d6fc56f33b"><code>d6fc56f</code></a> Use <code>@types/node</code> for Node 20</li>
<li><a href="384d6cf581"><code>384d6cf</code></a> Fix quotations in tests</li>
<li><a href="84724927e3"><code>8472492</code></a> Only validate GraphQL <code>previews</code></li>
<li><a href="84903f5182"><code>84903f5</code></a> Remove <code>node-fetch</code> from type</li>
<li>Additional commits viewable in <a href="https://github.com/actions/github-script/compare/v6...v7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/github-script&package-manager=github_actions&previous-version=6&new-version=7)](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-11-20 17:17:30 +00:00
ashmrtn
a777359abe
Add logging like in exchange backup path (#4710)
Log both the given limits and the effective limits so we can figure out if something went wrong.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-18 06:21:08 +00:00
ashmrtn
fd91d36c91
Standardize naming for preview default limits (#4709)
#### 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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-18 03:43:34 +00:00
ashmrtn
dac4c70f61
Return details from restore function (#4712)
Minor cleanup that will also help reduce diff for future changes.

Instead of taking in a details builder and adding to it during
restore, just create a local details builder and return the built
details to the caller

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-18 02:23:46 +00:00
ashmrtn
a3fe9d8d2e
Test default drive limits are applied when expected (#4708)
#### 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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-18 01:56:35 +00:00
ashmrtn
bcf290d628
Preview backup for drive-backed services (#4699)
Add logic and tests for preview backups in drive-backed services.
Does slightly change a few of the options for preview backup limits

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-18 00:46:36 +00:00
Keepers
d45842fe5c
add toggle for using the delta tree via cli (#4694)
#### Does this PR need a docs update or release note?

- [x]  No

#### Issue(s)

* #4690

#### Test Plan

- [x]  Unit test
2023-11-18 00:00:58 +00:00
ashmrtn
8cf2c1b294
Cleaner way to disable merge bases during preview (#4711)
Switch to a cleaner way of disabling merge bases when making a preview backup. This sets the flag to not find merge bases instead of finding them and then dropping them.

Manually tested running a backup with `--preview` (local dev flag) and
`--disable-incrementals` and verified in the log that merge bases were
dropped 

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-17 22:05:56 +00:00
Keepers
f4ed4d7250
bump xsync to v3 (#4704)
three changes
1. bumps the xsync package to v3
2. creates a common package for synced maps
3. replaces all xsync MapOf imports with the new common/syncd package.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-17 18:57:29 +00:00
dependabot[bot]
0e14ccacc5
⬆️ Bump github.com/fatih/color from 1.15.0 to 1.16.0 in /src (#4707)
Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.15.0 to 1.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/fatih/color/releases">github.com/fatih/color's releases</a>.</em></p>
<blockquote>
<h2>v1.16.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update dependabot.yml by <a href="https://github.com/ilyabrin"><code>@​ilyabrin</code></a> in <a href="https://redirect.github.com/fatih/color/pull/200">fatih/color#200</a></li>
<li>color: add newline after wrapping text by <a href="https://github.com/fatih"><code>@​fatih</code></a> in <a href="https://redirect.github.com/fatih/color/pull/192">fatih/color#192</a></li>
<li>[Test] Nil check added by <a href="https://github.com/hyunsooda"><code>@​hyunsooda</code></a> in <a href="https://redirect.github.com/fatih/color/pull/203">fatih/color#203</a></li>
<li>fixes <a href="https://redirect.github.com/fatih/color/issues/206">#206</a> (using underline with a different fg color breaks) by <a href="https://github.com/gregpoirson"><code>@​gregpoirson</code></a> in <a href="https://redirect.github.com/fatih/color/pull/210">fatih/color#210</a></li>
</ul>
<h3>Dependency updates</h3>
<ul>
<li>Bump dominikh/staticcheck-action from 1.2.0 to 1.3.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/201">fatih/color#201</a></li>
<li>Bump github.com/mattn/go-isatty from 0.0.17 to 0.0.18 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/193">fatih/color#193</a></li>
<li>Bump golang.org/x/sys from 0.6.0 to 0.8.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/195">fatih/color#195</a></li>
<li>Bump github.com/mattn/go-isatty from 0.0.18 to 0.0.19 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/196">fatih/color#196</a></li>
<li>Bump golang.org/x/sys from 0.8.0 to 0.10.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/199">fatih/color#199</a></li>
<li>Bump github.com/mattn/go-isatty from 0.0.19 to 0.0.20 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/212">fatih/color#212</a></li>
<li>Bump golang.org/x/sys from 0.10.0 to 0.13.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/209">fatih/color#209</a></li>
<li>Bump actions/setup-go from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/202">fatih/color#202</a></li>
<li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/208">fatih/color#208</a></li>
<li>Bump golang.org/x/sys from 0.13.0 to 0.14.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/fatih/color/pull/213">fatih/color#213</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ilyabrin"><code>@​ilyabrin</code></a> made their first contribution in <a href="https://redirect.github.com/fatih/color/pull/200">fatih/color#200</a></li>
<li><a href="https://github.com/hyunsooda"><code>@​hyunsooda</code></a> made their first contribution in <a href="https://redirect.github.com/fatih/color/pull/203">fatih/color#203</a></li>
<li><a href="https://github.com/gregpoirson"><code>@​gregpoirson</code></a> made their first contribution in <a href="https://redirect.github.com/fatih/color/pull/210">fatih/color#210</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/fatih/color/compare/v1.15.0...v1.16.0">https://github.com/fatih/color/compare/v1.15.0...v1.16.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0f9779ed47"><code>0f9779e</code></a> Merge pull request <a href="https://redirect.github.com/fatih/color/issues/213">#213</a> from fatih/dependabot/go_modules/golang.org/x/sys-0.14.0</li>
<li><a href="0c78604296"><code>0c78604</code></a> Bump golang.org/x/sys from 0.13.0 to 0.14.0</li>
<li><a href="96e0f73dae"><code>96e0f73</code></a> Merge pull request <a href="https://redirect.github.com/fatih/color/issues/208">#208</a> from fatih/dependabot/github_actions/actions/checkout-4</li>
<li><a href="4c66e32708"><code>4c66e32</code></a> Bump actions/checkout from 3 to 4</li>
<li><a href="2fb03d682e"><code>2fb03d6</code></a> Merge pull request <a href="https://redirect.github.com/fatih/color/issues/202">#202</a> from fatih/dependabot/github_actions/actions/setup-go-4</li>
<li><a href="8ba7bbdda9"><code>8ba7bbd</code></a> Bump actions/setup-go from 3 to 4</li>
<li><a href="e3f97f3408"><code>e3f97f3</code></a> Merge pull request <a href="https://redirect.github.com/fatih/color/issues/209">#209</a> from fatih/dependabot/go_modules/golang.org/x/sys-0.13.0</li>
<li><a href="e146575883"><code>e146575</code></a> Bump golang.org/x/sys from 0.10.0 to 0.13.0</li>
<li><a href="d2d7a5e448"><code>d2d7a5e</code></a> Merge pull request <a href="https://redirect.github.com/fatih/color/issues/212">#212</a> from fatih/dependabot/go_modules/github.com/mattn/go-...</li>
<li><a href="f3e45da2c8"><code>f3e45da</code></a> Merge branch 'main' into dependabot/go_modules/github.com/mattn/go-isatty-0.0.20</li>
<li>Additional commits viewable in <a href="https://github.com/fatih/color/compare/v1.15.0...v1.16.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/fatih/color&package-manager=go_modules&previous-version=1.15.0&new-version=1.16.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-11-17 12:17:44 +00:00
ashmrtn
8e978cce37
Improve logging/variable grouping for exchange preview backup (#4705)
Just shuffling some variables and log statements around. No logic or
test changes beyond that

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-17 03:48:53 +00:00
Abhishek Pandey
0fcbf75f6f
Add connection timeout retries to item retry handler (#4706)
We were missing a retry for connection timeout issues. Adding it.

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-17 02:13:16 +00:00
ashmrtn
957a33b6d9
Finish wiring up Exchange preview backups (#4660)
This completes the wiring for Exchange preview backups. A few notable
points:
* Adds new config substruct(?) for limits on items/data
* Adds "reasonable defaults" (very small) for Exchange data categories
* Adds "important" and "skip" containers for Exchange data categories

All the above can be tweaked as we determine what values work best

Manually tested
1. regular backup
2. preview backup
3. regular backup

Verified that no merge base is used for the preview backup and the
merge base made in (1) is used for the backup in (3)

This feature is not exposed via CLI

May be easiest to review by commit

---

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

#### Issues

Merge after:
* #4657
* #4607

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-17 01:46:17 +00:00
Keepers
963d78b75e
move service api to client methods (#4701)
sdk consumers need a way to configure the graph api client options when using the services api.  This is the first in a two-part change to expose those options.  This step moves the api to a client-based set of methods instead of free functions.  The next step will add client configuration to the service client.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x] 💚 E2E
2023-11-17 01:03:57 +00:00
Keepers
2a85b61213
clean up unused graph error sentinels (#4683)
A handful of the error sentinel values in graph/errors.go were only around to comply with an old expectation that IsErr funcs have a matching sentinel.  That assumption is out of date, and there's no point in keeping around unused sentinels.

This PR makes three changes to clean up that issue:
1. remove unused sentinels (unused is qualifed as "not produced").
2. fix external pacakges which referenced those errors in tests alone by replacing those sentinels with odata errors.
3. centralize odata error test code to help support upstream package odata error creation.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-16 23:59:38 +00:00
Keepers
9ecefd2569
use counter in exchange backup enum (#4661)
Increase proliferation of the count bus to record runtime stats.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-16 23:22:00 +00:00
ashmrtn
7a21424ca7
Minor cleanup for drive backup code (#4698)
Just a few minor updates to stats logic to reset the counters if the delta is reset and also only count items if they weren't previously seen and counted.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-16 20:14:31 +00:00
ashmrtn
1cbabdb73a
Exchange restore service level handler functions (#4693)
Add service-level restore handlers for exchange

---

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

* #4254

merge after:
* #4687
* #4651

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 18:22:33 +00:00
Abin Simon
e0f51943a5
Update docs to include export commands (#4697)
<!-- 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
- [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-11-16 15:17:05 +00:00
Abin Simon
68256cf59f
Change printing of backup stats to single line (#4526)
Previously we were printing a table for a single item which, for one
was unnecessary, but this also make the output of a backup more
compact.

Before:

```
Logging to file: /home/meain/.cache/corso/logs/2023-10-20T10-21-23Z.log
Connecting to M365                               done
Connecting to repository                      1s done

Backing Up ∙ Teams Testing (meain)
Discovering items to backup                  27s done
    Libraries (TeamsTestingmeain)                  done (found 0 items)
    Libraries (TeamsTestingmeain-Shared0)          done (found 0 items)
    Libraries (TeamsTestingmeain-Private2)         done (found 0 items)
    Messages                                    7s done (found 6 channels)
Backing up data                               7s done
Backup complete ∙ 7b40dd40-f808-4d57-8e39-b4553e48dc5d
    ID                                    Bytes Uploaded  Items Uploaded  Items Skipped  Errors
    7b40dd40-f808-4d57-8e39-b4553e48dc5d  0 B             0               0              0

Completed Backups:
    ID                                    Started At            Duration       Status     Resource Owner
    7b40dd40-f808-4d57-8e39-b4553e48dc5d  2023-10-20T10:21:32Z  36.632747912s  Completed  Teams Testing (meain)
```

After:
```
Connecting to M365                               done
Connecting to repository                      1s done

Backing Up ∙ Teams Testing (meain)
Discovering items to backup                  31s done
    Libraries (TeamsTestingmeain)                  done (found 0 items)
    Libraries (TeamsTestingmeain-Shared0)          done (found 0 items)
    Libraries (TeamsTestingmeain-Private2)         done (found 0 items)
    Messages                                    9s done (found 6 channels)
Backing up data                               7s done
Backup complete ∙ ffb2f619-1cb7-4a11-b3e2-7300aa513c6a
Bytes Uploaded: 0 B | Items Uploaded: 0 | Items Skipped: 0 | Errors: 0

Completed Backups:
    ID                                    ID                    Started At     Duration   Status                 Resource Owner
    ffb2f619-1cb7-4a11-b3e2-7300aa513c6a  2023-10-20T10:23:35Z  40.096203016s  Completed  Teams Testing (meain)
```


---

#### 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: --->
- [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-11-16 12:43:27 +00:00
Abin Simon
b46f242bc4
Make the cli colorful and informational (#4525)
This commit include a few things that improves the progresbars and other info messages are printed out during the CLI run.

![2023-10-20-17-17-09](https://github.com/alcionai/corso/assets/14259816/30a25832-24cb-48ef-944d-6aaced1cd62f)

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-16 12:11:37 +00:00
Abhishek Pandey
f2102e55f6
Integrate sliding window limiter into exchange backup operation (#4680)
<!-- PR description-->

2nd last PR in the chain. Wires up the new sliding limiter into exchange backup create flows. I'll add some e2e regression tests to wrap it 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 09:58:00 +00:00
Abin Simon
dfea154cfe
Imrpove message -> eml conversion (#4651)
<!-- 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-11-16 07:39:34 +00:00
Abin Simon
c3b7246ee9
Improvements and tests for eml conversion (#4644)
<!-- PR description-->

---

#### 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
- [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. -->
* https://github.com/alcionai/corso/issues/3893

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 07:03:36 +00:00
Abin Simon
576b8b6370
Debug CLI for msg to eml conversion (#4643)
<!-- 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. -->
* https://github.com/alcionai/corso/issues/3893

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-16 06:28:28 +00:00
Abin Simon
140402361a
Add support for email exports (#4642)
<!-- PR description-->

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 05:43:05 +00:00
Abin Simon
fd9c431bea
Add cli for exchange export (#4641)
<!-- PR description-->

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 04:53:16 +00:00
Abin Simon
2dfe22dd0c
Converter for msg to eml (#4640)
Add logic to convert from msg(backup available in corso) to eml

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 04:23:04 +00:00
Abhishek Pandey
6bc80ca3be
Move rate limiter ctx binding to backup operation scope (#4679)
Currently we specify the service to rate limiter type bindings in `ProduceBackupCollections`. This means we lose the binding during `ConsumeBackupCollections` and default to using the exchange token bucket limiter for all services. Onedrive & SP are an exception here since we bind again during `streamItems`. 

This PR moves the binding call one level above, to `do` scope so that the same bindings stay applied for the entirety of the backup op.

Note: This change has a slight side effect on integration tests which directly test `ProduceBackupCollections`. We'll default to using exchange token bucket limiter for such integ tests for all services. This shouldn't impact test runs too much since exch limts(16 per sec) or upto 1160 per min are still pretty good compared to 1200 per min for onedrive. Also, since these tests are short running & won't be doing a load test, we should be fine here.

If there is an objection, I can add rate limiter bindings manually for these `ProduceBackupCollections` tests. 

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-16 03:49:48 +00:00
ashmrtn
51f44c2988
Add functions used for restore to existing service-level handlers (#4687)
This continues the push towards having service-level handlers that know
how to perform different operations. It adds the helper functions that
will be used during restore operations to the existing handler code

This logic is not currently used nor does this PR change the restore
call path

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 02:48:54 +00:00
Keepers
dbdd3f236c
add delta tree (#4692)
introduces the delta tree in drive collections

---

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

- [x]  No

#### Issue(s)

* #4689

#### Test Plan

- [x]  Unit test
2023-11-16 02:16:00 +00:00
Keepers
6fe6c9586d
retry item downloads on invalid token error (#4671)
this is an alternative possible response from graph api when the client is updating the token in-flight.  We normally catch this for item downloads, but are defaulting on permission downloads.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-16 01:46:34 +00:00
ashmrtn
cb4a8cb5c7
Use microsecond granularity for exchange tests (#4695)
Switch the folder name granularity to microseconds instead of seconds to avoid collisions with other concurrent CI test runs.

---

#### 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-11-16 01:06:59 +00:00
Abhishek Pandey
ff5d83c723
Move various limiter types behind a common interface (#4678)
Move the token bucket limiter (`rate.Limiter`) package behind a corso owned `Limiter` interface. This allows callers to request tokens without knowing what type of limiter they are waiting on.


---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2023-11-16 00:13:34 +00:00
Keepers
4c72e9eab7
use clues new|wrap|stackWC() (#4684)
replace all cases of new|wrap|stack(...).WithClues(ctx) with the flattened new|wrap|stackWC(ctx, ...) functions introduced in the latest clues bump.

Other changes added:
* remove WithClues builders when the error producer already called it.
* corrected some usages of ictx within loops.

no logic changes, just cleanup.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-15 23:01:08 +00:00
ashmrtn
ea2bf19bd1
Wire up config for pager result limit (#4657)
Allow callers of GetAddedRemovedItems to set the number of added items
they'd like returned from the call. Will eventually be leveraged for
Exchange preview backups

Doesn't change existing limits for pagers since everything uses the
default of zero for "get everything"

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-15 22:33:07 +00:00
Abhishek Pandey
71b0831c7b
Add a control option to disable sliding window limiter (#4676)
<!-- PR description-->

Add a killswitch for sliding window limiter.  This is only relevant for exchange backups  Setting this flag switches exchange backups to use the default token bucket rate limiter.

---

#### 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-11-15 21:54:46 +00:00
Abhishek Pandey
bc9d258ca0
Add WaitN support to limiter (#4675)
Adds `WaitN` support in sliding window limiter. WaitN blocks the request until all N tokens are acquired.  It addresses a concern raised [here](https://github.com/alcionai/corso/pull/4636#discussion_r1389686910) in an earlier `WaitN` implementation by ensuring that all N tokens get served to each request atomically. 

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-15 17:55:17 +00:00
Keepers
551bfd2b13
minor test enhancement (#4530)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-11-15 17:21:10 +00:00
Keepers
0294e27f2f
bump clues to latest (#4682)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
2023-11-15 01:16:11 +00:00
Abhishek Pandey
2e6cb20a59
Add limiter reset functionality (#4674)
This PR adds `Reset` support to limiter. In summary, it provides 2 things:
1. It resets limiter state & refills tokens to original capacity.
2. Reset is transparent to request senders, they can continue to call `Wait` even when reset is in progress. This is done using a new request level lock. It'll be useful towards `WaitN` implementation as well in a following PR. 

Reason for adding `Reset`:
1. Corso CLI supports backing up the entire tenant. Since exchange service limits are defined on a per app per mailbox basis, if we don't reset the sliding window limiter in between  n exchange resources, it'll artificially slow down n-1 resource backups. 
2. This is because sliding window limiter front allows front loading the requests. This is not a big problem with token bucket limiter, since it refills tokens at a constant rate of 16 per second. 
3. Ideally the rate limiter instance should be scoped to an exchange mailbox, and no `Reset` should be required. However, this would need some major refactoring of graph controller. Currently we use global rate limiter instances, and also the graph controller stays common for all resource backup operations. `Reset` allows us to keep using the global approach. 

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-14 22:18:34 +00:00
dependabot[bot]
65d0ba425c
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.24.0 to 1.25.0 in /src (#4668)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.24.0 to 1.25.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.25.0]- 2023-11-10</h2>
<ul>
<li>Weekly generation.</li>
</ul>
<h3>Changed</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b8836a2f64"><code>b8836a2</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/615">#615</a>)</li>
<li><a href="c301b8df9d"><code>c301b8d</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/614">#614</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="2795816d4d"><code>2795816</code></a> Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.8.0 to 1.9.0</li>
<li><a href="46ca257d24"><code>46ca257</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/610">#610</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="89106cfe7a"><code>89106cf</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.3.1 to 1.4.0</li>
<li><a href="9f7263506f"><code>9f72635</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/607">#607</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="eb710f57dc"><code>eb710f5</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.3.0 to 1.3.1</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.24.0...v1.25.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.24.0&new-version=1.25.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-11-14 21:27:16 +00:00
ashmrtn
e85e33c58e
Create a ContainerResolver that returns items in priority order (#4607)
Wrapper for existing graph.ContainerResolver structs that returns items
in priority order in the Items() function. Also has logic to filter out
containers if desired

This can help with things like preview backups where we only want to
backup a subset of items because it allows us to ensure we'll see the
containers we care about most first

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-14 20:42:36 +00:00
Abhishek Pandey
02108fab95
Remove unused control option for disabling concurrency limiter (#4677)
<!-- PR description-->

Concurrency limiter is stable and has been in use since several months. We had added a killswitch to disable it for safety reasons. It's not being used by SDK consumers, and hidden in corso cli. 

This PR removes the `--disable-concurrency-limiter` flag & associated control option.

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-14 19:45:34 +00:00
dependabot[bot]
05abdcd736
⬆️ Bump github.com/aws/aws-xray-sdk-go from 1.8.2 to 1.8.3 in /src (#4673)
Bumps [github.com/aws/aws-xray-sdk-go](https://github.com/aws/aws-xray-sdk-go) from 1.8.2 to 1.8.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-xray-sdk-go/releases">github.com/aws/aws-xray-sdk-go's releases</a>.</em></p>
<blockquote>
<h2>v1.8.3</h2>
<p>Please refer <a href="https://github.com/aws/aws-xray-sdk-go/blob/master/CHANGELOG.md">change-log</a> for more details</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-xray-sdk-go/blob/master/CHANGELOG.md">github.com/aws/aws-xray-sdk-go's changelog</a>.</em></p>
<blockquote>
<h1>Release v1.8.3 (2023-11-13)</h1>
<h3>SDK Enhancements</h3>
<h3>SDK Bugs</h3>
<ul>
<li>Update AWS SDK for Go depdencies <a href="https://redirect.github.com/aws/aws-xray-sdk-go/pull/430">#PR 430</a></li>
<li>Fix HTTP2 rapid reset vulnerability <a href="https://redirect.github.com/aws/aws-xray-sdk-go/pull/428">#PR 428</a></li>
<li>Omit URL's password when stringifying URL for segment name <a href="https://redirect.github.com/aws/aws-xray-sdk-go/pull/422">#PR 422</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e9627da6f4"><code>e9627da</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/432">#432</a> from wangzlei/master</li>
<li><a href="e09dc9485b"><code>e09dc94</code></a> Merge branch 'aws:master' into master</li>
<li><a href="8d58e76a42"><code>8d58e76</code></a> fix replacement path</li>
<li><a href="4c99e077a6"><code>4c99e07</code></a> sync depdencies between sample app and sdk</li>
<li><a href="073fef2274"><code>073fef2</code></a> sync depdencies between sample app and sdk</li>
<li><a href="10e351fe4d"><code>10e351f</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/431">#431</a> from wangzlei/master</li>
<li><a href="6b717c755a"><code>6b717c7</code></a> Update changelog for 1.8.3</li>
<li><a href="5e4aa69293"><code>5e4aa69</code></a> Update changelog for 1.8.3</li>
<li><a href="d8c763246e"><code>d8c7632</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/430">#430</a> from wangzlei/master</li>
<li><a href="31f613777a"><code>31f6137</code></a> clean go.sum by go mod tidy</li>
<li>Additional commits viewable in <a href="https://github.com/aws/aws-xray-sdk-go/compare/v1.8.2...v1.8.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-xray-sdk-go&package-manager=go_modules&previous-version=1.8.2&new-version=1.8.3)](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-11-14 17:25:50 +00:00
Vaibhav Kamra
477fc43485
Add progress logging to uploader (#4672)
Adds a progress log in the kopia upload that logs every 10000 files that have been uploaded.

This is useful to track progress of large backups.

---

#### 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. -->
* #4670 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-14 08:18:27 +00:00
ashmrtn
bb1f287e6a
Test error return values from pagers (#4656)
Some code (e.x. Exchange) continues to use the results from a pager even
in the event some errors occur. These tests help ensure we have
consistent return values when we see an error during enumeration

---

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-14 01:01:30 +00:00
ashmrtn
15418d0dda
Consolidate groups version bump tests (#4572)
#### 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)

* #4569

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-14 00:32:03 +00:00
ashmrtn
bb27b8e44d
Rename service handlers (#4571)
Rename these handlers to be base<Service>Handler so that we get some segmentation of functionality. This will allow us a bit of compile-time safety when it comes to accessing graph because the base handler doesn't contain a client instance. Essentially it allows us local access to things for operations like restore.

Future additions to the handler that require a client should wrap this base handler to provide that functionality. Export functions shouldn't be updated to be part of the new handler wrapper but should stay as part of the base handler so they continue to not have access to graph.

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-13 23:08:14 +00:00
ashmrtn
56e09a1a69
Helper functions to test generic backup flags (#4602)
Follow up on #4557 [comment](https://github.com/alcionai/corso/pull/4557#pullrequestreview-1701971318) to consolidate test code for ease of use

---

#### 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-11-13 22:34:47 +00:00
dependabot[bot]
f7b817e8ef
⬆️ Bump golang.org/x/tools from 0.14.0 to 0.15.0 in /src (#4634)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.14.0 to 0.15.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.14.1</h2>
<p>This release contains just two changes:</p>
<ul>
<li>A workaround for a regression affecting some users of <code>GOPACKAGESDRIVER</code>: <a href="https://redirect.github.com/golang/go/issues/63751">golang/go#63751</a>, for example those using gopls with an older version of <a href="https://bazel.build/">Bazel</a>. When the <a href="https://pkg.go.dev/golang.org/x/tools/go/packages"><code>go/packages</code></a> driver is missing compiler or architecture information, gopls now assumes a default value rather than failing to load package information.</li>
<li>A fix for a minor bug in the <a href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.14.0">new</a> &quot;remove unused parameter&quot; refactoring: <a href="https://redirect.github.com/golang/go/issues/63755">golang/go#63755</a>. Notably, this bug was discovered via an automated report from someone who had opted in to <a href="https://telemetry.go.dev/privacy">Go telemetry</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="729e159c03"><code>729e159</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="38ed81a6b5"><code>38ed81a</code></a> gopls/internal/regtest/marker: porting extract tests</li>
<li><a href="bbf8380961"><code>bbf8380</code></a> gopls/internal/regtest/marker: use golden diffs for suggested fixes</li>
<li><a href="51df92b224"><code>51df92b</code></a> go/ssa: two minor cleanups</li>
<li><a href="e7fb31ad45"><code>e7fb31a</code></a> internal/cmd/deadcode: rename -format to -f</li>
<li><a href="c538b4e994"><code>c538b4e</code></a> internal/cmd/deadcode: add -whylive=function flag</li>
<li><a href="b753e58b84"><code>b753e58</code></a> internal/lsp/helper: fix misspelled &quot;Code generated&quot; comment</li>
<li><a href="2638d66336"><code>2638d66</code></a> internal/cmd/deadcode: omit package/func keywords in default output</li>
<li><a href="118c362a56"><code>118c362</code></a> gopls/internal/lsp/source: fix signatureHelp with pointer receivers</li>
<li><a href="4124316da0"><code>4124316</code></a> gopls/internal/lsp/cache: remove baseCtx from the View</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/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/tools&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-11-13 21:55:16 +00:00
dependabot[bot]
4df0d28ae1
⬆️ Bump github.com/golang-jwt/jwt/v5 from 5.0.0 to 5.1.0 in /src (#4627)
Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.0.0 to 5.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/golang-jwt/jwt/releases">github.com/golang-jwt/jwt/v5's releases</a>.</em></p>
<blockquote>
<h2>v5.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Using jwt's native <code>ErrInvalidType</code> instead of <code>json.UnsupportedTypeError</code> by <a href="https://github.com/oxisto"><code>@​oxisto</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/316">golang-jwt/jwt#316</a></li>
<li>Fix typos in comments and test names by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/317">golang-jwt/jwt#317</a></li>
<li>Format: add whitespaces, remove empty lines by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/319">golang-jwt/jwt#319</a></li>
<li>Refactor example: use io.ReadAll instead of io.Copy by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/320">golang-jwt/jwt#320</a></li>
<li>Refactor code by using switch instead of if-else by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/318">golang-jwt/jwt#318</a></li>
<li>A quick way to validate token string by <a href="https://github.com/dcalsky"><code>@​dcalsky</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/302">golang-jwt/jwt#302</a></li>
<li>Refactor: remove unnecessary []byte conversion to string by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/330">golang-jwt/jwt#330</a></li>
<li>Refactor: compare strings with strings.EqualFold by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/329">golang-jwt/jwt#329</a></li>
<li>Avoid use of json.NewDecoder by <a href="https://github.com/craigpastro"><code>@​craigpastro</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/313">golang-jwt/jwt#313</a></li>
<li>Update ParseUnverified godoc by <a href="https://github.com/duhaesbaert"><code>@​duhaesbaert</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/341">golang-jwt/jwt#341</a></li>
<li>Update ci workflows (add go1.21) by <a href="https://github.com/mfridman"><code>@​mfridman</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/345">golang-jwt/jwt#345</a></li>
<li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/346">golang-jwt/jwt#346</a></li>
<li>Key rotation with VerificationKeySet by <a href="https://github.com/mfridman"><code>@​mfridman</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/344">golang-jwt/jwt#344</a></li>
<li>Add explicit ClaimsValidator implementation check for custom claims by <a href="https://github.com/epelc"><code>@​epelc</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/343">golang-jwt/jwt#343</a></li>
<li>feat: allow making exp claim required by <a href="https://github.com/tareksha"><code>@​tareksha</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/351">golang-jwt/jwt#351</a></li>
<li>Add error handling to examples by <a href="https://github.com/craigpastro"><code>@​craigpastro</code></a> in <a href="https://redirect.github.com/golang-jwt/jwt/pull/312">golang-jwt/jwt#312</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/alexandear"><code>@​alexandear</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/317">golang-jwt/jwt#317</a></li>
<li><a href="https://github.com/dcalsky"><code>@​dcalsky</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/302">golang-jwt/jwt#302</a></li>
<li><a href="https://github.com/craigpastro"><code>@​craigpastro</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/313">golang-jwt/jwt#313</a></li>
<li><a href="https://github.com/duhaesbaert"><code>@​duhaesbaert</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/341">golang-jwt/jwt#341</a></li>
<li><a href="https://github.com/epelc"><code>@​epelc</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/343">golang-jwt/jwt#343</a></li>
<li><a href="https://github.com/tareksha"><code>@​tareksha</code></a> made their first contribution in <a href="https://redirect.github.com/golang-jwt/jwt/pull/351">golang-jwt/jwt#351</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/golang-jwt/jwt/compare/v5.0.0...v5.1.0">https://github.com/golang-jwt/jwt/compare/v5.0.0...v5.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c776b83291"><code>c776b83</code></a> Add error handling to examples (<a href="https://redirect.github.com/golang-jwt/jwt/issues/312">#312</a>)</li>
<li><a href="908d356713"><code>908d356</code></a> feat: allow making exp claim required (<a href="https://redirect.github.com/golang-jwt/jwt/issues/351">#351</a>)</li>
<li><a href="0cb4fa15e3"><code>0cb4fa1</code></a> docs: fix comment in KeyFunc</li>
<li><a href="c80de55abe"><code>c80de55</code></a> Add explicit ClaimsValidator implementation check for custom claims (<a href="https://redirect.github.com/golang-jwt/jwt/issues/343">#343</a>)</li>
<li><a href="1e76606719"><code>1e76606</code></a> Key rotation with VerificationKeySet (<a href="https://redirect.github.com/golang-jwt/jwt/issues/344">#344</a>)</li>
<li><a href="1691aa9e6f"><code>1691aa9</code></a> Bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/golang-jwt/jwt/issues/346">#346</a>)</li>
<li><a href="27ff2f3868"><code>27ff2f3</code></a> Update ci workflows (add go1.21) (<a href="https://redirect.github.com/golang-jwt/jwt/issues/345">#345</a>)</li>
<li><a href="6879d2cf1f"><code>6879d2c</code></a> Update ParseUnverified godoc (<a href="https://redirect.github.com/golang-jwt/jwt/issues/341">#341</a>)</li>
<li><a href="78e25d6b09"><code>78e25d6</code></a> Avoid use of json.NewDecoder (<a href="https://redirect.github.com/golang-jwt/jwt/issues/313">#313</a>)</li>
<li><a href="8aa5d6cef8"><code>8aa5d6c</code></a> Refactor to use strings.EqualFold (<a href="https://redirect.github.com/golang-jwt/jwt/issues/329">#329</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/golang-jwt/jwt/compare/v5.0.0...v5.1.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/golang-jwt/jwt/v5&package-manager=go_modules&previous-version=5.0.0&new-version=5.1.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-11-13 21:17:35 +00:00
dependabot[bot]
664711777e
⬆️ Bump golang.org/x/net from 0.16.0 to 0.17.0 in /src (#4474)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.16.0 to 0.17.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="b225e7ca6d"><code>b225e7c</code></a> http2: limit maximum handler goroutines to MaxConcurrentStreams</li>
<li>See full diff in <a href="https://github.com/golang/net/compare/v0.16.0...v0.17.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.16.0&new-version=0.17.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>

> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
2023-11-13 20:24:32 +00:00
Niraj Tolia
f7e4b3570f
Pin tw-elements version to prevent change from MIT to AGPL (#4667)
Need to pin this package to an exact version

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation

#### Test Plan

- [x] 💪 Manual
2023-11-13 19:20:55 +00:00
Keepers
2ccd7da6a8
add a resource getter setter to newServiceHandler (#4666)
This sets us up to remove the service declaration
from the two-step repo creation + init/config, and allows sdk consumers to return to ignoring service until acting on the operation.
---

replacement branch for: https://github.com/alcionai/corso/pull/4494
2023-11-13 17:49:53 +00:00
dependabot[bot]
b14b7267fe
⬆️ Bump clsx from 1.2.1 to 2.0.0 in /website (#4669)
Bumps [clsx](https://github.com/lukeed/clsx) from 1.2.1 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/lukeed/clsx/releases">clsx's releases</a>.</em></p>
<blockquote>
<h2>v2.0.0</h2>
<h2>Breaking</h2>
<ul>
<li>Add <code>&quot;exports&quot;</code> map for native ESM support (<a href="https://redirect.github.com/lukeed/clsx/issues/57">#57</a>): 3ec8e9f, 0949868
<em>Also supports TypeScript's <code>node16</code>/<code>nodenext</code> module resolution</em>
<em>Maintains CommonJS support (with fixed TS definitions)</em>
<em>Thank you <a href="https://github.com/remcohaszing"><code>@​remcohaszing</code></a>~!</em></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Add <a href="https://github.com/lukeed/clsx#tailwind-support">Tailwind Support</a> section to README (<a href="https://redirect.github.com/lukeed/clsx/issues/65">#65</a>, <a href="https://redirect.github.com/lukeed/clsx/issues/68">#68</a>): 496db1d, 4a4eadd
<em>Thank you <a href="https://github.com/kevinlowe0x3F7"><code>@​kevinlowe0x3F7</code></a> &amp; <a href="https://github.com/kevinlowe0x3F7"><code>@​kevinlowe0x3F7</code></a></em></li>
<li>Add tests for numbers &amp; variadic number arguments: c520353</li>
<li>Update package module size: 03e1cf9</li>
</ul>
<hr />
<blockquote>
<p><strong>Full Changelog</strong>: <a href="https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0">https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0</a></p>
</blockquote>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6232a9e564"><code>6232a9e</code></a> 2.0.0</li>
<li><a href="23b2ced389"><code>23b2ced</code></a> 2.0.0-next.0</li>
<li><a href="0949868388"><code>0949868</code></a> fix: include <code>*.d.mts</code> in pkg zip</li>
<li><a href="c520353bd6"><code>c520353</code></a> chore: add <code>numbers</code> tests;</li>
<li><a href="03e1cf9149"><code>03e1cf9</code></a> chore: update pkg size</li>
<li><a href="3ec8e9fa2f"><code>3ec8e9f</code></a> break: include &quot;exports&quot; map w/ &quot;types&quot; conditions (<a href="https://redirect.github.com/lukeed/clsx/issues/57">#57</a>)</li>
<li><a href="4a4eadd3e4"><code>4a4eadd</code></a> chore: readme typo (<a href="https://redirect.github.com/lukeed/clsx/issues/68">#68</a>)</li>
<li><a href="496db1dd74"><code>496db1d</code></a> chore: add Tailwind readme section (<a href="https://redirect.github.com/lukeed/clsx/issues/65">#65</a>)</li>
<li>See full diff in <a href="https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clsx&package-manager=npm_and_yarn&previous-version=1.2.1&new-version=2.0.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-11-13 05:41:34 +00:00
Hitesh Pattanayak
40c7476e24
generate repository config name based on provider specific hash (#4639)
Enable user/client to be able to perform multiple backups in a concurrent manner irrespective of storage provider (s3/filesystem) for different tenants (anything that differentiates one account from another).

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

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

#### Issue(s)

* #4443 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-11 09:27:06 +00:00
Hitesh Pattanayak
0b997e6176
set repository config location w.r.t corso config location (#4638)
Create repository config(s) in the same parent directory as corso config instead of creating repository config in `/tmp` directory.
Scenarios:

1. CORSO_CONFIG_DIR set to /test/directory, --config-file not provided
    - `.corso.toml` should be created at /test/directory
    - `repository.config` should be created at /test/directory
2. CORSO_CONFIG_DIR not set, --config-file provided /test/directory-2
    - `.corso.toml` should be created at /test/directory-2
    - `repository.config` should be created at /test/directory-2
3. CORSO_CONFIG_DIR not set, --config-file not provided
    - `.corso.toml` should be created at /home/user
    - `repository.config` should be created at /home/user

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

#### Issue(s)

* #4443 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-11 06:23:26 +00:00
ashmrtn
73112f695b
Move groups version bump tests to nightly (#4659)
Make version bump regression tests nightly tests instead of running on every push. Just code lift'n'shift with no logic changes.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-11 02:55:05 +00:00
ashmrtn
ffd7c2a2ee
Fix test flake (#4658)
#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-11 02:28:43 +00:00
jules
bb86610488
Getlicenseinfo (#4655)
Adds a call to get user total count of licenses. Also corrects one test ID which i hope doesn't break E2E tests (although it should if it does, ha)

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-10 23:13:47 +00:00
Niraj Tolia
d31a91eac5
Upgrade to Docusaurus v3.0.0 (#4654)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🗺️ Documentation

#### Test Plan

- [x] 💪 Manual
2023-11-10 22:37:09 +00:00
Keepers
80feeace3b
ensure invalid deltas result in new state collections (#4623)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-10 21:45:27 +00:00
Hitesh Pattanayak
e9118abe9f
abstract kopia setup code (#4637)
Refactors the repository code to abstract code responsible for kopia related setup.

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

#### Issue(s)

* #

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-10 21:03:36 +00:00
ashmrtn
c85d364bcd
Allow limiting or cancelling pager enumeration (#4625)
Add the ability to cancel a pager partway through enumeration. This
will allow us to later request a specific number of items from the
pager. In those cases we should ideally fetch one page beyond what's
required to get the requested number of items (due to the pager
running in another goroutine)

Does not change the result set or add the ability to request a certain
number of items right now

May be easier to review by commit

---

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

- [ ]  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
- [ ] 🗺️ 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-11-10 20:33:27 +00:00
Hitesh Pattanayak
52c788eac5
check path equivalency (#4635)
<!-- PR description-->

This change is to address the path related issue that comes up while `corso repo connect filesystem`.
Below are the steps to reciprocate:
1. Initialize repo with filesystem provider (Notice that the path has a trailing slash): 
command: `./corso repo init filesystem --path ~/Documents/Backups/`
output:
Logging to file: ~/.cache/corso/logs/2023-11-09T05-21-57Z.log
Connecting to M365:         done 
Initializing repository   
Initialized a repository at path ~/Documents/Backups/

2. Connect repo with filesystem provider:
command: `./corso repo connect filesystem --path ~/Documents/Backups/`
output:
Logging to file: ~/.cache/corso/logs/2023-11-09T05-23-30Z.log
Error: retrieving storage provider details: verifying storage configs in corso config file: verifying configs in corso config file: value of path (~/Documents/Backups) does not match corso configuration value (~/Documents/Backups/)

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-10 19:59:12 +00:00
Keepers
5362137116
expose graph options to sdk clients (#4653)
1. moves the m365/graph package from internal to pkg/services/api so that options are accessible to sdk users.
2. exposes graph.Options in the api client.Service call.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature
2023-11-10 19:26:59 +00:00
Keepers
85d13b382a
some minor logging touchups (#4617)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-10 18:40:57 +00:00
dependabot[bot]
fedde050ea
⬆️ Bump mermaid from 10.6.0 to 10.6.1 in /website (#4650)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.6.0 to 10.6.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="65daab2aaf"><code>65daab2</code></a> chore: release v10.6.1</li>
<li><a href="7c7f3dd8be"><code>7c7f3dd</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/5016">#5016</a> from aloisklink/fix/4964-fix-invalid-ellipseText-regex</li>
<li><a href="172d90e731"><code>172d90e</code></a> fix(flow): fix invalid ellipseText regex</li>
<li><a href="f5bd1e0809"><code>f5bd1e0</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4997">#4997</a> from mermaid-js/renovate/all-minor</li>
<li><a href="0d4faef758"><code>0d4faef</code></a> chore(deps): update all minor dependencies</li>
<li><a href="77667b94d3"><code>77667b9</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4975">#4975</a> from mermaid-js/add-docusaurus</li>
<li><a href="b85a48f7f7"><code>b85a48f</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4976">#4976</a> from mermaid-js/renovate/patch-all-patch</li>
<li><a href="34f1db399f"><code>34f1db3</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4979">#4979</a> from karthxk07/develop</li>
<li><a href="e8a04faa36"><code>e8a04fa</code></a> chore(deps): update all patch dependencies</li>
<li><a href="d714ecb4d7"><code>d714ecb</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4994">#4994</a> from alex-titarenko/docs/add-noteshub-tool</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.6.0...v10.6.1">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~aloisklink">aloisklink</a>, a new releaser for mermaid since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.6.0&new-version=10.6.1)](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-11-10 18:03:55 +00:00
Keepers
1f756ce34f
support debug reading out delta files (#4629)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x] 💪 Manual
2023-11-10 16:19:16 +00:00
ashmrtn
d173551d25
Check if delta link is populated in tests (#4624)
Update new test framework to populate page delta links and check if
a delta value is returned when expected. The exact value is not
compared but we do check if the value is non-empty

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-10 03:24:17 +00:00
ashmrtn
7662cfca68
Consolidate pager tests while adding more coverage (#4622)
Rewrite the pager tests to more uniformly test the different outcomes
when various pagers/configurations are used

This PR splits tests into two main categories: those that deal with
getting results from a single pager with no resets etc and those that
deal with resets, fallbacks, and other similar things

All tests now check for correctness when the pager does and doesn't
support returning mod times

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-10 01:51:10 +00:00
ashmrtn
16782d90d6
Don't allow merge bases for preview backups (#4628)
Preview backups may use different delta token query parameters
and we don't want them to get only changes from the last possible
backup. Avoid fine-grained tracking of this sort of stuff by just
discarding all merge bases

Keeping the bases as assist bases is fine because they'll only source
unchanged data when possible

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-10 00:54:07 +00:00
ashmrtn
3901087b60
Cleanup and consolidate test code for pagers (#4616)
Mostly logic rearrangement with a small test addition to
BatchEnumerateItems

Allow test pagers to return multiple pages and consolidate logic by
using the non-delta pager to source most of the logic for the delta
pager

May be easier to review by commit

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-10 00:18:46 +00:00
Abhishek Pandey
a4d7f56396
Implement a sliding window rate limiter (#4618)
<!-- PR description-->

Create a sliding window rate limiter which provides 2 guarantees:
1. Ensures we stay within service limits for a given window duration. 
2. Allows token tracking and window sliding at a finer resolution. This allows for more accuracy at the cost of more frequent sliding & more memory usage.

This implementation is partially inspired by the centralized token grant mechanism in https://github.com/reugn/equalizer#slider. 


---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-09 03:00:08 +00:00
Abhishek Pandey
85f8c9b735
Ensure each drive gets a unique url cache instance (#4631)
<!-- PR description-->

This fixes an url cache bug. We were incorrectly attaching the same url cache instance to all drives belonging to a sharepoint library. If a library has n drives, this bug had an effect of turning off cache for n - 1 drives. 

---

#### 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
- [x] 💚 E2E
2023-11-08 22:17:35 +00:00
Abin Simon
3f88ee4f44
Update gci cli args in Makefile (#4621)
Looks like newer version of gci cli has changed the way to pass cli args.

<!-- 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
- [ ] 🧹 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-11-08 16:46:39 +00:00
Keepers
49bbdfc096
add getPostIDs in conversations pager (#4578)
adds the getPostIDs func to ensure conversations
complies with standard data paging patterns

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4536

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-11-07 21:57:55 +00:00
Abhishek Pandey
ec1afa8c84
Add $top param for drive pagers (#4619)
<!-- PR description-->

Closes https://github.com/alcionai/corso/issues/4614 


---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-07 07:22:29 +00:00
Abhishek Pandey
ea6a57b2a5
Share count bus between graph clients and backup/restore operations (#4605)
<!-- PR description-->

With #4497 changes, any counters that we log in graph middlewares ( e.g. `APICallTokensConsumed` or `ThrottledAPICalls`) will no longer show up in `BackupOperation.Results.Counts`. 

This is because graph adapters and backup operation will be initialized with different count busses. Since the backup result counts are captured from the operation bus, we will lose out on any graph metrics captured in middleware layers. This PR unifies the busses. 

Ill also add a regression check for graph metrics shortly

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-07 06:41:11 +00:00
Abin Simon
ea308055eb
Handle folder being deleted and recreated in between a backup (#4612)
Previously if a folder with the same name was deleted and recreated, we would error out. This fixes that by ensuring that only the final collection makes it into the final set.

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-06 23:13:17 +00:00
Keepers
3261eefda2
boilerplate introduction of the conversations api (#4570)
adds basic get requests for the conversations api set to the api package.  Plust some other minor change for formatting, correctness, or necessity.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4536 

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-06 20:05:52 +00:00
dependabot[bot]
dddd8ac722
⬆️ Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 in /src (#4611)
Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.7.0 to 1.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/spf13/cobra/releases">github.com/spf13/cobra's releases</a>.</em></p>
<blockquote>
<h2>v1.8.0</h2>
<h2> Features</h2>
<ul>
<li>Support usage as plugin for tools like kubectl by <a href="https://github.com/nirs"><code>@​nirs</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2018">spf13/cobra#2018</a> - this means that programs that utilize a &quot;plugin-like&quot; structure have much better support and usage (like for completions, command paths, etc.)</li>
<li>Move documentation sources to site/content by <a href="https://github.com/umarcor"><code>@​umarcor</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1428">spf13/cobra#1428</a></li>
<li>Add 'one required flag' group by <a href="https://github.com/marevers"><code>@​marevers</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1952">spf13/cobra#1952</a> - this includes a new <code>MarkFlagsOneRequired</code> API for flags which can be used to mark a flag group as required and cause command failure if at least one is not used when invoked.</li>
<li>Customizable error message prefix by <a href="https://github.com/5ouma"><code>@​5ouma</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2023">spf13/cobra#2023</a> - This adds the <code>SetErrPrefix</code> and <code>ErrPrefix</code> APIs on the <code>Command</code> struct to allow for setting a custom prefix for errors</li>
<li>feat: add getters for flag completions by <a href="https://github.com/avirtopeanu-ionos"><code>@​avirtopeanu-ionos</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1943">spf13/cobra#1943</a></li>
<li>Feature: allow running persistent run hooks of all parents by <a href="https://github.com/vkhoroz"><code>@​vkhoroz</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2044">spf13/cobra#2044</a></li>
<li>Improve API to get flag completion function by <a href="https://github.com/marckhouzam"><code>@​marckhouzam</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2063">spf13/cobra#2063</a></li>
</ul>
<h2>🐛 Bug fixes</h2>
<ul>
<li>Fix typo in fish completions by <a href="https://github.com/twpayne"><code>@​twpayne</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1945">spf13/cobra#1945</a></li>
<li>Fix grammar: 'allows to' by <a href="https://github.com/supertassu"><code>@​supertassu</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1978">spf13/cobra#1978</a></li>
<li>powershell: escape variable with curly brackets by <a href="https://github.com/Luap99"><code>@​Luap99</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1960">spf13/cobra#1960</a></li>
<li>Don't complete --help flag when flag parsing disabled by <a href="https://github.com/marckhouzam"><code>@​marckhouzam</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2061">spf13/cobra#2061</a></li>
<li>Replace all non-alphanumerics in active help env var program prefix by <a href="https://github.com/scop"><code>@​scop</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1940">spf13/cobra#1940</a></li>
</ul>
<h2>🔧 Maintenance</h2>
<ul>
<li>build(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1971">spf13/cobra#1971</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1976">spf13/cobra#1976</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2021">spf13/cobra#2021</a></li>
<li>build(deps): bump actions/setup-go from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1934">spf13/cobra#1934</a></li>
<li>build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.2 to 2.0.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2047">spf13/cobra#2047</a></li>
<li>build(deps): bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2028">spf13/cobra#2028</a></li>
<li>command: temporarily disable G602 due to <a href="https://redirect.github.com/securego/gosec/issues/1005">securego/gosec#1005</a> by <a href="https://github.com/umarcor"><code>@​umarcor</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2022">spf13/cobra#2022</a></li>
</ul>
<h2>🧪 Testing &amp; CI/CD</h2>
<ul>
<li>test: make fish_completions_test more robust by <a href="https://github.com/branchvincent"><code>@​branchvincent</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1980">spf13/cobra#1980</a></li>
<li>golangci: enable 'unused' and disable deprecated replaced by it by <a href="https://github.com/umarcor"><code>@​umarcor</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/1983">spf13/cobra#1983</a></li>
<li>cleanup: minor corrections to unit tests by <a href="https://github.com/JunNishimura"><code>@​JunNishimura</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2003">spf13/cobra#2003</a></li>
<li>ci: test golang 1.21 by <a href="https://github.com/nunoadrego"><code>@​nunoadrego</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2024">spf13/cobra#2024</a></li>
<li>Fix linter errors by <a href="https://github.com/marckhouzam"><code>@​marckhouzam</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2052">spf13/cobra#2052</a></li>
<li>Add tests for flag completion registration by <a href="https://github.com/marckhouzam"><code>@​marckhouzam</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2053">spf13/cobra#2053</a></li>
</ul>
<h2>✏️ Documentation</h2>
<ul>
<li>doc: fix typo, Deperecated -&gt; Deprecated by <a href="https://github.com/callthingsoff"><code>@​callthingsoff</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2000">spf13/cobra#2000</a></li>
<li>Add notes to doc about the execution condition of *PreRun and *PostRun functions by <a href="https://github.com/haoming29"><code>@​haoming29</code></a> in <a href="https://redirect.github.com/spf13/cobra/pull/2041">spf13/cobra#2041</a></li>
</ul>
<hr />
<p>Thank you everyone who contributed to this release and all your hard work! Cobra and this community would never be possible without all of you!!!! 🐍</p>
<p><strong>Full Changelog</strong>: <a href="https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0">https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a0a6ae020b"><code>a0a6ae0</code></a> Improve API to get flag completion function (<a href="https://redirect.github.com/spf13/cobra/issues/2063">#2063</a>)</li>
<li><a href="890302a35f"><code>890302a</code></a> Support usage as plugin for tools like kubectl (<a href="https://redirect.github.com/spf13/cobra/issues/2018">#2018</a>)</li>
<li><a href="48cea5c87b"><code>48cea5c</code></a> build(deps): bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/spf13/cobra/issues/2028">#2028</a>)</li>
<li><a href="22953d8845"><code>22953d8</code></a> Replace all non-alphanumerics in active help env var program prefix (<a href="https://redirect.github.com/spf13/cobra/issues/1940">#1940</a>)</li>
<li><a href="00b68a1c26"><code>00b68a1</code></a> Add tests for flag completion registration (<a href="https://redirect.github.com/spf13/cobra/issues/2053">#2053</a>)</li>
<li><a href="b711e8760b"><code>b711e87</code></a> Don't complete --help flag when flag parsing disabled (<a href="https://redirect.github.com/spf13/cobra/issues/2061">#2061</a>)</li>
<li><a href="8b1eba4761"><code>8b1eba4</code></a> Fix linter errors (<a href="https://redirect.github.com/spf13/cobra/issues/2052">#2052</a>)</li>
<li><a href="4cafa37bc4"><code>4cafa37</code></a> Allow running persistent run hooks of all parents (<a href="https://redirect.github.com/spf13/cobra/issues/2044">#2044</a>)</li>
<li><a href="5c962a221e"><code>5c962a2</code></a> build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.2 to 2.0.3 (<a href="https://redirect.github.com/spf13/cobra/issues/2047">#2047</a>)</li>
<li><a href="efe8fa3e44"><code>efe8fa3</code></a> build(deps): bump actions/setup-go from 3 to 4 (<a href="https://redirect.github.com/spf13/cobra/issues/1934">#1934</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/cobra&package-manager=go_modules&previous-version=1.7.0&new-version=1.8.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-11-06 15:32:47 +00:00
dependabot[bot]
994024567a
⬆️ Bump golang.org/x/time from 0.3.0 to 0.4.0 in /src (#4610)
Bumps [golang.org/x/time](https://github.com/golang/time) from 0.3.0 to 0.4.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="b24d3b5e50"><code>b24d3b5</code></a> all: add a go directive, set it to 1.18</li>
<li>See full diff in <a href="https://github.com/golang/time/compare/v0.3.0...v0.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/time&package-manager=go_modules&previous-version=0.3.0&new-version=0.4.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-11-06 14:55:59 +00:00
dependabot[bot]
7cc06bed99
⬆️ Bump actions/checkout from 2 to 4 (#4609)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node20 by <a href="https://github.com/takost"><code>@​takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li>Support fetching without the --progress option by <a href="https://github.com/simonbaird"><code>@​simonbaird</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
<li>Release 4.0.0 by <a href="https://github.com/takost"><code>@​takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li><a href="https://github.com/simonbaird"><code>@​simonbaird</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p>
<h2>v3.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Mark test scripts with Bash'isms to be run via Bash by <a href="https://github.com/dscho"><code>@​dscho</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li>
<li>Add option to fetch tags even if fetch-depth &gt; 0 by <a href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li>Release 3.6.0 by <a href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li><a href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p>
<h2>v3.5.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Checkout Issue in self hosted runner due to faulty submodule check-ins by <a href="https://github.com/megamanics"><code>@​megamanics</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li>Fix typos found by codespell by <a href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li>Add support for sparse checkouts by <a href="https://github.com/dscho"><code>@​dscho</code></a> and <a href="https://github.com/dfdez"><code>@​dfdez</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
<li>Release v3.5.3 by <a href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/megamanics"><code>@​megamanics</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li><a href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li><a href="https://github.com/dfdez"><code>@​dfdez</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p>
<h2>v3.5.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Use correct API url / endpoint in GHES by <a href="https://github.com/fhammerl"><code>@​fhammerl</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a> based on <a href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a> by <a href="https://github.com/1newsr"><code>@​1newsr</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p>
<h2>v3.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve checkout performance on Windows runners by upgrading <code>@​actions/github</code> dependency by <a href="https://github.com/BrettDong"><code>@​BrettDong</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/BrettDong"><code>@​BrettDong</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v4.1.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1396">Add support for partial checkout filters</a></li>
</ul>
<h2>v4.0.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1067">Support fetching without the --progress option</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1436">Update to node20</a></li>
</ul>
<h2>v3.6.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark test scripts with Bash'isms to be run via Bash</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/579">Add option to fetch tags even if fetch-depth &gt; 0</a></li>
</ul>
<h2>v3.5.3</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1196">Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix typos found by codespell</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1369">Add support for sparse checkouts</a></li>
</ul>
<h2>v3.5.2</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1289">Fix api endpoint for GHES</a></li>
</ul>
<h2>v3.5.1</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1246">Fix slow checkout on Windows</a></li>
</ul>
<h2>v3.5.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1237">Add new public key for known_hosts</a></li>
</ul>
<h2>v3.4.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1209">Upgrade codeql actions to v2</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1210">Upgrade dependencies</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1225">Upgrade <code>@​actions/io</code></a></li>
</ul>
<h2>v3.3.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1045">Implement branch list using callbacks from exec function</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1050">Add in explicit reference to private checkout options</a></li>
<li>[Fix comment typos (that got added in <a href="https://redirect.github.com/actions/checkout/issues/770">#770</a>)](<a href="https://redirect.github.com/actions/checkout/pull/1057">actions/checkout#1057</a>)</li>
</ul>
<h2>v3.2.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/942">Add GitHub Action to perform release</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/967">Fix status badge</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1002">Replace datadog/squid with ubuntu/squid Docker image</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/964">Wrap pipeline commands for submoduleForeach in quotes</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1029">Update <code>@​actions/io</code> to 1.1.2</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1039">Upgrading version to 3.2.0</a></li>
</ul>
<h2>v3.1.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/939">Use <code>@​actions/core</code> <code>saveState</code> and <code>getState</code></a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li>
</ul>
<h2>v3.0.2</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b4ffde65f4"><code>b4ffde6</code></a> Link to release page from what's new section (<a href="https://redirect.github.com/actions/checkout/issues/1514">#1514</a>)</li>
<li><a href="8530928916"><code>8530928</code></a> Correct link to GitHub Docs (<a href="https://redirect.github.com/actions/checkout/issues/1511">#1511</a>)</li>
<li><a href="7cdaf2fbc0"><code>7cdaf2f</code></a> Update CODEOWNERS to Launch team (<a href="https://redirect.github.com/actions/checkout/issues/1510">#1510</a>)</li>
<li><a href="8ade135a41"><code>8ade135</code></a> Prepare 4.1.0 release (<a href="https://redirect.github.com/actions/checkout/issues/1496">#1496</a>)</li>
<li><a href="c533a0a4cf"><code>c533a0a</code></a> Add support for partial checkout filters (<a href="https://redirect.github.com/actions/checkout/issues/1396">#1396</a>)</li>
<li><a href="72f2cec99f"><code>72f2cec</code></a> Update README.md for V4 (<a href="https://redirect.github.com/actions/checkout/issues/1452">#1452</a>)</li>
<li><a href="3df4ab11eb"><code>3df4ab1</code></a> Release 4.0.0 (<a href="https://redirect.github.com/actions/checkout/issues/1447">#1447</a>)</li>
<li><a href="8b5e8b7687"><code>8b5e8b7</code></a> Support fetching without the --progress option (<a href="https://redirect.github.com/actions/checkout/issues/1067">#1067</a>)</li>
<li><a href="97a652b800"><code>97a652b</code></a> Update default runtime to node20 (<a href="https://redirect.github.com/actions/checkout/issues/1436">#1436</a>)</li>
<li><a href="f43a0e5ff2"><code>f43a0e5</code></a> Release 3.6.0 (<a href="https://redirect.github.com/actions/checkout/issues/1437">#1437</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/actions/checkout/compare/v2...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2&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-11-06 05:39:35 +00:00
dependabot[bot]
9c322096d2
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.3.1 to 1.4.0 in /src (#4606)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.3.1 to 1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.4.0</h2>
<h3>Added</h3>
<ul>
<li>Added serialization helpers. <a href="https://redirect.github.com/microsoft/kiota/issues/3406">microsoft/kiota#3406</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.4.0] - 2023-11-01</h2>
<h3>Added</h3>
<ul>
<li>Added serialization helpers. <a href="https://redirect.github.com/microsoft/kiota/issues/3406">microsoft/kiota#3406</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e7cbf65d7c"><code>e7cbf65</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/116">#116</a> from microsoft/feature/serialization-helpers</li>
<li><a href="f3dfa5c0f8"><code>f3dfa5c</code></a> - adds changelog entry for serialization methods</li>
<li><a href="6be9498af9"><code>6be9498</code></a> - adds doc comments and json shorthands</li>
<li><a href="56b3c5e9c7"><code>56b3c5e</code></a> - cleans up reflection based methods</li>
<li><a href="b50f0401e3"><code>b50f040</code></a> - adds deserialization methods with parsable</li>
<li><a href="c1d5e08d19"><code>c1d5e08</code></a> - adds serialization helper methods</li>
<li><a href="5b48eb7ab7"><code>5b48eb7</code></a> - adds test cleanup after registering default factories</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.3.1...v1.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.3.1&new-version=1.4.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-11-03 06:54:34 +00:00
Abin Simon
e2e2012220
Use .json extension for message exports (#4600)
We were previously exporting json but without the proper file extension.

---

#### 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. -->
* closes https://github.com/alcionai/corso/issues/4581

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-02 14:40:57 +00:00
ashmrtn
e46cf645e5
Create and tag preview backups (#4595)
Add an option to request a preview backup and tag the resulting backup
as a preview if the flag is set. Preview backups must complete
successfully with no errors in order to be tagged

This does not update the item selection logic, so right now preview
backups will contain all items that normal backups do. Item selection
will be refined in upcoming PRs

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-11-01 17:22:49 +00:00
ashmrtn
77a417b1ce
Exclude preview backups when looking for bases (#4593)
Add a comment and test ensuring preview backups are excluded during
base selection as expected. It's still not possible to make a
backup tagged with the preview tag right now

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-01 16:30:06 +00:00
ashmrtn
74cf0ab737
Create service specific handlers that know how to run an export (#4491)
First step in reducing the number of places we have to check the service type manually. Create a way to get a handle to a service specific handler and implement exports for those handlers

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-11-01 15:55:30 +00:00
dependabot[bot]
3df3a44c7b
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.23.0 to 1.24.0 in /src (#4597)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.23.0 to 1.24.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.24.0]- 2023-10-31</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ed89d156fb"><code>ed89d15</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/605">#605</a> from microsoftgraph/v1.0/pipelinebuild/127844</li>
<li><a href="46fc2934df"><code>46fc293</code></a> - removes duplicated model</li>
<li><a href="2c766a89ac"><code>2c766a8</code></a> - adds changelog entry for weekly generation</li>
<li><a href="7b8d00147f"><code>7b8d001</code></a> - code-gen: missing content type parameter</li>
<li><a href="96d2cc588d"><code>96d2cc5</code></a> Update generated files with build 127844</li>
<li><a href="acc7e2ef0b"><code>acc7e2e</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/604">#604</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="fd4616e10d"><code>fd4616e</code></a> Bump github.com/google/uuid from 1.3.1 to 1.4.0</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.23.0...v1.24.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.23.0&new-version=1.24.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-11-01 10:26:55 +00:00
dependabot[bot]
c2903f72fa
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.3.0 to 1.3.1 in /src (#4598)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.3.0 to 1.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.3.1</h2>
<h3>Changed</h3>
<ul>
<li>Fixed an issue where query parameters of type array of anything else than string would not be expanded properly. <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/114">#114</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.3.1] - 2023-10-31</h2>
<h3>Changed</h3>
<ul>
<li>Fixed an issue where query parameters of type array of anything else than string would not be expanded properly. <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/114">#114</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c6b1cb26c5"><code>c6b1cb2</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/113">#113</a> from papegaaij/exploded-query-params</li>
<li><a href="20a8c3e016"><code>20a8c3e</code></a> - adds changelog entry for expansion fix</li>
<li><a href="2d356d2abc"><code>2d356d2</code></a> - adds a comment for later reference</li>
<li><a href="ce2802ab66"><code>ce2802a</code></a> Add support for []any query parameters</li>
<li><a href="ca104d1a37"><code>ca104d1</code></a> Revert QueryParameters to map[string]string and add QueryParametersAny</li>
<li><a href="999bfb194b"><code>999bfb1</code></a> Change type of QueryParameters to map[string]any</li>
<li><a href="db50c679e2"><code>db50c67</code></a> Add testcase to demonstrate broken exploded query parameters</li>
<li><a href="6c596175d1"><code>6c59617</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/115">#115</a> from microsoft/dependabot/go_modules/github.com/googl...</li>
<li><a href="1b246c4cfc"><code>1b246c4</code></a> Bump github.com/google/uuid from 1.3.1 to 1.4.0</li>
<li><a href="a0a451082f"><code>a0a4510</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/112">#112</a> from microsoft/dependabot/go_modules/github.com/std-u...</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.3.0...v1.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.3.0&new-version=1.3.1)](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-11-01 09:48:29 +00:00
Abin Simon
5be07109e5
Update link for v0.15.0 diff in changelog (#4596)
Follow up to https://github.com/alcionai/corso/pull/4590 to add a missing link.

---

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

- [ ]  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
- [ ] 🗺️ 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-11-01 04:01:17 +00:00
ashmrtn
807cfb3c26
Minor refactor for checking backup type when finding bases (#4592)
Use the new helper function to get the backup type and rewrite logic
to streamline checks/actions on the backup type

Hoists a check on the backup's snapshot ID higher in the code and
adds a test case for that

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-01 03:30:53 +00:00
ashmrtn
66eb789d39
Helper function to get backup type (#4591)
Allow the backup model to tell us what type it was tagged with. This
will make logic for base selection easier since it won't have to worry
about extracting the type anymore.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-11-01 01:06:50 +00:00
ashmrtn
cd75ec7e4b
Update log statements for base finder (#4588)
Store more info in the context so that log statements need to add fewer additional fields.

---

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


#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-11-01 00:23:13 +00:00
ashmrtn
29d4e5a328
Test variable rename (#4587)
Rename variable in test struct to be more in line
with other variable names and also make the use
clearer

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-31 23:23:12 +00:00
ashmrtn
3e13471ac6
Refactor base finder tests to be more compact and easier to make (#4586)
These tests were originally written before we checked backup
models when searching for bases. This refactor updates the
tests with helper functions that create self-consistent
backup and manifest models. Overall this pattern makes it
easier to declare the data the test uses, easier to read
test data, and makes the tests more compact

Reviewing this PR by commit may be easier

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-31 22:32:16 +00:00
Vaibhav Kamra
c6464555dd
Update CHANGELOG.md for v0.15.0 (#4590)
---

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

- [ ]  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
- [ ] 🗺️ 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-10-31 20:44:08 +00:00
neha_gupta
0cfb84b24c
add changelog for repo update-passphrase command (#4507)
<!-- PR description-->

add changelog for `corso repo Update-passphrase` command

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

- [ ]  Yes, it's included

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🗺️ Documentation

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
2023-10-31 18:53:14 +00:00
Keepers
5e0014307c
remove ctx embedding for counter (#4497)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-31 16:15:05 +00:00
Vaibhav Kamra
54364ed6f0
Teams notification action (#4577)
Allows us to send CI notifications to Teams. Logic mirrors what we have in the slack-message action.

We will remove the slack action once this is verified.

---

#### 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
- [x] 💻 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-10-31 01:24:48 +00:00
Keepers
73b4ba3e0c
introduce debug commands (#4533)
adds the primary `debug` command to the cli as
a hidden command option.  Also includes the scaffold for
a `metadata-files` command that could be used to print
out the metadata files in the backup.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
2023-10-30 17:13:48 +00:00
ashmrtn
d143a4623f
Go back to old way of testing (#4574)
Forgot it increments the version as it goes

---

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

* #4569

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-29 21:01:31 +00:00
Niraj Tolia
f01cb4f891
Add GODEBUG to memory debug commands (#4576)
Was missed in the last patch

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation
2023-10-28 06:06:30 +00:00
ashmrtn
f61448d650
Groups version bump (#4561)
Bump the backup version and force a full backup if
there's a backup for teams/groups that has base(s)
from an older version of corso

This will avoid propagating older details formats
forward. Those formats don't have all the data
newer formats do

This is mostly a stop-gap, a more robust solution
can be added later

Manually tested that it forces a full backup

---

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

* #4569

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-27 19:37:39 +00:00
Abin Simon
fd887f4d04
Add timeouts to CI steps (#4563)
This should help us catch any CI steps that stall. The timeouts should set should be more than enough for most cases and is more than 4x the average time it takes.

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes

Quick tasks: 10m
Medium tasks (eg: linting website, code): 30m
Integration tests: 120m

<!-- 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
- [x] 💻 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-10-27 16:19:40 +00:00
ashmrtn
be07a04f66
Helper function to add common backup flags (#4557)
Helps ensure that all services implement the same standard flag set and allows easily expanding said flag set.

Existing tests check flags are added as expected

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-27 15:51:56 +00:00
Keepers
d6047d3f63
add real world test examples (#4558)
#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #4546

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-27 15:10:02 +00:00
dependabot[bot]
e79ca2fda9
⬆️ Bump github.com/google/uuid from 1.3.1 to 1.4.0 in /src (#4559)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.3.1 to 1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/releases">github.com/google/uuid's releases</a>.</em></p>
<blockquote>
<h2>v1.4.0</h2>
<h2><a href="https://github.com/google/uuid/compare/v1.3.1...v1.4.0">1.4.0</a> (2023-10-26)</h2>
<h3>Features</h3>
<ul>
<li>UUIDs slice type with Strings() convenience method (<a href="https://redirect.github.com/google/uuid/issues/133">#133</a>) (<a href="cd5fbbdd02">cd5fbbd</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Clarify that Parse's job is to parse but not necessarily validate strings. (Documents current behavior)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/blob/master/CHANGELOG.md">github.com/google/uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/google/uuid/compare/v1.3.1...v1.4.0">1.4.0</a> (2023-10-26)</h2>
<h3>Features</h3>
<ul>
<li>UUIDs slice type with Strings() convenience method (<a href="https://redirect.github.com/google/uuid/issues/133">#133</a>) (<a href="cd5fbbdd02">cd5fbbd</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Clarify that Parse's job is to parse but not necessarily validate strings. (Documents current behavior)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8de8764e29"><code>8de8764</code></a> chore(master): release 1.4.0 (<a href="https://redirect.github.com/google/uuid/issues/134">#134</a>)</li>
<li><a href="7c22e97ff7"><code>7c22e97</code></a> Clarify the documentation of Parse to state its job is to parse, not validate...</li>
<li><a href="cd5fbbdd02"><code>cd5fbbd</code></a> feat: UUIDs slice type with Strings() convenience method (<a href="https://redirect.github.com/google/uuid/issues/133">#133</a>)</li>
<li><a href="47f5b3936c"><code>47f5b39</code></a> docs: fix a typo in CONTRIBUTING.md (<a href="https://redirect.github.com/google/uuid/issues/130">#130</a>)</li>
<li><a href="542ddabd47"><code>542ddab</code></a> chore(tests): add Fuzz tests (<a href="https://redirect.github.com/google/uuid/issues/128">#128</a>)</li>
<li><a href="06716f6a60"><code>06716f6</code></a> chore(tests): Add json.Unmarshal test with empty value cases (<a href="https://redirect.github.com/google/uuid/issues/116">#116</a>)</li>
<li>See full diff in <a href="https://github.com/google/uuid/compare/v1.3.1...v1.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/google/uuid&package-manager=go_modules&previous-version=1.3.1&new-version=1.4.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-10-27 08:25:39 +00:00
Keepers
8b612c43d9
make channel message html human readable (#4556)
Adds two-step processing to the html previews for channel messages and replies.  First, all inline attachments are replaced with the string `[attachment:name]`.
Second, remaining html is stripped out, leaving only plaintext.

This transformation is applied to both the exported content and the preview content in details.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4546

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-26 23:05:35 +00:00
ashmrtn
ba595a66c2
Remove Controller stats for export (#4500)
Export doesn't pull meaningful stats from the controller. Just remove
the collection/usage of these stats since it's confusing. Substitute the
check for not doing anything from a check on stats to a check on the
number of collections returned by kopia.

---

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

* #4254

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-26 21:09:17 +00:00
dependabot[bot]
c824a0b23e
⬆️ Bump tailwindcss from 3.3.3 to 3.3.5 in /website (#4550)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.3 to 3.3.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.3.5</h2>
<h3>Fixed</h3>
<ul>
<li>Fix incorrect spaces around <code>-</code> in <code>calc()</code> expression (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12283">#12283</a>)</li>
</ul>
<h2>v3.3.4</h2>
<h3>Fixed</h3>
<ul>
<li>Improve normalisation of <code>calc()</code>-like functions (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11686">#11686</a>)</li>
<li>Skip <code>calc()</code> normalisation in nested <code>theme()</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11705">#11705</a>)</li>
<li>Fix incorrectly generated CSS when using square brackets inside arbitrary properties (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11709">#11709</a>)</li>
<li>Make <code>content</code> optional for presets in TypeScript types (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11730">#11730</a>)</li>
<li>Handle variable colors that have variable fallback values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12049">#12049</a>)</li>
<li>Batch reading content files to prevent <code>too many open files</code> error (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12079">#12079</a>)</li>
<li>Skip over classes inside <code>:not(…)</code> when nested in an at-rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12105">#12105</a>)</li>
<li>Update types to work with <code>Node16</code> module resolution (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12097">#12097</a>)</li>
<li>Don’t crash when important and parent selectors are equal in <code>@apply</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12112">#12112</a>)</li>
<li>Eliminate irrelevant rules when applying variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12113">#12113</a>)</li>
<li>Improve RegEx parser, reduce possibilities as the key for arbitrary properties (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12121">#12121</a>)</li>
<li>Fix sorting of utilities that share multiple candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12173">#12173</a>)</li>
<li>Ensure variants with arbitrary values and a modifier are correctly matched in the RegEx based parser (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12179">#12179</a>)</li>
<li>Fix crash when watching renamed files on FreeBSD (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12193">#12193</a>)</li>
<li>Allow plugins from a parent document to be used in an iframe (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12208">#12208</a>)</li>
<li>Add types for <code>tailwindcss/nesting</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12269">#12269</a>)</li>
<li>Bump <code>jiti</code>, <code>fast-glob</code>, and <code>browserlist</code> dependencies (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11550">#11550</a>)</li>
<li>Improve automatic <code>var</code> injection for properties that accept a <code>&lt;dashed-ident&gt;</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12236">#12236</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.3.5] - 2023-10-25</h2>
<h3>Fixed</h3>
<ul>
<li>Fix incorrect spaces around <code>-</code> in <code>calc()</code> expression (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12283">#12283</a>)</li>
</ul>
<h2>[3.3.4] - 2023-10-24</h2>
<h3>Fixed</h3>
<ul>
<li>Improve normalisation of <code>calc()</code>-like functions (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11686">#11686</a>)</li>
<li>Skip <code>calc()</code> normalisation in nested <code>theme()</code> calls (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11705">#11705</a>)</li>
<li>Fix incorrectly generated CSS when using square brackets inside arbitrary properties (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11709">#11709</a>)</li>
<li>Make <code>content</code> optional for presets in TypeScript types (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11730">#11730</a>)</li>
<li>Handle variable colors that have variable fallback values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12049">#12049</a>)</li>
<li>Batch reading content files to prevent <code>too many open files</code> error (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12079">#12079</a>)</li>
<li>Skip over classes inside <code>:not(…)</code> when nested in an at-rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12105">#12105</a>)</li>
<li>Update types to work with <code>Node16</code> module resolution (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12097">#12097</a>)</li>
<li>Don’t crash when important and parent selectors are equal in <code>@apply</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12112">#12112</a>)</li>
<li>Eliminate irrelevant rules when applying variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12113">#12113</a>)</li>
<li>Improve RegEx parser, reduce possibilities as the key for arbitrary properties (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12121">#12121</a>)</li>
<li>Fix sorting of utilities that share multiple candidates (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12173">#12173</a>)</li>
<li>Ensure variants with arbitrary values and a modifier are correctly matched in the RegEx based parser (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12179">#12179</a>)</li>
<li>Fix crash when watching renamed files on FreeBSD (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12193">#12193</a>)</li>
<li>Allow plugins from a parent document to be used in an iframe (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12208">#12208</a>)</li>
<li>Add types for <code>tailwindcss/nesting</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12269">#12269</a>)</li>
<li>Bump <code>jiti</code>, <code>fast-glob</code>, and <code>browserlist</code> dependencies (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11550">#11550</a>)</li>
<li>Improve automatic <code>var</code> injection for properties that accept a <code>&lt;dashed-ident&gt;</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/12236">#12236</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9db2d68295"><code>9db2d68</code></a> 3.3.5</li>
<li><a href="4b12f838fe"><code>4b12f83</code></a> Fix incorrect spaces around <code>-</code> in <code>calc()</code> expression (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12283">#12283</a>)</li>
<li><a href="32a62b7bb1"><code>32a62b7</code></a> 3.3.4</li>
<li><a href="b810916e95"><code>b810916</code></a> ensure we await the <code>processTailwindFeatures</code> in the <code>oxide</code> CLI</li>
<li><a href="2514820dd4"><code>2514820</code></a> Improve automatic <code>var</code> injection (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12236">#12236</a>)</li>
<li><a href="c15b187ae0"><code>c15b187</code></a> Bump <code>jiti</code>, <code>fast-glob</code>, and <code>browserlist</code> dependencies (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11550">#11550</a>)</li>
<li><a href="ba04af0e0b"><code>ba04af0</code></a> Add types for the nesting plugin (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12269">#12269</a>)</li>
<li><a href="63989b2be8"><code>63989b2</code></a> Allow plugins from a parent document to be used in an iframe (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12208">#12208</a>)</li>
<li><a href="8e4ed70585"><code>8e4ed70</code></a> Fix crash when watching renamed files on FreeBSD (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/12193">#12193</a>)</li>
<li><a href="b162ae725f"><code>b162ae7</code></a> Ensure variants with arbitrary values and a modifier are correctly matched in...</li>
<li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.3.3...v3.3.5">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.3.3&new-version=3.3.5)](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-10-26 19:20:26 +00:00
ashmrtn
09531de08c
Cleanup API for BackupBases (#4471)
Update the BackupBases API to return BackupBase
structs that contain both the snapshot and backup
model instead of having separate functions for
each. Minor logic updates to accommodate these
changes

This PR also updates tests and mock code for the
new API

Suggest viewing by commit

---

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

* closes #3943

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-26 18:38:14 +00:00
Keepers
1470776f3c
expose additional channel metadata (#4539)
builds out more details for channel messages and replies

---

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

- [x]  No

#### Type of change

- [ ] 🌻 Feature

#### Issue(s)

* #3988

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-26 18:03:44 +00:00
Abin Simon
eb188e0514
Fix export stalling when run with progressbars (#4554)
Exports were stalling when run with progressbars. Most of our tests(except for longevity tests) did not catch this as they were running without progressbars. This should fix that.

First introduced in 040257f8be95f924fce3adcb1159422a1f22b45c

<!-- PR description-->

---

#### 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.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-10-26 16:46:17 +00:00
ashmrtn
a4d039069d
Refactor site exclusion logic (#4548)
Pull the logic for excluding personal and search
sites into a separate function instead of overloading
the verify function for a site

---

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

* #4540

merge after:
* #4547

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-26 16:01:24 +00:00
dependabot[bot]
840256aa7f
⬆️ Bump sass from 1.69.4 to 1.69.5 in /website (#4553)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.4 to 1.69.5.
<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.69.5</h2>
<p>To install Sass 1.69.5, 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>
<h3>JS API</h3>
<ul>
<li>Compatibility with Node.js 21.0.0.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1695">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.69.5</h2>
<h3>JS API</h3>
<ul>
<li>Compatibility with Node.js 21.0.0.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="89dac15c03"><code>89dac15</code></a> Add compatibility with Node.js 21.0.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2128">#2128</a>)</li>
<li><a href="69d0f07979"><code>69d0f07</code></a> Bump lints from 2.1.1 to 3.0.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2126">#2126</a>)</li>
<li><a href="ac25a7023a"><code>ac25a70</code></a> Bump dartdoc from 6.3.0 to 7.0.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2118">#2118</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.69.4...1.69.5">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.69.4&new-version=1.69.5)](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-10-26 15:30:35 +00:00
ashmrtn
8102523dc6
Unexport functions and fields in api package (#4547)
Unexport a bunch of stuff that isn't used outside the
package. Also use the same package for tests

Mostly renaming with some minor dead code cleanup

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-26 15:25:34 +00:00
dependabot[bot]
058a3f47a6
⬆️ Bump google.golang.org/grpc from 1.58.2 to 1.58.3 in /src (#4542)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.2 to 1.58.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's releases</a>.</em></p>
<blockquote>
<h2>Release 1.58.3</h2>
<h1>Security</h1>
<ul>
<li>
<p>server: prohibit more than MaxConcurrentStreams handlers from running at once (CVE-2023-44487)</p>
<p>In addition to this change, applications should ensure they do not leave running tasks behind related to the RPC before returning from method handlers, or should enforce appropriate limits on any such work.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bf05b9558c"><code>bf05b95</code></a> Change version.go to v1.58.3 (<a href="https://redirect.github.com/grpc/grpc-go/issues/6707">#6707</a>)</li>
<li><a href="c40c9ba315"><code>c40c9ba</code></a> server: prohibit more than MaxConcurrentStreams handlers from running at once...</li>
<li><a href="dd9270d663"><code>dd9270d</code></a> update version to 1.58.3-dev (<a href="https://redirect.github.com/grpc/grpc-go/issues/6656">#6656</a>)</li>
<li>See full diff in <a href="https://github.com/grpc/grpc-go/compare/v1.58.2...v1.58.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.58.2&new-version=1.58.3)](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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2023-10-26 11:15:16 +00:00
dependabot[bot]
ff341ebc5c
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.22.0 to 1.23.0 in /src (#4552)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.22.0 to 1.23.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.23.0]- 2023-10-25</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4c60507e9f"><code>4c60507</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/600">#600</a> from microsoftgraph/v1.0/pipelinebuild/127419</li>
<li><a href="e4a464a8cd"><code>e4a464a</code></a> - bumps version number</li>
<li><a href="7c46299e21"><code>7c46299</code></a> Update generated files with build 127419</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.22.0...v1.23.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.22.0&new-version=1.23.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-10-26 10:08:04 +00:00
dependabot[bot]
201c06aa72
⬆️ Bump mermaid from 10.5.1 to 10.6.0 in /website (#4549)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.5.1 to 10.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>10.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add new chart xychart by <a href="https://github.com/subhash-halder"><code>@​subhash-halder</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4413">mermaid-js/mermaid#4413</a></li>
</ul>
<h2>Fix</h2>
<ul>
<li>bug/4849_center_axis_labels by <a href="https://github.com/dreathed"><code>@​dreathed</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4860">mermaid-js/mermaid#4860</a></li>
<li>Better handling of large flowcharts and long edges <a href="https://github.com/knsv"><code>@​knsv</code></a></li>
</ul>
<h2>Docs</h2>
<ul>
<li>Add new Atlassian integrations by <a href="https://github.com/janjonas"><code>@​janjonas</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4862">mermaid-js/mermaid#4862</a></li>
<li>docs: fix typo by <a href="https://github.com/dennis0324"><code>@​dennis0324</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4887">mermaid-js/mermaid#4887</a></li>
<li>Update notes on orientation in GitGraph documentation by <a href="https://github.com/guypursey"><code>@​guypursey</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4897">mermaid-js/mermaid#4897</a></li>
<li>Enhancment: twitter logo in doc by <a href="https://github.com/chaursiyasanjeet"><code>@​chaursiyasanjeet</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4925">mermaid-js/mermaid#4925</a></li>
<li>Update link for the Mermaid integration in JetBrains IDEs by <a href="https://github.com/FirstTimeInForever"><code>@​FirstTimeInForever</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4883">mermaid-js/mermaid#4883</a></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Wait for <code>marker_unique_id.html</code> E2E test to render before taking a screenshot by <a href="https://github.com/aloi"><code>@​aloi</code></a>
sklink in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4847">mermaid-js/mermaid#4847</a></li>
<li>Wait for <code>theme-directives.html</code> E2E test to render before taking a screenshot by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4846">mermaid-js/mermaid#4846</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4851">mermaid-js/mermaid#4851</a></li>
<li>chore(dev-deps): update <code>@typescript-eslint/*</code> plugins to v6 (major) by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4857">mermaid-js/mermaid#4857</a></li>
<li>chore: shorten <code>flow-huge.spec.js</code> test case using <code>.repeat</code> by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4859">mermaid-js/mermaid#4859</a></li>
<li>Publish Live Editor previews for the <code>develop</code> &amp; <code>next</code> branches by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4841">mermaid-js/mermaid#4841</a></li>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4870">mermaid-js/mermaid#4870</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4869">mermaid-js/mermaid#4869</a></li>
<li>Commented out broken test by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4913">mermaid-js/mermaid#4913</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4891">mermaid-js/mermaid#4891</a></li>
<li>fix(class): avoid duplicate definition of fill by <a href="https://github.com/Mister-Hope"><code>@​Mister-Hope</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4929">mermaid-js/mermaid#4929</a></li>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4892">mermaid-js/mermaid#4892</a></li>
<li>making consitent config imports from diagramAPI by <a href="https://github.com/dreathed"><code>@​dreathed</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4889">mermaid-js/mermaid#4889</a></li>
<li>fix(typos): Fix minor typos in the source code by <a href="https://github.com/mribeirodantas"><code>@​mribeirodantas</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4928">mermaid-js/mermaid#4928</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4945">mermaid-js/mermaid#4945</a></li>
<li>Bump <code>@​babel/traverse</code> from 7.22.10 to 7.23.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4951">mermaid-js/mermaid#4951</a></li>
<li>Replace rehype-mermaidjs with rehype-mermaid by <a href="https://github.com/remcohaszing"><code>@​remcohaszing</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4970">mermaid-js/mermaid#4970</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/dreathed"><code>@​dreathed</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4860">mermaid-js/mermaid#4860</a></li>
<li><a href="https://github.com/janjonas"><code>@​janjonas</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4862">mermaid-js/mermaid#4862</a></li>
<li><a href="https://github.com/dennis0324"><code>@​dennis0324</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4887">mermaid-js/mermaid#4887</a></li>
<li><a href="https://github.com/FirstTimeInForever"><code>@​FirstTimeInForever</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4883">mermaid-js/mermaid#4883</a></li>
<li><a href="https://github.com/guypursey"><code>@​guypursey</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4897">mermaid-js/mermaid#4897</a></li>
<li><a href="https://github.com/chaursiyasanjeet"><code>@​chaursiyasanjeet</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4925">mermaid-js/mermaid#4925</a></li>
<li><a href="https://github.com/mribeirodantas"><code>@​mribeirodantas</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4928">mermaid-js/mermaid#4928</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="29942c04dc"><code>29942c0</code></a> Updated mermaid version</li>
<li><a href="fc28c1da63"><code>fc28c1d</code></a> Limiting the number of edges that are allowed in the flowchart</li>
<li><a href="3957575b6e"><code>3957575</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4970">#4970</a> from remcohaszing/rename-rehype-mermaid</li>
<li><a href="9daed6ba27"><code>9daed6b</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4951">#4951</a> from mermaid-js/dependabot/npm_and_yarn/babel/traver...</li>
<li><a href="ab9b9abdf9"><code>ab9b9ab</code></a> Replace rehype-mermaidjs with rehype-mermaid</li>
<li><a href="d32c18a43c"><code>d32c18a</code></a> Merge branch 'master' into develop</li>
<li><a href="35b364c4ea"><code>35b364c</code></a> Merge branch 'release/10.5.1'</li>
<li><a href="0e328823b9"><code>0e32882</code></a> Bump <code>@​babel/traverse</code> from 7.22.10 to 7.23.2</li>
<li><a href="33a5fc459d"><code>33a5fc4</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4945">#4945</a> from mermaid-js/renovate/patch-all-patch</li>
<li><a href="e4350f80fe"><code>e4350f8</code></a> chore(deps): update all patch dependencies</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.5.1...v10.6.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.5.1&new-version=10.6.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-10-26 05:38:38 +00:00
ashmrtn
e1f0794185
Remove site name validation check (#4541)
It's possible to have a site without a display name and this is causing unrelated backups to fail.

Need to do some testing for upstream consumers prior to merging

---

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

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

#### Issue(s)

* #4540

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-26 02:16:01 +00:00
Keepers
2bc3c89885
fix api/mock circular ref (#4544)
No logic changes.  Just code movement/renaming.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-10-26 01:27:49 +00:00
jules
73202dad63
[Bugfix] Fixing getting owner email (#4538)
Owner data might have email and ID, or only one of them, or none. Fixing the code to handle this and adding a unit test. 

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-25 22:38:35 +00:00
ashmrtn
cb6c56783b
Builder pattern for BackupBase struct (#4470)
Will be useful for later testing that needs BackupBase

---

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

* #3943

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-25 16:28:13 +00:00
Abhishek Pandey
82fa185085
Minor url cache test enhancement (#4535)
<!-- PR description-->

Add a check to make sure url cache's previous delta base doesn't change after refresh

---

#### 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
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-25 01:01:01 +00:00
ashmrtn
c4bbb8fda2
Unify backup bases fields (#4402)
Merge fields in the backup bases struct since
we assume they need to be tracked together
anyway

This PR attempts to keep the API as close to
what it currently is as possible. A future PR
will go through and update the
API/tests/mocks

---

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

* #3943

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-25 00:17:41 +00:00
Keepers
7f8becb8f8
extract container transforms from the api layer (#4478)
removes the cache container transformation funcs
from the exchange api container enumeration params. This ensures a cleaner separation of ownership where the api is only responsible for enumerating containers, and the caller is responsible for transforming them.

---

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

- [x]  No

#### Type of change

- [ ] 🧹 Tech Debt/Cleanup


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-24 23:44:08 +00:00
Keepers
89f59eea91
mark complete subtrees as packages (#4501)
marks the full subtree of a drive package item
as being within the package.  This ensures
that all collections whose directory is a subdir of a package-type folder are themselves marked as package-typed.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-24 23:01:06 +00:00
jules
4d0be25020
Adding email fallback to Groups getByID api (#4534)
As the title suggests. 

---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-24 21:00:55 +00:00
Keepers
a9cc29d8c6
rename group handler interface (#4531)
renames methods in the group handler interface
to replace the channel-specific vocabulary with the more standard and generic "containers" and
"items" naming conventions.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-24 17:05:41 +00:00
Keepers
9e40d88265
expose sitesInGroup to sdk consumers (#4532)
exposes the m365 api call to get all sites in a group to the sdk service interface.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-24 00:09:48 +00:00
Keepers
5cc68e27dc
use count bus in kopia backups (#4482)
uses the count bus in the kopia backup package.
This currently duplicates counts that we're getting
from the kopia stats.  A later pr will remove the old
stats entirely in favor of the counter.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-23 23:29:56 +00:00
Keepers
3aadc31201
replace col scope with bool (#4498)
We aren't using this property as an enum, nor does it look like we have reason to do so in the future.  Currently, the enumeration values obscure the point of tracking the property.  This value change should make that more clear.

Next PR will handle identifying parent-child package relationships.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-23 19:30:35 +00:00
dependabot[bot]
f43ce224b6
⬆️ Bump mermaid from 10.5.0 to 10.5.1 in /website (#4528)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.5.0 to 10.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>v10.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Fix for subgraphs when using flowchart-elk by <a href="https://github.com/knsv"><code>@​knsv</code></a></li>
<li>Docs: update Latest News section by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4822">mermaid-js/mermaid#4822</a></li>
<li>Docs: update Ecosystem section by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4817">mermaid-js/mermaid#4817</a></li>
<li>Docs: update Latest News section (Git Graph blog post) by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4871">mermaid-js/mermaid#4871</a></li>
<li>Docs: Add Product Hunt info by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4900">mermaid-js/mermaid#4900</a></li>
<li>Revert PH changes by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4903">mermaid-js/mermaid#4903</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/mermaid-js/mermaid/compare/v10.5.0...v10.5.1">https://github.com/mermaid-js/mermaid/compare/v10.5.0...v10.5.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b70959daa7"><code>b70959d</code></a> Version 10.5.1</li>
<li><a href="aaf0b474d4"><code>aaf0b47</code></a> Increased version to 10.5.1</li>
<li><a href="61bc293a95"><code>61bc293</code></a> <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4967">#4967</a> Reverting optimimization that breaks subgraphs</li>
<li><a href="d1b386b5c9"><code>d1b386b</code></a> Revert PH changes (<a href="https://redirect.github.com/mermaid-js/mermaid/issues/4903">#4903</a>)</li>
<li><a href="22b783e31d"><code>22b783e</code></a> Update docs</li>
<li><a href="345d0d0bd2"><code>345d0d0</code></a> Fix lint issue</li>
<li><a href="f49e8c5784"><code>f49e8c5</code></a> Fix release version</li>
<li><a href="a6bb1ea28c"><code>a6bb1ea</code></a> Fix TopBar</li>
<li><a href="cda7a61526"><code>cda7a61</code></a> Add MC to integrations</li>
<li><a href="d17c752229"><code>d17c752</code></a> Add TopBar</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.5.0...v10.5.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.5.0&new-version=10.5.1)](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-10-23 06:02:48 +00:00
dependabot[bot]
0a9bfe7e65
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.21.0 to 1.22.0 in /src (#4523)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.21.0 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.22.0]- 2023-10-19</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="95b892f0e3"><code>95b892f</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/597">#597</a> from microsoftgraph/v1.0/pipelinebuild/127020</li>
<li><a href="4a2e3c0f1a"><code>4a2e3c0</code></a> - bumps version number</li>
<li><a href="9171b69eef"><code>9171b69</code></a> Update generated files with build 127020</li>
<li><a href="46d3ebd150"><code>46d3ebd</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/594">#594</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="ca088bbb4f"><code>ca088bb</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.2.3 to 1.3.0</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.21.0...v1.22.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.21.0&new-version=1.22.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-10-20 06:19:33 +00:00
dependabot[bot]
4b3cf68f99
⬆️ Bump sass from 1.69.3 to 1.69.4 in /website (#4522)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.3 to 1.69.4.
<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.69.4</h2>
<p>To install Sass 1.69.4, 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>No user-visible changes.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1694">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.69.4</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f40c1fc63b"><code>f40c1fc</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2120">#2120</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.69.3...1.69.4">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.69.3&new-version=1.69.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-10-18 07:12:28 +00:00
Abhishek Pandey
d7b24f37ab
Add tests which were rolled back with 4456 (#4459)
<!-- PR description-->

Recent PR #4456 rolled back some of newer test additions. This PR reintroduces these tests. 
 
---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-17 21:36:35 +00:00
Abhishek Pandey
f3dfa1e46b
Don't update prev delta url (#4521)
<!-- PR description-->

URL cache should use the same delta token base used by `ProduceCollections`. This is because we want to update URLs for the set of items which was discovered by `ProduceCollections`. Otherwise, we'll have url cache misses & we'll have to resort to doing GetItem graph calls for each item which means we lose all goodness of the url cacche.

This reverts a change introduced in a recent [PR](5215e907b0 (diff-f79ab9c9b31db3600d4e14b6df4d4c679b4356e32c3a68eaeaeb934c1c5a13a7R175)) where we are updating cache's delta token base to a newer one. 

---

#### 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-10-17 19:28:36 +00:00
Abin Simon
08e8b18afc
Fix backup of Groups without an associated Team (#4520)
Previously we were trying to fetch channels of Groups without channels.

---

#### 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. -->
* closes https://github.com/alcionai/corso/issues/4519

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-10-17 17:34:11 +00:00
dependabot[bot]
d10b1a306c
⬆️ Bump github.com/microsoft/kiota-authentication-azure-go from 1.0.0 to 1.0.1 in /src (#4506)
Bumps [github.com/microsoft/kiota-authentication-azure-go](https://github.com/microsoft/kiota-authentication-azure-go) from 1.0.0 to 1.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-authentication-azure-go/releases">github.com/microsoft/kiota-authentication-azure-go's releases</a>.</em></p>
<blockquote>
<h2>v1.0.1</h2>
<h3>Changed</h3>
<ul>
<li>Allow http on localhost.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-authentication-azure-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-authentication-azure-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.0.1] - 2023-10-13</h2>
<h3>Changed</h3>
<ul>
<li>Allow http on localhost.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="158857c60f"><code>158857c</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-authentication-azure-go/issues/102">#102</a> from NerdJeremia/fix/no-https-for-localhost</li>
<li><a href="2bdea6d97f"><code>2bdea6d</code></a> Update azure_identity_access_token_provider.go</li>
<li><a href="80098fd07c"><code>80098fd</code></a> Update azure_identity_access_token_provider.go</li>
<li><a href="b52120926c"><code>b521209</code></a> change valid localhosts to array</li>
<li><a href="b8376cbef0"><code>b8376cb</code></a> add unittest + refactor code + update CHANGELOG.md</li>
<li><a href="593eb6d2d5"><code>593eb6d</code></a> dont require https for localhost</li>
<li><a href="b23fe50db9"><code>b23fe50</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-authentication-azure-go/issues/101">#101</a> from microsoft/dependabot/go_modules/golang.org/x/net...</li>
<li><a href="85b3c996cf"><code>85b3c99</code></a> Bump golang.org/x/net from 0.15.0 to 0.17.0</li>
<li><a href="53a11123e1"><code>53a1112</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-authentication-azure-go/issues/100">#100</a> from microsoft/dependabot/go_modules/github.com/micro...</li>
<li><a href="1587dda1a1"><code>1587dda</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.2.3 to 1.3.0</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/kiota-authentication-azure-go/compare/v1.0.0...v1.0.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-authentication-azure-go&package-manager=go_modules&previous-version=1.0.0&new-version=1.0.1)](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-10-17 09:26:15 +00:00
neha_gupta
b4d14cb83f
add passphrase flag (#4518)
<!-- PR description-->

add `--new-passphrase` flag for `update-passphrase` command  

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

- [ ]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [ ]  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.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-17 08:58:05 +00:00
dependabot[bot]
02b8a77bdd
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.2.3 to 1.3.0 in /src (#4484)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.2.3 to 1.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.3.0</h2>
<h3>Added</h3>
<ul>
<li>Added an overload method to set binary content with their content type.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.3.0] - 2023-10-12</h2>
<h3>Added</h3>
<ul>
<li>Added an overload method to set binary content with their content type.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="073a3b370f"><code>073a3b3</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/109">#109</a> from microsoft/feature/multi-content-types</li>
<li><a href="796c00b6f4"><code>796c00b</code></a> - adds a method to specify the content type of the binary request body</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.2.3...v1.3.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.2.3&new-version=1.3.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-10-17 07:16:51 +00:00
dependabot[bot]
a495d0e134
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.20.0 to 1.21.0 in /src (#4483)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.20.0 to 1.21.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.21.0]- 2023-10-11</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="854d03521c"><code>854d035</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/593">#593</a>)</li>
<li><a href="36069211eb"><code>3606921</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/591">#591</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="26a49a4621"><code>26a49a4</code></a> Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.7.2 to 1.8.0</li>
<li><a href="f64738c839"><code>f64738c</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/590">#590</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="5033655607"><code>5033655</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.2.2 to 1.2.3</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.20.0...v1.21.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.20.0&new-version=1.21.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-10-17 06:37:14 +00:00
Abin Simon
622eecf707
Check if user provided webURL before trying to access it (#4510)
The check should have already happened in the CLI layer. And we cannot do the check here this function is also shared with export which might not have a filter.

Follow up to https://github.com/alcionai/corso/pull/4496

<!-- 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-17 05:53:44 +00:00
Vaibhav Kamra
706849a006
Enhance OneNote skip check (#4517)
This enhances the check that allows skipping OneNote files that cannot be downloaded
with a mime type check.

This handles cases where the folder the item is in does not have the `package` facet.

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-17 03:13:55 +00:00
Niraj Tolia
a4214ee524
Include docs on adding GC debug logs (#4516)
Taken from Discord discussion

---

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

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2023-10-16 22:41:29 +00:00
dependabot[bot]
c4d2e3691f
⬆️ Bump @babel/traverse from 7.18.11 to 7.23.2 in /website (#4515)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.18.11 to 7.23.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@​babel/traverse</code>'s releases</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<p><strong>NOTE</strong>: This release also re-publishes <code>@babel/core</code>, even if it does not appear in the linked release commit.</p>
<p>Thanks <a href="https://github.com/jimmydief"><code>@​jimmydief</code></a> for your first PR!</p>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 5</h4>
<ul>
<li>Babel Bot (<a href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>James Diefenderfer (<a href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
<li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.23.1 (2023-09-25)</h2>
<p>Re-publishing <code>@babel/helpers</code> due to a publishing error in 7.23.0.</p>
<h2>v7.23.0 (2023-09-25)</h2>
<p>Thanks <a href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a> and <a href="https://github.com/RajShukla1"><code>@​RajShukla1</code></a> for your first PRs!</p>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the &quot;source phase imports&quot; proposal (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the &quot;decorator metadata&quot; proposal (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/traverse</code>'s changelog</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.23.0 (2023-09-25)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the &quot;source phase imports&quot; proposal (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the &quot;decorator metadata&quot; proposal (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15913">#15913</a> Add <code>rewriteImportExtensions</code> option to TS preset (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15896">#15896</a> Allow TS tuples to have both labeled and unlabeled elements (<a href="https://github.com/yukukotani"><code>@​yukukotani</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15962">#15962</a> fix: <code>transform-block-scoping</code> captures the variables of the method in the loop (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15797">#15797</a> Expand evaluation of global built-ins in <code>@babel/traverse</code> (<a href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15985">#15985</a> Improve source maps for blocks with <code>using</code> declarations (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔬 Output optimization</h4>
<ul>
<li><code>babel-core</code>, <code>babel-helper-module-transforms</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-function-name</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-umd</code>, <code>babel-plugin-transform-parameters</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-plugin-transform-react-inline-elements</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-plugin-transform-typescript</code>, <code>babel-preset-env</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/15984">#15984</a> Inline <code>exports.XXX =</code> update in simple variable declarations (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.22.20 (2023-09-16)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b4b9942a6c"><code>b4b9942</code></a> v7.23.2</li>
<li><a href="b13376b346"><code>b13376b</code></a> Only evaluate own String/Number/Math methods (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/16033">#16033</a>)</li>
<li><a href="ca58ec15cb"><code>ca58ec1</code></a> v7.23.0</li>
<li><a href="0f333dafcf"><code>0f333da</code></a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15682">#15682</a>)</li>
<li><a href="3744545649"><code>3744545</code></a> Fix linting</li>
<li><a href="c7e6806e21"><code>c7e6806</code></a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15893">#15893</a>)</li>
<li><a href="38ee8b4dd6"><code>38ee8b4</code></a> Expand evaluation of global built-ins in <code>@babel/traverse</code> (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15797">#15797</a>)</li>
<li><a href="9f3dfd9021"><code>9f3dfd9</code></a> v7.22.20</li>
<li><a href="3ed28b29c1"><code>3ed28b2</code></a> Fully support <code>||</code> and <code>&amp;&amp;</code> in <code>pluginToggleBooleanFlag</code> (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15961">#15961</a>)</li>
<li><a href="77b0d73599"><code>77b0d73</code></a> v7.22.19</li>
<li>Additional commits viewable in <a href="https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@babel/traverse&package-manager=npm_and_yarn&previous-version=7.18.11&new-version=7.23.2)](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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).

</details>
2023-10-16 21:41:32 +00:00
Abin Simon
a2e882b7f7
Fix sanity test backup arg for Groups (#4508)
<!-- 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
- [x] 💻 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-10-16 21:34:46 +00:00
Keepers
c0cd7cf2f6
turn off exchange kopia assists (#4503)
Protective measure to prevent further details merging issues.
will need a follow-up to enable via a feature flag for testing.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issues

- #2023

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-16 17:15:30 +00:00
Abin Simon
5d90483bfa
Enforce site filter for Groups restore (#4496)
This PR reworks the groups restore to and makes the site to restore to mandatory. This also updates some missing filtering capabilities in groups export.

---

#### 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: --->
- [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. -->
* closes https://github.com/alcionai/corso/issues/4462

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-16 12:05:55 +00:00
Keepers
e84a363815
fix group site url ref in sanity yml (#4502)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix


#### Test Plan

- [x] 💚 E2E
2023-10-16 11:24:11 +00:00
neha_gupta
495ff76a30
Update kopia password (#4397)
<!-- PR description-->

Update Kopia repo password from Corso CLI

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

- [ ] 🕐 Yes, but in a later PR

#### Type of change

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

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-16 10:16:15 +00:00
Georgi Matev
21446a9e46
Update golang in build script (#4504)
Update build.sh golang version

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-14 04:26:51 +00:00
Keepers
03c7667679
iterate pager results with channels (#4414)
corrects the prior PRs full-scale batching of driveItems by adding a channel to the api layer's enumerateItems and driveEnumerateItems funcs.  To avoid changes
in most parts of code, also adds batch wrappers
that hide these changes from existing pager usage.

DriveItem collection processing now ranges over
a channel of pager results, allowing it to process pages in a stream rather than batching all items.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-14 03:22:12 +00:00
Keepers
1452e8c0c9
add extra catches for resource locked (#4499)
Adds two layers of extra catches for resoruceLocked errors.  First, in pkg/errs, adds error check funcs to ensure the source comparators are checked even if
they somehow got skipped in the lower layer packages.

Second, adds checks for resource locked throughout sites, users, and groups in the api layer.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-13 23:27:43 +00:00
Keepers
7419faab23
refactor drive restore & export to use sanitree (#4425)
refactors the common drive sanity checks to use the sanitree data container.  Also expands the sanitree in two ways:
1. adds leaves (individual items) to nodes for granular data comparison
2. adds multi-type support for comparing nodes of different types.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3988

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2023-10-13 22:55:35 +00:00
ashmrtn
800170787f
Log the categories participating in an operation (#4490)
To assist in debugging via logs, add the set of
categories an operation is acting on to the
clues set in the context

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-13 21:17:16 +00:00
dependabot[bot]
796e9dfe67
⬆️ Bump sass from 1.69.2 to 1.69.3 in /website (#4495)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.2 to 1.69.3.
<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.69.3</h2>
<p>To install Sass 1.69.3, 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>
<h3>Embedded Sass</h3>
<ul>
<li>Fix TypeScript type locations in <code>package.json</code>.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1693">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.69.3</h2>
<h3>Embedded Sass</h3>
<ul>
<li>Fix TypeScript type locations in <code>package.json</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44dceea0bd"><code>44dceea</code></a> Update pubspec and changelog for <a href="https://redirect.github.com/sass/embedded-host-node/issues/257">sass/embedded-host-node#257</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2116">#2116</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.69.2...1.69.3">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.69.2&new-version=1.69.3)](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-10-13 05:56:52 +00:00
Keepers
d2e35a9ea8
filter out system messages (#4481)
adds a filter that removes system messages from
channel message backups.

Also extends the preview size from 16 to 128 characters.

---

#### 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]  Unit test
- [x] 💚 E2E
2023-10-13 02:48:08 +00:00
Keepers
5b8b371976
fix message size report (#4493)
#### Does this PR need a docs update or release note?

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-13 02:19:59 +00:00
Keepers
aa287131cf
nil pointer protection in populateResource (#4489)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-13 01:29:43 +00:00
Keepers
7b6484663b
ensure api layer provides non-empty modtime (#4486)
enforce the following:
* no mod times returned from the api layer are zero-valued
* dttm.OrNow() provides a zero value time check
* ptr.OrNow() calls dttmOrNow on non-nil time values.
* itemPagers for getAddedAndRemoved call ptr.OrNow()
* callers to getAddedAndRemoved provide a transformer func which produces the mod time from the paged item, instead of assuming all items use the same interface for mod time.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-12 23:42:35 +00:00
Keepers
a9e0b4f95f
fix failing item replace test (#4488)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-12 22:29:33 +00:00
ashmrtn
c07b14c859
Consolidate Reasoner implementations (#4469)
Remove other implementation of Reasoner in the
selector package since it's a duplicate of the
one that's in the identity package

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-11 22:04:16 +00:00
ashmrtn
84b9de96ef
Move Reasoner implementation to identity package (#4468)
Move the Reasoner implementation from the kopia package to the identity
package. This will help avoid import cycles if we want to start
persisting Reason information in the backup model.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-11 21:24:08 +00:00
ashmrtn
ba64f07f34
Rename drive handlers to better match uses (#4479)
Renames focus on OneDrive and Libraries handlers.
Files are also renamed to match

item -> userDrive
library -> site

If diff is large due to file renames view by
commit since file renames are done in a separate
commit

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-11 20:44:39 +00:00
ashmrtn
7625219e14
Refactor drive handler logic (#4477)
Do a couple of high-level things with drive handlers:
* pull out generic functionality into a base handler
* use handler-specific implementations of AugmentItemInfo
* remove old switch-based augmentItemInfo

Overall goal is to reduce places we use service type
comparisons to handle behavior differences

---

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

* #4254

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-11 19:03:17 +00:00
Keepers
3a0fcd4a8b
refer to env instead of secrets in ci (#4480)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 💻 CI/Deployment
2023-10-11 18:33:41 +00:00
dependabot[bot]
06cefb2aa5
⬆️ Bump sass from 1.69.0 to 1.69.2 in /website (#4473)
Bumps [sass](https://github.com/sass/dart-sass) from 1.69.0 to 1.69.2.
<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.69.2</h2>
<p>To install Sass 1.69.2, 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>
<h3>JS API</h3>
<ul>
<li>Fix a bug where Sass crashed when running in the browser if there was a global variable named <code>process</code>.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1692">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.69.1</h2>
<p>To install Sass 1.69.1, 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>No user-visible changes.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1691">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.69.2</h2>
<h3>JS API</h3>
<ul>
<li>Fix a bug where Sass crashed when running in the browser if there was a global
variable named <code>process</code>.</li>
</ul>
<h2>1.69.1</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c62fe6a520"><code>c62fe6a</code></a> Fix crash in browser when running alongside NextJS (<a href="https://redirect.github.com/sass/dart-sass/issues/2114">#2114</a>)</li>
<li><a href="887c5113dd"><code>887c511</code></a> Cut another release (<a href="https://redirect.github.com/sass/dart-sass/issues/2111">#2111</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.69.0...1.69.2">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.69.0&new-version=1.69.2)](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-10-11 06:14:30 +00:00
Abin Simon
040257f8be
Add stats to export operations (#4461)
Have a way to gather stats about the exported data.

Users can now call `ExportOperation.GetStats()` at the end of the run to get the stats for the operations. The data will be in the format `map[path.CategoryType]data.KindStats` whre `KindStats` is:

```go
type KindStats struct {
	BytesRead     int64
	ResourceCount int64
}
```
---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-11 05:54:17 +00:00
Keepers
107b6883d5
modify onenote skip, clues add collection scope (#4472)
some additional logging context for collection scope.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests


#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-11 02:28:17 +00:00
Abhishek Pandey
3656e04676
Allow delta enum callers to specify $select properties (#4460)
<!-- PR description-->

This fixes a perf regression in #4456 

Context: 
URL cache only needs a subset of drive item properties while doing delta queries. See https://github.com/alcionai/corso/pull/4074 for details.  Changes in #4456 were applying the default item property set for all delta enumerator consumers including URL cache. This PR fixes the memory regression. 

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-10 20:07:42 +00:00
Keepers
7196b5d278
catch and sentinel resource locked error case (#4465)
handle cases where a resource is found, but is not accessible due to being locked out by an administrator or msoft process.

---

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

- [ ]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #4464

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-10 19:24:48 +00:00
Abhishek Pandey
eb0299d316
Push item download requests through drive rate limiter (#4393)
<!-- PR description-->

**Changes:** 
1. Count item download requests under drive rate limit quota . Currently this is under exchange limiter.
2. Use 1 rate limit token instead of 2 for drive calls by default. 
3. Use 2 tokens instead of 1 for initial delta query ( which has no token). 

Sharing internal docs separately to go along with the review. 

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-10 16:45:37 +00:00
Abhishek Pandey
9ee7ca3bae
Disable contact category checks in integration tests (#4463)
<!-- PR description-->

`TestControllerIntegrationSuite/TestRestoreAndBackup_core/MultipleContactsInRestoreFolder` is failing right now for CI. We are failing while comparing contact categories [here](8e4d320b21/src/internal/m365/helper_test.go (L321)).
expected:  empty
got: Slice of 1 -> `"Corso_Restore_10-Oct-2023_13-54-32"`

We started hitting this failure today in both CI as well as local test runs. This appears to be caused by a graph transition. Disabling the category checks temporarily to unblock PRs. Meanwhile, will keep an eye on graph behavior for the next few days. 

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-10 16:00:35 +00:00
neha_gupta
8e4d320b21
remove start events from operations (#4442)
<!-- PR description-->
remove start events from all operations

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

- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🧹 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/4440

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
2023-10-10 13:45:12 +00:00
Keepers
aa66675b83
remove local bus struct (#4435)
removes the local bus from fault in favor of a single Bus that operates both within a local and global instance, and can be passed downstream independent of context.  Also includes some code separation in the fault package for readability.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-10 01:25:14 +00:00
Keepers
ff6c1eaf8d
adds purely informational alerts to the fault bus (#4434)
Adds a new type of entry to the fault bus: Alerts. These values are for non-erroneous messages that we want 1/ clearly displayed to the user at the end of an operation and 2/ persisted with the backup for later review.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4264

#### Test Plan

- [x]  Unit test
2023-10-09 21:57:36 +00:00
Keepers
5215e907b0
Revert "Revert "move drive pagers to pager pattern (#4316)" (#4412)" (#4456)
This reverts commit 3d78183651289e2051b8690850069c9b41df6bd0.

Replacement for https://github.com/alcionai/corso/pull/4316 after revert in https://github.com/alcionai/corso/pull/4412.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature
2023-10-09 19:46:18 +00:00
ashmrtn
6f25be4ad2
Rename generic item structs and functions (#4421)
`unindexedPrefetchedItem` -> `prefetchedItem`
`prefetchedItem` -> `prefetchedItemWithInfo`
`unindexedLazyItem` -> `lazyItem`
`lazyItem` -> `lazyItemWithInfo`

---

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

* #4328

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-09 19:12:35 +00:00
ashmrtn
fc508d7160
Reenable exchange kopia assisted incrementals (#4411)
Allow creation of lazy collections and lazy
items again thus allowing exchange kopia
assisted incrementals.

Manually tested that a backup where an email
switches folders after enumeration results
in an empty file in kopia except for the
serialization header which includes the
deleted in flight flag. The next backup
removes the empty file from the folder in
kopia. The item doesn't appear in backup
details since it has no data

---

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

* #2023

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-09 18:38:15 +00:00
neha_gupta
a09f93aef7
remove corso start event (#4432)
<!-- PR description-->

remove code to send `Corso start` event. 

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

- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🧹 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/4439

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
2023-10-09 18:03:17 +00:00
ashmrtn
26ebe3cbe5
Uncomment exchange e2e tests (#4450)
Unclear why they were disabled in the first place.

---

#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
2023-10-09 17:32:58 +00:00
ashmrtn
60b046f5d0
Add benchmark for backup/hierarchy merging (#4327)
Basic test to check runtime of merging
many folders with minimal data in each
folder.

Based off some of the existing tests
in the kopia package

---

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

* #4117

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-09 16:56:16 +00:00
Abhishek Pandey
757007e027
Skip graph call if the download url has expired (#4419)
<!-- PR description-->

Builds on top of earlier PR #4417 to skip graph API call if the token has already expired. This is a performance optimization.

---

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

#### Issue(s)

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-09 13:42:54 +00:00
dependabot[bot]
2eae5b9f13
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.19.0 to 1.20.0 in /src (#4444)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.19.0 to 1.20.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.20.0]- 2023-10-04</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0e6c508510"><code>0e6c508</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/589">#589</a>)</li>
<li><a href="afc20dd537"><code>afc20dd</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/587">#587</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="17171c52ad"><code>17171c5</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.2.1 to 1.2.2</li>
<li><a href="c9ca3cd82c"><code>c9ca3cd</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/584">#584</a> from microsoftgraph/dependabot/github_actions/tibdex/...</li>
<li><a href="c6b5a6da88"><code>c6b5a6d</code></a> Bump tibdex/github-app-token from 2.0.0 to 2.1.0</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.19.0...v1.20.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.19.0&new-version=1.20.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-10-09 12:53:43 +00:00
dependabot[bot]
6446886fc4
⬆️ Bump github.com/spf13/viper from 1.16.0 to 1.17.0 in /src (#4453)
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.16.0 to 1.17.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/spf13/viper/releases">github.com/spf13/viper's releases</a>.</em></p>
<blockquote>
<h2>v1.17.0</h2>
<h2>Major changes</h2>
<p>Highlighting some of the changes for better visibility.</p>
<p>Please share your feedback in the Discussion forum. Thanks! ❤️</p>
<h3>Minimum Go version: 1.19</h3>
<p>Viper now requires Go 1.19</p>
<p>This change ensures we can stay up to date with modern practices and dependencies.</p>
<h3><code>log/slog</code> support <strong>[BREAKING]</strong></h3>
<p>Viper <a href="https://github.com/spf13/viper/releases/tag/v1.11.0">v1.11.0</a> added an experimental <code>Logger</code> interface to allow custom implementations (besides <a href="https://github.com/spf13/jwalterweatherman">jwalterweatherman</a>).</p>
<p>In addition, it also exposed an experimental <code>WithLogger</code> function allowing to set a custom logger.</p>
<p>This release deprecates that interface in favor of <a href="https://pkg.go.dev/log/slog">log/slog</a> released in Go 1.21.</p>
<blockquote>
<p>[!WARNING]
<code>WithLogger</code> accepts an <a href="https://pkg.go.dev/log/slog#Logger">*slog.Logger</a> from now on.</p>
</blockquote>
<p>To preserve backwards compatibility with older Go versions, prior to Go 1.21 Viper accepts a <a href="https://pkg.go.dev/golang.org/x/exp/slog#Logger">*golang.org/x/exp/slog.Logger</a>.</p>
<p>The experimental flag is removed.</p>
<h3>New finder implementation <strong>[BREAKING]</strong></h3>
<p>As of this release, Viper uses a new library to look for files, called <a href="https://github.com/sagikazarmark/locafero">locafero</a>.</p>
<p>The new library is better covered by tests and has been built from scratch as a general purpose file finder library.</p>
<p>The implementation is experimental and is hidden behind a <code>finder</code> build tag.</p>
<blockquote>
<p>[!WARNING]
The <code>io/fs</code> based implementation (that used to be hidden behind a <code>finder</code> build tag) has been removed.</p>
</blockquote>
<h2>What's Changed</h2>
<h3>Exciting New Features 🎉</h3>
<ul>
<li>Add NATS support by <a href="https://github.com/hooksie1"><code>@​hooksie1</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1590">spf13/viper#1590</a></li>
<li>Add slog support by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1627">spf13/viper#1627</a></li>
</ul>
<h3>Enhancements 🚀</h3>
<ul>
<li>chore: add local development environment using nix by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1572">spf13/viper#1572</a></li>
<li>feat: add func GetEnvPrefix by <a href="https://github.com/baruchiro"><code>@​baruchiro</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1565">spf13/viper#1565</a></li>
<li>Improve dev env by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1575">spf13/viper#1575</a></li>
<li>fix: code optimization by <a href="https://github.com/testwill"><code>@​testwill</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1557">spf13/viper#1557</a></li>
<li>test: remove not needed testutil.Setenv by <a href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1610">spf13/viper#1610</a></li>
<li>new finder library based on afero by <a href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a> in <a href="https://redirect.github.com/spf13/viper/pull/1625">spf13/viper#1625</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f62f86a84b"><code>f62f86a</code></a> refactor: make use of <code>strings.Cut</code></li>
<li><a href="94632fa21e"><code>94632fa</code></a> chore: Use pip3 explicitly to install yamllint</li>
<li><a href="3f6cadcbeb"><code>3f6cadc</code></a> chore: Fix copy-paste error for yamllint target</li>
<li><a href="287507c0b5"><code>287507c</code></a> docs: add set subset KV example</li>
<li><a href="f1cb2262bb"><code>f1cb226</code></a> chore(deps): update crypt</li>
<li><a href="c292b55050"><code>c292b55</code></a> test: refactor asserts</li>
<li><a href="3d006fe361"><code>3d006fe</code></a> refactor: replace interface{} with any</li>
<li><a href="8a6dc5d43c"><code>8a6dc5d</code></a> build(deps): bump github/codeql-action from 2.21.8 to 2.21.9</li>
<li><a href="96c5c0083f"><code>96c5c00</code></a> chore: remove deprecated build tags</li>
<li><a href="44911d2cac"><code>44911d2</code></a> build(deps): bump github/codeql-action from 2.21.7 to 2.21.8</li>
<li>Additional commits viewable in <a href="https://github.com/spf13/viper/compare/v1.16.0...v1.17.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/viper&package-manager=go_modules&previous-version=1.16.0&new-version=1.17.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-10-09 12:11:16 +00:00
dependabot[bot]
5dc155f62d
⬆️ Bump golang.org/x/tools from 0.13.0 to 0.14.0 in /src (#4454)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.13.0 to 0.14.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.2</h2>
<p><code>golang/go#61813</code></p>
<h2>gopls/v0.13.1</h2>
<p>This is a patch release to fix three issues with the v0.13.0 release:</p>
<ul>
<li><a href="https://redirect.github.com/golang/go/issues/61670">golang/go#61670</a>: broken imports due to corrupted export data</li>
<li><a href="https://redirect.github.com/golang/go/issues/61693">golang/go#61693</a>: panic in stubmethods with variadic args</li>
<li><a href="https://redirect.github.com/golang/go/issues/61692">golang/go#61692</a>: gofumpt integration panics when used with the new go directive syntax in go.mod files (e.g. <code>go 1.21rc3</code>)</li>
</ul>
<p>Incidentally, this release also picks up a few fixes for references and renaming. See the <a href="https://github.com/golang/go/milestone/325?closed=1">milestone</a> for the complete list of resolved issues.</p>
<p>Thank you to all who reported bugs. If are still encountering problems, please <a href="https://github.com/golang/go/issues/new?assignees=&amp;labels=gopls+Tools&amp;projects=&amp;template=03-gopls.md&amp;title=x%2Ftools%2Fgopls%3A+">file an issue</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3f4194ee29"><code>3f4194e</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="1e4ce7c30c"><code>1e4ce7c</code></a> internal/refactor/inline: yet more tweaks to everything test</li>
<li><a href="ee20ddf1f7"><code>ee20ddf</code></a> internal/refactor/inline: permit return conversions in tailcall</li>
<li><a href="db1d1e0d33"><code>db1d1e0</code></a> gopls/internal/lsp: go to definition from embed directive</li>
<li><a href="2be977ecc5"><code>2be977e</code></a> internal/refactor/inline: work around channel type misformatting</li>
<li><a href="0ba9c8439e"><code>0ba9c84</code></a> internal/fuzzy: several improvements for symbol matching</li>
<li><a href="c2725ad840"><code>c2725ad</code></a> gopls: update x/telemetry dependency</li>
<li><a href="e8722c0103"><code>e8722c0</code></a> go/types/internal/play: show types.Selection information</li>
<li><a href="a819c616c8"><code>a819c61</code></a> internal/refactor/inline: eliminate unnecessary binding decl</li>
<li><a href="102b64b540"><code>102b64b</code></a> internal/refactor/inline: tweak everything-test docs again</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.13.0...v0.14.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.13.0&new-version=0.14.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-10-09 11:33:15 +00:00
dependabot[bot]
00b604b551
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.2.1 to 1.2.3 in /src (#4445)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.2.1 to 1.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.2.3</h2>
<h3>Added</h3>
<ul>
<li>A tryAdd method to RequestHeaders</li>
</ul>
<h2>v1.2.2</h2>
<h3>Changed</h3>
<ul>
<li>Switched the RFC 6570 implementation to std-uritemplate</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.2.3] - 2023-10-05</h2>
<h3>Added</h3>
<ul>
<li>A tryAdd method to RequestHeaders</li>
</ul>
<h2>[1.2.2] - 2023-09-21</h2>
<h3>Changed</h3>
<ul>
<li>Switched the RFC 6570 implementation to std-uritemplate</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ddce95aac0"><code>ddce95a</code></a> Add a TryAdd method to RequestHeaders and use it (<a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/108">#108</a>)</li>
<li><a href="b612c85b1c"><code>b612c85</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/107">#107</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="77dfbdb037"><code>77dfbdb</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/106">#106</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="0887815a0a"><code>0887815</code></a> Bump go.opentelemetry.io/otel/trace from 1.18.0 to 1.19.0</li>
<li><a href="7f56133749"><code>7f56133</code></a> Bump go.opentelemetry.io/otel from 1.18.0 to 1.19.0</li>
<li><a href="8598b9eabd"><code>8598b9e</code></a> Switch to std-uritemplate (<a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/101">#101</a>)</li>
<li><a href="86e5097a5b"><code>86e5097</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/104">#104</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="0dc443e491"><code>0dc443e</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/105">#105</a> from microsoft/dependabot/go_modules/go.opentelemetry...</li>
<li><a href="efb9a4660a"><code>efb9a46</code></a> Bump go.opentelemetry.io/otel/trace from 1.17.0 to 1.18.0</li>
<li><a href="3de18cb2c3"><code>3de18cb</code></a> Bump go.opentelemetry.io/otel from 1.17.0 to 1.18.0</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.2.1...v1.2.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.2.1&new-version=1.2.3)](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-10-09 10:53:16 +00:00
Abhishek Pandey
3784269f04
Add logic to check if the JWT token has expired (#4417)
<!-- PR description-->
**Changes**
* Introduce jwt expiry checks, to be used in a later PR. Based off @vkamra's idea. 
* Add an url parsing helper func to extract the value of specified query param(e.g. `tempauth`).
* Unit tests for both above.


---

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

#### Issue(s)

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-09 10:06:00 +00:00
Vaibhav Kamra
268cf98770
Update CHANGELOG.md for v0.14.0 (#4452)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-10-09 09:19:16 +00:00
dependabot[bot]
0d2f950b55
⬆️ Bump mermaid from 10.4.0 to 10.5.0 in /website (#4455)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.4.0 to 10.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>10.5.0</h2>
<h2>What's Changed</h2>
<h3>Features</h3>
<ul>
<li>feat(er): add entity name alias by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4758">mermaid-js/mermaid#4758</a></li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Fix Twitter fontawesome class in flowchart.md by <a href="https://github.com/GingerNinjaNicko"><code>@​GingerNinjaNicko</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4723">mermaid-js/mermaid#4723</a></li>
<li>fix(pie): align slices and legend orders by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4774">mermaid-js/mermaid#4774</a></li>
<li>Update class member handling by <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4534">mermaid-js/mermaid#4534</a></li>
<li>fix(er): allow underscore as leading char by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4776">mermaid-js/mermaid#4776</a></li>
<li>Align arrows on sequence diagram by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4804">mermaid-js/mermaid#4804</a></li>
<li>fix: Allow hollow markers on edges by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4788">mermaid-js/mermaid#4788</a></li>
<li>fix: Fix for vulnerability making it possible to add javascript in class names by <a href="https://github.com/knsv"><code>@​knsv</code></a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Docs/2910 Remove n00b and fix some docs by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4767">mermaid-js/mermaid#4767</a></li>
<li>fix: typos by <a href="https://github.com/omahs"><code>@​omahs</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4801">mermaid-js/mermaid#4801</a></li>
<li>&quot;CSS&quot; instead of &quot;css&quot; in flowchart.md by <a href="https://github.com/jakeboone02"><code>@​jakeboone02</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4797">mermaid-js/mermaid#4797</a></li>
<li>fix(docs): Correct repeated text in flowchart.md by <a href="https://github.com/andriy-koz"><code>@​andriy-koz</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4810">mermaid-js/mermaid#4810</a></li>
<li>Update link to Discourse theme component by <a href="https://github.com/gschlager"><code>@​gschlager</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4811">mermaid-js/mermaid#4811</a></li>
<li>New Mermaid Live Editor for Confluence Cloud by <a href="https://github.com/zhifeiyue"><code>@​zhifeiyue</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4814">mermaid-js/mermaid#4814</a></li>
<li>Update classDiagram.md by <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4781">mermaid-js/mermaid#4781</a></li>
<li>Support member definition to initialize class  by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4786">mermaid-js/mermaid#4786</a></li>
<li>fix: Add support for <code>~test Array~string~</code> back in Class by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4805">mermaid-js/mermaid#4805</a></li>
<li>Added support for millisecond and second to gantt tickInterval by <a href="https://github.com/vertxxyz"><code>@​vertxxyz</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4778">mermaid-js/mermaid#4778</a></li>
<li>Add directive support to all diagrams by preprocessing by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4759">mermaid-js/mermaid#4759</a></li>
<li>Update README.md by <a href="https://github.com/jgreywolf"><code>@​jgreywolf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4780">mermaid-js/mermaid#4780</a></li>
</ul>
<h3>Chores</h3>
<ul>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4783">mermaid-js/mermaid#4783</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4782">mermaid-js/mermaid#4782</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4809">mermaid-js/mermaid#4809</a></li>
<li>chore: move <code>commonDb</code> into  <code>diagrams/common/commonDb</code> by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4802">mermaid-js/mermaid#4802</a></li>
<li>Use utf8 encoding in Jupyter example by <a href="https://github.com/jonashaag"><code>@​jonashaag</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4701">mermaid-js/mermaid#4701</a></li>
<li>Update flowchart.md by <a href="https://github.com/Ogglas"><code>@​Ogglas</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4792">mermaid-js/mermaid#4792</a></li>
<li>Update flowchart.md by <a href="https://github.com/dsblank"><code>@​dsblank</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4798">mermaid-js/mermaid#4798</a></li>
<li>Refactor <code>cypress/helpers/util.ts</code> by <a href="https://github.com/RohanHandore"><code>@​RohanHandore</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4340">mermaid-js/mermaid#4340</a></li>
<li>refactor: Fix typings in utils.ts by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4826">mermaid-js/mermaid#4826</a></li>
<li>Support ClassDefs in external diagrams by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4819">mermaid-js/mermaid#4819</a></li>
<li>Fix: flowchartElk Arrow overlap by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4830">mermaid-js/mermaid#4830</a></li>
<li>Give markers unique id's per graph by <a href="https://github.com/chadfawcett"><code>@​chadfawcett</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4825">mermaid-js/mermaid#4825</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/GingerNinjaNicko"><code>@​GingerNinjaNicko</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4723">mermaid-js/mermaid#4723</a></li>
<li><a href="https://github.com/omahs"><code>@​omahs</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4801">mermaid-js/mermaid#4801</a></li>
<li><a href="https://github.com/jakeboone02"><code>@​jakeboone02</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4797">mermaid-js/mermaid#4797</a></li>
<li><a href="https://github.com/andriy-koz"><code>@​andriy-koz</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4810">mermaid-js/mermaid#4810</a></li>
<li><a href="https://github.com/gschlager"><code>@​gschlager</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4811">mermaid-js/mermaid#4811</a></li>
<li><a href="https://github.com/zhifeiyue"><code>@​zhifeiyue</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4814">mermaid-js/mermaid#4814</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bb0d549d0d"><code>bb0d549</code></a> Mermaid release v10.5.0</li>
<li><a href="47acc1e423"><code>47acc1e</code></a> Fix for issue with backticks in ids in classDiagrams</li>
<li><a href="f96d351fdc"><code>f96d351</code></a> fix: Sequence loop rendering</li>
<li><a href="ee58743a04"><code>ee58743</code></a> fix: Use log instead of console</li>
<li><a href="63f4a56ec5"><code>63f4a56</code></a> chore: Add test for gantt rendering</li>
<li><a href="7cb1c2e0aa"><code>7cb1c2e</code></a> fix(gantt): Set max exclude interval length to 5 years</li>
<li><a href="5f5b216428"><code>5f5b216</code></a> fix: Performance issue in Gantt diagram</li>
<li><a href="a3456ec933"><code>a3456ec</code></a> fix: Sequence diagram loop rendering</li>
<li><a href="ad596086ea"><code>ad59608</code></a> 10.5.0-rc.2</li>
<li><a href="9d1c109612"><code>9d1c109</code></a> Merge branch 'develop' into release/10.5.0</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.4.0...v10.5.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.4.0&new-version=10.5.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-10-09 05:31:45 +00:00
Abin Simon
f0e1000171
Temporarily disable restoring to alternate resource for Groups (#4449)
<!-- PR description-->

---

#### 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
- [ ] 🗺️ 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-10-06 21:29:12 +00:00
dependabot[bot]
a49b15e13c
⬆️ Bump sass from 1.68.0 to 1.69.0 in /website (#4447)
Bumps [sass](https://github.com/sass/dart-sass) from 1.68.0 to 1.69.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.69.0</h2>
<p>To install Sass 1.69.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>Add a <code>meta.get-mixin()</code> function that returns a mixin as a first-class Sass value.</p>
</li>
<li>
<p>Add a <code>meta.apply()</code> mixin that includes a mixin value.</p>
</li>
<li>
<p>Add a <code>meta.module-mixins()</code> function which returns a map from mixin names in a module to the first-class mixins that belong to those names.</p>
</li>
<li>
<p>Add a <code>meta.accepts-content()</code> function which returns whether or not a mixin value can take a content block.</p>
</li>
<li>
<p>Add support for the relative color syntax from CSS Color 5. This syntax cannot be used to create Sass color values. It is always emitted as-is in the CSS output.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Deprecate <code>Deprecation.calcInterp</code> since it was never actually emitted as a deprecation.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a rare race condition where the embedded compiler could freeze when a protocol error was immediately followed by another request.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1690">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.69.0</h2>
<ul>
<li>
<p>Add a <code>meta.get-mixin()</code> function that returns a mixin as a first-class Sass
value.</p>
</li>
<li>
<p>Add a <code>meta.apply()</code> mixin that includes a mixin value.</p>
</li>
<li>
<p>Add a <code>meta.module-mixins()</code> function which returns a map from mixin names in
a module to the first-class mixins that belong to those names.</p>
</li>
<li>
<p>Add a <code>meta.accepts-content()</code> function which returns whether or not a mixin
value can take a content block.</p>
</li>
<li>
<p>Add support for the relative color syntax from CSS Color 5. This syntax
cannot be used to create Sass color values. It is always emitted as-is in the
CSS output.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Deprecate <code>Deprecation.calcInterp</code> since it was never actually emitted as a
deprecation.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a rare race condition where the embedded compiler could freeze when a
protocol error was immediately followed by another request.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8e6a26cc62"><code>8e6a26c</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2107">#2107</a>)</li>
<li><a href="ce545c2e95"><code>ce545c2</code></a> Implement first class mixins (<a href="https://redirect.github.com/sass/dart-sass/issues/2073">#2073</a>)</li>
<li><a href="310904e217"><code>310904e</code></a> Fix a race condition preventing embedded compiler to shutdown after a protoco...</li>
<li><a href="16b85120f5"><code>16b8512</code></a> Switch to the GitHub-hosted MacOS ARM64 runner (<a href="https://redirect.github.com/sass/dart-sass/issues/2103">#2103</a>)</li>
<li><a href="4255930f52"><code>4255930</code></a> Update the version of Sass used by the website on release (<a href="https://redirect.github.com/sass/dart-sass/issues/2102">#2102</a>)</li>
<li><a href="507e4399cc"><code>507e439</code></a> Bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/sass/dart-sass/issues/2088">#2088</a>)</li>
<li><a href="f66cb47d14"><code>f66cb47</code></a> Bump docker/setup-qemu-action from 2 to 3 (<a href="https://redirect.github.com/sass/dart-sass/issues/2089">#2089</a>)</li>
<li><a href="ff56fc5e61"><code>ff56fc5</code></a> Implement support for the relative color syntax of CSS Color 5 (<a href="https://redirect.github.com/sass/dart-sass/issues/2098">#2098</a>)</li>
<li><a href="00823e056a"><code>00823e0</code></a> Rephrase errors for numbers that must be unitless or % (<a href="https://redirect.github.com/sass/dart-sass/issues/2101">#2101</a>)</li>
<li><a href="23f01430d6"><code>23f0143</code></a> Forbid LLM contributions (<a href="https://redirect.github.com/sass/dart-sass/issues/2100">#2100</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/sass/dart-sass/compare/1.68.0...1.69.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.68.0&new-version=1.69.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-10-06 05:37:27 +00:00
Keepers
c88b5764a9
hand resource down to drive controller (#4436)
hands the backup resource into the drive collection for the handler to use to record as the siteID

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3988

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-10-05 16:38:17 +00:00
Vaibhav Kamra
02db885c1e
Temporary removal of OneNote file size check (#4437)
Temporarily remove the large file size check that controls skipping a OneNote file download that failed with a
503 error.

We've observed this error condition to be persistent even with smaller OneNote files.

This allows us to unblock backup for these resources while we investigate the issue.

---

#### 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-10-05 05:19:30 +00:00
neha_gupta
fd3a4eb6ff
update Kopia password (#4406)
<!-- PR description-->
---
This PR is raised as part of splitting https://github.com/alcionai/corso/pull/4397 into smaller parts
It cover connecting with Kopia and updating repos password

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

- [ ]  No

#### Type of change

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


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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
2023-10-04 07:07:57 +00:00
dependabot[bot]
83dec480e6
⬆️ Bump github.com/aws/aws-xray-sdk-go from 1.8.1 to 1.8.2 in /src (#4429)
Bumps [github.com/aws/aws-xray-sdk-go](https://github.com/aws/aws-xray-sdk-go) from 1.8.1 to 1.8.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-xray-sdk-go/releases">github.com/aws/aws-xray-sdk-go's releases</a>.</em></p>
<blockquote>
<h2>v1.8.2</h2>
<p>Please refer <a href="https://github.com/aws/aws-xray-sdk-go/blob/master/CHANGELOG.md">change-log</a> for more details</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-xray-sdk-go/blob/master/CHANGELOG.md">github.com/aws/aws-xray-sdk-go's changelog</a>.</em></p>
<blockquote>
<h1>Release v1.8.2 (2023-09-28)</h1>
<h3>SDK Enhancements</h3>
<ul>
<li>Change how SDK sets the context for AWS SDK calls <a href="https://redirect.github.com/aws/aws-xray-sdk-go/pull/418">#PR 418</a></li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li>Suppress Panic in Emitter <a href="https://redirect.github.com/aws/aws-xray-sdk-go/pull/419">#PR 419</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2f767e408a"><code>2f767e4</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/420">#420</a> from wangzlei/master</li>
<li><a href="0eac27d502"><code>0eac27d</code></a> Update changelog for 1.8.2</li>
<li><a href="065bcb0efb"><code>065bcb0</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/419">#419</a> from wangzlei/master</li>
<li><a href="16febea30b"><code>16febea</code></a> suppress Panic in Emitter</li>
<li><a href="4cdaf99822"><code>4cdaf99</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/418">#418</a> from jj22ee/set-context-alternative</li>
<li><a href="3d484ac245"><code>3d484ac</code></a> set context via SetContext() instead of HTTPRequest.WithContext()</li>
<li><a href="c59927ed66"><code>c59927e</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-xray-sdk-go/issues/415">#415</a> from aws/dependabot/go_modules/integration-tests/dist...</li>
<li><a href="33c582d751"><code>33c582d</code></a> Bump google.golang.org/grpc in /integration-tests/distributioncheck</li>
<li><a href="cfcff07ec7"><code>cfcff07</code></a> Disable IMDSv1 from Elastic Beanstalk</li>
<li><a href="d94e4d30c1"><code>d94e4d3</code></a> Update IntegrationTesting.yml</li>
<li>See full diff in <a href="https://github.com/aws/aws-xray-sdk-go/compare/v1.8.1...v1.8.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-xray-sdk-go&package-manager=go_modules&previous-version=1.8.1&new-version=1.8.2)](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-10-03 20:23:16 +00:00
ashmrtn
fc28ca3283
Use local fs for non-retention tests (#4424)
Switch kopia package tests that don't
require retention to use the local
file system for speed. Tests that do
check retention settings require S3.

Brings kopia package test runtime
down from ~430s to ~130s on local
machine

---

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

* closes #4422

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-10-03 16:39:03 +00:00
ashmrtn
13c5b9fe5a
Use separate config dirs for kopia in file system mode (#4423)
Fixes possible issues of opening the
incorrect repo if tests are run in
parallel.

Integration test for this in
[model_store_test.go](3d78183651/src/internal/kopia/model_store_test.go (L897))

---

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

* #4422

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-10-03 15:34:11 +00:00
Keepers
19111fe136
export path string to service type (#4428)
Also removes the unused teams service consts

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-02 23:52:45 +00:00
Keepers
c4f6ad791e
provide expected repo cfg in e2e tests (#4420)
nightly tests were missing expected repo config due to, breaking api expectations, causing unexpected failures due to test env setup.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💚 E2E
2023-10-02 20:44:33 +00:00
Keepers
3d78183651
Revert "move drive pagers to pager pattern (#4316)" (#4412)
This reverts commit c3f94fd7f76f377e4728c715abbb8c7846e9fb25.

The specified commit is working fine for CI and development, but contains performance
degredation (solved in a follow-up pr) that we want to avoid for the next release.  This
rever is temporary, and the changes will be re-instated after release.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-10-02 16:19:39 +00:00
Abin Simon
8bdef88a8b
Return tombstone instead of canUsePreviousBackup (#4394)
This is necessary to fix the correctness of the backup.

---

#### 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. -->
* fixes https://github.com/alcionai/corso/issues/4371

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-10-02 14:33:15 +00:00
Abin Simon
363cbca86f
Backup/Restore/Export multiples sites in Groups (#4344)
I've updated the Team used in the CI to include private and shared channels. Sanity tests should ideally do the e2e tests for multi site backups.

<!-- PR description-->

---

#### 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: --->
- [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
- [x] 💚 E2E
2023-10-02 13:17:15 +00:00
Keepers
b15f8a6fcd
add generic details command (#4352)
centralizes details command processing in the cli

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #2025
2023-09-30 16:56:13 +00:00
ashmrtn
5eaf95052d
Remove old serialization format code (#4410)
Remove the now unused serialization format
code that lived in the kopia package

---

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

* closes #4328

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-29 21:26:15 +00:00
ashmrtn
f0ccf35b5c
Inject versions in generic item (#4409)
Leverage the generic item struct to inject
serialization format information for all
items

Unwires the old code that injected versions
in kopia wrapper but leaves some code in
the wrapper to strip out the serialization
format during restore

Future PRs should move the process of
pulling out serialization format to
individual services

Viewing by commit may make review
easier

---

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

* #4328

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-29 20:16:01 +00:00
ashmrtn
8e080f83b7
Fix restore backup tests (#4407)
Exchange tests inadvertently got disabled since
it wasn't finding path matches for returned
BackupCollections. This switches to using
LocationPath which does allow for matching

Most contacts tests are disabled since restore
doesn't support nested folders

---

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

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

#### Type of change

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-29 18:08:08 +00:00
ashmrtn
2fe0e8643e
Add collection wrappers for serialization format (#4408)
Add a few collection wrappers that help
inject/remove serialization format since
the handling of that is still split
across layers.

---

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

* #4328

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-29 17:41:46 +00:00
ashmrtn
05060e7d1f
Create exported readers for injecting and retrieving serialization version info (#4378)
Previously kopia wrapper has been transparently injecting
and stripping out a "serialization version" for all items
persisted in kopia. The version thus far has been
hard-coded to `1` and has been stored in big endian format
in the first 4 bytes of every kopia file

This PR is a step towards getting serialization versions
on a per-service/per-item basis. It exposes serialization
readers that inject and strip out info to other packages

This PR also slightly changes the serialization version
format. The changes are two-fold:
* the MSB is now used to represent if the item was
  deleted between the time it was discovered and when
  its data was requested
* the serialization version number is set to uint16. This
  has no impact on existing persisted data since all
  versions are currently `1` (don't use more than
  16-bits). This size can be expanded in the future if
  needed, but is mostly to enforce the idea that higher
  order bits shouldn't be used for version numbers right
  now

---

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

* #4328

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-29 15:52:05 +00:00
dependabot[bot]
375019a988
⬆️ Bump postcss from 8.4.30 to 8.4.31 in /website (#4404)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.31</h2>
<ul>
<li>Fixed <code>\r</code> parsing to fix CVE-2023-44270.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.31</h2>
<ul>
<li>Fixed <code>\r</code> parsing to fix CVE-2023-44270.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="90208de880"><code>90208de</code></a> Release 8.4.31 version</li>
<li><a href="58cc860b4c"><code>58cc860</code></a> Fix carrier return parsing</li>
<li><a href="4fff8e4cdc"><code>4fff8e4</code></a> Improve pnpm test output</li>
<li><a href="cd43ed1232"><code>cd43ed1</code></a> Update dependencies</li>
<li><a href="caa916bdcb"><code>caa916b</code></a> Update dependencies</li>
<li><a href="8972f76923"><code>8972f76</code></a> Typo</li>
<li><a href="11a5286f78"><code>11a5286</code></a> Typo</li>
<li>See full diff in <a href="https://github.com/postcss/postcss/compare/8.4.30...8.4.31">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.30&new-version=8.4.31)](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-29 05:37:14 +00:00
ashmrtn
1c520db3bc
Use generic item in SharePoint lists/pages (#4367)
#### 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)

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-29 05:17:11 +00:00
ashmrtn
a806ab59bf
Use generic unindex item struct (#4366)
Switch all metadata files (of all types) to use the generic unindexed
item type. Transitioned items include:
  * previous paths and deltas for all services
  * site list for groups
  * drive .meta files

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-29 04:15:45 +00:00
ashmrtn
5521177aee
Create generic items without Info() (#4365)
Create generic Item implementations that
don't implement the ItemInfo interface.
These implementations can be used for
things like metadata files.


---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-29 03:29:15 +00:00
ashmrtn
d5cdf37369
Lock updating info in lazyItem (#4401)
Don't allow concurrent reads/writes to info in
lazyItem so we can make stronger assumptions
about state

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-29 01:50:15 +00:00
Keepers
5258ef0f36
assert correct error on s3 conn bad configs e2e (#4387)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💚 E2E
2023-09-29 00:45:16 +00:00
Keepers
9e0d464854
sanity test refactor (#4370)
refactoring the sanity tests with three goals:
1. move from env vars to cli commands so that unsupported commands fail loudly.
2. set up support for groups restore and export testing.
3. introduce some code re-use throughout.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3988

#### Test Plan

- [x] 💚 E2E
2023-09-28 23:53:15 +00:00
Keepers
a5f93f7a10
correctly attach store/provider flags (#4391)
corrects the storage and provider flag positioning to attach to the child command instead of the parent. Also corrects unit tests for flags to ensure flags are preset as expected.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-28 23:20:44 +00:00
Keepers
e5647a809d
add GroupByID to services (#4396)
Adds a groupByID call to services, and
adds CallConfig to the group by id api fn.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3988

#### Test Plan

- [x] 💚 E2E
2023-09-28 22:36:38 +00:00
Keepers
c3f94fd7f7
move drive pagers to pager pattern (#4316)
Drive pager usage currently showcases strong coupling between two layers: drive collection logic processing and drive api.  This PR separates that coupling by moving the full item enumeration process into the
API, and letting the collection logic process the
results. This acs as both a simplification of complex code, and a clearer separation of ownership between the two layers.

A detrimental side effect of this change is that drive item enumeration has moved from page-streaming
(ie: each page is fully processed before moving on to the next) and onto batch processing (ie: all items are stored in memory and processed in a single pass). Acknowledging that this is an unacceptable regression, a follow-up PR will appear shortly with better handling for stream-processing enumeration from the API layer as a standard part of the pattern for all pager
implementations.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-28 21:23:26 +00:00
ashmrtn
9767e08b39
Add recommendations on when to run maintenance (#4398)
#### 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
- [x] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-28 18:19:14 +00:00
Abin Simon
61de865660
Revert sanity tests for Groups incrementals and restore (#4392)
This reverts commit bc25869173df9052e358a055867539f32af8935c. #4373

We need more work for groups restore and export sanity tests to be functional. Reverting this to make the CI pass for now.

Example successful run: https://github.com/alcionai/corso/actions/runs/6336809043/job/17210633457

<!-- 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
- [x] 💻 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-28 13:36:15 +00:00
Abin Simon
7964364e61
Fix nightly tests for exchange, onedrive and groups (#4384)
We were trying to delete a single backupOp multiple times across different tests. Added another backupOp to for use in the new test.

<!-- 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
- [ ]  Unit test
- [x] 💚 E2E
2023-09-28 06:25:14 +00:00
ashmrtn
db9596d223
Use non-zero time as fallback (#4390)
Use a non-zero time as the fallback for the mod time of an item during enumeration. This should avoid an issue where the mod time in details differs from the mod time in kopia due to a serialization issue.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-27 23:07:59 +00:00
Keepers
3c96eb6437
quick cleanup before next step (#4347)
adds a container-of-things to reduce mostly-unused return value bloat, and updates some func names to be more appropriate to their behavior.

No logical changes, just renaming/movement.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-09-27 17:17:31 +00:00
neha_gupta
38ef3b6ef6
call repo connect in connect S3 cmd (#4383)
<!-- PR description-->

Call repo.connect() in S3 connect command. 
Was this missed as part of - https://github.com/alcionai/corso/pull/4343/files or am I misunderstanding something. 

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

- [ ]  Yes, it's included

#### 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.-->
- [ ] 💪 Manua
2023-09-27 16:37:15 +00:00
dependabot[bot]
91c0709d09
⬆️ Bump github.com/puzpuzpuz/xsync/v2 from 2.5.0 to 2.5.1 in /src (#4381)
Bumps [github.com/puzpuzpuz/xsync/v2](https://github.com/puzpuzpuz/xsync) from 2.5.0 to 2.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/puzpuzpuz/xsync/releases">github.com/puzpuzpuz/xsync/v2's releases</a>.</em></p>
<blockquote>
<h2>v2.5.1</h2>
<ul>
<li>Speed up built-in string hash function (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/106">#106</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c3b502018e"><code>c3b5020</code></a> Speed up built-in string hash function (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/106">#106</a>)</li>
<li>See full diff in <a href="https://github.com/puzpuzpuz/xsync/compare/v2.5.0...v2.5.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/puzpuzpuz/xsync/v2&package-manager=go_modules&previous-version=2.5.0&new-version=2.5.1)](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-27 15:44:22 +00:00
dependabot[bot]
b7c02e6c7a
⬆️ Bump sass from 1.67.0 to 1.68.0 in /website (#4380)
Bumps [sass](https://github.com/sass/dart-sass) from 1.67.0 to 1.68.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.68.0</h2>
<p>To install Sass 1.68.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>Fix the source spans associated with the <code>abs-percent</code> deprecation.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Non-filesystem importers can now set the <code>nonCanonicalScheme</code> field, which declares that one or more URL schemes (without <code>:</code>) will never be used for URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add a <code>containingUrl</code> field to the <code>canonicalize()</code> and <code>findFileUrl()</code> methods of importers, which is set to the canonical URL of the stylesheet that contains the current load. For filesystem importers, this is always set; for other importers, it's set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>
<p>Add <code>AsyncImporter.isNonCanonicalScheme</code>, which importers (async or sync) can use to indicate that a certain URL scheme will never be used for URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add <code>AsyncImporter.containingUrl</code>, which is set during calls to the <code>canonicalize()</code> method to the canonical URL of the stylesheet that contains the current load. This is set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>The <code>CalculationValue.interpolation</code> field is deprecated and will be removed in a future version. It will no longer be set by the compiler, and if the host sets it it will be treated as equivalent to <code>CalculationValue.string</code> except that <code>&quot;(&quot;</code> and <code>&quot;)&quot;</code> will be added to the beginning and end of the string values.</p>
</li>
<li>
<p>Properly include TypeScript types in the <code>sass-embedded</code> package.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1680">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.68.0</h2>
<ul>
<li>Fix the source spans associated with the <code>abs-percent</code> deprecation.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Non-filesystem importers can now set the <code>nonCanonicalScheme</code> field, which
declares that one or more URL schemes (without <code>:</code>) will never be used for
URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add a <code>containingUrl</code> field to the <code>canonicalize()</code> and <code>findFileUrl()</code>
methods of importers, which is set to the canonical URL of the stylesheet that
contains the current load. For filesystem importers, this is always set; for
other importers, it's set only if the current load has no URL scheme, or if
its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>
<p>Add <code>AsyncImporter.isNonCanonicalScheme</code>, which importers (async or sync) can
use to indicate that a certain URL scheme will never be used for URLs returned
by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add <code>AsyncImporter.containingUrl</code>, which is set during calls to the
<code>canonicalize()</code> method to the canonical URL of the stylesheet that contains
the current load. This is set only if the current load has no URL scheme, or
if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>The <code>CalculationValue.interpolation</code> field is deprecated and will be removed
in a future version. It will no longer be set by the compiler, and if the host
sets it it will be treated as equivalent to <code>CalculationValue.string</code> except
that <code>&quot;(&quot;</code> and <code>&quot;)&quot;</code> will be added to the beginning and end of the string
values.</p>
</li>
<li>
<p>Properly include TypeScript types in the <code>sass-embedded</code> package.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="de618fa7bd"><code>de618fa</code></a> Fix an error during embedded compiler shutdown (<a href="https://redirect.github.com/sass/dart-sass/issues/2092">#2092</a>)</li>
<li><a href="873e91e5ff"><code>873e91e</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2090">#2090</a>)</li>
<li><a href="13c9fb3c9d"><code>13c9fb3</code></a> Expose the containing URL to importers under some circumstances (<a href="https://redirect.github.com/sass/dart-sass/issues/2083">#2083</a>)</li>
<li><a href="69f1847bae"><code>69f1847</code></a> CI: Configure dependabot to update GitHub Actions, too (<a href="https://redirect.github.com/sass/dart-sass/issues/2087">#2087</a>)</li>
<li><a href="c22c84d2c5"><code>c22c84d</code></a> Update changelog for <a href="https://redirect.github.com/sass/embedded-host-node/issues/248">sass/embedded-host-node#248</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2086">#2086</a>)</li>
<li><a href="37e0ed54da"><code>37e0ed5</code></a> Fix source span for calculation deprecation warnings (<a href="https://redirect.github.com/sass/dart-sass/issues/2084">#2084</a>)</li>
<li><a href="7370d6a97d"><code>7370d6a</code></a> Fix changelog for 1.67.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2085">#2085</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.67.0...1.68.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.67.0&new-version=1.68.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-27 05:32:40 +00:00
jules
f7ab320117
fix getting owner of sites (#4376)
Fixes an issue where Get Site by id is looking for the `group` details in the additional data of the site items. It should be looking in `site.drive.owner` instead.
---

#### 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E

Added a new test and tested using the `10rqc2` test tenant.

```
CORSO_CI_TESTS=true go test -run TestSiteIntegrationSuite/TestSites_GetByID -v
=== RUN   TestSiteIntegrationSuite
    tester.go:44: TestSiteIntegrationSuite run at 2023-09-26T17:34:05.383766Z
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID
    tester.go:44: TestSiteIntegrationSuite/TestSites_GetByID run at 2023-09-26T17:34:05.3883Z
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,96772abb-cfbe-496d-a770-301650888b3a,7ff3cdd8-1bf4-4e5d-999d-830a276c8490
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8be0b20e-6eff-4ac8-8505-53c7030c9fb8,316e3a01-1d93-412b-9f31-8758a267bb4a
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,32c3d871-e17d-47de-abff-b5d7e3491a31,316e3a01-1d93-412b-9f31-8758a267bb4a
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8d49ec-d275-4589-8fc1-a8088ed31332,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,0bd5608f-159c-488c-ac51-cd80f747bc1d,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4aae01c8-1d30-4202-9962-9e7b64b6bc10,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,d530b5ab-0dd9-4858-a07c-9d76a8f09b83,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,c87270a2-f375-44ec-b582-09f1b7ddd842,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,055d896c-88bc-45c3-aa4b-5af71f326bcc,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,13a2ff8b-537f-428f-aaf2-f2e4b08e4bde,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,1e16d84e-9e42-406e-b628-5d4b303309ed,41e5f79b-fe25-47c0-996b-d3e77571dbb1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2f9743f8-4ca3-411f-b85d-32e6441eefd2,11810f05-e8bd-45e2-9728-92e434260750
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4d799bb6-222e-46ce-a626-51051eb2f311,11810f05-e8bd-45e2-9728-92e434260750
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b0d4432d-432b-4681-9cdb-2ab789dfe145,ce88f380-fbaa-48aa-a3a1-e04599594e95
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f10c5f9a-1b2b-4764-8685-d08e9883888c,ce88f380-fbaa-48aa-a3a1-e04599594e95
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8df7082a-62eb-4165-97f9-ead8cf04c0d8,11810f05-e8bd-45e2-9728-92e434260750
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,053684d8-ca6c-4376-a03e-2567816bb091,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ba5dbd17-6f68-4405-b1b6-e1160c0ba746,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e946c519-47f6-443f-9544-574ab9f3966f,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,846d8363-c646-496b-a603-06a2a22e0196,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf300606-e52e-41d7-a860-e5927f57a46d,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf83915f-7454-4f2a-b3c1-1932251c714f,bf2bed00-f5ec-4551-96c1-dc7069392eb8
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,038e0095-4509-4f53-b045-0c86a7971b6a,3086932f-402c-494b-9aea-bf2bb1bf8303
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,25ca6d57-b92b-4731-9b87-23050e080eac,cf53a987-f1bb-4cea-a27e-62ee282ecca7
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b672056-0409-46f6-98bb-4a9f5626830f,cf53a987-f1bb-4cea-a27e-62ee282ecca7
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e1d12403-62e6-44d0-9798-15fd194858f7,69ca49fc-e607-438b-ba24-3bb40fc7baba
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a,38ab6d06-fc82-4417-af93-22d8733c22be
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6884eaa6-108e-42ee-ac1e-8f8d344d5e53,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5cdb15ec-4440-4115-be94-d9221b9135b3,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4637d353-1c6d-4967-98a3-a75db4e1a925,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b510176-8837-4a81-a26e-2020565adb92,276af97a-8a5e-4001-aa86-53958ac9548c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,3d374d63-f5fa-4c6a-b5c3-119280bd5442,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8fa2edf7-1f13-47e5-834d-ccdb81879302,276af97a-8a5e-4001-aa86-53958ac9548c
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8dccfa-aa6b-4a75-b7bd-eab3f85af9b0,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,54bc7530-a81c-4d90-8cfb-a8625168187f,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2d6ba44f-0638-4950-8fee-537c854e9e28,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,23283ae3-170b-4db6-b50f-895b12373524,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f238d00a-af70-4273-9017-6042a6d8a8e1,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ee9af367-a8ef-4f56-99ad-72f53d1cd64f,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,291e91dd-f9f9-4e0f-8abc-269ade15e1be,a470fff3-c3a7-456a-98c3-ad51d166e222
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5edef5e8-6654-4fb7-870b-52365d9818f4,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,203db13c-aa6b-4cb4-bb11-7b5ce9c2b5b6,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b8fff07f-350b-4f62-b35f-854b0920f180,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,26b58876-c2c2-4bee-9fae-a2acbb0ebeb0,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b39c8064-43bf-4740-83cf-8d4814ee8591,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,01af6484-492e-4bae-bd3b-ed7d14ed3369,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6e27eab3-0ccc-4ce1-80ae-b32912c9468d,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bb5d5b4a-e089-4e66-9868-9e263ecc635d,4fa3a2c0-fa81-4e6f-8e8b-1479a8927bc6
=== RUN   TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,009d6803-aa00-4db7-8233-e2cbd7d9f503,5408143c-ebd0-4130-82e6-767375686853
--- PASS: TestSiteIntegrationSuite (30.98s)
    --- PASS: TestSiteIntegrationSuite/TestSites_GetByID (30.97s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,96772abb-cfbe-496d-a770-301650888b3a,7ff3cdd8-1bf4-4e5d-999d-830a276c8490 (0.61s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8be0b20e-6eff-4ac8-8505-53c7030c9fb8,316e3a01-1d93-412b-9f31-8758a267bb4a (0.64s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,32c3d871-e17d-47de-abff-b5d7e3491a31,316e3a01-1d93-412b-9f31-8758a267bb4a (0.81s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8d49ec-d275-4589-8fc1-a8088ed31332,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.59s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,0bd5608f-159c-488c-ac51-cd80f747bc1d,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.61s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4aae01c8-1d30-4202-9962-9e7b64b6bc10,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.65s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,d530b5ab-0dd9-4858-a07c-9d76a8f09b83,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.61s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,c87270a2-f375-44ec-b582-09f1b7ddd842,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.69s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,055d896c-88bc-45c3-aa4b-5af71f326bcc,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.71s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,13a2ff8b-537f-428f-aaf2-f2e4b08e4bde,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.65s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,1e16d84e-9e42-406e-b628-5d4b303309ed,41e5f79b-fe25-47c0-996b-d3e77571dbb1 (0.57s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2f9743f8-4ca3-411f-b85d-32e6441eefd2,11810f05-e8bd-45e2-9728-92e434260750 (0.62s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4d799bb6-222e-46ce-a626-51051eb2f311,11810f05-e8bd-45e2-9728-92e434260750 (0.79s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b0d4432d-432b-4681-9cdb-2ab789dfe145,ce88f380-fbaa-48aa-a3a1-e04599594e95 (0.52s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f10c5f9a-1b2b-4764-8685-d08e9883888c,ce88f380-fbaa-48aa-a3a1-e04599594e95 (0.51s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8df7082a-62eb-4165-97f9-ead8cf04c0d8,11810f05-e8bd-45e2-9728-92e434260750 (0.62s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,053684d8-ca6c-4376-a03e-2567816bb091,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c (0.55s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ba5dbd17-6f68-4405-b1b6-e1160c0ba746,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.63s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e946c519-47f6-443f-9544-574ab9f3966f,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.66s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,846d8363-c646-496b-a603-06a2a22e0196,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c (0.50s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf300606-e52e-41d7-a860-e5927f57a46d,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.73s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf83915f-7454-4f2a-b3c1-1932251c714f,bf2bed00-f5ec-4551-96c1-dc7069392eb8 (0.56s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,038e0095-4509-4f53-b045-0c86a7971b6a,3086932f-402c-494b-9aea-bf2bb1bf8303 (0.60s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,25ca6d57-b92b-4731-9b87-23050e080eac,cf53a987-f1bb-4cea-a27e-62ee282ecca7 (0.54s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b672056-0409-46f6-98bb-4a9f5626830f,cf53a987-f1bb-4cea-a27e-62ee282ecca7 (0.52s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e1d12403-62e6-44d0-9798-15fd194858f7,69ca49fc-e607-438b-ba24-3bb40fc7baba (0.51s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a,38ab6d06-fc82-4417-af93-22d8733c22be (0.49s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6884eaa6-108e-42ee-ac1e-8f8d344d5e53,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.53s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5cdb15ec-4440-4115-be94-d9221b9135b3,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.50s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4637d353-1c6d-4967-98a3-a75db4e1a925,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.55s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b510176-8837-4a81-a26e-2020565adb92,276af97a-8a5e-4001-aa86-53958ac9548c (0.53s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,3d374d63-f5fa-4c6a-b5c3-119280bd5442,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.54s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8fa2edf7-1f13-47e5-834d-ccdb81879302,276af97a-8a5e-4001-aa86-53958ac9548c (0.53s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8dccfa-aa6b-4a75-b7bd-eab3f85af9b0,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.61s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,54bc7530-a81c-4d90-8cfb-a8625168187f,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.54s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2d6ba44f-0638-4950-8fee-537c854e9e28,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.67s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,23283ae3-170b-4db6-b50f-895b12373524,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.80s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f238d00a-af70-4273-9017-6042a6d8a8e1,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.74s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ee9af367-a8ef-4f56-99ad-72f53d1cd64f,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.76s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,291e91dd-f9f9-4e0f-8abc-269ade15e1be,a470fff3-c3a7-456a-98c3-ad51d166e222 (0.61s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5edef5e8-6654-4fb7-870b-52365d9818f4,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.59s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,203db13c-aa6b-4cb4-bb11-7b5ce9c2b5b6,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.63s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b8fff07f-350b-4f62-b35f-854b0920f180,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.62s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,26b58876-c2c2-4bee-9fae-a2acbb0ebeb0,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.58s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b39c8064-43bf-4740-83cf-8d4814ee8591,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.67s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,01af6484-492e-4bae-bd3b-ed7d14ed3369,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.69s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6e27eab3-0ccc-4ce1-80ae-b32912c9468d,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.63s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bb5d5b4a-e089-4e66-9868-9e263ecc635d,4fa3a2c0-fa81-4e6f-8e8b-1479a8927bc6 (0.67s)
        --- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,009d6803-aa00-4db7-8233-e2cbd7d9f503,5408143c-ebd0-4130-82e6-767375686853 (0.57s)
PASS
ok  	github.com/alcionai/corso/src/pkg/services/m365	31.635s
```
2023-09-26 23:22:14 +00:00
Keepers
a8a2aee99d
remove expand drive from root site (#4377)
missed the root site call usage of expand drive
on the last fix.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #4337

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-26 22:32:15 +00:00
Keepers
f37e58ee5c
graph debug logging improvements (#4368)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
- [x] 🧹 Tech Debt/Cleanup
2023-09-26 22:01:00 +00:00
Abin Simon
bc25869173
Add sanity tests for Groups incrementals and restore (#4373)
Need to add `CORSO_SECONDARY_M365_TEST_USER_ID` to the CI before we merge this.

---

#### 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
- [ ]  Unit test
- [x] 💚 E2E
2023-09-26 19:45:44 +00:00
Keepers
0474e5c957
separate delta not supported from invalid (#4375)
groups backup has a failing case where delta
queries are not supported, but we aren't distinguishing
that case from the invalid delta case as expected. This
results in backup failures, instead of success with no data.

---

#### 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] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-26 18:37:15 +00:00
ashmrtn
8791c59c17
Fix NPE in Exchange CLI restore E2E setup suite (#4374)
#### 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
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-26 16:57:42 +00:00
neha_gupta
adbc7fe03e
allow delete of multiple backup IDs (#4335)
<!-- PR description-->

allow deletion of multiple IDs in single command

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

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

#### Type of change

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

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ] 💚 E2E
2023-09-26 08:53:14 +00:00
ashmrtn
5c4419fdc0
Use generic item in Drive backup (#4357)
Use generic lazy item implementation for drive
backups. This is a bit of a stop-gap
implementation since the drive logic is more
complex than exchange logic

Refactoring the drive logic to streamline it
would help reduce the number of functions
called to download a single item etc.

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-26 02:50:14 +00:00
ashmrtn
a91c823e42
Generic item api update (#4356)
Minor updates to error handling for
generic item implementation

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-26 01:59:57 +00:00
ashmrtn
6690fd3ea2
Groups generic item (#4353)
Use generic item structs for Groups

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-26 00:27:43 +00:00
Keepers
365078a861
split repo create and init/cnn (#4343)
splits the functionality for creating a new repository struct, and initializing or connecting to it.  This is the first step in a multi-step improvement for init and connect processing.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #2025

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-25 23:48:53 +00:00
ashmrtn
cf3744bcfb
Exch generic item (#4351)
Use generic item structs in Exchange code

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-25 23:16:12 +00:00
ashmrtn
0df876d106
Disable Exchange kopia assisted incrementals (#4360)
Can be reenabled when we get a good
solution to deletion markers for
individual items.

---

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

* #2023

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-25 22:23:15 +00:00
Keepers
89860d1221
add standardized tests for flags in backup cmds (#4294)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
2023-09-25 21:28:17 +00:00
Keepers
01f61a44ed
move drive expand to config property (#4362)
the addition of the drive expand requires onedrive permissions in order to retrieve sites by ID.  This causes some users to violate customer contract by requiring unwanted permissions.  This change allows configuration of the getbyID call to optionally include the drive extend, which enables the backup process to return to the permission set as expected from v0.12

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #4337

#### Test Plan

- [ ] 💪 Manual
- [ ] 💚 E2E
2023-09-25 19:18:16 +00:00
Keepers
732bac17a4
add missing recoverable errs (#4363)
groups collection item streaming is missing
recoverable errors, and is only logging at this time. This may be causing backups to succeed even
when errors should cause a failure.

---

#### 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-25 18:35:47 +00:00
ashmrtn
a3dabaa589
Make generic version of item structs (#4350)
Generic structs implement items that have
details associated with them. Items that
don't have details will need a separate
struct since we use a downcast to
determine if we can get details.

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-25 17:21:26 +00:00
Abhishek Pandey
c81a769c76
Increase nightly test timeout to 2hrs (#4359)
<!-- PR description-->

Nightly tests are still timing out, even after increasing timeout to 1 hr. Now that we have long living aws tokens, we should be able to increase it to 2 hrs. Hopefully this would be a good short term fix.

---

#### 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
- [x] 💻 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-25 16:28:44 +00:00
Niraj Tolia
2bd7ee45dd
Revert "⬆️ Bump tw-elements from 1.0.0-alpha13 to 1.0.0-beta1 in /website" (#4349)
Reverts alcionai/corso#4268 to go back to the MIT licensed version of the code.
2023-09-24 16:07:14 +00:00
Niraj Tolia
4263095b2b
Tweak fs repo docs (#4348)
- Warns about using in production
- Moves some of the constraints up before setup
- Moves some text around for better flow
---

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

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2023-09-22 18:45:50 +00:00
Keepers
0545365b12
move container enum to pager pattern (#4298)
moves exchange container enumeration funcs in
the api to the pager pattern established with item enumeration.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-22 17:34:06 +00:00
Keepers
dcffc61bf5
do not mark not-found items as skipped (#4342)
This was an accidental mis-use of the skipped item pattern.  Items deleted during in flight during backup due to race conditions do not count as permanent
skips in the way that other skipped items do.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* closes #4044

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-22 16:39:16 +00:00
neha_gupta
8ce6dc4217
skip-permissions flag to stop restoring of permissions of Onedrive (#4313)
<!-- PR description-->

add `skip-permissions` flag for permission restore

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

- [ ]  Yes, it's included

#### Type of change

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

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-22 06:51:00 +00:00
Abin Simon
496b725035
Do not try to restore channel messages for Groups (#4334)
<!-- PR description-->

As of now, we try to restore channel messages and fail with the following error:

```
Error: Failed to run Groups restore: running restore: restoring collections: data category not supported
```

---

#### 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-22 06:10:26 +00:00
ashmrtn
738693a1d7
Create and use generic tombstone collection (#4339)
Incremental backups requires us to mark some
folders as deleted by creating a collection
with state `data.DeletedState`

This PR creates a simple, generic "tombstone"
collection that does just that

The PR additionally uses the tombstone
collection in place of more complicated
implementations where any easy switch is
possible. Deleted collections in OneDrive
require more work since tests attempt to
cast to a concrete type

---

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

* #4191

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-22 01:22:53 +00:00
Keepers
6bc40ea2aa
add throttling, token counters to operation (#4318)
Adds context embedding to pkg/count, and embeds
the backup, restore, and export operation ctx with the operations count.bus.  The bus is extracted from the ctx in api middleware to track throttling response counts, as well as token consumption counts.  Counts are globally tracked, not on a per-time or per resource basis.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-22 00:43:16 +00:00
Keepers
bf3a65a351
bump clues to latest version (#4326)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
2023-09-21 23:59:15 +00:00
ashmrtn
09aebc4a31
Wire backup cleanup into maintenance operation (#4091)
Wire backup cleanup into maintenance operation.
Currently it runs under a different mode so it
won't affect existing users of the maintenance
command. Once we're satisfied with testing we
can remove the temporary const and run this
when complete maintenance is run

---

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

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

#### Issue(s)

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-21 22:15:29 +00:00
ashmrtn
b33231e98d
Use backupBase internally in base finder code (#4315)
First step to consolidating fields in backupBases.
This adds the consolidated fields to the code for
finding bases.

---

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

* #3943

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-21 19:34:59 +00:00
Abhishek Pandey
0f256a97d5
Expose filesystem cli commands in docs (#4338)
<!-- PR description-->

Exposes docs for new CLI commands `repo init filesystem` and `repo connect filesystem`

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-21 17:28:49 +00:00
ashmrtn
66a1a3a39d
Add helper function to get category (#4325)
Expand BaseCollection to have a helper function that returns the Category. Attempts to source from the FullPath and falls back to the PreviousPath if necessary.

---

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

* #4319

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-21 16:47:48 +00:00
Niraj Tolia
b2978e15f1
Upgrade Docusaurus to v2.4.3 (#4333)
This will help us to upgrade to Docusaurus v3 when it comes out

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💪 Manual
2023-09-21 07:15:06 +00:00
Abin Simon
ccf8df3548
Bump msgraph sdk to 1.19.0 (#4314)
Needed some changes in the func names.

``` bash
$ sed -i "s/By\([a-zA-Z]*\)IdString/By\1Id/g" **/*.go
```

<!-- 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
- [ ] 🧹 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
- [x]  Unit test
- [x] 💚 E2E
2023-09-21 07:01:07 +00:00
dependabot[bot]
cac4298863
⬆️ Bump jarallax from 2.1.3 to 2.1.4 in /website (#4152)
Bumps [jarallax](https://github.com/nk-o/jarallax) from 2.1.3 to 2.1.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/nk-o/jarallax/blob/master/CHANGELOG.md">jarallax's changelog</a>.</em></p>
<blockquote>
<h2>[2.1.4] - Aug 29, 2023</h2>
<ul>
<li>added correct styles to support picture tag in jarallax.css</li>
<li>added minified styles jarallax.min.css</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b173d6f777"><code>b173d6f</code></a> v2.1.4</li>
<li><a href="c0bd11eaea"><code>c0bd11e</code></a> updated deps</li>
<li><a href="8804bb2809"><code>8804bb2</code></a> Merge branch 'master' of <a href="https://github.com/nk-o/jarallax">https://github.com/nk-o/jarallax</a></li>
<li><a href="cd67ef2362"><code>cd67ef2</code></a> Create npm-publish.yml</li>
<li><a href="e0c2ce5800"><code>e0c2ce5</code></a> changed readme with info of how to import CSS (related <a href="https://redirect.github.com/nk-o/jarallax/issues/219">#219</a>)</li>
<li><a href="e907ef8da6"><code>e907ef8</code></a> added support for picture tag in CSS (resolves <a href="https://redirect.github.com/nk-o/jarallax/issues/219">#219</a>)</li>
<li><a href="226b1232fa"><code>226b123</code></a> Create FUNDING.yml</li>
<li><a href="c0ed3527b1"><code>c0ed352</code></a> build</li>
<li><a href="289159b4f7"><code>289159b</code></a> updated deps</li>
<li>See full diff in <a href="https://github.com/nk-o/jarallax/compare/v2.1.3...v2.1.4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jarallax&package-manager=npm_and_yarn&previous-version=2.1.3&new-version=2.1.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-21 06:26:31 +00:00
dependabot[bot]
0dc2468ff6
⬆️ Bump postcss from 8.4.27 to 8.4.30 in /website (#4306)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.30</h2>
<ul>
<li>Improved source map performance (by <a href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
</ul>
<h2>8.4.29</h2>
<ul>
<li>Fixed <code>Node#source.offset</code> (by <a href="https://github.com/idoros"><code>@​idoros</code></a>).</li>
<li>Fixed docs (by <a href="https://github.com/coliff"><code>@​coliff</code></a>).</li>
</ul>
<h2>8.4.28</h2>
<ul>
<li>Fixed <code>Root.source.end</code> for better source map (by <a href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed <code>Result.root</code> types when <code>process()</code> has no parser.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.30</h2>
<ul>
<li>Improved source map performance (by Romain Menke).</li>
</ul>
<h2>8.4.29</h2>
<ul>
<li>Fixed <code>Node#source.offset</code> (by Ido Rosenthal).</li>
<li>Fixed docs (by Christian Oliff).</li>
</ul>
<h2>8.4.28</h2>
<ul>
<li>Fixed <code>Root.source.end</code> for better source map (by Romain Menke).</li>
<li>Fixed <code>Result.root</code> types when <code>process()</code> has no parser.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="45c5501777"><code>45c5501</code></a> Release 8.4.30 version</li>
<li><a href="bc3c341f58"><code>bc3c341</code></a> Update linter</li>
<li><a href="b2be58a2eb"><code>b2be58a</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1881">#1881</a> from romainmenke/improve-sourcemap-performance--phil...</li>
<li><a href="6a291d6425"><code>6a291d6</code></a> apply suggestions from code review</li>
<li><a href="efa442c3e1"><code>efa442c</code></a> Update lib/map-generator.js</li>
<li><a href="de33cf6b44"><code>de33cf6</code></a> improve sourcemap performance</li>
<li><a href="1c6ad2549e"><code>1c6ad25</code></a> Highlight banner with lines</li>
<li><a href="e10d5c097d"><code>e10d5c0</code></a> More more detailed text below</li>
<li><a href="3ff5f5f06d"><code>3ff5f5f</code></a> Rephrase into</li>
<li><a href="272aae4ff2"><code>272aae4</code></a> Remove old banner</li>
<li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.4.27...8.4.30">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.27&new-version=8.4.30)](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-21 06:21:09 +00:00
dependabot[bot]
c33a7a7bbc
⬆️ Bump tw-elements from 1.0.0-alpha13 to 1.0.0-beta1 in /website (#4268)
Bumps [tw-elements](https://github.com/mdbootstrap/Tailwind-Elements) from 1.0.0-alpha13 to 1.0.0-beta1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mdbootstrap/Tailwind-Elements/releases">tw-elements's releases</a>.</em></p>
<blockquote>
<h2>v1.0.0-beta1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="33bb2cbbbe"><code>33bb2cb</code></a> Release v1.0.0-beta1</li>
<li><a href="cb4f6afb05"><code>cb4f6af</code></a> Keywords update</li>
<li><a href="cf9038fabf"><code>cf9038f</code></a> Release updates</li>
<li><a href="8351a7d834"><code>8351a7d</code></a> Add licence comments</li>
<li><a href="4c1aa99200"><code>4c1aa99</code></a> License page - design update</li>
<li><a href="cf2fcf4505"><code>cf2fcf4</code></a> Add license changes (<a href="https://redirect.github.com/mdbootstrap/Tailwind-Elements/issues/1366">#1366</a>)</li>
<li><a href="a58d9d958a"><code>a58d9d9</code></a> Timepicker - add API tab (<a href="https://redirect.github.com/mdbootstrap/Tailwind-Elements/issues/1365">#1365</a>)</li>
<li><a href="ee4937762d"><code>ee49377</code></a> Add new front page images</li>
<li><a href="874eaa6d06"><code>874eaa6</code></a> Remove conflicts from Video Carousel docs page</li>
<li><a href="9b16c50893"><code>9b16c50</code></a> Merge branch 'dev' of <a href="https://github.com/mdbootstrap/Tailwind-Elements">https://github.com/mdbootstrap/Tailwind-Elements</a> into dev</li>
<li>Additional commits viewable in <a href="https://github.com/mdbootstrap/Tailwind-Elements/compare/1.0.0-alpha13...v1.0.0-beta1">compare view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| tw-elements | [< 1.1, > 1.0.0-beta1] |
</details>


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tw-elements&package-manager=npm_and_yarn&previous-version=1.0.0-alpha13&new-version=1.0.0-beta1)](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-21 06:09:14 +00:00
dependabot[bot]
011f961f64
⬆️ Bump feather-icons from 4.29.0 to 4.29.1 in /website (#4108)
Bumps [feather-icons](https://github.com/feathericons/feather) from 4.29.0 to 4.29.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/feathericons/feather/releases">feather-icons's releases</a>.</em></p>
<blockquote>
<h2>v4.29.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a href="https://redirect.github.com/feathericons/feather/pull/1213">#1213</a> <a href="8f0cc0e666"><code>8f0cc0e</code></a> Thanks <a href="https://github.com/colebemis"><code>@​colebemis</code></a>! - Test <a href="https://github.com/changesets/changesets">changesets</a> release</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/feathericons/feather/blob/main/CHANGELOG.md">feather-icons's changelog</a>.</em></p>
<blockquote>
<h2>4.29.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a href="https://redirect.github.com/feathericons/feather/pull/1213">#1213</a> <a href="8f0cc0e666"><code>8f0cc0e</code></a> Thanks <a href="https://github.com/colebemis"><code>@​colebemis</code></a>! - Test <a href="https://github.com/changesets/changesets">changesets</a> release</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ff2923ecea"><code>ff2923e</code></a> Version Packages (<a href="https://redirect.github.com/feathericons/feather/issues/1214">#1214</a>)</li>
<li><a href="8f0cc0e666"><code>8f0cc0e</code></a> Replace semantic-release with changesets (<a href="https://redirect.github.com/feathericons/feather/issues/1213">#1213</a>)</li>
<li><a href="7cfd42c563"><code>7cfd42c</code></a> Update eslint and prettier (<a href="https://redirect.github.com/feathericons/feather/issues/1212">#1212</a>)</li>
<li><a href="9b401f0b92"><code>9b401f0</code></a> Update package-lock.json to v2 (<a href="https://redirect.github.com/feathericons/feather/issues/1211">#1211</a>)</li>
<li><a href="4174a22a7b"><code>4174a22</code></a> Remove algolia script</li>
<li><a href="e371aaaa1e"><code>e371aaa</code></a> Delete .travis.yml</li>
<li><a href="a799adb98e"><code>a799adb</code></a> Update CONTRIBUTING.md</li>
<li><a href="a299aad93b"><code>a299aad</code></a> Update LICENSE</li>
<li><a href="66c0e19be6"><code>66c0e19</code></a> Create CODEOWNERS</li>
<li><a href="fc6713fbea"><code>fc6713f</code></a> Update README.md</li>
<li>Additional commits viewable in <a href="https://github.com/feathericons/feather/compare/v4.29.0...v4.29.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=feather-icons&package-manager=npm_and_yarn&previous-version=4.29.0&new-version=4.29.1)](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-21 06:04:05 +00:00
dependabot[bot]
e65e064038
⬆️ Bump autoprefixer from 10.4.15 to 10.4.16 in /website (#4331)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.15 to 10.4.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/autoprefixer/releases">autoprefixer's releases</a>.</em></p>
<blockquote>
<h2>10.4.16</h2>
<ul>
<li>Improved performance (by <a href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed docs (by <a href="https://github.com/coliff"><code>@​coliff</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md">autoprefixer's changelog</a>.</em></p>
<blockquote>
<h2>10.4.16</h2>
<ul>
<li>Improved performance (by Romain Menke).</li>
<li>Fixed docs (by Christian Oliff).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="026083ccde"><code>026083c</code></a> Release 10.4.16 version</li>
<li><a href="4cda7ae9ab"><code>4cda7ae</code></a> Update dependencies</li>
<li><a href="7a49d6ad5a"><code>7a49d6a</code></a> Update CI</li>
<li><a href="a87f4cd73e"><code>a87f4cd</code></a> improve performance (<a href="https://redirect.github.com/postcss/autoprefixer/issues/1500">#1500</a>)</li>
<li><a href="0d6496e44d"><code>0d6496e</code></a> Update dependencies</li>
<li><a href="d9064cb4c8"><code>d9064cb</code></a> Remove deprecated browsers from README (<a href="https://redirect.github.com/postcss/autoprefixer/issues/1499">#1499</a>)</li>
<li>See full diff in <a href="https://github.com/postcss/autoprefixer/compare/10.4.15...10.4.16">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=autoprefixer&package-manager=npm_and_yarn&previous-version=10.4.15&new-version=10.4.16)](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-21 05:58:58 +00:00
Abhishek Pandey
7050b0c9d2
Improve error handling during backup persistence (#4320)
<!-- PR description-->

We were not catching missing snapshot ID sooner. Fixed it.


---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-21 05:52:48 +00:00
Abin Simon
a28f57a6de
Use HumanString for export folder names (#4276)
`Libraries` is what gets used for SP libraries and using `channelMessages` here did not look good.

Ref: fe77c30e84/src/internal/m365/service/sharepoint/export.go (L49-L52)

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-21 05:05:11 +00:00
ashmrtn
231c0a65a0
Use BaseCollection in groups implementation (#4324)
Use common implementation for boiler plate
functionality

---

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

* #4319

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-21 01:04:04 +00:00
Keepers
6159668b1d
utilize format validation check (#4288)
adds usage of the export format validation check
to export cli commands.  Also moves the restore
cfg validation check out of the service flags
validation checks and into the generic restore runner for better separation of concerns.

---

#### 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-21 00:24:12 +00:00
ashmrtn
c3e63413d4
Fix extracting category from BaseCollection (#4323)
#### 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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-20 22:44:15 +00:00
ashmrtn
f767b67eca
Move BaseCollection to different package (#4322)
Prep for use in other packages. Removed
tests were covered by other code

---

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

* #4319

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-20 22:06:33 +00:00
Keepers
c1ec3c6648
formalizes ErrApplicationThrottled (#4317)
adds graph error identification for application throttled and adds an ApplicationThrottled sentinel to pkg/errs for sdk consumer identification.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-20 21:27:01 +00:00
ashmrtn
b212c37fd3
Lazily fetch Exchange item data when possible (#4300)
Implement lazy data fetch for Exchange items.
Use a new collection type to clearly denote
when items can be lazily fetched vs. requiring
eager fetch

**This PR changes how the read bytes stat is
updated.** Lazily fetched items will not
update the read bytes stat. This stat doesn't
appear to be used anywhere at the moment

For items that are deleted between the time
enumeration takes place and the time the data
for them needs fetched, the corso will:
* return an empty reader for the item
* not add the item to backup details
* delete the (empty) item from kopia on the
  next backup

Manually tested deleting an item between
enumeration and data fetch

---

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

* closes #2023

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-20 20:12:05 +00:00
ashmrtn
7f2200195c
Add a bit more test coverage for selective subtree pruning (#4301)
Add a few more test cases to try to catch
edge cases. New tests check:
* empty directories outside of changed
  subtrees are pruned where possible
* compound changes like moving/deleting
  a parent directory but keeping some of
  it's children still results in a
  correct hierarchy and prunes where
  possible

---

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

* closes #4117

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-20 19:29:16 +00:00
ashmrtn
4758724393
Snapshot function parameter refactor (#4143)
Pass struct to functions for snapshot upload
instead of a bunch of individual parameters.

Use embedding to remove the need to change
existing code that configures all the
parameters, only passing and polarity of
one variable is really changed

May be easier to view ignoring whitespace
changes

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-20 16:37:37 +00:00
ashmrtn
83815eee0e
Expand readonly mode test slightly (#4304)
Must have forgotten to submit the suggestion
for this in #4302

Maintenance is a quick way to check if readonly
mode is working. It doesn't require pulling
any data from graph but will still allow us to
check for a sentinel error.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-20 16:07:34 +00:00
Abin Simon
1389b53eaf
Add export support for Group SharePoint (#4260)
<!-- PR description-->

Ideally goes in after https://github.com/alcionai/corso/pull/4257 .
We could merge this instead of https://github.com/alcionai/corso/pull/4258 but I thought we could skip for now as this as been tested much less. But outside of me being paranoid, I think this should be in a good shape.

If this do go in, we can update the CHANGELOG entry to say that we do support export for SP libs.

This will also need more e2e(sanity) tests which I'll add in a follow up PR.

---

#### 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. -->
* closes https://github.com/alcionai/corso/issues/4259

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-20 06:42:42 +00:00
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
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
Abhishek Pandey
de062cd5de
Minor refactor of storage provider stringer (#4228)
<!-- PR description-->

One of the setup PRs before introducing local storage support for corso.

Changes
1. Export `storage.storageProvider` and rename it to `storage.Provider`. Without the rename, linter errors out with `exported: type name will be used as storage.StorageProvider by other packages, and that stutters; consider calling this Provider`
2. Rerun stringer - `stringer -type=Provider -linecomment`
3. Introduce a new Provider - `FS` for filesystem. This is in line with kopia naming for local/network attached storage.
4. Fix hardcoded string values for storage providers in test code.
---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-13 11:44:40 +00:00
Keepers
e3bde06457
add non-delta message paging path (#4229)
similar to exchange, there are conditions under
which channel messages are unable to use the
delta api.  In particular, when the channel has no valid email property.  This change ensures that
we enumerate the entire channel under those
conditions, instead of failing out.

Technically, the only situation we know of where
the email property is missing, and thus the channel cannot make delta queries, is when there are
zero messages in the channel already.  However,
there may be unknown cases that we haven't caught, so instead of skipping the channel we're going to
handle non-delta enumeration for future safeguarding.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3989 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-13 01:48:44 +00:00
ashmrtn
1257570d09
Turn merge bases into assist bases when disabling them (#4182)
Have disable merge bases turn all merge
bases into assist bases instead of
completely removing them. This allows
us to continue getting benefits of
kopia assisted incrementals and fixes
the not having the backup models for
details merging

---

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

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

#### Issue(s)

* fixes #4178
* #3943

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-13 01:11:42 +00:00
Niraj Tolia
e36545d370
Website: Upgrade Ubuntu and Node install process (#4230)
Fixes build failures and depreciations

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation
2023-09-12 23:23:10 +00:00
Keepers
6a15f699aa
use alias for teams cli (#4225)
#### 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]  Unit test
- [x] 💚 E2E
2023-09-12 23:17:05 +00:00
Keepers
9a8c413b52
some code cleanup before groups export (#4202)
various tidbits of data cleanup before moving forward with adding export behavior to groups.
* move duplicate collections mocks into data/mock
* move the export collection struct into pkg/export (to prevent future duplicates in the next PR)
* rename export.Collection to Collectioner, because it's an interface.
* some other non-logic rearrangement

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3991 

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-12 22:35:03 +00:00
Keepers
a2e80a178a
path pkg rename resouceOwner to protectedResource (#4193)
updaing the path package to the current naming convention. No logic changes.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-12 22:05:23 +00:00
ashmrtn
1fe37e4ba9
Update item info api (#4183)
Update the API for Item.Info to return an error.
This can then be leveraged to add lazy readers
to exchange backups

See #2023 for more info on how to add lazy
readers to exchange

---

#### 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
- [x] 💚 E2E
2023-09-12 21:36:22 +00:00
dependabot[bot]
039c2463fc
⬆️ Bump tibdex/github-app-token from 1 to 2 (#4212)
Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="0914d50df7"><code>0914d50</code></a> release v2.0.0</li>
<li><a href="95717386c6"><code>9571738</code></a> Add support for organization and user installation retrieval and repository s...</li>
<li>See full diff in <a href="https://github.com/tibdex/github-app-token/compare/v1...v2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tibdex/github-app-token&package-manager=github_actions&previous-version=1&new-version=2)](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-12 20:47:47 +00:00
ashmrtn
695a568a07
Upgrade linter to 1.54.2 (#4227)
#### 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-12 20:01:16 +00:00
neha_gupta
75c5cb3582
fix sanity test for groups (#4226)
<!-- PR description-->

Handle-
- empty channel
-  do to add item if deleted

#### 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
- [ ]  Unit test
2023-09-12 18:30:55 +00:00
Keepers
a1a33a2c2d
fixing bugs found during extensive manual tests (#4173)
fix up the following bugs:
* reinstate previousPath in the metadata retrieval
* implement DoNotMergeItems for real
* nil pointer protection for the 'from' property
* some additional logging

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3989

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-12 16:54:06 +00:00
Abhishek Pandey
1f70e53a39
Move S3 bucket flags to flags pkg (#4216)
<!-- PR description-->

Follow the pattern used elsewhere for declaring flag names & values. No logic change, just moving code. Added a unit test for flags.

---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2023-09-12 11:30:02 +00:00
Abin Simon
c526594e4e
Add CI to check for trailing comma (#4214)
Failing run: https://github.com/alcionai/corso/actions/runs/6143208025/job/16666243728

Follow up to https://github.com/alcionai/corso/pull/4208

---

#### 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
- [x] 💻 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-12 03:50:03 +00:00
Abin Simon
39428a4b41
Switch to using BuildMetadata helper (#4217)
<!-- 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-12 03:21:19 +00:00
ashmrtn
bf08c2a257
Delay getting ItemInfo when uploading data (#4174)
Delay getting ItemInfo when uploading
data a tad longer. Also add additional
checks that the modTime we use is what
we expect later on.

Delaying getting ItemInfo will help
for Exchange lazy readers by resolving
a circular dependency we had between
adding the ItemInfo to the cache set
and getting the item data

The extra modTime check will at least
let us know if something unexpected
happens that would affect incremental
details merging later on

---

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

* #2023

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-12 01:09:02 +00:00
ashmrtn
db86ccabf8
Track assist bases and merge bases separately (#4181)
Do a few things to separate merge and assist bases
* use distinct sets for each base type
* make another function to return all base snapshots to pass to kopia assisted incrementals
* update function that removes a merge base to make it into an 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
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3943
* #4178

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-12 00:19:21 +00:00
ashmrtn
a610df9d68
Temporarily disable groups and teams tests (#4224)
Need some digging as to why delta requests are returning errors.

---

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

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-11 23:44:39 +00:00
dependabot[bot]
bb821aabcb
⬆️ Bump actions/checkout from 3 to 4 (#4213)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node20 by <a href="https://github.com/takost"><code>@​takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li>Support fetching without the --progress option by <a href="https://github.com/simonbaird"><code>@​simonbaird</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
<li>Release 4.0.0 by <a href="https://github.com/takost"><code>@​takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li><a href="https://github.com/simonbaird"><code>@​simonbaird</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p>
<h2>v3.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Mark test scripts with Bash'isms to be run via Bash by <a href="https://github.com/dscho"><code>@​dscho</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li>
<li>Add option to fetch tags even if fetch-depth &gt; 0 by <a href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li>Release 3.6.0 by <a href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li><a href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p>
<h2>v3.5.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Checkout Issue in self hosted runner due to faulty submodule check-ins by <a href="https://github.com/megamanics"><code>@​megamanics</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li>Fix typos found by codespell by <a href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li>Add support for sparse checkouts by <a href="https://github.com/dscho"><code>@​dscho</code></a> and <a href="https://github.com/dfdez"><code>@​dfdez</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
<li>Release v3.5.3 by <a href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/megamanics"><code>@​megamanics</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li><a href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li><a href="https://github.com/dfdez"><code>@​dfdez</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p>
<h2>v3.5.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Use correct API url / endpoint in GHES by <a href="https://github.com/fhammerl"><code>@​fhammerl</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a> based on <a href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a> by <a href="https://github.com/1newsr"><code>@​1newsr</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p>
<h2>v3.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve checkout performance on Windows runners by upgrading <code>@​actions/github</code> dependency by <a href="https://github.com/BrettDong"><code>@​BrettDong</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/BrettDong"><code>@​BrettDong</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v4.0.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1067">Support fetching without the --progress option</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1436">Update to node20</a></li>
</ul>
<h2>v3.6.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark test scripts with Bash'isms to be run via Bash</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/579">Add option to fetch tags even if fetch-depth &gt; 0</a></li>
</ul>
<h2>v3.5.3</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1196">Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix typos found by codespell</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1369">Add support for sparse checkouts</a></li>
</ul>
<h2>v3.5.2</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1289">Fix api endpoint for GHES</a></li>
</ul>
<h2>v3.5.1</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1246">Fix slow checkout on Windows</a></li>
</ul>
<h2>v3.5.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1237">Add new public key for known_hosts</a></li>
</ul>
<h2>v3.4.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1209">Upgrade codeql actions to v2</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1210">Upgrade dependencies</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1225">Upgrade <code>@​actions/io</code></a></li>
</ul>
<h2>v3.3.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1045">Implement branch list using callbacks from exec function</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1050">Add in explicit reference to private checkout options</a></li>
<li>[Fix comment typos (that got added in <a href="https://redirect.github.com/actions/checkout/issues/770">#770</a>)](<a href="https://redirect.github.com/actions/checkout/pull/1057">actions/checkout#1057</a>)</li>
</ul>
<h2>v3.2.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/942">Add GitHub Action to perform release</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/967">Fix status badge</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1002">Replace datadog/squid with ubuntu/squid Docker image</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/964">Wrap pipeline commands for submoduleForeach in quotes</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1029">Update <code>@​actions/io</code> to 1.1.2</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1039">Upgrading version to 3.2.0</a></li>
</ul>
<h2>v3.1.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/939">Use <code>@​actions/core</code> <code>saveState</code> and <code>getState</code></a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li>
</ul>
<h2>v3.0.2</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/770">Add input <code>set-safe-directory</code></a></li>
</ul>
<h2>v3.0.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3df4ab11eb"><code>3df4ab1</code></a> Release 4.0.0 (<a href="https://redirect.github.com/actions/checkout/issues/1447">#1447</a>)</li>
<li><a href="8b5e8b7687"><code>8b5e8b7</code></a> Support fetching without the --progress option (<a href="https://redirect.github.com/actions/checkout/issues/1067">#1067</a>)</li>
<li><a href="97a652b800"><code>97a652b</code></a> Update default runtime to node20 (<a href="https://redirect.github.com/actions/checkout/issues/1436">#1436</a>)</li>
<li>See full diff in <a href="https://github.com/actions/checkout/compare/v3...v4">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&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-11 23:14:40 +00:00
ashmrtn
66e263715f
Fix reference to test site ID (#4223)
Pull site ID from environment not secrets

---

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


#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-11 22:31:41 +00:00
Abin Simon
b9c8bcbd30
Ignore permissions restore failure with a log (#4220)
<!-- 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
- [ ] 🧹 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-11 22:00:24 +00:00
ashmrtn
f335f6de6f
Setup for separating base sets (#4179)
Start setting things up to split the
base types into distinct sets. This
* Renames some functions
* makes a minor change to how bases
  are "cleared" from the struct.
  Instead of removing them, it just
  hides them

Work in this PR will be used in later
PRs

---

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

* #3943
* #4178

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-11 21:31:38 +00:00
Abhishek Pandey
e484fc8967
Rename s3checker cmd flags (#4215)
<!-- PR description-->

* Rename some flags to bring parity with corso cli flags. `--bucket-prefix` to `--prefix`, `--prefix` to `--object-prefix`. This is so that we can avoid passing overrides until sometime later. 
* Ideally this change should not be needed. This is part of a stopgap solution to remove s3 coupling from corso cli package.
* A more architectural solution is [managing overrides using viper](https://github.com/alcionai/corso/issues/4219). That change is a bit more involved, so i'll be adding that later. 
---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-11 18:44:11 +00:00
ashmrtn
c92ce44e10
Disable command to disable retention (#4221)
Currently failing, possibly due to changes in the cmdlet that the retention command uses.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-11 17:43:54 +00:00
Abin Simon
3706ae6c14
Handle groups without SharePoint sites (#4095)
Security groups will not have an associated site. This avoids trying
to backup the site if we get an error that the site is not available.

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-11 08:14:15 +00:00
Keepers
d3eda28989
enable groups integration tests (#4161)
enables nightly cli e2e tests, operations layer integration tests, and sanity tests for groups and teams.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3989

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-08 20:18:59 +00:00
Eno Thereska
59c541a7db
Typo in docs (#4210)
Minor typo in docs

---

#### 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
- [ ] 🗺️ 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-08 17:15:53 +00:00
Abin Simon
be59928f98
Fix cases where we had a trailing comma (#4208)
Not sure if we wanna merge it as it might generate way too many conflicts, but this should help us add a linter in CI. If we are good, I'll add something that can do lints for this in a follow up PR.

Super hacky, but this fix was created using `while true ; do tree-grepper -q go '(argument_list "," @nope .)' | tail -n1| awk -F: "{print \$1,\"+\"\$2\" -c ':norm \$xJZZ'\"}" | xargs vim ; done`.

---

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

- [ ]  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
- [ ] 🗺️ 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/3654

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-08 17:10:29 +00:00
Keepers
ce082162b5
add site owner to site struct (#4206)
Adds the owner category to the minified site struct in the m365 service api.  Instead of generating a "SiteByID" func in that layer, the ParseSite func is exported, which allows the user to provide an existing siteable
interface for transformation.

---

#### 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-08 16:29:36 +00:00
Abhishek Pandey
35ccb985df
Cleanup old user info code (#4189)
<!-- 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
- [x]  Unit test
- [ ] 💚 E2E
2023-09-08 08:41:58 +00:00
Abhishek Pandey
9bedee9c72
Wire service isolation changes into SDK code (#4186)
<!-- PR description-->

Wires `IsServiceEnabled` code into `UserHasMailbox`, `UserHasDrive`, and `UserGetMailboxInfo` SDK APIs.

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-08 07:58:38 +00:00
dependabot[bot]
2252625c14
⬆️ Bump github.com/minio/minio-go/v7 from 7.0.62 to 7.0.63 in /src (#4140)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.62 to 7.0.63.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/minio/minio-go/releases">github.com/minio/minio-go/v7's releases</a>.</em></p>
<blockquote>
<h2>Bugfix release</h2>
<h2>What's Changed</h2>
<ul>
<li>allow skipping errors while creating snowball archive by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1868">minio/minio-go#1868</a></li>
<li>replication: additional fields for metrics by <a href="https://github.com/poornas"><code>@​poornas</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1874">minio/minio-go#1874</a></li>
<li>allow IMDSv2 endpoint to fail, fallback to IMDSv1 by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1877">minio/minio-go#1877</a></li>
<li>cleanup FIPS and gov endpoint calculation by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1880">minio/minio-go#1880</a></li>
<li>replication: fix dependency issues by <a href="https://github.com/poornas"><code>@​poornas</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1881">minio/minio-go#1881</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/minio/minio-go/compare/v7.0.62...v7.0.63">https://github.com/minio/minio-go/compare/v7.0.62...v7.0.63</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a750ce3dc1"><code>a750ce3</code></a> replication: fix dependency issues (<a href="https://redirect.github.com/minio/minio-go/issues/1881">#1881</a>)</li>
<li><a href="71210f1975"><code>71210f1</code></a> cleanup FIPS and gov endpoint calculation (<a href="https://redirect.github.com/minio/minio-go/issues/1880">#1880</a>)</li>
<li><a href="43bb6bdeb7"><code>43bb6bd</code></a> allow IMDSv2 endpoint to fail, fallback to IMDSv1 (<a href="https://redirect.github.com/minio/minio-go/issues/1877">#1877</a>)</li>
<li><a href="1eac111c3c"><code>1eac111</code></a> replication: additional fields for metrics (<a href="https://redirect.github.com/minio/minio-go/issues/1874">#1874</a>)</li>
<li><a href="11ae9b4f43"><code>11ae9b4</code></a> allow skipping errors while creating snowball archive (<a href="https://redirect.github.com/minio/minio-go/issues/1868">#1868</a>)</li>
<li><a href="fde4a87c0f"><code>fde4a87</code></a> Update version to next release</li>
<li>See full diff in <a href="https://github.com/minio/minio-go/compare/v7.0.62...v7.0.63">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/minio/minio-go/v7&package-manager=go_modules&previous-version=7.0.62&new-version=7.0.63)](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-07 23:53:02 +00:00
Keepers
f94f5bbc76
add drive info to site get by id (#4197)
extends the site get-by-id call to include drive info. Useful for detecting whether the site is owned by
a user, or a group or team.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-07 22:13:46 +00:00
Keepers
bf02f57527
add a BuildMetadata func to path package (#4192)
just a QoL shorthand to match the Build func.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [=x] 💚 E2E
2023-09-07 19:05:58 +00:00
Keepers
c74585eafc
remove redundant type check (#4199)
info.itemType already looks through each service entry to find the item type.  A service nil check is redundant. Adds a qol func for asking if an itemInfo is a driveish item.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3990 

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-09-07 18:30:46 +00:00
Niraj Tolia
2e6a47e92f
Actually upgrade the website browserlist (#4204)
The previous commit didn't actually do anything in real life.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation

#### Test Plan

- [x] 💪 Manual
2023-09-07 16:35:11 +00:00
Abin Simon
755db5ae92
Handle groups when setting currency middleware defaults (#4190)
<!-- 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-07 08:07:07 +00:00
Abin Simon
eb8f3131f9
Misc fixes for handling groups (#4195)
A bunch of places where we missed handling groups
<!-- 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-07 06:36:18 +00:00
Abin Simon
f742318319
Add sites metadata in Groups backup (#4184)
Add sites metadata (previous paths) under `groupID/libraries/sites/previouspath`.

<!-- 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-07 04:59:31 +00:00
Niraj Tolia
bf1b290e2a
Upgrade browserlist for the website (#4201)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2023-09-07 00:13:17 +00:00
Abhishek Pandey
59bf350603
Add service isolation (#4096)
<!-- PR description-->

1. Renamed `IsBackupRunnable` to `IsServiceEnabled` & extended to restore operation. Removed `checkServiceEnabled`. Reasons:
- The above 2 functions were doing the same thing. Removed `checkServiceEnabled` in favor of `IsBackupRunnable` since we want this check to be as soon as possible during backup/restore op initialization
- Renamed `IsBackupRunnable` to `IsServiceEnabled`, because a) we are only doing service enabled checks right now, b) common code that can be used for both restore & backup.

2. Wire corso code to use new helpers in internal/m365/common.go
3. Note: SDK wiring and related integ tests will be added in a follow up 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/3844

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-06 17:15:40 +00:00
Abin Simon
2d590048a5
Add sites to metadata path (#4169)
This makes the following change to the metadata path:

```diff
-tenant/groupsMetadata/resourceOwner/libraries
+tenant/groupsMetadata/resourceOwner/libraries/sites/site-id
```

The change only affect groups and no other services.
<!-- 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
- [x]  Unit test
- [ ] 💚 E2E
2023-09-06 07:11:37 +00:00
Keepers
86e1cef3a9
make teams and groups work in the cli (#4139)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3989

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-09-05 21:14:34 +00:00
Keepers
5aee3cc2ae
use channels api to run backups (#4136)
This is the first in a series of PRs to get v0 backups working for channels.  In this change, the current api enumerators get plugged into the collections handler to produce backup data. Follow-up PRs will:
* hook backup to the CLI
* swap full-item enumeration for id-first-get-later pattern
* populate each message with all its replies on the get-later
* turn on integration testing at the operations and ci layers

---

#### 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-05 19:54:02 +00:00
dependabot[bot]
ccdb672026
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.16.0 to 1.17.0 in /src (#4167)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.16.0 to 1.17.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.17.0]- 2023-08-30</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bd9689c25d"><code>bd9689c</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/563">#563</a>)</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.16.0...v1.17.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.16.0&new-version=1.17.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-05 16:45:27 +00:00
Abhishek Pandey
c1c4218994
Add common code to check if services are enabled (#4127)
<!-- PR description-->

Currently corso CLI & SDK have different checks for services enabled. These checks have diverged which can lead to bugs. For e.g. SDK users use [code](3e43028a88/src/pkg/services/m365/users.go (L92)) to check if OD is enabled, while corso uses [this code](https://github.com/alcionai/corso/blob/main/src/pkg/services/m365/api/users.go#L174). These funcs have different checks. This PR introduces common helpers to consolidate these checks in one place.


- Note: I decided against absorbing these helpers into api/users.go, because separation of concerns -  getters shouldn't arbitrate on return vals. 
- Note that this code is not yet wired up to SDK/CLI. It'll be added in a following [PR](https://github.com/alcionai/corso/pull/4096). 


**Changes**
1. `Is*ServiceEnabled` helpers in internal/m365/common.go. 

2. Add `GetMailboxInfo` to common code. This is currently a duplicate of code in `GetInfo`. That function will be removed once we port SDK users to `GetMailboxInfo`. 

3. Unit tests for common code. Integration tests will be added in a later PR
- Note:`TestIsOneDriveServiceEnabled` is copied from `TestCheckUserHasDrives`. The older test will be removed 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
- [x] 🤖 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/3844

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-09-04 18:59:03 +00:00
Niraj Tolia
b7598d1ebe
Tweak main page HTML headings (#4185)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
2023-09-04 18:12:18 +00:00
ashmrtn
82f1679cb8
Mark all folders we're not keeping as tombstoned (#4177)
Increase the number of folders that we
tombstone so that we only keep the
things that were explicitly requested
for the backup.

This also helps keep things consistent
since we only add folders to the
previous paths and previous deltas
maps if they were selected during the
backup

---

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

* #4175

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-09-01 23:42:08 +00:00
Keepers
8d2070409f
fix language issues with default contacts (#4176)
prepends the default contacts folder display name to the location instead of the well-known defaultContacts value.  This ensures the folder gets compared properly for non-english mailboxes.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #4175

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-09-01 20:38:34 +00:00
Abin Simon
24a2fc5a81
Remove stray print statement (#4168)
Change `f did not decode` print statement to a log.

<!-- 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-01 10:37:57 +00:00
Keepers
f607429440
bump golang to v1.21 (#4170)
#### Does this PR need a docs update or release note?

- [x]  Yes, it's included

#### Type of change

- [x] 💻 CI/Deployment
2023-08-31 17:26:19 +00:00
ashmrtn
88a6e6d374
Use a larger data chunk to test compression (#4115)
Test that compression is on by default by having one file be large and easily compressible. Compression is indirectly checked by looking at how many bytes were uploaded.

---

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

#### Issue(s)

* closes #3156

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-31 15:50:41 +00:00
Abin Simon
bc404d9208
Tests for group handler (#4158)
<!-- 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. -->
* https://github.com/alcionai/corso/issues/4154

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-31 10:37:36 +00:00
Abin Simon
81b7416806
Update test helpers for groups backup (#4126)
This still is not complete, but this fixes a few places in the test suite helpers where we did not accommodate for groups.

---

#### 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. -->
* https://github.com/alcionai/corso/issues/3990

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-31 09:55:50 +00:00
dependabot[bot]
b6ecfd8806
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.334 to 1.45.0 in /src (#4166)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.334 to 1.45.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.45.0 (2023-08-30)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/appflow</code>: Updates service API and documentation</li>
<li><code>service/apprunner</code>: Updates service API and documentation</li>
<li><code>service/auditmanager</code>: Updates service API</li>
<li><code>service/cleanrooms</code>: Updates service API and documentation</li>
<li><code>service/datasync</code>: Updates service API and documentation</li>
<li><code>service/neptunedata</code>: Adds new service</li>
<li><code>service/network-firewall</code>: Updates service API and documentation</li>
<li><code>service/pca-connector-ad</code>: Adds new service</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Amazon SageMaker Canvas adds IdentityProviderOAuthSettings support for CanvasAppSettings</li>
</ul>
</li>
</ul>
<h3>SDK Features</h3>
<ul>
<li><code>aws/corehandlers</code>: Add internal flag in user agent functionality
<ul>
<li>Added handler which will add aws internal metadata to the user agent string</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="18deca52b3"><code>18deca5</code></a> Release v1.45.0 (2023-08-30) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4969">#4969</a>)</li>
<li><a href="2bb8fb14da"><code>2bb8fb1</code></a> add user agent internal metadata (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4967">#4967</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.334...v1.45.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.334&new-version=1.45.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-08-31 08:49:29 +00:00
Abin Simon
7c281d3fa0
Metadata related path changes (#4156)
This adds a `MetadataPathPrefix` func to any drive related handlers. And in case of exchange, we will create a path. These generated paths, in both scenario is what now gets passed to `MakeMetadataCollection` instead of passing the different values.
<!-- 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. -->
* https://github.com/alcionai/corso/issues/4154

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-31 08:20:37 +00:00
Abin Simon
98eae90924
Do not print completed header if no backups (#4124)
Before:

```
Logging to file: /home/meain/.cache/corso/logs/2023-08-28T07-18-24Z.log
Connecting to repository:      1s done
Connecting to M365:      0s done
Backing Up ∙ Security Group
Discovering items to backup:      2s done
Completed Backups:													# <--- Unnecessary
No backups available
```

---

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-31 07:35:52 +00:00
Abin Simon
91e4f455b3
Use path prefixes for backup paths (#4155)
<!-- 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. -->
* https://github.com/alcionai/corso/issues/4154

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-31 06:34:13 +00:00
Abin Simon
2c4cd663d1
Use Libraries prefix when exporting SharePoint files (#4153)
As of now we only export SP libraries, but in future we will have to export lists and pages. This ensure that we can accommodate them later.

<!-- PR description-->

---

#### 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
- [ ] 🗺️ 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-31 06:06:01 +00:00
ashmrtn
08ab7abb76
Longevity test updates (#4159)
Update longevity test with newly released commands
and flags

Added features are:
* OneDrive and SharePoint backup
* repo init with retention settings

---

#### 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-08-30 18:04:24 +00:00
Keepers
4c452bcd8e
add channel and messages enumerators (#4135)
adds enumerators for channels, and a delta
of channel messages.
Also updates the its struct to include group ids, and reformats some of the struct schema.

---

#### 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-08-30 17:21:53 +00:00
meuchels
b610a602d2
Update m365-access.md (#4160)
re ordered API permissions in the order in which they are found in the
microsoft portal

<!-- PR description-->

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E

---------

Co-authored-by: Georgi Matev <georgi.matev@gmail.com>
2023-08-30 09:16:33 -07:00
Abin Simon
216dc9cb83
Fix export docs for OneDrive and SharePoint (#4157)
- Fix docker version: [Related](740914821e)
- Update sidebar to include export docs

<!-- 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
- [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.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-30 15:25:26 +00:00
dependabot[bot]
03b019eb7a
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.333 to 1.44.334 in /src (#4150)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.333 to 1.44.334.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.334 (2023-08-29)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cognito-idp</code>: Updates service API, documentation, and examples</li>
<li><code>service/fsx</code>: Updates service documentation</li>
<li><code>service/omics</code>: Updates service API and documentation</li>
<li><code>service/sesv2</code>: Updates service API, documentation, paginators, and examples</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="63b601bb25"><code>63b601b</code></a> Release v1.44.334 (2023-08-29) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4968">#4968</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.333...v1.44.334">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.333&new-version=1.44.334)](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-08-30 06:50:35 +00:00
Vaibhav Kamra
15a8c7bc4a
Update CHANGELOG.md for v0.12.0 (#4149)
Include change from today that made it to the release

---

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

- [ ]  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
- [ ] 🗺️ 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-08-30 06:09:20 +00:00
Vaibhav Kamra
740914821e
Update docker builder to go 1.20 (#4147)
Update to go-builder 1.20

---

#### 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
- [x] 💻 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-08-30 00:36:40 +00:00
ashmrtn
cc5864f852
Fix data clobbering issue when getting Quota Exceeded status (#4144)
Don't clobber the Quota Exceeded status once we get it

Add unit test to make sure this doesn't happen

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-29 22:08:43 +00:00
dependabot[bot]
bb1c03077b
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.332 to 1.44.333 in /src (#4142)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.332 to 1.44.333.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.333 (2023-08-28)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/backup</code>: Updates service API and documentation</li>
<li><code>service/compute-optimizer</code>: Updates service API and documentation</li>
<li><code>service/organizations</code>: Updates service documentation
<ul>
<li>Documentation updates for permissions and links.</li>
</ul>
</li>
<li><code>service/securitylake</code>: Updates service API</li>
<li><code>service/service-quotas</code>: Updates service API and documentation</li>
<li><code>service/workspaces-web</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="43ee0c0437"><code>43ee0c0</code></a> Release v1.44.333 (2023-08-28) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4966">#4966</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.332...v1.44.333">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.332&new-version=1.44.333)](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-08-29 16:50:21 +00:00
ashmrtn
4f839d3d75
Tighten checks for assist base garbage collection (#4137)
Do a bit better job checking assist bases for
garbage collection by considering whether
there's a newer merge base already

---

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

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-29 16:15:21 +00:00
Vaibhav Kamra
8e3525bbee
v0.12.0 Changelog (#4138)
Changelog for v0.12.0

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-29 00:27:34 +00:00
dependabot[bot]
b0eb3109dd
⬆️ Bump aws-actions/configure-aws-credentials from 2 to 3 (#4121)
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 2 to 3.
<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>v3</h2>
<p>This tag tracks the latest v3.x.x release</p>
<h2>v2.2.0</h2>
<p>See the <a href="https://github.com/aws-actions/configure-aws-credentials/blob/v2.2.0/CHANGELOG.md">changelog</a> for details about the changes included in this release.</p>
<h2>v2.1.0</h2>
<p>See the <a href="https://github.com/aws-actions/configure-aws-credentials/blob/v2.1.0/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>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.1.0...v2.2.0">2.2.0</a> (2023-05-31)</h2>
<h3>Features</h3>
<ul>
<li><code>inline-session-policy</code> prop enables assuming a role with inline session policies (<a href="d00f6c6f41">d00f6c6</a>)</li>
<li><code>managed-session-policies</code> prop enables assuming a role with managed policy arns (<a href="d00f6c6f41">d00f6c6</a>)</li>
</ul>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.0.0...v2.1.0">2.1.0</a> (2023-05-31)</h2>
<h3>Features</h3>
<ul>
<li><code>role-chaining</code> prop enables role chaining use case (<a href="6fbd316fd1">6fbd316</a>)</li>
</ul>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v1.7.0...v2.0.0">2.0.0</a> (2023-03-06)</h2>
<h3>Features</h3>
<ul>
<li>Version bump to use Node 16 by default.</li>
</ul>
<h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v1.6.1...v1.7.0">1.7.0</a> (2022-08-03)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="04b98b3f9e"><code>04b98b3</code></a> Merge pull request <a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/798">#798</a> from aws-actions/kellertk-patch-1</li>
<li><a href="a2b0094a4d"><code>a2b0094</code></a> change bugfix description</li>
<li><a href="3464309856"><code>3464309</code></a> chore: update CHANGELOG.md for v3.0.1</li>
<li><a href="3a12f318be"><code>3a12f31</code></a> CHANGELOG.md for 3.0.1</li>
<li><a href="6478abc372"><code>6478abc</code></a> Merge pull request <a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/794">#794</a> from ubaid-ansari21/contri</li>
<li><a href="91d9dfcd6f"><code>91d9dfc</code></a> Merge branch 'main' into contri</li>
<li><a href="76997ececd"><code>76997ec</code></a> fix: action fails when intending to use existing credentials (<a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/796">#796</a>)</li>
<li><a href="a96263310b"><code>a962633</code></a> feat: special character check (<a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/797">#797</a>)</li>
<li><a href="fbbf385657"><code>fbbf385</code></a> feat: add config option for special character handling (<a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/795">#795</a>)</li>
<li><a href="f5f46df077"><code>f5f46df</code></a> fix typo</li>
<li>Additional commits viewable in <a href="https://github.com/aws-actions/configure-aws-credentials/compare/v2...v3">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=2&new-version=3)](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-08-28 17:57:06 +00:00
Keepers
ee321863ed
unify api pager interfaces (#4088)
We have multitple different pager interfaces that all utilize the same (effective) set of functions.  This change reduces those to two different interfaces: a delta- and non-delta- pair of pagers.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3989

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-28 17:24:46 +00:00
Keepers
d1f098b398
hide groups/teams cli behind env (#4128)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-28 16:42:28 +00:00
Abin Simon
3e43028a88
Fix path collisions for SharePoint export (#4112)
Previously if we had multiple SharePoint document libs, we would have merged the contents of both in the export. This separates it by document lib.

After:
- DocumentLibA/FileA
- DocumentLibB/FileB

Before:
- FileA
- FileB

---

#### 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.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-28 07:20:09 +00:00
dependabot[bot]
fe9241fbd8
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.331 to 1.44.332 in /src (#4122)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.331 to 1.44.332.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.332 (2023-08-25)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cloudtrail</code>: Updates service API and documentation
<ul>
<li>Add ThrottlingException with error code 429 to handle CloudTrail Delegated Admin request rate exceeded on organization resources.</li>
</ul>
</li>
<li><code>service/detective</code>: Updates service API</li>
<li><code>service/monitoring</code>: Updates service documentation
<ul>
<li>Doc-only update to get doc bug fixes into the SDK docs</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1feb05b299"><code>1feb05b</code></a> Release v1.44.332 (2023-08-25) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4965">#4965</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.331...v1.44.332">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.331&new-version=1.44.332)](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-08-28 06:43:52 +00:00
dependabot[bot]
932bace7d9
⬆️ Bump mermaid from 10.3.1 to 10.4.0 in /website (#4123)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.3.1 to 10.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>v10.4.0</h2>
<h2>Features</h2>
<ul>
<li>feat: Support config in frontmatter. by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4750">mermaid-js/mermaid#4750</a></li>
<li>feat(sankey): Show values  by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4748">mermaid-js/mermaid#4748</a></li>
</ul>
<h2>Docs</h2>
<ul>
<li>docs: Add development example page. by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4714">mermaid-js/mermaid#4714</a></li>
<li>Documentation for <a href="https://redirect.github.com/mermaid-js/mermaid/issues/2509">#2509</a> by <a href="https://github.com/jason-curtis"><code>@​jason-curtis</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4740">mermaid-js/mermaid#4740</a></li>
<li>Fixes to Docs sidebar, main page and badges by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4742">mermaid-js/mermaid#4742</a></li>
<li>Split development documentation into several pages by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4744">mermaid-js/mermaid#4744</a></li>
<li>Docs: update Latest News section by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4768">mermaid-js/mermaid#4768</a></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4732">mermaid-js/mermaid#4732</a></li>
<li>Update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4731">mermaid-js/mermaid#4731</a></li>
<li>convert <code>assignWithDepth</code> to TS by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4717">mermaid-js/mermaid#4717</a></li>
<li>convert <code>diagrams/common/svgDrawCommon.js</code> to ts by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4724">mermaid-js/mermaid#4724</a></li>
<li>ci(release-drafter): add more release notes categories by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4752">mermaid-js/mermaid#4752</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4753">mermaid-js/mermaid#4753</a></li>
<li>standardized pie definitions by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4501">mermaid-js/mermaid#4501</a></li>
<li>Remove Circular Dependencies by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4761">mermaid-js/mermaid#4761</a></li>
<li>chore: Enforce type imports by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4763">mermaid-js/mermaid#4763</a></li>
<li>chore: Preview PRs with mermaid-live-editor on Netlify by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4769">mermaid-js/mermaid#4769</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jason-curtis"><code>@​jason-curtis</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4740">mermaid-js/mermaid#4740</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/mermaid-js/mermaid/compare/v10.3.1...v10.4.0">https://github.com/mermaid-js/mermaid/compare/v10.3.1...v10.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8e5275d844"><code>8e5275d</code></a> Mermaid version v10.4.0</li>
<li><a href="c51afa4dd2"><code>c51afa4</code></a> Merge branch 'release/10.4.0'</li>
<li><a href="671ad82ad3"><code>671ad82</code></a> unique batches every time, if not repeated tests end up in the same batch</li>
<li><a href="9dccf4d9c9"><code>9dccf4d</code></a> chore: Update editor.bash to build latest version</li>
<li><a href="6563a6ea26"><code>6563a6e</code></a> chore: Build after clone</li>
<li><a href="a3a6eb9bf5"><code>a3a6eb9</code></a> chore: Force install npm to avoid cache.</li>
<li><a href="5f8f79fc3e"><code>5f8f79f</code></a> fix: live editor exists error</li>
<li><a href="f553fa5eb8"><code>f553fa5</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4769">#4769</a> from mermaid-js/sidv/liveEditor</li>
<li><a href="c3939d3fb3"><code>c3939d3</code></a> chore: Add netlify.toml</li>
<li><a href="32d1783390"><code>32d1783</code></a> chore: Update editor script</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.3.1...v10.4.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.3.1&new-version=10.4.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-08-28 05:44:27 +00:00
ashmrtn
24b9831ce6
Cleanup old assist bases (#4081)
Add helper functions and tests that find
old assist bases and add them to the set
of backups to garbage collect. This
allows us to remove backups that aren't
displayed to the user because they had
some errors during them

The more recent assist backups can still
be used for incremental backups so we
don't want to garbage collect all of
them

This still does not wire this code into
any existing corso function, just adds
additional cleanup logic

---

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

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

#### Issue(s)

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-25 19:05:25 +00:00
ashmrtn
533ba59f35
Minor log fixups for snapshots (#4113)
* Fix log message during hierarchy merging so it's not as confusing
* add reason for making a snapshot. This can be used to separate out later messages into item data snapshot and details snapshot during debugging

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-25 18:38:42 +00:00
Keepers
e96c21d342
add channels info filters to selectors (#4093)
Adds groups channel message filters to group selectors. Includes scopes for message creation time, last response time, and message created by.

---

#### 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-08-25 18:09:20 +00:00
ashmrtn
bf29443ad4
Use interface for test helper functions (#4114)
Take an interface as the parameter for test helper functions. This allows them to be used with *testing.B (benchmark) as well as *testing.T (test).

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-25 17:28:09 +00:00
neha_gupta
e1fe7f4b16
channels and messages API (#4068)
<!-- PR description-->

Message handler implementation and other APIs to fetch channels and messages data

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

#### Type of change

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

#### 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-08-25 08:33:39 +00:00
dependabot[bot]
518b0a41f0
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.330 to 1.44.331 in /src (#4107)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.330 to 1.44.331.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.331 (2023-08-24)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/ec2</code>: Updates service API
<ul>
<li>Amazon EC2 M7a instances, powered by 4th generation AMD EPYC processors, deliver up to 50% higher performance compared to M6a instances. Amazon EC2 Hpc7a instances, powered by 4th Gen AMD EPYC processors, deliver up to 2.5x better performance compared to Amazon EC2 Hpc6a instances.</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>Added API attributes that help in the monitoring of sessions.</li>
</ul>
</li>
<li><code>service/mediaconvert</code>: Updates service API and documentation
<ul>
<li>This release includes additional audio channel tags in Quicktime outputs, support for film grain synthesis for AV1 outputs, ability to create audio-only FLAC outputs, and ability to specify Amazon S3 destination storage class.</li>
</ul>
</li>
<li><code>service/medialive</code>: Updates service API and documentation
<ul>
<li>MediaLive now supports passthrough of KLV data to a HLS output group with a TS container. MediaLive now supports setting an attenuation mode for AC3 audio when the coding mode is 3/2 LFE. MediaLive now supports specifying whether to include filler NAL units in RTMP output group settings.</li>
</ul>
</li>
<li><code>service/mediatailor</code>: Updates service API and documentation</li>
<li><code>service/quicksight</code>: Updates service API, documentation, and paginators
<ul>
<li>Excel support in Snapshot Export APIs. Removed Required trait for some insight Computations. Namespace-shared Folders support. Global Filters support. Table pin Column support.</li>
</ul>
</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>This release updates the supported versions for Percona XtraBackup in Aurora MySQL.</li>
</ul>
</li>
<li><code>service/s3</code>: Updates service examples
<ul>
<li>Updates to endpoint ruleset tests to address Smithy validation issues.</li>
</ul>
</li>
<li><code>service/s3control</code>: Adds new service
<ul>
<li>Updates to endpoint ruleset tests to address Smithy validation issues and standardize the capitalization of DualStack.</li>
</ul>
</li>
<li><code>service/verifiedpermissions</code>: Updates service documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="13d05473c0"><code>13d0547</code></a> Release v1.44.331 (2023-08-24) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4964">#4964</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.330...v1.44.331">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.330&new-version=1.44.331)](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-08-25 07:13:11 +00:00
Keepers
c6edb5ff91
check for zero len string with 0 (#4106)
according to https://docs.github.com/en/actions/learn-github-actions/expressions

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💚 E2E
2023-08-25 00:06:21 +00:00
Keepers
5c50529617
cleanup backup e2e in prep for groups (#4100)
some code shuffling and cleanup in preparation to add groups and teams e2e tests.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3989

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2023-08-24 21:48:09 +00:00
Keepers
4a5a2a240f
fix conditional check on restore-args (#4104)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💚 E2E
2023-08-24 21:21:52 +00:00
Keepers
f0422431bc
add sanity test boilerplate for groups (#4099)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3989 

#### Test Plan

- [x] 💚 E2E
2023-08-24 20:13:06 +00:00
Keepers
11c6169056
add groups operations v0 backup test (#4102)
adds basic backup integration tests for groups in the operations testing package.
currently skipped and awaiting full v0 backup implementation.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3988

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-24 19:02:58 +00:00
dependabot[bot]
c7dff3c42b
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.329 to 1.44.330 in /src (#4103)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.329 to 1.44.330.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.330 (2023-08-23)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/apigateway</code>: Updates service API and documentation
<ul>
<li>This release adds RootResourceId to GetRestApi response.</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>Marking fields as sensitive on BundleTask and GetPasswordData</li>
</ul>
</li>
<li><code>service/polly</code>: Updates service API
<ul>
<li>Amazon Polly adds 1 new voice - Zayd (ar-AE)</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="67fcd4afbb"><code>67fcd4a</code></a> Release v1.44.330 (2023-08-23) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4962">#4962</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.329...v1.44.330">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.329&new-version=1.44.330)](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-08-24 06:51:03 +00:00
ashmrtn
7972ff6e8f
Shuffle around logic for details merging (#4087)
Shuffle around some logic for details merging so that
we always attempt to extract a LocationRef from the
backup base entry that's currently being examined.

A LocationRef should always be available from either
the LocationRef field in the details entry (newer
backups) or by extracting it from the RepoRef (older
backups)

Manually tested incremental backups for exchange in
the following scenarios:
1. v0.3.0 backup (calendars use IDs in RepoRef) ->
   incremental with this patch -> incremental with
   this patch
1. v0.2.0 backup (exchange uses folder names in
   RepoRef) -> incremental with this patch ->
   incremental with this patch

The above tests should cover the cases where:
* base backup details don't have LocationRef for
  exchange items
* base backup details have LocationRef for exchange
  items

---

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

* closes #3716

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-23 19:16:42 +00:00
dependabot[bot]
a39526f64e
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.15.0 to 1.16.0 in /src (#4098)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.15.0 to 1.16.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.16.0]- 2023-08-23</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cd8edf7c84"><code>cd8edf7</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/557">#557</a>)</li>
<li><a href="d4cd019bed"><code>d4cd019</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/556">#556</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="0a454bedb3"><code>0a454be</code></a> Bump github.com/google/uuid from 1.3.0 to 1.3.1</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.15.0...v1.16.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.15.0&new-version=1.16.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-08-23 18:35:27 +00:00
ashmrtn
3a5fcdce99
Reenable point-in-time longevity test (#4090)
Now that kopia won't try to mutate state in read-only
mode it's safe to reenable the test ensuring backups
that were deleted are still available when opening
the repo at a specific point in time

This reverts commit 8d3fdeeb8dbd8dc68284c1d33b0b431d309b4f5b.

---

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

#### Issue(s)

* closes #4031

merge after:
* #4089

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-23 17:58:24 +00:00
Keepers
719d6b98cd
add channel message item info to details (#4092)
#### 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-08-23 17:22:27 +00:00
Keepers
af5d98e182
Cleanup services (#4059)
Some quick tech-debt splitting up of the code in services/m365

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-23 16:46:28 +00:00
ashmrtn
bc5bb8f0dc
Update kopia version (#4089)
Pull in recent upstream changes around having the repo in read-only mode.

---

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

* #4031

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-23 16:07:47 +00:00
Abin Simon
9664846d22
Simplify group_handler by leveraging library_handler (#4084)
https://github.com/alcionai/corso/pull/4030#discussion_r1296246853

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-23 09:35:37 +00:00
Abin Simon
7b6c6026ad
Group CLI (#4043)
CLI changes for groups.

---

#### 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/3990
* 
#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-23 08:04:32 +00:00
dependabot[bot]
74b92adbc3
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.328 to 1.44.329 in /src (#4094)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.328 to 1.44.329.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.329 (2023-08-22)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/ce</code>: Updates service API and documentation</li>
<li><code>service/globalaccelerator</code>: Updates service documentation</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Adding parameters to CreateCustomDbEngineVersion reserved for future use.</li>
</ul>
</li>
<li><code>service/verifiedpermissions</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="adac5231c3"><code>adac523</code></a> Release v1.44.329 (2023-08-22) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4960">#4960</a>)</li>
<li><a href="dfcabdc1d7"><code>dfcabdc</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4838">#4838</a> from austinvazquez/upgrade-github-actions-packages</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.328...v1.44.329">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.328&new-version=1.44.329)](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-08-23 06:01:16 +00:00
Keepers
06862c3b8c
add boilerplate groups backup collection (#4082)
Adds the boilerplate for groups backup collection processing. Not necessarily functional at this time, due to missing dependencies and consts that aren't yet in the branch.  Thus the lack of tests.  It's just good enough to keep progress rolling forward.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3989 

#### Test Plan
2023-08-22 17:25:06 +00:00
neha_gupta
9f9ce34add
add handlers for channels (#4050)
<!-- PR description-->

add Handlers interface for Channels. 

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

#### Type of change

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

#### 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.-->
2023-08-22 16:33:59 +00:00
ashmrtn
9255013d6f
Refactor backup cleanup test code slightly (#4080)
Switch to using functions that always
return a new instance of the struct
in question. Upcoming tests were
having issues with state carrying
over between individual tests.

---

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

#### Issue(s)

* #3217

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-22 15:29:38 +00:00
Abhishek Pandey
4ace4bee76
Remove duplicate mocks from kopia wrapper tests (#4083)
<!-- PR description-->

No logic changes. Only removing duplicate test code.


---

#### 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
- [x]  Unit test
- [ ] 💚 E2E
2023-08-22 12:55:08 +00:00
Abin Simon
0e6ef90e41
Create backup collections for Group's default SharePoint site (#4030)
This commit has the initial rough set of changes needed to create collections from the group's default SharePoint site.

This still does not have all the functionality that we need, but the idea was that we could get this in and iterate over time.

<!-- PR description-->

---

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-22 07:58:03 +00:00
Abhishek Pandey
f45aecd5db
Reduce $select parameters for URL cache delta queries (#4074)
<!-- PR description-->

This PR optimizes memory & cache refresh time for URL cache. The cache only makes use of a small subset of drive item properties, namely ID, deleted, file, folder, content download URL. We have found that reducing the number of query properties has a sizable impact on corso mem usage. This is especially relevant for large scale backups.

See below graph for a comparison between original delta queries & mod. Note that this is with corso instrumentations to show comparisons side by side in the same run.
- Reading this graph
    - We are doing 3 orig delta queries followed right after by 3 mod. Vertical lines are delta query spans.

Originally, this investigation was done to improve mem usage for scale backups. But we also found that url cache delta query time drops by 22% with this PR. This is because we are now transferring & processing fewer bytes.

![image](https://github.com/alcionai/corso/assets/4962258/be4461db-f86c-42d4-bca1-2819aff078ce)


---

#### 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
- [x] 💚 E2E
2023-08-22 05:30:55 +00:00
ashmrtn
11253bf816
Exclude recently created models from garbage collection (#4066)
Exclude models that have been created within the
buffer period from garbage collection/orphaned
checks so that we don't accidentally delete
models for backups that are running concurrently
with the garbage collection task

---

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

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

#### Issue(s)

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-22 00:39:24 +00:00
ashmrtn
99edf7d5b0
Add and populate mod time for BaseModel (#4065)
Get the last time a model was modified and return it in BaseModel. This will help with discovering what items can be garbage collected during incomplete backup cleanup as we don't want to accidentally delete in-flight backups.

---

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

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-21 23:48:57 +00:00
dependabot[bot]
5808797fc6
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.327 to 1.44.328 in /src (#4079)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.327 to 1.44.328.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.328 (2023-08-21)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cloud9</code>: Adds new service
<ul>
<li>Doc only update to add Ubuntu 22.04 as an Image ID option for Cloud9</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>The DeleteKeyPair API has been updated to return the keyPairId when an existing key pair is deleted.</li>
</ul>
</li>
<li><code>service/finspace</code>: Updates service API and documentation</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Adding support for RDS Aurora Global Database Unplanned Failover</li>
</ul>
</li>
<li><code>service/route53domains</code>: Updates service documentation
<ul>
<li>Fixed typos in description fields</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6b43f9d073"><code>6b43f9d</code></a> Release v1.44.328 (2023-08-21) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4959">#4959</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.327...v1.44.328">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.327&new-version=1.44.328)](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-08-21 23:11:02 +00:00
ashmrtn
6963f63f4f
Basic code for backup cleanup (#4051)
Starting code for removing item data snapshots,
backups, and backup details that have been
orphaned. Data can become orphaned through either
incomplete backup delete operations (older
corso versions) or because backups didn't
complete successfully

This code doesn't cover all cases (see TODOs in
PR) but gets a lot of the boiler-plate that will
be required. Future PRs will build on what's in
here to close the gaps

This code is not wired into any corso operations
so it cannot be run outside of unit 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

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

#### Issue(s)

* #3217

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-21 22:40:47 +00:00
Keepers
6a83d23ff2
add groups selectors for channels and messages (#4071)
#### 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
2023-08-21 20:44:24 +00:00
dependabot[bot]
90ac62ab14
⬆️ Bump github.com/google/uuid from 1.3.0 to 1.3.1 in /src (#4078)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.3.0 to 1.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/releases">github.com/google/uuid's releases</a>.</em></p>
<blockquote>
<h2>v1.3.1</h2>
<h2><a href="https://github.com/google/uuid/compare/v1.3.0...v1.3.1">1.3.1</a> (2023-08-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Use .EqualFold() to parse urn prefixed UUIDs (<a href="https://redirect.github.com/google/uuid/issues/118">#118</a>) (<a href="574e687494">574e687</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/google/uuid/blob/master/CHANGELOG.md">github.com/google/uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/google/uuid/compare/v1.3.0...v1.3.1">1.3.1</a> (2023-08-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Use .EqualFold() to parse urn prefixed UUIDs (<a href="https://redirect.github.com/google/uuid/issues/118">#118</a>) (<a href="574e687494">574e687</a>)</li>
</ul>
<h2>Changelog</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b3cae7c306"><code>b3cae7c</code></a> chore(master): release 1.3.1 (<a href="https://redirect.github.com/google/uuid/issues/127">#127</a>)</li>
<li><a href="7b8f57cbcc"><code>7b8f57c</code></a> fix(ci): switch to release-please app (<a href="https://redirect.github.com/google/uuid/issues/126">#126</a>)</li>
<li><a href="e69e468f7c"><code>e69e468</code></a> chore(ci): configure release-please, update contrib (<a href="https://redirect.github.com/google/uuid/issues/122">#122</a>)</li>
<li><a href="97c970d2a5"><code>97c970d</code></a> chore(ci): add apidiff check for API compatibility (<a href="https://redirect.github.com/google/uuid/issues/123">#123</a>)</li>
<li><a href="53f93a84e6"><code>53f93a8</code></a> docs: change godoc URL in README (<a href="https://redirect.github.com/google/uuid/issues/124">#124</a>)</li>
<li><a href="0b416df5d0"><code>0b416df</code></a> docs: update link to RFC 4122 (<a href="https://redirect.github.com/google/uuid/issues/93">#93</a>)</li>
<li><a href="75e1ac5ba6"><code>75e1ac5</code></a> docs: shell format go tool command (<a href="https://redirect.github.com/google/uuid/issues/111">#111</a>)</li>
<li><a href="d71986992e"><code>d719869</code></a> docs: fix typo node_js docs (<a href="https://redirect.github.com/google/uuid/issues/117">#117</a>)</li>
<li><a href="574e687494"><code>574e687</code></a> fix: Use .EqualFold() to parse urn prefixed UUIDs (<a href="https://redirect.github.com/google/uuid/issues/118">#118</a>)</li>
<li><a href="c91929c8bf"><code>c91929c</code></a> Merge pull request <a href="https://redirect.github.com/google/uuid/issues/121">#121</a> from noahdietz/setup-codeowners-and-actions</li>
<li>Additional commits viewable in <a href="https://github.com/google/uuid/compare/v1.3.0...v1.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/google/uuid&package-manager=go_modules&previous-version=1.3.0&new-version=1.3.1)](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-08-21 20:06:53 +00:00
Keepers
0a87590769
Teams groups export cli (#4069)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3989

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-08-21 18:49:04 +00:00
dependabot[bot]
1468c0881a
⬆️ Bump github.com/puzpuzpuz/xsync/v2 from 2.4.1 to 2.5.0 in /src (#4077)
Bumps [github.com/puzpuzpuz/xsync/v2](https://github.com/puzpuzpuz/xsync) from 2.4.1 to 2.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/puzpuzpuz/xsync/releases">github.com/puzpuzpuz/xsync/v2's releases</a>.</em></p>
<blockquote>
<h2>v2.5.0</h2>
<ul>
<li>Add concurrent queue with generics support (<code>MPMCQueueOf</code>) (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/104">#104</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ace0f0f74f"><code>ace0f0f</code></a> Add concurrent queue with generics support (MPMCQueueOf) (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/104">#104</a>)</li>
<li><a href="1112be6e83"><code>1112be6</code></a> Mention v1 as discontinued version in readme (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/101">#101</a>)</li>
<li>See full diff in <a href="https://github.com/puzpuzpuz/xsync/compare/v2.4.1...v2.5.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/puzpuzpuz/xsync/v2&package-manager=go_modules&previous-version=2.4.1&new-version=2.5.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-08-21 18:14:57 +00:00
ashmrtn
734b1021c9
Fix log output and don't fail fast (#4076)
#### 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-08-21 16:58:48 +00:00
dependabot[bot]
13e0d82735
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.14.0 to 1.15.0 in /src (#4075)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.14.0 to 1.15.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.15.0]- 2023-08-21</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4b0d8c693d"><code>4b0d8c6</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/554">#554</a>)</li>
<li><a href="344b8ddb44"><code>344b8dd</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/553">#553</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="e3bb6803c5"><code>e3bb680</code></a> Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.7.0 to 1.7.1</li>
<li><a href="82bbc8029a"><code>82bbc80</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/549">#549</a> from microsoftgraph/dependabot/go_modules/github.com/...</li>
<li><a href="1f12cf937b"><code>1f12cf9</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.1.0 to 1.2.0</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.14.0...v1.15.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.14.0&new-version=1.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-08-21 16:22:17 +00:00
dependabot[bot]
b37ee8aced
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.326 to 1.44.327 in /src (#4073)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.326 to 1.44.327.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.327 (2023-08-18)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/codecommit</code>: Updates service API, documentation, and paginators
<ul>
<li>Add new ListFileCommitHistory operation to retrieve commits which introduced changes to a specific file.</li>
</ul>
</li>
<li><code>service/securityhub</code>: Updates service API and documentation</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>aws/credentials/ssocreds</code>: Modify sso token provider logic to handle possible nil val returned by CreateToken.
<ul>
<li>Fixes <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4947">4947</a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1dee18198d"><code>1dee181</code></a> Release v1.44.327 (2023-08-18) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4958">#4958</a>)</li>
<li><a href="ab7f358dcf"><code>ab7f358</code></a> Handle nil token returned by ssooidc (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4957">#4957</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.326...v1.44.327">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.326&new-version=1.44.327)](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-08-21 06:51:17 +00:00
dependabot[bot]
2ba349797f
⬆️ Bump sass from 1.65.1 to 1.66.1 in /website (#4072)
Bumps [sass](https://github.com/sass/dart-sass) from 1.65.1 to 1.66.1.
<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.66.1</h2>
<p>To install Sass 1.66.1, 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>
<h3>JS API</h3>
<ul>
<li>Fix a bug where Sass compilation could crash in strict mode if passed a callback that threw a string, boolean, number, symbol, or bignum.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1661">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.66.0</h2>
<p>To install Sass 1.66.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><strong>Breaking change:</strong> Drop support for the additional CSS calculations defined in CSS Values and Units 4. Custom Sass functions whose names overlapped with these new CSS functions were being parsed as CSS calculations instead, causing an unintentional breaking change outside our normal [compatibility policy] for CSS compatibility changes.</p>
<p>Support will be added again in a future version, but only after Sass has emitted a deprecation warning for all functions that will break for at least three months prior to the breakage.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1660">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.66.1</h2>
<h3>JS API</h3>
<ul>
<li>Fix a bug where Sass compilation could crash in strict mode if passed a
callback that threw a string, boolean, number, symbol, or bignum.</li>
</ul>
<h2>1.66.0</h2>
<ul>
<li>
<p><strong>Breaking change:</strong> Drop support for the additional CSS calculations defined
in CSS Values and Units 4. Custom Sass functions whose names overlapped with
these new CSS functions were being parsed as CSS calculations instead, causing
an unintentional breaking change outside our normal [compatibility policy] for
CSS compatibility changes.</p>
<p>Support will be added again in a future version, but only after Sass has
emitted a deprecation warning for all functions that will break for at least
three months prior to the breakage.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="aa53bd0ef3"><code>aa53bd0</code></a> Use wrapJSExceptions() to work around <a href="https://redirect.github.com/dart-lang/sdk/issues/53105">dart-lang/sdk#53105</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2055">#2055</a>)</li>
<li><a href="e70cd5a0a0"><code>e70cd5a</code></a> Merge pull request <a href="https://redirect.github.com/sass/dart-sass/issues/2067">#2067</a> from sass/revert-calc</li>
<li><a href="a6a06b7eec"><code>a6a06b7</code></a> Update pubspec and changelog and re-add abs-percent deprecation</li>
<li><a href="458852dfd3"><code>458852d</code></a> Revert &quot;Calc functions implementation (<a href="https://redirect.github.com/sass/dart-sass/issues/1970">#1970</a>)&quot;</li>
<li><a href="86a2f42a40"><code>86a2f42</code></a> Revert &quot;Update abs-percent deprecatedIn version (<a href="https://redirect.github.com/sass/dart-sass/issues/2057">#2057</a>)&quot;</li>
<li><a href="4a86812ad2"><code>4a86812</code></a> Bump http from 0.13.6 to 1.1.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2062">#2062</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.65.1...1.66.1">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.65.1&new-version=1.66.1)](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-08-21 05:54:57 +00:00
Keepers
9abd9d4f96
remove all uses of iota (#4046)
I've needed to catch gotchas that arise from contributors adding a value in the middle of an iota list, not to mention have dealt with prior bugs that happened the same way, now too many times to feel safe about its usage.

This PR removes the use of iota from all const declarations. The intent is to not allow the use of iota within the codebase.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3993

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-18 22:45:21 +00:00
Keepers
2c00ca40ac
Updated teams cli addition (#4054)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature

#### Issue(s)

* #3989

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
2023-08-18 21:35:22 +00:00
Keepers
20675dbcf7
add the groups resources service addition (#4053)
Adds groups to the m365 services api.  Also adds a bit of touchups/cleanups on the side.

---

#### 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-08-18 20:10:56 +00:00
ashmrtn
8d3fdeeb8d
Remove call to PITR backup check (#4067)
Currently failing due to minor upstream bugs. Disable until we can get upstream fixes in.

Revert this merge once upstream issues are fixed

---

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

* #4031

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-18 16:09:08 +00:00
dependabot[bot]
a1cbbf9f48
⬆️ Bump github.com/minio/minio-go/v7 from 7.0.61 to 7.0.62 in /src (#4058)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.61 to 7.0.62.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/minio/minio-go/releases">github.com/minio/minio-go/v7's releases</a>.</em></p>
<blockquote>
<h2>Bugfix release</h2>
<h2>What's Changed</h2>
<ul>
<li>replication: add fields for metrics by <a href="https://github.com/poornas"><code>@​poornas</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1860">minio/minio-go#1860</a></li>
<li>replication: fixed typo in transfer stats by <a href="https://github.com/poornas"><code>@​poornas</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1861">minio/minio-go#1861</a></li>
<li>update library dependencies to fix CVEs by <a href="https://github.com/harshavardhana"><code>@​harshavardhana</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1872">minio/minio-go#1872</a></li>
<li>disable mandatory V2 Google signature by <a href="https://github.com/loorke"><code>@​loorke</code></a> in <a href="https://redirect.github.com/minio/minio-go/pull/1870">minio/minio-go#1870</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/loorke"><code>@​loorke</code></a> made their first contribution in <a href="https://redirect.github.com/minio/minio-go/pull/1870">minio/minio-go#1870</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/minio/minio-go/compare/v7.0.61...v7.0.62">https://github.com/minio/minio-go/compare/v7.0.61...v7.0.62</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b42bd7d24d"><code>b42bd7d</code></a> disable mandatory V2 Google signature (<a href="https://redirect.github.com/minio/minio-go/issues/1870">#1870</a>)</li>
<li><a href="bd8cf2b0c2"><code>bd8cf2b</code></a> update library dependencies to fix CVEs (<a href="https://redirect.github.com/minio/minio-go/issues/1872">#1872</a>)</li>
<li><a href="c0ea24830f"><code>c0ea248</code></a> replication: fixed typo in transfer stats (<a href="https://redirect.github.com/minio/minio-go/issues/1861">#1861</a>)</li>
<li><a href="8c81599f9b"><code>8c81599</code></a> replication: add fields for metrics (<a href="https://redirect.github.com/minio/minio-go/issues/1860">#1860</a>)</li>
<li><a href="9833f4559a"><code>9833f45</code></a> Update version to next release</li>
<li>See full diff in <a href="https://github.com/minio/minio-go/compare/v7.0.61...v7.0.62">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/minio/minio-go/v7&package-manager=go_modules&previous-version=7.0.61&new-version=7.0.62)](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-08-18 00:28:07 +00:00
dependabot[bot]
906e0fb19f
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.325 to 1.44.326 in /src (#4052)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.325 to 1.44.326.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.326 (2023-08-17)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>Adds support for SubnetConfigurations to allow users to select their own IPv4 and IPv6 addresses for Interface VPC endpoints</li>
</ul>
</li>
<li><code>service/gamelift</code>: Updates service API and documentation
<ul>
<li>Amazon GameLift updates its instance types support.</li>
</ul>
</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>aws/signer/v4</code>: Sign <code>X-Amz-Server-Side-Encryption-Context</code> header.
<ul>
<li>Fixes signing for PutObject requests that set <code>SSEKMSEncryptionContext</code>.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="18f92831c6"><code>18f9283</code></a> Release v1.44.326 (2023-08-17) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4956">#4956</a>)</li>
<li><a href="4edac13096"><code>4edac13</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4949">#4949</a> from fenak/fix-encryption-context-header-in-presigne...</li>
<li><a href="d7de4bbd5e"><code>d7de4bb</code></a> fix md in changelog</li>
<li><a href="2b5f74c8f9"><code>2b5f74c</code></a> add changelog</li>
<li><a href="3531763106"><code>3531763</code></a> Merge branch 'main' into fix-encryption-context-header-in-presigned-urls</li>
<li><a href="f92113824c"><code>f921138</code></a> Add X-Amz-Server-Side-Encryption-Context header to required signed headers al...</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.325...v1.44.326">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.325&new-version=1.44.326)](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-08-17 23:35:48 +00:00
Keepers
bbbe5c64a0
remove fetchbynamer from nofetch collection (#4013)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-17 19:50:11 +00:00
dependabot[bot]
19093ff5e4
⬆️ Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.3.0 to 1.3.1 in /src (#4048)
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.3.0 to 1.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases</a>.</em></p>
<blockquote>
<h2>sdk/azidentity/v1.3.1</h2>
<h2>1.3.1 (2023-08-16)</h2>
<h3>Other Changes</h3>
<ul>
<li>Upgraded dependencies</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ae2eb9b9b2"><code>ae2eb9b</code></a> Prepare azcore v1.3.1 for release (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19929">#19929</a>)</li>
<li><a href="b273bfc531"><code>b273bfc</code></a> [Release] sdk/resourcemanager/msi/armmsi/1.0.0 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19933">#19933</a>)</li>
<li><a href="5053f6571e"><code>5053f65</code></a> Handle multi-line string concatenation with Write-Warning (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19930">#19930</a>)</li>
<li><a href="be68206be2"><code>be68206</code></a> Sync eng/common directory with azure-sdk-tools for PR 5291 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19903">#19903</a>)</li>
<li><a href="b8690e0d25"><code>b8690e0</code></a> Update azcore dependencies (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19926">#19926</a>)</li>
<li><a href="8a9c0d037f"><code>8a9c0d0</code></a> Fix live tests for aztables (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19922">#19922</a>)</li>
<li><a href="3a39031c46"><code>3a39031</code></a> ACR data plane module (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19554">#19554</a>)</li>
<li><a href="dd2af33cbd"><code>dd2af33</code></a> [Release] sdk/resourcemanager/loadtesting/armloadtesting/1.0.2 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19910">#19910</a>)</li>
<li><a href="57cdb644b6"><code>57cdb64</code></a> Consume cosmos emulator from install path on agent (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19919">#19919</a>)</li>
<li><a href="dedf87fb05"><code>dedf87f</code></a> Sync eng/common directory with azure-sdk-tools for PR 5272 (<a href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/19904">#19904</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/Azure/azure-sdk-for-go/compare/sdk/azcore/v1.3.0...sdk/azcore/v1.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/Azure/azure-sdk-for-go/sdk/azidentity&package-manager=go_modules&previous-version=1.3.0&new-version=1.3.1)](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-08-17 19:12:04 +00:00
dependabot[bot]
4346f902e0
⬆️ Bump mermaid from 10.3.0 to 10.3.1 in /website (#4029)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.3.0 to 10.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>v10.3.1</h2>
<h2>What's Changed</h2>
<h2>Bugfixes</h2>
<ul>
<li>fix style in contributors section of intro by <a href="https://github.com/keer4n"><code>@​keer4n</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4670">mermaid-js/mermaid#4670</a></li>
<li>fix: <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4676">#4676</a> redirect fix by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4693">mermaid-js/mermaid#4693</a></li>
<li><a href="https://redirect.github.com/mermaid-js/mermaid/issues/2139">#2139</a> Applying user defined classes properly when calculating shape width by <a href="https://github.com/knsv"><code>@​knsv</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4722">mermaid-js/mermaid#4722</a></li>
<li>Bug/4645 graph node containing keyword by <a href="https://github.com/ibrahimWassouf"><code>@​ibrahimWassouf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4657">mermaid-js/mermaid#4657</a></li>
<li>fix: Remove triple parsing of diagrams by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4697">mermaid-js/mermaid#4697</a></li>
<li>resolve info <code>HTML</code> and <code>Document</code> assignment by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4514">mermaid-js/mermaid#4514</a></li>
<li>fix!(deps): fix zenuml style leakage. by <a href="https://github.com/danshuitaihejie"><code>@​danshuitaihejie</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4705">mermaid-js/mermaid#4705</a></li>
<li>Use our prettier config on the <code>packages/mermaid/src/config.type.ts</code> file by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4715">mermaid-js/mermaid#4715</a></li>
<li>create <code>ParserDefinition</code> type by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4719">mermaid-js/mermaid#4719</a></li>
<li>standardized <code>error</code> diagram by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4718">mermaid-js/mermaid#4718</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li>Docs: Directives not needed in new diagrams as yaml formatter does this for all new diagrams by <a href="https://github.com/Incognito"><code>@​Incognito</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4688">mermaid-js/mermaid#4688</a></li>
<li>Docs: add latest blog post by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4668">mermaid-js/mermaid#4668</a></li>
<li>Lychee config by <a href="https://github.com/mmorel-35"><code>@​mmorel-35</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4699">mermaid-js/mermaid#4699</a></li>
<li>Syntax Update CONTRIBUTING.md by <a href="https://github.com/soomrozaid"><code>@​soomrozaid</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4713">mermaid-js/mermaid#4713</a></li>
</ul>
<h2>Chores</h2>
<ul>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4682">mermaid-js/mermaid#4682</a></li>
<li>build(deps-dev): bump json5 from 2.2.1 to 2.2.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4685">mermaid-js/mermaid#4685</a></li>
<li>build(deps): bump <code>@​braintree/sanitize-url</code> from 6.0.0 to 6.0.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4686">mermaid-js/mermaid#4686</a></li>
<li>build(deps-dev): bump vite from 4.3.3 to 4.3.9 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4687">mermaid-js/mermaid#4687</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4681">mermaid-js/mermaid#4681</a></li>
<li>chore: ts-ignore comment was misleading, JISON doesn't support types by <a href="https://github.com/Incognito"><code>@​Incognito</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4689">mermaid-js/mermaid#4689</a></li>
<li>chore(deps): unpin the dompurify dependency by <a href="https://github.com/djadmin"><code>@​djadmin</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4677">mermaid-js/mermaid#4677</a></li>
<li>build(deps-dev): bump pnpm from 8.3.1 to 8.6.8 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4692">mermaid-js/mermaid#4692</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/keer4n"><code>@​keer4n</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4670">mermaid-js/mermaid#4670</a></li>
<li><a href="https://github.com/djadmin"><code>@​djadmin</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4677">mermaid-js/mermaid#4677</a></li>
<li><a href="https://github.com/danshuitaihejie"><code>@​danshuitaihejie</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4705">mermaid-js/mermaid#4705</a></li>
<li><a href="https://github.com/soomrozaid"><code>@​soomrozaid</code></a> made their first contribution in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4713">mermaid-js/mermaid#4713</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/mermaid-js/mermaid/compare/v10.3.0...v10.3.1">https://github.com/mermaid-js/mermaid/compare/v10.3.0...v10.3.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a0b80f5490"><code>a0b80f5</code></a> Version update and adjusted error diagram</li>
<li><a href="493023118f"><code>4930231</code></a> Fix for broker error diagram related <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4178">#4178</a></li>
<li><a href="c5e7e6040c"><code>c5e7e60</code></a> Adding new flowchart tests related to issue <a href="https://redirect.github.com/mermaid-js/mermaid/issues/2139">#2139</a></li>
<li><a href="c938c7a438"><code>c938c7a</code></a> Fix for interim issue with classes in state diagrams</li>
<li><a href="c7bcf72c69"><code>c7bcf72</code></a> Merge branch 'develop' into release/10.4.0</li>
<li><a href="da602add5d"><code>da602ad</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4697">#4697</a> from mermaid-js/sidv/fixTripleParsing</li>
<li><a href="9049a99c8d"><code>9049a99</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4722">#4722</a> from mermaid-js/2139-handling-styling-properly-when-...</li>
<li><a href="60957519c8"><code>6095751</code></a> Merge branch 'develop' into release/10.4.0</li>
<li><a href="9b9ad1da7d"><code>9b9ad1d</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4718">#4718</a> from Yokozuna59/chore/standardized-error-definitions</li>
<li><a href="0d380bb2c7"><code>0d380bb</code></a> Merge branch 'develop' into chore/standardized-error-definitions</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.3.0...v10.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.3.0&new-version=10.3.1)](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-08-17 17:53:55 +00:00
dependabot[bot]
a1d1d74566
⬆️ Bump autoprefixer from 10.4.14 to 10.4.15 in /website (#4049)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.14 to 10.4.15.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md">autoprefixer's changelog</a>.</em></p>
<blockquote>
<h2>10.4.15</h2>
<ul>
<li>Fixed <code>::backdrop</code> prefixes (by 一丝).</li>
<li>Fixed docs (by Christian Oliff).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="aa63324409"><code>aa63324</code></a> Release 10.4.15 version</li>
<li><a href="e6f597d8e2"><code>e6f597d</code></a> Run tests in parallel</li>
<li><a href="8611ba63e3"><code>8611ba6</code></a> Update dependencies</li>
<li><a href="f8d8dab24e"><code>f8d8dab</code></a> feat: <code>::backdrop</code> using <code>@mdn/browser-compat-data</code> (<a href="https://redirect.github.com/postcss/autoprefixer/issues/1498">#1498</a>)</li>
<li><a href="66d23f6c86"><code>66d23f6</code></a> Update dependencies and code style</li>
<li><a href="4a629f52e3"><code>4a629f5</code></a> Move to pnpm 8</li>
<li><a href="029aed678f"><code>029aed6</code></a> Use Node.js 20 on CI</li>
<li><a href="b440be2b06"><code>b440be2</code></a> Lock pnpm</li>
<li><a href="e8b3b7d32b"><code>e8b3b7d</code></a> Update dependencies</li>
<li><a href="9cabd686e1"><code>9cabd68</code></a> Add funding option</li>
<li>Additional commits viewable in <a href="https://github.com/postcss/autoprefixer/compare/10.4.14...10.4.15">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=autoprefixer&package-manager=npm_and_yarn&previous-version=10.4.14&new-version=10.4.15)](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-08-17 17:48:55 +00:00
dependabot[bot]
7f68f9870c
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.324 to 1.44.325 in /src (#4047)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.324 to 1.44.325.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.325 (2023-08-16)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/models.lex.v2</code>: Updates service API</li>
<li><code>service/monitoring</code>: Updates service documentation
<ul>
<li>Doc-only update to incorporate several doc bug fixes</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cf2803a807"><code>cf2803a</code></a> Release v1.44.325 (2023-08-16) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4955">#4955</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.324...v1.44.325">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.324&new-version=1.44.325)](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-08-17 06:31:09 +00:00
ashmrtn
75c3e5cd33
Don't munge drive-based ShortRefs (#4009)
Munging code originally existed so that SDK
users would get unique ShortRefs if an item
moved or was renamed. However, we no longer
need to support that so this removes that
munging code

Manually tested making a new backup with this
PR where the merge base was a backup made prior
to this PR. A folder with a subfolder and items
was moved between the two backups. Backup
details for the new backup contained all the
expected entries

Restore selector logic should be unaffected
as that assumes the user has passed in a
ShortRef that was previously printed to the
CLI by `corso backup details`. Input is
compared against the ShortRef stored in the
entry, `ShortRef()` is not called on any `Path`

---

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

* closes #4012

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-16 17:37:30 +00:00
Abhishek Pandey
8424c69934
Increase nightly test timeout from 15m to 1h (#4042)
<!-- PR description-->

We are seeing timeouts with 15m. Given these are nightly tests, it's safe to increase timeouts to 1hr.


---

#### 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
- [x] 💻 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-08-16 14:59:08 +00:00
neha_gupta
bebaf3b462
teams discovery API (#3850)
<!-- PR description-->

Teams discovery API
- fetch all groups from endpoint and filter teams out of it.
- fetch team with ID. 

Permission added- 
- Application- Team.ReadBasic.All
- Group.Read.All

#### Does this PR need a docs update or release note?
- [ ] 🕐 Yes, but in a later PR

#### Type of change

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

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-16 06:02:37 +00:00
dependabot[bot]
5389cdf058
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.323 to 1.44.324 in /src (#4040)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.323 to 1.44.324.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.324 (2023-08-15)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/chime-sdk-meetings</code>: Updates service API</li>
<li><code>service/ec2</code>: Updates service documentation
<ul>
<li>Documentation updates for Elastic Compute Cloud (EC2).</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>AWS Glue Crawlers can now accept SerDe overrides from a custom csv classifier. The two SerDe options are LazySimpleSerDe and OpenCSVSerDe. In case, the user wants crawler to do the selection, &quot;None&quot; can be selected for this purpose.</li>
</ul>
</li>
<li><code>service/pi</code>: Updates service API, documentation, and paginators</li>
<li><code>service/route53domains</code>: Updates service API and documentation
<ul>
<li>Provide explanation if CheckDomainTransferability return false. Provide requestId if a request is already submitted.  Add sensitive protection for customer information</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>SageMaker Inference Recommender now provides SupportedResponseMIMETypes from DescribeInferenceRecommendationsJob response</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="730f07d673"><code>730f07d</code></a> Release v1.44.324 (2023-08-15) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4954">#4954</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.323...v1.44.324">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.323&new-version=1.44.324)](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-08-15 22:42:29 +00:00
dependabot[bot]
a6036ff485
⬆️ Bump github.com/microsoft/kiota-http-go from 1.0.1 to 1.1.0 in /src (#4035)
Bumps [github.com/microsoft/kiota-http-go](https://github.com/microsoft/kiota-http-go) from 1.0.1 to 1.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/releases">github.com/microsoft/kiota-http-go's releases</a>.</em></p>
<blockquote>
<h2>v1.1.0</h2>
<h3>Added</h3>
<ul>
<li>Added headers inspection middleware and option.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-http-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.1.0] - 2023-08-11</h2>
<h3>Added</h3>
<ul>
<li>Added headers inspection middleware and option.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9d53e0f4b3"><code>9d53e0f</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/100">#100</a> from microsoft/feature/header-observe</li>
<li><a href="80470c7f1a"><code>80470c7</code></a> - adds headers inspection middleware</li>
<li><a href="945b485494"><code>945b485</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/99">#99</a> from microsoft/dependabot/go_modules/github.com/micros...</li>
<li><a href="45275c11cb"><code>45275c1</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.1.0 to 1.2.0</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-http-go/compare/v1.0.1...v1.1.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-http-go&package-manager=go_modules&previous-version=1.0.1&new-version=1.1.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-08-15 20:41:22 +00:00
dependabot[bot]
1f21529f2d
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.322 to 1.44.323 in /src (#4036)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.322 to 1.44.323.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.323 (2023-08-14)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/mediapackage</code>: Updates service API
<ul>
<li>Fix SDK logging of certain fields.</li>
</ul>
</li>
<li><code>service/omics</code>: Updates service API, documentation, waiters, and paginators</li>
<li><code>service/transfer</code>: Updates service documentation
<ul>
<li>Documentation updates for AWS Transfer Family</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a17e64ccc1"><code>a17e64c</code></a> Release v1.44.323 (2023-08-14) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4953">#4953</a>)</li>
<li><a href="0d3912c425"><code>0d3912c</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4848">#4848</a> from aws/increase-ancient-bot</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.322...v1.44.323">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.322&new-version=1.44.323)](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-08-15 19:56:23 +00:00
Abhishek Pandey
77ab14b5df
Retry unexpected EOF errors (#4037)
<!-- PR description-->

Adds `io.ErrUnexpectedEOF` to the list of retriable errors looked up by retry handler. 

---

#### 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-08-15 19:27:24 +00:00
ashmrtn
56820e95e0
Don't fail deletion on missing backups (#4038)
Allows ignoring missing backups during deletion by
passing in an addition bool param.

Since this changes the API, we can remove the final
commit to make ignoring missing backups the
default behavior. This will change CLI behavior
though

---

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

* #4019

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-15 18:43:21 +00:00
ashmrtn
e02f4a9d7f
Print the point in time being used (#4032)
When looking for recently deleted backups, print the point in time that kopia will be opened at so that if we need to manually debug something the value is right there.

---

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

#### Issue(s)

* #4031

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-15 15:27:34 +00:00
ashmrtn
132ef2e010
SDK support for multi-backup deletion (#4026)
Allow SDK users to delete multiple backups
at the same time. This will result in fewer
kopia manifest blobs being made in S3 which
makes things simpler overall

This does change the name of the delete
function, which will break SDK consumers.
That change can be removed from the PR if
that's a better path forward

This does not add the ability to delete
multiple backups at once to the CLI. That
change should be fairly simple to do in
another PR if desired

---

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

* closes #4019

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-14 20:13:36 +00:00
ashmrtn
9eed02013e
Batch deletion of individual backup components (#4023)
Reduce the number of kopia manifest blobs
created during backup deletion by batching
the deletion of snapshots and the backup
model into a single kopia operation

Also reorangizes/updates test code for
backup deletion

---

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

#### Issue(s)

* #4019

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-14 19:38:43 +00:00
ashmrtn
749c3bc699
Allow deleting batches of models/manifests (#4021)
Take a vararg of manifests to delete and delete them all in a single write session. This should help reduce the number of manifest blobs that kopia creates since it will only flush the pending manifest entries once during the operation.

---

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

* #4019

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-14 18:17:09 +00:00
Abin Simon
7aed7eba0e
Split exchange collection from service (#4011)
<!-- 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-08-14 07:08:11 +00:00
dependabot[bot]
a69e504155
⬆️ Bump sass from 1.64.1 to 1.65.1 in /website (#4028)
Bumps [sass](https://github.com/sass/dart-sass) from 1.64.1 to 1.65.1.
<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.65.1</h2>
<p>To install Sass 1.65.1, 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>Update abs-percent deprecatedIn version to <code>1.65.0</code>.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1651">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.65.0</h2>
<p>To install Sass 1.65.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 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>
</li>
<li>
<p>Deprecate explicitly passing the <code>%</code> unit to the global <code>abs()</code> function. In future releases, this will emit a CSS abs() function to be resolved by the browser. This deprecation is named <code>abs-percent</code>.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1650">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.64.2</h2>
<p>To install Sass 1.64.2, 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>
<h3>Dart API</h3>
<ul>
<li>Include protocol buffer definitions when uploading the <code>sass</code> package to pub.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1642">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.65.1</h2>
<ul>
<li>Update abs-percent deprecatedIn version to <code>1.65.0</code>.</li>
</ul>
<h2>1.65.0</h2>
<ul>
<li>
<p>All functions defined in CSS Values and Units 4 are now 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>
</li>
<li>
<p>Deprecate explicitly passing the <code>%</code> unit to the global <code>abs()</code> function. In
future releases, this will emit a CSS abs() function to be resolved by the
browser. This deprecation is named <code>abs-percent</code>.</p>
</li>
</ul>
<h2>1.64.3</h2>
<h3>Dart API</h3>
<ul>
<li>
<p>Deprecate explicitly passing <code>null</code> as the alpha channel for
<code>SassColor.rgb()</code>, <code>SassColor.hsl()</code>, and <code>SassColor.hwb()</code>. Omitting the
<code>alpha</code> channel is still allowed. In future releases, <code>null</code> will be used to
indicate a <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#missing_color_components">missing component</a>. This deprecation is named <code>null-alpha</code>.</p>
</li>
<li>
<p>Include protocol buffer definitions when uploading the <code>sass</code> package to pub.</p>
</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Deprecate explicitly passing <code>null</code> as the alpha channel for <code>new SassColor()</code>. Omitting the <code>alpha</code> channel or passing <code>undefined</code> for it is
still allowed. In future releases, <code>null</code> will be used to indicate a <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#missing_color_components">missing
component</a>. This deprecation is named <code>null-alpha</code>.</p>
<p>(Note that this was already prohibited by the TypeScript types, but in
practice prior to this <code>null</code> was treated as <code>1</code>.)</p>
</li>
</ul>
<h2>1.64.2</h2>
<ul>
<li>No user-visible changes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bb244761d3"><code>bb24476</code></a> Update abs-percent deprecatedIn version (<a href="https://redirect.github.com/sass/dart-sass/issues/2057">#2057</a>)</li>
<li><a href="e4c8cd67e8"><code>e4c8cd6</code></a> Calc functions implementation (<a href="https://redirect.github.com/sass/dart-sass/issues/1970">#1970</a>)</li>
<li><a href="4c3bd0e89f"><code>4c3bd0e</code></a> Deprecate explicitly passing null as an alpha value (<a href="https://redirect.github.com/sass/dart-sass/issues/2049">#2049</a>)</li>
<li><a href="8802c69337"><code>8802c69</code></a> Add ignores to work 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/2053">#2053</a>)</li>
<li><a href="17e3a48639"><code>17e3a48</code></a> Convert Sass to Dart 3 style (<a href="https://redirect.github.com/sass/dart-sass/issues/2038">#2038</a>)</li>
<li><a href="8e5e7fca53"><code>8e5e7fc</code></a> Add a pubignore so pub knows to publish protobuf files (<a href="https://redirect.github.com/sass/dart-sass/issues/2050">#2050</a>)</li>
<li><a href="890fc17dc1"><code>890fc17</code></a> Include protobuf definitions in the pub package (<a href="https://redirect.github.com/sass/dart-sass/issues/2048">#2048</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.64.1...1.65.1">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.64.1&new-version=1.65.1)](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-08-14 06:28:40 +00:00
dependabot[bot]
b26050ea0b
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.321 to 1.44.322 in /src (#4027)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.321 to 1.44.322.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.322 (2023-08-11)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/amplifybackend</code>: Updates service API</li>
<li><code>service/config</code>: Updates service API</li>
<li><code>service/ec2</code>: Updates service API
<ul>
<li>Amazon EC2 P5 instances, powered by the latest NVIDIA H100 Tensor Core GPUs, deliver the highest performance in EC2 for deep learning (DL) and HPC applications. M7i-flex and M7i instances are next-generation general purpose instances powered by custom 4th Generation Intel Xeon Scalable processors.</li>
</ul>
</li>
<li><code>service/email</code>: Updates service documentation
<ul>
<li>Doc only updates to include: 1) Clarified which part of an email address where it's okay to have Punycode when it contains non-ASCII characters for the SendRawEmail action and other actions where this is applicable. 2) Updated S3Action description with new MB max bucket size from 30 to 40.</li>
</ul>
</li>
<li><code>service/quicksight</code>: Updates service API and documentation
<ul>
<li>New Authentication method for Account subscription - IAM Identity Center. Hierarchy layout support, default column width support and related style properties for pivot table visuals. Non-additive topic field aggregations for Topic API</li>
</ul>
</li>
<li><code>service/swf</code>: Updates service API and documentation
<ul>
<li>This release adds new API parameters to override workflow task list for workflow executions.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b094b02994"><code>b094b02</code></a> Release v1.44.322 (2023-08-11) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4951">#4951</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.321...v1.44.322">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.321&new-version=1.44.322)](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-08-14 06:17:18 +00:00
Keepers
1f22b94fc1
small paths code rearrangement (#4007)
small cleanup in paths, primarily splitting files
so that file contents are more clearly owned, which should be a little better for readability and code placement.

Also renames `ServicePrefix` to `BuildPrefix` in
anticipation of multi-service prefixes.

no logic changes, just movement/renaming.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3993

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-11 23:02:45 +00:00
Keepers
19bf0fdf7e
move selectorsToReason into selectors (#4006)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3993

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-11 20:15:23 +00:00
Keepers
0a947386e6
rename data pkg Stream to Item (#3966)
A Stream is a continuous transmission of data.
An item is a single structure.  Crossing the two
definitions generates confusion.

Primarily code movement/renaming.  Though there
is also some reduction/replacement of structs
where we'd made a variety of testable Item implementations
instead of re-using the generic mock.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-11 19:33:33 +00:00
ashmrtn
eb95b43010
Remove updated field from details (#4004)
No longer required by SDK users and not exposed directly to CLI users unless they're looking at the JSON output from details. This field is not documented anywhere though so there's no guarantees that we technically need to uphold with it.

Manually tested:
* restoring from a backup that had this field
* making a fresh backup without this field when the merge base did have this field

---

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

* closes #3986

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-11 16:32:21 +00:00
ashmrtn
893598d8ba
Fix circular dependency for store interface (#4014)
Remove references to the kopia package from
`pkg/store` package so that kopia can import
that package itself. Do this by using
interfaces where needed in `pkg/store`
instead of concrete struct types

These changes will make cleaning up
incomplete backups a little neater since
that code will need to lookup both
manifests and backup models

This PR is just minor renaming and fixups,
no logic changes

---

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

* #3217

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-08-11 16:04:05 +00:00
dependabot[bot]
50e84b28a4
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.320 to 1.44.321 in /src (#4017)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.320 to 1.44.321.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.321 (2023-08-10)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cloudtrail</code>: Updates service documentation
<ul>
<li>Documentation updates for CloudTrail.</li>
</ul>
</li>
<li><code>service/connect</code>: Updates service API, documentation, and paginators</li>
<li><code>service/elasticloadbalancingv2</code>: Updates service API and documentation</li>
<li><code>service/omics</code>: Updates service API and documentation</li>
<li><code>service/secretsmanager</code>: Updates service API
<ul>
<li>Add additional InvalidRequestException to list of possible exceptions for ListSecret.</li>
</ul>
</li>
<li><code>service/transfer</code>: Updates service documentation
<ul>
<li>Documentation updates for AW Transfer Family</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f52417f8c3"><code>f52417f</code></a> Release v1.44.321 (2023-08-10) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4948">#4948</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.320...v1.44.321">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.320&new-version=1.44.321)](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-08-11 06:33:21 +00:00
Abin Simon
8c939c0f0d
Split services and collections for OneDrive & SharePoint (#4002)
Only code movement, no code changes.

Moved services to `/internal/m365/services/{onedrive,sharepoint,exchange}`
Moved collections to `/internal/m365/collection/{drive,site}`

---

#### 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-08-10 06:08:34 +00:00
Abhishek Pandey
bffaebd351
Skip item if metadata fetch fails with 404 (#4001)
<!-- PR description-->

GET permissions fails if the item doesn't exist. We are hitting sanity test failures due to a race condition between test run & purge scripts.
`getting item metadata: getting item metadata: error status code received from the API: Item not found:`

Fix here is to ignore GET permissions failure if it returns not found. This is safe to do here, since the graph call for permissions [looks up the item by id](https://github.com/alcionai/corso/blob/main/src/pkg/services/m365/api/drive.go#L254C17-L254C17), and not the permissions by id. Hence, we can safely assume that the item that this permission is tied to has been deleted.

---

#### 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. -->
* https://github.com/alcionai/corso/issues/3998

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-10 05:03:38 +00:00
Abhishek Pandey
9ce6b9c5c1
Integration tests for assist backups (#3987)
<!-- PR description-->

1. Tests which try out all combinations of failurePolicy vs fault errors
2. Incremental tests for deets propagation from assist/merge backups

---

#### 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
- [ ]  Unit test
- [x] 💚 E2E
2023-08-10 04:16:17 +00:00
Abhishek Pandey
4e1b1d8fc6
Persist backup models for assist backups (#3905)
<!-- PR description-->
This PR adds changes to persist backup models for assist backups. 	Primary reason for doing this is to ensure we don't lose corso extension data(deets) for items which were downloaded and processed by kopia during this backup op.

Note: This is 1/n PRs, and will not be merged into main until all n are reviewed, given we are touching state here.

**Changes in this PR:**
1. Error handling changes to ensure assist backups get persisted
2. Introduce tags for assist/merge backups. These tags will be used for filtering during base selection process.
3. Don't persist backups if they are not assist backup, and they have non zero errors.
4. Remove `LabelForceNoBackupCreation` criteria for not persisting a backup. More details are in [PR comment](https://github.com/alcionai/corso/pull/3905/files#r1278030140).
5. Switch kopia failure from non-recoverable to recoverable. More details are in [PR comment](https://github.com/alcionai/corso/pull/3905/files#r1278019992).

**What are assist backups?**
Below conditions must be true for a backup operation to qualify as an assist backup.
	1. new deets were produced during this backup operation
	2. we have a valid snapshot ID
	3. we don't have any non-recoverable errors
	4. we have recoverable errors

**A merge backup satisfies the following conditions:**
	1. Is not an assist backup
	2. No primary or recoverable errors occurred during the backup operation.

Tests will be added in later PRs.


---

#### 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. -->
* internal

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-10 03:16:35 +00:00
ashmrtn
9667c79481
Update backup details merge logic (#3963)
Update backup details merge logic to use assist
backup bases. As the modTime check is already in
DetailsMergeInfoer there's not much else to do
here besides wiring things up

Overall, this solution is an alternative to the
previous one. It works by placing all cached
items in the DetailsMergeInfoer instead of adding
them to details (assuming they had a details
entry)

During details merging, we can cycle through
all bases once and track only the items we've
added to details (so we don't duplicate things).
This works because we know precisely which items
we should be looking for

ModTime comparisons in the DetailsMergeInfoer
ensure we get the proper version of each item
details

**Note:** This requires a minor patch to how
we determine if it's safe to persist a backup
model because now backups won't produce details
entries for cached items until `mergeDetails`
runs

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-10 02:45:19 +00:00
Keepers
67e38faf5e
selectors cleanup (#3997)
some code movement and removal in selectors and scopes before adding scope-to-reason.  Removed code
was only being used in testing.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3993

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-10 01:11:33 +00:00
dependabot[bot]
1fdaa29b3f
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.319 to 1.44.320 in /src (#4005)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.319 to 1.44.320.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.320 (2023-08-09)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/chime-sdk-voice</code>: Updates service API and documentation</li>
<li><code>service/fsx</code>: Updates service API and documentation</li>
<li><code>service/globalaccelerator</code>: Updates service documentation</li>
<li><code>service/guardduty</code>: Updates service API and documentation
<ul>
<li>Added autoEnable ALL to UpdateOrganizationConfiguration and DescribeOrganizationConfiguration APIs.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>This release adds support for cross account access for SageMaker Model Cards through AWS RAM.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b16e365c79"><code>b16e365</code></a> Release v1.44.320 (2023-08-09) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4945">#4945</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.319...v1.44.320">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.319&new-version=1.44.320)](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-08-09 21:59:09 +00:00
Keepers
f803a463c7
move kopia.Reasoner to new package (#3996)
Moves the kopia.Reasoner interface out of the
kopia package and into pkg/backup/identity.

No logical changes here, just renaming and movement.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3993

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-09 21:18:56 +00:00
Keepers
7905adb8e1
test http2 stream errors, update client options (#3994)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
2023-08-09 19:17:38 +00:00
Abhishek Pandey
7582e175e6
Return assist backup models during base selection process (#3907)
<!-- PR description-->
This PR adds support for selecting assist backup models. The intent here is to use the assist backups during merge details process. 

Changelist:
1. Assist bases now have a requirement to have a) an associated assist backup model b) details ssid. Please see [this code comment](https://github.com/alcionai/corso/pull/3907/files#diff-f9b6b7ab52c8e1148147909fd071d9b80b816d072203d8e9d2fa34ab93185db1R286) for more.
2. Any incomplete assist bases or assist bases not matching 1) are now discarded, i.e. they are not fed to kopia for kopia assisted incrementals. The impact here is that files cached by kopia might be now redownloaded if the backup failed without qualifying for an assist backup.


Unit tests added.


---

#### 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-08-09 18:46:08 +00:00
ashmrtn
23ff9cd08b
Add CLI flag for disabling assist-incrementals (#3984)
Adds hidden flag for disabling
kopia-assisted incrementals

---

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

#### Issue(s)

* closes #2360

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-09 18:04:58 +00:00
ashmrtn
ffa155a80d
SDK option and logic to drop assist bases (#3983)
Add a way for SDK users to drop
kopia-assisted incremental bases
thus forcing item data redownload
if the item wasn't sourced from
a merge 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

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

#### Issue(s)

* #2360

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-09 17:21:55 +00:00
dependabot[bot]
0da8c48c5a
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.318 to 1.44.319 in /src (#3999)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.318 to 1.44.319.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.319 (2023-08-08)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/backup</code>: Updates service API, documentation, and paginators</li>
<li><code>service/elasticache</code>: Updates service API and documentation
<ul>
<li>Added support for cluster mode in online migration and test migration API</li>
</ul>
</li>
<li><code>service/servicecatalog</code>: Updates service API and documentation
<ul>
<li>Introduce support for HashiCorp Terraform Cloud in Service Catalog by addying TERRAFORM_CLOUD product type in CreateProduct and CreateProvisioningArtifact API.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="21179e4c26"><code>21179e4</code></a> Release v1.44.319 (2023-08-08) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4943">#4943</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.318...v1.44.319">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.318&new-version=1.44.319)](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-08-09 08:41:23 +00:00
ashmrtn
975f15b42b
Use modTime in details merging (#3962)
Add modTime as one of the things that the
DetailsMergeInfoer knows how to check against,
wire it into details merging, and populate it
during item upload

This will help merge assist backup base items
by allowing us to do a direct comparison on
modTimes if we add them to the
DetailsMergeInfoer during upload

---

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

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-09 02:04:06 +00:00
ashmrtn
9ec638f763
Backup list filtering (#3979)
Now that we store backup models for
backups that had errors filter them
out during backup list. This
ensures behavior doesn't change
when we merge PRs for making and
labeling backup models with the
assist backup tag

---

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

* #3973

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-09 00:53:31 +00:00
ashmrtn
95197872c5
Remove unused code and tests (#3995)
Getting all folders was originally for the purge script. We've now transitioned to a powershell-based purge script making this code unused.

Tests have coverage for a little more beyond just getting all folders but other code should either have tests for similar functionality or doesn't need it.

---

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

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-09 00:10:18 +00:00
ashmrtn
3b73b61c90
Plug connection reset wrapper into OneDrive code (#3947)
Also add basic test to ensure everything is wired up as expected.

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-08 20:53:56 +00:00
ashmrtn
4ebb2d3bfb
Common structs/mocks/consts for assist backups (#3985)
Pull into separate PR so we can start merging things separately.

`BackupBases` sourced from branch `backup_bases_changes`
`model.go` sourced from branch `partial_bup`
mock backup bases sourced from branch `backup-details-merge`

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-08 18:06:15 +00:00
ashmrtn
8c343a1488
Wrapper to handle connection reset errors during upload (#3946)
Create a wrapper for `io.ReadCloser`s that are fetched
from the network. This wrapper allows attempting to
restart a connection if it returns an `io.ECONNRESET`
error (this can be adjusted fairly easily)

Automatically seek the reader obtained from the retry
to the proper place in the stream so that there's no
gap or repeats in the returned data. This is done
either by reading and discarding bytes or by
requesting a range of bytes from the source

---

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

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-08 17:38:34 +00:00
dependabot[bot]
3958d731ea
⬆️ Bump golang.org/x/tools from 0.11.1 to 0.12.0 in /src (#3980)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.11.1 to 0.12.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.12.0</h2>
<p>This release contains a major rewrite of the way gopls computes and stores package information, with the goal of reducing memory usage and allowing gopls to scale to larger repositories. This change can also significantly reduce startup time when workspaces are reopened, as gopls now uses a file-based cache to persist data across sessions. With these optimizations, gopls is finally able to <a href="https://go.dev/issues/48738">fully analyze dependencies</a> using the <a href="https://pkg.go.dev/golang.org/x/tools/go/analysis">golang.org/x/tools/go/analysis</a> framework, resulting in improved accuracy for analysis diagnostics.</p>
<p>You can install this release with <code>go install</code>:</p>
<pre><code>go install golang.org/x/tools/gopls@v0.12.0
</code></pre>
<h1>Support changes</h1>
<p>As gopls matures, we're trying to simplify its configuration so that gopls Just Works in more scenarios, and so that we have fewer configuration combinations to test. This means that we will be gradually deprecating settings that affect the core behavior of gopls.</p>
<h2>Removed experimental configuration options</h2>
<p>As announced in the <a href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.10.0">v0.10.0 release notes</a>, this release removes support for the <code>experimentalWorkspaceModule</code> and <code>experimentalWatchedFileDelay</code> settings. The <code>experimentalPackageCacheKey</code> setting is also removed, as it is irrelevant in the new design.</p>
<p>The <code>experimentalWorkspaceModule</code> setting in particular may still be in use by some users. This setting has been superseded by built-in support for multi-module workspaces in the <code>go</code> command, via <a href="https://go.dev/doc/tutorial/workspaces">Go workspaces</a>. To get the equivalent behavior in gopls@v0.12.0, please create a <code>go.work</code> file in your workspace using all desired modules. To use all modules in your workspace, run:</p>
<pre><code>go work use -r .
</code></pre>
<h2>Dropped support for Go 1.13-1.15, deprecated support for Go 1.16-1.17</h2>
<p>As announced in the <a href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.10.0">v0.10.0 release notes</a>, this release drops support for Go 1.13-1.15, and in fact does not build with these Go versions.</p>
<p>Additionally, <code>gopls@v0.12.x</code> will be the final sequence of versions supporting Go 1.16-1.17, and therefore displays a deprecation notice when used with these Go versions.</p>
<h2>Supported operating systems</h2>
<p>Given that our users are almost entirely on Linux, Windows, or Darwin, we are discussing narrowing our support to focus on those operating systems, in <a href="https://redirect.github.com/golang/go/issues/59981">golang/go#59981</a>.</p>
<h1>Performance improvements</h1>
<p>The banner feature of this release is an internal redesign that significantly improves the way gopls scales in larger codebases. Performance, particularly memory usage, has <a href="https://redirect.github.com/golang/go/issues/36943">long</a> <a href="https://redirect.github.com/golang/go/issues/37790">been</a> <a href="https://redirect.github.com/golang/go/issues/43968">a</a> <a href="https://redirect.github.com/golang/go/issues/44981">pain</a> <a href="https://redirect.github.com/golang/go/issues/45363">point</a> <a href="https://redirect.github.com/golang/go/issues/45457">for</a> <a href="https://redirect.github.com/golang/go/issues/46897">our</a> <a href="https://redirect.github.com/golang/go/issues/47855">users</a>.</p>
<h2>Reduced memory usage</h2>
<p>Previous releases of gopls held typed syntax trees for all packages, in memory, all the time. With this release, these large data structures are ephemeral: as soon as they are constructed, an index of information derived from them is saved persistently to a file-based cache, and the data structures are recycled. The index for each package includes the locations of declaring and referring identifiers; the set of exported declarations and their types; the method sets of each interface; and any diagnostics and facts (see below) produced during analysis. The index holds all the information needed to serve global-scope LSP queries such as “references”, “implementations”, and so on.</p>
<p>Moving package information to a file-based cache greatly reduces the amount of RAM gopls uses, by almost an order of magnitude in larger projects. The table below shows the reductions in steady-state memory usage for three open-source Go repositories.</p>
<table>
<thead>
<tr>
<th>Project</th>
<th>Packages</th>
<th>In-use bytes v0.11.0</th>
<th>v0.12.0</th>
<th>Change</th>
</tr>
</thead>
<tbody>
<tr>
<td>gopls</td>
<td>405</td>
<td>497MB</td>
<td>232MB</td>
<td>-53%</td>
</tr>
<tr>
<td>kubernetes</td>
<td>3137</td>
<td>3090MB</td>
<td>832MB</td>
<td>-73%</td>
</tr>
<tr>
<td>google-cloud-go + submods</td>
<td>7657</td>
<td>5039MB</td>
<td>863MB</td>
<td>-83%</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="229f8486be"><code>229f848</code></a> gopls/internal/lsp/source: enable new defers analyzer</li>
<li><a href="2dc7ebab28"><code>2dc7eba</code></a> go/analysis: use parser.SkipObjectResolution</li>
<li><a href="f91c023a9b"><code>f91c023</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="e0783a89e9"><code>e0783a8</code></a> internal/gcimporter: remove bug report on objectpath failure</li>
<li><a href="75f6f9c0b0"><code>75f6f9c</code></a> gopls/internal/bug: add gopls/bug telemetry counter</li>
<li><a href="4b271f9c71"><code>4b271f9</code></a> gopls: add gopls/client telemetry counters</li>
<li><a href="d0b18e25a0"><code>d0b18e2</code></a> go/analysis/passes/copylock: fix infinite recursion</li>
<li><a href="5b4d426665"><code>5b4d426</code></a> gopls/internal/hooks: clean language version before passing to gofumpt</li>
<li><a href="2160c5f15f"><code>2160c5f</code></a> gopls/internal/lsp/analysis: fix stubmethods with variadic parameters</li>
<li><a href="3d20bbe0fb"><code>3d20bbe</code></a> internal/gcimporter: add a missing return if objectpath fails</li>
<li>See full diff in <a href="https://github.com/golang/tools/compare/v0.11.1...v0.12.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.11.1&new-version=0.12.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 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-08-08 07:38:03 +00:00
dependabot[bot]
ef5bb7ff75
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.317 to 1.44.318 in /src (#3981)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.317 to 1.44.318.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.318 (2023-08-07)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/detective</code>: Updates service API</li>
<li><code>service/ivs-realtime</code>: Updates service API and documentation</li>
<li><code>service/kinesis-video-archived-media</code>: Updates service API and documentation</li>
<li><code>service/kinesisvideo</code>: Updates service API and documentation
<ul>
<li>This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature.</li>
</ul>
</li>
<li><code>service/rekognition</code>: Updates service documentation and examples
<ul>
<li>This release adds code snippets for Amazon Rekognition Custom Labels.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="798634a195"><code>798634a</code></a> Release v1.44.318 (2023-08-07) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4940">#4940</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.317...v1.44.318">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.317&new-version=1.44.318)](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 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-08-07 22:34:35 +00:00
dependabot[bot]
78acc37059
⬆️ Bump golang.org/x/net from 0.13.0 to 0.14.0 in /src (#3974)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.13.0 to 0.14.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="c8c0290b42"><code>c8c0290</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="0b21d06592"><code>0b21d06</code></a> quic: framework for testing blocking operations</li>
<li><a href="464865166c"><code>4648651</code></a> quic: add -vv flag for more verbose tests</li>
<li><a href="60ae793a0d"><code>60ae793</code></a> quic: don't send session tickets</li>
<li><a href="a7da556f06"><code>a7da556</code></a> http2: optimize buffer allocation in transport</li>
<li><a href="167593b38c"><code>167593b</code></a> quic: create and accept streams</li>
<li>See full diff in <a href="https://github.com/golang/net/compare/v0.13.0...v0.14.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.13.0&new-version=0.14.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 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-08-07 19:00:01 +00:00
dependabot[bot]
aecc2c609f
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.316 to 1.44.317 in /src (#3975)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.316 to 1.44.317.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.317 (2023-08-04)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/acm-pca</code>: Updates service documentation</li>
<li><code>service/connect</code>: Updates service API and documentation</li>
<li><code>service/datasync</code>: Updates service API and documentation</li>
<li><code>service/ecs</code>: Updates service documentation
<ul>
<li>This is a documentation update to address various tickets.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Including DataCaptureConfig key in the Amazon Sagemaker Search's transform job object</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f703d5e91c"><code>f703d5e</code></a> Release v1.44.317 (2023-08-04) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4938">#4938</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.316...v1.44.317">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.316&new-version=1.44.317)](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 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-08-07 18:25:04 +00:00
Keepers
e3c51b7dc9
add basic groups boilerplate (#3971)
Adding in some basic boilerplate for groups service.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature
2023-08-07 17:57:23 +00:00
ashmrtn
2cc380b9b9
Remove redundant S3 bucket cleanup (#3977)
Now that we're relying on S3 lifecycle policies for bucket cleanup we can remove the script that would remove everything from the bucket on a weekly basis.

---

#### 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-08-07 17:13:38 +00:00
ashmrtn
f63c2ba45d
Add S3 retention checker to longevity test (#3968)
After maintenance runs, check that the
retention time on blobs has been extended
as expected

Currently only checking live blobs

---

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

#### Issue(s)

* closes #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 22:33:10 +00:00
ashmrtn
5af774d2ff
Check for backups using PITR in corso (#3969)
After we delete backups, make sure we can still open an old version of the repo and list 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

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

#### Issue(s)

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 22:00:25 +00:00
Keepers
5fcb8a1f4d
comment out sharepoint and onedrive export longevity (#3967)
skipping problematic tests

#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests
2023-08-04 21:29:37 +00:00
Keepers
b9b58e8c30
threadsafe maps in restore caches (#3941)
replaces the restore cache maps with threadsafe maps.

Onedrive restores would rarely fail due to concurrent
map writes against the restore cache maps.  This change
should protect against failure in those conditions.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-04 19:59:19 +00:00
ashmrtn
179edfc08e
Add hidden flags for setting retention during repo init (#3932)
Add, parse, and configure info about retention
when initializing a repo. These flags are
currently marked as hidden

Medium-term, they can be used in longevity
tests when making the repo for the first time
(we can configure this out of band if needed
though)

Long-term, they can be exposed to the user
for immutable backup support

---

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

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

#### Issue(s)

* #3799

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-04 19:08:04 +00:00
ashmrtn
ab2aa0d54e
Move advanced restore tests to nightly (#3961)
Hopefully will reduce time CI takes and make it so we don't timeout as often.

---

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

#### Test Plan

- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 18:29:56 +00:00
ashmrtn
de848249b5
Add some tests for extending object lock duration (#3965)
Make sure that we can successfully update the object lock duration and run full maintenance without having to close and reopen the repo.

---

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

* #3519

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 17:58:18 +00:00
ashmrtn
46fadc073a
Fix sending slack message on failure (#3964)
#### 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
- [x] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 17:26:39 +00:00
ashmrtn
661180e0b3
Adjust longevity test backup retention (#3945)
Increase the number of days backups are
kept for OneDrive and Exchange for better
test coverage. They now last past the
complete maintenance 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
- [x] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-04 16:04:17 +00:00
dependabot[bot]
0e08516034
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.313 to 1.44.316 in /src (#3960)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.313 to 1.44.316.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.316 (2023-08-03)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/autoscaling</code>: Updates service documentation and examples
<ul>
<li>Documentation changes related to Amazon EC2 Auto Scaling APIs.</li>
</ul>
</li>
<li><code>service/cloud9</code>: Updates service documentation
<ul>
<li>Updated the deprecation date for Amazon Linux. Doc only update.</li>
</ul>
</li>
<li><code>service/dms</code>: Updates service API, documentation, and paginators
<ul>
<li>The release makes public API for DMS Schema Conversion feature.</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>This release adds new parameter isPrimaryIPv6 to  allow assigning an IPv6 address as a primary IPv6 address to a network interface which cannot be changed to give equivalent functionality available for network interfaces with primary IPv4 address.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API
<ul>
<li>Amazon SageMaker now supports running training jobs on p5.48xlarge instance types.</li>
</ul>
</li>
</ul>
<h1>Release v1.44.315 (2023-08-02)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/budgets</code>: Updates service API and documentation
<ul>
<li>As part of CAE tagging integration we need to update our budget names regex filter to prevent customers from using &quot;/action/&quot; in their budget names.</li>
</ul>
</li>
<li><code>service/cognito-idp</code>: Updates service API and documentation</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>This release includes additional Glue Streaming KAKFA SASL property types.</li>
</ul>
</li>
<li><code>service/resiliencehub</code>: Updates service API, documentation, and paginators</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>SageMaker Inference Recommender introduces a new API GetScalingConfigurationRecommendation to recommend auto scaling policies based on completed Inference Recommender jobs.</li>
</ul>
</li>
</ul>
<h1>Release v1.44.314 (2023-08-01)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/batch</code>: Updates service API and documentation
<ul>
<li>This release adds support for price capacity optimized allocation strategy for Spot Instances.</li>
</ul>
</li>
<li><code>service/dms</code>: Updates service API, documentation, and paginators
<ul>
<li>Adding new API describe-engine-versions which provides information about the lifecycle of a replication instance's version.</li>
</ul>
</li>
<li><code>service/internetmonitor</code>: Updates service API and documentation</li>
<li><code>service/medialive</code>: Updates service API and documentation
<ul>
<li>AWS Elemental Link devices now report their Availability Zone. Link devices now support the ability to change their Availability Zone.</li>
</ul>
</li>
<li><code>service/polly</code>: Updates service API
<ul>
<li>Amazon Polly adds new French Belgian voice - Isabelle. Isabelle is available as Neural voice only.</li>
</ul>
</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Added support for deleted clusters PiTR.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Add Stairs TrafficPattern and FlatInvocations to RecommendationJobStoppingConditions</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7baa752ef6"><code>7baa752</code></a> Release v1.44.316 (2023-08-03) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4936">#4936</a>)</li>
<li><a href="dd615a45d3"><code>dd615a4</code></a> Release v1.44.315 (2023-08-02) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4935">#4935</a>)</li>
<li><a href="8ce2209abd"><code>8ce2209</code></a> Release v1.44.314 (2023-08-01) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4934">#4934</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.313...v1.44.316">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.313&new-version=1.44.316)](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 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-08-04 06:09:10 +00:00
Keepers
1939482eee
sweeping package update (#3880)
run `go get -u` to update all packages.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-08-04 01:50:12 +00:00
Keepers
99be32686d
centralize graph api panic and conn retry (#3884)
Adds a middleware to the graph api adapter which
watches all http request responses for both panics and connection reset issues.  Panics are
transformed into standard errors.  Connection
resets get retried up to three times.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x]  Unit test
2023-08-04 01:19:16 +00:00
ashmrtn
d46cb1e3b6
Use updated version of kopia that has proper in-memory caching (#3958)
Update kopia version and remove now-unneeded code from
tests

---

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

* #3519

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-08-03 21:54:19 +00:00
dependabot[bot]
cc8b2ac53d
⬆️ Bump github.com/microsoft/kiota-abstractions-go from 1.1.0 to 1.2.0 in /src (#3953)
Bumps [github.com/microsoft/kiota-abstractions-go](https://github.com/microsoft/kiota-abstractions-go) from 1.1.0 to 1.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/releases">github.com/microsoft/kiota-abstractions-go's releases</a>.</em></p>
<blockquote>
<h2>v1.2.0</h2>
<h3>Added</h3>
<ul>
<li>Added support for multipart request body.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-abstractions-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-abstractions-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.2.0] - 2023-07-26</h2>
<h3>Added</h3>
<ul>
<li>Added support for multipart request body.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3afc7e9554"><code>3afc7e9</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-abstractions-go/issues/94">#94</a> from microsoft/feature/multipart</li>
<li><a href="42c7ed7f37"><code>42c7ed7</code></a> - adds support for multipart body</li>
<li>See full diff in <a href="https://github.com/microsoft/kiota-abstractions-go/compare/v1.1.0...v1.2.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-abstractions-go&package-manager=go_modules&previous-version=1.1.0&new-version=1.2.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 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-08-03 21:19:04 +00:00
dependabot[bot]
f32a199799
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.13.0 to 1.14.0 in /src (#3954)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.13.0 to 1.14.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.14.0]- 2023-08-02</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="df38c0210e"><code>df38c02</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/548">#548</a>)</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.13.0...v1.14.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.13.0&new-version=1.14.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 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-08-03 20:30:15 +00:00
ashmrtn
cd4bc75902
Switch bucket the test runs in (#3944)
Switch to a bucket with versioning and
object locking so we can test that too.

Repo configured with retention out of band
since CLI flags for that won't be available
until next release at the earliest

---

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

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-03 17:30:26 +00:00
dependabot[bot]
c59c1d2408
⬆️ Bump github.com/microsoftgraph/msgraph-sdk-go from 1.12.0 to 1.13.0 in /src (#3931)
Bumps [github.com/microsoftgraph/msgraph-sdk-go](https://github.com/microsoftgraph/msgraph-sdk-go) from 1.12.0 to 1.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-go/blob/main/CHANGELOG.md">github.com/microsoftgraph/msgraph-sdk-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.13.0]- 2023-07-28</h2>
<h3>Changed</h3>
<ul>
<li>Weekly generation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e276af0eaf"><code>e276af0</code></a> Generated  models and request builders (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-go/issues/542">#542</a>)</li>
<li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-go/compare/v1.12.0...v1.13.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoftgraph/msgraph-sdk-go&package-manager=go_modules&previous-version=1.12.0&new-version=1.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 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-08-03 02:04:46 +00:00
ashmrtn
a670c07735
Create S3 retention checker (#3923)
Create a CLI utility that checks retention config
information for a small set of objects. Utility
works as follows:
* given a set of prefixes find one current version
  of each object
* for each object selected above, retrieve the
  retention config
* compare retention mode and expiry with the given
  mode and an expiry calculated from the current
  time

To attempt to reduce costs, the utility uses the
list API to fetch object names/versions and match
prefixes. It will cancel listing objects (i.e.
stop fetching new pages) once all prefixes are
matched

Also includes a flag to select non-current versions
of objects with the same prefix. However, setting
this flag may lead to more API calls because some
objects may not have non-current versions. In that
case all objects will be listed

sample usage to check current and non-current versions
of an object with prefix 'x' and current and
non-current versions of an object with prefix 'q'.
The current versions should expire in >= 8h and the
non-current versions should expire <= 7h
```
s3checker --bucket <> --bucket-prefix <> \
  --prefix x --prefix q \
  --retention-mode GOVERNANCE --live-retention-duration 8h \
  --with-non-current --dead-retention-duration 7h
```

---

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

#### Issue(s)

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-02 18:23:39 +00:00
Abin Simon
c1de34d438
Export data from OD/SP in logevity tests (#3919)
~This tries to export all the backup that is available in the logevity test repo. This should warn us in case we are not able to export any older versions.~ Had a discussion and decided it would be better to export just two items and thought we could start with trying to export the first and the last item.

<!-- 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/3920

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-02 05:40:44 +00:00
Keepers
fc6119064b
introduce backupProducerConfig (#3904)
Adds another inject container-of-things to hold
common properties used by backup collection producers.

No logic changes, just code movement, renames, and placing things into structs.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-08-02 00:38:19 +00:00
dependabot[bot]
0f9d637074
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.312 to 1.44.313 in /src (#3942)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.312 to 1.44.313.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.313 (2023-07-31)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/amplifyuibuilder</code>: Updates service API and documentation</li>
<li><code>service/autoscaling</code>: Updates service API, documentation, and examples
<ul>
<li>You can now configure an instance refresh to set its status to 'failed' when it detects that a specified CloudWatch alarm has gone into the ALARM state. You can also choose to roll back the instance refresh automatically when the alarm threshold is met.</li>
</ul>
</li>
<li><code>service/cleanrooms</code>: Updates service API, documentation, and paginators</li>
<li><code>service/codestar-connections</code>: Updates service API and documentation</li>
<li><code>service/drs</code>: Updates service API</li>
<li><code>service/inspector2</code>: Updates service API and documentation</li>
<li><code>service/lookoutequipment</code>: Updates service API, documentation, and paginators</li>
<li><code>service/omics</code>: Updates service API and documentation</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>This release adds support for Aurora MySQL local write forwarding, which allows for forwarding of write operations from reader DB instances to the writer DB instance.</li>
</ul>
</li>
<li><code>service/route53</code>: Updates service API and documentation
<ul>
<li>Amazon Route 53 now supports the Israel (Tel Aviv) Region (il-central-1) for latency records, geoproximity records, and private DNS for Amazon VPCs in that region.</li>
</ul>
</li>
<li><code>service/scheduler</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="38e5c8181e"><code>38e5c81</code></a> Release v1.44.313 (2023-07-31) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4933">#4933</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.312...v1.44.313">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.312&new-version=1.44.313)](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 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-08-01 17:53:43 +00:00
dependabot[bot]
f25d701290
⬆️ Bump golang.org/x/tools from 0.11.0 to 0.11.1 in /src (#3940)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.11.0 to 0.11.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="c16d0be617"><code>c16d0be</code></a> cmd/gonew: add new tool for starting a module by copying one</li>
<li><a href="304e203aec"><code>304e203</code></a> internal/edit: copy cmd/internal/edit</li>
<li><a href="82861e0385"><code>82861e0</code></a> gopls/internal/lsp/source: reinstate equalOrigin for references check</li>
<li><a href="1561060c98"><code>1561060</code></a> gopls/internal/lsp/source: fix incorrect 'origin' logic for named types</li>
<li><a href="fe58b07b84"><code>fe58b07</code></a> gopls/internal/lsp/source: fix renaming of type parameters</li>
<li><a href="3a3c16941e"><code>3a3c169</code></a> gopls/internal/lsp/source: refresh embeddirective analyzer docs</li>
<li><a href="03562de254"><code>03562de</code></a> refactor/satisfy/find: composite lits may have type parameter type</li>
<li><a href="bacac14996"><code>bacac14</code></a> gopls/internal/lsp/source: Add SuggestedFix for embeddirective Analyzer</li>
<li><a href="38606b3e25"><code>38606b3</code></a> gopls/internal/lsp/cache: keep analysis progress reports on one line</li>
<li><a href="e8cdaf46de"><code>e8cdaf4</code></a> gopls/internal/lsp/cache: fast-path for type-checking active packages</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.11.0...v0.11.1">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.11.0&new-version=0.11.1)](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 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-08-01 17:11:14 +00:00
dependabot[bot]
4806185def
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.311 to 1.44.312 in /src (#3936)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.311 to 1.44.312.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.312 (2023-07-28)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/application-insights</code>: Updates service API, documentation, and paginators</li>
<li><code>service/cloudformation</code>: Updates service API and documentation
<ul>
<li>This SDK release is for the feature launch of AWS CloudFormation RetainExceptOnCreate. It adds a new parameter retainExceptOnCreate in the following APIs: CreateStack, UpdateStack, RollbackStack, ExecuteChangeSet.</li>
</ul>
</li>
<li><code>service/cloudfront</code>: Updates service API and documentation
<ul>
<li>Add a new JavaScript runtime version for CloudFront Functions.</li>
</ul>
</li>
<li><code>service/connect</code>: Updates service API</li>
<li><code>service/kafka</code>: Updates service API, documentation, and paginators</li>
<li><code>service/pinpoint</code>: Updates service API, documentation, and examples
<ul>
<li>Added support for sending push notifications using the FCM v1 API with json credentials. Amazon Pinpoint customers can now deliver messages to Android devices using both FCM v1 API and the legacy FCM/GCM API</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b75b2a7b3c"><code>b75b2a7</code></a> Release v1.44.312 (2023-07-28) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4931">#4931</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.311...v1.44.312">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.311&new-version=1.44.312)](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 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-08-01 16:19:48 +00:00
Keepers
deb183278c
fix loop in restore config conceal (#3939)
#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x]  Unit test
2023-08-01 15:44:22 +00:00
Abin Simon
5751163572
Sanity tests for SharePoint export (#3928)
This extends the existing export sanity tests to also cover SharePoint exports.

<!-- 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/3889

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-08-01 06:03:51 +00:00
ashmrtn
2596fb9104
Track when we skip merging due to DoNotMerge (#3938)
Add some more nuanced tracking that takes into account the DoNotMerge flag and the New state of collections.

---

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

#### Issue(s)

* #3929

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-31 22:36:36 +00:00
ashmrtn
5b455bfc4a
Better handling of clues, error, and log data if it's PII (#3935)
Add better handling for
* hiding possibly sensitive data when logging
* adding possibly sensitive data to context clues
* adding context clues to returned errors

---

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

* #3895

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-31 22:00:20 +00:00
ashmrtn
dfbca1540d
Minor refactor for handling of LoggableDir (#3934)
Reuse existing Elements code to conceal information.

---

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

* #3895

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-31 19:52:41 +00:00
ashmrtn
f0425a0f9d
Add test to lookup deleted backup by opening old version of repo (#3925)
Make helper function that allows
* opening the repo at a previous point in time
* listing backups
* searching the list for backups in a given set

This will allow us to open the repo just prior to
the point in time at which backups were deleted
so we can ensure PITR is working right

This PR does not enable this functionality in
CI, it only adds the code for it

---

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

#### Issue(s)

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-31 18:26:38 +00:00
ashmrtn
f672325193
Update clues dependency (#3933)
Pull in fix for double hashing some values

----

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

#### Issue(s)

* #3895

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-28 20:46:49 +00:00
ashmrtn
e0368ba45a
Track and print stats about merging (#3930)
Track and print information about the number
of directories that were moved, deleted,
recursively moved or deleted, and that
didn't move at all

This can help shed light on what's happening
and generally help with debugging issues
that may crop up

---

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

#### Issue(s)

* #3929

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-28 19:00:53 +00:00
ashmrtn
b12bb50a4a
Retention update op (#3865)
Create new operation type to update retention parameters
for immutable backups

---

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


#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-28 18:27:54 +00:00
ashmrtn
a836e877af
Pull backup deletion logic into function (#3924)
Make a separate function to handle backup deletion.
Makes repo connection management a little bit
easier since a simple defer will work now.

Will also help keep things organized as we expand
these tests to do other things like use the
point-in-time function to check the deleted
backups are still accessible, especially since
that will require opening another connection
to the repo

---

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

* #3799

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-28 17:47:42 +00:00
dependabot[bot]
b559cba4e7
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.309 to 1.44.311 in /src (#3926)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.309 to 1.44.311.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.311 (2023-07-28)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/sqs</code>: Updates service documentation
<ul>
<li>Documentation changes related to SQS APIs.</li>
</ul>
</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>aws/session</code>: Modify resolving sso credential logic to fix stack overflow bug while configuring shared config profile via env var.
<ul>
<li>Fixes <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4912">4912</a></li>
</ul>
</li>
</ul>
<h1>Release v1.44.310 (2023-07-27)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/autoscaling</code>: Updates service API, documentation, paginators, and examples
<ul>
<li>This release updates validation for instance types used in the AllowedInstanceTypes and ExcludedInstanceTypes parameters of the InstanceRequirements property of a MixedInstancesPolicy.</li>
</ul>
</li>
<li><code>service/ebs</code>: Updates service API and documentation</li>
<li><code>service/ec2</code>: Updates service API, documentation, and waiters
<ul>
<li>SDK and documentation updates for Amazon Elastic Block Store APIs</li>
</ul>
</li>
<li><code>service/eks</code>: Updates service API</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Expose ProfilerConfig attribute in SageMaker Search API response.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7f89e94e3c"><code>7f89e94</code></a> Release v1.44.311 (2023-07-28) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4930">#4930</a>)</li>
<li><a href="1b1dc9b5fa"><code>1b1dc9b</code></a> Modify resolving sso credential logic  (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4917">#4917</a>)</li>
<li><a href="14bc14a3f9"><code>14bc14a</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4913">#4913</a> from luisgerhorst/patch-1</li>
<li><a href="853c5ee498"><code>853c5ee</code></a> Release v1.44.310 (2023-07-27) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4929">#4929</a>)</li>
<li><a href="03bc85877f"><code>03bc858</code></a> Fix typo in v4.go: &quot;many&quot; should be &quot;may&quot;</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.309...v1.44.311">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.309&new-version=1.44.311)](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 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-07-28 17:09:51 +00:00
ashmrtn
1e126bd2af
Allow setting retention parameters on repo init (#3903)
Take in information about retention so that
when the repo is initialized we can configure
retention

Not currently exposed by CLI layer

**Requires changing the interface for repo
init so SDK consumers will require changes**

---

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

* #3519

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-28 15:39:17 +00:00
Abin Simon
8f30db4f6e
Sanity tests for OneDrive exports (#3910)
Add sanity tests for OneDrive exports (archive and non-archive exports).

---

#### 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. -->
* https://github.com/alcionai/corso/issues/3889

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-07-28 10:43:59 +00:00
Abin Simon
26d5083269
Separate pieces of sanity test into different package (#3909)
Just moving around code, no changes. This just splits the single fine sanity test into multiple files.

---

#### 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
- [x] 💚 E2E
2023-07-28 09:50:38 +00:00
Abin Simon
c654dfba1b
Export data from SharePoint (#3824)
This borrows a lot of the core logic from OneDrive as the internal structure is mostly the same.

<!-- PR description-->
Prev: https://github.com/alcionai/corso/pull/3822

---

#### 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: --->
- [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. -->
* fixes https://github.com/alcionai/corso/issues/3823

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-28 08:40:35 +00:00
Abin Simon
d7443c2211
CLI for exporting data from OneDrive (#3822)
This adds the final piece to enable OneDrive exports. The CLI interface which consumes NewExport interface from Repository and lets the user to export and write the contents in a backup to the local filesystem.

<!-- PR description-->
Prev: https://github.com/alcionai/corso/pull/3821
Next: https://github.com/alcionai/corso/pull/3824

---

#### 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: --->
- [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/pull/3797
* https://github.com/alcionai/corso/issues/3670

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-28 08:01:12 +00:00
dependabot[bot]
4e2ee2484f
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.308 to 1.44.309 in /src (#3918)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.308 to 1.44.309.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.309 (2023-07-26)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cloudcontrol</code>: Updates service documentation</li>
<li><code>service/entityresolution</code>: Adds new service</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>Release Glue Studio Snowflake Connector Node for SDK/CLI</li>
</ul>
</li>
<li><code>service/healthlake</code>: Updates service documentation</li>
<li><code>service/managedblockchain-query</code>: Adds new service</li>
<li><code>service/mediaconvert</code>: Updates service API and documentation
<ul>
<li>This release includes general updates to user documentation.</li>
</ul>
</li>
<li><code>service/omics</code>: Updates service documentation</li>
<li><code>service/opensearchserverless</code>: Updates service API and documentation</li>
<li><code>service/polly</code>: Updates service API
<ul>
<li>Amazon Polly adds 1 new voice - Lisa (nl-BE)</li>
</ul>
</li>
<li><code>service/route53</code>: Updates service documentation
<ul>
<li>Update that corrects the documents for received feedback.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="909f3e1b15"><code>909f3e1</code></a> Release v1.44.309 (2023-07-26) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4928">#4928</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.308...v1.44.309">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.308&new-version=1.44.309)](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 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-07-27 19:47:38 +00:00
Keepers
34d6c18d74
clean up exchange adv restore test (#3870)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-27 19:16:11 +00:00
Keepers
a973f69d18
rename export interface (#3916)
to better match current standards

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-07-27 06:29:56 +00:00
dependabot[bot]
578a720c67
⬆️ Bump mermaid from 10.2.4 to 10.3.0 in /website (#3917)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.2.4 to 10.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>10.3.0</h2>
<h2>What's Changed</h2>
<h3>Features</h3>
<ul>
<li>Sankey diagrams by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4502">mermaid-js/mermaid#4502</a></li>
<li>Feature/1838 actor creation destruction by <a href="https://github.com/Valentine14th"><code>@​Valentine14th</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4466">mermaid-js/mermaid#4466</a></li>
<li>Vertical branches in Git Diagram by <a href="https://github.com/mastersibin"><code>@​mastersibin</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4639">mermaid-js/mermaid#4639</a></li>
<li>Use JSON Schema to define and document <code>MermaidConfig</code> by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4112">mermaid-js/mermaid#4112</a></li>
<li>Remove the test checking whether the JSON Schema default config matched the old default config by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4610">mermaid-js/mermaid#4610</a></li>
<li>Fixes support of the macro <code>ContainerQueue_Ext</code> for C4 diagrams definition. by <a href="https://github.com/kislerdm"><code>@​kislerdm</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4577">mermaid-js/mermaid#4577</a></li>
</ul>
<h3>Bugfixes</h3>
<ul>
<li>Make quadrant chart options TypeScript types optional by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4602">mermaid-js/mermaid#4602</a></li>
<li>Remove double parsing by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4587">mermaid-js/mermaid#4587</a></li>
<li>Fix flowchart tooltip typing bug by <a href="https://github.com/lishid"><code>@​lishid</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4562">mermaid-js/mermaid#4562</a></li>
<li>Bug/4590 allow notes identical to keywords by <a href="https://github.com/ibrahimWassouf"><code>@​ibrahimWassouf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4597">mermaid-js/mermaid#4597</a></li>
<li>feat: allow specifying on which weekday a tickInterval should start by <a href="https://github.com/leinelissen"><code>@​leinelissen</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4634">mermaid-js/mermaid#4634</a></li>
<li>Split formatted markdown strings with unicode support. by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4470">mermaid-js/mermaid#4470</a></li>
<li>fix: Mind maps handles <code>-</code> signs in node ids/text by <a href="https://github.com/knsv"><code>@​knsv</code></a></li>
</ul>
<h3>Chores</h3>
<ul>
<li>Remove all TypeScript enums and forbid them in ESLint by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4580">mermaid-js/mermaid#4580</a></li>
<li>refactor accessibility by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4551">mermaid-js/mermaid#4551</a></li>
<li>chore: Reduce codecov pushes by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4604">mermaid-js/mermaid#4604</a></li>
<li>Run PR-labeler-config-validator only if config changes by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4607">mermaid-js/mermaid#4607</a></li>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4624">mermaid-js/mermaid#4624</a></li>
<li>Update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4566">mermaid-js/mermaid#4566</a></li>
<li>Update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4581">mermaid-js/mermaid#4581</a></li>
<li>Rename workflow jobs by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4574">mermaid-js/mermaid#4574</a></li>
<li>Removed unused code in state diagrams by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4631">mermaid-js/mermaid#4631</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4623">mermaid-js/mermaid#4623</a></li>
<li>chore: remove unused <code>devDependency</code> on coveralls by <a href="https://github.com/aloisklink"><code>@​aloisklink</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4641">mermaid-js/mermaid#4641</a></li>
<li>Allow entity diagram attribute names to start with asterisk by <a href="https://github.com/ibrahimWassouf"><code>@​ibrahimWassouf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4588">mermaid-js/mermaid#4588</a></li>
<li>Bug/4592 fix new line padding class diagram by <a href="https://github.com/ibrahimWassouf"><code>@​ibrahimWassouf</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4633">mermaid-js/mermaid#4633</a></li>
<li>Fix graph not loading when the img loads too fast or fail to load by <a href="https://github.com/pierrickouw"><code>@​pierrickouw</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4496">mermaid-js/mermaid#4496</a></li>
<li>convert <code>cypress/helpers/util.js</code> to ts by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4552">mermaid-js/mermaid#4552</a></li>
<li>build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4652">mermaid-js/mermaid#4652</a></li>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4663">mermaid-js/mermaid#4663</a></li>
<li>chore(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4662">mermaid-js/mermaid#4662</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Sankey: Remove duplicated examples by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4595">mermaid-js/mermaid#4595</a></li>
<li>Release docs by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4493">mermaid-js/mermaid#4493</a></li>
<li>Update latest news section by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4495">mermaid-js/mermaid#4495</a></li>
<li>Fix Typo by <a href="https://github.com/ryru"><code>@​ryru</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4567">mermaid-js/mermaid#4567</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="165e0b6c68"><code>165e0b6</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4669">#4669</a> from mermaid-js/release/10.3.0</li>
<li><a href="9c92f779ae"><code>9c92f77</code></a> Updates after testing and new version for mermaid-zenuml</li>
<li><a href="aa54127784"><code>aa54127</code></a> Set proper release version</li>
<li><a href="21b90cbcd2"><code>21b90cb</code></a> Add release version</li>
<li><a href="e1ca108b00"><code>e1ca108</code></a> Update version</li>
<li><a href="29d078c822"><code>29d078c</code></a> Merge branch 'master' into release/10.3.0</li>
<li><a href="40d30b7045"><code>40d30b7</code></a> Merge remote-tracking branch 'origin/release/10.3.2' into develop</li>
<li><a href="dbee34aba7"><code>dbee34a</code></a> fix: edgeLabel width</li>
<li><a href="68909a43f7"><code>68909a4</code></a> Update lockfile</li>
<li><a href="d178626bac"><code>d178626</code></a> Merge branch 'develop' into release/10.4.0</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.2.4...v10.3.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.2.4&new-version=10.3.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 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-07-27 05:15:18 +00:00
ashmrtn
046a471077
Delete details snapshot (#3914)
Check for a populated StreamStoreID and fallback to the DetailsID if necessary.

---

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

* closes #3913

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-26 22:15:37 +00:00
Keepers
0c25c568c1
use proper resource ids in factory (#3912)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💚 E2E
2023-07-26 20:46:30 +00:00
Keepers
3613cb2aa0
look up restore resource if specified (#3853)
If the restore configuration specifies a protected resource as a restore target, use that as the destination for the restore.  First step is to ensure the provided target can be retrieved and identified.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
2023-07-26 17:24:53 +00:00
dependabot[bot]
7653af5143
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.307 to 1.44.308 in /src (#3906)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.307 to 1.44.308.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.308 (2023-07-25)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/billingconductor</code>: Updates service API and documentation</li>
<li><code>service/customer-profiles</code>: Updates service API and documentation</li>
<li><code>service/datasync</code>: Updates service API and documentation</li>
<li><code>service/dynamodb</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Documentation updates for DynamoDB</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>This release adds an instance's peak and baseline network bandwidth as well as the memory sizes of an instance's inference accelerators to DescribeInstanceTypes.</li>
</ul>
</li>
<li><code>service/emr-serverless</code>: Updates service API and documentation</li>
<li><code>service/lambda</code>: Updates service API
<ul>
<li>Add Python 3.11 (python3.11) support to AWS Lambda</li>
</ul>
</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>This release adds support for monitoring storage optimization progress on the DescribeDBInstances API.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Mark ContentColumn and TargetLabelColumn as required Targets in TextClassificationJobConfig in CreateAutoMLJobV2API</li>
</ul>
</li>
<li><code>service/securityhub</code>: Updates service API and documentation</li>
<li><code>service/sts</code>: Updates service API and documentation
<ul>
<li>API updates for the AWS Security Token Service</li>
</ul>
</li>
<li><code>service/transfer</code>: Updates service API and documentation
<ul>
<li>This release adds support for SFTP Connectors.</li>
</ul>
</li>
<li><code>service/wisdom</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="756289a6f7"><code>756289a</code></a> Release v1.44.308 (2023-07-25) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4927">#4927</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.307...v1.44.308">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.307&new-version=1.44.308)](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 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-07-26 16:35:21 +00:00
Abin Simon
f6d44b3c60
Export data from OneDrive (#3819)
Core logic for exporting data from OneDrive

Next: https://github.com/alcionai/corso/pull/3820

---

#### 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/3670
* https://github.com/alcionai/corso/pull/3797

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-26 12:30:39 +00:00
Keepers
0175033a83
centralize the slack message action (#3614)
centralizes the ci action for slack messages, and adds slack messages for per-resource cleanup failures.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issues

- #3503
2023-07-25 23:56:20 +00:00
ashmrtn
3a98bcdcf5
Minor code cleanup (#3901)
Remove now-unused code

---

#### 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
- [ ] 💚 E2E
2023-07-25 20:04:09 +00:00
ashmrtn
dd55744f15
Hide storage path for merge collections (#3902)
#### 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)

* #3895

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-25 19:38:12 +00:00
Keepers
92412645ec
pii handling for restore config (#3896)
add pii concealer compliance for restore config structs.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature
2023-07-25 17:25:34 +00:00
dependabot[bot]
c75ca7e41c
⬆️ Bump github.com/microsoft/kiota-http-go from 1.0.0 to 1.0.1 in /src (#3897)
Bumps [github.com/microsoft/kiota-http-go](https://github.com/microsoft/kiota-http-go) from 1.0.0 to 1.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/releases">github.com/microsoft/kiota-http-go's releases</a>.</em></p>
<blockquote>
<h2>v1.0.1</h2>
<h3>Changed</h3>
<ul>
<li>Bug Fix: Update Host for Redirect URL in go client.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/kiota-http-go/blob/main/CHANGELOG.md">github.com/microsoft/kiota-http-go's changelog</a>.</em></p>
<blockquote>
<h2>[1.0.1] - 2023-07-19</h2>
<h3>Changed</h3>
<ul>
<li>Bug Fix: Update Host for Redirect URL in go client.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="03f625b697"><code>03f625b</code></a> Fixes redirect host URL (<a href="https://redirect.github.com/microsoft/kiota-http-go/issues/98">#98</a>)</li>
<li><a href="53e6b699af"><code>53e6b69</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/96">#96</a> from microsoft/dependabot/go_modules/github.com/micros...</li>
<li><a href="d37a8a90bc"><code>d37a8a9</code></a> Bump github.com/microsoft/kiota-abstractions-go from 1.0.0 to 1.1.0</li>
<li><a href="def53fa74c"><code>def53fa</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/95">#95</a> from microsoft/dependabot/github_actions/dependabot/fe...</li>
<li><a href="4258e27770"><code>4258e27</code></a> Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0</li>
<li><a href="a671c2bcba"><code>a671c2b</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/94">#94</a> from microsoft/dependabot/go_modules/github.com/stretc...</li>
<li><a href="ecb3cbcad2"><code>ecb3cbc</code></a> Bump github.com/stretchr/testify from 1.8.3 to 1.8.4</li>
<li><a href="5c3d188ffe"><code>5c3d188</code></a> Disable sonar cloud checks on forks (<a href="https://redirect.github.com/microsoft/kiota-http-go/issues/92">#92</a>)</li>
<li><a href="78a52a29b6"><code>78a52a2</code></a> Merge pull request <a href="https://redirect.github.com/microsoft/kiota-http-go/issues/93">#93</a> from microsoft/dependabot/github_actions/dependabot/fe...</li>
<li><a href="973aef3a4d"><code>973aef3</code></a> Bump dependabot/fetch-metadata from 1.5.0 to 1.5.1</li>
<li>Additional commits viewable in <a href="https://github.com/microsoft/kiota-http-go/compare/v1.0.0...v1.0.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/microsoft/kiota-http-go&package-manager=go_modules&previous-version=1.0.0&new-version=1.0.1)](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 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-07-25 16:45:22 +00:00
dependabot[bot]
0451df1291
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.306 to 1.44.307 in /src (#3898)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.306 to 1.44.307.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.307 (2023-07-24)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/apigatewayv2</code>: Adds new service
<ul>
<li>Documentation updates for Amazon API Gateway.</li>
</ul>
</li>
<li><code>service/ce</code>: Updates service API and documentation</li>
<li><code>service/chime-sdk-media-pipelines</code>: Updates service API and documentation</li>
<li><code>service/cloudformation</code>: Updates service API and documentation
<ul>
<li>This release supports filtering by DRIFT_STATUS for existing API ListStackInstances and adds support for a new API ListStackInstanceResourceDrifts. Customers can now view resource drift information from their StackSet management accounts.</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API
<ul>
<li>Add &quot;disabled&quot; enum value to SpotInstanceState.</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>Added support for Data Preparation Recipe node in Glue Studio jobs</li>
</ul>
</li>
<li><code>service/quicksight</code>: Updates service API, documentation, and paginators
<ul>
<li>This release launches new Snapshot APIs for CSV and PDF exports, adds support for info icon for filters and parameters in Exploration APIs, adds modeled exception to the DeleteAccountCustomization API, and introduces AttributeAggregationFunction's ability to add UNIQUE_VALUE aggregation in tooltips.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0b6a21fb8c"><code>0b6a21f</code></a> Release v1.44.307 (2023-07-24) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4926">#4926</a>)</li>
<li><a href="03554b14b1"><code>03554b1</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4911">#4911</a> from khushail/khushail/handleStalediscussions</li>
<li><a href="3520bfe05f"><code>3520bfe</code></a> added workflow for handling answerable discussions</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.306...v1.44.307">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.306&new-version=1.44.307)](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 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-07-25 15:55:05 +00:00
neha_gupta
d3dc0e8fdc
expose bucket name (#3900)
<!-- PR description-->

Export Bucket name for CI Nightly test.

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

- [x]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 💻 CI/Deployment

#### 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
- [x] 💚 E2E
2023-07-25 08:02:05 +00:00
dependabot[bot]
bc205ec774
⬆️ Bump sass from 1.64.0 to 1.64.1 in /website (#3899)
Bumps [sass](https://github.com/sass/dart-sass) from 1.64.0 to 1.64.1.
<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.64.1</h2>
<p>To install Sass 1.64.1, 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>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a bug where a valid <code>SassCalculation.clamp()</code> with less than 3 arguments would throw an error.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1641">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.64.1</h2>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a bug where a valid <code>SassCalculation.clamp()</code> with less than 3 arguments
would throw an error.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3367abe161"><code>3367abe</code></a> Bump the sass_api version (<a href="https://redirect.github.com/sass/dart-sass/issues/2044">#2044</a>)</li>
<li><a href="2836216ba5"><code>2836216</code></a> Fix deprotofy SassCalculation.clamp (<a href="https://redirect.github.com/sass/dart-sass/issues/2043">#2043</a>)</li>
<li><a href="b1d56a4f07"><code>b1d56a4</code></a> Change terminology to refer to JS instead of Node.js (<a href="https://redirect.github.com/sass/dart-sass/issues/2039">#2039</a>)</li>
<li><a href="89bd36b14e"><code>89bd36b</code></a> Revert &quot;Start writing implementation documentation&quot;</li>
<li><a href="6c592134fe"><code>6c59213</code></a> Start writing implementation documentation</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.64.0...1.64.1">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.64.0&new-version=1.64.1)](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 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-07-25 06:07:14 +00:00
dependabot[bot]
f7acf97489
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.305 to 1.44.306 in /src (#3887)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.305 to 1.44.306.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.306 (2023-07-21)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>This release adds support for AWS Glue Crawler with Apache Hudi Tables, allowing Crawlers to discover Hudi Tables in S3 and register them in Glue Data Catalog for query engines to query against.</li>
</ul>
</li>
<li><code>service/mediaconvert</code>: Updates service documentation
<ul>
<li>This release includes improvements to Preserve 444 handling, compatibility of HEVC sources without frame rates, and general improvements to MP4 outputs.</li>
</ul>
</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Adds support for the DBSystemID parameter of CreateDBInstance to RDS Custom for Oracle.</li>
</ul>
</li>
<li><code>service/workspaces</code>: Updates service documentation
<ul>
<li>Fixed VolumeEncryptionKey descriptions</li>
</ul>
</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>codegen</code>: Prevent unused imports from being generated for event streams.
<ul>
<li>Potentially-unused <code>&quot;time&quot;</code> import was causing vet failures on generated code.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7175ab4707"><code>7175ab4</code></a> Release v1.44.306 (2023-07-21) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4924">#4924</a>)</li>
<li><a href="e7c3b2520d"><code>e7c3b25</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4919">#4919</a> from aws/fix-eventstream-imports</li>
<li><a href="37fd36153b"><code>37fd361</code></a> prevent unused time import in event streams</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.305...v1.44.306">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.305&new-version=1.44.306)](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 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-07-25 01:46:20 +00:00
ashmrtn
42adc033d9
Pass BackupBases directly to ConsumeBackupCollections (#3876)
Shift things so BackupBases is passed directly to
the kopia package which then extracts information
from it. This allows for fine-grained control
over kopia-assisted incremental bases and merge
bases. Generating subtree paths from Reasons is
also shifted to the kopia package

Also expands tests for better coverage of various
incremental backup situations

Viewing by commit may help and individual commit
comments usually contain reasons for changes,
especially for test removal

---

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

* #2068

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-07-24 23:31:54 +00:00
Keepers
d2dda00195
update all graph packages (#3879)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-07-24 21:45:57 +00:00
ashmrtn
f7496e5242
Require passing AWS bucket for integration tests (#3852)
#### 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


#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-24 19:46:21 +00:00
ashmrtn
ab344422d6
Cleanup figuring out kopia retention parameters (#3857)
Create a struct that handles:
* initialization from existing kopia config info
* in-memory updates to config info
* detecting which config info structs from kopia need updated
* returning kopia config info structs

Overall, this allows us to isolate the logic for
calculating the new retention configuration info
in kopia

Viewing by commit may help.
First commit just splits up existing code, moving it into
either conn.go (will be used later) or retention/opts.go.
Subsequent commits switch to using a struct, add tests,
and fixup existing logic

---

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

#### Test Plan

- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-24 18:43:27 +00:00
dependabot[bot]
0bb2c06a43
⬆️ Bump postcss from 8.4.26 to 8.4.27 in /website (#3888)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.26 to 8.4.27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.27</h2>
<ul>
<li>Fixed <code>Container</code> clone methods types.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.27</h2>
<ul>
<li>Fixed <code>Container</code> clone methods types.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="fb4bb8a577"><code>fb4bb8a</code></a> Release 8.4.27 version</li>
<li><a href="16cddfdfcc"><code>16cddfd</code></a> Fix types</li>
<li><a href="c938a9a6cf"><code>c938a9a</code></a> Update dependencies</li>
<li><a href="a55c3e2837"><code>a55c3e2</code></a> Fix container clone</li>
<li>See full diff in <a href="https://github.com/postcss/postcss/compare/8.4.26...8.4.27">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.26&new-version=8.4.27)](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 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-07-24 05:32:41 +00:00
ashmrtn
c073ccc5ea
Add a couple more linters (#3886)
Lint for kv-pairs in log calls and things
that can be replaced with constants from
the standard library

Also add the linters that are enabled by
default just so things are more consistent
and clear going forward

---

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

#### Issue(s)

* #3654

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-22 01:34:38 +00:00
Niraj Tolia
6880064c64
First draft of a community-contributed blog post on multi-tenant backup (#3885)
- Minor edits made for clarity and to pass the linter
- Added image

---

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

- [x]  No
2023-07-22 01:04:18 +00:00
Keepers
0d6b08204d
allow users to limit page size (#3875)
allows cli users to limit the page size of delta queries by calling a new hidden flag: --delta-page-size.
This also adds the control.Options struct to the api client, so that configurations such as this can be easily handed into, and used by, the client.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-07-22 00:00:09 +00:00
ashmrtn
62d4c68c04
Have kopia package generate tags during backup based on Reasons (#3869)
Move tag generation from the backup op to the
kopia package. This makes it match the pattern
that finding base backups uses where a set of
Reasons and a separate set of additional tags
are provided

---

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

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-07-21 22:49:42 +00:00
Keepers
7677299ace
use replace collisions for nightly tests (#3882)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-21 22:19:13 +00:00
Keepers
4ddbb1cc30
remove the getM365 cmd (#3881)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup
2023-07-21 21:41:14 +00:00
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
Keepers
9bcf160187
atttempt ternary for value (#3877)
#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests
2023-07-21 19:08:00 +00:00
Keepers
5c80d76455
give library prefix delete list a default val (#3872)
#### Type of change

- [x] 🐛 Bugfix
2023-07-21 16:56:26 +00:00
dependabot[bot]
de742bbd2f
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.304 to 1.44.305 in /src (#3867)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.304 to 1.44.305.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.305 (2023-07-20)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/connectcases</code>: Updates service API and documentation</li>
<li><code>service/models.lex.v2</code>: Updates service API and documentation</li>
<li><code>service/route53resolver</code>: Updates service API, documentation, and paginators</li>
<li><code>service/s3</code>: Updates service examples
<ul>
<li>Improve performance of S3 clients by simplifying and optimizing endpoint resolution.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API, documentation, and paginators
<ul>
<li>Cross account support for SageMaker Feature Store</li>
</ul>
</li>
<li><code>service/sagemaker-featurestore-runtime</code>: Updates service API and documentation</li>
<li><code>service/securitylake</code>: Updates service API and documentation</li>
<li><code>service/transcribe</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cb7ed6e37d"><code>cb7ed6e</code></a> Release v1.44.305 (2023-07-20) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4922">#4922</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.304...v1.44.305">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.304&new-version=1.44.305)](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 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-07-21 16:13:15 +00:00
dependabot[bot]
876f0d8bd9
⬆️ Bump docusaurus-plugin-sass from 0.2.4 to 0.2.5 in /website (#3873)
Bumps [docusaurus-plugin-sass](https://github.com/rlamana/docusaurus-plugin-sass) from 0.2.4 to 0.2.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rlamana/docusaurus-plugin-sass/releases">docusaurus-plugin-sass's releases</a>.</em></p>
<blockquote>
<h2>v0.2.5</h2>
<h2>What's Changed</h2>
<ul>
<li>build: support docusarus@3.0.0-alpha.0 by <a href="https://github.com/noomorph"><code>@​noomorph</code></a> in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/33">rlamana/docusaurus-plugin-sass#33</a></li>
<li>Add TypeScript support for Sass/SCSS modules by <a href="https://github.com/roydukkey"><code>@​roydukkey</code></a> in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/21">rlamana/docusaurus-plugin-sass#21</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/noomorph"><code>@​noomorph</code></a> made their first contribution in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/33">rlamana/docusaurus-plugin-sass#33</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.4...v0.2.5-2">https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.4...v0.2.5-2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="70e42fc7cf"><code>70e42fc</code></a> Merge pull request <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/issues/21">#21</a> from roydukkey/issue/20</li>
<li><a href="7a5720c453"><code>7a5720c</code></a> Merge pull request <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/issues/33">#33</a> from noomorph/patch-1</li>
<li><a href="d9f4fad41d"><code>d9f4fad</code></a> build: support docusarus@3.0.0-alpha.0</li>
<li><a href="2fe9818119"><code>2fe9818</code></a> Merge branch 'rlamana:master' into issue/20</li>
<li><a href="bb70d7d1f2"><code>bb70d7d</code></a> Add missing newline</li>
<li><a href="c482d9aba8"><code>c482d9a</code></a> Add TypeScript support for Sass/SCSS modules</li>
<li>See full diff in <a href="https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.4...v0.2.5">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docusaurus-plugin-sass&package-manager=npm_and_yarn&previous-version=0.2.4&new-version=0.2.5)](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 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-07-21 06:10:03 +00:00
dependabot[bot]
1f7941d19b
⬆️ Bump sass from 1.63.6 to 1.64.0 in /website (#3874)
Bumps [sass](https://github.com/sass/dart-sass) from 1.63.6 to 1.64.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.64.0</h2>
<p>To install Sass 1.64.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>Comments that appear before or between <code>@use</code> and <code>@forward</code> rules are now emitted in source order as much as possible, instead of always being emitted after the CSS of all module dependencies.</p>
</li>
<li>
<p>Fix a bug where an interpolation in a custom property name crashed if the file was loaded by a <code>@use</code> nested in an <code>@import</code>.</p>
</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Add a new <code>SassCalculation</code> type that represents the calculation objects added in Dart Sass 1.40.0.</p>
</li>
<li>
<p>Add <code>Value.assertCalculation()</code>, which returns the value if it's a <code>SassCalculation</code> and throws an error otherwise.</p>
</li>
<li>
<p>Produce a better error message when an environment that supports some Node.js APIs loads the browser entrypoint but attempts to access the filesystem.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a bug where nested relative <code>@imports</code> failed to load when using the deprecated functions <code>render</code> or <code>renderSync</code> and those relative imports were loaded multiple times across different files.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1640">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.64.0</h2>
<ul>
<li>
<p>Comments that appear before or between <code>@use</code> and <code>@forward</code> rules are now
emitted in source order as much as possible, instead of always being emitted
after the CSS of all module dependencies.</p>
</li>
<li>
<p>Fix a bug where an interpolation in a custom property name crashed if the file
was loaded by a <code>@use</code> nested in an <code>@import</code>.</p>
</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Add a new <code>SassCalculation</code> type that represents the calculation objects added
in Dart Sass 1.40.0.</p>
</li>
<li>
<p>Add <code>Value.assertCalculation()</code>, which returns the value if it's a
<code>SassCalculation</code> and throws an error otherwise.</p>
</li>
<li>
<p>Produce a better error message when an environment that supports some Node.js
APIs loads the browser entrypoint but attempts to access the filesystem.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix a bug where nested relative <code>@imports</code> failed to load when using the
deprecated functions <code>render</code> or <code>renderSync</code> and those relative imports were
loaded multiple times across different files.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ca2be2ace9"><code>ca2be2a</code></a> Expose calculations in JS API (<a href="https://redirect.github.com/sass/dart-sass/issues/1988">#1988</a>)</li>
<li><a href="fe7f9a146d"><code>fe7f9a1</code></a> Do not validate a CSS declaration if its key is interpolated (<a href="https://redirect.github.com/sass/dart-sass/issues/2036">#2036</a>)</li>
<li><a href="262961cb57"><code>262961c</code></a> Check the fs library to determine if we're on Node.js (<a href="https://redirect.github.com/sass/dart-sass/issues/2033">#2033</a>)</li>
<li><a href="60dbddf010"><code>60dbddf</code></a> Use a fine-grained personal access token to push to the Sass site (<a href="https://redirect.github.com/sass/dart-sass/issues/2029">#2029</a>)</li>
<li><a href="78150a94f8"><code>78150a9</code></a> Add changelog for <a href="https://redirect.github.com/sass/embedded-host-node/issues/226">sass/embedded-host-node#226</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/1992">#1992</a>)</li>
<li><a href="e9e44d7edb"><code>e9e44d7</code></a> Emit comments in source order where possible (<a href="https://redirect.github.com/sass/dart-sass/issues/1989">#1989</a>)</li>
<li><a href="2bece76153"><code>2bece76</code></a> Un-skip a test (<a href="https://redirect.github.com/sass/dart-sass/issues/2028">#2028</a>)</li>
<li><a href="61af9ee0ac"><code>61af9ee</code></a> Use a common error handler for embedded protocol errors (<a href="https://redirect.github.com/sass/dart-sass/issues/2027">#2027</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.63.6...1.64.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.63.6&new-version=1.64.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 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-07-21 06:04:51 +00:00
Keepers
5ac0c135bd
single-line cleanup scripts in gh (#3871)
- [x] 🐛 Bugfix
 
#### Test Plan

- [x] 💚 E2E
2023-07-21 02:22:03 +00:00
Keepers
d555501093
add integration tests for missing drives (#3847)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3652

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-21 01:13:09 +00:00
Keepers
9359679f99
add api funcs for creating documentLibs (#3793)
Adds api handlers for creating document libraries in sharepoint. This is the first step in allowing us to restore drives that were deleted between backup and restore.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-20 21:05:30 +00:00
dependabot[bot]
e130f85da3
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.302 to 1.44.304 in /src (#3862)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.302 to 1.44.304.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.304 (2023-07-20)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/savingsplans</code>: Updates service documentation</li>
</ul>
<h1>Release v1.44.303 (2023-07-19)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cloudformation</code>: Updates service API and documentation
<ul>
<li>SDK and documentation updates for GetTemplateSummary API (unrecognized resources)</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service documentation
<ul>
<li>Amazon EC2 documentation updates.</li>
</ul>
</li>
<li><code>service/grafana</code>: Updates service API, documentation, and paginators</li>
<li><code>service/medical-imaging</code>: Adds new service</li>
<li><code>service/ram</code>: Updates service API and documentation</li>
<li><code>service/ssm-sap</code>: Updates service API and documentation</li>
<li><code>service/wafv2</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="beb9940dde"><code>beb9940</code></a> Release v1.44.304 (2023-07-20) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4920">#4920</a>)</li>
<li><a href="e4acaad3a1"><code>e4acaad</code></a> Release v1.44.303 (2023-07-19) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4918">#4918</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.302...v1.44.304">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.302&new-version=1.44.304)](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 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-07-20 18:45:19 +00:00
Abin Simon
dba6c2bf2c
Update CHANGELOG for 0.11.1 (#3863)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-07-20 07:49:03 +00:00
Vaibhav Kamra
fa79cd5a72
Only match with viper config if it was read (#3860)
Fix a regression introduced in 1ba103523ae. The `matchFromConfig` block should only be entered if we read config from viper.

---

#### 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. -->
* #3856 

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-07-20 05:19:10 +00:00
ashmrtn
2c6417d2eb
Kopia wrapper code to set retention parameters (#3792)
Code at the kopia wrapper layer that allows configuring kopia
for retention if desired. Includes some tests that require
running against a bucket with object locking enabled

---

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

* #3519

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-19 20:50:17 +00:00
dependabot[bot]
7bc35d3928
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.301 to 1.44.302 in /src (#3849)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.301 to 1.44.302.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.302 (2023-07-18)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/codeguru-security</code>: Updates service documentation</li>
<li><code>service/connect</code>: Updates service documentation</li>
<li><code>service/es</code>: Updates service API
<ul>
<li>Regex Validation on the ElasticSearch Engine Version attribute</li>
</ul>
</li>
<li><code>service/m2</code>: Updates service API and documentation</li>
<li><code>service/models.lex.v2</code>: Updates service API, documentation, and paginators</li>
<li><code>service/snowball</code>: Updates service API, documentation, paginators, and examples
<ul>
<li>Adds support for RACK_5U_C. This is the first AWS Snow Family device designed to meet U.S. Military Ruggedization Standards (MIL-STD-810H) with 208 vCPU device in a portable, compact 5U, half-rack width form-factor.</li>
</ul>
</li>
<li><code>service/translate</code>: Updates service documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e7bdeb8a79"><code>e7bdeb8</code></a> Release v1.44.302 (2023-07-18) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4915">#4915</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.301...v1.44.302">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.301&new-version=1.44.302)](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 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-07-19 07:11:26 +00:00
ashmrtn
22f990a709
Persist repo owner info in config (#3840)
If repo owner info is set then persist those values
in the config file. This is expected to apply only
to maintenance commands right now

---

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

* #3569

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-18 18:32:09 +00:00
Niraj Tolia
91e6108060
Publish CLI docs for maintenance (#3841)
#### Type of change

- [x] 🗺️ Documentation
2023-07-18 17:41:11 +00:00
Niraj Tolia
57125f3ea3
Trivial: Fix title capitalization for consistency (#3839)
#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation
2023-07-18 16:08:19 +00:00
Niraj Tolia
75a449fe6d
Fix line wrap and admonitions in maintenance docs (#3838)
No content changes


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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix
- [x] 🗺️ Documentation
2023-07-18 16:00:38 +00:00
dependabot[bot]
9f82d1ffe1
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.300 to 1.44.301 in /src (#3832)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.300 to 1.44.301.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.301 (2023-07-17)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/codeartifact</code>: Updates service documentation</li>
<li><code>service/docdb</code>: Updates service API and documentation
<ul>
<li>Added major version upgrade option in ModifyDBCluster API</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>Add Nitro TPM support on DescribeInstanceTypes</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API
<ul>
<li>Adding new supported permission type flags to get-unfiltered endpoints that callers may pass to indicate support for enforcing Lake Formation fine-grained access control on nested column attributes.</li>
</ul>
</li>
<li><code>service/ivs</code>: Updates service API and documentation</li>
<li><code>service/lakeformation</code>: Updates service API and documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e078cf7741"><code>e078cf7</code></a> Release v1.44.301 (2023-07-17) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4914">#4914</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.300...v1.44.301">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.300&new-version=1.44.301)](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 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-07-18 14:24:04 +00:00
Abin Simon
69c978b2a5
Update CHANGELOG.md for v0.11.0 release (#3833)
<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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. -->
* closes https://github.com/alcionai/corso/issues/3826

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-18 08:36:09 +00:00
ashmrtn
3efb67e110
First pass at documentation for maintenance (#3830)
Assumes the addition of `--user` and `--hostname` flags

Also unhides the maintenance command and mode flag

---

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

#### Issue(s)

* #3569

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-18 06:20:42 +00:00
ashmrtn
140381fb80
Allow setting repo user and hostname (#3831)
Allows sourcing info about repo user/hostname from
both the config file and flags for maintenance.
Since user/hostname mostly matters for maintenance
don't add the flags for all commands.

Do allow config file parameters for them since
that has a lot of repo-level information already.
Currently not setup to persist these values in the
config file

---

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

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

#### Issue(s)

* #3569

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-18 02:14:05 +00:00
ashmrtn
88bddf5c08
Add Restore options to side navbar (#3828)
Items in navbar appear in the order declared.

---

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

#### Issue(s)

* #3562

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-17 22:02:05 +00:00
neha_gupta
49f6f8c337
config info in doc (#3796)
<!-- PR description-->

- Use single inverted comma instead of double inverted comma in Powershell env vars.
- Update config file information in docs.  

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

- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🗺️ Documentation

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-17 16:19:21 +00:00
dependabot[bot]
99d6d42919
⬆️ Bump clsx from 1.2.1 to 2.0.0 in /website (#3815)
Bumps [clsx](https://github.com/lukeed/clsx) from 1.2.1 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/lukeed/clsx/releases">clsx's releases</a>.</em></p>
<blockquote>
<h2>v2.0.0</h2>
<h2>Breaking</h2>
<ul>
<li>Add <code>&quot;exports&quot;</code> map for native ESM support (<a href="https://redirect.github.com/lukeed/clsx/issues/57">#57</a>): 3ec8e9f, 0949868
<em>Also supports TypeScript's <code>node16</code>/<code>nodenext</code> module resolution</em>
<em>Maintains CommonJS support (with fixed TS definitions)</em>
<em>Thank you <a href="https://github.com/remcohaszing"><code>@​remcohaszing</code></a>~!</em></li>
</ul>
<h2>Chores</h2>
<ul>
<li>Add <a href="https://github.com/lukeed/clsx#tailwind-support">Tailwind Support</a> section to README (<a href="https://redirect.github.com/lukeed/clsx/issues/65">#65</a>, <a href="https://redirect.github.com/lukeed/clsx/issues/68">#68</a>): 496db1d, 4a4eadd
<em>Thank you <a href="https://github.com/kevinlowe0x3F7"><code>@​kevinlowe0x3F7</code></a> &amp; <a href="https://github.com/kevinlowe0x3F7"><code>@​kevinlowe0x3F7</code></a></em></li>
<li>Add tests for numbers &amp; variadic number arguments: c520353</li>
<li>Update package module size: 03e1cf9</li>
</ul>
<hr />
<blockquote>
<p><strong>Full Changelog</strong>: <a href="https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0">https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0</a></p>
</blockquote>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6232a9e564"><code>6232a9e</code></a> 2.0.0</li>
<li><a href="23b2ced389"><code>23b2ced</code></a> 2.0.0-next.0</li>
<li><a href="0949868388"><code>0949868</code></a> fix: include <code>*.d.mts</code> in pkg zip</li>
<li><a href="c520353bd6"><code>c520353</code></a> chore: add <code>numbers</code> tests;</li>
<li><a href="03e1cf9149"><code>03e1cf9</code></a> chore: update pkg size</li>
<li><a href="3ec8e9fa2f"><code>3ec8e9f</code></a> break: include &quot;exports&quot; map w/ &quot;types&quot; conditions (<a href="https://redirect.github.com/lukeed/clsx/issues/57">#57</a>)</li>
<li><a href="4a4eadd3e4"><code>4a4eadd</code></a> chore: readme typo (<a href="https://redirect.github.com/lukeed/clsx/issues/68">#68</a>)</li>
<li><a href="496db1dd74"><code>496db1d</code></a> chore: add Tailwind readme section (<a href="https://redirect.github.com/lukeed/clsx/issues/65">#65</a>)</li>
<li>See full diff in <a href="https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clsx&package-manager=npm_and_yarn&previous-version=1.2.1&new-version=2.0.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 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-07-17 16:13:55 +00:00
neha_gupta
dd325211f3
Longevity test- delete backup after n days (#3790)
<!-- PR description-->
Longevity Test- Delete the backups older than n no of days. Currently n's value is 5. 

---

#### Does this PR need a docs update or release note?
- [x]  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. -->
* https://github.com/alcionai/corso/issues/3679

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x]  Unit test
2023-07-17 08:04:08 +00:00
dependabot[bot]
1872f81d70
⬆️ Bump postcss from 8.4.25 to 8.4.26 in /website (#3816)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.25 to 8.4.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.26</h2>
<ul>
<li>Fixed clone methods types.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.26</h2>
<ul>
<li>Fixed clone methods types.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9b05f58f04"><code>9b05f58</code></a> Release 8.4.26 version</li>
<li><a href="b5a3b35a41"><code>b5a3b35</code></a> Better clone types</li>
<li><a href="7c638880b7"><code>7c63888</code></a> Simplify docs</li>
<li><a href="18e8461b0a"><code>18e8461</code></a> Update dependencies</li>
<li><a href="c42e20ba9d"><code>c42e20b</code></a> Revert Node#clone() type</li>
<li><a href="548bc9476e"><code>548bc94</code></a> Update plugin guide</li>
<li><a href="372856f6b3"><code>372856f</code></a> Remove old channels</li>
<li><a href="6ceaadd4a2"><code>6ceaadd</code></a> Run tests in parallel</li>
<li><a href="e935462dd8"><code>e935462</code></a> Update TS parser for ESLint</li>
<li>See full diff in <a href="https://github.com/postcss/postcss/compare/8.4.25...8.4.26">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.25&new-version=8.4.26)](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 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-07-17 05:28:31 +00:00
Keepers
0ec922577d
public cli and docs for intial advanced restore (#3769)
creates public docs and un-hides the advanced restore option cli flags.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562
2023-07-17 04:51:56 +00:00
Keepers
5a78f478a1
add operations test for adv rest (#3783)
ads operations level tests for advanced restore
configuration on all three services.
Code is largely boilerplate between each service, but with just enough quirks that full consolidation would require excess jumping through hoops.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3562

#### Test Plan

- [x] 💚 E2E
2023-07-17 03:56:08 +00:00
Keepers
09e5e9464a
add test for 503 resp body (#3812)
#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* closes #3811

#### Test Plan

- [x]  Unit test
2023-07-14 23:40:30 +00:00
Keepers
fd6dff3270
retry on http/2 stream errors (#3802)
http/2 stream error failures don't allow
us to leverage client middleware.  As a
result we're lacking a retry handler.  This
change adds retries for http_wrapper
in the explicit case of a http/2 stream
error.

---

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

- [x]  Yes, it's included

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2023-07-14 22:57:51 +00:00
Keepers
ab1cb1ebbc
add mask-data to but ticket log desc (#3810)
Request the user obscure their sensitive data when providing public logs.

---

#### Type of change

- [x] 🗺️ Documentation
2023-07-14 16:46:55 +00:00
Niraj Tolia
540f885aa0
Upgrade Docusaurus gtag plugin (#3809)
Somehow got missed by dependabot

---

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

- [x]  No

#### Type of change

- [x] 🗺️ Documentation
2023-07-14 15:29:19 +00:00
dependabot[bot]
6fadfca689
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.299 to 1.44.300 in /src (#3806)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.299 to 1.44.300.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.300 (2023-07-13)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cognito-idp</code>: Updates service API</li>
<li><code>service/connect</code>: Updates service API and documentation</li>
<li><code>service/datasync</code>: Updates service API and documentation</li>
<li><code>service/dms</code>: Updates service API and documentation
<ul>
<li>Enhanced PostgreSQL target endpoint settings for providing Babelfish support.</li>
</ul>
</li>
<li><code>service/ec2</code>: Updates service API
<ul>
<li>This release adds support for the C7gn and Hpc7g instances. C7gn instances are powered by AWS Graviton3 processors and the fifth-generation AWS Nitro Cards. Hpc7g instances are powered by AWS Graviton 3E processors and provide up to 200 Gbps network bandwidth.</li>
</ul>
</li>
<li><code>service/fsx</code>: Updates service API and documentation</li>
<li><code>service/iam</code>: Updates service documentation
<ul>
<li>Documentation updates for AWS Identity and Access Management (IAM).</li>
</ul>
</li>
<li><code>service/mediatailor</code>: Updates service API and documentation</li>
<li><code>service/personalize</code>: Updates service API and documentation</li>
<li><code>service/proton</code>: Updates service API, documentation, and paginators</li>
<li><code>service/s3</code>: Updates service API, documentation, and examples
<ul>
<li>S3 Inventory now supports Object Access Control List and Object Owner as available object metadata fields in inventory reports.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Amazon SageMaker Canvas adds WorkspeceSettings support for CanvasAppSettings</li>
</ul>
</li>
<li><code>service/secretsmanager</code>: Updates service documentation and examples
<ul>
<li>Documentation updates for Secrets Manager</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f219aebae1"><code>f219aeb</code></a> Release v1.44.300 (2023-07-13) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4909">#4909</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.299...v1.44.300">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.299&new-version=1.44.300)](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 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-07-14 07:09:54 +00:00
dependabot[bot]
5f6cb40187
⬆️ Bump tailwindcss from 3.3.2 to 3.3.3 in /website (#3808)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.2 to 3.3.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's releases</a>.</em></p>
<blockquote>
<h2>v3.3.3</h2>
<h3>Fixed</h3>
<ul>
<li>Fix issue where some pseudo-element variants generated the wrong selector (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10943">#10943</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10962">#10962</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11111">#11111</a>)</li>
<li>Make font settings propagate into buttons, inputs, etc. (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10940">#10940</a>)</li>
<li>Fix parsing of <code>theme()</code> inside <code>calc()</code> when there are no spaces around operators (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11157">#11157</a>)</li>
<li>Ensure <code>repeating-conic-gradient</code> is detected as an image (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11180">#11180</a>)</li>
<li>Move unknown pseudo-elements outside of <code>:is</code> by default (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11345">#11345</a>)</li>
<li>Escape animation names when prefixes contain special characters (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11470">#11470</a>)</li>
<li>Don't prefix arbitrary classes in <code>group</code> and <code>peer</code> variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11454">#11454</a>)</li>
<li>Sort classes using position of first matching rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11504">#11504</a>)</li>
<li>Allow variant to be an at-rule without a prelude (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11589">#11589</a>)</li>
<li>Make PostCSS plugin async to improve performance (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11548">#11548</a>)</li>
<li>Don’t error when a config file is missing (<a href="f97759f808">f97759f</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add <code>aria-busy</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10966">#10966</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Reset padding for <code>&lt;dialog&gt;</code> elements in preflight (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11069">#11069</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/v3.3.3/CHANGELOG.md">tailwindcss's changelog</a>.</em></p>
<blockquote>
<h2>[3.3.3] - 2023-07-13</h2>
<h3>Fixed</h3>
<ul>
<li>Fix issue where some pseudo-element variants generated the wrong selector (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10943">#10943</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10962">#10962</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11111">#11111</a>)</li>
<li>Make font settings propagate into buttons, inputs, etc. (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10940">#10940</a>)</li>
<li>Fix parsing of <code>theme()</code> inside <code>calc()</code> when there are no spaces around operators (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11157">#11157</a>)</li>
<li>Ensure <code>repeating-conic-gradient</code> is detected as an image (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11180">#11180</a>)</li>
<li>Move unknown pseudo-elements outside of <code>:is</code> by default (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11345">#11345</a>)</li>
<li>Escape animation names when prefixes contain special characters (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11470">#11470</a>)</li>
<li>Don't prefix arbitrary classes in <code>group</code> and <code>peer</code> variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11454">#11454</a>)</li>
<li>Sort classes using position of first matching rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11504">#11504</a>)</li>
<li>Allow variant to be an at-rule without a prelude (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11589">#11589</a>)</li>
<li>Make PostCSS plugin async to improve performance (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11548">#11548</a>)</li>
<li>Don’t error when a config file is missing (<a href="f97759f808">f97759f</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add <code>aria-busy</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/10966">#10966</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Reset padding for <code>&lt;dialog&gt;</code> elements in preflight (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/11069">#11069</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0bd81a06c4"><code>0bd81a0</code></a> 3.3.3</li>
<li><a href="6a6ceb5240"><code>6a6ceb5</code></a> Update changelog</li>
<li><a href="f97759f808"><code>f97759f</code></a> Don’t error when a config file is missing</li>
<li><a href="005c1be2ed"><code>005c1be</code></a> Don't prefix arbitrary classes in <code>peer</code>/<code>group</code> variants (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11454">#11454</a>)</li>
<li><a href="5b9cbb3a81"><code>5b9cbb3</code></a> Make PostCSS plugin async to improve performance (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11548">#11548</a>)</li>
<li><a href="1c9bb387e1"><code>1c9bb38</code></a> Allow variant to be an at-rule without a prelude (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11589">#11589</a>)</li>
<li><a href="80f3e85fa0"><code>80f3e85</code></a> Sort classes using position of first matching rule (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11504">#11504</a>)</li>
<li><a href="243226887f"><code>2432268</code></a> Reset dialog element styles (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/11069">#11069</a>)</li>
<li><a href="b885fff544"><code>b885fff</code></a> Add <code>aria-busy</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/10966">#10966</a>)</li>
<li><a href="1fb7486165"><code>1fb7486</code></a> Make font settings propagate into buttons, inputs, etc. (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/10940">#10940</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/tailwindlabs/tailwindcss/compare/v3.3.2...v3.3.3">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.3.2&new-version=3.3.3)](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 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-07-14 05:54:46 +00:00
dependabot[bot]
4955f223f7
⬆️ Bump docusaurus-plugin-image-zoom from 0.1.4 to 1.0.1 in /website (#3403)
Bumps [docusaurus-plugin-image-zoom](https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom) from 0.1.4 to 1.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/releases">docusaurus-plugin-image-zoom's releases</a>.</em></p>
<blockquote>
<h2>Release 1.0.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/24">#24</a> Removing types-only packages from peerDependencies (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h2>Release 1.0.0</h2>
<h4>🚀 Enhancement</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/23">#23</a> Ensuring dependencies for this package via validate-peer-dependencies (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/blob/main/CHANGELOG.md">docusaurus-plugin-image-zoom's changelog</a>.</em></p>
<blockquote>
<h2>v1.0.1 (2023-05-11)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/24">#24</a> Removing types-only packages from peerDependencies (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h2>v1.0.0 (2023-04-27)</h2>
<h4>🚀 Enhancement</h4>
<ul>
<li><a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/pull/23">#23</a> Ensuring dependencies for this package via validate-peer-dependencies (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
<h4>Committers: 1</h4>
<ul>
<li>Steve Calvert (<a href="https://github.com/scalvert"><code>@​scalvert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="1f5475f06a"><code>1f5475f</code></a> Release 1.0.1</li>
<li><a href="10aa19c092"><code>10aa19c</code></a> Merge pull request <a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/issues/24">#24</a> from gabrielcsapo/scalvert/remove-types-from-peer</li>
<li><a href="6067c37d60"><code>6067c37</code></a> Removing types-only packages from peerDependencies</li>
<li><a href="c5c863377f"><code>c5c8633</code></a> Release 1.0.0</li>
<li><a href="6ab3bd78ed"><code>6ab3bd7</code></a> Merge pull request <a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/issues/23">#23</a> from gabrielcsapo/move-to-dev-deps</li>
<li><a href="f637fbd959"><code>f637fbd</code></a> Ensuring dependencies for this package via validate-peer-dependencies</li>
<li><a href="d80832443c"><code>d808324</code></a> Update version-compatibility-test.yml</li>
<li><a href="707c07f4cf"><code>707c07f</code></a> Merge pull request <a href="https://redirect.github.com/gabrielcsapo/docusaurus-plugin-image-zoom/issues/22">#22</a> from gabrielcsapo/add-version-tester</li>
<li><a href="b4d70b9426"><code>b4d70b9</code></a> Adds docusaurus version tester</li>
<li>See full diff in <a href="https://github.com/gabrielcsapo/docusaurus-plugin-image-zoom/compare/v0.1.4...v1.0.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docusaurus-plugin-image-zoom&package-manager=npm_and_yarn&previous-version=0.1.4&new-version=1.0.1)](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 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>> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
2023-07-14 03:06:18 +00:00
dependabot[bot]
4588848048
⬆️ Bump @iconify/react from 4.1.0 to 4.1.1 in /website (#3681)
Bumps [@iconify/react](https://github.com/iconify/iconify/tree/HEAD/components/react) from 4.1.0 to 4.1.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/iconify/iconify/commits/HEAD/components/react">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@iconify/react&package-manager=npm_and_yarn&previous-version=4.1.0&new-version=4.1.1)](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 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-07-14 02:57:20 +00:00
dependabot[bot]
df0ece9242
⬆️ Bump sass from 1.63.4 to 1.63.6 in /website (#3663)
Bumps [sass](https://github.com/sass/dart-sass) from 1.63.4 to 1.63.6.
<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.63.6</h2>
<p>To install Sass 1.63.6, 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>
<h3>JavaScript API</h3>
<ul>
<li>Fix <code>import sass from 'sass'</code> again after it was broken in the last release.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix the <code>exports</code> declaration in <code>package.json</code>.</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1636">full changelog</a> for changes in earlier releases.</p>
<h2>Dart Sass 1.63.5</h2>
<p>To install Sass 1.63.5, 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>
<h3>JavaScript API</h3>
<ul>
<li>Fix a bug where loading the package through both CJS <code>require()</code> and ESM <code>import</code> could crash on Node.js.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Fix a deadlock when running at high concurrency on 32-bit systems.</p>
</li>
<li>
<p>Fix a race condition where the embedded compiler could deadlock or crash if a compilation ID was reused immediately after the compilation completed.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1635">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.63.6</h2>
<h3>JavaScript API</h3>
<ul>
<li>Fix <code>import sass from 'sass'</code> again after it was broken in the last release.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>Fix the <code>exports</code> declaration in <code>package.json</code>.</li>
</ul>
<h2>1.63.5</h2>
<h3>JavaScript API</h3>
<ul>
<li>Fix a bug where loading the package through both CJS <code>require()</code> and ESM
<code>import</code> could crash on Node.js.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>Fix a deadlock when running at high concurrency on 32-bit systems.</p>
</li>
<li>
<p>Fix a race condition where the embedded compiler could deadlock or crash if a
compilation ID was reused immediately after the compilation completed.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="658eb70b55"><code>658eb70</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2025">#2025</a>)</li>
<li><a href="b4e8a74a50"><code>b4e8a74</code></a> Use the new import name for the ESM default export (<a href="https://redirect.github.com/sass/dart-sass/issues/2026">#2026</a>)</li>
<li><a href="a48ced8ec9"><code>a48ced8</code></a> Fix a race condition with re-used compilation isolate IDs (<a href="https://redirect.github.com/sass/dart-sass/issues/2018">#2018</a>)</li>
<li><a href="62f29c8eca"><code>62f29c8</code></a> Update README: npm package does not support --embedded flag (<a href="https://redirect.github.com/sass/dart-sass/issues/2022">#2022</a>)</li>
<li><a href="cb4b442408"><code>cb4b442</code></a> Add a changelog entry for <a href="https://redirect.github.com/google/dart_cli_pkg/issues/132">google/dart_cli_pkg#132</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2020">#2020</a>)</li>
<li><a href="c41d52aa3b"><code>c41d52a</code></a> Bump protobuf and protoc_plugin (<a href="https://redirect.github.com/sass/dart-sass/issues/2021">#2021</a>)</li>
<li><a href="3fce74c1c5"><code>3fce74c</code></a> Update README: install with brew on macOS or Linux (<a href="https://redirect.github.com/sass/dart-sass/issues/2012">#2012</a>)</li>
<li><a href="b11840eaa1"><code>b11840e</code></a> Limit pool size (<a href="https://redirect.github.com/sass/dart-sass/issues/2019">#2019</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.63.4...1.63.6">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.63.4&new-version=1.63.6)](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 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-07-14 02:50:43 +00:00
dependabot[bot]
c29ab6e3ea
⬆️ Bump docusaurus-plugin-sass from 0.2.3 to 0.2.4 in /website (#3765)
Bumps [docusaurus-plugin-sass](https://github.com/rlamana/docusaurus-plugin-sass) from 0.2.3 to 0.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rlamana/docusaurus-plugin-sass/releases">docusaurus-plugin-sass's releases</a>.</em></p>
<blockquote>
<h2>v0.2.4</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: resolve sass-loader to avoid phantom dependencies by <a href="https://github.com/ChrisCindy"><code>@​ChrisCindy</code></a> in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/25">rlamana/docusaurus-plugin-sass#25</a></li>
<li>Bump semver from 7.3.5 to 7.5.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/31">rlamana/docusaurus-plugin-sass#31</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ChrisCindy"><code>@​ChrisCindy</code></a> made their first contribution in <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/pull/25">rlamana/docusaurus-plugin-sass#25</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.3...v0.2.4">https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.3...v0.2.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6aec796843"><code>6aec796</code></a> Update package.json</li>
<li><a href="9fe733f096"><code>9fe733f</code></a> Merge pull request <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/issues/31">#31</a> from rlamana/dependabot/npm_and_yarn/semver-7.5.3</li>
<li><a href="0e155d245c"><code>0e155d2</code></a> Bump semver from 7.3.5 to 7.5.3</li>
<li><a href="7ce5293e10"><code>7ce5293</code></a> Merge pull request <a href="https://redirect.github.com/rlamana/docusaurus-plugin-sass/issues/25">#25</a> from ChrisCindy/fix/resolve-sass-loader</li>
<li><a href="f2b9238640"><code>f2b9238</code></a> Update README.md</li>
<li><a href="acef0920ea"><code>acef092</code></a> fix: resolve sass-loader to avoid phantom dependencies</li>
<li>See full diff in <a href="https://github.com/rlamana/docusaurus-plugin-sass/compare/v0.2.3...v0.2.4">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docusaurus-plugin-sass&package-manager=npm_and_yarn&previous-version=0.2.3&new-version=0.2.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 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-07-14 02:45:09 +00:00
dependabot[bot]
6a79750374
⬆️ Bump postcss from 8.4.24 to 8.4.25 in /website (#3772)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.24 to 8.4.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.25</h2>
<ul>
<li>Improve stringify performance (by <a href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed docs (by <a href="https://github.com/vikaskaliramna07"><code>@​vikaskaliramna07</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.25</h2>
<ul>
<li>Improve stringify performance (by Romain Menke).</li>
<li>Fixed docs (by <a href="https://github.com/vikaskaliramna07"><code>@​vikaskaliramna07</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="62e8108ffa"><code>62e8108</code></a> Release 8.4.25 version</li>
<li><a href="431c51b9e4"><code>431c51b</code></a> Update dependencies and code style</li>
<li><a href="8b54e60df8"><code>8b54e60</code></a> Clean up docs</li>
<li><a href="4b2190bca7"><code>4b2190b</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1850">#1850</a> from vikaskaliramna07/main</li>
<li><a href="87e6dc825d"><code>87e6dc8</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1848">#1848</a> from romainmenke/reduce-calls-to-node-toString--ambi...</li>
<li><a href="492f474104"><code>492f474</code></a> reduce calls to Node.prototype.toString()</li>
<li><a href="300348fb9c"><code>300348f</code></a> Merge branch 'main' of <a href="https://github.com/vikaskaliramna07/postcss">https://github.com/vikaskaliramna07/postcss</a></li>
<li><a href="3eb1e03283"><code>3eb1e03</code></a> Update lib/comment.d.ts</li>
<li><a href="37cfddc3fe"><code>37cfddc</code></a> lib/declaration.d.ts: updated documentation for <code>important</code></li>
<li><a href="affc86dfc8"><code>affc86d</code></a> updated external link documentation</li>
<li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.4.24...8.4.25">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.4.24&new-version=8.4.25)](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 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-07-14 02:40:31 +00:00
dependabot[bot]
ab11758a97
⬆️ Bump mermaid from 10.2.3 to 10.2.4 in /website (#3773)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.2.3 to 10.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mermaid-js/mermaid/releases">mermaid's releases</a>.</em></p>
<blockquote>
<h2>10.2.4</h2>
<h2>Features</h2>
<ul>
<li>Add Plausible analytics to mermaid.js.org by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4473">mermaid-js/mermaid#4473</a></li>
<li>Support for development in Docker by <a href="https://github.com/nirname"><code>@​nirname</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4478">mermaid-js/mermaid#4478</a></li>
<li>standardize info diagram definitions by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4486">mermaid-js/mermaid#4486</a></li>
<li>Change C4 stereotype braces from ASCII <!-- raw HTML omitted --> to Unicode «/» by <a href="https://github.com/jonathan-r-young"><code>@​jonathan-r-young</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4460">mermaid-js/mermaid#4460</a></li>
<li>Add coverage for E2E tests by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4498">mermaid-js/mermaid#4498</a></li>
<li>set normal mode for vitest coverage by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4505">mermaid-js/mermaid#4505</a></li>
<li>Use v8 coverage in vitest by <a href="https://github.com/sidharthv96"><code>@​sidharthv96</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4560">mermaid-js/mermaid#4560</a></li>
<li>feat(flowchart): add classDef style group definition by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/3923">mermaid-js/mermaid#3923</a></li>
<li>add cypress coverage clean by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4556">mermaid-js/mermaid#4556</a></li>
<li>fix(class): keep members in namespace classes by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4532">mermaid-js/mermaid#4532</a></li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Add hint on &quot;flowchart&quot; and &quot;graph&quot; by <a href="https://github.com/koppor"><code>@​koppor</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4096">mermaid-js/mermaid#4096</a></li>
<li>fix(flowchart): apply style on doublecircle by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4540">mermaid-js/mermaid#4540</a></li>
<li>fix not rendered style when style is optional by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4528">mermaid-js/mermaid#4528</a></li>
<li>fix(flowchart): allow multiple vertices with style by <a href="https://github.com/tomperr"><code>@​tomperr</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4553">mermaid-js/mermaid#4553</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li>change REAMDME.md coverage from coveralls into codecov by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4507">mermaid-js/mermaid#4507</a></li>
<li>Update latest news section by <a href="https://github.com/huynhicode"><code>@​huynhicode</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4468">mermaid-js/mermaid#4468</a></li>
<li>Fix link to Tutorials from n00b-overview page by <a href="https://github.com/Spiderpig86"><code>@​Spiderpig86</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4472">mermaid-js/mermaid#4472</a></li>
<li>Fix Directives Documentation by <a href="https://github.com/adamazing"><code>@​adamazing</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4475">mermaid-js/mermaid#4475</a></li>
<li>Correct &quot;Bronze&quot; spelling in timeline docs by <a href="https://github.com/adamazing"><code>@​adamazing</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4467">mermaid-js/mermaid#4467</a></li>
<li>Document recommended file extension and MIME type docs by <a href="https://github.com/bollwyvl"><code>@​bollwyvl</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4485">mermaid-js/mermaid#4485</a></li>
<li>Fix typo in quadrant chart documentation by <a href="https://github.com/tobie"><code>@​tobie</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4512">mermaid-js/mermaid#4512</a></li>
<li>fix cspell issues in *.md files by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4531">mermaid-js/mermaid#4531</a></li>
<li>docs: Howto on foreground color on timelines by <a href="https://github.com/mcbeelen"><code>@​mcbeelen</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4524">mermaid-js/mermaid#4524</a></li>
<li>Add citation.cff file by <a href="https://github.com/schackartk"><code>@​schackartk</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4521">mermaid-js/mermaid#4521</a></li>
<li>Update Tutorials.md by <a href="https://github.com/ellenealds"><code>@​ellenealds</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4539">mermaid-js/mermaid#4539</a></li>
<li>Add Standard Notes extension in integrations page by <a href="https://github.com/nienow"><code>@​nienow</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4557">mermaid-js/mermaid#4557</a></li>
<li>Fix up Gantt Chart demo by <a href="https://github.com/AlexMooney"><code>@​AlexMooney</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4561">mermaid-js/mermaid#4561</a></li>
</ul>
<h2>Chore</h2>
<ul>
<li>Update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4482">mermaid-js/mermaid#4482</a></li>
<li>chore: revise Contributing documentation by <a href="https://github.com/weedySeaDragon"><code>@​weedySeaDragon</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/3814">mermaid-js/mermaid#3814</a></li>
<li>chore(deps): update all minor dependencies (minor) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4435">mermaid-js/mermaid#4435</a></li>
<li>fix(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4510">mermaid-js/mermaid#4510</a></li>
<li>fix(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4535">mermaid-js/mermaid#4535</a></li>
<li>chore(deps): update dependency eslint-plugin-jsdoc to v46 by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4544">mermaid-js/mermaid#4544</a></li>
<li>chore(deps): update dependency jsdom to v22 by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4546">mermaid-js/mermaid#4546</a></li>
<li>chore(deps): update dependency eslint-plugin-unicorn to v47 by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4545">mermaid-js/mermaid#4545</a></li>
<li>chore(deps): update dependency workbox-window to v7 by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4547">mermaid-js/mermaid#4547</a></li>
<li>chore(deps): update node.js to v20 by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4548">mermaid-js/mermaid#4548</a></li>
<li>fix(deps): update all patch dependencies (patch) by <a href="https://github.com/renovate"><code>@​renovate</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4543">mermaid-js/mermaid#4543</a></li>
<li>add <code>Suggested Solutions</code> field in <code>bug_report.yml</code> by <a href="https://github.com/Yokozuna59"><code>@​Yokozuna59</code></a> in <a href="https://redirect.github.com/mermaid-js/mermaid/pull/4541">mermaid-js/mermaid#4541</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="453b337e6e"><code>453b337</code></a> Updated mermaid version to 10.2.4</li>
<li><a href="8066d94c1d"><code>8066d94</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4560">#4560</a> from mermaid-js/sidv/v8Coverage</li>
<li><a href="3a03070f5d"><code>3a03070</code></a> Merge branch 'develop' into sidv/v8Coverage</li>
<li><a href="562910e831"><code>562910e</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4532">#4532</a> from tomperr/fix/4519-namespace-lose-members</li>
<li><a href="85fdbab6b9"><code>85fdbab</code></a> Update docs</li>
<li><a href="3fac8d7be5"><code>3fac8d7</code></a> Merge pull request <a href="https://redirect.github.com/mermaid-js/mermaid/issues/4561">#4561</a> from AlexMooney/patch-1</li>
<li><a href="47db1a3c9f"><code>47db1a3</code></a> Cleanup</li>
<li><a href="491f8c1259"><code>491f8c1</code></a> Clean up some spacing in examples</li>
<li><a href="83bda9febd"><code>83bda9f</code></a> Correct the Gantt milestones example</li>
<li><a href="0d833fb4ce"><code>0d833fb</code></a> Use v8 coverage</li>
<li>Additional commits viewable in <a href="https://github.com/mermaid-js/mermaid/compare/v10.2.3...v10.2.4">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mermaid&package-manager=npm_and_yarn&previous-version=10.2.3&new-version=10.2.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 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-07-14 02:35:15 +00:00
dependabot[bot]
4d4500776b
⬆️ Bump semver from 5.7.1 to 5.7.2 in /website (#3782)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/npm/node-semver/releases">semver's releases</a>.</em></p>
<blockquote>
<h2>v5.7.2</h2>
<h2><a href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">5.7.2</a> (2023-07-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a href="2f8fd41487"><code>2f8fd41</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/585">#585</a> better handling of whitespace (<a href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>) (<a href="https://github.com/joaomoreno"><code>@​joaomoreno</code></a>, <a href="https://github.com/lukekarrys"><code>@​lukekarrys</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md">semver's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">5.7.2</a> (2023-07-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a href="2f8fd41487"><code>2f8fd41</code></a> <a href="https://redirect.github.com/npm/node-semver/pull/585">#585</a> better handling of whitespace (<a href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>) (<a href="https://github.com/joaomoreno"><code>@​joaomoreno</code></a>, <a href="https://github.com/lukekarrys"><code>@​lukekarrys</code></a>)</li>
</ul>
<h2>5.7</h2>
<ul>
<li>Add <code>minVersion</code> method</li>
</ul>
<h2>5.6</h2>
<ul>
<li>Move boolean <code>loose</code> param to an options object, with
backwards-compatibility protection.</li>
<li>Add ability to opt out of special prerelease version handling with
the <code>includePrerelease</code> option flag.</li>
</ul>
<h2>5.5</h2>
<ul>
<li>Add version coercion capabilities</li>
</ul>
<h2>5.4</h2>
<ul>
<li>Add intersection checking</li>
</ul>
<h2>5.3</h2>
<ul>
<li>Add <code>minSatisfying</code> method</li>
</ul>
<h2>5.2</h2>
<ul>
<li>Add <code>prerelease(v)</code> that returns prerelease components</li>
</ul>
<h2>5.1</h2>
<ul>
<li>Add Backus-Naur for ranges</li>
<li>Remove excessively cute inspection methods</li>
</ul>
<h2>5.0</h2>
<ul>
<li>Remove AMD/Browserified build artifacts</li>
<li>Fix ltr and gtr when using the <code>*</code> range</li>
<li>Fix for range <code>*</code> with a prerelease identifier</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f8cc313550"><code>f8cc313</code></a> chore: release 5.7.2</li>
<li><a href="2f8fd41487"><code>2f8fd41</code></a> fix: better handling of whitespace (<a href="https://redirect.github.com/npm/node-semver/issues/585">#585</a>)</li>
<li><a href="deb5ad51bf"><code>deb5ad5</code></a> chore: <code>@​npmcli/template-oss</code><a href="https://github.com/4"><code>@​4</code></a>.16.0</li>
<li>See full diff in <a href="https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~lukekarrys">lukekarrys</a>, a new releaser for semver since your current version.</p>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=semver&package-manager=npm_and_yarn&previous-version=5.7.1&new-version=5.7.2)](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 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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/alcionai/corso/network/alerts).
</details>
2023-07-14 02:29:47 +00:00
ashmrtn
4b99c108a5
Upgrade to golangci-lint 1.53.3 (#3800)
#### 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-07-14 02:10:51 +00:00
Keepers
e60610193c
specify sharepoint restore libraries (#3801)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💚 E2E
2023-07-14 01:21:53 +00:00
ashmrtn
4d4f5dc934
Add linter for struct tags (#3791)
Ensures some formatting for tags and also checks that tag keys match the given set

---

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

#### Issue(s)

* #3654

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-12 16:52:50 +00:00
neha_gupta
73a6ff7839
avoid provider check in init (#3764)
<!-- PR description-->

do not check for provider in init command

#### 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.-->
- [ ]  Unit test
2023-07-12 14:57:02 +00:00
Abhishek Pandey
19d56b1e29
Return original read closer if no extension factories are supplied (#3784)
<!-- PR description-->

As title

---

#### 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
- [x]  Unit test
- [x] 💚 E2E
2023-07-11 21:46:33 +00:00
dependabot[bot]
3b9effdf93
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.298 to 1.44.299 in /src (#3785)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.298 to 1.44.299.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.299 (2023-07-11)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/cognito-idp</code>: Updates service API</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="633dbc1aad"><code>633dbc1</code></a> Release v1.44.299 (2023-07-11) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4906">#4906</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.298...v1.44.299">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.298&new-version=1.44.299)](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 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-07-11 06:04:52 +00:00
ashmrtn
83c18e5276
Add tests that boomerang items (#3779)
Add a test that will fail if something is wrong with tracking items that are moved from a folder to a different folder and back to the original folder between incremental backups. This is important as it will help us ensure we don't accidentally turn on Exchange immutable IDs before they're fixed on the Graph side

Only tests Exchange mail and OneDrive/SharePoint as other Exchange data types don't support move operations via Graph API (it is possible to move events between calendars in the web UI though)

Manually tested to ensure it does actually fail if immutable IDs are enabled

---

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

* closes #3755

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-11 00:18:19 +00:00
ashmrtn
87b8631037
Fixups for comparing details to expected set (#3778)
Collection of fixes to get tests passing again including:
* ensure expected sets are tracked for the lifetime of the struct
* add check that will fail if there's no expected deets to compare against
* minor fixups to path building when reading in an entire details file
* trim down data sent for patch operations to only the data that's changed
* update how expected items are gathered -- just pull it from graph directly
* update expected written items for OneDrive -- most likely due to matching both test folders (e.x. `corso_incr_test_1` and `corso_incr_test_1/corso_incr_test_1`)

---

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

#### Issue(s)

* closes #3777

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-10 23:46:13 +00:00
neha_gupta
232050fb44
Longetivity test (#3752)
<!-- PR description-->
Longevity test to run backup and send notification of test failure

---

#### Does this PR need a docs update or release note?
- [x]  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. -->
* https://github.com/alcionai/corso/issues/3679

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-10 23:24:36 +00:00
ashmrtn
97c10cbc68
Skip failing SharePoint pages tests (#3781)
The SharePoint pages code is neither available from the CLI nor maintained right now. When the code is maintained again the tests can be unskipped.

---

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

* #3780

#### Test Plan

- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-10 21:29:27 +00:00
Abin Simon
b1a5625dc8
Remove event instance backup issue from known issues (#3775)
Missed removing this from the known issues list when the issue was fixed.

<!-- PR description-->

---

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

- [ ]  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
- [ ] 🗺️ 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-07-10 15:39:43 +00:00
dependabot[bot]
eb6f357bbd
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.297 to 1.44.298 in /src (#3774)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.297 to 1.44.298.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.298 (2023-07-07)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/dms</code>: Updates service API, documentation, and paginators
<ul>
<li>Releasing DMS Serverless. Adding support for PostgreSQL 15.x as source and target endpoint. Adding support for DocDB Elastic Clusters with sharded collections, PostgreSQL datatype mapping customization and disabling hostname validation of the certificate authority in Kafka endpoint settings</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>This release enables customers to create new Apache Iceberg tables and associated metadata in Amazon S3 by using native AWS Glue CreateTable operation.</li>
</ul>
</li>
<li><code>service/logs</code>: Updates service API and documentation
<ul>
<li>Add CMK encryption support for CloudWatch Logs Insights query result data</li>
</ul>
</li>
<li><code>service/medialive</code>: Updates service API and documentation
<ul>
<li>This release enables the use of Thumbnails in AWS Elemental MediaLive.</li>
</ul>
</li>
<li><code>service/mediatailor</code>: Updates service API and documentation</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>aws/credentials/ssocreds</code>: Implement SSO token provider support for <code>sso-session</code> in AWS shared config.
<ul>
<li>Fixes <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4649">4649</a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ad6ab230f2"><code>ad6ab23</code></a> Release v1.44.298 (2023-07-07) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4904">#4904</a>)</li>
<li><a href="6e85489181"><code>6e85489</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4883">#4883</a> from atishpatel/main</li>
<li><a href="d7444686ce"><code>d744468</code></a> Add sso session and token provider support  (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4885">#4885</a>)</li>
<li><a href="7990455113"><code>7990455</code></a> make ProcessProviderOptions optional with if statement</li>
<li><a href="17ee3e0a49"><code>17ee3e0</code></a> expose ProcessProviderOptions when creating a session</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.297...v1.44.298">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.297&new-version=1.44.298)](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 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-07-10 06:16:19 +00:00
neha_gupta
9f334f7d30
remove getting s3 config from envvars (#3757)
<!-- PR description-->

S3 configs like BUCKET and PREFIX are common env vars and can cause overkills. Remove these S3 configs to avoid confusion.

#### 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.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-07 06:15:18 +00:00
Abhishek Pandey
83e56ed396
Integrate extensions into drive item reader (#3750)
<!-- PR description-->

* Integrates corso extensions into onedrive/sharepoint library item backup flows.
* Also includes integration tests for OD/SP, unit tests for collections.
* Includes a small fix for `rw *backupStreamReader Close()`

Remaining things which will be covered in later PRs:
* extension tests with incremental backups
* Observability related changes for extensions

---

#### 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. -->
* internal
#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-07-06 23:01:18 +00:00
Keepers
5ea194dc87
tweaks and fixes found while testing (#3735)
a variety of small updates that came
from manual testing of restore with various
collision and destination combinations.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3562

#### Test Plan

- [x] 💪 Manual
2023-07-06 22:24:26 +00:00
dependabot[bot]
1255f06aed
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.296 to 1.44.297 in /src (#3763)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.296 to 1.44.297.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.297 (2023-07-06)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/ec2</code>: Updates service API and documentation
<ul>
<li>Add Nitro Enclaves support on DescribeInstanceTypes</li>
</ul>
</li>
<li><code>service/location</code>: Updates service API and documentation</li>
<li><code>service/outposts</code>: Updates service API, documentation, and paginators</li>
<li><code>service/quicksight</code>: Updates service API and documentation
<ul>
<li>This release includes below three changes: small multiples axes improvement, field based coloring, removed required trait from Aggregation function for TopBottomFilter.</li>
</ul>
</li>
<li><code>service/rds</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>Updates Amazon RDS documentation for creating DB instances and creating Aurora global clusters.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="75e508d32b"><code>75e508d</code></a> Release v1.44.297 (2023-07-06) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4903">#4903</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.296...v1.44.297">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.296&new-version=1.44.297)](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 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-07-06 21:04:02 +00:00
Keepers
39a93e9054
move default folder consts to api (#3734)
only code movement, no logic changes

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-06 20:25:06 +00:00
Keepers
2a150cc610
add counter for skip-collision counting (#3722)
Introduces a counting bus, and threads it into restore operations so that we can count the number of
collision skips that occur.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-06 19:22:02 +00:00
Keepers
f58cc90958
fix restore to dest with leading slash (#3713)
restoring to "--destination /foo" errors, since
drive folders aren't allowed to contain leading
slashes in their name.  This PR oversteps the
correction a little to remove the leading slash
prefix from all destination declarations.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-06 18:25:18 +00:00
dependabot[bot]
597a51c6bc
⬆️ Bump golang.org/x/tools from 0.10.0 to 0.11.0 in /src (#3760)
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.10.0 to 0.11.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.11.0</h2>
<p>This is a small release containing new integrations of vulnerability analysis.</p>
<p>Vulnerability analysis for go.mod files can be enabled by configuring the <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#vulncheck-enum"><code>&quot;vulncheck&quot;</code></a> setting to <code>&quot;Imports&quot;</code>. For more information on vulnerability management, see the <a href="https://go.dev/blog/vuln">Vulnerability Management for Go</a> blog post.</p>
<h2>Support changes</h2>
<p>This release removes support for the <code>&quot;experimentalUseInvalidMetadata&quot;</code> setting, as described in the <a href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.10.0">v0.10.0</a> release. Other settings slated for deprecation in that release remain temporarily supported, but will be removed in v0.12.0.</p>
<h2>New Features</h2>
<h3>Analyzing dependencies for vulnerabilities</h3>
<p>This release offers two different options for detecting vulnerabilities in dependencies. Both are backed by the Go vulnerability database (<a href="https://vuln.go.dev">https://vuln.go.dev</a>) and complement each other.</p>
<ul>
<li>Imports-based scanning, enabled by the <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#vulncheck-enum"><code>&quot;vulncheck&quot;: &quot;Imports&quot;</code></a> setting, reports vulnerabilities by scanning the set of packages imported in the workspace. This is fast, but may report more false positives.</li>
<li>Integration of the <a href="https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck">golang.org/x/vuln/cmd/govulncheck</a> command-line tool performs a more precise analysis based on-call graph reachability, with fewer false positives. Because it is slower to compute, it must be manually triggered by using &quot;Run govulncheck to verify&quot; code actions or the <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#run-govulncheck"><code>&quot;codelenses.run_govulncheck&quot;</code></a> code lens on <code>go.mod</code> files.</li>
</ul>
<p><a href="https://user-images.githubusercontent.com/4999471/206977512-a821107d-9ffb-4456-9b27-6a6a4f900ba6.mp4">https://user-images.githubusercontent.com/4999471/206977512-a821107d-9ffb-4456-9b27-6a6a4f900ba6.mp4</a></p>
<!-- raw HTML omitted -->
<h3>Additional checks for the <code>loopclosure</code> analyzer</h3>
<p>The <a href="https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md#loopclosure"><code>loopclosure</code></a> analyzer, which reports problematic references from a nested function to a variable of an enclosing loop, has been improved to catch more cases. In particular, it now reports when subtests <a href="https://pkg.go.dev/testing#T.Parallel">run in parallel</a> with the loop, a mistake that often results in all but the final test case being skipped.</p>
<p><img src="https://user-images.githubusercontent.com/57144380/206764370-7fc3c464-af04-4e4e-bb10-a6a0a89a99e3.png" alt="image" /></p>
<h2>Configuration changes</h2>
<ul>
<li>The <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#vulncheck-enum"><code>&quot;vulncheck&quot;</code></a> setting controls vulnerability analysis based on the Go vulnerability database. If set to <code>&quot;Imports&quot;</code>, gopls will compute diagnostics related to vulnerabilities in dependencies, and will present them in go.mod files.</li>
<li>The <a href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#run-govulncheck"><code>&quot;codelenses.run_govulncheck&quot;</code></a> setting controls the presence of code lenses that run the <a href="https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck">govulncheck</a> command, which takes longer but produces more accurate vulnerability reporting based on call-graph reachability.</li>
</ul>
<h2>Bug fixes</h2>
<p>This version of gopls includes fixes to several bugs, notably:</p>
<ul>
<li><code>golang/go#57053</code></li>
<li><code>golang/go#55837</code><a href="https://redirect.github.com/golang/go/issues/56450">golang/go#56450</a>).</li>
<li><code>golang/go#54816</code></li>
</ul>
<p>A full list of all issues fixed can be found in the <a href="https://github.com/golang/go/milestone/293?closed=1">gopls/v0.11.0</a> milestone.
To report a new problem, please file a new issue at <a href="https://go.dev/issues/new">https://go.dev/issues/new</a>.</p>
<h2>Thank you to our contributors</h2>
<p><a href="https://github.com/Arsen6331"><code>@​Arsen6331</code></a>, <a href="https://github.com/SN9NV"><code>@​SN9NV</code></a>, <a href="https://github.com/adonovan"><code>@​adonovan</code></a>, <a href="https://github.com/bcmills"><code>@​bcmills</code></a>, <a href="https://github.com/dle8"><code>@​dle8</code></a>, <a href="https://github.com/findleyr"><code>@​findleyr</code></a>, <a href="https://github.com/hyangah"><code>@​hyangah</code></a>, <a href="https://github.com/pjweinbgo"><code>@​pjweinbgo</code></a>, <a href="https://github.com/suzmue"><code>@​suzmue</code></a></p>
<h2>gopls/v0.10.1</h2>
<p>This release contains a fix for <a href="https://redirect.github.com/golang/go/issues/56505">golang/go#56505</a>: a new crash during method completion on variables of type <code>*error</code>.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="675bf3c243"><code>675bf3c</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="ad52c1ca35"><code>ad52c1c</code></a> go/ssa/interp: support conversions to slices of named bytes</li>
<li><a href="14ec3c023f"><code>14ec3c0</code></a> gopls/doc/contributing.md: document error handling strategies</li>
<li><a href="c495364167"><code>c495364</code></a> go/packages/gopackages: document -mode flag</li>
<li><a href="87ad891fe3"><code>87ad891</code></a> gopls/internal/lsp/source/typerefs: move test into _test.go</li>
<li><a href="27fd94e099"><code>27fd94e</code></a> internal/fastwalk: doc formatting fixes (including godoc links)</li>
<li><a href="d362be0cdb"><code>d362be0</code></a> gopls/internal/lsp/filecache: reduce GC frequency</li>
<li><a href="969078be46"><code>969078b</code></a> Revert &quot;go/analysis: add Sizes that matches gc size computations&quot;</li>
<li><a href="5aa6acb96f"><code>5aa6acb</code></a> go/analysis: add Sizes that matches gc size computations</li>
<li><a href="5a89a3bf26"><code>5a89a3b</code></a> go/vcs: delete</li>
<li>Additional commits viewable in <a href="https://github.com/golang/tools/compare/v0.10.0...v0.11.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.10.0&new-version=0.11.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 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-07-06 17:45:51 +00:00
Keepers
24c590040b
adds cli flags for restore config (#3704)
implements cli integration for configuring restore operation collision policy and restore destination.

flags are hidden and will be made visible at a later time.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-06 17:15:04 +00:00
dependabot[bot]
a48b5f415c
⬆️ Bump golang.org/x/net from 0.11.0 to 0.12.0 in /src (#3759)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.11.0 to 0.12.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="c73c09c390"><code>c73c09c</code></a> go.mod: update golang.org/x dependencies</li>
<li><a href="4fc2eb9973"><code>4fc2eb9</code></a> http2: revert Transport change from CL 486156</li>
<li><a href="63727cc582"><code>63727cc</code></a> http2: validate Host header before sending</li>
<li><a href="1bb09e6b1e"><code>1bb09e6</code></a> quic: pass the connection ID length into 1-RTT packet parsing</li>
<li><a href="952fc9c67e"><code>952fc9c</code></a> quic: move ack_delay_exponent handling out of frame parsing</li>
<li><a href="02fe9a5973"><code>02fe9a5</code></a> quic: loss detection</li>
<li><a href="c8a2c5a181"><code>c8a2c5a</code></a> quic: remove stray debugging print</li>
<li><a href="5d50b4094a"><code>5d50b40</code></a> quic: add packetFate enum</li>
<li><a href="ee81e8c8e8"><code>ee81e8c</code></a> quic: correct rttvar updates</li>
<li><a href="ab184e6fa8"><code>ab184e6</code></a> quic: rename side type to connSide</li>
<li>Additional commits viewable in <a href="https://github.com/golang/net/compare/v0.11.0...v0.12.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.11.0&new-version=0.12.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 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-07-06 16:16:17 +00:00
Keepers
8ba79709a6
split tester into separate files (#3762)
This is primarily an exercise in reducing the number of circular imports we get from adding the tester package to other packages.

No logic changes.  Purely movement/renaming.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-06 15:43:57 +00:00
dependabot[bot]
5ff4ce9b19
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.295 to 1.44.296 in /src (#3761)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.295 to 1.44.296.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.296 (2023-07-05)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/comprehendmedical</code>: Updates service documentation</li>
<li><code>service/connect</code>: Updates service documentation</li>
<li><code>service/kms</code>: Updates service API and documentation
<ul>
<li>Added Dry Run Feature to cryptographic and cross-account mutating KMS APIs (14 in all). This feature allows users to test their permissions and parameters before making the actual API call.</li>
</ul>
</li>
<li><code>service/mgn</code>: Updates service API, documentation, and paginators</li>
<li><code>service/securityhub</code>: Updates service documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="86f50a461f"><code>86f50a4</code></a> Release v1.44.296 (2023-07-05) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4902">#4902</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.295...v1.44.296">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.295&new-version=1.44.296)](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 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-07-06 15:07:17 +00:00
Keepers
fe6ae28b68
distribute operations integration tests (#3706)
Moves operations integration backup tests into a
subpackage, and slices up the test folder into
multiple, service specific folders.

No logic changes, only code copy-pasting and
renaming.

---

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

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💚 E2E
2023-07-05 22:19:04 +00:00
Keepers
8cc3069a6a
ensure od and exchange can restore in-place (#3703)
Adds changes (mostly to exchange) that allow in- place item restoration.  Onedrive basically already supported in-place restores, however we weren't attempting them.  Exchange needed full support of GetContainerByName across its categories.

Next steps: add CLI integration to simplify manual testing.  Then add automation testing to exercise all in-place restore conditions and configurations.

---

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

- [x] 🕐 Yes, but in a later PR

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-05 21:44:55 +00:00
Abhishek Pandey
6fff3f7d1d
Refactor populateItems (#3732)
<!-- PR description-->

Benefits:
* Narrowed scope & better testability. 
* Preps it for follow up PRs which will inject per-item corso extension interfaces
* Not adding unit tests yet, as the args & outputs of this new function will change in a follow up 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
2023-07-05 18:52:21 +00:00
Abhishek Pandey
b0d3d4f3ee
Expose corso extensions via options (#3746)
<!-- PR description-->
Two changes:
1. Add a new field to `control.Options` to allow SDK users to supply item extension factories.
2. Move repository pkg tests from `repository_test.go` to `repository.go`. Reason is that having a separate test package prevents us from verifying state of underlying implementations (e.g. state of `repository.repository` struct). 

---

#### 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. -->
* internal

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-05 17:53:24 +00:00
neha_gupta
e69d389aaa
ignore provider check in init repo (#3753)
<!-- PR description-->

don't check after fetching account type for repo init command

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

- [x]  No

#### Type of change

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

#### Issue(s)

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


#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x]  Unit test
2023-07-05 06:43:05 +00:00
dependabot[bot]
cce7d4e0ad
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.294 to 1.44.295 in /src (#3751)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.294 to 1.44.295.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.295 (2023-07-03)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/batch</code>: Updates service API and documentation
<ul>
<li>This feature allows customers to use AWS Batch with Linux with ARM64 CPU Architecture and X86_64 CPU Architecture with Windows OS on Fargate Platform.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>SageMaker Inference Recommender now accepts new fields SupportedEndpointType and ServerlessConfiguration to support serverless endpoints.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c5d956a9e2"><code>c5d956a</code></a> Release v1.44.295 (2023-07-03) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4901">#4901</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.294...v1.44.295">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.294&new-version=1.44.295)](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 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-07-04 14:45:32 +00:00
neha_gupta
09f3196ee0
Onedrive restore- handle unknown path error (#3643)
<!-- PR description-->
 In case of Onedrive Restore give a proper message if the path provided do not exist or restore is done on empty backup.

---

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

- [x]  No

#### Type of change

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

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

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
2023-07-04 11:37:16 +00:00
neha_gupta
ed1f8640fc
Test cases for fetching configs from config file and flags (#3727)
<!-- PR description-->

Add test-cases to fetch config values from config file or flags

#### 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.-->
- [ ]  Unit test
2023-07-04 06:40:22 +00:00
neha_gupta
1ba103523a
Fix nightly test (#3739)
<!-- 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.-->
- [x] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-04 06:12:17 +00:00
neha_gupta
be500e9b92
Longevity test (#3740)
<!-- PR description-->

Longevity test which runs every night on same repo with the latest release code.  

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

- [ ]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🧹 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>](https://github.com/alcionai/corso/issues/3679)

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
2023-07-04 05:50:56 +00:00
Keepers
662d626809
handle file-folder collision cases (#3688)
handle onedrive item collision cases where a file to be restored is in conflict with an existing folder. Skip and Copy will function normally.  For Replace behavior, we'll defer to Copy in this situation, so that the file gets restored without changing or deleting the folder.  If a folder creation attempts to replace an item, we do a similar action and make a renamed copy of the folder instead.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-04 02:34:53 +00:00
Keepers
411be17b17
update deprecated flag (#3742)
Updating a deprecated flag in the binary publish action.
2023-07-04 01:59:43 +00:00
Keepers
70bc241831
Add concurrency init to api (#3749)
expose middleware init via api layer
2023-07-03 19:19:21 -06:00
Keepers
7fbe03ae37
remove goreleaser replacements property (#3747)
Goreleaser
[deprecated](https://goreleaser.com/deprecations/?h=replacement#archivesreplacements)
the replacements yaml property, which has been causing our binary
publications to fail for a while now. This fixes the yaml and introduces
a slack message for binary publication failures.
2023-07-03 16:59:43 -06:00
Abhishek Pandey
85652bfd67
Add Corso extensions package (#3729)
<!-- PR description-->

Introduces interfaces for corso extensions, which is basically wrappers around `io.ReadCloser`.  Will add integration in follow up PRs.

---

#### 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. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x]  Unit test
- [ ] 💚 E2E
2023-07-03 19:51:08 +00:00
Keepers
cf495a6c8f
add authErr to users mailbox check (#3744)
license issues can produce an authenticationError when retrieving a user's inbox.  This catches that error and treats it as a "mailbox not availble" condition.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3743

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-03 19:31:35 +00:00
dependabot[bot]
725de79f64
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.293 to 1.44.294 in /src (#3738)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.293 to 1.44.294.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.294 (2023-06-30)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/amp</code>: Updates service API and documentation</li>
<li><code>service/ecs</code>: Updates service API and documentation
<ul>
<li>Added new field  &quot;credentialspecs&quot; to the ecs task definition to support gMSA of windows/linux in both domainless and domain-joined mode</li>
</ul>
</li>
<li><code>service/ivs</code>: Updates service API</li>
<li><code>service/mediaconvert</code>: Updates service documentation
<ul>
<li>This release includes improved color handling of overlays and general updates to user documentation.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>This release adds support for rolling deployment in SageMaker Inference.</li>
</ul>
</li>
<li><code>service/transfer</code>: Updates service API and documentation
<ul>
<li>Add outbound Basic authentication support to AS2 connectors</li>
</ul>
</li>
<li><code>service/verifiedpermissions</code>: Updates service documentation</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="86c1a36958"><code>86c1a36</code></a> Release v1.44.294 (2023-06-30) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4900">#4900</a>)</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.293...v1.44.294">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.293&new-version=1.44.294)](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 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-07-03 17:43:40 +00:00
ashmrtn
e8563752a6
Add custom github template to print duration (#3701)
Always print duration for package so that we can at least compare against runs if needed.

---

#### 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-07-03 16:40:51 +00:00
Keepers
5da4ae798b
bump clues to e24d794 (#3736)
dependency bump
2023-07-03 16:11:46 +00:00
Keepers
41d20a411e
Fix sanity concurrency middleware (#3737)
#### Type of change

- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests

#### Test Plan

- [x] 💪 Manual
2023-07-03 05:53:39 +00:00
Keepers
56151a82eb
remove discovery pkg (#3677)
Currently unused, and functionality is largely duplicated by the services/m365 package.

---

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

- [x]  No

#### Type of change

- [ ] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-07-01 13:52:57 +00:00
Keepers
8b81728488
fix concurrency limiter init race (#3715)
initializes the concurrency limiter as part of CLI pre-run initialization to ensure we don't accidentally skip out on including the limiter in middleware.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Issue(s)

* #3695

#### Test Plan

- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
2023-06-30 23:54:54 +00:00
Keepers
5949a3bcd7
add logging indicating full backups (#3721)
#### Does this PR need a docs update or release note?

- [x]  No

#### Type of change

- [x] 🤖 Supportability/Tests

#### Issue(s)

* #3720
2023-06-30 23:02:01 +00:00
Keepers
b74f65e301
properly declare resourceNotFound for sites (#3728)
Missing sites return an ItemNotFound error code,
which we aren't currently handling when doing
queries for individual sites.  This change catches that error code and stacks the error with a
resourceOwnerNotFound sentinel.

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💪 Manual
- [x] 💚 E2E
2023-06-30 18:14:06 +00:00
Keepers
8f020a9c4b
Revert "don't match config in init repo (#3726)" (#3731)
This reverts commit 9a7213baa6f6858b92c47d5d28b8e39c180e64c0.

See sanity test failure: https://github.com/alcionai/corso/actions/runs/5425405323

---

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

- [x]  No

#### Type of change

- [x] 🐛 Bugfix

#### Test Plan

- [x] 💚 E2E
2023-06-30 17:50:01 +00:00
neha_gupta
9a7213baa6
don't match config in init repo (#3726)
<!-- PR description-->

In case of init repo - don't match values from config file.

#### 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-06-30 17:20:47 +00:00
Keepers
84c58e9e9c
clues version bump (#3692)
Bumps clues, fixes double clues trace wrappers.
2023-06-30 16:47:16 +00:00
Keepers
f2a4fd0ba3
od: add per-container collision caching and checks (#3640)
pushes collision checks in onedrive upward from the api layer (due to the bug with ConflictBehavior) and into the restore controller.  Collision resolution in drive follows the same pattern that we use in exchange.

---

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

- [x]  No

#### Type of change

- [x] 🌻 Feature

#### Issue(s)

* #3562

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-06-30 16:13:35 +00:00
Keepers
c218dd865b
move event instance funcs to new file (#3659)
No logic changes, just code movement.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
2023-06-30 15:50:04 +00:00
dependabot[bot]
04841052dd
⬆️ Bump github.com/aws/aws-sdk-go from 1.44.292 to 1.44.293 in /src (#3725)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.292 to 1.44.293.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/aws/aws-sdk-go/releases">github.com/aws/aws-sdk-go's releases</a>.</em></p>
<blockquote>
<h1>Release v1.44.293 (2023-06-29)</h1>
<h3>Service Client Updates</h3>
<ul>
<li><code>service/appstream</code>: Updates service API, documentation, and paginators
<ul>
<li>This release introduces app block builder, allowing customers to provision a resource to package applications into an app block</li>
</ul>
</li>
<li><code>service/chime</code>: Updates service API and documentation
<ul>
<li>The Amazon Chime SDK APIs in the Chime namespace are no longer supported.  Customers should use APIs in the dedicated Amazon Chime SDK namespaces: ChimeSDKIdentity, ChimeSDKMediaPipelines, ChimeSDKMeetings, ChimeSDKMessaging, and ChimeSDKVoice.</li>
</ul>
</li>
<li><code>service/cleanrooms</code>: Updates service API and documentation</li>
<li><code>service/dynamodb</code>: Updates service API, documentation, waiters, paginators, and examples
<ul>
<li>This release adds ReturnValuesOnConditionCheckFailure parameter to PutItem, UpdateItem, DeleteItem, ExecuteStatement, BatchExecuteStatement and ExecuteTransaction APIs. When set to ALL_OLD,  API returns a copy of the item as it was when a conditional write failed</li>
</ul>
</li>
<li><code>service/gamelift</code>: Updates service API and documentation
<ul>
<li>Amazon GameLift now supports game builds that use the Amazon Linux 2023 (AL2023) operating system.</li>
</ul>
</li>
<li><code>service/glue</code>: Updates service API and documentation
<ul>
<li>This release adds support for AWS Glue Crawler with Iceberg Tables, allowing Crawlers to discover Iceberg Tables in S3 and register them in Glue Data Catalog for query engines to query against.</li>
</ul>
</li>
<li><code>service/sagemaker</code>: Updates service API and documentation
<ul>
<li>Adding support for timeseries forecasting in the CreateAutoMLJobV2 API.</li>
</ul>
</li>
</ul>
<h3>SDK Bugs</h3>
<ul>
<li><code>private/protocol</code>: Fix header serialization of empty enum lists in restxml.
<ul>
<li>Header was serialized as the empty string if list was nil/empty.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c2d4a4cbe2"><code>c2d4a4c</code></a> Release v1.44.293 (2023-06-29) (<a href="https://redirect.github.com/aws/aws-sdk-go/issues/4899">#4899</a>)</li>
<li><a href="2144988b1b"><code>2144988</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go/issues/4898">#4898</a> from aws/fix-restxml-emptyheaderlist</li>
<li><a href="65bdb4e3fb"><code>65bdb4e</code></a> fix header serialization of empty enum lists in restxml</li>
<li>See full diff in <a href="https://github.com/aws/aws-sdk-go/compare/v1.44.292...v1.44.293">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go&package-manager=go_modules&previous-version=1.44.292&new-version=1.44.293)](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 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-06-30 13:54:43 +00:00
neha_gupta
ead13b0b1a
Correct default value for s3 endpoint (#3710)
<!-- PR description-->

Use default values from endpoint only if its not present in config file

#### 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-06-30 13:17:31 +00:00
Abin Simon
9d801efa03
Backup and restore link share information (#3655)
As of now we are only backing up and restoring actual permissions. This adds support for backing up and restoring link shares as well.

---

#### 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. -->
* fixes https://github.com/alcionai/corso/issues/3605

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ]  Unit test
- [x] 💚 E2E
2023-06-30 08:30:16 +00:00
882 changed files with 139571 additions and 53419 deletions

View File

@ -35,6 +35,6 @@ body:
id: logs
attributes:
label: Relevant log output
description: Please run Corso with `--log-level debug` and attach the log file.
description: Please run Corso with `--log-level debug --mask-sensitive-data` and attach the log file.
placeholder: This will be automatically formatted, so no need for backticks.
render: shell

View File

@ -1,4 +1,5 @@
name: Backup Restore Test
description: Run various backup/restore/export tests for a service.
inputs:
service:
@ -7,23 +8,38 @@ inputs:
kind:
description: Kind of test
required: true
backup-id:
description: Backup to retrieve data out of
required: false
backup-args:
description: Arguments to pass for backup
required: false
default: ""
restore-args:
description: Arguments to pass for restore
description: Arguments to pass for restore; restore is skipped when missing.
required: false
default: ""
test-folder:
export-args:
description: Arguments to pass for export.
required: false
default: ""
restore-container:
description: Folder to use for testing
required: true
base-backup:
description: Base backup to use for testing
required: false
log-dir:
description: Folder to store test log files
required: true
on-collision:
description: Value for the --collisions flag
required: false
default: "replace"
with-export:
description: Runs export tests when true
required: false
default: false
category:
description: category of data for given service
required: false
outputs:
backup-id:
@ -37,8 +53,13 @@ runs:
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Backup ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-backup-${{ inputs.service }}-${{inputs.kind }}.log
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-backup-${{inputs.kind }}.log
./corso backup create '${{ inputs.service }}' \
--no-stats --hide-progress --json \
${{ inputs.backup-args }} |
@ -48,15 +69,22 @@ runs:
tee $GITHUB_OUTPUT
- name: Restore ${{ inputs.service }} ${{ inputs.kind }}
if: inputs.restore-args
id: restore
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Restore ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-restore-${{ inputs.service }}-${{inputs.kind }}.log
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-restore-${{inputs.kind }}.log
./corso restore '${{ inputs.service }}' \
--no-stats \
--hide-progress \
--collisions ${{ inputs.on-collision }} \
${{ inputs.restore-args }} \
--backup '${{ steps.backup.outputs.result }}' \
2>&1 |
@ -67,24 +95,125 @@ runs:
cat /tmp/corsologs
- name: Check ${{ inputs.service }} ${{ inputs.kind }}
- name: Check restore ${{ inputs.service }} ${{ inputs.kind }}
if: inputs.restore-args
shell: bash
working-directory: src
env:
SANITY_RESTORE_FOLDER: ${{ steps.restore.outputs.result }}
SANITY_RESTORE_SERVICE: ${{ inputs.service }}
TEST_DATA: ${{ inputs.test-folder }}
BASE_BACKUP: ${{ inputs.base-backup }}
SANITY_TEST_RESTORE_CONTAINER: ${{ steps.restore.outputs.result }}
SANITY_TEST_SOURCE_CONTAINER: ${{ inputs.restore-container }}
SANITY_BACKUP_ID: ${{ inputs.backup-id }}
# lists are not restored to a different folder. they get created adjacent to their originals
# hence SANITY_TEST_RESTORE_CONTAINER_PREFIX is necessary to differentiate restored from original
SANITY_TEST_RESTORE_CONTAINER_PREFIX: ${{ steps.restore.outputs.result }}
SANITY_TEST_CATEGORY: ${{ inputs.category }}
run: |
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-validate-${{ inputs.service }}-${{inputs.kind }}.log
./sanity-test
echo "---------------------------"
echo Sanity Test Restore ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-validate-${{inputs.kind }}.log
./sanity-test restore ${{ inputs.service }}
- name: Export ${{ inputs.service }} ${{ inputs.kind }}
if: ${{ inputs.with-export == 'true' }}
id: export
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Export ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-restore-${{inputs.kind }}.log
./corso export '${{ inputs.service }}' \
/tmp/export-${{ inputs.service }}${CATEGORY_SUFFIX}-${{inputs.kind }} \
--no-stats \
--hide-progress \
${{ inputs.export-args }} \
--backup '${{ steps.backup.outputs.result }}'
cat /tmp/corsologs
- name: Check export ${{ inputs.service }} ${{ inputs.kind }}
if: ${{ inputs.with-export == 'true' }}
shell: bash
working-directory: src
env:
SANITY_TEST_RESTORE_CONTAINER: /tmp/export-${{ inputs.service }}${{ inputs.category && '-' }}${{ inputs.category }}-${{ inputs.kind }}
SANITY_TEST_SOURCE_CONTAINER: ${{ inputs.restore-container }}
SANITY_BACKUP_ID: ${{ inputs.backup-id }}
# applies only for sharepoint lists
SANITY_TEST_RESTORE_CONTAINER_PREFIX: ${{ steps.restore.outputs.result }}
SANITY_TEST_CATEGORY: ${{ inputs.category }}
run: |
echo "---------------------------"
echo Sanity-Test Export ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-validate-${{inputs.kind }}.log
./sanity-test export ${{ inputs.service }}
- name: Export archive ${{ inputs.service }} ${{ inputs.kind }}
if: ${{ inputs.with-export == 'true' }}
id: export-archive
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Export Archive ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-restore-${{inputs.kind }}.log
./corso export '${{ inputs.service }}' \
/tmp/export-${{ inputs.service }}${CATEGORY_SUFFIX}-${{inputs.kind }}-archive \
--no-stats \
--hide-progress \
--archive \
${{ inputs.export-args }} \
--backup '${{ steps.backup.outputs.result }}'
unzip /tmp/export-${{ inputs.service }}${CATEGORY_SUFFIX}-${{inputs.kind }}-archive/*.zip \
-d /tmp/export-${{ inputs.service }}${CATEGORY_SUFFIX}-${{inputs.kind }}-unzipped
cat /tmp/corsologs
- name: Check archive export ${{ inputs.service }} ${{ inputs.kind }}
if: ${{ inputs.with-export == 'true' }}
shell: bash
working-directory: src
env:
SANITY_TEST_RESTORE_CONTAINER: /tmp/export-${{ inputs.service }}${{ inputs.category && '-' }}${{ inputs.category }}-${{inputs.kind }}-unzipped
SANITY_TEST_SOURCE_CONTAINER: ${{ inputs.restore-container }}
SANITY_BACKUP_ID: ${{ inputs.backup-id }}
# applies only for sharepoint lists
SANITY_TEST_RESTORE_CONTAINER_PREFIX: ${{ steps.restore.outputs.result }}
SANITY_TEST_CATEGORY: ${{ inputs.category }}
run: |
echo "---------------------------"
echo Sanity-Test Export Archive ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-${{ inputs.service }}${CATEGORY_SUFFIX}-validate-${{inputs.kind }}.log
./sanity-test export ${{ inputs.service }}
- name: List ${{ inputs.service }} ${{ inputs.kind }}
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Backup list ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-backup-list-${{ inputs.service }}-${{inputs.kind }}.log
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-backup-${{ inputs.service }}${CATEGORY_SUFFIX}-list-${{inputs.kind }}.log
./corso backup list ${{ inputs.service }} \
--no-stats \
--hide-progress \
@ -101,8 +230,14 @@ runs:
shell: bash
working-directory: src
run: |
echo "---------------------------"
echo Backup List w/ Backup ${{ inputs.service }} ${{ inputs.kind }}
echo "---------------------------"
set -euo pipefail
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-backup-list-single-${{ inputs.service }}-${{inputs.kind }}.log
# Include category in the log file name if present
CATEGORY_SUFFIX=""
[[ -n "${{ inputs.category }}" ]] && CATEGORY_SUFFIX="-${{ inputs.category }}"
CORSO_LOG_FILE=${{ inputs.log-dir }}/gotest-backup-list-${{ inputs.service }}${CATEGORY_SUFFIX}-single-${{inputs.kind }}.log
./corso backup list ${{ inputs.service }} \
--no-stats \
--hide-progress \
@ -116,7 +251,13 @@ runs:
exit 1
fi
# Upload the original go test output as an artifact for later review.
- if: always()
shell: bash
run: |
echo "---------------------------"
echo Logging Results
echo "---------------------------"
- name: Upload test log
if: always()
uses: actions/upload-artifact@v3
@ -124,4 +265,4 @@ runs:
name: "${{ inputs.service }}-${{ inputs.kind }}-logs"
path: ${{ inputs.log-dir }}/*
if-no-files-found: error
retention-days: 14
retention-days: 14

View File

@ -1,4 +1,5 @@
name: Setup and Cache Golang
description: Build golang binaries for later use in CI.
# clone of: https://github.com/magnetikonline/action-golang-cache/blob/main/action.yaml
#

View File

@ -1,4 +1,5 @@
name: Publish Binary
description: Publish binary artifacts.
inputs:
version:
@ -36,7 +37,7 @@ runs:
uses: goreleaser/goreleaser-action@v4
with:
version: latest
args: release --rm-dist --timeout 500m --parallelism 1 ${{ env.grflags }}
args: release --clean --timeout 500m --parallelism 1 ${{ env.grflags }}
workdir: src
env:
GITHUB_TOKEN: ${{ inputs.github_token }}

View File

@ -1,4 +1,5 @@
name: Publish Website
description: Publish website artifacts.
inputs:
aws-iam-role:

View File

@ -1,4 +1,5 @@
name: Purge M365 User Data
description: Deletes M365 data generated during CI tests.
# Hard deletion of an m365 user's data. Our CI processes create a lot
# of data churn (creation and immediate deletion) of files, the likes
@ -19,7 +20,9 @@ inputs:
site:
description: Sharepoint site where data is to be purged.
libraries:
description: List of library names within site where data is to be purged.
description: List of library names within the site where data is to be purged.
library-prefix:
description: List of library names within the site where the library will get deleted entirely.
folder-prefix:
description: Name of the folder to be purged. If falsy, will purge the set of static, well known folders instead.
older-than:
@ -28,12 +31,19 @@ inputs:
description: Secret value of for AZURE_CLIENT_ID
azure-client-secret:
description: Secret value of for AZURE_CLIENT_SECRET
azure-pnp-client-id:
description: Secret value of AZURE_PNP_CLIENT_ID
azure-pnp-client-cert:
description: Base64 encoded private certificate for the azure-pnp-client-id (Secret value of AZURE_PNP_CLIENT_CERT)
azure-tenant-id:
description: Secret value of for AZURE_TENANT_ID
description: Secret value of AZURE_TENANT_ID
m365-admin-user:
description: Secret value of for M365_TENANT_ADMIN_USER
m365-admin-password:
description: Secret value of for M365_TENANT_ADMIN_PASSWORD
tenant-domain:
description: The domain of the tenant (ex. 10rqc2.onmicrosft.com)
required: true
runs:
using: composite
@ -52,17 +62,22 @@ runs:
AZURE_CLIENT_SECRET: ${{ inputs.azure-client-secret }}
AZURE_TENANT_ID: ${{ inputs.azure-tenant-id }}
run: |
./exchangePurge.ps1 -User ${{ inputs.user }} -FolderNamePurgeList PersonMetadata -FolderPrefixPurgeList "${{ inputs.folder-prefix }}".Split(",") -PurgeBeforeTimestamp ${{ inputs.older-than }}
for ($ATTEMPT_NUM = 1; $ATTEMPT_NUM -le 3; $ATTEMPT_NUM++)
{
if (./exchangePurge.ps1 -User ${{ inputs.user }} -FolderNamePurgeList PersonMetadata -FolderPrefixPurgeList "${{ inputs.folder-prefix }}".Split(",") -PurgeBeforeTimestamp ${{ inputs.older-than }}) {
break
}
}
- name: Reset retention for all mailboxes to 0
if: ${{ inputs.user == '' }}
shell: pwsh
working-directory: ./src/cmd/purge/scripts
env:
M365_TENANT_ADMIN_USER: ${{ inputs.m365-admin-user }}
M365_TENANT_ADMIN_PASSWORD: ${{ inputs.m365-admin-password }}
run: |
./exchangeRetention.ps1
# TODO(ashmrtn): Re-enable when we figure out errors we're seeing with Get-Mailbox call.
#- name: Reset retention for all mailboxes to 0
# if: ${{ inputs.user == '' }}
# shell: pwsh
# working-directory: ./src/cmd/purge/scripts
# env:
# M365_TENANT_ADMIN_USER: ${{ inputs.m365-admin-user }}
# M365_TENANT_ADMIN_PASSWORD: ${{ inputs.m365-admin-password }}
# run: ./exchangeRetention.ps1
################################################################################################################
# OneDrive
@ -73,10 +88,16 @@ runs:
shell: pwsh
working-directory: ./src/cmd/purge/scripts
env:
M365_TENANT_ADMIN_USER: ${{ inputs.m365-admin-user }}
M365_TENANT_ADMIN_PASSWORD: ${{ inputs.m365-admin-password }}
AZURE_CLIENT_ID: ${{ inputs.azure-pnp-client-id }}
AZURE_APP_CERT: ${{ inputs.azure-pnp-client-cert }}
TENANT_DOMAIN: ${{ inputs.tenant-domain }}
run: |
./onedrivePurge.ps1 -User ${{ inputs.user }} -FolderPrefixPurgeList "${{ inputs.folder-prefix }}".Split(",") -PurgeBeforeTimestamp ${{ inputs.older-than }}
for ($ATTEMPT_NUM = 1; $ATTEMPT_NUM -le 3; $ATTEMPT_NUM++)
{
if (./onedrivePurge.ps1 -User ${{ inputs.user }} -FolderPrefixPurgeList "${{ inputs.folder-prefix }}".Split(",") -PurgeBeforeTimestamp ${{ inputs.older-than }}) {
break
}
}
################################################################################################################
# Sharepoint
@ -87,7 +108,14 @@ runs:
shell: pwsh
working-directory: ./src/cmd/purge/scripts
env:
M365_TENANT_ADMIN_USER: ${{ inputs.m365-admin-user }}
M365_TENANT_ADMIN_PASSWORD: ${{ inputs.m365-admin-password }}
AZURE_CLIENT_ID: ${{ inputs.azure-pnp-client-id }}
AZURE_APP_CERT: ${{ inputs.azure-pnp-client-cert }}
TENANT_DOMAIN: ${{ inputs.tenant-domain }}
run: |
./onedrivePurge.ps1 -Site ${{ inputs.site }} -LibraryNameList "${{ inputs.libraries }}".split(",") -FolderPrefixPurgeList ${{ inputs.folder-prefix }} -PurgeBeforeTimestamp ${{ inputs.older-than }}
for ($ATTEMPT_NUM = 1; $ATTEMPT_NUM -le 3; $ATTEMPT_NUM++)
{
if (./onedrivePurge.ps1 -Site ${{ inputs.site }} -LibraryNameList "${{ inputs.libraries }}".split(",") -FolderPrefixPurgeList ${{ inputs.folder-prefix }} -LibraryPrefixDeleteList ${{ inputs.library-prefix && inputs.library-prefix || '[]' }} -PurgeBeforeTimestamp ${{ inputs.older-than }}) {
break
}
}

View File

@ -0,0 +1,92 @@
name: Send a message to Teams
description: Send messages to communication apps.
inputs:
msg:
description: The teams message text
teams_url:
description: passthrough for secrets.TEAMS_CORSO_CI_WEBHOOK_URL
runs:
using: composite
steps:
- uses: actions/checkout@v3
- name: set github ref
shell: bash
run: |
echo "github_reference=${{ github.ref }}" >> $GITHUB_ENV
- name: trim github ref
shell: bash
run: |
echo "trimmed_ref=${github_reference#refs/}" >> $GITHUB_ENV
- name: build urls
shell: bash
run: |
echo "logurl=$(printf 'https://github.com/alcionai/corso/actions/runs/%s' ${{ github.run_id }})" >> $GITHUB_ENV
echo "commiturl=$(printf 'https://github.com/alcionai/corso/commit/%s' ${{ github.sha }})" >> $GITHUB_ENV
echo "refurl=$(printf 'https://github.com/alcionai/corso/%s' ${{ env.trimmed_ref }})" >> $GITHUB_ENV
- name: use url or blank val
shell: bash
run: |
echo "STEP=${{ env.trimmed_ref || '' }}" >> $GITHUB_ENV
echo "JOB=${{ github.job || '' }}" >> $GITHUB_ENV
echo "LOGS=${{ github.run_id && env.logurl || '-' }}" >> $GITHUB_ENV
echo "COMMIT=${{ github.sha && env.commiturl || '-' }}" >> $GITHUB_ENV
echo "REF=${{ env.trimmed_ref && env.refurl || '-' }}" >> $GITHUB_ENV
- name: Send JSON payload to Teams Webhook
shell: bash
run: |
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"type":"message",
"attachments":[
{
"contentType":"application/vnd.microsoft.card.adaptive",
"contentUrl":null,
"content":{
"$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
"type":"AdaptiveCard",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "${{ inputs.msg }}",
"color": "Attention"
},
{
"type": "TextBlock",
"text": "${{ env.JOB }} :: ${{ env.STEP }}",
"wrap": true
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Action",
"url": "${{ env.LOGS }}"
},
{
"type": "Action.OpenUrl",
"title": "Commit",
"url": "${{ env.COMMIT }}"
},
{
"type": "Action.OpenUrl",
"title": "Ref",
"url": "${{ env.REF }}"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5"
}
}
]
}' \
${{ inputs.teams_url }}

View File

@ -1,4 +1,5 @@
name: Lint Website
description: Lint website content.
inputs:
version:

View File

@ -24,11 +24,11 @@ jobs:
websitefileschanged: ${{ steps.websitechecker.outputs.websitefileschanged }}
actionsfileschanged: ${{ steps.actionschecker.outputs.actionsfileschanged }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# only run CI tests if the src folder or workflow actions have changed
- name: Check for file changes in src/ or .github/workflows/
uses: dorny/paths-filter@v2
uses: dorny/paths-filter@v3
id: dornycheck
with:
list-files: json

View File

@ -9,7 +9,7 @@ jobs:
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Get version string
id: version
@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Publish Binary
uses: ./.github/actions/publish-binary
@ -34,4 +34,11 @@ jobs:
version: ${{ needs.SetEnv.outputs.version }}
github_token: ${{ secrets.GITHUB_TOKEN }}
rudderstack_write_key: ${{ secrets.RUDDERSTACK_CORSO_WRITE_KEY }}
rudderstack_data_plane_url: ${{ secrets.RUDDERSTACK_CORSO_DATA_PLANE_URL }}
rudderstack_data_plane_url: ${{ secrets.RUDDERSTACK_CORSO_DATA_PLANE_URL }}
- name: Notify failure in teams
if: failure()
uses: ./.github/actions/teams-message
with:
msg: "[CORSO FAILED] Publishing Binary"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

View File

@ -40,7 +40,7 @@ jobs:
run:
working-directory: src
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# single setup and sum cache handling here.
# the results will cascade onto both testing and linting.
@ -63,7 +63,7 @@ jobs:
website-bucket: ${{ steps.website-bucket.outputs.website-bucket }}
website-cfid: ${{ steps.website-cfid.outputs.website-cfid }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Figure out environment
id: environment
@ -110,10 +110,11 @@ jobs:
needs: [Precheck, Checkout, SetEnv]
environment: Testing
runs-on: ubuntu-latest
timeout-minutes: 30
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.websitefileschanged == 'true' # websitefileschanged also includes srcfileschanged
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Lint Website
uses: ./.github/actions/website-linting
@ -128,6 +129,7 @@ jobs:
needs: [Precheck, Checkout, SetM365App]
environment: Testing
runs-on: ubuntu-latest
timeout-minutes: 120
if: (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main') || (needs.precheck.outputs.srcfileschanged == 'true' && github.event.pull_request.head.repo.full_name == github.repository)
defaults:
run:
@ -140,7 +142,7 @@ jobs:
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-ci.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
@ -155,7 +157,7 @@ jobs:
# AWS creds
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v2
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
@ -171,6 +173,7 @@ jobs:
CORSO_M365_TEST_USER_ID: ${{ vars.CORSO_M365_TEST_USER_ID }}
CORSO_SECONDARY_M365_TEST_USER_ID: ${{ vars.CORSO_SECONDARY_M365_TEST_USER_ID }}
CORSO_PASSPHRASE: ${{ secrets.INTEGRATION_TEST_CORSO_PASSPHRASE }}
S3_BUCKET: ${{ secrets.CI_TESTS_S3_BUCKET }}
run: |
set -euo pipefail
go test \
@ -186,17 +189,89 @@ jobs:
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ci-test-log
path: src/testlog/*
if-no-files-found: error
retention-days: 14
Retention-Test-Suite-Trusted:
needs: [Precheck, Checkout, SetM365App]
environment: Testing
runs-on: ubuntu-latest
timeout-minutes: 30
if: (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main') || (needs.precheck.outputs.srcfileschanged == 'true' && github.event.pull_request.head.repo.full_name == github.repository)
defaults:
run:
working-directory: src
env:
# Resolve the name of the secret that contains the Azure client ID/secret
AZURE_CLIENT_ID_NAME: ${{ needs.SetM365App.outputs.client_id_env }}
AZURE_CLIENT_SECRET_NAME: ${{ needs.SetM365App.outputs.client_secret_env }}
CLIENT_APP_SLOT: ${{ needs.SetM365App.outputs.client_app_slot }}
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-ci-retention.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
with:
go-version-file: src/go.mod
- run: mkdir testlog
# Install gotestfmt
- name: Set up gotestfmt
run: go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
# AWS creds
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
aws-region: us-east-1
# run the tests
- name: Retention Tests
env:
AZURE_CLIENT_ID: ${{ secrets[env.AZURE_CLIENT_ID_NAME] }}
AZURE_CLIENT_SECRET: ${{ secrets[env.AZURE_CLIENT_SECRET_NAME] }}
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
CORSO_RETENTION_TESTS: true
CORSO_M365_TEST_USER_ID: ${{ vars.CORSO_M365_TEST_USER_ID }}
CORSO_SECONDARY_M365_TEST_USER_ID: ${{ vars.CORSO_SECONDARY_M365_TEST_USER_ID }}
CORSO_PASSPHRASE: ${{ secrets.INTEGRATION_TEST_CORSO_PASSPHRASE }}
S3_BUCKET: ${{ secrets.CI_RETENTION_TESTS_S3_BUCKET }}
run: |
set -euo pipefail
go test \
-tags testing \
-json \
-v \
-failfast \
-p 1 \
-timeout 10m \
./... \
2>&1 | tee ./testlog/gotest-ci.log | gotestfmt -hide successful-tests
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
uses: actions/upload-artifact@v4
with:
name: ci-retention-test-log
path: src/testlog/*
if-no-files-found: error
retention-days: 14
Unit-Test-Suite:
needs: [Precheck, Checkout]
environment: Testing
runs-on: ubuntu-latest
timeout-minutes: 30
if: needs.precheck.outputs.srcfileschanged == 'true'
defaults:
run:
@ -205,7 +280,7 @@ jobs:
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-unit.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
@ -240,7 +315,7 @@ jobs:
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: unit-test-log
path: src/testlog/*
@ -285,7 +360,7 @@ jobs:
# Check out merge commit
- name: Fork based /ok-to-test checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: "refs/pull/${{ github.event.client_payload.pull_request.number }}/merge"
@ -302,7 +377,7 @@ jobs:
# AWS creds
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v2
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
@ -329,7 +404,7 @@ jobs:
# Upload the original go test log as an artifact for later review.
- name: Upload test log
if: failure()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: fork-test-log
path: src/testlog/*
@ -337,7 +412,7 @@ jobs:
retention-days: 14
# Update check run called "Test-Suite-Fork"
- uses: actions/github-script@v6
- uses: actions/github-script@v7
id: update-check-run
if: failure()
env:
@ -374,12 +449,13 @@ jobs:
needs: [Precheck, Checkout]
environment: Testing
runs-on: ubuntu-latest
timeout-minutes: 30
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.srcfileschanged == 'true'
defaults:
run:
working-directory: src
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
@ -387,11 +463,11 @@ jobs:
go-version-file: src/go.mod
- name: Go Lint
uses: golangci/golangci-lint-action@v3
uses: golangci/golangci-lint-action@v4
with:
# Keep pinned to a verson as sometimes updates will add new lint
# failures in unchanged code.
version: v1.52.2
version: v1.54.2
working-directory: src
skip-pkg-cache: true
skip-build-cache: true
@ -409,6 +485,53 @@ jobs:
install-go: false
working-directory: src
- name: Run allowtags
run: |
go install github.com/ashmrtn/allowtags@latest
allowtags --allow-key json --allow-key uriparametername ./...
# I could not find a way to install tree-grepper without nix
# https://github.com/BrianHicks/tree-grepper/issues/293
- uses: cachix/install-nix-action@v25
- uses: cachix/cachix-action@v14
with:
name: tree-grepper
- run: nix-env -if https://github.com/BrianHicks/tree-grepper/archive/refs/heads/main.tar.gz
- name: Run trailing comma lint rule
run: |
# Using `grep .` as the exit codes are always true for correct grammar
if tree-grepper -q go '(argument_list "," @no-trailing-comma .)' | grep .; then
echo "No trailing commas for function calls"
exit 1
fi
- name: Check for empty string comparison
run: |
# Using `grep .` as the exit codes are always true for correct grammar
if tree-grepper -q go '((binary_expression (identifier) ["==" "!="] (interpreted_string_literal) @_ri) @exp (#eq? @_ri "\"\""))' | grep .; then
echo "Use len check instead of empty string comparison"
exit 1
fi
- name: Check for cases where errors are not propagated
run: |
# Using `grep .` as the exit codes are always true for correct grammar
if tree-grepper -q go '((if_statement (binary_expression) @_if (block (return_statement (expression_list (call_expression (selector_expression) @_fun ) @ret .)))) (#match? @_if "err != nil") (#match? @_fun "clues.NewWC"))' | grep .; then
echo "Make sure to propagate errors with clues"
exit 1
fi
- name: Check if clues without context are used when context is passed in
run: |
# Using `grep .` as the exit codes are always true for correct grammar
if tree-grepper -q go '((function_declaration (parameter_list . (parameter_declaration (identifier) @_octx)) body: (block (short_var_declaration left: (expression_list (identifier) @_err . ) right: (expression_list (call_expression (argument_list . (identifier) @_ctx)))) . (if_statement (binary_expression) @_exp consequence: (block (return_statement (expression_list (call_expression (selector_expression (call_expression (selector_expression) @clue))) . )))))) (#eq? @_err "err") (#eq? @_octx "ctx") (#eq? @_ctx "ctx") (#eq? @_exp "err != nil") (#match? @clue "^clues\.") (#match? @clue "WC$"))' | grep .; then
echo "Do not use clues.*WC when context is passed in"
exit 1
fi
- name: Check clues with context is used when context is not passed in
run: |
# Using `grep .` as the exit codes are always true for correct grammar
if tree-grepper -q go '((function_declaration (parameter_list . (parameter_declaration (identifier) @_octx)) body: (block (short_var_declaration left: (expression_list (identifier) @_err . ) right: (expression_list (call_expression (argument_list . (identifier) @_ctx)))) . (if_statement (binary_expression) @_exp consequence: (block (return_statement (expression_list (call_expression (selector_expression (call_expression (selector_expression) @clue))) . )))))) (#eq? @_err "err") (#eq? @_octx "ctx") (#not-eq? @_ctx "ctx") (#eq? @_exp "err != nil") (#match? @clue "^clues\.") (#not-match? @clue "WC$"))' | grep .; then
echo "Use clues.*WC when context is not passed in"
exit 1
fi
# ----------------------------------------------------------------------------------------------------
# --- GitHub Actions Linting -------------------------------------------------------------------------
@ -420,7 +543,7 @@ jobs:
runs-on: ubuntu-latest
if: needs.precheck.outputs.actionsfileschanged == 'true'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: actionlint
uses: raven-actions/actionlint@v1
@ -445,7 +568,7 @@ jobs:
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Publish Binary
uses: ./.github/actions/publish-binary
@ -466,17 +589,17 @@ jobs:
env:
PLATFORMS: linux/amd64,linux/arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# Setup buildx
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
# retrieve credentials for ghcr.io
- name: Login to Github Packages
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -484,7 +607,7 @@ jobs:
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: |
@ -494,7 +617,7 @@ jobs:
# deploy the image
- name: Build image and push to GitHub Container Registry
uses: docker/build-push-action@v3
uses: docker/build-push-action@v5
with:
context: .
file: ./build/Dockerfile
@ -547,9 +670,9 @@ jobs:
CORSO_VERSION: ${{ needs.SetEnv.outputs.version }}
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Validate amd64 container images
run: |
@ -604,7 +727,7 @@ jobs:
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3 # need to checkout to make the action available
- uses: actions/checkout@v4 # need to checkout to make the action available
- name: Publish website
uses: ./.github/actions/publish-website
@ -620,7 +743,7 @@ jobs:
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v3 # need to checkout to make the action available
- uses: actions/checkout@v4 # need to checkout to make the action available
- name: Publish website
uses: ./.github/actions/publish-website

View File

@ -12,18 +12,15 @@ jobs:
continue-on-error: true
strategy:
matrix:
user: [ CORSO_M365_TEST_USER_ID, CORSO_SECONDARY_M365_TEST_USER_ID, EXT_SDK_TEST_USER_ID, '' ]
user: [CORSO_M365_TEST_USER_ID, CORSO_SECONDARY_M365_TEST_USER_ID, ""]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# sets the maximum time to now-30m.
# CI test have a 10 minute timeout.
# At 20 minutes ago, we should be safe from conflicts.
# The additional 10 minutes is just to be good citizens.
# CI test have a 20 minute timeout.
- name: Set purge boundary
run: |
echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
run: echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
- name: Purge CI-Produced Folders for Users
uses: ./.github/actions/purge-m365-data
@ -36,6 +33,16 @@ jobs:
azure-tenant-id: ${{ secrets.TENANT_ID }}
m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }}
m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }}
azure-pnp-client-id: ${{ secrets.AZURE_PNP_CLIENT_ID }}
azure-pnp-client-cert: ${{ secrets.AZURE_PNP_CLIENT_CERT }}
tenant-domain: ${{ vars.TENANT_DOMAIN }}
- name: Notify failure in teams
if: failure()
uses: ./.github/actions/teams-message
with:
msg: "[CORSO FAILED] ${{ vars[matrix.user] }} CI Cleanup"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}
Test-Site-Data-Cleanup:
environment: Testing
@ -43,28 +50,36 @@ jobs:
continue-on-error: true
strategy:
matrix:
site: [ CORSO_M365_TEST_SITE_URL, EXT_SDK_TEST_SITE_URL ]
site: [CORSO_M365_TEST_SITE_URL, CORSO_M365_TEST_GROUPS_SITE_URL]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# sets the maximum time to now-30m.
# CI test have a 10 minute timeout.
# At 20 minutes ago, we should be safe from conflicts.
# The additional 10 minutes is just to be good citizens.
# CI test have a 20 minute timeout.
- name: Set purge boundary
run: |
echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
run: echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
- name: Purge CI-Produced Folders for Sites
uses: ./.github/actions/purge-m365-data
with:
site: ${{ vars[matrix.site] }}
folder-prefix: ${{ vars.CORSO_M365_TEST_PREFIXES }}
libraries: ${{ vars.CORSO_M365_TEST_SITE_LIBRARIES }}
folder-prefix: ${{ vars.CORSO_M365_TEST_PREFIXES }}
libraries: ${{ vars.CORSO_M365_TEST_SITE_LIBRARIES }}
library-prefix: ${{ vars.CORSO_M365_TEST_PREFIXES }}
older-than: ${{ env.HALF_HOUR_AGO }}
azure-client-id: ${{ secrets.CLIENT_ID }}
azure-client-secret: ${{ secrets.CLIENT_SECRET }}
azure-tenant-id: ${{ secrets.TENANT_ID }}
m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }}
m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }}
azure-pnp-client-id: ${{ secrets.AZURE_PNP_CLIENT_ID }}
azure-pnp-client-cert: ${{ secrets.AZURE_PNP_CLIENT_CERT }}
tenant-domain: ${{ vars.TENANT_DOMAIN }}
- name: Notify failure in teams
if: failure()
uses: ./.github/actions/teams-message
with:
msg: "[CORSO FAILED] ${{ vars[matrix.site] }} CI Cleanup"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

View File

@ -26,7 +26,7 @@ jobs:
run:
working-directory: src
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build the otel-daemon
run: make build-otel-daemon
@ -107,7 +107,7 @@ jobs:
# package all artifacts for later review
- name: Upload Log, Profilers, Traces
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: load-test-profiling
path: ${{ github.workspace }}/testlog/*
@ -120,7 +120,7 @@ jobs:
outputs:
matrix: ${{ steps.build.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- id: build
run: |
u=$(echo "${{ secrets.CORSO_M365_LOAD_TEST_ORG_USERS }}" | sed 's/\[/["/g' | sed 's/\]/"]/g' | sed 's/|/","/g')
@ -140,7 +140,7 @@ jobs:
matrix:
user: [ CORSO_M365_LOAD_TEST_USER_ID, '' ]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set folder boundary datetime
run: |
echo "NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
@ -155,3 +155,6 @@ jobs:
azure-tenant-id: ${{ secrets.TENANT_ID }}
m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }}
m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }}
azure-pnp-client-id: ${{ secrets.AZURE_PNP_CLIENT_ID }}
azure-pnp-client-cert: ${{ secrets.AZURE_PNP_CLIENT_CERT }}
tenant-domain: ${{ vars.TENANT_DOMAIN }}

396
.github/workflows/longevity_test.yml vendored Normal file
View File

@ -0,0 +1,396 @@
name: Longevity Testing
on:
schedule:
# Run every day at 04:00 GMT (roughly 8pm PST)
- cron: "0 4 * * *"
workflow_dispatch:
inputs:
user:
description: "User to run longevity test on"
permissions:
# required to retrieve AWS credentials
id-token: write
contents: write
# cancel currently running jobs if a new version of the branch is pushed
concurrency:
group: longevity_testing-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
SetM365App:
uses: alcionai/corso/.github/workflows/accSelector.yaml@main
Longevity-Tests:
needs: [SetM365App]
environment: Testing
runs-on: ubuntu-latest
env:
# Need these in the local env so that corso can read them
AZURE_CLIENT_ID: ${{ secrets[needs.SetM365App.outputs.client_id_env] }}
AZURE_CLIENT_SECRET: ${{ secrets[needs.SetM365App.outputs.client_secret_env] }}
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
CORSO_PASSPHRASE: ${{ secrets.INTEGRATION_TEST_CORSO_PASSPHRASE }}
# re-used values
CORSO_LOG_DIR: ${{ github.workspace }}/src/testlog
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-longevity.log
RESTORE_DEST_PFX: Corso_Test_Longevity_
TEST_USER: ${{ github.event.inputs.user != '' && github.event.inputs.user || vars.CORSO_M365_TEST_USER_ID }}
PREFIX: "longevity"
# Options for retention.
RETENTION_MODE: GOVERNANCE
# Time to retain blobs for in hours.
RETENTION_DURATION: 216
defaults:
run:
working-directory: src
############################################################################
# setup
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # needed to get latest tag
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
with:
go-version-file: src/go.mod
- run: |
go build -o longevity-test ./cmd/longevity_test
go build -o s3checker ./cmd/s3checker
- name: Get version string
id: version
run: |
echo version=$(git describe --tags --abbrev=0) | tee -a $GITHUB_OUTPUT
# Checkout the .github directory at the original branch's ref so we have a
# stable view of the actions.
- name: Code Checkout
working-directory: ${{ github.workspace }}
run: |
git checkout ${{ steps.version.outputs.version }}
git checkout ${{ github.ref }} -- .github
- run: go build -o corso
timeout-minutes: 10
- run: mkdir ${CORSO_LOG_DIR}
# Use shorter-lived credentials obtained from assume-role since these
# runs haven't been taking long.
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v4
timeout-minutes: 10
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
aws-region: us-east-1
##########################################################################
# Repository commands
- name: Version Test
timeout-minutes: 10
run: |
./corso --version | grep -c 'Corso version:'
- name: Repo init test
id: repo-init
timeout-minutes: 10
run: |
set -euo pipefail
echo -e "\nRepo init test\n" >> ${{ env.CORSO_LOG_FILE }}
./corso repo init s3 \
--no-stats \
--hide-progress \
--retention-mode $(echo "${{ env.RETENTION_MODE }}" | tr '[:upper:]' '[:lower:]') \
--retention-duration "${{ env.RETENTION_DURATION }}h" \
--extend-retention \
--prefix ${{ env.PREFIX }} \
--bucket ${{ secrets.CI_RETENTION_TESTS_S3_BUCKET }} \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/gotest-repo-init.log
if grep -q 'Failed to' ${{ env.CORSO_LOG_DIR }}/gotest-repo-init.log
then
echo "Repo could not be initialized"
exit 1
fi
- name: Repo connect test
timeout-minutes: 10
run: |
set -euo pipefail
echo -e "\nRepo connect test\n" >> ${{ env.CORSO_LOG_FILE }}
./corso repo connect s3 \
--no-stats \
--hide-progress \
--prefix ${{ env.PREFIX }} \
--bucket ${{ secrets.CI_RETENTION_TESTS_S3_BUCKET }} \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/gotest-repo-connect.log
if ! grep -q 'Connected to S3 bucket' ${{ env.CORSO_LOG_DIR }}/gotest-repo-connect.log
then
echo "Repo could not be connected"
exit 1
fi
##########################################################################
# Exchange
- name: Backup exchange test
id: exchange-test
timeout-minutes: 30
run: |
echo -e "\nBackup Exchange test\n" >> ${CORSO_LOG_FILE}
./corso backup create exchange \
--no-stats \
--mailbox "${TEST_USER}" \
--hide-progress \
--json \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/backup_exchange.txt
resultjson=$(sed -e '1,/Completed Backups/d' ${{ env.CORSO_LOG_DIR }}/backup_exchange.txt )
if [[ $( echo $resultjson | jq -r '.[0] | .stats.errorCount') -ne 0 ]]; then
echo "backup was not successful"
exit 1
fi
data=$( echo $resultjson | jq -r '.[0] | .id' )
echo result=$data >> $GITHUB_OUTPUT
##########################################################################
# Onedrive
- name: Backup onedrive test
id: onedrive-test
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\nBackup OneDrive test\n" >> ${CORSO_LOG_FILE}
./corso backup create onedrive \
--no-stats \
--hide-progress \
--user "${TEST_USER}" \
--json \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/backup_onedrive.txt
resultjson=$(sed -e '1,/Completed Backups/d' ${{ env.CORSO_LOG_DIR }}/backup_onedrive.txt )
if [[ $( echo $resultjson | jq -r '.[0] | .stats.errorCount') -ne 0 ]]; then
echo "backup was not successful"
exit 1
fi
data=$( echo $resultjson | jq -r '.[0] | .id' )
echo result=$data >> $GITHUB_OUTPUT
##########################################################################
# Sharepoint test
- name: Backup sharepoint test
id: sharepoint-test
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\nBackup SharePoint test\n" >> ${CORSO_LOG_FILE}
./corso backup create sharepoint \
--no-stats \
--hide-progress \
--site "${{ vars.CORSO_M365_TEST_SITE_URL }}" \
--json \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/backup_sharepoint.txt
resultjson=$(sed -e '1,/Completed Backups/d' ${{ env.CORSO_LOG_DIR }}/backup_sharepoint.txt )
if [[ $( echo $resultjson | jq -r '.[0] | .stats.errorCount') -ne 0 ]]; then
echo "backup was not successful"
exit 1
fi
data=$( echo $resultjson | jq -r '.[0] | .id' )
echo result=$data >> $GITHUB_OUTPUT
##########################################################################
# Backup Exchange Deletion test
- name: Backup Delete exchange test
id: delete-exchange-test
timeout-minutes: 30
env:
SERVICE: "exchange"
DELETION_DAYS: 10
run: |
set -euo pipefail
echo -e "\nDelete Backup exchange \n" >> ${CORSO_LOG_FILE}
./longevity-test
##########################################################################
# Backup Onedrive Deletion test
- name: Backup Delete onedrive test
id: delete-onedrive-test
timeout-minutes: 30
env:
SERVICE: "onedrive"
DELETION_DAYS: 10
run: |
set -euo pipefail
echo -e "\nDelete Backup onedrive \n" >> ${CORSO_LOG_FILE}
./longevity-test
##########################################################################
# Backup Sharepoint Deletion test
- name: Backup Delete Sharepoint test
id: delete-sharepoint-test
timeout-minutes: 30
env:
SERVICE: "sharepoint"
DELETION_DAYS: 5
run: |
set -euo pipefail
echo -e "\nDelete Backup sharepoint \n" >> ${CORSO_LOG_FILE}
./longevity-test
##########################################################################
# Export OneDrive Test
- name: OneDrive Export test
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\Export OneDrive test\n" >> ${CORSO_LOG_FILE}
echo -e "\Export OneDrive test - first entry\n" >> ${CORSO_LOG_FILE}
./corso backup list onedrive 2>/dev/null | tail -n+2 | head -n1 | awk '{print $1}' |
while read -r line; do
./corso export onedrive \
"/tmp/corso-export--$line" \
--no-stats \
--backup "$line" \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/export_onedrive_first.txt
done
echo -e "\Export OneDrive test - last entry\n" >> ${CORSO_LOG_FILE}
./corso backup list onedrive 2>/dev/null | tail -n1 | awk '{print $1}' |
while read -r line; do
./corso export onedrive \
"/tmp/corso-export--$line" \
--no-stats \
--backup "$line" \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/export_onedrive_last.txt
done
##########################################################################
# Export SharePoint Test
- name: SharePoint Export test
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\Export SharePoint test\n" >> ${CORSO_LOG_FILE}
echo -e "\Export SharePoint test - first entry\n" >> ${CORSO_LOG_FILE}
./corso backup list sharepoint 2>/dev/null | tail -n+2 | head -n1 | awk '{print $1}' |
while read -r line; do
./corso export sharepoint \
"/tmp/corso-export--$line" \
--no-stats \
--backup "$line" \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/export_sharepoint_first.txt
done
echo -e "\Export SharePoint test - last entry\n" >> ${CORSO_LOG_FILE}
./corso backup list sharepoint 2>/dev/null | tail -n1 | awk '{print $1}' |
while read -r line; do
./corso export sharepoint \
"/tmp/corso-export--$line" \
--no-stats \
--backup "$line" \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/export_sharepoint_last.txt
done
##########################################################################
# Maintenance test
- name: Maintenance test Daily
id: maintenance-test-daily
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\n Maintenance test Daily\n" >> ${CORSO_LOG_FILE}
# Run with the force flag so it doesn't fail if the github runner
# hostname isn't what's expected. This is only safe because we can
# guarantee only one runner will be executing maintenance at a time.
./corso repo maintenance --mode metadata \
--no-stats \
--hide-progress \
--force \
--json \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/maintenance_metadata.txt
- name: Maintenance test Weekly
id: maintenance-test-weekly
timeout-minutes: 30
run: |
if [[ $(date +%A) == "Saturday" ]]; then
set -euo pipefail
echo -e "\n Maintenance test Weekly\n" >> ${CORSO_LOG_FILE}
./corso repo maintenance --mode complete \
--no-stats \
--hide-progress \
--force \
--json \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/maintenance_complete.txt
# TODO(ashmrtn): We can also check that non-current versions of
# blobs don't have their retention extended if we want.
#
# Assuming no failures during full maintenance, current versions of
# objects with the below versions should have retention times that
# are roughly (now + RETENTION_DURATION). We can explicitly check
# for this, but leave a little breathing room since maintenance may
# take some time to run.
#
# If we pick a live-retention-duration that is too small then we'll
# start seeing failures. The check for live objects is a lower bound
# check.
#
# Blob prefixes are as follows:
# - kopia.blobcfg - repo-wide config
# - kopia.repository - repo-wide config
# - p - data pack blobs (i.e. file data)
# - q - metadata pack blobs (i.e. manifests, directory listings, etc)
# - x - index blobs
./s3checker \
--bucket ${{ secrets.CI_RETENTION_TESTS_S3_BUCKET }} \
--prefix ${{ env.PREFIX }} \
--retention-mode ${{ env.RETENTION_MODE }} \
--live-retention-duration "$((${{ env.RETENTION_DURATION }}-1))h" \
--object-prefix "kopia.blobcfg" \
--object-prefix "kopia.repository" \
--object-prefix "p" \
--object-prefix "q" \
--object-prefix "x"
fi
##########################################################################
# Logging & Notifications
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: always()
uses: actions/upload-artifact@v4
with:
name: longevity-test-log
path: src/testlog/*
if-no-files-found: error
retention-days: 14
- name: Notify failure in teams
if: failure()
uses: ./.github/actions/teams-message
with:
msg: "[CORSO FAILED] Longevity Test"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

View File

@ -30,7 +30,7 @@ jobs:
run:
working-directory: src
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
# single setup and sum cache handling here.
# the results will cascade onto both testing and linting.
@ -48,7 +48,7 @@ jobs:
# ----------------------------------------------------------------------------------------------------
Test-Suite-Trusted:
needs: [ Checkout, SetM365App]
needs: [Checkout, SetM365App]
environment: Testing
runs-on: ubuntu-latest
defaults:
@ -60,7 +60,7 @@ jobs:
AZURE_CLIENT_SECRET_NAME: ${{ needs.SetM365App.outputs.client_secret_env }}
CLIENT_APP_SLOT: ${{ needs.SetM365App.outputs.client_app_slot }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
@ -73,17 +73,12 @@ jobs:
- name: Set up gotestfmt
run: go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
# AWS creds
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
aws-region: us-east-1
# run the tests
- name: Integration Tests
env:
# Use long-lived AWS credentials.
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_SECRET }}
AZURE_CLIENT_ID: ${{ secrets[env.AZURE_CLIENT_ID_NAME] }}
AZURE_CLIENT_SECRET: ${{ secrets[env.AZURE_CLIENT_SECRET_NAME] }}
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
@ -92,60 +87,36 @@ jobs:
CORSO_M365_TEST_USER_ID: ${{ vars.CORSO_M365_TEST_USER_ID }}
CORSO_SECONDARY_M365_TEST_USER_ID: ${{ vars.CORSO_SECONDARY_M365_TEST_USER_ID }}
CORSO_PASSPHRASE: ${{ secrets.INTEGRATION_TEST_CORSO_PASSPHRASE }}
CORSO_LOG_FILE: ${{ github.workspace }}/testlog/run-nightly.log
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-nightly.log
LOG_GRAPH_REQUESTS: true
S3_BUCKET: ${{ secrets.CI_TESTS_S3_BUCKET }}
run: |
set -euo pipefail
go test \
-tags testing \
-json \
-v \
-failfast \
-p 1 \
-timeout 15m \
-timeout 2h \
./... 2>&1 | tee ./testlog/gotest-nightly.log | gotestfmt -hide successful-tests
##########################################################################################################################################
##########################################################################################################################################
# Logging & Notifications
# Logging & Notifications
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: nightly-test-log
path: src/testlog/*
if-no-files-found: error
retention-days: 14
- name: SHA info
id: sha-info
- name: Notify failure in teams
if: failure()
run: |
echo ${GITHUB_REF#refs/heads/}-${GITHUB_SHA}
echo SHA=${GITHUB_REF#refs/heads/}-${GITHUB_SHA} >> $GITHUB_OUTPUT
echo RUN_URL=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} >> $GITHUB_OUTPUT
echo COMMIT_URL=${{ github.server_url }}/${{ github.repository }}/commit/${GITHUB_SHA} >> $GITHUB_OUTPUT
- name: Send Github Action failure to Slack
id: slack-notification
if: failure()
uses: slackapi/slack-github-action@v1.24.0
uses: ./.github/actions/teams-message
with:
payload: |
{
"text": "Nightly test failure - build: ${{ job.status }} - SHA: ${{ steps.sha-info.outputs.SHA }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "[FAILED] Nightly Checks :: <${{ steps.sha-info.outputs.RUN_URL }}|[Logs]> <${{ steps.sha-info.outputs.COMMIT_URL }}|[Base]>\nCommit: <${{ steps.sha-info.outputs.COMMIT_URL }}|${{ steps.sha-info.outputs.SHA }}>"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
msg: "[COROS FAILED] Nightly Checks"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

View File

@ -13,13 +13,13 @@ jobs:
steps:
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@v1
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: Slash Command Dispatch
uses: peter-evans/slash-command-dispatch@v3
uses: peter-evans/slash-command-dispatch@v4
env:
TOKEN: ${{ steps.generate_token.outputs.token }}
with:

View File

@ -6,7 +6,7 @@ on:
workflow_dispatch:
inputs:
user:
description: 'User to run sanity test on'
description: "User to run sanity test on"
permissions:
# required to retrieve AWS credentials
@ -23,7 +23,7 @@ jobs:
uses: alcionai/corso/.github/workflows/accSelector.yaml@main
Sanity-Tests:
needs: [ SetM365App ]
needs: [SetM365App]
environment: Testing
runs-on: ubuntu-latest
env:
@ -38,18 +38,17 @@ jobs:
CORSO_LOG_DIR: ${{ github.workspace }}/src/testlog
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-sanity.log
RESTORE_DEST_PFX: Corso_Test_Sanity_
TEST_USER: ${{ github.event.inputs.user != '' && github.event.inputs.user || secrets.CORSO_M365_TEST_USER_ID }}
TEST_USER: ${{ github.event.inputs.user != '' && github.event.inputs.user || vars.CORSO_M365_TEST_USER_ID }}
defaults:
run:
working-directory: src
##########################################################################################################################################
# setup
##########################################################################################################################################
# setup
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
@ -57,13 +56,16 @@ jobs:
go-version-file: src/go.mod
- run: go build -o corso
timeout-minutes: 10
- run: go build -o sanity-test ./cmd/sanity_test
timeout-minutes: 10
- run: mkdir ${CORSO_LOG_DIR}
##########################################################################################################################################
##########################################################################################################################################
# Pre-Run cleanup
# Pre-Run cleanup
# unlike CI tests, sanity tests are not expected to run concurrently.
# however, the sanity yaml concurrency is set to a maximum of 1 run, preferring
@ -77,6 +79,7 @@ jobs:
echo "NOW=$(date +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
- name: Purge CI-Produced Folders for Users
timeout-minutes: 30
uses: ./.github/actions/purge-m365-data
with:
user: ${{ env.TEST_USER }}
@ -87,30 +90,39 @@ jobs:
azure-tenant-id: ${{ secrets.TENANT_ID }}
m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }}
m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }}
azure-pnp-client-id: ${{ secrets.AZURE_PNP_CLIENT_ID }}
azure-pnp-client-cert: ${{ secrets.AZURE_PNP_CLIENT_CERT }}
tenant-domain: ${{ vars.TENANT_DOMAIN }}
- name: Purge CI-Produced Folders for Sites
timeout-minutes: 30
if: always()
uses: ./.github/actions/purge-m365-data
with:
site: ${{ secrets.CORSO_M365_TEST_SITE_URL }}
site: ${{ vars.CORSO_M365_TEST_SITE_URL }}
folder-prefix: ${{ env.RESTORE_DEST_PFX }}
libraries: ${{ vars.CORSO_M365_TEST_SITE_LIBRARIES }}
libraries: ${{ vars.CORSO_M365_TEST_SITE_LIBRARIES }}
older-than: ${{ env.NOW }}
azure-client-id: ${{ secrets[needs.SetM365App.outputs.client_id_env] }}
azure-client-secret: ${{ secrets[needs.SetM365App.outputs.client_secret_env] }}
azure-tenant-id: ${{ secrets.TENANT_ID }}
m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }}
m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }}
azure-pnp-client-id: ${{ secrets.AZURE_PNP_CLIENT_ID }}
azure-pnp-client-cert: ${{ secrets.AZURE_PNP_CLIENT_CERT }}
tenant-domain: ${{ vars.TENANT_DOMAIN }}
##########################################################################################################################################
##########################################################################################################################################
# Repository commands
# Repository commands
- name: Version Test
timeout-minutes: 10
run: |
./corso --version | grep -c 'Corso version:'
- name: Repo init test
timeout-minutes: 10
id: repo-init
run: |
set -euo pipefail
@ -132,6 +144,7 @@ jobs:
echo result="$prefix" >> $GITHUB_OUTPUT
- name: Repo connect test
timeout-minutes: 10
run: |
set -euo pipefail
echo -e "\nRepo connect test\n" >> ${{ env.CORSO_LOG_FILE }}
@ -148,13 +161,27 @@ jobs:
exit 1
fi
##########################################################################################################################################
# Run maintenance on an empty repo just to make sure the command still
# works.
- name: Repo maintenance test
timeout-minutes: 30
run: |
set -euo pipefail
echo -e "\nRepo maintenance test\n" >> ${{ env.CORSO_LOG_FILE }}
./corso repo maintenance \
--no-stats \
--hide-progress \
--mode complete \
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/gotest-repo-maintenance.log
# Exchange
##########################################################################################################################################
# Exchange
# generate new entries to roll into the next load test
# only runs if the test was successful
- name: Exchange - Create new data
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
go run . exchange emails \
@ -164,60 +191,68 @@ jobs:
--count 4
- name: Exchange - Backup
timeout-minutes: 30
id: exchange-backup
uses: ./.github/actions/backup-restore-test
with:
service: exchange
kind: initial
kind: first-backup
backup-args: '--mailbox "${{ env.TEST_USER }}" --data "email"'
restore-args: '--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
restore-args: "--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
- name: Exchange - Incremental backup
timeout-minutes: 30
id: exchange-backup-incremental
uses: ./.github/actions/backup-restore-test
with:
service: exchange
kind: incremental
backup-args: '--mailbox "${{ env.TEST_USER }}" --data "email"'
restore-args: '--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
base-backup: ${{ steps.exchange-backup.outputs.backup-id }}
restore-args: "--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
backup-id: ${{ steps.exchange-backup.outputs.backup-id }}
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
- name: Exchange - Non delta backup
timeout-minutes: 30
id: exchange-backup-non-delta
uses: ./.github/actions/backup-restore-test
with:
service: exchange
kind: non-delta
backup-args: '--mailbox "${{ env.TEST_USER }}" --data "email" --disable-delta'
restore-args: '--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
base-backup: ${{ steps.exchange-backup.outputs.backup-id }}
restore-args: "--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
backup-id: ${{ steps.exchange-backup.outputs.backup-id }}
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
- name: Exchange - Incremental backup after non-delta
timeout-minutes: 30
id: exchange-backup-incremental-after-non-delta
uses: ./.github/actions/backup-restore-test
with:
service: exchange
kind: non-delta-incremental
backup-args: '--mailbox "${{ env.TEST_USER }}" --data "email"'
restore-args: '--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}'
base-backup: ${{ steps.exchange-backup.outputs.backup-id }}
restore-args: "--email-folder ${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.repo-init.outputs.result }}"
backup-id: ${{ steps.exchange-backup.outputs.backup-id }}
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
##########################################################################################################################################
##########################################################################################################################################
# Onedrive
# Onedrive
# generate new entries for test
- name: OneDrive - Create new data
id: new-data-creation-onedrive
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
suffix=$(date +"%Y-%m-%d_%H-%M-%S")
@ -233,17 +268,20 @@ jobs:
- name: OneDrive - Backup
id: onedrive-backup
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: onedrive
kind: initial
kind: first-backup
backup-args: '--user "${{ env.TEST_USER }}"'
restore-args: '--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }} --restore-permissions'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}'
restore-args: "--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
# generate some more enteries for incremental check
- name: OneDrive - Create new data (for incremental)
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
go run . onedrive files \
@ -255,28 +293,31 @@ jobs:
- name: OneDrive - Incremental backup
id: onedrive-incremental
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: onedrive
kind: incremental
backup-args: '--user "${{ env.TEST_USER }}"'
restore-args: '--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }} --restore-permissions'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}'
restore-args: "--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-onedrive.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
##########################################################################################################################################
##########################################################################################################################################
# Sharepoint
# Sharepoint Library
# generate new entries for test
- name: SharePoint - Create new data
id: new-data-creation-sharepoint
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
suffix=$(date +"%Y-%m-%d_%H-%M-%S")
go run . sharepoint files \
--site ${{ secrets.CORSO_M365_TEST_SITE_URL }} \
--site ${{ vars.CORSO_M365_TEST_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
@ -287,21 +328,25 @@ jobs:
- name: SharePoint - Backup
id: sharepoint-backup
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: sharepoint
kind: initial
backup-args: '--site "${{ secrets.CORSO_M365_TEST_SITE_URL }}"'
restore-args: '--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }} --restore-permissions'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}'
kind: first-backup
backup-args: '--site "${{ vars.CORSO_M365_TEST_SITE_URL }}" --data libraries'
restore-args: "--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
category: libraries
# generate some more enteries for incremental check
- name: SharePoint - Create new data (for incremental)
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
go run . sharepoint files \
--site ${{ secrets.CORSO_M365_TEST_SITE_URL }} \
--site ${{ vars.CORSO_M365_TEST_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
@ -310,56 +355,186 @@ jobs:
- name: SharePoint - Incremental backup
id: sharepoint-incremental
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: sharepoint
kind: incremental
backup-args: '--site "${{ secrets.CORSO_M365_TEST_SITE_URL }}"'
restore-args: '--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }} --restore-permissions'
test-folder: '${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}'
backup-args: '--site "${{ vars.CORSO_M365_TEST_SITE_URL }}" --data libraries'
restore-args: "--folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}"
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-sharepoint.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
category: libraries
##########################################################################################################################################
##########################################################################################################################################
# Logging & Notifications
# Sharepoint Lists
# generate new entries for test
# The `awk | tr | sed` command chain is used to get a comma separated list of SharePoint list names.
- name: SharePoint Lists - Create new data
id: new-data-creation-sharepoint-lists
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
suffix=$(date +"%Y-%m-%d_%H-%M-%S")
go run . sharepoint lists \
--site ${{ vars.CORSO_M365_TEST_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
--destination ${{ env.RESTORE_DEST_PFX }}$suffix \
--count 4 |
awk 'NR > 1 {print $2}' | tr '\n' ',' | sed -e 's/,$//' -e 's/^/result=/' |
tee $GITHUB_OUTPUT
# Extracts the common prefix for the Sharepoint list names.
- name: SharePoint Lists - Store restore container
id: sharepoint-lists-store-restore-container
run: |
echo ${{ steps.new-data-creation-sharepoint-lists.outputs.result }} |
cut -d',' -f1 |
cut -d'_' -f1,2,3,4,5 |
sed -e 's/^/result=/' |
tee $GITHUB_OUTPUT
- name: SharePoint Lists - Backup
id: sharepoint-lists-backup
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: sharepoint
kind: first-backup-lists
backup-args: '--site "${{ vars.CORSO_M365_TEST_SITE_URL }}" --data lists'
restore-args: "--list ${{ steps.new-data-creation-sharepoint-lists.outputs.result }} --destination Corso_Test_Sanity_Restore_$(date +'%Y%m%d_%H%M%S')"
export-args: "--list ${{ steps.new-data-creation-sharepoint-lists.outputs.result }}"
restore-container: "${{ steps.sharepoint-lists-store-restore-container.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
category: lists
on-collision: copy
# generate some more enteries for incremental check
- name: SharePoint Lists - Create new data (for incremental)
id: inc-data-creation-sharepoint-lists
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
suffix=$(date +"%Y-%m-%d_%H-%M-%S")
go run . sharepoint lists \
--site ${{ vars.CORSO_M365_TEST_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
--destination ${{ env.RESTORE_DEST_PFX }}$suffix \
--count 4 |
awk 'NR > 1 {print $2}' | tr '\n' ',' | sed -e 's/,$//' -e 's/^/result=/' |
tee $GITHUB_OUTPUT
- name: SharePoint Lists - Store restore container (for incremental)
id: sharepoint-lists-store-restore-container-inc
run: |
echo ${{ steps.inc-data-creation-sharepoint-lists.outputs.result }} |
cut -d',' -f1 |
cut -d'_' -f1,2,3,4,5 |
sed -e 's/^/result=/' |
tee $GITHUB_OUTPUT
- name: SharePoint Lists - Incremental backup
id: sharepoint-lists-incremental
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: sharepoint
kind: incremental-lists
backup-args: '--site "${{ vars.CORSO_M365_TEST_SITE_URL }}" --data lists'
restore-args: "--list ${{ steps.inc-data-creation-sharepoint-lists.outputs.result }},${{ steps.new-data-creation-sharepoint-lists.outputs.result }} --destination Corso_Test_Sanity_Restore_$(date +'%Y%m%d_%H%M%S')"
export-args: "--list ${{ steps.inc-data-creation-sharepoint-lists.outputs.result }},${{ steps.new-data-creation-sharepoint-lists.outputs.result }}"
restore-container: "${{ steps.sharepoint-lists-store-restore-container-inc.outputs.result }},${{ steps.sharepoint-lists-store-restore-container.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
category: lists
on-collision: copy
##########################################################################################################################################
# Groups and Teams
# generate new entries for test
- name: Groups - Create new data
id: new-data-creation-groups
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
suffix=$(date +"%Y-%m-%d_%H-%M-%S")
go run . sharepoint files \
--site ${{ vars.CORSO_M365_TEST_GROUPS_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
--destination ${{ env.RESTORE_DEST_PFX }}$suffix \
--count 4
echo result="${suffix}" >> $GITHUB_OUTPUT
- name: Groups - Backup
id: groups-backup
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: groups
kind: first-backup
backup-args: '--group "${{ vars.CORSO_M365_TEST_TEAM_ID }}" --data messages,libraries'
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-groups.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
# generate some more entries for incremental check
- name: Groups - Create new data (for incremental)
timeout-minutes: 30
working-directory: ./src/cmd/factory
run: |
go run . sharepoint files \
--site ${{ vars.CORSO_M365_TEST_GROUPS_SITE_URL }} \
--user ${{ env.TEST_USER }} \
--secondaryuser ${{ env.CORSO_SECONDARY_M365_TEST_USER_ID }} \
--tenant ${{ secrets.TENANT_ID }} \
--destination ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-groups.outputs.result }} \
--count 4
- name: Groups - Incremental backup
id: groups-incremental
timeout-minutes: 30
uses: ./.github/actions/backup-restore-test
with:
service: groups
kind: incremental
backup-args: '--group "${{ vars.CORSO_M365_TEST_TEAM_ID }}" --data messages,libraries'
restore-args: '--site "${{ vars.CORSO_M365_TEST_GROUPS_SITE_URL }}" --folder ${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-groups.outputs.result }}'
restore-container: "${{ env.RESTORE_DEST_PFX }}${{ steps.new-data-creation-groups.outputs.result }}"
log-dir: ${{ env.CORSO_LOG_DIR }}
with-export: true
##########################################################################################################################################
# Logging & Notifications
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sanity-test-log
path: ${{ env.CORSO_LOG_DIR }}/*
if-no-files-found: error
retention-days: 14
- name: SHA info
id: sha-info
- name: Notify failure in teams
if: failure()
run: |
echo ${GITHUB_REF#refs/heads/}-${GITHUB_SHA}
echo SHA=${GITHUB_REF#refs/heads/}-${GITHUB_SHA} >> $GITHUB_OUTPUT
echo RUN_URL=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} >> $GITHUB_OUTPUT
echo COMMIT_URL=${{ github.server_url }}/${{ github.repository }}/commit/${GITHUB_SHA} >> $GITHUB_OUTPUT
- name: Send Github Action failure to Slack
id: slack-notification
if: failure()
uses: slackapi/slack-github-action@v1.24.0
uses: ./.github/actions/teams-message
with:
payload: |
{
"text": "Sanity test failure - build: ${{ job.status }} - SHA: ${{ steps.sha-info.outputs.SHA }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "[FAILED] Sanity Checks :: <${{ steps.sha-info.outputs.RUN_URL }}|[Logs]> <${{ github.event.pull_request.html_url || github.event.head_commit.url }}|[Base]>\nCommit: <${{ steps.sha-info.outputs.COMMIT_URL }}|${{ steps.sha-info.outputs.SHA }}>"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
msg: "[CORSO FAILED] Sanity Tests"
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

23
.github/workflows/testnotification.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: Manually Test Teams Action
on:
workflow_dispatch:
inputs:
msg:
description: 'Message to send:'
required: true
default: 'This is a test message'
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Send notification
uses: ./.github/actions/teams-message
with:
msg: ${{ github.event.inputs.msg }}
teams_url: ${{ secrets.TEAMS_CORSO_CI_WEBHOOK_URL }}

View File

@ -21,7 +21,7 @@ jobs:
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0 # needed to get latest tag
@ -40,7 +40,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Lint Website
uses: ./.github/actions/website-linting
@ -56,7 +56,7 @@ jobs:
working-directory: website
steps:
- uses: actions/checkout@v3 # need to checkout to make the action available
- uses: actions/checkout@v4 # need to checkout to make the action available
- name: Publish website
uses: ./.github/actions/publish-website

View File

@ -1,26 +0,0 @@
name: Weekly S3 Test Bucket Cleanup
on:
schedule:
# every saturday at 23:59 (11:59pm)
- cron: "59 23 * * 6"
permissions:
# required to retrieve AWS credentials
id-token: write
jobs:
S3-Test-Cleanup:
runs-on: ubuntu-latest
environment: Testing
steps:
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
role-session-name: integration-testing
aws-region: us-east-1
- name: Delete all files in the test bucket
run: |
aws s3 rm s3://${{ secrets.CI_TESTS_S3_BUCKET }} --recursive

View File

@ -6,11 +6,201 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] (beta)
### Fixed
- Handle the case where an email or event cannot be retrieved from Exchange due to an `ErrorCorruptData` error. Corso will skip over the item but report it in the backup summary.
- Emails attached within other emails are now correctly exported
- Gracefully handle email and post attachments without name when exporting to eml
- Use correct timezone for event start and end times in Exchange exports (helps fix issues in relative recurrence patterns)
- Fixed an issue causing exports dealing with calendar data to have high memory usage
## [v0.19.0] (beta) - 2024-02-06
### Added
- Events can now be exported from Exchange backups as .ics files.
- Update repo init configuration to reduce the total number of GET requests sent
to the object store when using corso. This affects repos that have many
backups created in them per day the most.
- Feature Preview: Corso now supports backup, export & restore of SharePoint lists. Lists backup can be initiated using `corso backup create sharepoint --site <site-url> --data lists`.
- Group mailbox(aka conversations) backup and export support is now officially available. Group mailbox posts can be exported as `.eml` files.
### Fixed
- Retry transient 400 "invalidRequest" errors during onedrive & sharepoint backup.
- Backup attachments associated with group mailbox items.
- Groups and Teams backups no longer fail when a resource has no display name.
- Contacts in-place restore failed if the restore destination was empty.
- Link shares with external users are now backed up and restored as expected
- Ensure persistent repo config is populated on repo init if repo init failed partway through during the previous init attempt.
### Changed
- When running `backup details` on an empty backup returns a more helpful error message.
- Backup List additionally shows the data category for each backup.
- Remove hidden `--succeed-if-exists` flag for repo init. Repo init will now succeed without error if run on an existing repo with the same passphrase.
### Known issues
- Backing up a group mailbox item may fail if it has a very large number of attachments (500+).
- Event description for exchange exports might look slightly different for certain events.
- Exchange in-place restore may restore items in well-known folders to different folders if the user has well-known folder names change based on locale and has updated the locale since the backup was created.
- In-place Exchange contacts restore will merge items in folders named "Contacts" or "contacts" into the default folder.
- External users with access through shared links will not receive these links as they are not sent via email during restore.
- Graph API has limited support for certain column types such as `location`, `hyperlink/picture`, and `metadata`. Restoring SharePoint list items containing these columns will result in differences compared to the original items.
- SharePoint list item attachments are not available due to graph API limitations.
- Group mailbox restore is not supported due to limited Graph API support for creating mailbox items.
- Due to Graph API limitations, any group mailbox items present in subfolders other than Inbox aren't backed up.
## [v0.18.0] (beta) - 2024-01-02
### Fixed
- Handle the case where an email cannot be retrieved from Exchange due to an `ErrorInvalidRecipients` error. In
this case, Corso will skip over the item but report this in the backup summary.
- Fix `ErrorItemNotFound` errors when restoring emails with multiple attachments.
- Avoid Graph SDK `Requests must contain extension changes exclusively.` errors by removing server-populated field from restored event items.
- Improve Group mailbox(conversations) backup performance by only downloading new items or items with modified content.
- Handle cases where Exchange backup stored invalid JSON blobs if there were special characters in the user content. These would result in errors during restore.
### Known issues
- Restoring OneDrive, SharePoint, or Teams & Groups items shared with external users while the tenant or site is configured to not allow sharing with external users will not restore permissions.
### Added
- Contacts can now be exported from Exchange backups as .vcf files
## [v0.17.0] (beta) - 2023-12-11
### Changed
- Memory optimizations for large scale OneDrive and Sharepoint backups.
### Fixed
- Resolved a possible deadlock when backing up Teams Channel Messages.
- Fixed an attachment download failure(ErrorTooManyObjectsOpened) during exchange backup.
## [v0.16.0] (beta) - 2023-11-28
### Added
- Export support for emails in exchange backups as `.eml` files.
- More colorful and informational cli display.
### Changed
- The file extension in Teams messages exports has switched to json to match the content type.
- SDK consumption of the /services/m365 package has shifted from independent functions to a client-based api.
- SDK consumers can now configure the /services/m365 graph api client configuration when constructing a new m365 client.
- Dynamic api rate limiting allows small-scale Exchange backups to complete more quickly.
- Kopia's local config files now uses unique filenames that match Corso configurations. This can protect concurrent Corso operations from mistakenly clobbering storage configs during runtime.
### Fixed
- Handle OneDrive folders being deleted and recreated midway through a backup.
- Automatically re-run a full delta query on incremental if the prior backup is found to have malformed prior-state information.
- Retry drive item permission downloads during long-running backups after the jwt token expires and refreshes.
- Retry item downloads during connection timeouts.
## [v0.15.0] (beta) - 2023-10-31
### Added
- Added `corso repo update-passphrase` command to update the passphrase of an existing Corso repository
- Added Subject and Message preview to channel messages detail entries
### Fixed
- SharePoint backup would fail if any site had an empty display name
- Fix a bug with exports hanging post completion
- Handle 503 errors in nested OneDrive packages
### Changed
- Item Details formatting in Groups and Teams backups
## [v0.14.2] (beta) - 2023-10-17
### Added
- Skips graph calls for expired item download URLs.
- Export operation now shows the stats at the end of the run
### Fixed
- Catch and report cases where a protected resource is locked out of access. SDK consumers have a new errs sentinel that allows them to check for this case.
- Fix a case where missing item LastModifiedTimes could cause incremental backups to fail.
- Email size metadata was incorrectly set to the size of the last attachment. Emails will now correctly report the size of the mail content plus the size of all attachments.
- Improves the filtering capabilities for Groups restore and backup
- Improve check to skip OneNote files that cannot be downloaded.
- Fix Groups backup for non Team groups
### Changed
- Groups restore now expects the site whose backup we should restore
## [v0.14.0] (beta) - 2023-10-09
### Added
- Enables local or network-attached storage for Corso repositories.
- Reduce backup runtime for OneDrive and SharePoint incremental backups that have no file changes.
- Increase Exchange backup performance by lazily fetching data only for items whose content changed.
- Added `--backups` flag to delete multiple backups in `corso backup delete` command.
- Backup now includes all sites that belongs to a team, not just the root site.
### Fixed
- Teams Channels that cannot support delta tokens (those without messages) fall back to non-delta enumeration and no longer fail a backup.
### Known issues
- Restoring the data into a different Group from the one it was backed up from is not currently supported
### Other
- Groups and Teams service support is still in feature preview
## [v0.13.0] (beta) - 2023-09-18
### Added
- Groups and Teams service support available as a feature preview! Channel messages and Files are now available for backup and restore in the CLI: `corso backup create groups --group '*'`
- The cli commands for "groups" and "teams" can be used interchangeably, and will operate on the same backup data.
- New permissions are required to backup Channel messages. See the [Corso Documentation](https://corsobackup.io/docs/setup/m365-access/#configure-required-permissions) for complete details.
Even though Channel message restoration is not available, message write permissions are included to cover future integration.
- This is a feature preview, and may be subject to breaking changes based on feedback and testing.
### Changed
- Switched to Go 1.21
- SharePoint exported libraries are now exported with a `Libraries` prefix.
### Fixed
- Contacts backups no longer slices root-folder data if outlook is set to languages other than english.
- Failed backups if the --disable-incrementals flag was passed when there was a valid merge base under some conditions.
## [v0.12.0] (beta) - 2023-08-29
### Added
- Added `export` command to export data from OneDrive and SharePoint backups as individual files or as a single zip file.
- Restore commands now accept an optional resource override with the `--to-resource` flag. This allows restores to recreate backup data within different mailboxes, sites, and users.
- Improve `--mask-sensitive-data` logging mode.
- Reliability: Handle connection cancellation and resets observed when backing up or restoring large data sets.
- Reliability: Recover from Graph SDK panics when the Graph API returns incomplete responses.
- Performance: Improve backup delete performance by batching multiple storage operations into a single operation.
### Fixed
- SharePoint document libraries deleted after the last backup can now be restored.
- Restore requires the protected resource to have access to the service being restored.
- SharePoint data from multiple document libraries are not merged in exports
- `corso backup delete` was not removing the backup details data associated with that snapshot
- Fix OneDrive restores could fail with a concurrent map write error
- Fix backup list displaying backups that had errors
- Fix OneDrive backup could fail if item was deleted during backup
- Exchange backups would fail attempting to use delta tokens even if the user was over quota
## [v0.11.1] (beta) - 2023-07-20
### Fixed
- Allow repo connect to succeed when a `corso.toml` file was not provided but configuration is specified using environment variables and flags.
## [v0.11.0] (beta) - 2023-07-18
### Added
- Drive items backup and restore link shares
- Restore commands now accept an optional top-level restore destination with the `--destination` flag. Setting the destination to '/' will restore items back into their original location.
- Restore commands can specify item collision behavior. Options are Skip (default), Replace, and Copy.
- Introduced repository maintenance commands to help optimize the repository as well as unreferenced data.
### Fixed
- Return a ServiceNotEnabled error when a tenant has no active SharePoint license.
- Added retries for http/2 stream connection failures when downloading large item content.
- SharePoint document libraries that were deleted after the last backup can now be restored.
### Known issues
- If a link share is created for an item with inheritance disabled
(via the Graph API), the link shares restored in that item will
not be inheritable by children
- Link shares with password protection can't be restored
## [v0.10.0] (beta) - 2023-06-26
@ -24,6 +214,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Handle OLE conversion errors when trying to fetch attachments
- Fix uploading large attachments for emails and calendar
- Fixed high memory use in OneDrive backup related to logging
- Return a ServiceNotEnabled error when a tenant has no active SharePoint license.
### Changed
- Switched to Go 1.20
@ -311,7 +502,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Miscellaneous
- Optional usage statistics reporting ([RM-35](https://github.com/alcionai/corso-roadmap/issues/35))
[Unreleased]: https://github.com/alcionai/corso/compare/v0.10.0...HEAD
[Unreleased]: https://github.com/alcionai/corso/compare/v0.19.0...HEAD
[v0.19.0]: https://github.com/alcionai/corso/compare/v0.18.0...v0.19.0
[v0.18.0]: https://github.com/alcionai/corso/compare/v0.17.0...v0.18.0
[v0.17.0]: https://github.com/alcionai/corso/compare/v0.16.0...v0.17.0
[v0.16.0]: https://github.com/alcionai/corso/compare/v0.15.0...v0.16.0
[v0.15.0]: https://github.com/alcionai/corso/compare/v0.14.0...v0.15.0
[v0.14.0]: https://github.com/alcionai/corso/compare/v0.13.0...v0.14.0
[v0.13.0]: https://github.com/alcionai/corso/compare/v0.12.0...v0.13.0
[v0.12.0]: https://github.com/alcionai/corso/compare/v0.11.1...v0.12.0
[v0.11.1]: https://github.com/alcionai/corso/compare/v0.11.0...v0.11.1
[v0.11.0]: https://github.com/alcionai/corso/compare/v0.10.0...v0.11.0
[v0.10.0]: https://github.com/alcionai/corso/compare/v0.9.0...v0.10.0
[v0.9.0]: https://github.com/alcionai/corso/compare/v0.8.1...v0.9.0
[v0.8.0]: https://github.com/alcionai/corso/compare/v0.7.1...v0.8.0

View File

@ -1,3 +1,6 @@
> [!NOTE]
> **The Corso project is no longer actively maintained and has been archived**.
<p align="center">
<img src="https://github.com/alcionai/corso/blob/main/website/static/img/corso_logo.svg?raw=true" alt="Corso Logo" width="100" />
</p>

View File

@ -1,4 +1,4 @@
FROM golang:1.19-alpine as builder
FROM golang:1.21-alpine as builder
WORKDIR /go/src/app
COPY src .

View File

@ -12,7 +12,7 @@ usage() {
}
ROOT=$(dirname $(dirname $(readlink -f $0)))
GOVER=1.19 # go version
GOVER=1.21 # go version
CORSO_BUILD_CACHE="/tmp/.corsobuild" # shared persistent cache
# Figure out os and architecture

View File

@ -3,14 +3,21 @@ run:
linters:
enable:
- errcheck
- exhaustive
- forbidigo
- gci
- gofmt
- gofumpt
- errcheck
- forbidigo
- gosimple
- govet
- ineffassign
- lll
- loggercheck
- misspell
- revive
- unused
- usestdlibvars
- wsl
disable:
@ -19,6 +26,11 @@ linters:
- staticcheck
linters-settings:
exhaustive:
check:
- switch
default-signifies-exhaustive: false
explicit-exhaustive-switch: true
gci:
sections:
- standard
@ -43,10 +55,13 @@ linters-settings:
# String formatting should be avoided in favor of structured errors (ie: err.With(k, v)).
- '(errors|fmt)\.(New|Stack|Wrap|Error)f?\((# error handling should use clues pkg)?'
# Avoid Warn-level logging in favor of Info or Error.
- 'Warn[wf]?\((# logging should use Info or Error)?'
- 'Warnw?f?\((# logging should use Info or Error)?'
# Prefer suite.Run(name, func() {}) for subtests as testify has it instead
# of suite.T().Run(name, func(t *testing.T) {}).
- '(T\(\)|\st[a-zA-Z0-9]*)\.Run(# prefer testify suite.Run(name, func()) )?'
# Prefer packing ctx values into the error using NewWC, WrapWC, or StackWC
# instead of New|Stack|Wrap().WithClues(ctx)
- 'WithClues(# prefer the builderWC variant - ex: StackWC(ctx, ...))?'
lll:
line-length: 120
revive:
@ -119,7 +134,13 @@ issues:
linters:
- forbidigo
text: "context.(Background|TODO)"
- path: internal/m365/graph/betasdk
- path: internal/m365/collection/drive/collections_test.go
linters:
- lll
- path: internal/m365/collection/drive/collections_tree_test.go
linters:
- lll
- path: pkg/services/m365/api/graph/betasdk
linters:
- wsl
- revive

View File

@ -18,13 +18,15 @@ builds:
- -X 'github.com/alcionai/corso/src/internal/events.RudderStackDataPlaneURL={{.Env.RUDDERSTACK_CORSO_DATA_PLANE_URL}}'
archives:
- name_template: "{{ .ProjectName }}_{{ .Tag }}_{{ .Os }}_{{ .Arch }}"
replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
# this name template makes the OS and Arch compatible with the results of uname.
- name_template: >-
{{ .ProjectName }}_
{{- .Tag }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
format: tar.gz
format_overrides:
- goos: windows

View File

@ -0,0 +1,56 @@
{{- /*gotype: github.com/gotesttools/gotestfmt/v2/parser.Package*/ -}}
{{- /*
This template contains the format for an individual package. GitHub actions does not currently support nested groups so
we are creating a stylized header for each package.
*/ -}}
{{- $settings := .Settings -}}
{{- if and (or (not $settings.HideSuccessfulPackages) (ne .Result "PASS")) (or (not $settings.HideEmptyPackages) (ne .Result "SKIP") (ne (len .TestCases) 0)) -}}
{{- if eq .Result "PASS" -}}
{{ "\033" }}[0;32m
{{- else if eq .Result "SKIP" -}}
{{ "\033" }}[0;33m
{{- else -}}
{{ "\033" }}[0;31m
{{- end -}}
📦 {{ .Name }}{{- "\033" }}[0m
{{- with .Coverage -}}
{{- "\033" -}}[0;37m ({{ . }}% coverage){{- "\033" -}}[0m
{{- end -}}
{{- " " -}}({{- .Duration -}})
{{- "\n" -}}
{{- with .Reason -}}
{{- " " -}}🛑 {{ . -}}{{- "\n" -}}
{{- end -}}
{{- with .Output -}}
{{- . -}}{{- "\n" -}}
{{- end -}}
{{- with .TestCases -}}
{{- range . -}}
{{- if or (not $settings.HideSuccessfulTests) (ne .Result "PASS") -}}
::group::
{{- if eq .Result "PASS" -}}
{{ "\033" }}[0;32m✅
{{- else if eq .Result "SKIP" -}}
{{ "\033" }}[0;33m🚧
{{- else -}}
{{ "\033" }}[0;31m❌
{{- end -}}
{{ " " }}{{- .Name -}}
{{- "\033" -}}[0;37m ({{if $settings.ShowTestStatus}}{{.Result}}; {{end}}{{ .Duration -}}
{{- with .Coverage -}}
, coverage: {{ . }}%
{{- end -}})
{{- "\033" -}}[0m
{{- "\n" -}}
{{- with .Output -}}
{{- formatTestOutput . $settings -}}
{{- "\n" -}}
{{- end -}}
::endgroup::{{- "\n" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- "\n" -}}
{{- end -}}

View File

@ -1,5 +1,5 @@
# This must match the version defined in .github/workflows/lint.yaml.
WANTED_LINT_VERSION := 1.52.2
WANTED_LINT_VERSION := 1.54.2
LINT_VERSION := $(shell golangci-lint version | cut -d' ' -f4)
HAS_LINT := $(shell which golangci-lint)
@ -18,7 +18,7 @@ lint: check-lint-version
fmt:
gofumpt -w .
goimports -w .
gci write --skip-generated -s 'standard,default,prefix(github.com/alcionai/corso)' .
gci write --skip-generated -s 'standard' -s 'default' -s 'prefix(github.com/alcionai/corso)' .
check-lint-version: check-lint
@if [ "$(LINT_VERSION)" != "$(WANTED_LINT_VERSION)" ]; then \

View File

@ -11,12 +11,15 @@ import (
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/repo"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/color"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/data"
"github.com/alcionai/corso/src/internal/m365/graph"
"github.com/alcionai/corso/src/internal/observe"
"github.com/alcionai/corso/src/pkg/backup"
"github.com/alcionai/corso/src/pkg/backup/details"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/errs/core"
"github.com/alcionai/corso/src/pkg/logger"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
@ -24,6 +27,8 @@ import (
"github.com/alcionai/corso/src/pkg/store"
)
var ErrEmptyBackup = clues.New("no items in backup")
// ---------------------------------------------------------------------------
// adding commands to cobra
// ---------------------------------------------------------------------------
@ -39,6 +44,8 @@ var serviceCommands = []func(cmd *cobra.Command) *cobra.Command{
addExchangeCommands,
addOneDriveCommands,
addSharePointCommands,
addGroupsCommands,
addTeamsChatsCommands,
}
// AddCommands attaches all `corso backup * *` commands to the parent.
@ -51,33 +58,13 @@ func AddCommands(cmd *cobra.Command) {
backupC.AddCommand(subCommand)
for _, addBackupTo := range serviceCommands {
addBackupTo(subCommand)
sc := addBackupTo(subCommand)
flags.AddAllProviderFlags(sc)
flags.AddAllStorageFlags(sc)
}
}
}
// ---------------------------------------------------------------------------
// common flags and flag attachers for commands
// ---------------------------------------------------------------------------
func addFailedItemsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&flags.ListFailedItemsFV, flags.FailedItemsFN, "show",
"Toggles showing or hiding the list of items that failed.")
}
func addSkippedItemsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&flags.ListSkippedItemsFV, flags.SkippedItemsFN, "show",
"Toggles showing or hiding the list of items that were skipped.")
}
func addRecoveredErrorsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&flags.ListRecoveredErrorsFV, flags.RecoveredErrorsFN, "show",
"Toggles showing or hiding the list of errors which corso recovered from.")
}
// ---------------------------------------------------------------------------
// commands
// ---------------------------------------------------------------------------
@ -183,10 +170,10 @@ func handleDeleteCmd(cmd *cobra.Command, args []string) error {
// standard set of selector behavior that we want used in the cli
var defaultSelectorConfig = selectors.Config{OnlyMatchItemNames: true}
func runBackups(
func genericCreateCommand(
ctx context.Context,
r repository.Repository,
serviceName, resourceOwnerType string,
r repository.Repositoryer,
serviceName string,
selectorSet []selectors.Selector,
ins idname.Cacher,
) error {
@ -203,29 +190,47 @@ func runBackups(
ictx = clues.Add(ctx, "resource_owner_selected", owner)
)
logger.Ctx(ictx).Infof("setting up backup")
bo, err := r.NewBackupWithLookup(ictx, discSel, ins)
if err != nil {
errs = append(errs, clues.Wrap(err, owner).WithClues(ictx))
Errf(ictx, "%v\n", err)
cerr := clues.WrapWC(ictx, err, owner)
errs = append(errs, cerr)
Errf(
ictx,
"%s\nCause: %s",
"Unable to initiate backup",
err.Error())
continue
}
ictx = clues.Add(
ctx,
ictx,
"resource_owner_id", bo.ResourceOwner.ID(),
"resource_owner_name", bo.ResourceOwner.Name())
"resource_owner_name", clues.Hide(bo.ResourceOwner.Name()))
logger.Ctx(ictx).Infof("running backup")
err = bo.Run(ictx)
if err != nil {
if errors.Is(err, graph.ErrServiceNotEnabled) {
logger.Ctx(ctx).Infow("service not enabled", "resource_owner_name", bo.ResourceOwner.Name())
if errors.Is(err, core.ErrServiceNotEnabled) {
logger.Ctx(ictx).Infow("service not enabled",
"resource_owner_id", bo.ResourceOwner.ID(),
"service", serviceName)
continue
}
errs = append(errs, clues.Wrap(err, owner).WithClues(ictx))
Errf(ictx, "%v\n", err)
cerr := clues.Wrap(err, owner)
errs = append(errs, cerr)
Errf(
ictx,
"%s\nCause: %s",
"Unable to complete backup",
err.Error())
continue
}
@ -233,10 +238,10 @@ func runBackups(
bIDs = append(bIDs, string(bo.Results.BackupID))
if !DisplayJSONFormat() {
Infof(ctx, "Done\n")
printBackupStats(ctx, r, string(bo.Results.BackupID))
Infof(ictx, fmt.Sprintf("Backup complete %s %s", observe.Bullet, color.BlueOutput(bo.Results.BackupID)))
printBackupStats(ictx, r, string(bo.Results.BackupID))
} else {
Infof(ctx, "Done - ID: %v\n", bo.Results.BackupID)
Infof(ictx, "Backup complete - ID: %v\n", bo.Results.BackupID)
}
}
@ -245,8 +250,10 @@ func runBackups(
return Only(ctx, clues.Wrap(berrs.Failure(), "Unable to retrieve backup results from storage"))
}
Info(ctx, "Completed Backups:")
backup.PrintAll(ctx, bups)
if len(bups) > 0 {
Info(ctx, "\nCompleted Backups:")
backup.PrintAll(ctx, bups)
}
if len(errs) > 0 {
sb := fmt.Sprintf("%d of %d backups failed:\n", len(errs), len(selectorSet))
@ -264,35 +271,53 @@ func runBackups(
// genericDeleteCommand is a helper function that all services can use
// for the removal of an entry from the repository
func genericDeleteCommand(cmd *cobra.Command, bID, designation string, args []string) error {
func genericDeleteCommand(
cmd *cobra.Command,
pst path.ServiceType,
designation string,
bID, args []string,
) error {
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
ctx := clues.Add(cmd.Context(), "delete_backup_id", bID)
r, _, _, err := utils.GetAccountAndConnect(ctx, repo.S3Overrides())
r, _, err := utils.GetAccountAndConnect(ctx, cmd, pst)
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
if err := r.DeleteBackup(ctx, bID); err != nil {
return Only(ctx, clues.Wrap(err, "Deleting backup "+bID))
if err := r.DeleteBackups(ctx, true, bID...); err != nil {
return Only(ctx, clues.Wrap(err, fmt.Sprintf("Deleting backup %v", bID)))
}
Infof(ctx, "Deleted %s backup %s", designation, bID)
Infof(ctx, "Deleted %s backup %v", designation, bID)
return nil
}
// genericListCommand is a helper function that all services can use
// to display the backup IDs saved within the repository
func genericListCommand(cmd *cobra.Command, bID string, service path.ServiceType, args []string) error {
func genericListCommand(
cmd *cobra.Command,
bID string,
service path.ServiceType,
args []string,
) error {
ctx := cmd.Context()
r, _, _, err := utils.GetAccountAndConnect(ctx, repo.S3Overrides())
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
r, _, err := utils.GetAccountAndConnect(ctx, cmd, service)
if err != nil {
return Only(ctx, err)
}
@ -312,7 +337,8 @@ func genericListCommand(cmd *cobra.Command, bID string, service path.ServiceType
b.Print(ctx)
fe.PrintItems(
ctx,
!ifShow(flags.ListFailedItemsFV),
!ifShow(flags.ListAlertsFV),
!ifShow(flags.FailedItemsFV),
!ifShow(flags.ListSkippedItemsFV),
!ifShow(flags.ListRecoveredErrorsFV))
@ -329,16 +355,78 @@ func genericListCommand(cmd *cobra.Command, bID string, service path.ServiceType
return nil
}
func genericDetailsCommand(
cmd *cobra.Command,
backupID string,
sel selectors.Selector,
) (*details.Details, error) {
ctx := cmd.Context()
r, rdao, err := utils.GetAccountAndConnect(ctx, cmd, path.OneDriveService)
if err != nil {
return nil, clues.Stack(err)
}
defer utils.CloseRepo(ctx, r)
return genericDetailsCore(
ctx,
r,
backupID,
sel,
rdao.Opts)
}
func genericDetailsCore(
ctx context.Context,
bg repository.BackupGetter,
backupID string,
sel selectors.Selector,
opts control.Options,
) (*details.Details, error) {
ctx = clues.Add(ctx, "backup_id", backupID)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
d, _, errs := bg.GetBackupDetails(ctx, backupID)
// TODO: log/track recoverable errors
if errs.Failure() != nil {
if errors.Is(errs.Failure(), data.ErrNotFound) {
return nil, clues.New("no backup exists with the id " + backupID)
}
return nil, clues.Wrap(errs.Failure(), "Failed to get backup details in the repository")
}
if len(d.Entries) == 0 {
return nil, ErrEmptyBackup
}
if opts.SkipReduce {
return d, nil
}
d, err := sel.Reduce(ctx, d, errs)
if err != nil {
return nil, clues.Wrap(err, "filtering backup details to selection")
}
return d, nil
}
// ---------------------------------------------------------------------------
// helper funcs
// ---------------------------------------------------------------------------
func ifShow(flag string) bool {
return strings.ToLower(strings.TrimSpace(flag)) == "show"
}
func printBackupStats(ctx context.Context, r repository.Repository, bid string) {
func printBackupStats(ctx context.Context, r repository.Repositoryer, bid string) {
b, err := r.Backup(ctx, bid)
if err != nil {
logger.CtxErr(ctx, err).Error("finding backup immediately after backup operation completion")
}
b.ToPrintable().Stats.Print(ctx)
Info(ctx, " ")
b.ToPrintable().Stats.PrintProperties(ctx)
}

View File

@ -0,0 +1,97 @@
package backup
import (
"testing"
"github.com/alcionai/clues"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/utils/testdata"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/backup/details"
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
)
type BackupUnitSuite struct {
tester.Suite
}
func TestBackupUnitSuite(t *testing.T) {
suite.Run(t, &BackupUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *BackupUnitSuite) TestGenericDetailsCore() {
t := suite.T()
expected := append(
append(
dtd.GetItemsForVersion(
t,
path.ExchangeService,
path.EmailCategory,
0,
-1),
dtd.GetItemsForVersion(
t,
path.ExchangeService,
path.EventsCategory,
0,
-1)...),
dtd.GetItemsForVersion(
t,
path.ExchangeService,
path.ContactsCategory,
0,
-1)...)
ctx, flush := tester.NewContext(t)
defer flush()
bg := testdata.VersionedBackupGetter{
Details: dtd.GetDetailsSetForVersion(t, 0),
}
sel := selectors.NewExchangeBackup([]string{"user-id"})
sel.Include(sel.AllData())
output, err := genericDetailsCore(
ctx,
bg,
"backup-ID",
sel.Selector,
control.DefaultOptions())
assert.NoError(t, err, clues.ToCore(err))
assert.ElementsMatch(t, expected, output.Entries)
}
func (suite *BackupUnitSuite) TestGenericDetailsCore_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
bg := testdata.VersionedBackupGetter{
Details: &details.Details{
DetailsModel: details.DetailsModel{
Entries: []details.Entry{},
},
},
}
sel := selectors.NewExchangeBackup([]string{"user-id"})
sel.Include(sel.AllData())
_, err := genericDetailsCore(
ctx,
bg,
"backup-ID",
sel.Selector,
control.DefaultOptions())
require.Error(t, err, "has error")
assert.ErrorIs(t, err, ErrEmptyBackup, clues.ToCore(err))
}

View File

@ -1,22 +1,14 @@
package backup
import (
"context"
"github.com/alcionai/clues"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/repo"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/data"
"github.com/alcionai/corso/src/pkg/backup/details"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/selectors"
)
@ -33,7 +25,7 @@ const (
const (
exchangeServiceCommand = "exchange"
exchangeServiceCommandCreateUseSuffix = "--mailbox <email> | '" + flags.Wildcard + "'"
exchangeServiceCommandDeleteUseSuffix = "--backup <backupId>"
exchangeServiceCommandDeleteUseSuffix = "--backups <backupId>"
exchangeServiceCommandDetailsUseSuffix = "--backup <backupId>"
)
@ -47,8 +39,9 @@ corso backup create exchange --mailbox alice@example.com,bob@example.com --data
# Backup all Exchange data for all M365 users
corso backup create exchange --mailbox '*'`
exchangeServiceCommandDeleteExamples = `# Delete Exchange backup with ID 1234abcd-12ab-cd34-56de-1234abcd
corso backup delete exchange --backup 1234abcd-12ab-cd34-56de-1234abcd`
exchangeServiceCommandDeleteExamples = `# Delete Exchange backup with IDs 1234abcd-12ab-cd34-56de-1234abcd \
and 1234abcd-12ab-cd34-56de-1234abce
corso backup delete exchange --backups 1234abcd-12ab-cd34-56de-1234abcd,1234abcd-12ab-cd34-56de-1234abce`
exchangeServiceCommandDetailsExamples = `# Explore items in Alice's latest backup (1234abcd...)
corso backup details exchange --backup 1234abcd-12ab-cd34-56de-1234abcd
@ -68,15 +61,11 @@ corso backup details exchange --backup 1234abcd-12ab-cd34-56de-1234abcd \
// called by backup.go to map subcommands to provider-specific handling.
func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
var (
c *cobra.Command
fs *pflag.FlagSet
)
var c *cobra.Command
switch cmd.Use {
case createCommand:
c, fs = utils.AddCommand(cmd, exchangeCreateCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, exchangeCreateCmd())
c.Use = c.Use + " " + exchangeServiceCommandCreateUseSuffix
c.Example = exchangeServiceCommandCreateExamples
@ -85,31 +74,21 @@ func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
// More generic (ex: --user) and more frequently used flags take precedence.
flags.AddMailBoxFlag(c)
flags.AddDataFlag(c, []string{dataEmail, dataContacts, dataEvents}, false)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddFetchParallelismFlag(c)
flags.AddFailFastFlag(c)
flags.AddDisableIncrementalsFlag(c)
flags.AddDisableDeltaFlag(c)
flags.AddEnableImmutableIDFlag(c)
flags.AddDisableConcurrencyLimiterFlag(c)
flags.AddDeltaPageSizeFlag(c)
flags.AddGenericBackupFlags(c)
flags.AddDisableSlidingWindowLimiterFlag(c)
case listCommand:
c, fs = utils.AddCommand(cmd, exchangeListCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, exchangeListCmd())
flags.AddBackupIDFlag(c, false)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
addFailedItemsFN(c)
addSkippedItemsFN(c)
addRecoveredErrorsFN(c)
flags.AddAllBackupListFlags(c)
case detailsCommand:
c, fs = utils.AddCommand(cmd, exchangeDetailsCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, exchangeDetailsCmd())
c.Use = c.Use + " " + exchangeServiceCommandDetailsUseSuffix
c.Example = exchangeServiceCommandDetailsExamples
@ -119,22 +98,16 @@ func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
// Flags addition ordering should follow the order we want them to appear in help and docs:
// More generic (ex: --user) and more frequently used flags take precedence.
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddExchangeDetailsAndRestoreFlags(c)
flags.AddExchangeDetailsAndRestoreFlags(c, false)
case deleteCommand:
c, fs = utils.AddCommand(cmd, exchangeDeleteCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, exchangeDeleteCmd())
c.Use = c.Use + " " + exchangeServiceCommandDeleteUseSuffix
c.Example = exchangeServiceCommandDeleteExamples
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddMultipleBackupIDsFlag(c, false)
flags.AddBackupIDFlag(c, false)
}
return c
@ -162,11 +135,18 @@ func createExchangeCmd(cmd *cobra.Command, args []string) error {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := validateExchangeBackupCreateFlags(flags.UserFV, flags.CategoryDataFV); err != nil {
return err
}
r, acct, err := utils.AccountConnectAndWriteRepoConfig(ctx, repo.S3Overrides())
r, acct, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
path.ExchangeService)
if err != nil {
return Only(ctx, err)
}
@ -175,7 +155,12 @@ func createExchangeCmd(cmd *cobra.Command, args []string) error {
sel := exchangeBackupCreateSelectors(flags.UserFV, flags.CategoryDataFV)
ins, err := utils.UsersMap(ctx, *acct, fault.New(true))
ins, err := utils.UsersMap(
ctx,
*acct,
utils.Control(),
r.Counter(),
fault.New(true))
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to retrieve M365 users"))
}
@ -186,10 +171,10 @@ func createExchangeCmd(cmd *cobra.Command, args []string) error {
selectorSet = append(selectorSet, discSel.Selector)
}
return runBackups(
return genericCreateCommand(
ctx,
r,
"Exchange", "user",
"Exchange",
selectorSet,
ins)
}
@ -272,69 +257,33 @@ func detailsExchangeCmd(cmd *cobra.Command, args []string) error {
return nil
}
ctx := cmd.Context()
opts := utils.MakeExchangeOpts(cmd)
r, _, _, err := utils.GetAccountAndConnect(ctx, repo.S3Overrides())
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
ctrlOpts := utils.Control()
ds, err := runDetailsExchangeCmd(ctx, r, flags.BackupIDFV, opts, ctrlOpts.SkipReduce)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) == 0 {
Info(ctx, selectors.ErrorNoMatchingItems)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
ds.PrintEntries(ctx)
return nil
return runDetailsExchangeCmd(cmd)
}
// runDetailsExchangeCmd actually performs the lookup in backup details.
// the fault.Errors return is always non-nil. Callers should check if
// errs.Failure() == nil.
func runDetailsExchangeCmd(
ctx context.Context,
r repository.BackupGetter,
backupID string,
opts utils.ExchangeOpts,
skipReduce bool,
) (*details.Details, error) {
if err := utils.ValidateExchangeRestoreFlags(backupID, opts); err != nil {
return nil, err
func runDetailsExchangeCmd(cmd *cobra.Command) error {
ctx := cmd.Context()
opts := utils.MakeExchangeOpts(cmd)
sel := utils.IncludeExchangeRestoreDataSelectors(opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterExchangeRestoreInfoSelectors(sel, opts)
ds, err := genericDetailsCommand(cmd, flags.BackupIDFV, sel.Selector)
if err != nil {
return Only(ctx, err)
}
ctx = clues.Add(ctx, "backup_id", backupID)
d, _, errs := r.GetBackupDetails(ctx, backupID)
// TODO: log/track recoverable errors
if errs.Failure() != nil {
if errors.Is(errs.Failure(), data.ErrNotFound) {
return nil, clues.New("No backup exists with the id " + backupID)
}
return nil, clues.Wrap(errs.Failure(), "Failed to get backup details in the repository")
if len(ds.Entries) > 0 {
ds.PrintEntries(ctx)
} else {
Info(ctx, selectors.ErrorNoMatchingItems)
}
ctx = clues.Add(ctx, "details_entries", len(d.Entries))
if !skipReduce {
sel := utils.IncludeExchangeRestoreDataSelectors(opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterExchangeRestoreInfoSelectors(sel, opts)
d = sel.Reduce(ctx, d, errs)
}
return d, nil
return nil
}
// ------------------------------------------------------------------------------------------------
@ -353,5 +302,15 @@ func exchangeDeleteCmd() *cobra.Command {
// deletes an exchange service backup.
func deleteExchangeCmd(cmd *cobra.Command, args []string) error {
return genericDeleteCommand(cmd, flags.BackupIDFV, "Exchange", args)
var backupIDValue []string
if len(flags.BackupIDsFV) > 0 {
backupIDValue = flags.BackupIDsFV
} else if len(flags.BackupIDFV) > 0 {
backupIDValue = append(backupIDValue, flags.BackupIDFV)
} else {
return clues.New("either --backup or --backups flag is required")
}
return genericDeleteCommand(cmd, path.ExchangeService, "Exchange", backupIDValue, args)
}

View File

@ -1,32 +1,30 @@
package backup_test
import (
"context"
"fmt"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/google/uuid"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/m365/exchange"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/internal/tester/its"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/selectors"
"github.com/alcionai/corso/src/pkg/storage"
"github.com/alcionai/corso/src/pkg/services/m365/api"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
var (
@ -36,203 +34,19 @@ var (
)
// ---------------------------------------------------------------------------
// tests with azure flags in exchange create
// ---------------------------------------------------------------------------
type ExchangeCMDWithFlagsE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365UserID string
recorder strings.Builder
}
func TestExchangeCMDWithFlagsE2ESuite(t *testing.T) {
suite.Run(t, &ExchangeCMDWithFlagsE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
}
func (suite *ExchangeCMDWithFlagsE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.recorder = recorder
suite.cfgFP = cfgFilePath
suite.m365UserID = tester.M365UserID(t)
}
func (suite *ExchangeCMDWithFlagsE2ESuite) TestBackupCreateExchange_badAzureClientID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.recorder.Reset()
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365UserID,
"--azure-client-id", "invalid-value",
)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *ExchangeCMDWithFlagsE2ESuite) TestBackupCreateExchange_azureIDFromConfigFile() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
defer flush()
suite.recorder.Reset()
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365UserID,
"--config-file", suite.cfgFP)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
t.Log("backup results", result)
// as an offhand check: the result should contain the m365 user id
assert.Contains(t, result, suite.m365UserID)
}
func (suite *ExchangeCMDWithFlagsE2ESuite) TestExchangeBackupValueFromEnvCmd_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
defer flush()
suite.recorder.Reset()
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365UserID)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
t.Log("backup results", result)
// as an offhand check: the result should contain the m365 user id
assert.Contains(t, result, suite.m365UserID)
}
// AWS flags
func (suite *ExchangeCMDWithFlagsE2ESuite) TestExchangeBackupInvalidAWSClientIDCmd_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.recorder.Reset()
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365UserID,
"--aws-access-key", "invalid-value",
"--aws-secret-access-key", "some-invalid-value",
)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
// since invalid aws creds are explicitly set, should see a failure
require.Error(t, err, clues.ToCore(err))
}
func (suite *ExchangeCMDWithFlagsE2ESuite) TestExchangeBackupAWSValueFromEnvCmd_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
defer flush()
suite.recorder.Reset()
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365UserID)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
t.Log("backup results", result)
// as an offhand check: the result should contain the m365 user id
assert.Contains(t, result, suite.m365UserID)
}
// ---------------------------------------------------------------------------
// tests with no backups
// tests that depend on no backups existing
// ---------------------------------------------------------------------------
type NoBackupExchangeE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365UserID string
recorder strings.Builder
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestNoBackupExchangeE2ESuite(t *testing.T) {
suite.Run(t, &NoBackupExchangeE2ESuite{Suite: tester.NewE2ESuite(
suite.Run(t, &BackupExchangeE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *NoBackupExchangeE2ESuite) SetupSuite() {
@ -241,32 +55,25 @@ func (suite *NoBackupExchangeE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.recorder = recorder
suite.cfgFP = cfgFilePath
suite.m365UserID = tester.M365UserID(t)
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.ExchangeService)
}
func (suite *NoBackupExchangeE2ESuite) TestExchangeBackupListCmd_empty() {
func (suite *NoBackupExchangeE2ESuite) TestExchangeBackupListCmd_noBackups() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "exchange",
"--config-file", suite.cfgFP)
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -274,7 +81,7 @@ func (suite *NoBackupExchangeE2ESuite) TestExchangeBackupListCmd_empty() {
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
// as an offhand check: the result should contain the m365 user id
assert.True(t, strings.HasSuffix(result, "No backups available\n"))
@ -286,19 +93,14 @@ func (suite *NoBackupExchangeE2ESuite) TestExchangeBackupListCmd_empty() {
type BackupExchangeE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365UserID string
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestBackupExchangeE2ESuite(t *testing.T) {
suite.Run(t, &BackupExchangeE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *BackupExchangeE2ESuite) SetupSuite() {
@ -307,40 +109,39 @@ func (suite *BackupExchangeE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, _, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.cfgFP = cfgFilePath
suite.m365UserID = tester.M365UserID(t)
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.ExchangeService)
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_email() {
runExchangeBackupCategoryTest(suite, "email")
runExchangeBackupCategoryTest(suite, email)
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_contacts() {
runExchangeBackupCategoryTest(suite, "contacts")
runExchangeBackupCategoryTest(suite, contacts)
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_events() {
runExchangeBackupCategoryTest(suite, "events")
runExchangeBackupCategoryTest(suite, events)
}
func runExchangeBackupCategoryTest(suite *BackupExchangeE2ESuite, category string) {
func runExchangeBackupCategoryTest(suite *BackupExchangeE2ESuite, category path.CategoryType) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildExchangeBackupCmd(ctx, suite.cfgFP, suite.m365UserID, category, &recorder)
cmd, ctx := buildExchangeBackupCmd(
ctx,
suite.dpnd.configFilePath,
suite.m365.User.ID,
category.String(),
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
@ -349,22 +150,25 @@ func runExchangeBackupCategoryTest(suite *BackupExchangeE2ESuite, category strin
result := recorder.String()
t.Log("backup results", result)
// as an offhand check: the result should contain the m365 user id
assert.Contains(t, result, suite.m365UserID)
// As an offhand check: the result should contain the m365 user's email.
assert.Contains(
t,
strings.ToLower(result),
strings.ToLower(suite.m365.User.Provider.Name()))
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_ServiceNotEnabled_email() {
runExchangeBackupServiceNotEnabledTest(suite, "email")
runExchangeBackupServiceNotEnabledTest(suite, email)
}
func runExchangeBackupServiceNotEnabledTest(suite *BackupExchangeE2ESuite, category string) {
func runExchangeBackupServiceNotEnabledTest(suite *BackupExchangeE2ESuite, category path.CategoryType) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
@ -372,9 +176,9 @@ func runExchangeBackupServiceNotEnabledTest(suite *BackupExchangeE2ESuite, categ
cmd, ctx := buildExchangeBackupCmd(
ctx,
suite.cfgFP,
fmt.Sprintf("%s,%s", tester.UnlicensedM365UserID(suite.T()), suite.m365UserID),
category,
suite.dpnd.configFilePath,
fmt.Sprintf("%s,%s", tconfig.UnlicensedM365UserID(suite.T()), suite.m365.User.ID),
category.String(),
&recorder)
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
@ -382,34 +186,42 @@ func runExchangeBackupServiceNotEnabledTest(suite *BackupExchangeE2ESuite, categ
result := recorder.String()
t.Log("backup results", result)
// as an offhand check: the result should contain the m365 user id
assert.Contains(t, result, suite.m365UserID)
// As an offhand check: the result should contain the m365 user's email.
assert.Contains(
t,
strings.ToLower(result),
strings.ToLower(suite.m365.User.Provider.Name()))
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_userNotFound_email() {
runExchangeBackupUserNotFoundTest(suite, "email")
runExchangeBackupUserNotFoundTest(suite, email)
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_userNotFound_contacts() {
runExchangeBackupUserNotFoundTest(suite, "contacts")
runExchangeBackupUserNotFoundTest(suite, contacts)
}
func (suite *BackupExchangeE2ESuite) TestExchangeBackupCmd_userNotFound_events() {
runExchangeBackupUserNotFoundTest(suite, "events")
runExchangeBackupUserNotFoundTest(suite, events)
}
func runExchangeBackupUserNotFoundTest(suite *BackupExchangeE2ESuite, category string) {
func runExchangeBackupUserNotFoundTest(suite *BackupExchangeE2ESuite, category path.CategoryType) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildExchangeBackupCmd(ctx, suite.cfgFP, "foo@not-there.com", category, &recorder)
cmd, ctx := buildExchangeBackupCmd(
ctx,
suite.dpnd.configFilePath,
"foo@not-there.com",
category.String(),
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
@ -417,7 +229,8 @@ func runExchangeBackupUserNotFoundTest(suite *BackupExchangeE2ESuite, category s
assert.Contains(
t,
err.Error(),
"not found in tenant", "error missing user not found")
"not found",
"error missing user not found")
assert.NotContains(t, err.Error(), "runtime error", "panic happened")
t.Logf("backup error message: %s", err.Error())
@ -426,27 +239,105 @@ func runExchangeBackupUserNotFoundTest(suite *BackupExchangeE2ESuite, category s
t.Log("backup results", result)
}
func (suite *BackupExchangeE2ESuite) TestBackupCreateExchange_badAzureClientIDFlag() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365.User.ID,
"--azure-client-id", "invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupExchangeE2ESuite) TestBackupCreateExchange_fromConfigFile() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365.User.ID,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.dpnd.recorder.String()
t.Log("backup results", result)
// As an offhand check: the result should contain the m365 user's email.
assert.Contains(
t,
strings.ToLower(result),
strings.ToLower(suite.m365.User.Provider.Name()))
}
// AWS flags
func (suite *BackupExchangeE2ESuite) TestBackupCreateExchange_badAWSFlags() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "exchange",
"--user", suite.m365.User.ID,
"--aws-access-key", "invalid-value",
"--aws-secret-access-key", "some-invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
// since invalid aws creds are explicitly set, should see a failure
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// tests prepared with a previous backup
// ---------------------------------------------------------------------------
type PreparedBackupExchangeE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365UserID string
backupOps map[path.CategoryType]string
recorder strings.Builder
dpnd dependencies
backupOps map[path.CategoryType]string
m365 its.M365IntgTestSetup
}
func TestPreparedBackupExchangeE2ESuite(t *testing.T) {
suite.Run(t, &PreparedBackupExchangeE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
suite.Run(t, &PreparedBackupExchangeE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *PreparedBackupExchangeE2ESuite) SetupSuite() {
@ -455,20 +346,13 @@ func (suite *PreparedBackupExchangeE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.recorder = recorder
suite.cfgFP = cfgFilePath
suite.m365UserID = tester.M365UserID(t)
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.ExchangeService)
suite.backupOps = make(map[path.CategoryType]string)
var (
users = []string{suite.m365UserID}
ins = idname.NewCache(map[string]string{suite.m365UserID: suite.m365UserID})
users = []string{suite.m365.User.ID}
ins = idname.NewCache(map[string]string{suite.m365.User.ID: suite.m365.User.ID})
)
for _, set := range []path.CategoryType{email, contacts, events} {
@ -479,18 +363,18 @@ func (suite *PreparedBackupExchangeE2ESuite) SetupSuite() {
switch set {
case email:
scopes = sel.MailFolders([]string{exchange.DefaultMailFolder}, selectors.PrefixMatch())
scopes = sel.MailFolders([]string{api.MailInbox}, selectors.PrefixMatch())
case contacts:
scopes = sel.ContactFolders([]string{exchange.DefaultContactFolder}, selectors.PrefixMatch())
scopes = sel.ContactFolders([]string{api.DefaultContacts}, selectors.PrefixMatch())
case events:
scopes = sel.EventCalendars([]string{exchange.DefaultCalendar}, selectors.PrefixMatch())
scopes = sel.EventCalendars([]string{api.DefaultCalendar}, selectors.PrefixMatch())
}
sel.Include(scopes)
bop, err := suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
bop, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
err = bop.Run(ctx)
@ -499,11 +383,11 @@ func (suite *PreparedBackupExchangeE2ESuite) SetupSuite() {
bIDs := string(bop.Results.BackupID)
// sanity check, ensure we can find the backup and its details immediately
b, err := suite.repo.Backup(ctx, string(bop.Results.BackupID))
b, err := suite.dpnd.repo.Backup(ctx, string(bop.Results.BackupID))
require.NoError(t, err, "retrieving recent backup by ID")
require.Equal(t, bIDs, string(b.ID), "repo backup matches results id")
_, b, errs := suite.repo.GetBackupDetails(ctx, bIDs)
_, b, errs := suite.dpnd.repo.GetBackupDetails(ctx, bIDs)
require.NoError(t, errs.Failure(), "retrieving recent backup details by ID")
require.Empty(t, errs.Recovered(), "retrieving recent backup details by ID")
require.Equal(t, bIDs, string(b.ID), "repo details matches results id")
@ -525,20 +409,20 @@ func (suite *PreparedBackupExchangeE2ESuite) TestExchangeListCmd_events() {
}
func runExchangeListCmdTest(suite *PreparedBackupExchangeE2ESuite, category path.CategoryType) {
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "exchange",
"--config-file", suite.cfgFP)
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.recorder)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -547,7 +431,7 @@ func runExchangeListCmdTest(suite *PreparedBackupExchangeE2ESuite, category path
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
assert.Contains(t, result, suite.backupOps[category])
}
@ -564,24 +448,24 @@ func (suite *PreparedBackupExchangeE2ESuite) TestExchangeListCmd_singleID_events
}
func runExchangeListSingleCmdTest(suite *PreparedBackupExchangeE2ESuite, category path.CategoryType) {
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "exchange",
"--config-file", suite.cfgFP,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.recorder)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -590,7 +474,7 @@ func runExchangeListSingleCmdTest(suite *PreparedBackupExchangeE2ESuite, categor
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
assert.Contains(t, result, bID)
}
@ -598,13 +482,13 @@ func (suite *PreparedBackupExchangeE2ESuite) TestExchangeListCmd_badID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "exchange",
"--config-file", suite.cfgFP,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", "smarfs")
cli.BuildCommandTree(cmd)
@ -628,28 +512,28 @@ func (suite *PreparedBackupExchangeE2ESuite) TestExchangeDetailsCmd_events() {
}
func runExchangeDetailsCmdTest(suite *PreparedBackupExchangeE2ESuite, category path.CategoryType) {
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
// fetch the details from the repo first
deets, _, errs := suite.repo.GetBackupDetails(ctx, string(bID))
deets, _, errs := suite.dpnd.repo.GetBackupDetails(ctx, string(bID))
require.NoError(t, errs.Failure(), clues.ToCore(errs.Failure()))
require.Empty(t, errs.Recovered())
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "details", "exchange",
"--config-file", suite.cfgFP,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN, string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.recorder)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -658,7 +542,7 @@ func runExchangeDetailsCmdTest(suite *PreparedBackupExchangeE2ESuite, category p
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
i := 0
foundFolders := 0
@ -688,20 +572,15 @@ func runExchangeDetailsCmdTest(suite *PreparedBackupExchangeE2ESuite, category p
type BackupDeleteExchangeE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
backupOp operations.BackupOperation
dpnd dependencies
backupOps [3]operations.BackupOperation
}
func TestBackupDeleteExchangeE2ESuite(t *testing.T) {
suite.Run(t, &BackupDeleteExchangeE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
),
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
@ -711,42 +590,41 @@ func (suite *BackupDeleteExchangeE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, _, cfgFilePath := prepM365Test(t, ctx)
suite.dpnd = prepM365Test(t, ctx, path.ExchangeService)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.cfgFP = cfgFilePath
m365UserID := tester.M365UserID(t)
m365UserID := tconfig.M365UserID(t)
users := []string{m365UserID}
// some tests require an existing backup
sel := selectors.NewExchangeBackup(users)
sel.Include(sel.MailFolders([]string{exchange.DefaultMailFolder}, selectors.PrefixMatch()))
sel.Include(sel.MailFolders([]string{api.MailInbox}, selectors.PrefixMatch()))
backupOp, err := suite.repo.NewBackup(ctx, sel.Selector)
require.NoError(t, err, clues.ToCore(err))
for i := 0; i < cap(suite.backupOps); i++ {
backupOp, err := suite.dpnd.repo.NewBackup(ctx, sel.Selector)
require.NoError(t, err, clues.ToCore(err))
suite.backupOp = backupOp
suite.backupOps[i] = backupOp
err = suite.backupOp.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
err = suite.backupOps[i].Run(ctx)
require.NoError(t, err, clues.ToCore(err))
}
}
func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "exchange",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, string(suite.backupOp.Results.BackupID))
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN,
fmt.Sprintf("%s,%s",
string(suite.backupOps[0].Results.BackupID),
string(suite.backupOps[1].Results.BackupID)))
cli.BuildCommandTree(cmd)
// run the command
@ -754,10 +632,50 @@ func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd() {
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = tester.StubRootCmd(
cmd = cliTD.StubRootCmd(
"backup", "details", "exchange",
"--config-file", suite.cfgFP,
"--backup", string(suite.backupOp.Results.BackupID))
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[0].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "exchange",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[1].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd_SingleID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "exchange",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN,
string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "exchange",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
@ -768,14 +686,14 @@ func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd_UnknownID
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "exchange",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, uuid.NewString())
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN, uuid.NewString())
cli.BuildCommandTree(cmd)
// unknown backupIDs should error since the modelStore can't find the backup
@ -783,22 +701,20 @@ func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd_UnknownID
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func (suite *BackupDeleteExchangeE2ESuite) TestExchangeBackupDeleteCmd_NoBackupID() {
t := suite.T()
func buildExchangeBackupCmd(
ctx context.Context,
configFile, user, category string,
recorder *strings.Builder,
) (*cobra.Command, context.Context) {
cmd := tester.StubRootCmd(
"backup", "create", "exchange",
"--config-file", configFile,
"--"+flags.UserFN, user,
"--"+flags.CategoryDataFN, category)
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "exchange",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(recorder)
return cmd, print.SetRootCmd(ctx, cmd)
// empty backupIDs should error since no data provided
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}

View File

@ -1,7 +1,7 @@
package backup
import (
"fmt"
"strconv"
"testing"
"github.com/alcionai/clues"
@ -11,10 +11,11 @@ import (
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils/testdata"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/version"
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
"github.com/alcionai/corso/src/pkg/control"
)
type ExchangeUnitSuite struct {
@ -33,72 +34,35 @@ func (suite *ExchangeUnitSuite) TestAddExchangeCommands() {
use string
expectUse string
expectShort string
flags []string
expectRunE func(*cobra.Command, []string) error
}{
{
"create exchange",
createCommand,
expectUse + " " + exchangeServiceCommandCreateUseSuffix,
exchangeCreateCmd().Short,
[]string{
flags.UserFN,
flags.CategoryDataFN,
flags.DisableIncrementalsFN,
flags.DisableDeltaFN,
flags.FailFastFN,
flags.FetchParallelismFN,
flags.SkipReduceFN,
flags.NoStatsFN,
},
createExchangeCmd,
name: "create exchange",
use: createCommand,
expectUse: expectUse + " " + exchangeServiceCommandCreateUseSuffix,
expectShort: exchangeCreateCmd().Short,
expectRunE: createExchangeCmd,
},
{
"list exchange",
listCommand,
expectUse,
exchangeListCmd().Short,
[]string{
flags.BackupFN,
flags.FailedItemsFN,
flags.SkippedItemsFN,
flags.RecoveredErrorsFN,
},
listExchangeCmd,
name: "list exchange",
use: listCommand,
expectUse: expectUse,
expectShort: exchangeListCmd().Short,
expectRunE: listExchangeCmd,
},
{
"details exchange",
detailsCommand,
expectUse + " " + exchangeServiceCommandDetailsUseSuffix,
exchangeDetailsCmd().Short,
[]string{
flags.BackupFN,
flags.ContactFN,
flags.ContactFolderFN,
flags.ContactNameFN,
flags.EmailFN,
flags.EmailFolderFN,
flags.EmailReceivedAfterFN,
flags.EmailReceivedBeforeFN,
flags.EmailSenderFN,
flags.EmailSubjectFN,
flags.EventFN,
flags.EventCalendarFN,
flags.EventOrganizerFN,
flags.EventRecursFN,
flags.EventStartsAfterFN,
flags.EventStartsBeforeFN,
flags.EventSubjectFN,
},
detailsExchangeCmd,
name: "details exchange",
use: detailsCommand,
expectUse: expectUse + " " + exchangeServiceCommandDetailsUseSuffix,
expectShort: exchangeDetailsCmd().Short,
expectRunE: detailsExchangeCmd,
},
{
"delete exchange",
deleteCommand,
expectUse + " " + exchangeServiceCommandDeleteUseSuffix,
exchangeDeleteCmd().Short,
[]string{flags.BackupFN},
deleteExchangeCmd,
name: "delete exchange",
use: deleteCommand,
expectUse: expectUse + " " + exchangeServiceCommandDeleteUseSuffix,
expectShort: exchangeDeleteCmd().Short,
expectRunE: deleteExchangeCmd,
},
}
for _, test := range table {
@ -121,6 +85,147 @@ func (suite *ExchangeUnitSuite) TestAddExchangeCommands() {
}
}
func (suite *ExchangeUnitSuite) TestBackupCreateFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: createCommand},
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.MailBoxFN, flagsTD.FlgInputs(flagsTD.MailboxInput),
"--" + flags.CategoryDataFN, flagsTD.FlgInputs(flagsTD.ExchangeCategoryDataInput),
"--" + flags.FetchParallelismFN, flagsTD.FetchParallelism,
"--" + flags.DeltaPageSizeFN, flagsTD.DeltaPageSize,
// bool flags
"--" + flags.DisableDeltaFN,
"--" + flags.EnableImmutableIDFN,
"--" + flags.DisableSlidingWindowLimiterFN,
},
flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
opts := utils.MakeExchangeOpts(cmd)
co := utils.Control()
backupOpts := utils.ParseBackupOptions()
// TODO(ashmrtn): Remove flag checks on control.Options to control.Backup once
// restore flags are switched over too and we no longer parse flags beyond
// connection info into control.Options.
assert.Equal(t, flagsTD.FetchParallelism, strconv.Itoa(backupOpts.Parallelism.ItemFetch))
assert.Equal(t, flagsTD.DeltaPageSize, strconv.Itoa(int(backupOpts.M365.DeltaPageSize)))
assert.Equal(t, control.FailFast, backupOpts.FailureHandling)
assert.True(t, backupOpts.Incrementals.ForceFullEnumeration)
assert.True(t, backupOpts.Incrementals.ForceItemDataRefresh)
assert.True(t, backupOpts.M365.DisableDeltaEndpoint)
assert.True(t, backupOpts.M365.ExchangeImmutableIDs)
assert.True(t, backupOpts.ServiceRateLimiter.DisableSlidingWindowLimiter)
assert.Equal(t, flagsTD.FetchParallelism, strconv.Itoa(co.Parallelism.ItemFetch))
assert.Equal(t, flagsTD.DeltaPageSize, strconv.Itoa(int(co.DeltaPageSize)))
assert.Equal(t, control.FailFast, co.FailureHandling)
assert.True(t, co.ToggleFeatures.DisableIncrementals)
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.True(t, co.ToggleFeatures.DisableDelta)
assert.True(t, co.ToggleFeatures.ExchangeImmutableIDs)
assert.True(t, co.ToggleFeatures.DisableSlidingWindowLimiter)
assert.ElementsMatch(t, flagsTD.MailboxInput, opts.Users)
flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *ExchangeUnitSuite) TestBackupListFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: listCommand},
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedBackupListFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertBackupListFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *ExchangeUnitSuite) TestBackupDetailsFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: detailsCommand},
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.SkipReduceFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
co := utils.Control()
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.True(t, co.SkipReduce)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *ExchangeUnitSuite) TestBackupDeleteFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: deleteCommand},
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *ExchangeUnitSuite) TestValidateBackupCreateFlags() {
table := []struct {
name string
@ -272,51 +377,3 @@ func (suite *ExchangeUnitSuite) TestExchangeBackupCreateSelectors() {
})
}
}
func (suite *ExchangeUnitSuite) TestExchangeBackupDetailsSelectors() {
for v := 0; v <= version.Backup; v++ {
suite.Run(fmt.Sprintf("version%d", v), func() {
for _, test := range testdata.ExchangeOptionDetailLookups {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
bg := testdata.VersionedBackupGetter{
Details: dtd.GetDetailsSetForVersion(t, v),
}
output, err := runDetailsExchangeCmd(
ctx,
bg,
"backup-ID",
test.Opts(t, v),
false)
assert.NoError(t, err, clues.ToCore(err))
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
})
}
})
}
}
func (suite *ExchangeUnitSuite) TestExchangeBackupDetailsSelectorsBadFormats() {
for _, test := range testdata.BadExchangeOptionsFormats {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
output, err := runDetailsExchangeCmd(
ctx,
test.BackupGetter,
"backup-ID",
test.Opts(t, version.Backup),
false)
assert.Error(t, err, clues.ToCore(err))
assert.Empty(t, output)
})
}
}

329
src/cli/backup/groups.go Normal file
View File

@ -0,0 +1,329 @@
package backup
import (
"context"
"fmt"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"golang.org/x/exp/slices"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/filters"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
"github.com/alcionai/corso/src/pkg/services/m365"
)
// ------------------------------------------------------------------------------------------------
// setup and globals
// ------------------------------------------------------------------------------------------------
const (
groupsServiceCommand = "groups"
teamsServiceCommand = "teams"
groupsServiceCommandCreateUseSuffix = "--group <groupName> | '" + flags.Wildcard + "'"
groupsServiceCommandDeleteUseSuffix = "--backups <backupId>"
groupsServiceCommandDetailsUseSuffix = "--backup <backupId>"
)
const (
groupsServiceCommandCreateExamples = `# Backup all Groups and Teams data for the Marketing group
corso backup create groups --group Marketing
# Backup only Teams channel messages
corso backup create groups --group Marketing --data messages
# Backup only group mailbox posts
corso backup create groups --group Marketing --data conversations
# Backup all Groups and Teams data for all groups
corso backup create groups --group '*'`
groupsServiceCommandDeleteExamples = `# Delete Groups backup with ID 1234abcd-12ab-cd34-56de-1234abcd \
and 1234abcd-12ab-cd34-56de-1234abce
corso backup delete groups --backups 1234abcd-12ab-cd34-56de-1234abcd,1234abcd-12ab-cd34-56de-1234abce`
groupsServiceCommandDetailsExamples = `# Explore items in Marketing's latest backup (1234abcd...)
corso backup details groups --backup 1234abcd-12ab-cd34-56de-1234abcd
# Explore Marketing messages posted after the start of 2022
corso backup details groups --backup 1234abcd-12ab-cd34-56de-1234abcd \
--last-message-reply-after 2022-01-01T00:00:00
# Explore group mailbox posts with conversation subject "hello world"
corso backup details groups --backup 1234abcd-12ab-cd34-56de-1234abcd --conversation "hello world"`
)
// called by backup.go to map subcommands to provider-specific handling.
func addGroupsCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case createCommand:
c, _ = utils.AddCommand(cmd, groupsCreateCmd(), utils.MarkPreviewCommand())
c.Use = c.Use + " " + groupsServiceCommandCreateUseSuffix
c.Example = groupsServiceCommandCreateExamples
// Flags addition ordering should follow the order we want them to appear in help and docs:
flags.AddGroupFlag(c)
flags.AddDataFlag(c, []string{flags.DataLibraries, flags.DataMessages, flags.DataConversations}, false)
flags.AddFetchParallelismFlag(c)
flags.AddDisableDeltaFlag(c)
flags.AddGenericBackupFlags(c)
flags.AddDisableLazyItemReader(c)
case listCommand:
c, _ = utils.AddCommand(cmd, groupsListCmd(), utils.MarkPreviewCommand())
flags.AddBackupIDFlag(c, false)
flags.AddAllBackupListFlags(c)
case detailsCommand:
c, _ = utils.AddCommand(cmd, groupsDetailsCmd(), utils.MarkPreviewCommand())
c.Use = c.Use + " " + groupsServiceCommandDetailsUseSuffix
c.Example = groupsServiceCommandDetailsExamples
flags.AddSkipReduceFlag(c)
// Flags addition ordering should follow the order we want them to appear in help and docs:
// More generic (ex: --user) and more frequently used flags take precedence.
flags.AddBackupIDFlag(c, true)
flags.AddGroupDetailsAndRestoreFlags(c)
flags.AddSharePointDetailsAndRestoreFlags(c)
case deleteCommand:
c, _ = utils.AddCommand(cmd, groupsDeleteCmd(), utils.MarkPreviewCommand())
c.Use = c.Use + " " + groupsServiceCommandDeleteUseSuffix
c.Example = groupsServiceCommandDeleteExamples
flags.AddMultipleBackupIDsFlag(c, false)
flags.AddBackupIDFlag(c, false)
}
return c
}
// ------------------------------------------------------------------------------------------------
// backup create
// ------------------------------------------------------------------------------------------------
// `corso backup create groups [<flag>...]`
func groupsCreateCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Aliases: []string{teamsServiceCommand},
Short: "Backup M365 Groups & Teams service data",
RunE: createGroupsCmd,
Args: cobra.NoArgs,
}
}
// processes a groups service backup.
func createGroupsCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := validateGroupsBackupCreateFlags(flags.GroupFV, flags.CategoryDataFV); err != nil {
return err
}
r, acct, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
path.GroupsService)
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
// TODO: log/print recoverable errors
errs := fault.New(false)
svcCli, err := m365.NewM365Client(ctx, *acct)
if err != nil {
return Only(ctx, clues.Stack(err))
}
ins, err := svcCli.AC.Groups().GetAllIDsAndNames(ctx, errs)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to retrieve M365 groups"))
}
sel := groupsBackupCreateSelectors(ctx, ins, flags.GroupFV, flags.CategoryDataFV)
selectorSet := []selectors.Selector{}
for _, discSel := range sel.SplitByResourceOwner(ins.IDs()) {
selectorSet = append(selectorSet, discSel.Selector)
}
return genericCreateCommand(
ctx,
r,
"Group",
selectorSet,
ins)
}
// ------------------------------------------------------------------------------------------------
// backup list
// ------------------------------------------------------------------------------------------------
// `corso backup list groups [<flag>...]`
func groupsListCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Short: "List the history of M365 Groups service backups",
RunE: listGroupsCmd,
Args: cobra.NoArgs,
}
}
// lists the history of backup operations
func listGroupsCmd(cmd *cobra.Command, args []string) error {
return genericListCommand(cmd, flags.BackupIDFV, path.GroupsService, args)
}
// ------------------------------------------------------------------------------------------------
// backup details
// ------------------------------------------------------------------------------------------------
// `corso backup details groups [<flag>...]`
func groupsDetailsCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Short: "Shows the details of a M365 Groups service backup",
RunE: detailsGroupsCmd,
Args: cobra.NoArgs,
}
}
// processes a groups service backup.
func detailsGroupsCmd(cmd *cobra.Command, args []string) error {
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
return runDetailsGroupsCmd(cmd)
}
func runDetailsGroupsCmd(cmd *cobra.Command) error {
ctx := cmd.Context()
opts := utils.MakeGroupsOpts(cmd)
sel := utils.IncludeGroupsRestoreDataSelectors(ctx, opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterGroupsRestoreInfoSelectors(sel, opts)
ds, err := genericDetailsCommand(cmd, flags.BackupIDFV, sel.Selector)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) > 0 {
ds.PrintEntries(ctx)
} else {
Info(ctx, selectors.ErrorNoMatchingItems)
}
return nil
}
// ------------------------------------------------------------------------------------------------
// backup delete
// ------------------------------------------------------------------------------------------------
// `corso backup delete groups [<flag>...]`
func groupsDeleteCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Short: "Delete backed-up M365 Groups service data",
RunE: deleteGroupsCmd,
Args: cobra.NoArgs,
}
}
// deletes an groups service backup.
func deleteGroupsCmd(cmd *cobra.Command, args []string) error {
backupIDValue := []string{}
if len(flags.BackupIDsFV) > 0 {
backupIDValue = flags.BackupIDsFV
} else if len(flags.BackupIDFV) > 0 {
backupIDValue = append(backupIDValue, flags.BackupIDFV)
} else {
return clues.New("either --backup or --backups flag is required")
}
return genericDeleteCommand(cmd, path.GroupsService, "Groups", backupIDValue, args)
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func validateGroupsBackupCreateFlags(groups, cats []string) error {
if len(groups) == 0 {
return clues.New(
"requires one or more --" +
flags.GroupFN + " ids, or the wildcard --" +
flags.GroupFN + " *")
}
// TODO(keepers): release conversations support
msg := fmt.Sprintf(
" is an unrecognized data type; only %s and %s are supported",
flags.DataLibraries, flags.DataMessages)
// msg := fmt.Sprintf(
// " is an unrecognized data type; only %s, %s and %s are supported",
// flags.DataLibraries, flags.DataMessages, flags.DataConversations)
allowedCats := utils.GroupsAllowedCategories()
for _, d := range cats {
if _, ok := allowedCats[d]; !ok {
return clues.New(d + msg)
}
}
return nil
}
func groupsBackupCreateSelectors(
ctx context.Context,
ins idname.Cacher,
group, cats []string,
) *selectors.GroupsBackup {
if filters.PathContains(group).Compare(flags.Wildcard) {
return includeAllGroupsWithCategories(ins, cats)
}
sel := selectors.NewGroupsBackup(slices.Clone(group))
return utils.AddGroupsCategories(sel, cats)
}
func includeAllGroupsWithCategories(ins idname.Cacher, categories []string) *selectors.GroupsBackup {
return utils.AddGroupsCategories(selectors.NewGroupsBackup(ins.IDs()), categories)
}

View File

@ -0,0 +1,690 @@
package backup_test
import (
"context"
"fmt"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/google/uuid"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/tester/its"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
selTD "github.com/alcionai/corso/src/pkg/selectors/testdata"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
// ---------------------------------------------------------------------------
// tests that require no existing backups
// ---------------------------------------------------------------------------
type NoBackupGroupsE2ESuite struct {
tester.Suite
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestNoBackupGroupsE2ESuite(t *testing.T) {
suite.Run(t, &BackupGroupsE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *NoBackupGroupsE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.GroupsService)
}
func (suite *NoBackupGroupsE2ESuite) TestGroupsBackupListCmd_noBackups() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "list", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.dpnd.recorder.String()
// as an offhand check: the result should contain the m365 group id
assert.True(t, strings.HasSuffix(result, "No backups available\n"))
}
// ---------------------------------------------------------------------------
// tests with no prior backup
// ---------------------------------------------------------------------------
type BackupGroupsE2ESuite struct {
tester.Suite
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestBackupGroupsE2ESuite(t *testing.T) {
suite.Run(t, &BackupGroupsE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *BackupGroupsE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.GroupsService)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_channelMessages() {
runGroupsBackupCategoryTest(suite, flags.DataMessages)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_conversations() {
// skip
suite.T().Skip("CorsoCITeam group mailbox backup is broken")
runGroupsBackupCategoryTest(suite, flags.DataConversations)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_libraries() {
runGroupsBackupCategoryTest(suite, flags.DataLibraries)
}
func runGroupsBackupCategoryTest(suite *BackupGroupsE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildGroupsBackupCmd(
ctx,
suite.dpnd.configFilePath,
suite.m365.Group.ID,
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := recorder.String()
t.Log("backup results", result)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_groupNotFound_channelMessages() {
runGroupsBackupGroupNotFoundTest(suite, flags.DataMessages)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_groupNotFound_conversations() {
runGroupsBackupGroupNotFoundTest(suite, flags.DataConversations)
}
func (suite *BackupGroupsE2ESuite) TestGroupsBackupCmd_groupNotFound_libraries() {
runGroupsBackupGroupNotFoundTest(suite, flags.DataLibraries)
}
func runGroupsBackupGroupNotFoundTest(suite *BackupGroupsE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildGroupsBackupCmd(
ctx,
suite.dpnd.configFilePath,
"foo@not-there.com",
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
assert.Contains(
t,
err.Error(),
"not found",
"error missing user not found")
assert.NotContains(t, err.Error(), "runtime error", "panic happened")
t.Logf("backup error message: %s", err.Error())
result := recorder.String()
t.Log("backup results", result)
}
func (suite *BackupGroupsE2ESuite) TestBackupCreateGroups_badAzureClientIDFlag() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "groups",
"--group", suite.m365.Group.ID,
"--azure-client-id", "invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupGroupsE2ESuite) TestBackupCreateGroups_fromConfigFile() {
// Skip
suite.T().Skip("CorsoCITeam group mailbox backup is broken")
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "groups",
"--group", suite.m365.Group.ID,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
}
// AWS flags
func (suite *BackupGroupsE2ESuite) TestBackupCreateGroups_badAWSFlags() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "groups",
"--group", suite.m365.Group.ID,
"--aws-access-key", "invalid-value",
"--aws-secret-access-key", "some-invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
// since invalid aws creds are explicitly set, should see a failure
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// tests prepared with a previous backup
// ---------------------------------------------------------------------------
type PreparedBackupGroupsE2ESuite struct {
tester.Suite
dpnd dependencies
backupOps map[path.CategoryType]string
m365 its.M365IntgTestSetup
}
func TestPreparedBackupGroupsE2ESuite(t *testing.T) {
suite.Run(t, &PreparedBackupGroupsE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *PreparedBackupGroupsE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.GroupsService)
suite.backupOps = make(map[path.CategoryType]string)
var (
groups = []string{suite.m365.Group.ID}
ins = idname.NewCache(map[string]string{suite.m365.Group.ID: suite.m365.Group.ID})
cats = []path.CategoryType{
path.ChannelMessagesCategory,
// TODO(pandeyabs): CorsoCITeam group mailbox backup is currently broken because of invalid
// odata.NextLink which causes an infinite loop during paging. Disabling conversations tests while
// we go fix the group mailbox.
// path.ConversationPostsCategory,
path.LibrariesCategory,
}
)
for _, set := range cats {
var (
sel = selectors.NewGroupsBackup(groups)
scopes []selectors.GroupsScope
)
switch set {
case path.ChannelMessagesCategory:
scopes = selTD.GroupsBackupChannelScope(sel)
case path.ConversationPostsCategory:
scopes = selTD.GroupsBackupConversationScope(sel)
case path.LibrariesCategory:
scopes = selTD.GroupsBackupLibraryFolderScope(sel)
}
sel.Include(scopes)
bop, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
err = bop.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
bIDs := string(bop.Results.BackupID)
// sanity check, ensure we can find the backup and its details immediately
b, err := suite.dpnd.repo.Backup(ctx, string(bop.Results.BackupID))
require.NoError(t, err, "retrieving recent backup by ID")
require.Equal(t, bIDs, string(b.ID), "repo backup matches results id")
_, b, errs := suite.dpnd.repo.GetBackupDetails(ctx, bIDs)
require.NoError(t, errs.Failure(), "retrieving recent backup details by ID")
require.Empty(t, errs.Recovered(), "retrieving recent backup details by ID")
require.Equal(t, bIDs, string(b.ID), "repo details matches results id")
suite.backupOps[set] = string(b.ID)
}
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_channelMessages() {
runGroupsListCmdTest(suite, path.ChannelMessagesCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_conversations() {
runGroupsListCmdTest(suite, path.ConversationPostsCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_libraries() {
runGroupsListCmdTest(suite, path.LibrariesCategory)
}
func runGroupsListCmdTest(suite *PreparedBackupGroupsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
assert.Contains(t, result, suite.backupOps[category])
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_singleID_channelMessages() {
runGroupsListSingleCmdTest(suite, path.ChannelMessagesCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_singleID_conversations() {
runGroupsListSingleCmdTest(suite, path.ConversationPostsCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_singleID_libraries() {
runGroupsListSingleCmdTest(suite, path.LibrariesCategory)
}
func runGroupsListSingleCmdTest(suite *PreparedBackupGroupsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
cmd := cliTD.StubRootCmd(
"backup", "list", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
assert.Contains(t, result, bID)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsListCmd_badID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", "smarfs")
cli.BuildCommandTree(cmd)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsDetailsCmd_channelMessages() {
runGroupsDetailsCmdTest(suite, path.ChannelMessagesCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsDetailsCmd_conversations() {
// skip
suite.T().Skip("CorsoCITeam group mailbox backup is broken")
runGroupsDetailsCmdTest(suite, path.ConversationPostsCategory)
}
func (suite *PreparedBackupGroupsE2ESuite) TestGroupsDetailsCmd_libraries() {
runGroupsDetailsCmdTest(suite, path.LibrariesCategory)
}
func runGroupsDetailsCmdTest(suite *PreparedBackupGroupsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
// fetch the details from the repo first
deets, _, errs := suite.dpnd.repo.GetBackupDetails(ctx, string(bID))
require.NoError(t, errs.Failure(), clues.ToCore(errs.Failure()))
require.Empty(t, errs.Recovered())
cmd := cliTD.StubRootCmd(
"backup", "details", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN, string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
i := 0
foundFolders := 0
for _, ent := range deets.Entries {
// Skip folders as they don't mean anything to the end group.
if ent.Folder != nil {
foundFolders++
continue
}
suite.Run(fmt.Sprintf("detail %d", i), func() {
assert.Contains(suite.T(), result, ent.ShortRef)
})
i++
}
// We only backup the default folder for each category so there should be at
// least that folder (we don't make details entries for prefix folders).
assert.GreaterOrEqual(t, foundFolders, 1)
}
// ---------------------------------------------------------------------------
// tests for deleting backups
// ---------------------------------------------------------------------------
type BackupDeleteGroupsE2ESuite struct {
tester.Suite
dpnd dependencies
backupOps [3]operations.BackupOperation
}
func TestBackupDeleteGroupsE2ESuite(t *testing.T) {
suite.Run(t, &BackupDeleteGroupsE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *BackupDeleteGroupsE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd = prepM365Test(t, ctx, path.GroupsService)
m365GroupID := tconfig.M365TeamID(t)
groups := []string{m365GroupID}
// some tests require an existing backup
sel := selectors.NewGroupsBackup(groups)
sel.Include(selTD.GroupsBackupChannelScope(sel))
for i := 0; i < cap(suite.backupOps); i++ {
backupOp, err := suite.dpnd.repo.NewBackup(ctx, sel.Selector)
require.NoError(t, err, clues.ToCore(err))
suite.backupOps[i] = backupOp
err = suite.backupOps[i].Run(ctx)
require.NoError(t, err, clues.ToCore(err))
}
}
func (suite *BackupDeleteGroupsE2ESuite) TestGroupsBackupDeleteCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN,
fmt.Sprintf("%s,%s",
string(suite.backupOps[0].Results.BackupID),
string(suite.backupOps[1].Results.BackupID)))
cli.BuildCommandTree(cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backups", string(suite.backupOps[0].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteGroupsE2ESuite) TestGroupsBackupDeleteCmd_SingleID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN,
string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteGroupsE2ESuite) TestGroupsBackupDeleteCmd_UnknownID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN, uuid.NewString())
cli.BuildCommandTree(cmd)
// unknown backupIDs should error since the modelStore can't find the backup
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteGroupsE2ESuite) TestGroupsBackupDeleteCmd_NoBackupID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
// empty backupIDs should error since no data provided
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func buildGroupsBackupCmd(
ctx context.Context,
configFile, group, category string,
recorder *strings.Builder,
) (*cobra.Command, context.Context) {
cmd := cliTD.StubRootCmd(
"backup", "create", "groups",
"--"+flags.ConfigFileFN, configFile,
"--"+flags.GroupFN, group,
"--"+flags.CategoryDataFN, category)
cli.BuildCommandTree(cmd)
cmd.SetOut(recorder)
return cmd, print.SetRootCmd(ctx, cmd)
}

View File

@ -0,0 +1,273 @@
package backup
import (
"strconv"
"testing"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/control"
)
type GroupsUnitSuite struct {
tester.Suite
}
func TestGroupsUnitSuite(t *testing.T) {
suite.Run(t, &GroupsUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *GroupsUnitSuite) TestAddGroupsCommands() {
expectUse := groupsServiceCommand
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "create groups",
use: createCommand,
expectUse: expectUse + " " + groupsServiceCommandCreateUseSuffix,
expectShort: groupsCreateCmd().Short,
expectRunE: createGroupsCmd,
},
{
name: "list groups",
use: listCommand,
expectUse: expectUse,
expectShort: groupsListCmd().Short,
expectRunE: listGroupsCmd,
},
{
name: "details groups",
use: detailsCommand,
expectUse: expectUse + " " + groupsServiceCommandDetailsUseSuffix,
expectShort: groupsDetailsCmd().Short,
expectRunE: detailsGroupsCmd,
},
{
name: "delete groups",
use: deleteCommand,
expectUse: expectUse + " " + groupsServiceCommandDeleteUseSuffix,
expectShort: groupsDeleteCmd().Short,
expectRunE: deleteGroupsCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
cmd := &cobra.Command{Use: test.use}
c := addGroupsCommands(cmd)
require.NotNil(t, c)
cmds := cmd.Commands()
require.Len(t, cmds, 1)
child := cmds[0]
assert.Equal(t, test.expectUse, child.Use)
assert.Equal(t, test.expectShort, child.Short)
tester.AreSameFunc(t, test.expectRunE, child.RunE)
})
}
}
func (suite *GroupsUnitSuite) TestValidateGroupsBackupCreateFlags() {
table := []struct {
name string
cats []string
expect assert.ErrorAssertionFunc
}{
{
name: "none",
cats: []string{},
expect: assert.NoError,
},
{
name: "libraries",
cats: []string{flags.DataLibraries},
expect: assert.NoError,
},
{
name: "messages",
cats: []string{flags.DataMessages},
expect: assert.NoError,
},
{
name: "conversations",
cats: []string{flags.DataConversations},
expect: assert.NoError,
},
{
name: "all allowed",
cats: []string{
flags.DataLibraries,
flags.DataMessages,
flags.DataConversations,
},
expect: assert.NoError,
},
{
name: "bad inputs",
cats: []string{"foo"},
expect: assert.Error,
},
}
for _, test := range table {
suite.Run(test.name, func() {
err := validateGroupsBackupCreateFlags([]string{"*"}, test.cats)
test.expect(suite.T(), err, clues.ToCore(err))
})
}
}
func (suite *GroupsUnitSuite) TestBackupCreateFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: createCommand},
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.GroupFN, flagsTD.FlgInputs(flagsTD.GroupsInput),
"--" + flags.CategoryDataFN, flagsTD.FlgInputs(flagsTD.GroupsCategoryDataInput),
"--" + flags.FetchParallelismFN, flagsTD.FetchParallelism,
"--" + flags.DisableDeltaFN,
"--" + flags.DisableLazyItemReaderFN,
},
flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
opts := utils.MakeGroupsOpts(cmd)
co := utils.Control()
backupOpts := utils.ParseBackupOptions()
// TODO(ashmrtn): Remove flag checks on control.Options to control.Backup once
// restore flags are switched over too and we no longer parse flags beyond
// connection info into control.Options.
assert.Equal(t, flagsTD.FetchParallelism, strconv.Itoa(backupOpts.Parallelism.ItemFetch))
assert.Equal(t, control.FailFast, backupOpts.FailureHandling)
assert.True(t, backupOpts.Incrementals.ForceFullEnumeration)
assert.True(t, backupOpts.Incrementals.ForceItemDataRefresh)
assert.True(t, backupOpts.M365.DisableDeltaEndpoint)
assert.Equal(t, flagsTD.FetchParallelism, strconv.Itoa(co.Parallelism.ItemFetch))
assert.Equal(t, control.FailFast, co.FailureHandling)
assert.True(t, co.ToggleFeatures.DisableIncrementals)
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.True(t, co.ToggleFeatures.DisableDelta)
assert.True(t, co.ToggleFeatures.DisableLazyItemReader)
assert.ElementsMatch(t, flagsTD.GroupsInput, opts.Groups)
flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *GroupsUnitSuite) TestBackupListFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: listCommand},
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedBackupListFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertBackupListFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *GroupsUnitSuite) TestBackupDetailsFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: detailsCommand},
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.SkipReduceFN,
},
flagsTD.PreparedChannelFlags(),
flagsTD.PreparedConversationFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags(),
flagsTD.PreparedLibraryFlags()))
co := utils.Control()
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.True(t, co.SkipReduce)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
flagsTD.AssertChannelFlags(t, cmd)
flagsTD.AssertConversationFlags(t, cmd)
flagsTD.AssertLibraryFlags(t, cmd)
}
func (suite *GroupsUnitSuite) TestBackupDeleteFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: deleteCommand},
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}

View File

@ -1,53 +0,0 @@
package backup_test
import (
"context"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
)
func prepM365Test(
t *testing.T,
ctx context.Context, //revive:disable-line:context-as-argument
) (
account.Account,
storage.Storage,
repository.Repository,
*viper.Viper,
strings.Builder,
string,
) {
var (
acct = tester.NewM365Account(t)
st = tester.NewPrefixedS3Storage(t)
recorder = strings.Builder{}
)
cfg, err := st.S3Config()
require.NoError(t, err, clues.ToCore(err))
force := map[string]string{
tester.TestCfgAccountProvider: "M365",
tester.TestCfgStorageProvider: "S3",
tester.TestCfgPrefix: cfg.Prefix,
}
vpr, cfgFP := tester.MakeTempTestConfigClone(t, force)
ctx = config.SetViper(ctx, vpr)
repo, err := repository.Initialize(ctx, acct, st, control.Defaults())
require.NoError(t, err, clues.ToCore(err))
return acct, st, repo, vpr, recorder, cfgFP
}

View File

@ -0,0 +1,98 @@
package backup_test
import (
"context"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
"github.com/alcionai/corso/src/pkg/storage/testdata"
)
type dependencies struct {
st storage.Storage
repo repository.Repositoryer
vpr *viper.Viper
recorder strings.Builder
configFilePath string
}
func prepM365Test(
t *testing.T,
ctx context.Context, //revive:disable-line:context-as-argument
pst path.ServiceType,
) dependencies {
var (
acct = tconfig.NewM365Account(t)
st = testdata.NewPrefixedS3Storage(t)
recorder = strings.Builder{}
)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
force := map[string]string{
tconfig.TestCfgAccountProvider: account.ProviderM365.String(),
tconfig.TestCfgStorageProvider: storage.ProviderS3.String(),
tconfig.TestCfgPrefix: cfg.Prefix,
}
vpr, cfgFP := tconfig.MakeTempTestConfigClone(t, force)
ctx = config.SetViper(ctx, vpr)
repo, err := repository.New(
ctx,
acct,
st,
control.DefaultOptions(),
repository.NewRepoID)
require.NoError(t, err, clues.ToCore(err))
err = repo.Initialize(ctx, repository.InitConfig{
Service: pst,
})
require.NoError(t, err, clues.ToCore(err))
return dependencies{
st: st,
repo: repo,
vpr: vpr,
recorder: recorder,
configFilePath: cfgFP,
}
}
// ---------------------------------------------------------------------------
// funcs
// ---------------------------------------------------------------------------
func buildExchangeBackupCmd(
ctx context.Context,
configFile, user, category string,
recorder *strings.Builder,
) (*cobra.Command, context.Context) {
cmd := cliTD.StubRootCmd(
"backup", "create", "exchange",
"--"+flags.ConfigFileFN, configFile,
"--"+flags.UserFN, user,
"--"+flags.CategoryDataFN, category)
cli.BuildCommandTree(cmd)
cmd.SetOut(recorder)
return cmd, print.SetRootCmd(ctx, cmd)
}

View File

@ -1,22 +1,15 @@
package backup
import (
"context"
"github.com/alcionai/clues"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/repo"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/data"
"github.com/alcionai/corso/src/pkg/backup/details"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/selectors"
)
@ -27,7 +20,7 @@ import (
const (
oneDriveServiceCommand = "onedrive"
oneDriveServiceCommandCreateUseSuffix = "--user <email> | '" + flags.Wildcard + "'"
oneDriveServiceCommandDeleteUseSuffix = "--backup <backupId>"
oneDriveServiceCommandDeleteUseSuffix = "--backups <backupId>"
oneDriveServiceCommandDetailsUseSuffix = "--backup <backupId>"
)
@ -41,8 +34,9 @@ corso backup create onedrive --user alice@example.com,bob@example.com
# Backup all OneDrive data for all M365 users
corso backup create onedrive --user '*'`
oneDriveServiceCommandDeleteExamples = `# Delete OneDrive backup with ID 1234abcd-12ab-cd34-56de-1234abcd
corso backup delete onedrive --backup 1234abcd-12ab-cd34-56de-1234abcd`
oneDriveServiceCommandDeleteExamples = `# Delete OneDrive backup with ID 1234abcd-12ab-cd34-56de-1234abcd \
and 1234abcd-12ab-cd34-56de-1234abce
corso backup delete onedrive --backups 1234abcd-12ab-cd34-56de-1234abcd,1234abcd-12ab-cd34-56de-1234abce`
oneDriveServiceCommandDetailsExamples = `# Explore items in Bob's latest backup (1234abcd...)
corso backup details onedrive --backup 1234abcd-12ab-cd34-56de-1234abcd
@ -66,56 +60,43 @@ func addOneDriveCommands(cmd *cobra.Command) *cobra.Command {
switch cmd.Use {
case createCommand:
c, fs = utils.AddCommand(cmd, oneDriveCreateCmd())
fs.SortFlags = false
c.Use = c.Use + " " + oneDriveServiceCommandCreateUseSuffix
c.Example = oneDriveServiceCommandCreateExamples
flags.AddUserFlag(c)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddFailFastFlag(c)
flags.AddDisableIncrementalsFlag(c)
flags.AddGenericBackupFlags(c)
fs.BoolVar(
&flags.UseOldDeltaProcessFV,
flags.UseOldDeltaProcessFN,
false,
"process backups using the old delta processor instead of tree-based enumeration")
cobra.CheckErr(fs.MarkHidden(flags.UseOldDeltaProcessFN))
case listCommand:
c, fs = utils.AddCommand(cmd, oneDriveListCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, oneDriveListCmd())
flags.AddBackupIDFlag(c, false)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
addFailedItemsFN(c)
addSkippedItemsFN(c)
addRecoveredErrorsFN(c)
flags.AddAllBackupListFlags(c)
case detailsCommand:
c, fs = utils.AddCommand(cmd, oneDriveDetailsCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, oneDriveDetailsCmd())
c.Use = c.Use + " " + oneDriveServiceCommandDetailsUseSuffix
c.Example = oneDriveServiceCommandDetailsExamples
flags.AddSkipReduceFlag(c)
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddOneDriveDetailsAndRestoreFlags(c)
case deleteCommand:
c, fs = utils.AddCommand(cmd, oneDriveDeleteCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, oneDriveDeleteCmd())
c.Use = c.Use + " " + oneDriveServiceCommandDeleteUseSuffix
c.Example = oneDriveServiceCommandDeleteExamples
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddMultipleBackupIDsFlag(c, false)
flags.AddBackupIDFlag(c, false)
}
return c
@ -144,11 +125,18 @@ func createOneDriveCmd(cmd *cobra.Command, args []string) error {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := validateOneDriveBackupCreateFlags(flags.UserFV); err != nil {
return err
}
r, acct, err := utils.AccountConnectAndWriteRepoConfig(ctx, repo.S3Overrides())
r, acct, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
path.OneDriveService)
if err != nil {
return Only(ctx, err)
}
@ -157,7 +145,12 @@ func createOneDriveCmd(cmd *cobra.Command, args []string) error {
sel := oneDriveBackupCreateSelectors(flags.UserFV)
ins, err := utils.UsersMap(ctx, *acct, fault.New(true))
ins, err := utils.UsersMap(
ctx,
*acct,
utils.Control(),
r.Counter(),
fault.New(true))
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to retrieve M365 users"))
}
@ -168,10 +161,10 @@ func createOneDriveCmd(cmd *cobra.Command, args []string) error {
selectorSet = append(selectorSet, discSel.Selector)
}
return runBackups(
return genericCreateCommand(
ctx,
r,
"OneDrive", "user",
"OneDrive",
selectorSet,
ins)
}
@ -231,69 +224,33 @@ func detailsOneDriveCmd(cmd *cobra.Command, args []string) error {
return nil
}
ctx := cmd.Context()
opts := utils.MakeOneDriveOpts(cmd)
r, _, _, err := utils.GetAccountAndConnect(ctx, repo.S3Overrides())
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
ctrlOpts := utils.Control()
ds, err := runDetailsOneDriveCmd(ctx, r, flags.BackupIDFV, opts, ctrlOpts.SkipReduce)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) == 0 {
Info(ctx, selectors.ErrorNoMatchingItems)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
ds.PrintEntries(ctx)
return nil
return runDetailsOneDriveCmd(cmd)
}
// runDetailsOneDriveCmd actually performs the lookup in backup details.
// the fault.Errors return is always non-nil. Callers should check if
// errs.Failure() == nil.
func runDetailsOneDriveCmd(
ctx context.Context,
r repository.BackupGetter,
backupID string,
opts utils.OneDriveOpts,
skipReduce bool,
) (*details.Details, error) {
if err := utils.ValidateOneDriveRestoreFlags(backupID, opts); err != nil {
return nil, err
func runDetailsOneDriveCmd(cmd *cobra.Command) error {
ctx := cmd.Context()
opts := utils.MakeOneDriveOpts(cmd)
sel := utils.IncludeOneDriveRestoreDataSelectors(opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterOneDriveRestoreInfoSelectors(sel, opts)
ds, err := genericDetailsCommand(cmd, flags.BackupIDFV, sel.Selector)
if err != nil {
return Only(ctx, err)
}
ctx = clues.Add(ctx, "backup_id", backupID)
d, _, errs := r.GetBackupDetails(ctx, backupID)
// TODO: log/track recoverable errors
if errs.Failure() != nil {
if errors.Is(errs.Failure(), data.ErrNotFound) {
return nil, clues.New("no backup exists with the id " + backupID)
}
return nil, clues.Wrap(errs.Failure(), "Failed to get backup details in the repository")
if len(ds.Entries) > 0 {
ds.PrintEntries(ctx)
} else {
Info(ctx, selectors.ErrorNoMatchingItems)
}
ctx = clues.Add(ctx, "details_entries", len(d.Entries))
if !skipReduce {
sel := utils.IncludeOneDriveRestoreDataSelectors(opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterOneDriveRestoreInfoSelectors(sel, opts)
d = sel.Reduce(ctx, d, errs)
}
return d, nil
return nil
}
// `corso backup delete onedrive [<flag>...]`
@ -309,5 +266,15 @@ func oneDriveDeleteCmd() *cobra.Command {
// deletes a oneDrive service backup.
func deleteOneDriveCmd(cmd *cobra.Command, args []string) error {
return genericDeleteCommand(cmd, flags.BackupIDFV, "OneDrive", args)
backupIDValue := []string{}
if len(flags.BackupIDsFV) > 0 {
backupIDValue = flags.BackupIDsFV
} else if len(flags.BackupIDFV) > 0 {
backupIDValue = append(backupIDValue, flags.BackupIDFV)
} else {
return clues.New("either --backup or --backups flag is required")
}
return genericDeleteCommand(cmd, path.OneDriveService, "OneDrive", backupIDValue, args)
}

View File

@ -7,23 +7,23 @@ import (
"github.com/alcionai/clues"
"github.com/google/uuid"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
selTD "github.com/alcionai/corso/src/pkg/selectors/testdata"
"github.com/alcionai/corso/src/pkg/storage"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
// ---------------------------------------------------------------------------
@ -32,20 +32,14 @@ import (
type NoBackupOneDriveE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365UserID string
recorder strings.Builder
dpnd dependencies
}
func TestNoBackupOneDriveE2ESuite(t *testing.T) {
suite.Run(t, &NoBackupOneDriveE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs}),
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
@ -55,33 +49,25 @@ func (suite *NoBackupOneDriveE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.recorder = recorder
suite.vpr = vpr
suite.cfgFP = cfgFilePath
suite.m365UserID = tester.M365UserID(t)
suite.dpnd = prepM365Test(t, ctx, path.OneDriveService)
}
func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupListCmd_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "onedrive",
"--config-file", suite.cfgFP)
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -89,13 +75,13 @@ func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupListCmd_empty() {
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
// as an offhand check: the result should contain the m365 user id
assert.True(t, strings.HasSuffix(result, "No backups available\n"))
}
func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupCmd_UserNotInTenant() {
func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupCmd_userNotInTenant() {
recorder := strings.Builder{}
t := suite.T()
@ -103,12 +89,12 @@ func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupCmd_UserNotInTenant() {
ctx, flush := tester.NewContext(t)
defer flush()
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "create", "onedrive",
"--config-file", suite.cfgFP,
"--"+flags.UserFN, "foo@nothere.com")
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.UserFN, "foo@not-there.com")
cli.BuildCommandTree(cmd)
cmd.SetOut(&recorder)
@ -121,7 +107,8 @@ func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupCmd_UserNotInTenant() {
assert.Contains(
t,
err.Error(),
"not found in tenant", "error missing user not found")
"not found",
"error missing user not found")
assert.NotContains(t, err.Error(), "runtime error", "panic happened")
t.Logf("backup error message: %s", err.Error())
@ -136,20 +123,15 @@ func (suite *NoBackupOneDriveE2ESuite) TestOneDriveBackupCmd_UserNotInTenant() {
type BackupDeleteOneDriveE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
backupOp operations.BackupOperation
recorder strings.Builder
dpnd dependencies
backupOps [3]operations.BackupOperation
}
func TestBackupDeleteOneDriveE2ESuite(t *testing.T) {
suite.Run(t, &BackupDeleteOneDriveE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs}),
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
@ -159,17 +141,10 @@ func (suite *BackupDeleteOneDriveE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.recorder = recorder
suite.vpr = vpr
suite.cfgFP = cfgFilePath
suite.dpnd = prepM365Test(t, ctx, path.OneDriveService)
var (
m365UserID = tester.M365UserID(t)
m365UserID = tconfig.M365UserID(t)
users = []string{m365UserID}
ins = idname.NewCache(map[string]string{m365UserID: m365UserID})
)
@ -178,31 +153,36 @@ func (suite *BackupDeleteOneDriveE2ESuite) SetupSuite() {
sel := selectors.NewOneDriveBackup(users)
sel.Include(selTD.OneDriveBackupFolderScope(sel))
backupOp, err := suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
for i := 0; i < cap(suite.backupOps); i++ {
backupOp, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
suite.backupOp = backupOp
suite.backupOps[i] = backupOp
err = suite.backupOp.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
err = suite.backupOps[i].Run(ctx)
require.NoError(t, err, clues.ToCore(err))
}
}
func (suite *BackupDeleteOneDriveE2ESuite) TestOneDriveBackupDeleteCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "onedrive",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, string(suite.backupOp.Results.BackupID))
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN,
fmt.Sprintf("%s,%s",
string(suite.backupOps[0].Results.BackupID),
string(suite.backupOps[1].Results.BackupID)))
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -210,19 +190,61 @@ func (suite *BackupDeleteOneDriveE2ESuite) TestOneDriveBackupDeleteCmd() {
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
assert.True(t,
strings.HasSuffix(
result,
fmt.Sprintf("Deleted OneDrive backup %s\n", string(suite.backupOp.Results.BackupID)),
),
)
fmt.Sprintf("Deleted OneDrive backup [%s %s]\n",
string(suite.backupOps[0].Results.BackupID),
string(suite.backupOps[1].Results.BackupID))))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = tester.StubRootCmd(
cmd = cliTD.StubRootCmd(
"backup", "details", "onedrive",
"--config-file", suite.cfgFP,
"--backup", string(suite.backupOp.Results.BackupID))
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backups", string(suite.backupOps[0].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteOneDriveE2ESuite) TestOneDriveBackupDeleteCmd_SingleID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "delete", "onedrive",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN,
string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.dpnd.recorder.String()
assert.True(t,
strings.HasSuffix(
result,
fmt.Sprintf("Deleted OneDrive backup [%s]\n",
string(suite.backupOps[2].Results.BackupID))))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "onedrive",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[0].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
@ -233,17 +255,35 @@ func (suite *BackupDeleteOneDriveE2ESuite) TestOneDriveBackupDeleteCmd_unknownID
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "onedrive",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, uuid.NewString())
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN, uuid.NewString())
cli.BuildCommandTree(cmd)
// unknown backupIDs should error since the modelStore can't find the backup
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteOneDriveE2ESuite) TestOneDriveBackupDeleteCmd_NoBackupID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "onedrive",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
// empty backupIDs should error since no data provided
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}

View File

@ -1,7 +1,6 @@
package backup
import (
"fmt"
"testing"
"github.com/alcionai/clues"
@ -11,10 +10,11 @@ import (
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils/testdata"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/version"
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
"github.com/alcionai/corso/src/pkg/control"
)
type OneDriveUnitSuite struct {
@ -33,57 +33,35 @@ func (suite *OneDriveUnitSuite) TestAddOneDriveCommands() {
use string
expectUse string
expectShort string
flags []string
expectRunE func(*cobra.Command, []string) error
}{
{
"create onedrive",
createCommand,
expectUse + " " + oneDriveServiceCommandCreateUseSuffix,
oneDriveCreateCmd().Short,
[]string{
flags.UserFN,
flags.DisableIncrementalsFN,
flags.FailFastFN,
},
createOneDriveCmd,
name: "create onedrive",
use: createCommand,
expectUse: expectUse + " " + oneDriveServiceCommandCreateUseSuffix,
expectShort: oneDriveCreateCmd().Short,
expectRunE: createOneDriveCmd,
},
{
"list onedrive",
listCommand,
expectUse,
oneDriveListCmd().Short,
[]string{
flags.BackupFN,
flags.FailedItemsFN,
flags.SkippedItemsFN,
flags.RecoveredErrorsFN,
},
listOneDriveCmd,
name: "list onedrive",
use: listCommand,
expectUse: expectUse,
expectShort: oneDriveListCmd().Short,
expectRunE: listOneDriveCmd,
},
{
"details onedrive",
detailsCommand,
expectUse + " " + oneDriveServiceCommandDetailsUseSuffix,
oneDriveDetailsCmd().Short,
[]string{
flags.BackupFN,
flags.FolderFN,
flags.FileFN,
flags.FileCreatedAfterFN,
flags.FileCreatedBeforeFN,
flags.FileModifiedAfterFN,
flags.FileModifiedBeforeFN,
},
detailsOneDriveCmd,
name: "details onedrive",
use: detailsCommand,
expectUse: expectUse + " " + oneDriveServiceCommandDetailsUseSuffix,
expectShort: oneDriveDetailsCmd().Short,
expectRunE: detailsOneDriveCmd,
},
{
"delete onedrive",
deleteCommand,
expectUse + " " + oneDriveServiceCommandDeleteUseSuffix,
oneDriveDeleteCmd().Short,
[]string{flags.BackupFN},
deleteOneDriveCmd,
name: "delete onedrive",
use: deleteCommand,
expectUse: expectUse + " " + oneDriveServiceCommandDeleteUseSuffix,
expectShort: oneDriveDeleteCmd().Short,
expectRunE: deleteOneDriveCmd,
},
}
@ -103,14 +81,133 @@ func (suite *OneDriveUnitSuite) TestAddOneDriveCommands() {
assert.Equal(t, test.expectUse, child.Use)
assert.Equal(t, test.expectShort, child.Short)
tester.AreSameFunc(t, test.expectRunE, child.RunE)
for _, f := range test.flags {
assert.NotNil(t, c.Flag(f), f+" flag")
}
})
}
}
func (suite *OneDriveUnitSuite) TestBackupCreateFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: createCommand},
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.UserFN, flagsTD.FlgInputs(flagsTD.UsersInput),
},
flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
opts := utils.MakeOneDriveOpts(cmd)
co := utils.Control()
backupOpts := utils.ParseBackupOptions()
// TODO(ashmrtn): Remove flag checks on control.Options to control.Backup once
// restore flags are switched over too and we no longer parse flags beyond
// connection info into control.Options.
assert.Equal(t, control.FailFast, backupOpts.FailureHandling)
assert.True(t, backupOpts.Incrementals.ForceFullEnumeration)
assert.True(t, backupOpts.Incrementals.ForceItemDataRefresh)
assert.Equal(t, control.FailFast, co.FailureHandling)
assert.True(t, co.ToggleFeatures.DisableIncrementals)
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.ElementsMatch(t, flagsTD.UsersInput, opts.Users)
flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *OneDriveUnitSuite) TestBackupListFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: listCommand},
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedBackupListFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertBackupListFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *OneDriveUnitSuite) TestBackupDetailsFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: detailsCommand},
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.SkipReduceFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
co := utils.Control()
assert.True(t, co.SkipReduce)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *OneDriveUnitSuite) TestBackupDeleteFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: deleteCommand},
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *OneDriveUnitSuite) TestValidateOneDriveBackupCreateFlags() {
table := []struct {
name string
@ -134,51 +231,3 @@ func (suite *OneDriveUnitSuite) TestValidateOneDriveBackupCreateFlags() {
})
}
}
func (suite *OneDriveUnitSuite) TestOneDriveBackupDetailsSelectors() {
for v := 0; v <= version.Backup; v++ {
suite.Run(fmt.Sprintf("version%d", v), func() {
for _, test := range testdata.OneDriveOptionDetailLookups {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
bg := testdata.VersionedBackupGetter{
Details: dtd.GetDetailsSetForVersion(t, v),
}
output, err := runDetailsOneDriveCmd(
ctx,
bg,
"backup-ID",
test.Opts(t, v),
false)
assert.NoError(t, err, clues.ToCore(err))
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
})
}
})
}
}
func (suite *OneDriveUnitSuite) TestOneDriveBackupDetailsSelectorsBadFormats() {
for _, test := range testdata.BadOneDriveOptionsFormats {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
output, err := runDetailsOneDriveCmd(
ctx,
test.BackupGetter,
"backup-ID",
test.Opts(t, version.Backup),
false)
assert.Error(t, err, clues.ToCore(err))
assert.Empty(t, output)
})
}
}

View File

@ -4,22 +4,16 @@ import (
"context"
"github.com/alcionai/clues"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"golang.org/x/exp/slices"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/repo"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/data"
"github.com/alcionai/corso/src/pkg/backup/details"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/filters"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/selectors"
"github.com/alcionai/corso/src/pkg/services/m365"
)
@ -28,15 +22,10 @@ import (
// setup and globals
// ------------------------------------------------------------------------------------------------
const (
dataLibraries = "libraries"
dataPages = "pages"
)
const (
sharePointServiceCommand = "sharepoint"
sharePointServiceCommandCreateUseSuffix = "--site <siteURL> | '" + flags.Wildcard + "'"
sharePointServiceCommandDeleteUseSuffix = "--backup <backupId>"
sharePointServiceCommandDeleteUseSuffix = "--backups <backupId>"
sharePointServiceCommandDetailsUseSuffix = "--backup <backupId>"
)
@ -48,10 +37,15 @@ corso backup create sharepoint --site https://example.com/hr
corso backup create sharepoint --site https://example.com/hr,https://example.com/team
# Backup all SharePoint data for all Sites
corso backup create sharepoint --site '*'`
corso backup create sharepoint --site '*'
sharePointServiceCommandDeleteExamples = `# Delete SharePoint backup with ID 1234abcd-12ab-cd34-56de-1234abcd
corso backup delete sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd`
# Backup all SharePoint list data for a Site
corso backup create sharepoint --site https://example.com/hr --data lists
`
sharePointServiceCommandDeleteExamples = `# Delete SharePoint backup with ID 1234abcd-12ab-cd34-56de-1234abcd \
and 1234abcd-12ab-cd34-56de-1234abce
corso backup delete sharepoint --backups 1234abcd-12ab-cd34-56de-1234abcd,1234abcd-12ab-cd34-56de-1234abce`
sharePointServiceCommandDetailsExamples = `# Explore items in the HR site's latest backup (1234abcd...)
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd
@ -67,70 +61,70 @@ corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
# Explore all files within the document library "Work Documents"
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--library "Work Documents"
`
# Explore lists by their name(s)
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list "list-name-1,list-name-2"
# Explore lists created after a given time
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-created-after 2024-01-01T12:23:34
# Explore lists created before a given time
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-created-before 2024-01-01T12:23:34
# Explore lists modified before a given time
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-modified-before 2024-01-01T12:23:34
# Explore lists modified after a given time
corso backup details sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-modified-after 2024-01-01T12:23:34`
)
// called by backup.go to map subcommands to provider-specific handling.
func addSharePointCommands(cmd *cobra.Command) *cobra.Command {
var (
c *cobra.Command
fs *pflag.FlagSet
)
var c *cobra.Command
switch cmd.Use {
case createCommand:
c, fs = utils.AddCommand(cmd, sharePointCreateCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, sharePointCreateCmd())
c.Use = c.Use + " " + sharePointServiceCommandCreateUseSuffix
c.Example = sharePointServiceCommandCreateExamples
flags.AddSiteFlag(c)
flags.AddSiteIDFlag(c)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddDataFlag(c, []string{dataLibraries}, true)
flags.AddFailFastFlag(c)
flags.AddDisableIncrementalsFlag(c)
flags.AddSiteFlag(c, true)
flags.AddSiteIDFlag(c, true)
// [TODO](hitesh) to add lists flag to invoke backup for lists
// when explicit invoke is not required anymore
flags.AddDataFlag(c, []string{flags.DataLibraries}, true)
flags.AddGenericBackupFlags(c)
case listCommand:
c, fs = utils.AddCommand(cmd, sharePointListCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, sharePointListCmd())
flags.AddBackupIDFlag(c, false)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
addFailedItemsFN(c)
addSkippedItemsFN(c)
addRecoveredErrorsFN(c)
flags.AddAllBackupListFlags(c)
case detailsCommand:
c, fs = utils.AddCommand(cmd, sharePointDetailsCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, sharePointDetailsCmd())
c.Use = c.Use + " " + sharePointServiceCommandDetailsUseSuffix
c.Example = sharePointServiceCommandDetailsExamples
flags.AddSkipReduceFlag(c)
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddSharePointDetailsAndRestoreFlags(c)
case deleteCommand:
c, fs = utils.AddCommand(cmd, sharePointDeleteCmd())
fs.SortFlags = false
c, _ = utils.AddCommand(cmd, sharePointDeleteCmd())
c.Use = c.Use + " " + sharePointServiceCommandDeleteUseSuffix
c.Example = sharePointServiceCommandDeleteExamples
flags.AddBackupIDFlag(c, true)
flags.AddCorsoPassphaseFlags(c)
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddMultipleBackupIDsFlag(c, false)
flags.AddBackupIDFlag(c, false)
}
return c
@ -159,11 +153,18 @@ func createSharePointCmd(cmd *cobra.Command, args []string) error {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := validateSharePointBackupCreateFlags(flags.SiteIDFV, flags.WebURLFV, flags.CategoryDataFV); err != nil {
return err
}
r, acct, err := utils.AccountConnectAndWriteRepoConfig(ctx, repo.S3Overrides())
r, acct, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
path.SharePointService)
if err != nil {
return Only(ctx, err)
}
@ -173,7 +174,12 @@ func createSharePointCmd(cmd *cobra.Command, args []string) error {
// TODO: log/print recoverable errors
errs := fault.New(false)
ins, err := m365.SitesMap(ctx, *acct, errs)
svcCli, err := m365.NewM365Client(ctx, *acct)
if err != nil {
return Only(ctx, clues.Stack(err))
}
ins, err := svcCli.SitesMap(ctx, errs)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to retrieve M365 sites"))
}
@ -189,10 +195,10 @@ func createSharePointCmd(cmd *cobra.Command, args []string) error {
selectorSet = append(selectorSet, discSel.Selector)
}
return runBackups(
return genericCreateCommand(
ctx,
r,
"SharePoint", "site",
"SharePoint",
selectorSet,
ins)
}
@ -202,15 +208,15 @@ func validateSharePointBackupCreateFlags(sites, weburls, cats []string) error {
return clues.New(
"requires one or more --" +
flags.SiteFN + " urls, or the wildcard --" +
flags.SiteFN + " *",
)
flags.SiteFN + " *")
}
allowedCats := utils.SharePointAllowedCategories()
for _, d := range cats {
if d != dataLibraries && d != dataPages {
if _, ok := allowedCats[d]; !ok {
return clues.New(
d + " is an unrecognized data type; either " + dataLibraries + "or " + dataPages,
)
d + " is an unrecognized data type; only " + flags.DataLibraries + " supported")
}
}
@ -237,29 +243,11 @@ func sharePointBackupCreateSelectors(
sel := selectors.NewSharePointBackup(append(slices.Clone(sites), weburls...))
return addCategories(sel, cats), nil
return utils.AddCategories(sel, cats), nil
}
func includeAllSitesWithCategories(ins idname.Cacher, categories []string) *selectors.SharePointBackup {
return addCategories(selectors.NewSharePointBackup(ins.IDs()), categories)
}
func addCategories(sel *selectors.SharePointBackup, cats []string) *selectors.SharePointBackup {
// Issue #2631: Libraries are the only supported feature for SharePoint at this time.
if len(cats) == 0 {
sel.Include(sel.LibraryFolders(selectors.Any()))
}
for _, d := range cats {
switch d {
case dataLibraries:
sel.Include(sel.LibraryFolders(selectors.Any()))
case dataPages:
sel.Include(sel.Pages(selectors.Any()))
}
}
return sel
return utils.AddCategories(selectors.NewSharePointBackup(ins.IDs()), categories)
}
// ------------------------------------------------------------------------------------------------
@ -298,14 +286,24 @@ func sharePointDeleteCmd() *cobra.Command {
// deletes a sharePoint service backup.
func deleteSharePointCmd(cmd *cobra.Command, args []string) error {
return genericDeleteCommand(cmd, flags.BackupIDFV, "SharePoint", args)
backupIDValue := []string{}
if len(flags.BackupIDsFV) > 0 {
backupIDValue = flags.BackupIDsFV
} else if len(flags.BackupIDFV) > 0 {
backupIDValue = append(backupIDValue, flags.BackupIDFV)
} else {
return clues.New("either --backup or --backups flag is required")
}
return genericDeleteCommand(cmd, path.SharePointService, "SharePoint", backupIDValue, args)
}
// ------------------------------------------------------------------------------------------------
// backup details
// ------------------------------------------------------------------------------------------------
// `corso backup details onedrive [<flag>...]`
// `corso backup details SharePoint [<flag>...]`
func sharePointDetailsCmd() *cobra.Command {
return &cobra.Command{
Use: sharePointServiceCommand,
@ -322,67 +320,31 @@ func detailsSharePointCmd(cmd *cobra.Command, args []string) error {
return nil
}
ctx := cmd.Context()
opts := utils.MakeSharePointOpts(cmd)
r, _, _, err := utils.GetAccountAndConnect(ctx, repo.S3Overrides())
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
ctrlOpts := utils.Control()
ds, err := runDetailsSharePointCmd(ctx, r, flags.BackupIDFV, opts, ctrlOpts.SkipReduce)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) == 0 {
Info(ctx, selectors.ErrorNoMatchingItems)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
ds.PrintEntries(ctx)
return runDetailsSharePointCmd(cmd)
}
func runDetailsSharePointCmd(cmd *cobra.Command) error {
ctx := cmd.Context()
opts := utils.MakeSharePointOpts(cmd)
sel := utils.IncludeSharePointRestoreDataSelectors(ctx, opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterSharePointRestoreInfoSelectors(sel, opts)
ds, err := genericDetailsCommand(cmd, flags.BackupIDFV, sel.Selector)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) > 0 {
ds.PrintEntries(ctx)
} else {
Info(ctx, selectors.ErrorNoMatchingItems)
}
return nil
}
// runDetailsSharePointCmd actually performs the lookup in backup details.
// the fault.Errors return is always non-nil. Callers should check if
// errs.Failure() == nil.
func runDetailsSharePointCmd(
ctx context.Context,
r repository.BackupGetter,
backupID string,
opts utils.SharePointOpts,
skipReduce bool,
) (*details.Details, error) {
if err := utils.ValidateSharePointRestoreFlags(backupID, opts); err != nil {
return nil, err
}
ctx = clues.Add(ctx, "backup_id", backupID)
d, _, errs := r.GetBackupDetails(ctx, backupID)
// TODO: log/track recoverable errors
if errs.Failure() != nil {
if errors.Is(errs.Failure(), data.ErrNotFound) {
return nil, clues.New("no backup exists with the id " + backupID)
}
return nil, clues.Wrap(errs.Failure(), "Failed to get backup details in the repository")
}
ctx = clues.Add(ctx, "details_entries", len(d.Entries))
if !skipReduce {
sel := utils.IncludeSharePointRestoreDataSelectors(ctx, opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterSharePointRestoreInfoSelectors(sel, opts)
d = sel.Reduce(ctx, d, errs)
}
return d, nil
}

View File

@ -1,51 +1,48 @@
package backup_test
import (
"context"
"fmt"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/google/uuid"
"github.com/spf13/viper"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/internal/tester/its"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/backup/details"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
"github.com/alcionai/corso/src/pkg/selectors/testdata"
"github.com/alcionai/corso/src/pkg/storage"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
// ---------------------------------------------------------------------------
// tests with no prior backup
// tests that require no existing backups
// ---------------------------------------------------------------------------
type NoBackupSharePointE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
m365SiteID string
recorder strings.Builder
dpnd dependencies
}
func TestNoBackupSharePointE2ESuite(t *testing.T) {
suite.Run(t, &NoBackupSharePointE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *NoBackupSharePointE2ESuite) SetupSuite() {
@ -54,33 +51,25 @@ func (suite *NoBackupSharePointE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.recorder = recorder
suite.cfgFP = cfgFilePath
suite.m365SiteID = tester.M365SiteID(t)
suite.dpnd = prepM365Test(t, ctx, path.SharePointService)
}
func (suite *NoBackupSharePointE2ESuite) TestSharePointBackupListCmd_empty() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "list", "sharepoint",
"--config-file", suite.cfgFP)
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -88,32 +77,319 @@ func (suite *NoBackupSharePointE2ESuite) TestSharePointBackupListCmd_empty() {
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
// as an offhand check: the result should contain the m365 sitet id
assert.True(t, strings.HasSuffix(result, "No backups available\n"))
}
// ---------------------------------------------------------------------------
// tests with no prior backup
// ---------------------------------------------------------------------------
type BackupSharepointE2ESuite struct {
tester.Suite
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestBackupSharepointE2ESuite(t *testing.T) {
suite.Run(t, &BackupSharepointE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *BackupSharepointE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.SharePointService)
}
func (suite *BackupSharepointE2ESuite) TestSharepointBackupCmd_lists() {
// Issue: https://github.com/alcionai/corso/issues/4754
suite.T().Skip("unskip when sharepoint lists support is enabled")
runSharepointBackupCategoryTest(suite, flags.DataLists)
}
func runSharepointBackupCategoryTest(suite *BackupSharepointE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildSharepointBackupCmd(
ctx,
suite.dpnd.configFilePath,
suite.m365.Site.ID,
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := recorder.String()
t.Log("backup results", result)
}
func (suite *BackupSharepointE2ESuite) TestSharepointBackupCmd_siteNotFound_lists() {
// Issue: https://github.com/alcionai/corso/issues/4754
suite.T().Skip("un-skip test when lists support is enabled")
runSharepointBackupSiteNotFoundTest(suite, flags.DataLists)
}
func runSharepointBackupSiteNotFoundTest(suite *BackupSharepointE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildSharepointBackupCmd(
ctx,
suite.dpnd.configFilePath,
uuid.NewString(),
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
assert.Contains(
t,
err.Error(),
"Invalid hostname for this tenancy", "error missing site not found")
assert.NotContains(t, err.Error(), "runtime error", "panic happened")
t.Logf("backup error message: %s", err.Error())
result := recorder.String()
t.Log("backup results", result)
}
// ---------------------------------------------------------------------------
// tests prepared with a previous backup
// ---------------------------------------------------------------------------
type PreparedBackupSharepointE2ESuite struct {
tester.Suite
dpnd dependencies
backupOps map[path.CategoryType]string
m365 its.M365IntgTestSetup
}
func TestPreparedBackupSharepointE2ESuite(t *testing.T) {
suite.Run(t, &PreparedBackupSharepointE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *PreparedBackupSharepointE2ESuite) SetupSuite() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.SharePointService)
suite.backupOps = make(map[path.CategoryType]string)
var (
sites = []string{suite.m365.Site.ID}
ins = idname.NewCache(map[string]string{suite.m365.Site.ID: suite.m365.Site.ID})
cats = []path.CategoryType{
path.ListsCategory,
}
)
for _, set := range cats {
var (
sel = selectors.NewSharePointBackup(sites)
scopes []selectors.SharePointScope
)
switch set {
case path.ListsCategory:
scopes = testdata.SharePointBackupListsScope(sel)
}
sel.Include(scopes)
bop, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
err = bop.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
bIDs := string(bop.Results.BackupID)
// sanity check, ensure we can find the backup and its details immediately
b, err := suite.dpnd.repo.Backup(ctx, string(bop.Results.BackupID))
require.NoError(t, err, "retrieving recent backup by ID")
require.Equal(t, bIDs, string(b.ID), "repo backup matches results id")
_, b, errs := suite.dpnd.repo.GetBackupDetails(ctx, bIDs)
require.NoError(t, errs.Failure(), "retrieving recent backup details by ID")
require.Empty(t, errs.Recovered(), "retrieving recent backup details by ID")
require.Equal(t, bIDs, string(b.ID), "repo details matches results id")
suite.backupOps[set] = string(b.ID)
}
}
func (suite *PreparedBackupSharepointE2ESuite) TestSharepointListCmd_lists() {
runSharepointListCmdTest(suite, path.ListsCategory)
}
func runSharepointListCmdTest(suite *PreparedBackupSharepointE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "sharepoint",
"--config-file", suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
assert.Contains(t, result, suite.backupOps[category])
t.Log("backup results", result)
}
func (suite *PreparedBackupSharepointE2ESuite) TestSharepointListCmd_badID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "sharepoint",
"--config-file", suite.dpnd.configFilePath,
"--backup", uuid.NewString())
cli.BuildCommandTree(cmd)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *PreparedBackupSharepointE2ESuite) TestSharepointDetailsCmd_lists() {
runSharepointDetailsCmdTest(suite, path.ListsCategory)
}
func runSharepointDetailsCmdTest(suite *PreparedBackupSharepointE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
// fetch the details from the repo first
deets, _, errs := suite.dpnd.repo.GetBackupDetails(ctx, string(bID))
require.NoError(t, errs.Failure(), clues.ToCore(errs.Failure()))
require.Empty(t, errs.Recovered())
cmd := cliTD.StubRootCmd(
"backup", "details", "sharepoint",
"--config-file", suite.dpnd.configFilePath,
"--"+flags.BackupFN, string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
i := 0
findings := make(map[path.CategoryType]int)
incrementor := func(cond bool, cat path.CategoryType) {
if cond {
findings[cat]++
}
}
for _, ent := range deets.Entries {
if ent.SharePoint == nil {
continue
}
isSharePointList := ent.SharePoint.ItemType == details.SharePointList
hasListName := isSharePointList && len(ent.SharePoint.List.Name) > 0
hasItemName := !isSharePointList && len(ent.SharePoint.ItemName) > 0
incrementor(hasListName, category)
incrementor(hasItemName, category)
suite.Run(fmt.Sprintf("detail %d", i), func() {
assert.Contains(suite.T(), result, ent.ShortRef)
})
i++
}
assert.GreaterOrEqual(t, findings[category], 1)
}
// ---------------------------------------------------------------------------
// tests for deleting backups
// ---------------------------------------------------------------------------
type BackupDeleteSharePointE2ESuite struct {
tester.Suite
acct account.Account
st storage.Storage
vpr *viper.Viper
cfgFP string
repo repository.Repository
backupOp operations.BackupOperation
recorder strings.Builder
dpnd dependencies
backupOp operations.BackupOperation
secondaryBackupOp operations.BackupOperation
}
func TestBackupDeleteSharePointE2ESuite(t *testing.T) {
suite.Run(t, &BackupDeleteSharePointE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs}),
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
@ -123,17 +399,10 @@ func (suite *BackupDeleteSharePointE2ESuite) SetupSuite() {
ctx, flush := tester.NewContext(t)
defer flush()
acct, st, repo, vpr, recorder, cfgFilePath := prepM365Test(t, ctx)
suite.acct = acct
suite.st = st
suite.repo = repo
suite.vpr = vpr
suite.recorder = recorder
suite.cfgFP = cfgFilePath
suite.dpnd = prepM365Test(t, ctx, path.SharePointService)
var (
m365SiteID = tester.M365SiteID(t)
m365SiteID = tconfig.M365SiteID(t)
sites = []string{m365SiteID}
ins = idname.NewCache(map[string]string{m365SiteID: m365SiteID})
)
@ -142,31 +411,43 @@ func (suite *BackupDeleteSharePointE2ESuite) SetupSuite() {
sel := selectors.NewSharePointBackup(sites)
sel.Include(testdata.SharePointBackupFolderScope(sel))
backupOp, err := suite.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
backupOp, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
suite.backupOp = backupOp
err = suite.backupOp.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
// secondary backup
secondaryBackupOp, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
suite.secondaryBackupOp = secondaryBackupOp
err = suite.secondaryBackupOp.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteSharePointE2ESuite) TestSharePointBackupDeleteCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.recorder.Reset()
suite.dpnd.recorder.Reset()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "sharepoint",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, string(suite.backupOp.Results.BackupID))
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN,
fmt.Sprintf("%s,%s",
string(suite.backupOp.Results.BackupID),
string(suite.secondaryBackupOp.Results.BackupID)))
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.recorder)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
@ -174,20 +455,20 @@ func (suite *BackupDeleteSharePointE2ESuite) TestSharePointBackupDeleteCmd() {
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.recorder.String()
result := suite.dpnd.recorder.String()
assert.True(t,
strings.HasSuffix(
result,
fmt.Sprintf("Deleted SharePoint backup %s\n", string(suite.backupOp.Results.BackupID)),
),
)
fmt.Sprintf("Deleted SharePoint backup [%s %s]\n",
string(suite.backupOp.Results.BackupID),
string(suite.secondaryBackupOp.Results.BackupID))))
}
// moved out of the func above to make the linter happy
// // a follow-up details call should fail, due to the backup ID being deleted
// cmd = tester.StubRootCmd(
// cmd = cliTD.StubRootCmd(
// "backup", "details", "sharepoint",
// "--config-file", suite.cfgFP,
// "--"+flags.ConfigFileFN, suite.cfgFP,
// "--backup", string(suite.backupOp.Results.BackupID))
// cli.BuildCommandTree(cmd)
@ -198,17 +479,55 @@ func (suite *BackupDeleteSharePointE2ESuite) TestSharePointBackupDeleteCmd_unkno
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.vpr)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"backup", "delete", "sharepoint",
"--config-file", suite.cfgFP,
"--"+flags.BackupFN, uuid.NewString())
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN, uuid.NewString())
cli.BuildCommandTree(cmd)
// unknown backupIDs should error since the modelStore can't find the backup
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteSharePointE2ESuite) TestSharePointBackupDeleteCmd_NoBackupID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "groups",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
// empty backupIDs should error since no data provided
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func buildSharepointBackupCmd(
ctx context.Context,
configFile, site, category string,
recorder *strings.Builder,
) (*cobra.Command, context.Context) {
cmd := cliTD.StubRootCmd(
"backup", "create", "sharepoint",
"--config-file", configFile,
"--"+flags.SiteIDFN, site,
"--"+flags.CategoryDataFN, category)
cli.BuildCommandTree(cmd)
cmd.SetOut(recorder)
return cmd, print.SetRootCmd(ctx, cmd)
}

View File

@ -1,7 +1,7 @@
package backup
import (
"fmt"
"strings"
"testing"
"github.com/alcionai/clues"
@ -11,11 +11,12 @@ import (
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils/testdata"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/version"
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/selectors"
)
@ -35,58 +36,35 @@ func (suite *SharePointUnitSuite) TestAddSharePointCommands() {
use string
expectUse string
expectShort string
flags []string
expectRunE func(*cobra.Command, []string) error
}{
{
"create sharepoint",
createCommand,
expectUse + " " + sharePointServiceCommandCreateUseSuffix,
sharePointCreateCmd().Short,
[]string{
flags.SiteFN,
flags.DisableIncrementalsFN,
flags.FailFastFN,
},
createSharePointCmd,
name: "create sharepoint",
use: createCommand,
expectUse: expectUse + " " + sharePointServiceCommandCreateUseSuffix,
expectShort: sharePointCreateCmd().Short,
expectRunE: createSharePointCmd,
},
{
"list sharepoint",
listCommand,
expectUse,
sharePointListCmd().Short,
[]string{
flags.BackupFN,
flags.FailedItemsFN,
flags.SkippedItemsFN,
flags.RecoveredErrorsFN,
},
listSharePointCmd,
name: "list sharepoint",
use: listCommand,
expectUse: expectUse,
expectShort: sharePointListCmd().Short,
expectRunE: listSharePointCmd,
},
{
"details sharepoint",
detailsCommand,
expectUse + " " + sharePointServiceCommandDetailsUseSuffix,
sharePointDetailsCmd().Short,
[]string{
flags.BackupFN,
flags.LibraryFN,
flags.FolderFN,
flags.FileFN,
flags.FileCreatedAfterFN,
flags.FileCreatedBeforeFN,
flags.FileModifiedAfterFN,
flags.FileModifiedBeforeFN,
},
detailsSharePointCmd,
name: "details sharepoint",
use: detailsCommand,
expectUse: expectUse + " " + sharePointServiceCommandDetailsUseSuffix,
expectShort: sharePointDetailsCmd().Short,
expectRunE: detailsSharePointCmd,
},
{
"delete sharepoint",
deleteCommand,
expectUse + " " + sharePointServiceCommandDeleteUseSuffix,
sharePointDeleteCmd().Short,
[]string{flags.BackupFN},
deleteSharePointCmd,
name: "delete sharepoint",
use: deleteCommand,
expectUse: expectUse + " " + sharePointServiceCommandDeleteUseSuffix,
expectShort: sharePointDeleteCmd().Short,
expectRunE: deleteSharePointCmd,
},
}
for _, test := range table {
@ -105,19 +83,142 @@ func (suite *SharePointUnitSuite) TestAddSharePointCommands() {
assert.Equal(t, test.expectUse, child.Use)
assert.Equal(t, test.expectShort, child.Short)
tester.AreSameFunc(t, test.expectRunE, child.RunE)
for _, f := range test.flags {
assert.NotNil(t, c.Flag(f), f+" flag")
}
})
}
}
func (suite *SharePointUnitSuite) TestBackupCreateFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: createCommand},
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.SiteIDFN, flagsTD.FlgInputs(flagsTD.SiteIDInput),
"--" + flags.SiteFN, flagsTD.FlgInputs(flagsTD.WebURLInput),
"--" + flags.CategoryDataFN, flagsTD.FlgInputs(flagsTD.SharepointCategoryDataInput),
},
flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
opts := utils.MakeSharePointOpts(cmd)
co := utils.Control()
backupOpts := utils.ParseBackupOptions()
// TODO(ashmrtn): Remove flag checks on control.Options to control.Backup once
// restore flags are switched over too and we no longer parse flags beyond
// connection info into control.Options.
assert.Equal(t, control.FailFast, backupOpts.FailureHandling)
assert.True(t, backupOpts.Incrementals.ForceFullEnumeration)
assert.True(t, backupOpts.Incrementals.ForceItemDataRefresh)
assert.Equal(t, control.FailFast, co.FailureHandling)
assert.True(t, co.ToggleFeatures.DisableIncrementals)
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.ElementsMatch(t, []string{strings.Join(flagsTD.SiteIDInput, ",")}, opts.SiteID)
assert.ElementsMatch(t, flagsTD.WebURLInput, opts.WebURL)
flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *SharePointUnitSuite) TestBackupListFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: listCommand},
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedBackupListFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertBackupListFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *SharePointUnitSuite) TestBackupDetailsFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: detailsCommand},
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.SkipReduceFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
co := utils.Control()
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.True(t, co.SkipReduce)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *SharePointUnitSuite) TestBackupDeleteFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: deleteCommand},
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *SharePointUnitSuite) TestValidateSharePointBackupCreateFlags() {
table := []struct {
name string
site []string
weburl []string
cats []string
expect assert.ErrorAssertionFunc
}{
{
@ -125,25 +226,61 @@ func (suite *SharePointUnitSuite) TestValidateSharePointBackupCreateFlags() {
expect: assert.Error,
},
{
name: "sites",
name: "sites but no category",
site: []string{"smarf"},
expect: assert.NoError,
},
{
name: "urls",
name: "web urls but no category",
weburl: []string{"fnord"},
expect: assert.NoError,
},
{
name: "both",
name: "both web urls and sites but no category",
site: []string{"smarf"},
weburl: []string{"fnord"},
expect: assert.NoError,
},
{
name: "site with libraries category",
site: []string{"smarf"},
cats: []string{flags.DataLibraries},
expect: assert.NoError,
},
{
name: "site with invalid category",
site: []string{"smarf"},
cats: []string{"invalid category"},
expect: assert.Error,
},
{
name: "site with lists category",
site: []string{"smarf"},
cats: []string{flags.DataLists},
expect: assert.NoError,
},
// [TODO]: Uncomment when pages are enabled
// {
// name: "site with pages category",
// site: []string{"smarf"},
// cats: []string{flags.DataPages},
// expect: assert.NoError,
// },
// [TODO]: Uncomment when pages & lists are enabled
// {
// name: "site with all categories",
// site: []string{"smarf"},
// cats: []string{flags.DataLists, flags.DataPages, flags.DataLibraries},
// expect: assert.NoError,
// },
}
for _, test := range table {
suite.Run(test.name, func() {
err := validateSharePointBackupCreateFlags(test.site, test.weburl, nil)
err := validateSharePointBackupCreateFlags(test.site, test.weburl, test.cats)
test.expect(suite.T(), err, clues.ToCore(err))
})
}
@ -163,12 +300,11 @@ func (suite *SharePointUnitSuite) TestSharePointBackupCreateSelectors() {
)
table := []struct {
name string
site []string
weburl []string
data []string
expect []string
expectScopesLen int
name string
site []string
weburl []string
data []string
expect []string
}{
{
name: "no sites or urls",
@ -181,63 +317,60 @@ func (suite *SharePointUnitSuite) TestSharePointBackupCreateSelectors() {
expect: selectors.None(),
},
{
name: "site wildcard",
site: []string{flags.Wildcard},
expect: bothIDs,
expectScopesLen: 2,
name: "site wildcard",
site: []string{flags.Wildcard},
expect: bothIDs,
},
{
name: "url wildcard",
weburl: []string{flags.Wildcard},
expect: bothIDs,
expectScopesLen: 2,
name: "url wildcard",
weburl: []string{flags.Wildcard},
expect: bothIDs,
},
{
name: "sites",
site: []string{id1, id2},
expect: []string{id1, id2},
expectScopesLen: 2,
name: "sites",
site: []string{id1, id2},
expect: []string{id1, id2},
},
{
name: "urls",
weburl: []string{url1, url2},
expect: []string{url1, url2},
expectScopesLen: 2,
name: "urls",
weburl: []string{url1, url2},
expect: []string{url1, url2},
},
{
name: "mix sites and urls",
site: []string{id1},
weburl: []string{url2},
expect: []string{id1, url2},
expectScopesLen: 2,
name: "mix sites and urls",
site: []string{id1},
weburl: []string{url2},
expect: []string{id1, url2},
},
{
name: "duplicate sites and urls",
site: []string{id1, id2},
weburl: []string{url1, url2},
expect: []string{id1, id2, url1, url2},
expectScopesLen: 2,
name: "duplicate sites and urls",
site: []string{id1, id2},
weburl: []string{url1, url2},
expect: []string{id1, id2, url1, url2},
},
{
name: "unnecessary site wildcard",
site: []string{id1, flags.Wildcard},
weburl: []string{url1, url2},
expect: bothIDs,
expectScopesLen: 2,
name: "unnecessary site wildcard",
site: []string{id1, flags.Wildcard},
weburl: []string{url1, url2},
expect: bothIDs,
},
{
name: "unnecessary url wildcard",
site: []string{id1},
weburl: []string{url1, flags.Wildcard},
expect: bothIDs,
expectScopesLen: 2,
name: "unnecessary url wildcard",
site: []string{id1},
weburl: []string{url1, flags.Wildcard},
expect: bothIDs,
},
{
name: "Pages",
site: bothIDs,
data: []string{dataPages},
expect: bothIDs,
expectScopesLen: 1,
name: "Pages",
site: bothIDs,
data: []string{flags.DataPages},
expect: bothIDs,
},
{
name: "Lists",
site: bothIDs,
data: []string{flags.DataLists},
expect: bothIDs,
},
}
for _, test := range table {
@ -249,55 +382,7 @@ func (suite *SharePointUnitSuite) TestSharePointBackupCreateSelectors() {
sel, err := sharePointBackupCreateSelectors(ctx, ins, test.site, test.weburl, test.data)
require.NoError(t, err, clues.ToCore(err))
assert.ElementsMatch(t, test.expect, sel.DiscreteResourceOwners())
})
}
}
func (suite *SharePointUnitSuite) TestSharePointBackupDetailsSelectors() {
for v := 0; v <= version.Backup; v++ {
suite.Run(fmt.Sprintf("version%d", v), func() {
for _, test := range testdata.SharePointOptionDetailLookups {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
bg := testdata.VersionedBackupGetter{
Details: dtd.GetDetailsSetForVersion(t, v),
}
output, err := runDetailsSharePointCmd(
ctx,
bg,
"backup-ID",
test.Opts(t, v),
false)
assert.NoError(t, err, clues.ToCore(err))
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
})
}
})
}
}
func (suite *SharePointUnitSuite) TestSharePointBackupDetailsSelectorsBadFormats() {
for _, test := range testdata.BadSharePointOptionsFormats {
suite.Run(test.Name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
output, err := runDetailsSharePointCmd(
ctx,
test.BackupGetter,
"backup-ID",
test.Opts(t, version.Backup),
false)
assert.Error(t, err, clues.ToCore(err))
assert.Empty(t, output)
assert.ElementsMatch(t, test.expect, sel.ResourceOwners.Targets)
})
}
}

View File

@ -0,0 +1,305 @@
package backup
import (
"context"
"fmt"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"golang.org/x/exp/slices"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/filters"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
"github.com/alcionai/corso/src/pkg/services/m365"
)
// ------------------------------------------------------------------------------------------------
// setup and globals
// ------------------------------------------------------------------------------------------------
const (
teamschatsServiceCommand = "chats"
teamschatsServiceCommandCreateUseSuffix = "--user <userEmail> | '" + flags.Wildcard + "'"
teamschatsServiceCommandDeleteUseSuffix = "--backups <backupId>"
teamschatsServiceCommandDetailsUseSuffix = "--backup <backupId>"
)
const (
teamschatsServiceCommandCreateExamples = `# Backup all chats with bob@company.hr
corso backup create chats --user bob@company.hr
# Backup all chats for all users
corso backup create chats --user '*'`
teamschatsServiceCommandDeleteExamples = `# Delete chats backup with ID 1234abcd-12ab-cd34-56de-1234abcd \
and 1234abcd-12ab-cd34-56de-1234abce
corso backup delete chats --backups 1234abcd-12ab-cd34-56de-1234abcd,1234abcd-12ab-cd34-56de-1234abce`
teamschatsServiceCommandDetailsExamples = `# Explore chats in Bob's latest backup (1234abcd...)
corso backup details chats --backup 1234abcd-12ab-cd34-56de-1234abcd`
)
// called by backup.go to map subcommands to provider-specific handling.
func addTeamsChatsCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case createCommand:
c, _ = utils.AddCommand(cmd, teamschatsCreateCmd(), utils.MarkPreReleaseCommand())
c.Use = c.Use + " " + teamschatsServiceCommandCreateUseSuffix
c.Example = teamschatsServiceCommandCreateExamples
// Flags addition ordering should follow the order we want them to appear in help and docs:
flags.AddUserFlag(c)
flags.AddDataFlag(c, []string{flags.DataChats}, false)
flags.AddGenericBackupFlags(c)
case listCommand:
c, _ = utils.AddCommand(cmd, teamschatsListCmd(), utils.MarkPreReleaseCommand())
flags.AddBackupIDFlag(c, false)
flags.AddAllBackupListFlags(c)
case detailsCommand:
c, _ = utils.AddCommand(cmd, teamschatsDetailsCmd(), utils.MarkPreReleaseCommand())
c.Use = c.Use + " " + teamschatsServiceCommandDetailsUseSuffix
c.Example = teamschatsServiceCommandDetailsExamples
flags.AddSkipReduceFlag(c)
// Flags addition ordering should follow the order we want them to appear in help and docs:
// More generic (ex: --user) and more frequently used flags take precedence.
flags.AddBackupIDFlag(c, true)
flags.AddTeamsChatsDetailsAndRestoreFlags(c)
case deleteCommand:
c, _ = utils.AddCommand(cmd, teamschatsDeleteCmd(), utils.MarkPreReleaseCommand())
c.Use = c.Use + " " + teamschatsServiceCommandDeleteUseSuffix
c.Example = teamschatsServiceCommandDeleteExamples
flags.AddMultipleBackupIDsFlag(c, false)
flags.AddBackupIDFlag(c, false)
}
return c
}
// ------------------------------------------------------------------------------------------------
// backup create
// ------------------------------------------------------------------------------------------------
// `corso backup create chats [<flag>...]`
func teamschatsCreateCmd() *cobra.Command {
return &cobra.Command{
Use: teamschatsServiceCommand,
Aliases: []string{teamsServiceCommand},
Short: "Backup M365 Chats data",
RunE: createTeamsChatsCmd,
Args: cobra.NoArgs,
}
}
// processes a teamschats backup.
func createTeamsChatsCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := validateTeamsChatsBackupCreateFlags(flags.UserFV, flags.CategoryDataFV); err != nil {
return err
}
r, acct, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
path.TeamsChatsService)
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
// TODO: log/print recoverable errors
errs := fault.New(false)
svcCli, err := m365.NewM365Client(ctx, *acct)
if err != nil {
return Only(ctx, clues.Stack(err))
}
ins, err := svcCli.AC.Users().GetAllIDsAndNames(ctx, errs)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to retrieve M365 teamschats"))
}
sel := teamschatsBackupCreateSelectors(ctx, ins, flags.UserFV, flags.CategoryDataFV)
selectorSet := []selectors.Selector{}
for _, discSel := range sel.SplitByResourceOwner(ins.IDs()) {
selectorSet = append(selectorSet, discSel.Selector)
}
return genericCreateCommand(
ctx,
r,
"Chats",
selectorSet,
ins)
}
// ------------------------------------------------------------------------------------------------
// backup list
// ------------------------------------------------------------------------------------------------
// `corso backup list teamschats [<flag>...]`
func teamschatsListCmd() *cobra.Command {
return &cobra.Command{
Use: teamschatsServiceCommand,
Short: "List the history of M365 Chats backups",
RunE: listTeamsChatsCmd,
Args: cobra.NoArgs,
}
}
// lists the history of backup operations
func listTeamsChatsCmd(cmd *cobra.Command, args []string) error {
return genericListCommand(cmd, flags.BackupIDFV, path.TeamsChatsService, args)
}
// ------------------------------------------------------------------------------------------------
// backup details
// ------------------------------------------------------------------------------------------------
// `corso backup details teamschats [<flag>...]`
func teamschatsDetailsCmd() *cobra.Command {
return &cobra.Command{
Use: teamschatsServiceCommand,
Short: "Shows the details of a M365 Chats backup",
RunE: detailsTeamsChatsCmd,
Args: cobra.NoArgs,
}
}
// processes a teamschats backup.
func detailsTeamsChatsCmd(cmd *cobra.Command, args []string) error {
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
return runDetailsTeamsChatsCmd(cmd)
}
func runDetailsTeamsChatsCmd(cmd *cobra.Command) error {
ctx := cmd.Context()
opts := utils.MakeTeamsChatsOpts(cmd)
sel := utils.IncludeTeamsChatsRestoreDataSelectors(ctx, opts)
sel.Configure(selectors.Config{OnlyMatchItemNames: true})
utils.FilterTeamsChatsRestoreInfoSelectors(sel, opts)
ds, err := genericDetailsCommand(cmd, flags.BackupIDFV, sel.Selector)
if err != nil {
return Only(ctx, err)
}
if len(ds.Entries) > 0 {
ds.PrintEntries(ctx)
} else {
Info(ctx, selectors.ErrorNoMatchingItems)
}
return nil
}
// ------------------------------------------------------------------------------------------------
// backup delete
// ------------------------------------------------------------------------------------------------
// `corso backup delete teamschats [<flag>...]`
func teamschatsDeleteCmd() *cobra.Command {
return &cobra.Command{
Use: teamschatsServiceCommand,
Short: "Delete backed-up M365 Chats data",
RunE: deleteTeamsChatsCmd,
Args: cobra.NoArgs,
}
}
// deletes an teamschats backup.
func deleteTeamsChatsCmd(cmd *cobra.Command, args []string) error {
backupIDValue := []string{}
if len(flags.BackupIDsFV) > 0 {
backupIDValue = flags.BackupIDsFV
} else if len(flags.BackupIDFV) > 0 {
backupIDValue = append(backupIDValue, flags.BackupIDFV)
} else {
return clues.New("either --backup or --backups flag is required")
}
return genericDeleteCommand(cmd, path.TeamsChatsService, "TeamsChats", backupIDValue, args)
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func validateTeamsChatsBackupCreateFlags(teamschats, cats []string) error {
if len(teamschats) == 0 {
return clues.New(
"requires one or more --" +
flags.UserFN + " ids, or the wildcard --" +
flags.UserFN + " *")
}
msg := fmt.Sprintf(
" is an unrecognized data type; only %s is supported",
flags.DataChats)
allowedCats := utils.TeamsChatsAllowedCategories()
for _, d := range cats {
if _, ok := allowedCats[d]; !ok {
return clues.New(d + msg)
}
}
return nil
}
func teamschatsBackupCreateSelectors(
ctx context.Context,
ins idname.Cacher,
users, cats []string,
) *selectors.TeamsChatsBackup {
if filters.PathContains(users).Compare(flags.Wildcard) {
return includeAllTeamsChatsWithCategories(ins, cats)
}
sel := selectors.NewTeamsChatsBackup(slices.Clone(users))
return utils.AddTeamsChatsCategories(sel, cats)
}
func includeAllTeamsChatsWithCategories(ins idname.Cacher, categories []string) *selectors.TeamsChatsBackup {
return utils.AddTeamsChatsCategories(selectors.NewTeamsChatsBackup(ins.IDs()), categories)
}

View File

@ -0,0 +1,636 @@
package backup_test
import (
"context"
"fmt"
"strings"
"testing"
"github.com/alcionai/clues"
"github.com/google/uuid"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/idname"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/tester/its"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/path"
"github.com/alcionai/corso/src/pkg/selectors"
selTD "github.com/alcionai/corso/src/pkg/selectors/testdata"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
// ---------------------------------------------------------------------------
// tests that require no existing backups
// ---------------------------------------------------------------------------
type NoBackupTeamsChatsE2ESuite struct {
tester.Suite
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestNoBackupTeamsChatsE2ESuite(t *testing.T) {
suite.Run(t, &BackupTeamsChatsE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *NoBackupTeamsChatsE2ESuite) SetupSuite() {
t := suite.T()
t.Skip("not fully implemented")
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.TeamsChatsService)
}
func (suite *NoBackupTeamsChatsE2ESuite) TestTeamsChatsBackupListCmd_noBackups() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "list", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := suite.dpnd.recorder.String()
// as an offhand check: the result should contain the m365 teamschat id
assert.True(t, strings.HasSuffix(result, "No backups available\n"))
}
// ---------------------------------------------------------------------------
// tests with no prior backup
// ---------------------------------------------------------------------------
type BackupTeamsChatsE2ESuite struct {
tester.Suite
dpnd dependencies
m365 its.M365IntgTestSetup
}
func TestBackupTeamsChatsE2ESuite(t *testing.T) {
suite.Run(t, &BackupTeamsChatsE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *BackupTeamsChatsE2ESuite) SetupSuite() {
t := suite.T()
t.Skip("not fully implemented")
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.TeamsChatsService)
}
func (suite *BackupTeamsChatsE2ESuite) TestTeamsChatsBackupCmd_chats() {
runTeamsChatsBackupCategoryTest(suite, flags.DataChats)
}
func runTeamsChatsBackupCategoryTest(suite *BackupTeamsChatsE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildTeamsChatsBackupCmd(
ctx,
suite.dpnd.configFilePath,
suite.m365.User.ID,
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
result := recorder.String()
t.Log("backup results", result)
}
func (suite *BackupTeamsChatsE2ESuite) TestTeamsChatsBackupCmd_teamschatNotFound_chats() {
runTeamsChatsBackupTeamsChatNotFoundTest(suite, flags.DataChats)
}
func runTeamsChatsBackupTeamsChatNotFoundTest(suite *BackupTeamsChatsE2ESuite, category string) {
recorder := strings.Builder{}
recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd, ctx := buildTeamsChatsBackupCmd(
ctx,
suite.dpnd.configFilePath,
"foo@not-there.com",
category,
&recorder)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
assert.Contains(
t,
err.Error(),
"not found",
"error missing user not found")
assert.NotContains(t, err.Error(), "runtime error", "panic happened")
t.Logf("backup error message: %s", err.Error())
result := recorder.String()
t.Log("backup results", result)
}
func (suite *BackupTeamsChatsE2ESuite) TestBackupCreateTeamsChats_badAzureClientIDFlag() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "chats",
"--teamschat", suite.m365.User.ID,
"--azure-client-id", "invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetErr(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupTeamsChatsE2ESuite) TestBackupCreateTeamsChats_fromConfigFile() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "chats",
"--teamschat", suite.m365.User.ID,
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
}
// AWS flags
func (suite *BackupTeamsChatsE2ESuite) TestBackupCreateTeamsChats_badAWSFlags() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd.recorder.Reset()
cmd := cliTD.StubRootCmd(
"backup", "create", "chats",
"--teamschat", suite.m365.User.ID,
"--aws-access-key", "invalid-value",
"--aws-secret-access-key", "some-invalid-value")
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
// since invalid aws creds are explicitly set, should see a failure
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// tests prepared with a previous backup
// ---------------------------------------------------------------------------
type PreparedBackupTeamsChatsE2ESuite struct {
tester.Suite
dpnd dependencies
backupOps map[path.CategoryType]string
m365 its.M365IntgTestSetup
}
func TestPreparedBackupTeamsChatsE2ESuite(t *testing.T) {
suite.Run(t, &PreparedBackupTeamsChatsE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *PreparedBackupTeamsChatsE2ESuite) SetupSuite() {
t := suite.T()
t.Skip("not fully implemented")
ctx, flush := tester.NewContext(t)
defer flush()
suite.m365 = its.GetM365(t)
suite.dpnd = prepM365Test(t, ctx, path.TeamsChatsService)
suite.backupOps = make(map[path.CategoryType]string)
var (
teamschats = []string{suite.m365.User.ID}
ins = idname.NewCache(map[string]string{suite.m365.User.ID: suite.m365.User.ID})
cats = []path.CategoryType{
path.ChatsCategory,
}
)
for _, set := range cats {
var (
sel = selectors.NewTeamsChatsBackup(teamschats)
scopes []selectors.TeamsChatsScope
)
switch set {
case path.ChatsCategory:
scopes = selTD.TeamsChatsBackupChatScope(sel)
}
sel.Include(scopes)
bop, err := suite.dpnd.repo.NewBackupWithLookup(ctx, sel.Selector, ins)
require.NoError(t, err, clues.ToCore(err))
err = bop.Run(ctx)
require.NoError(t, err, clues.ToCore(err))
bIDs := string(bop.Results.BackupID)
// sanity check, ensure we can find the backup and its details immediately
b, err := suite.dpnd.repo.Backup(ctx, string(bop.Results.BackupID))
require.NoError(t, err, "retrieving recent backup by ID")
require.Equal(t, bIDs, string(b.ID), "repo backup matches results id")
_, b, errs := suite.dpnd.repo.GetBackupDetails(ctx, bIDs)
require.NoError(t, errs.Failure(), "retrieving recent backup details by ID")
require.Empty(t, errs.Recovered(), "retrieving recent backup details by ID")
require.Equal(t, bIDs, string(b.ID), "repo details matches results id")
suite.backupOps[set] = string(b.ID)
}
}
func (suite *PreparedBackupTeamsChatsE2ESuite) TestTeamsChatsListCmd_chats() {
runTeamsChatsListCmdTest(suite, path.ChatsCategory)
}
func runTeamsChatsListCmdTest(suite *PreparedBackupTeamsChatsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
assert.Contains(t, result, suite.backupOps[category])
}
func (suite *PreparedBackupTeamsChatsE2ESuite) TestTeamsChatsListCmd_singleID_chats() {
runTeamsChatsListSingleCmdTest(suite, path.ChatsCategory)
}
func runTeamsChatsListSingleCmdTest(suite *PreparedBackupTeamsChatsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
cmd := cliTD.StubRootCmd(
"backup", "list", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
assert.Contains(t, result, bID)
}
func (suite *PreparedBackupTeamsChatsE2ESuite) TestTeamsChatsListCmd_badID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "list", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", "smarfs")
cli.BuildCommandTree(cmd)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *PreparedBackupTeamsChatsE2ESuite) TestTeamsChatsDetailsCmd_chats() {
runTeamsChatsDetailsCmdTest(suite, path.ChatsCategory)
}
func runTeamsChatsDetailsCmdTest(suite *PreparedBackupTeamsChatsE2ESuite, category path.CategoryType) {
suite.dpnd.recorder.Reset()
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
bID := suite.backupOps[category]
// fetch the details from the repo first
deets, _, errs := suite.dpnd.repo.GetBackupDetails(ctx, string(bID))
require.NoError(t, errs.Failure(), clues.ToCore(errs.Failure()))
require.Empty(t, errs.Recovered())
cmd := cliTD.StubRootCmd(
"backup", "details", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN, string(bID))
cli.BuildCommandTree(cmd)
cmd.SetOut(&suite.dpnd.recorder)
ctx = print.SetRootCmd(ctx, cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// compare the output
result := suite.dpnd.recorder.String()
i := 0
foundFolders := 0
for _, ent := range deets.Entries {
// Skip folders as they don't mean anything to the end teamschat.
if ent.Folder != nil {
foundFolders++
continue
}
suite.Run(fmt.Sprintf("detail %d", i), func() {
assert.Contains(suite.T(), result, ent.ShortRef)
})
i++
}
// We only backup the default folder for each category so there should be at
// least that folder (we don't make details entries for prefix folders).
assert.GreaterOrEqual(t, foundFolders, 1)
}
// ---------------------------------------------------------------------------
// tests for deleting backups
// ---------------------------------------------------------------------------
type BackupDeleteTeamsChatsE2ESuite struct {
tester.Suite
dpnd dependencies
backupOps [3]operations.BackupOperation
}
func TestBackupDeleteTeamsChatsE2ESuite(t *testing.T) {
suite.Run(t, &BackupDeleteTeamsChatsE2ESuite{
Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs}),
})
}
func (suite *BackupDeleteTeamsChatsE2ESuite) SetupSuite() {
t := suite.T()
t.Skip("not fully implemented")
ctx, flush := tester.NewContext(t)
defer flush()
suite.dpnd = prepM365Test(t, ctx, path.TeamsChatsService)
m365TeamsChatID := tconfig.M365TeamID(t)
teamschats := []string{m365TeamsChatID}
// some tests require an existing backup
sel := selectors.NewTeamsChatsBackup(teamschats)
sel.Include(selTD.TeamsChatsBackupChatScope(sel))
for i := 0; i < cap(suite.backupOps); i++ {
backupOp, err := suite.dpnd.repo.NewBackup(ctx, sel.Selector)
require.NoError(t, err, clues.ToCore(err))
suite.backupOps[i] = backupOp
err = suite.backupOps[i].Run(ctx)
require.NoError(t, err, clues.ToCore(err))
}
}
func (suite *BackupDeleteTeamsChatsE2ESuite) TestTeamsChatsBackupDeleteCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN,
fmt.Sprintf("%s,%s",
string(suite.backupOps[0].Results.BackupID),
string(suite.backupOps[1].Results.BackupID)))
cli.BuildCommandTree(cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backups", string(suite.backupOps[0].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteTeamsChatsE2ESuite) TestTeamsChatsBackupDeleteCmd_SingleID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupFN,
string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
// run the command
err := cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a follow-up details call should fail, due to the backup ID being deleted
cmd = cliTD.StubRootCmd(
"backup", "details", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--backup", string(suite.backupOps[2].Results.BackupID))
cli.BuildCommandTree(cmd)
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteTeamsChatsE2ESuite) TestTeamsChatsBackupDeleteCmd_UnknownID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath,
"--"+flags.BackupIDsFN, uuid.NewString())
cli.BuildCommandTree(cmd)
// unknown backupIDs should error since the modelStore can't find the backup
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *BackupDeleteTeamsChatsE2ESuite) TestTeamsChatsBackupDeleteCmd_NoBackupID() {
t := suite.T()
ctx, flush := tester.NewContext(t)
ctx = config.SetViper(ctx, suite.dpnd.vpr)
defer flush()
cmd := cliTD.StubRootCmd(
"backup", "delete", "chats",
"--"+flags.ConfigFileFN, suite.dpnd.configFilePath)
cli.BuildCommandTree(cmd)
// empty backupIDs should error since no data provided
err := cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
// ---------------------------------------------------------------------------
// helpers
// ---------------------------------------------------------------------------
func buildTeamsChatsBackupCmd(
ctx context.Context,
configFile, resource, category string,
recorder *strings.Builder,
) (*cobra.Command, context.Context) {
cmd := cliTD.StubRootCmd(
"backup", "create", "chats",
"--"+flags.ConfigFileFN, configFile,
"--"+flags.UserFN, resource,
"--"+flags.CategoryDataFN, category)
cli.BuildCommandTree(cmd)
cmd.SetOut(recorder)
return cmd, print.SetRootCmd(ctx, cmd)
}

View File

@ -0,0 +1,248 @@
package backup
import (
"testing"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/control"
)
type TeamsChatsUnitSuite struct {
tester.Suite
}
func TestTeamsChatsUnitSuite(t *testing.T) {
suite.Run(t, &TeamsChatsUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *TeamsChatsUnitSuite) TestAddTeamsChatsCommands() {
expectUse := teamschatsServiceCommand
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "create teamschats",
use: createCommand,
expectUse: expectUse + " " + teamschatsServiceCommandCreateUseSuffix,
expectShort: teamschatsCreateCmd().Short,
expectRunE: createTeamsChatsCmd,
},
{
name: "list teamschats",
use: listCommand,
expectUse: expectUse,
expectShort: teamschatsListCmd().Short,
expectRunE: listTeamsChatsCmd,
},
{
name: "details teamschats",
use: detailsCommand,
expectUse: expectUse + " " + teamschatsServiceCommandDetailsUseSuffix,
expectShort: teamschatsDetailsCmd().Short,
expectRunE: detailsTeamsChatsCmd,
},
{
name: "delete teamschats",
use: deleteCommand,
expectUse: expectUse + " " + teamschatsServiceCommandDeleteUseSuffix,
expectShort: teamschatsDeleteCmd().Short,
expectRunE: deleteTeamsChatsCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
cmd := &cobra.Command{Use: test.use}
c := addTeamsChatsCommands(cmd)
require.NotNil(t, c)
cmds := cmd.Commands()
require.Len(t, cmds, 1)
child := cmds[0]
assert.Equal(t, test.expectUse, child.Use)
assert.Equal(t, test.expectShort, child.Short)
tester.AreSameFunc(t, test.expectRunE, child.RunE)
})
}
}
func (suite *TeamsChatsUnitSuite) TestValidateTeamsChatsBackupCreateFlags() {
table := []struct {
name string
cats []string
expect assert.ErrorAssertionFunc
}{
{
name: "none",
cats: []string{},
expect: assert.NoError,
},
{
name: "chats",
cats: []string{flags.DataChats},
expect: assert.NoError,
},
{
name: "all allowed",
cats: []string{
flags.DataChats,
},
expect: assert.NoError,
},
{
name: "bad inputs",
cats: []string{"foo"},
expect: assert.Error,
},
}
for _, test := range table {
suite.Run(test.name, func() {
err := validateTeamsChatsBackupCreateFlags([]string{"*"}, test.cats)
test.expect(suite.T(), err, clues.ToCore(err))
})
}
}
func (suite *TeamsChatsUnitSuite) TestBackupCreateFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: createCommand},
addTeamsChatsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
teamschatsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.UserFN, flagsTD.FlgInputs(flagsTD.UsersInput),
"--" + flags.CategoryDataFN, flagsTD.FlgInputs(flagsTD.TeamsChatsCategoryDataInput),
},
flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
opts := utils.MakeTeamsChatsOpts(cmd)
co := utils.Control()
backupOpts := utils.ParseBackupOptions()
// TODO(ashmrtn): Remove flag checks on control.Options to control.Backup once
// restore flags are switched over too and we no longer parse flags beyond
// connection info into control.Options.
assert.Equal(t, control.FailFast, backupOpts.FailureHandling)
assert.True(t, backupOpts.Incrementals.ForceFullEnumeration)
assert.True(t, backupOpts.Incrementals.ForceItemDataRefresh)
assert.Equal(t, control.FailFast, co.FailureHandling)
assert.True(t, co.ToggleFeatures.DisableIncrementals)
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.ElementsMatch(t, flagsTD.UsersInput, opts.Users)
flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *TeamsChatsUnitSuite) TestBackupListFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: listCommand},
addTeamsChatsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
teamschatsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedBackupListFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertBackupListFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}
func (suite *TeamsChatsUnitSuite) TestBackupDetailsFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: detailsCommand},
addTeamsChatsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
teamschatsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.SkipReduceFN,
},
flagsTD.PreparedTeamsChatsFlags(),
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
co := utils.Control()
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.True(t, co.SkipReduce)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
flagsTD.AssertTeamsChatsFlags(t, cmd)
}
func (suite *TeamsChatsUnitSuite) TestBackupDeleteFlags() {
t := suite.T()
cmd := cliTD.SetUpCmdHasFlags(
t,
&cobra.Command{Use: deleteCommand},
addTeamsChatsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
teamschatsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
}

View File

@ -10,15 +10,16 @@ import (
"golang.org/x/exp/slices"
"github.com/alcionai/corso/src/cli/backup"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/debug"
"github.com/alcionai/corso/src/cli/export"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/help"
"github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/repo"
"github.com/alcionai/corso/src/cli/restore"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/observe"
"github.com/alcionai/corso/src/internal/version"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/logger"
)
@ -37,7 +38,7 @@ var corsoCmd = &cobra.Command{
}
func preRun(cc *cobra.Command, args []string) error {
if err := config.InitFunc(cc, args); err != nil {
if err := config.InitCmd(cc, args); err != nil {
return err
}
@ -53,39 +54,13 @@ func preRun(cc *cobra.Command, args []string) error {
}
avoidTheseCommands := []string{
"corso", "env", "help", "backup", "details", "list", "restore", "delete", "repo", "init", "connect",
"corso", "env", "help", "backup", "details", "list", "restore", "export", "delete", "repo", "init", "connect",
}
if len(logger.ResolvedLogFile) > 0 && !slices.Contains(avoidTheseCommands, cc.Use) {
print.Infof(ctx, "Logging to file: %s", logger.ResolvedLogFile)
}
avoidTheseDescription := []string{
"Initialize a repository.",
"Initialize a S3 repository",
"Help about any command",
"Free, Secure, Open-Source Backup for M365.",
"env var guide",
}
if !slices.Contains(avoidTheseDescription, cc.Short) {
overrides := repo.S3Overrides()
cfg, err := config.GetConfigRepoDetails(ctx, true, false, overrides)
if err != nil {
log.Error("Error while getting config info to run command: ", cc.Use)
return err
}
utils.SendStartCorsoEvent(
ctx,
cfg.Storage,
cfg.Account.ID(),
map[string]any{"command": cc.CommandPath()},
cfg.RepoID,
utils.Control())
}
// handle deprecated user flag in Backup exchange command
if cc.CommandPath() == "corso backup create exchange" {
handleMailBoxFlag(ctx, cc, flagSl)
@ -98,7 +73,7 @@ func preRun(cc *cobra.Command, args []string) error {
func handleMailBoxFlag(ctx context.Context, c *cobra.Command, flagNames []string) {
if !slices.Contains(flagNames, "user") && !slices.Contains(flagNames, "mailbox") {
print.Errf(ctx, "either --user or --mailbox flag is required")
print.Err(ctx, "either --user or --mailbox flag is required")
os.Exit(1)
}
@ -150,6 +125,8 @@ func BuildCommandTree(cmd *cobra.Command) {
repo.AddCommands(cmd)
backup.AddCommands(cmd)
restore.AddCommands(cmd)
export.AddCommands(cmd)
debug.AddCommands(cmd)
help.AddCommands(cmd)
}
@ -161,15 +138,15 @@ func BuildCommandTree(cmd *cobra.Command) {
func Handle() {
//nolint:forbidigo
ctx := config.Seed(context.Background())
ctx, log := logger.Seed(ctx, logger.PreloadLoggingFlags(os.Args[1:]))
ctx = print.SetRootCmd(ctx, corsoCmd)
observe.SeedWriter(ctx, print.StderrWriter(ctx), observe.PreloadFlags())
ctx = observe.SeedObserver(ctx, print.StderrWriter(ctx), observe.PreloadFlags())
BuildCommandTree(corsoCmd)
ctx, log := logger.Seed(ctx, logger.PreloadLoggingFlags(os.Args[1:]))
defer func() {
observe.Flush(ctx) // flush the progress bars
_ = log.Sync() // flush all logs in the buffer
}()

View File

@ -1,342 +0,0 @@
package config
import (
"fmt"
"os"
"path/filepath"
"testing"
"github.com/alcionai/clues"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/credentials"
"github.com/alcionai/corso/src/pkg/storage"
)
const (
configFileTemplate = `
` + BucketNameKey + ` = '%s'
` + EndpointKey + ` = 's3.amazonaws.com'
` + PrefixKey + ` = 'test-prefix/'
` + StorageProviderTypeKey + ` = 'S3'
` + AccountProviderTypeKey + ` = 'M365'
` + AzureTenantIDKey + ` = '%s'
` + DisableTLSKey + ` = 'false'
` + DisableTLSVerificationKey + ` = 'false'
` + AccessKey + ` = '%s'
` + SecretAccessKey + ` = '%s'
` + SessionToken + ` = '%s'
` + CorsoPassphrase + ` = '%s'
`
)
type ConfigSuite struct {
tester.Suite
}
func TestConfigSuite(t *testing.T) {
suite.Run(t, &ConfigSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *ConfigSuite) TestRequireProps() {
table := []struct {
name string
props map[string]string
errCheck assert.ErrorAssertionFunc
}{
{
props: map[string]string{"exists": "I have seen the fnords!"},
errCheck: assert.NoError,
},
{
props: map[string]string{"not-exists": ""},
errCheck: assert.Error,
},
}
for _, test := range table {
err := requireProps(test.props)
test.errCheck(suite.T(), err, clues.ToCore(err))
}
}
func (suite *ConfigSuite) TestReadRepoConfigBasic() {
var (
t = suite.T()
vpr = viper.New()
)
const (
b = "read-repo-config-basic-bucket"
tID = "6f34ac30-8196-469b-bf8f-d83deadbbbba"
accKey = "aws-test-access-key"
secret = "aws-test-secret-key"
token = "aws-test-session-token"
passphrase = "passphrase-test"
)
// Generate test config file
testConfigData := fmt.Sprintf(configFileTemplate, b, tID, accKey, secret, token, passphrase)
testConfigFilePath := filepath.Join(t.TempDir(), "corso.toml")
err := os.WriteFile(testConfigFilePath, []byte(testConfigData), 0o700)
require.NoError(t, err, clues.ToCore(err))
// Configure viper to read test config file
vpr.SetConfigFile(testConfigFilePath)
// Read and validate config
err = vpr.ReadInConfig()
require.NoError(t, err, "reading repo config", clues.ToCore(err))
s3Cfg, err := s3ConfigsFromViper(vpr)
require.NoError(t, err, clues.ToCore(err))
assert.Equal(t, b, s3Cfg.Bucket)
s3Cfg, err = s3CredsFromViper(vpr, s3Cfg)
require.NoError(t, err, clues.ToCore(err))
assert.Equal(t, accKey, s3Cfg.AWS.AccessKey)
assert.Equal(t, secret, s3Cfg.AWS.SecretKey)
assert.Equal(t, token, s3Cfg.AWS.SessionToken)
m365, err := m365ConfigsFromViper(vpr)
require.NoError(t, err, clues.ToCore(err))
assert.Equal(t, tID, m365.AzureTenantID)
}
func (suite *ConfigSuite) TestWriteReadConfig() {
var (
t = suite.T()
vpr = viper.New()
// Configure viper to read test config file
testConfigFilePath = filepath.Join(t.TempDir(), "corso.toml")
)
const (
bkt = "write-read-config-bucket"
tid = "3c0748d2-470e-444c-9064-1268e52609d5"
)
err := initWithViper(vpr, testConfigFilePath)
require.NoError(t, err, "initializing repo config", clues.ToCore(err))
s3Cfg := storage.S3Config{Bucket: bkt, DoNotUseTLS: true, DoNotVerifyTLS: true}
m365 := account.M365Config{AzureTenantID: tid}
err = writeRepoConfigWithViper(vpr, s3Cfg, m365, "repoid")
require.NoError(t, err, "writing repo config", clues.ToCore(err))
err = vpr.ReadInConfig()
require.NoError(t, err, "reading repo config", clues.ToCore(err))
readS3Cfg, err := s3ConfigsFromViper(vpr)
require.NoError(t, err, clues.ToCore(err))
assert.Equal(t, readS3Cfg.Bucket, s3Cfg.Bucket)
assert.Equal(t, readS3Cfg.DoNotUseTLS, s3Cfg.DoNotUseTLS)
assert.Equal(t, readS3Cfg.DoNotVerifyTLS, s3Cfg.DoNotVerifyTLS)
readM365, err := m365ConfigsFromViper(vpr)
require.NoError(t, err, clues.ToCore(err))
assert.Equal(t, readM365.AzureTenantID, m365.AzureTenantID)
}
func (suite *ConfigSuite) TestMustMatchConfig() {
var (
t = suite.T()
vpr = viper.New()
// Configure viper to read test config file
testConfigFilePath = filepath.Join(t.TempDir(), "corso.toml")
)
const (
bkt = "must-match-config-bucket"
tid = "dfb12063-7598-458b-85ab-42352c5c25e2"
)
err := initWithViper(vpr, testConfigFilePath)
require.NoError(t, err, "initializing repo config")
s3Cfg := storage.S3Config{Bucket: bkt}
m365 := account.M365Config{AzureTenantID: tid}
err = writeRepoConfigWithViper(vpr, s3Cfg, m365, "repoid")
require.NoError(t, err, "writing repo config", clues.ToCore(err))
err = vpr.ReadInConfig()
require.NoError(t, err, "reading repo config", clues.ToCore(err))
table := []struct {
name string
input map[string]string
errCheck assert.ErrorAssertionFunc
}{
{
name: "full match",
input: map[string]string{
storage.Bucket: bkt,
account.AzureTenantID: tid,
},
errCheck: assert.NoError,
},
{
name: "empty values",
input: map[string]string{
storage.Bucket: "",
account.AzureTenantID: "",
},
errCheck: assert.NoError,
},
{
name: "no overrides",
input: map[string]string{},
errCheck: assert.NoError,
},
{
name: "nil map",
input: nil,
errCheck: assert.NoError,
},
{
name: "no recognized keys",
input: map[string]string{
"fnords": "smurfs",
"nonsense": "",
},
errCheck: assert.NoError,
},
{
name: "mismatch",
input: map[string]string{
storage.Bucket: tid,
account.AzureTenantID: bkt,
},
errCheck: assert.Error,
},
}
for _, test := range table {
suite.Run(test.name, func() {
test.errCheck(suite.T(), mustMatchConfig(vpr, test.input), clues.ToCore(err))
})
}
}
// ------------------------------------------------------------
// integration tests
// ------------------------------------------------------------
type ConfigIntegrationSuite struct {
tester.Suite
}
func TestConfigIntegrationSuite(t *testing.T) {
suite.Run(t, &ConfigIntegrationSuite{Suite: tester.NewIntegrationSuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
}
func (suite *ConfigIntegrationSuite) TestGetStorageAndAccount() {
t := suite.T()
vpr := viper.New()
const (
bkt = "get-storage-and-account-bucket"
end = "https://get-storage-and-account.com"
pfx = "get-storage-and-account-prefix/"
tid = "3a2faa4e-a882-445c-9d27-f552ef189381"
)
// Configure viper to read test config file
testConfigFilePath := filepath.Join(t.TempDir(), "corso.toml")
err := initWithViper(vpr, testConfigFilePath)
require.NoError(t, err, "initializing repo config", clues.ToCore(err))
s3Cfg := storage.S3Config{
Bucket: bkt,
Endpoint: end,
Prefix: pfx,
DoNotVerifyTLS: true,
DoNotUseTLS: true,
}
m365 := account.M365Config{AzureTenantID: tid}
err = writeRepoConfigWithViper(vpr, s3Cfg, m365, "repoid")
require.NoError(t, err, "writing repo config", clues.ToCore(err))
err = vpr.ReadInConfig()
require.NoError(t, err, "reading repo config", clues.ToCore(err))
config, err := getStorageAndAccountWithViper(vpr, true, false, nil)
require.NoError(t, err, "getting storage and account from config", clues.ToCore(err))
readS3Cfg, err := config.Storage.S3Config()
require.NoError(t, err, "reading s3 config from storage", clues.ToCore(err))
assert.Equal(t, readS3Cfg.Bucket, s3Cfg.Bucket)
assert.Equal(t, readS3Cfg.Endpoint, s3Cfg.Endpoint)
assert.Equal(t, readS3Cfg.Prefix, s3Cfg.Prefix)
assert.Equal(t, readS3Cfg.DoNotUseTLS, s3Cfg.DoNotUseTLS)
assert.Equal(t, readS3Cfg.DoNotVerifyTLS, s3Cfg.DoNotVerifyTLS)
assert.Equal(t, config.RepoID, "repoid")
common, err := config.Storage.CommonConfig()
require.NoError(t, err, "reading common config from storage", clues.ToCore(err))
assert.Equal(t, common.CorsoPassphrase, os.Getenv(credentials.CorsoPassphrase))
readM365, err := config.Account.M365Config()
require.NoError(t, err, "reading m365 config from account", clues.ToCore(err))
// Env var gets preference here. Where to get env tenantID from
// assert.Equal(t, readM365.AzureTenantID, m365.AzureTenantID)
assert.Equal(t, readM365.AzureClientID, os.Getenv(credentials.AzureClientID))
assert.Equal(t, readM365.AzureClientSecret, os.Getenv(credentials.AzureClientSecret))
}
func (suite *ConfigIntegrationSuite) TestGetStorageAndAccount_noFileOnlyOverrides() {
t := suite.T()
vpr := viper.New()
const (
bkt = "get-storage-and-account-no-file-bucket"
end = "https://get-storage-and-account.com/no-file"
pfx = "get-storage-and-account-no-file-prefix/"
tid = "88f8522b-18e4-4d0f-b514-2d7b34d4c5a1"
)
m365 := account.M365Config{AzureTenantID: tid}
overrides := map[string]string{
account.AzureTenantID: tid,
AccountProviderTypeKey: account.ProviderM365.String(),
storage.Bucket: bkt,
storage.Endpoint: end,
storage.Prefix: pfx,
storage.DoNotUseTLS: "true",
storage.DoNotVerifyTLS: "true",
StorageProviderTypeKey: storage.ProviderS3.String(),
}
config, err := getStorageAndAccountWithViper(vpr, false, false, overrides)
require.NoError(t, err, "getting storage and account from config", clues.ToCore(err))
readS3Cfg, err := config.Storage.S3Config()
require.NoError(t, err, "reading s3 config from storage", clues.ToCore(err))
assert.Equal(t, readS3Cfg.Bucket, bkt)
assert.Equal(t, config.RepoID, "")
assert.Equal(t, readS3Cfg.Endpoint, end)
assert.Equal(t, readS3Cfg.Prefix, pfx)
assert.True(t, readS3Cfg.DoNotUseTLS)
assert.True(t, readS3Cfg.DoNotVerifyTLS)
common, err := config.Storage.CommonConfig()
require.NoError(t, err, "reading common config from storage", clues.ToCore(err))
assert.Equal(t, common.CorsoPassphrase, os.Getenv(credentials.CorsoPassphrase))
readM365, err := config.Account.M365Config()
require.NoError(t, err, "reading m365 config from account", clues.ToCore(err))
assert.Equal(t, readM365.AzureTenantID, m365.AzureTenantID)
assert.Equal(t, readM365.AzureClientID, os.Getenv(credentials.AzureClientID))
assert.Equal(t, readM365.AzureClientSecret, os.Getenv(credentials.AzureClientSecret))
}

View File

@ -1,172 +0,0 @@
package config
import (
"os"
"path/filepath"
"strconv"
"github.com/alcionai/clues"
"github.com/aws/aws-sdk-go/aws/defaults"
"github.com/spf13/viper"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/internal/common"
"github.com/alcionai/corso/src/internal/common/str"
"github.com/alcionai/corso/src/pkg/credentials"
"github.com/alcionai/corso/src/pkg/storage"
)
// prerequisite: readRepoConfig must have been run prior to this to populate the global viper values.
func s3ConfigsFromViper(vpr *viper.Viper) (storage.S3Config, error) {
var s3Config storage.S3Config
providerType := vpr.GetString(StorageProviderTypeKey)
if providerType != storage.ProviderS3.String() {
return s3Config, clues.New("unsupported storage provider: " + providerType)
}
s3Config.Bucket = vpr.GetString(BucketNameKey)
s3Config.Endpoint = vpr.GetString(EndpointKey)
s3Config.Prefix = vpr.GetString(PrefixKey)
s3Config.DoNotUseTLS = vpr.GetBool(DisableTLSKey)
s3Config.DoNotVerifyTLS = vpr.GetBool(DisableTLSVerificationKey)
return s3Config, nil
}
// prerequisite: readRepoConfig must have been run prior to this to populate the global viper values.
func s3CredsFromViper(vpr *viper.Viper, s3Config storage.S3Config) (storage.S3Config, error) {
s3Config.AccessKey = vpr.GetString(AccessKey)
s3Config.SecretKey = vpr.GetString(SecretAccessKey)
s3Config.SessionToken = vpr.GetString(SessionToken)
return s3Config, nil
}
func s3Overrides(in map[string]string) map[string]string {
return map[string]string{
storage.Bucket: in[storage.Bucket],
storage.Endpoint: in[storage.Endpoint],
storage.Prefix: in[storage.Prefix],
storage.DoNotUseTLS: in[storage.DoNotUseTLS],
storage.DoNotVerifyTLS: in[storage.DoNotVerifyTLS],
StorageProviderTypeKey: in[StorageProviderTypeKey],
}
}
// configureStorage builds a complete storage configuration from a mix of
// viper properties and manual overrides.
func configureStorage(
vpr *viper.Viper,
readConfigFromViper bool,
matchFromConfig bool,
overrides map[string]string,
) (storage.Storage, error) {
var (
s3Cfg storage.S3Config
store storage.Storage
err error
)
if readConfigFromViper {
if s3Cfg, err = s3ConfigsFromViper(vpr); err != nil {
return store, clues.Wrap(err, "reading s3 configs from corso config file")
}
if b, ok := overrides[storage.Bucket]; ok {
overrides[storage.Bucket] = common.NormalizeBucket(b)
}
if p, ok := overrides[storage.Prefix]; ok {
overrides[storage.Prefix] = common.NormalizePrefix(p)
}
}
if matchFromConfig {
if err := mustMatchConfig(vpr, s3Overrides(overrides)); err != nil {
return store, clues.Wrap(err, "verifying s3 configs in corso config file")
}
}
if s3Cfg, err = s3CredsFromViper(vpr, s3Cfg); err != nil {
return store, clues.Wrap(err, "reading s3 configs from corso config file")
}
s3Overrides(overrides)
aws := credentials.GetAWS(overrides)
if len(aws.AccessKey) <= 0 || len(aws.SecretKey) <= 0 {
_, err = defaults.CredChain(defaults.Config().WithCredentialsChainVerboseErrors(true), defaults.Handlers()).Get()
if err != nil && (len(s3Cfg.AccessKey) > 0 || len(s3Cfg.SecretKey) > 0) {
aws = credentials.AWS{
AccessKey: s3Cfg.AccessKey,
SecretKey: s3Cfg.SecretKey,
SessionToken: s3Cfg.SessionToken,
}
err = nil
}
if err != nil {
return store, clues.Wrap(err, "validating aws credentials")
}
}
s3Cfg = storage.S3Config{
AWS: aws,
Bucket: str.First(overrides[storage.Bucket], s3Cfg.Bucket),
Endpoint: str.First(overrides[storage.Endpoint], s3Cfg.Endpoint),
Prefix: str.First(overrides[storage.Prefix], s3Cfg.Prefix),
DoNotUseTLS: str.ParseBool(str.First(
overrides[storage.DoNotUseTLS],
strconv.FormatBool(s3Cfg.DoNotUseTLS),
)),
DoNotVerifyTLS: str.ParseBool(str.First(
overrides[storage.DoNotVerifyTLS],
strconv.FormatBool(s3Cfg.DoNotVerifyTLS),
)),
}
// compose the common config and credentials
corso := GetAndInsertCorso(vpr.GetString(CorsoPassphrase))
if err := corso.Validate(); err != nil {
return store, clues.Wrap(err, "validating corso credentials")
}
cCfg := storage.CommonConfig{
Corso: corso,
}
// the following is a hack purely for integration testing.
// the value is not required, and if empty, kopia will default
// to its routine behavior
if t, ok := vpr.Get("corso-testing").(bool); t && ok {
dir, _ := filepath.Split(vpr.ConfigFileUsed())
cCfg.KopiaCfgDir = dir
}
// ensure required properties are present
if err := requireProps(map[string]string{
storage.Bucket: s3Cfg.Bucket,
credentials.CorsoPassphrase: corso.CorsoPassphrase,
}); err != nil {
return storage.Storage{}, err
}
// build the storage
store, err = storage.NewStorage(storage.ProviderS3, s3Cfg, cCfg)
if err != nil {
return store, clues.Wrap(err, "configuring repository storage")
}
return store, nil
}
// GetCorso is a helper for aggregating Corso secrets and credentials.
func GetAndInsertCorso(passphase string) credentials.Corso {
// fetch data from flag, env var or func param giving priority to func param
// Func param generally will be value fetched from config file using viper.
corsoPassph := str.First(flags.CorsoPassphraseFV, os.Getenv(credentials.CorsoPassphrase), passphase)
return credentials.Corso{
CorsoPassphrase: corsoPassph,
}
}

120
src/cli/debug/debug.go Normal file
View File

@ -0,0 +1,120 @@
package debug
import (
"context"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/fault"
"github.com/alcionai/corso/src/pkg/selectors"
)
var subCommandFuncs = []func() *cobra.Command{
metadataFilesCmd,
}
var debugCommands = []func(cmd *cobra.Command) *cobra.Command{
addOneDriveCommands,
addSharePointCommands,
addGroupsCommands,
addExchangeCommands,
}
// AddCommands attaches all `corso debug * *` commands to the parent.
func AddCommands(cmd *cobra.Command) {
debugC, _ := utils.AddCommand(cmd, debugCmd(), utils.MarkDebugCommand())
for _, sc := range subCommandFuncs {
subCommand := sc()
utils.AddCommand(debugC, subCommand, utils.MarkDebugCommand())
for _, addTo := range debugCommands {
servCmd := addTo(subCommand)
flags.AddAllProviderFlags(servCmd)
flags.AddAllStorageFlags(servCmd)
}
}
}
// ---------------------------------------------------------------------------
// Commands
// ---------------------------------------------------------------------------
const debugCommand = "debug"
// The debug category of commands.
// `corso debug [<subcommand>] [<flag>...]`
func debugCmd() *cobra.Command {
return &cobra.Command{
Use: debugCommand,
Short: "debugging & troubleshooting utilities",
Long: `debug the data stored in corso.`,
RunE: handledebugCmd,
Args: cobra.NoArgs,
}
}
// Handler for flat calls to `corso debug`.
// Produces the same output as `corso debug --help`.
func handledebugCmd(cmd *cobra.Command, args []string) error {
return cmd.Help()
}
// The debug metadataFiles subcommand.
// `corso debug metadata-files <service> [<flag>...]`
var metadataFilesCommand = "metadata-files"
func metadataFilesCmd() *cobra.Command {
return &cobra.Command{
Use: metadataFilesCommand,
Short: "display all the metadata file contents stored by the service",
RunE: handleMetadataFilesCmd,
Args: cobra.NoArgs,
}
}
// Handler for calls to `corso debug metadata-files`.
// Produces the same output as `corso debug metadata-files --help`.
func handleMetadataFilesCmd(cmd *cobra.Command, args []string) error {
return cmd.Help()
}
// ---------------------------------------------------------------------------
// runners
// ---------------------------------------------------------------------------
func genericMetadataFiles(
ctx context.Context,
cmd *cobra.Command,
args []string,
sel selectors.Selector,
backupID string,
) error {
ctx = clues.Add(ctx, "backup_id", backupID)
r, _, err := utils.GetAccountAndConnect(ctx, cmd, sel.PathService())
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
// read metadata
files, err := r.GetBackupMetadata(ctx, sel, backupID, fault.New(true))
if err != nil {
return Only(ctx, clues.Wrap(err, "retrieving metadata files"))
}
for _, file := range files {
Infof(ctx, "\n------------------------------")
Info(ctx, file.Name)
Info(ctx, file.Path)
Pretty(ctx, file.Data)
}
return nil
}

66
src/cli/debug/exchange.go Normal file
View File

@ -0,0 +1,66 @@
package debug
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/selectors"
)
// called by debug.go to map subcommands to provider-specific handling.
func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case metadataFilesCommand:
c, _ = utils.AddCommand(cmd, exchangeMetadataFilesCmd(), utils.MarkDebugCommand())
c.Use = c.Use + " " + exchangeServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
}
return c
}
const (
exchangeServiceCommand = "exchange"
exchangeServiceCommandUseSuffix = "--backup <backupId>"
//nolint:lll
exchangeServiceCommandDebugExamples = `# Display file contents for backup 1234abcd
corso debug metadata-files exchange --backup 1234abcd-12ab-cd34-56de-1234abcd`
)
// `corso debug metadata-files exchange [<flag>...] <destination>`
func exchangeMetadataFilesCmd() *cobra.Command {
return &cobra.Command{
Use: exchangeServiceCommand,
Short: "Display exchange metadata file content",
RunE: metadataFilesExchangeCmd,
Args: cobra.NoArgs,
Example: exchangeServiceCommandDebugExamples,
}
}
func metadataFilesExchangeCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
sel := selectors.NewExchangeBackup([]string{"unused-placeholder"})
sel.Include(sel.AllData())
return genericMetadataFiles(
ctx,
cmd,
args,
sel.Selector,
flags.BackupIDFV)
}

View File

@ -0,0 +1,77 @@
package debug
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
)
type ExchangeUnitSuite struct {
tester.Suite
}
func TestExchangeUnitSuite(t *testing.T) {
suite.Run(t, &ExchangeUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *ExchangeUnitSuite) TestExchangeCommands() {
expectUse := exchangeServiceCommand + " " + exchangeServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "metdata-files exchange",
use: metadataFilesCommand,
expectUse: expectUse,
expectShort: exchangeMetadataFilesCmd().Short,
expectRunE: metadataFilesExchangeCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: metadataFilesCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

68
src/cli/debug/groups.go Normal file
View File

@ -0,0 +1,68 @@
package debug
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/selectors"
)
// called by debug.go to map subcommands to provider-specific handling.
func addGroupsCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case metadataFilesCommand:
c, _ = utils.AddCommand(cmd, groupsMetadataFilesCmd(), utils.MarkDebugCommand())
c.Use = c.Use + " " + groupsServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
}
return c
}
// TODO: correct examples
const (
groupsServiceCommand = "groups"
groupsServiceCommandUseSuffix = "--backup <backupId>"
//nolint:lll
groupsServiceCommandDebugExamples = `# Display file contents for backup 1234abcd
corso debug metadata-files groups --backup 1234abcd-12ab-cd34-56de-1234abcd`
)
// `corso debug metadata-files groups [<flag>...] <destination>`
func groupsMetadataFilesCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Short: "Display groups metadata file content",
RunE: metadataFilesGroupsCmd,
Args: cobra.NoArgs,
Example: groupsServiceCommandDebugExamples,
}
}
func metadataFilesGroupsCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
sel := selectors.NewGroupsBackup([]string{"unused-placeholder"})
sel.Include(sel.AllData())
return genericMetadataFiles(
ctx,
cmd,
args,
sel.Selector,
flags.BackupIDFV)
}

View File

@ -0,0 +1,76 @@
package debug
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
)
type GroupsUnitSuite struct {
tester.Suite
}
func TestGroupsUnitSuite(t *testing.T) {
suite.Run(t, &GroupsUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *GroupsUnitSuite) TestAddGroupsCommands() {
expectUse := groupsServiceCommand + " " + groupsServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "metdata-files groups",
use: metadataFilesCommand,
expectUse: expectUse,
expectShort: groupsMetadataFilesCmd().Short,
expectRunE: metadataFilesGroupsCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: metadataFilesCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

66
src/cli/debug/onedrive.go Normal file
View File

@ -0,0 +1,66 @@
package debug
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/selectors"
)
// called by debug.go to map subcommands to provider-specific handling.
func addOneDriveCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case metadataFilesCommand:
c, _ = utils.AddCommand(cmd, oneDriveMetadataFilesCmd(), utils.MarkDebugCommand())
c.Use = c.Use + " " + oneDriveServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
}
return c
}
const (
oneDriveServiceCommand = "onedrive"
oneDriveServiceCommandUseSuffix = "--backup <backupId>"
//nolint:lll
oneDriveServiceCommandDebugExamples = `# Display file contents for backup 1234abcd
corso debug metadata-files onedrive --backup 1234abcd-12ab-cd34-56de-1234abcd`
)
// `corso debug metadata-files onedrive [<flag>...] <destination>`
func oneDriveMetadataFilesCmd() *cobra.Command {
return &cobra.Command{
Use: oneDriveServiceCommand,
Short: "Display onedrive metadata file content",
RunE: metadataFilesOneDriveCmd,
Args: cobra.NoArgs,
Example: oneDriveServiceCommandDebugExamples,
}
}
func metadataFilesOneDriveCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
sel := selectors.NewOneDriveBackup([]string{"unused-placeholder"})
sel.Include(sel.AllData())
return genericMetadataFiles(
ctx,
cmd,
args,
sel.Selector,
flags.BackupIDFV)
}

View File

@ -0,0 +1,76 @@
package debug
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
)
type OneDriveUnitSuite struct {
tester.Suite
}
func TestOneDriveUnitSuite(t *testing.T) {
suite.Run(t, &OneDriveUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *OneDriveUnitSuite) TestAddOneDriveCommands() {
expectUse := oneDriveServiceCommand + " " + oneDriveServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "metadata-files onedrive",
use: metadataFilesCommand,
expectUse: expectUse,
expectShort: oneDriveMetadataFilesCmd().Short,
expectRunE: metadataFilesOneDriveCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: metadataFilesCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

View File

@ -0,0 +1,66 @@
package debug
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/selectors"
)
// called by debug.go to map subcommands to provider-specific handling.
func addSharePointCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case metadataFilesCommand:
c, _ = utils.AddCommand(cmd, sharePointMetadataFilesCmd(), utils.MarkDebugCommand())
c.Use = c.Use + " " + sharePointServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
}
return c
}
const (
sharePointServiceCommand = "sharepoint"
sharePointServiceCommandUseSuffix = "--backup <backupId>"
//nolint:lll
sharePointServiceCommandDebugExamples = `# Display file contents for backup 1234abcd
corso debug metadata-files sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd`
)
// `corso debug metadata-files sharepoint [<flag>...] <destination>`
func sharePointMetadataFilesCmd() *cobra.Command {
return &cobra.Command{
Use: sharePointServiceCommand,
Short: "Display sharepoint metadata file content",
RunE: metadataFilesSharePointCmd,
Args: cobra.NoArgs,
Example: sharePointServiceCommandDebugExamples,
}
}
func metadataFilesSharePointCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
sel := selectors.NewSharePointBackup([]string{"unused-placeholder"})
sel.Include(sel.LibraryFolders(selectors.Any()))
return genericMetadataFiles(
ctx,
cmd,
args,
sel.Selector,
flags.BackupIDFV)
}

View File

@ -0,0 +1,76 @@
package debug
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
)
type SharePointUnitSuite struct {
tester.Suite
}
func TestSharePointUnitSuite(t *testing.T) {
suite.Run(t, &SharePointUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *SharePointUnitSuite) TestAddSharePointCommands() {
expectUse := sharePointServiceCommand + " " + sharePointServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{
name: "metdata-files sharepoint",
use: metadataFilesCommand,
expectUse: expectUse,
expectShort: sharePointMetadataFilesCmd().Short,
expectRunE: metadataFilesSharePointCmd,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: metadataFilesCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

101
src/cli/export/exchange.go Normal file
View File

@ -0,0 +1,101 @@
package export
import (
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
)
// called by export.go to map subcommands to provider-specific handling.
func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case exportCommand:
c, _ = utils.AddCommand(cmd, exchangeExportCmd())
c.Use = c.Use + " " + exchangeServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
flags.AddExchangeDetailsAndRestoreFlags(c, true)
flags.AddExportConfigFlags(c)
flags.AddFailFastFlag(c)
}
return c
}
const (
exchangeServiceCommand = "exchange"
exchangeServiceCommandUseSuffix = "<destination> --backup <backupId>"
// TODO(meain): remove message about only supporting email exports once others are added
//nolint:lll
exchangeServiceCommandExportExamples = `> Only email exports are supported as of now.
# Export emails with ID 98765abcdef and 12345abcdef from Alice's last backup (1234abcd...) to my-folder
corso export exchange my-folder --backup 1234abcd-12ab-cd34-56de-1234abcd --email 98765abcdef,12345abcdef
# Export emails with subject containing "Hello world" in the "Inbox" to my-folder
corso export exchange --backup 1234abcd-12ab-cd34-56de-1234abcd \
--email-subject "Hello world" --email-folder Inbox my-folder`
// TODO(meain): Uncomment once support for these are added
// `# Export an entire calendar to my-folder
// corso export exchange --backup 1234abcd-12ab-cd34-56de-1234abcd \
// --event-calendar Calendar my-folder
// # Export the contact with ID abdef0101 to my-folder
// corso export exchange --backup 1234abcd-12ab-cd34-56de-1234abcd --contact abdef0101 my-folder`
)
// `corso export exchange [<flag>...] <destination>`
func exchangeExportCmd() *cobra.Command {
return &cobra.Command{
Use: exchangeServiceCommand,
Short: "Export M365 Exchange service data",
RunE: exportExchangeCmd,
Args: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return errors.New("missing export destination")
}
return nil
},
Example: exchangeServiceCommandExportExamples,
}
}
// processes an exchange service export.
func exportExchangeCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
opts := utils.MakeExchangeOpts(cmd)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := utils.ValidateExchangeRestoreFlags(flags.BackupIDFV, opts); err != nil {
return err
}
sel := utils.IncludeExchangeRestoreDataSelectors(opts)
utils.FilterExchangeRestoreInfoSelectors(sel, opts)
return runExport(
ctx,
cmd,
args,
opts.ExportCfg,
sel.Selector,
flags.BackupIDFV,
"Exchange",
defaultAcceptedFormatTypes)
}

View File

@ -0,0 +1,78 @@
package export
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
)
type ExchangeUnitSuite struct {
tester.Suite
}
func TestExchangeUnitSuite(t *testing.T) {
suite.Run(t, &ExchangeUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *ExchangeUnitSuite) TestAddExchangeCommands() {
expectUse := exchangeServiceCommand + " " + exchangeServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{"export exchange", exportCommand, expectUse, exchangeExportCmd().Short, exportExchangeCmd},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: exportCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addExchangeCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
exchangeServiceCommand,
[]string{
flagsTD.RestoreDestination,
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.FormatFN, flagsTD.FormatType,
"--" + flags.ArchiveFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
opts := utils.MakeExchangeOpts(cmd)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.Equal(t, flagsTD.Archive, opts.ExportCfg.Archive)
assert.Equal(t, flagsTD.FormatType, opts.ExportCfg.Format)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

153
src/cli/export/export.go Normal file
View File

@ -0,0 +1,153 @@
package export
import (
"context"
"errors"
"github.com/alcionai/clues"
"github.com/dustin/go-humanize"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/data"
"github.com/alcionai/corso/src/internal/observe"
"github.com/alcionai/corso/src/internal/operations"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/dttm"
"github.com/alcionai/corso/src/pkg/export"
"github.com/alcionai/corso/src/pkg/selectors"
)
var exportCommands = []func(cmd *cobra.Command) *cobra.Command{
addOneDriveCommands,
addSharePointCommands,
addGroupsCommands,
addExchangeCommands,
}
var defaultAcceptedFormatTypes = []string{string(control.DefaultFormat)}
// AddCommands attaches all `corso export * *` commands to the parent.
func AddCommands(cmd *cobra.Command) {
subCommand := exportCmd()
cmd.AddCommand(subCommand)
for _, addExportTo := range exportCommands {
sc := addExportTo(subCommand)
flags.AddAllStorageFlags(sc)
}
}
const exportCommand = "export"
// The export category of commands.
// `corso export [<subcommand>] [<flag>...]`
func exportCmd() *cobra.Command {
return &cobra.Command{
Use: exportCommand,
Short: "Export your service data",
Long: `Export the data stored in one of your M365 services.`,
RunE: handleExportCmd,
Args: cobra.NoArgs,
}
}
// Handler for flat calls to `corso export`.
// Produces the same output as `corso export --help`.
func handleExportCmd(cmd *cobra.Command, args []string) error {
return cmd.Help()
}
func runExport(
ctx context.Context,
cmd *cobra.Command,
args []string,
ueco utils.ExportCfgOpts,
sel selectors.Selector,
backupID, serviceName string,
acceptedFormatTypes []string,
) error {
if err := utils.ValidateExportConfigFlags(&ueco, acceptedFormatTypes); err != nil {
return Only(ctx, err)
}
r, _, err := utils.GetAccountAndConnect(ctx, cmd, sel.PathService())
if err != nil {
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
exportLocation := args[0]
if len(exportLocation) == 0 {
// This should not be possible, but adding it just in case.
exportLocation = control.DefaultRestoreLocation + dttm.FormatNow(dttm.HumanReadableDriveItem)
}
Infof(ctx, "Exporting to folder %s", exportLocation)
eo, err := r.NewExport(
ctx,
backupID,
sel,
utils.MakeExportConfig(ctx, ueco))
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to initialize "+serviceName+" export"))
}
collections, err := eo.Run(ctx)
if err != nil {
if errors.Is(err, data.ErrNotFound) {
return Only(ctx, clues.New("Backup or backup details missing for id "+backupID))
}
return Only(ctx, clues.Wrap(err, "Failed to run "+serviceName+" export"))
}
if err = showExportProgress(ctx, eo, collections, exportLocation); err != nil {
return err
}
if len(eo.Errors.Recovered()) > 0 {
Infof(ctx, "\nExport failures")
for _, i := range eo.Errors.Recovered() {
Err(ctx, i.Error())
}
return Only(ctx, clues.New("Incomplete export of "+serviceName+" data"))
}
stats := eo.GetStats()
if len(stats) > 0 {
Infof(ctx, "\nExport details")
}
for k, s := range stats {
Infof(ctx, "%s: %d items (%s)", k.HumanString(), s.ResourceCount, humanize.Bytes(uint64(s.BytesRead)))
}
return nil
}
// slim wrapper that allows us to defer the progress bar closure with the expected scope.
func showExportProgress(
ctx context.Context,
op operations.ExportOperation,
collections []export.Collectioner,
exportLocation string,
) error {
// It would be better to give a progressbar than a spinner, but we
// have any way of knowing how many files are available as of now.
progressMessage := observe.MessageWithCompletion(ctx, observe.DefaultCfg(), "Writing data to disk")
defer close(progressMessage)
err := export.ConsumeExportCollections(ctx, exportLocation, collections, op.Errors)
if err != nil {
return Only(ctx, err)
}
return nil
}

115
src/cli/export/groups.go Normal file
View File

@ -0,0 +1,115 @@
package export
import (
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/pkg/control"
)
// called by export.go to map subcommands to provider-specific handling.
func addGroupsCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case exportCommand:
c, _ = utils.AddCommand(cmd, groupsExportCmd(), utils.MarkPreviewCommand())
c.Use = c.Use + " " + groupsServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
flags.AddSiteFlag(c, false)
flags.AddSiteIDFlag(c, false)
flags.AddSharePointDetailsAndRestoreFlags(c)
flags.AddGroupDetailsAndRestoreFlags(c)
flags.AddExportConfigFlags(c)
flags.AddFailFastFlag(c)
}
return c
}
const (
groupsServiceCommand = "groups"
teamsServiceCommand = "teams"
groupsServiceCommandUseSuffix = "<destination> --backup <backupId>"
//nolint:lll
groupsServiceCommandExportExamples = `# Export a message in Marketing's last backup (1234abcd...) to /my-exports
corso export groups my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd --message 98765abcdef
# Export all messages named in channel "Finance Reports" to the current directory
corso export groups . --backup 1234abcd-12ab-cd34-56de-1234abcd \
--message '*' --channel "Finance Reports"
# Export all messages in channel "Finance Reports" that were created before 2020 to /my-exports
corso export groups my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd
--channel "Finance Reports" --message-created-before 2020-01-01T00:00:00
# Export all files and folders in folder "Documents/Finance Reports" that were created before 2020 to /my-exports
corso export groups my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd \
--folder "Documents/Finance Reports" --file-created-before 2020-01-01T00:00:00
# Export all posts from a conversation with topic "hello world" from group mailbox's last backup to /my-exports
corso export groups my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd --conversation "hello world"
# Export post with ID 98765abcdef from a conversation from group mailbox's last backup to /my-exports
corso export groups my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd --conversation "hello world" --post 98765abcdef`
)
// `corso export groups [<flag>...] <destination>`
func groupsExportCmd() *cobra.Command {
return &cobra.Command{
Use: groupsServiceCommand,
Aliases: []string{teamsServiceCommand},
Short: "Export M365 Groups service data",
RunE: exportGroupsCmd,
Args: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return errors.New("missing export destination")
}
return nil
},
Example: groupsServiceCommandExportExamples,
}
}
// processes an groups service export.
func exportGroupsCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
opts := utils.MakeGroupsOpts(cmd)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := utils.ValidateGroupsRestoreFlags(flags.BackupIDFV, opts, false); err != nil {
return err
}
sel := utils.IncludeGroupsRestoreDataSelectors(ctx, opts)
utils.FilterGroupsRestoreInfoSelectors(sel, opts)
acceptedGroupsFormatTypes := []string{
string(control.DefaultFormat),
string(control.JSONFormat),
}
return runExport(
ctx,
cmd,
args,
opts.ExportCfg,
sel.Selector,
flags.BackupIDFV,
"Groups",
acceptedGroupsFormatTypes)
}

View File

@ -0,0 +1,78 @@
package export
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
)
type GroupsUnitSuite struct {
tester.Suite
}
func TestGroupsUnitSuite(t *testing.T) {
suite.Run(t, &GroupsUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *GroupsUnitSuite) TestAddGroupsCommands() {
expectUse := groupsServiceCommand + " " + groupsServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{"export groups", exportCommand, expectUse, groupsExportCmd().Short, exportGroupsCmd},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: exportCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addGroupsCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
groupsServiceCommand,
[]string{
flagsTD.RestoreDestination,
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.FormatFN, flagsTD.FormatType,
"--" + flags.ArchiveFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
opts := utils.MakeGroupsOpts(cmd)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.Equal(t, flagsTD.Archive, opts.ExportCfg.Archive)
assert.Equal(t, flagsTD.FormatType, opts.ExportCfg.Format)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

View File

@ -0,0 +1,94 @@
package export
import (
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
)
// called by export.go to map subcommands to provider-specific handling.
func addOneDriveCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case exportCommand:
c, _ = utils.AddCommand(cmd, oneDriveExportCmd())
c.Use = c.Use + " " + oneDriveServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
flags.AddOneDriveDetailsAndRestoreFlags(c)
flags.AddExportConfigFlags(c)
flags.AddFailFastFlag(c)
}
return c
}
const (
oneDriveServiceCommand = "onedrive"
oneDriveServiceCommandUseSuffix = "<destination> --backup <backupId>"
//nolint:lll
oneDriveServiceCommandExportExamples = `# Export file with ID 98765abcdef in Bob's last backup (1234abcd...) to /my-exports
corso export onedrive my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd --file 98765abcdef
# Export files named "FY2021 Planning.xlsx" in "Documents/Finance Reports" to he current directory
corso export onedrive . --backup 1234abcd-12ab-cd34-56de-1234abcd \
--file "FY2021 Planning.xlsx" --folder "Documents/Finance Reports"
# Export all files and folders in folder "Documents/Finance Reports" that were created before 2020 to /my-exports
corso export onedrive my-exports --backup 1234abcd-12ab-cd34-56de-1234abcd \
--folder "Documents/Finance Reports" --file-created-before 2020-01-01T00:00:00`
)
// `corso export onedrive [<flag>...] <destination>`
func oneDriveExportCmd() *cobra.Command {
return &cobra.Command{
Use: oneDriveServiceCommand,
Short: "Export M365 OneDrive service data",
RunE: exportOneDriveCmd,
Args: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return errors.New("missing export destination")
}
return nil
},
Example: oneDriveServiceCommandExportExamples,
}
}
// processes an onedrive service export.
func exportOneDriveCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
opts := utils.MakeOneDriveOpts(cmd)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := utils.ValidateOneDriveRestoreFlags(flags.BackupIDFV, opts); err != nil {
return err
}
sel := utils.IncludeOneDriveRestoreDataSelectors(opts)
utils.FilterOneDriveRestoreInfoSelectors(sel, opts)
return runExport(
ctx,
cmd,
args,
opts.ExportCfg,
sel.Selector,
flags.BackupIDFV,
"OneDrive",
defaultAcceptedFormatTypes)
}

View File

@ -0,0 +1,92 @@
package export
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
)
type OneDriveUnitSuite struct {
tester.Suite
}
func TestOneDriveUnitSuite(t *testing.T) {
suite.Run(t, &OneDriveUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *OneDriveUnitSuite) TestAddOneDriveCommands() {
expectUse := oneDriveServiceCommand + " " + oneDriveServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{"export onedrive", exportCommand, expectUse, oneDriveExportCmd().Short, exportOneDriveCmd},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: exportCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addOneDriveCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
oneDriveServiceCommand,
[]string{
flagsTD.RestoreDestination,
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.FileFN, flagsTD.FlgInputs(flagsTD.FileNameInput),
"--" + flags.FolderFN, flagsTD.FlgInputs(flagsTD.FolderPathInput),
"--" + flags.FileCreatedAfterFN, flagsTD.FileCreatedAfterInput,
"--" + flags.FileCreatedBeforeFN, flagsTD.FileCreatedBeforeInput,
"--" + flags.FileModifiedAfterFN, flagsTD.FileModifiedAfterInput,
"--" + flags.FileModifiedBeforeFN, flagsTD.FileModifiedBeforeInput,
"--" + flags.FormatFN, flagsTD.FormatType,
// bool flags
"--" + flags.ArchiveFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
opts := utils.MakeOneDriveOpts(cmd)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.ElementsMatch(t, flagsTD.FileNameInput, opts.FileName)
assert.ElementsMatch(t, flagsTD.FolderPathInput, opts.FolderPath)
assert.Equal(t, flagsTD.FileCreatedAfterInput, opts.FileCreatedAfter)
assert.Equal(t, flagsTD.FileCreatedBeforeInput, opts.FileCreatedBefore)
assert.Equal(t, flagsTD.FileModifiedAfterInput, opts.FileModifiedAfter)
assert.Equal(t, flagsTD.FileModifiedBeforeInput, opts.FileModifiedBefore)
assert.Equal(t, flagsTD.CorsoPassphrase, flags.PassphraseFV)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

View File

@ -0,0 +1,118 @@
package export
import (
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/utils"
)
// called by export.go to map subcommands to provider-specific handling.
func addSharePointCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case exportCommand:
c, _ = utils.AddCommand(cmd, sharePointExportCmd())
c.Use = c.Use + " " + sharePointServiceCommandUseSuffix
flags.AddBackupIDFlag(c, true)
flags.AddSharePointDetailsAndRestoreFlags(c)
flags.AddExportConfigFlags(c)
flags.AddFailFastFlag(c)
}
return c
}
const (
sharePointServiceCommand = "sharepoint"
sharePointServiceCommandUseSuffix = "<destination> --backup <backupId>"
//nolint:lll
sharePointServiceCommandExportExamples = `# Export file with ID 98765abcdef in Bob's latest backup (1234abcd...) to /my-exports
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd --file 98765abcdef my-exports
# Export file "ServerRenderTemplate.xsl" in "Display Templates/Style Sheets" as archive to the current directory
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--file "ServerRenderTemplate.xsl" --folder "Display Templates/Style Sheets" --archive .
# Export all files in the folder "Display Templates/Style Sheets" that were created before 2020 to /my-exports
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--file-created-before 2020-01-01T00:00:00 --folder "Display Templates/Style Sheets" my-exports
# Export all files in the "Documents" library to the current directory.
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--library Documents --folder "Display Templates/Style Sheets" .
# Export lists by their name(s)
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list "list-name-1,list-name-2" .
# Export lists created after a given time
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-created-after 2024-01-01T12:23:34 .
# Export lists created before a given time
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-created-before 2024-01-01T12:23:34 .
# Export lists modified before a given time
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-modified-before 2024-01-01T12:23:34 .
# Export lists modified after a given time
corso export sharepoint --backup 1234abcd-12ab-cd34-56de-1234abcd \
--list-modified-after 2024-01-01T12:23:34 .`
)
// `corso export sharepoint [<flag>...] <destination>`
func sharePointExportCmd() *cobra.Command {
return &cobra.Command{
Use: sharePointServiceCommand,
Short: "Export M365 SharePoint service data",
RunE: exportSharePointCmd,
Args: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return errors.New("missing export destination")
}
return nil
},
Example: sharePointServiceCommandExportExamples,
}
}
// processes an sharepoint service export.
func exportSharePointCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
if utils.HasNoFlagsAndShownHelp(cmd) {
return nil
}
opts := utils.MakeSharePointOpts(cmd)
if flags.RunModeFV == flags.RunModeFlagTest {
return nil
}
if err := utils.ValidateSharePointRestoreFlags(flags.BackupIDFV, opts); err != nil {
return err
}
sel := utils.IncludeSharePointRestoreDataSelectors(ctx, opts)
utils.FilterSharePointRestoreInfoSelectors(sel, opts)
return runExport(
ctx,
cmd,
args,
opts.ExportCfg,
sel.Selector,
flags.BackupIDFV,
"SharePoint",
defaultAcceptedFormatTypes)
}

View File

@ -0,0 +1,106 @@
package export
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli/flags"
flagsTD "github.com/alcionai/corso/src/cli/flags/testdata"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/tester"
)
type SharePointUnitSuite struct {
tester.Suite
}
func TestSharePointUnitSuite(t *testing.T) {
suite.Run(t, &SharePointUnitSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *SharePointUnitSuite) TestAddSharePointCommands() {
expectUse := sharePointServiceCommand + " " + sharePointServiceCommandUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{"export sharepoint", exportCommand, expectUse, sharePointExportCmd().Short, exportSharePointCmd},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
parent := &cobra.Command{Use: exportCommand}
cmd := cliTD.SetUpCmdHasFlags(
t,
parent,
addSharePointCommands,
[]cliTD.UseCobraCommandFn{
flags.AddAllProviderFlags,
flags.AddAllStorageFlags,
},
flagsTD.WithFlags(
sharePointServiceCommand,
[]string{
flagsTD.RestoreDestination,
"--" + flags.RunModeFN, flags.RunModeFlagTest,
"--" + flags.BackupFN, flagsTD.BackupInput,
"--" + flags.LibraryFN, flagsTD.LibraryInput,
"--" + flags.FileFN, flagsTD.FlgInputs(flagsTD.FileNameInput),
"--" + flags.FolderFN, flagsTD.FlgInputs(flagsTD.FolderPathInput),
"--" + flags.FileCreatedAfterFN, flagsTD.FileCreatedAfterInput,
"--" + flags.FileCreatedBeforeFN, flagsTD.FileCreatedBeforeInput,
"--" + flags.FileModifiedAfterFN, flagsTD.FileModifiedAfterInput,
"--" + flags.FileModifiedBeforeFN, flagsTD.FileModifiedBeforeInput,
"--" + flags.ListFN, flagsTD.FlgInputs(flagsTD.ListsInput),
"--" + flags.ListCreatedAfterFN, flagsTD.ListCreatedAfterInput,
"--" + flags.ListCreatedBeforeFN, flagsTD.ListCreatedBeforeInput,
"--" + flags.ListModifiedAfterFN, flagsTD.ListModifiedAfterInput,
"--" + flags.ListModifiedBeforeFN, flagsTD.ListModifiedBeforeInput,
"--" + flags.PageFN, flagsTD.FlgInputs(flagsTD.PageInput),
"--" + flags.PageFolderFN, flagsTD.FlgInputs(flagsTD.PageFolderInput),
"--" + flags.FormatFN, flagsTD.FormatType,
"--" + flags.ArchiveFN,
},
flagsTD.PreparedProviderFlags(),
flagsTD.PreparedStorageFlags()))
cliTD.CheckCmdChild(
t,
parent,
3,
test.expectUse,
test.expectShort,
test.expectRunE)
opts := utils.MakeSharePointOpts(cmd)
assert.Equal(t, flagsTD.BackupInput, flags.BackupIDFV)
assert.Equal(t, flagsTD.LibraryInput, opts.Library)
assert.ElementsMatch(t, flagsTD.FileNameInput, opts.FileName)
assert.ElementsMatch(t, flagsTD.FolderPathInput, opts.FolderPath)
assert.Equal(t, flagsTD.FileCreatedAfterInput, opts.FileCreatedAfter)
assert.Equal(t, flagsTD.FileCreatedBeforeInput, opts.FileCreatedBefore)
assert.Equal(t, flagsTD.FileModifiedAfterInput, opts.FileModifiedAfter)
assert.Equal(t, flagsTD.FileModifiedBeforeInput, opts.FileModifiedBefore)
assert.ElementsMatch(t, flagsTD.ListsInput, opts.Lists)
assert.Equal(t, flagsTD.ListCreatedAfterInput, opts.ListCreatedAfter)
assert.Equal(t, flagsTD.ListCreatedBeforeInput, opts.ListCreatedBefore)
assert.Equal(t, flagsTD.ListModifiedAfterInput, opts.ListModifiedAfter)
assert.Equal(t, flagsTD.ListModifiedBeforeInput, opts.ListModifiedBefore)
assert.ElementsMatch(t, flagsTD.PageInput, opts.Page)
assert.ElementsMatch(t, flagsTD.PageFolderInput, opts.PageFolder)
assert.Equal(t, flagsTD.Archive, opts.ExportCfg.Archive)
assert.Equal(t, flagsTD.FormatType, opts.ExportCfg.Format)
flagsTD.AssertStorageFlags(t, cmd)
})
}
}

View File

@ -0,0 +1,11 @@
package flags
import (
"github.com/spf13/cobra"
)
func AddGenericBackupFlags(cmd *cobra.Command) {
AddFailFastFlag(cmd)
AddDisableIncrementalsFlag(cmd)
AddForceItemDataDownloadFlag(cmd)
}

View File

@ -0,0 +1,38 @@
package flags
import "github.com/spf13/cobra"
const Show = "show"
func AddAllBackupListFlags(cmd *cobra.Command) {
AddFailedItemsFN(cmd)
AddSkippedItemsFN(cmd)
AddRecoveredErrorsFN(cmd)
AddAlertsFN(cmd)
}
func AddFailedItemsFN(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(
&FailedItemsFV, FailedItemsFN, Show,
"Toggles showing or hiding the list of items that failed.")
cobra.CheckErr(fs.MarkHidden(FailedItemsFN))
}
func AddSkippedItemsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&ListSkippedItemsFV, SkippedItemsFN, Show,
"Toggles showing or hiding the list of items that were skipped.")
}
func AddRecoveredErrorsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&ListRecoveredErrorsFV, RecoveredErrorsFN, Show,
"Toggles showing or hiding the list of errors which Corso recovered from.")
}
func AddAlertsFN(cmd *cobra.Command) {
cmd.Flags().StringVar(
&ListAlertsFV, AlertsFN, Show,
"Toggles showing or hiding the list of alerts produced during the operation.")
}

View File

@ -49,7 +49,7 @@ var (
// AddExchangeDetailsAndRestoreFlags adds flags that are common to both the
// details and restore commands.
func AddExchangeDetailsAndRestoreFlags(cmd *cobra.Command) {
func AddExchangeDetailsAndRestoreFlags(cmd *cobra.Command, emailOnly bool) {
fs := cmd.Flags()
// email flags
@ -78,6 +78,12 @@ func AddExchangeDetailsAndRestoreFlags(cmd *cobra.Command) {
EmailReceivedBeforeFN, "",
"Select emails received before this datetime.")
// NOTE: Only temporary until we add support for exporting the
// others as well in exchange.
if emailOnly {
return
}
// event flags
fs.StringSliceVar(
&EventFV,

23
src/cli/flags/export.go Normal file
View File

@ -0,0 +1,23 @@
package flags
import (
"github.com/spf13/cobra"
)
const (
ArchiveFN = "archive"
FormatFN = "format"
)
var (
ArchiveFV bool
FormatFV string
)
// AddExportConfigFlags adds the restore config flag set.
func AddExportConfigFlags(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(&ArchiveFV, ArchiveFN, false, "Export data as an archive instead of individual files")
fs.StringVar(&FormatFV, FormatFN, "", "Specify the export file format")
cobra.CheckErr(fs.MarkHidden(FormatFN))
}

View File

@ -0,0 +1,48 @@
package flags
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/pkg/storage"
)
// filesystem flag names
const (
FilesystemPathFN = "path"
)
// filesystem flag values
var (
FilesystemPathFV string
)
func AddFilesystemFlags(cmd *cobra.Command) {
fs := cmd.Flags()
AddAzureCredsFlags(cmd)
AddCorsoPassphaseFlags(cmd)
fs.StringVar(
&FilesystemPathFV,
FilesystemPathFN,
"",
"path to local or network storage")
cobra.CheckErr(cmd.MarkFlagRequired(FilesystemPathFN))
}
func FilesystemFlagOverrides(cmd *cobra.Command) map[string]string {
fs := GetPopulatedFlags(cmd)
return PopulateFilesystemFlags(fs)
}
func PopulateFilesystemFlags(flagset PopulatedFlags) map[string]string {
fsOverrides := map[string]string{
storage.StorageProviderTypeKey: storage.ProviderFilesystem.String(),
}
if _, ok := flagset[FilesystemPathFN]; ok {
fsOverrides[FilesystemPathFN] = FilesystemPathFV
}
return fsOverrides
}

93
src/cli/flags/groups.go Normal file
View File

@ -0,0 +1,93 @@
package flags
import (
"github.com/spf13/cobra"
)
const (
DataMessages = "messages"
DataConversations = "conversations"
)
const (
ChannelFN = "channel"
ConversationFN = "conversation"
GroupFN = "group"
MessageFN = "message"
PostFN = "post"
MessageCreatedAfterFN = "message-created-after"
MessageCreatedBeforeFN = "message-created-before"
MessageLastReplyAfterFN = "message-last-reply-after"
MessageLastReplyBeforeFN = "message-last-reply-before"
)
var (
ChannelFV []string
ConversationFV []string
GroupFV []string
MessageFV []string
PostFV []string
MessageCreatedAfterFV string
MessageCreatedBeforeFV string
MessageLastReplyAfterFV string
MessageLastReplyBeforeFV string
)
func AddGroupDetailsAndRestoreFlags(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringSliceVar(
&ChannelFV,
ChannelFN, nil,
"Select data within a Team's Channel.")
fs.StringSliceVar(
&MessageFV,
MessageFN, nil,
"Select messages by reference.")
fs.StringVar(
&MessageCreatedAfterFV,
MessageCreatedAfterFN, "",
"Select messages created after this datetime.")
fs.StringVar(
&MessageCreatedBeforeFV,
MessageCreatedBeforeFN, "",
"Select messages created before this datetime.")
fs.StringVar(
&MessageLastReplyAfterFV,
MessageLastReplyAfterFN, "",
"Select messages with replies after this datetime.")
fs.StringVar(
&MessageLastReplyBeforeFV,
MessageLastReplyBeforeFN, "",
"Select messages with replies before this datetime.")
fs.StringSliceVar(
&ConversationFV,
ConversationFN, nil,
"Select data within a Group's Conversation.")
fs.StringSliceVar(
&PostFV,
PostFN, nil,
"Select Conversation Posts by reference.")
}
// AddGroupFlag adds the --group flag, which accepts either the id,
// the display name, or the mailbox address as its values. Users are
// expected to supply the display name. The ID is supported becase, well,
// IDs. The mailbox address is supported as a lookup fallback for certain
// SDK cases, therefore it's also supported here, though that support
// isn't exposed to end users.
func AddGroupFlag(cmd *cobra.Command) {
cmd.Flags().StringSliceVar(
&GroupFV,
GroupFN, nil,
"Backup data by group; accepts '"+Wildcard+"' to select all groups.")
}

View File

@ -7,13 +7,17 @@ import (
)
const (
MaintenanceModeFN = "mode"
ForceMaintenanceFN = "force"
MaintenanceModeFN = "mode"
ForceMaintenanceFN = "force"
UserMaintenanceFN = "user"
HostnameMaintenanceFN = "host"
)
var (
MaintenanceModeFV string
ForceMaintenanceFV bool
MaintenanceModeFV string
ForceMaintenanceFV bool
UserMaintenanceFV string
HostnameMaintenanceFV string
)
func AddMaintenanceModeFlag(cmd *cobra.Command) {
@ -22,12 +26,9 @@ func AddMaintenanceModeFlag(cmd *cobra.Command) {
&MaintenanceModeFV,
MaintenanceModeFN,
repository.CompleteMaintenance.String(),
"Type of maintenance operation to run. Pass '"+
repository.MetadataMaintenance.String()+"' to run a faster maintenance "+
"that does minimal clean-up and optimization. Pass '"+
repository.CompleteMaintenance.String()+"' to fully compact existing "+
"data and delete unused data.")
cobra.CheckErr(fs.MarkHidden(MaintenanceModeFN))
"Type of maintenance operation to run ('"+
repository.MetadataMaintenance.String()+"' | '"+
repository.CompleteMaintenance.String()+"' )")
}
func AddForceMaintenanceFlag(cmd *cobra.Command) {
@ -39,3 +40,21 @@ func AddForceMaintenanceFlag(cmd *cobra.Command) {
"Force maintenance. Caution: user must ensure this is not run concurrently on a single repo")
cobra.CheckErr(fs.MarkHidden(ForceMaintenanceFN))
}
func AddMaintenanceUserFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(
&UserMaintenanceFV,
UserMaintenanceFN,
"",
"Attempt to run maintenance as the specified user for the repo owner user")
}
func AddMaintenanceHostnameFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(
&HostnameMaintenanceFV,
HostnameMaintenanceFN,
"",
"Attempt to run maintenance with the specified hostname for the repo owner hostname")
}

View File

@ -12,6 +12,8 @@ const (
FileCreatedBeforeFN = "file-created-before"
FileModifiedAfterFN = "file-modified-after"
FileModifiedBeforeFN = "file-modified-before"
UseOldDeltaProcessFN = "use-old-delta-process"
)
var (
@ -22,6 +24,8 @@ var (
FileCreatedBeforeFV string
FileModifiedAfterFV string
FileModifiedBeforeFV string
UseOldDeltaProcessFV bool
)
// AddOneDriveDetailsAndRestoreFlags adds flags that are common to both the
@ -43,6 +47,7 @@ func AddOneDriveDetailsAndRestoreFlags(cmd *cobra.Command) {
&FileCreatedAfterFV,
FileCreatedAfterFN, "",
"Select files created after this datetime.")
fs.StringVar(
&FileCreatedBeforeFV,
FileCreatedBeforeFN, "",

View File

@ -5,37 +5,47 @@ import (
)
const (
DisableConcurrencyLimiterFN = "disable-concurrency-limiter"
DisableDeltaFN = "disable-delta"
DisableIncrementalsFN = "disable-incrementals"
EnableImmutableIDFN = "enable-immutable-id"
FailFastFN = "fail-fast"
FailedItemsFN = "failed-items"
FetchParallelismFN = "fetch-parallelism"
NoStatsFN = "no-stats"
RecoveredErrorsFN = "recovered-errors"
RestorePermissionsFN = "restore-permissions"
RunModeFN = "run-mode"
SkippedItemsFN = "skipped-items"
SkipReduceFN = "skip-reduce"
AlertsFN = "alerts"
ConfigFileFN = "config-file"
DeltaPageSizeFN = "delta-page-size"
DisableDeltaFN = "disable-delta"
DisableIncrementalsFN = "disable-incrementals"
DisableLazyItemReaderFN = "disable-lazy-item-reader"
DisableSlidingWindowLimiterFN = "disable-sliding-window-limiter"
ForceItemDataDownloadFN = "force-item-data-download"
EnableImmutableIDFN = "enable-immutable-id"
FailFastFN = "fail-fast"
FailedItemsFN = "failed-items"
FetchParallelismFN = "fetch-parallelism"
NoPermissionsFN = "no-permissions"
NoStatsFN = "no-stats"
RecoveredErrorsFN = "recovered-errors"
RunModeFN = "run-mode"
SkippedItemsFN = "skipped-items"
SkipReduceFN = "skip-reduce"
)
var (
DisableConcurrencyLimiterFV bool
DisableDeltaFV bool
DisableIncrementalsFV bool
EnableImmutableIDFV bool
FailFastFV bool
FetchParallelismFV int
ListFailedItemsFV string
ListSkippedItemsFV string
ListRecoveredErrorsFV string
NoStatsFV bool
ConfigFileFV string
DeltaPageSizeFV int
DisableDeltaFV bool
DisableIncrementalsFV bool
DisableLazyItemReaderFV bool
DisableSlidingWindowLimiterFV bool
ForceItemDataDownloadFV bool
EnableImmutableIDFV bool
FailFastFV bool
FailedItemsFV string
FetchParallelismFV int
ListAlertsFV string
ListSkippedItemsFV string
ListRecoveredErrorsFV string
NoPermissionsFV bool
NoStatsFV bool
// RunMode describes the type of run, such as:
// flagtest, dry, run. Should default to 'run'.
RunModeFV string
RestorePermissionsFV bool
SkipReduceFV bool
RunModeFV string
SkipReduceFV bool
)
// well-known flag values
@ -58,10 +68,10 @@ func AddFailFastFlag(cmd *cobra.Command) {
cobra.CheckErr(fs.MarkHidden(FailFastFN))
}
// AddRestorePermissionsFlag adds OneDrive flag for restoring permissions
func AddRestorePermissionsFlag(cmd *cobra.Command) {
// AddNoPermissionsFlag adds OneDrive flag for skipping restoring permissions
func AddNoPermissionsFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(&RestorePermissionsFV, RestorePermissionsFN, false, "Restore permissions for files and folders")
fs.BoolVar(&NoPermissionsFV, NoPermissionsFN, false, "don't restore file and folder permissions")
}
// AddSkipReduceFlag adds a hidden flag that allows callers to skip the selector
@ -72,6 +82,18 @@ func AddSkipReduceFlag(cmd *cobra.Command) {
cobra.CheckErr(fs.MarkHidden(SkipReduceFN))
}
// AddDeltaPageSizeFlag adds a hidden flag that allows callers to reduce delta
// query page sizes below 500.
func AddDeltaPageSizeFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.IntVar(
&DeltaPageSizeFV,
DeltaPageSizeFN,
500,
"Control quantity of items returned in paged queries. Valid range is [1-500]. Default: 500")
cobra.CheckErr(fs.MarkHidden(DeltaPageSizeFN))
}
// AddFetchParallelismFlag adds a hidden flag that allows callers to reduce call
// paralellism (ie, the corso worker pool size) from 4 to as low as 1.
func AddFetchParallelismFlag(cmd *cobra.Command) {
@ -96,6 +118,19 @@ func AddDisableIncrementalsFlag(cmd *cobra.Command) {
cobra.CheckErr(fs.MarkHidden(DisableIncrementalsFN))
}
// Adds the hidden '--force-item-data-download' cli flag which, when set,
// disables kopia-assisted incremental backups.
func AddForceItemDataDownloadFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(
&ForceItemDataDownloadFV,
ForceItemDataDownloadFN,
false,
"Disable cached data checks in backups to force item redownloads for "+
"items changed since the last successful backup.")
cobra.CheckErr(fs.MarkHidden(ForceItemDataDownloadFN))
}
// Adds the hidden '--disable-delta' cli flag which, when set, disables
// delta based backups.
func AddDisableDeltaFlag(cmd *cobra.Command) {
@ -120,19 +155,6 @@ func AddEnableImmutableIDFlag(cmd *cobra.Command) {
cobra.CheckErr(fs.MarkHidden(EnableImmutableIDFN))
}
// AddDisableConcurrencyLimiterFlag adds a hidden cli flag which, when set,
// removes concurrency limits when communicating with graph API. This
// flag is only relevant for exchange backups for now
func AddDisableConcurrencyLimiterFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(
&DisableConcurrencyLimiterFV,
DisableConcurrencyLimiterFN,
false,
"Disable concurrency limiter middleware. Default: false")
cobra.CheckErr(fs.MarkHidden(DisableConcurrencyLimiterFN))
}
// AddRunModeFlag adds the hidden --run-mode flag.
func AddRunModeFlag(cmd *cobra.Command, persistent bool) {
fs := cmd.Flags()
@ -143,3 +165,34 @@ func AddRunModeFlag(cmd *cobra.Command, persistent bool) {
fs.StringVar(&RunModeFV, RunModeFN, "run", "What mode to run: dry, test, run. Defaults to run.")
cobra.CheckErr(fs.MarkHidden(RunModeFN))
}
// AddDisableSlidingWindowLimiterFN disables the experimental sliding window rate
// limiter for graph API requests. This is only relevant for exchange backups.
// Exchange restores continue to use the default token bucket rate limiter.
// Setting this flag switches exchange backups to use the default token bucket
// rate limiter.
func AddDisableSlidingWindowLimiterFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(
&DisableSlidingWindowLimiterFV,
DisableSlidingWindowLimiterFN,
false,
"Disable sliding window rate limiter.")
cobra.CheckErr(fs.MarkHidden(DisableSlidingWindowLimiterFN))
}
// AddDisableLazyItemReader disables lazy item reader, such that we fall back to
// prefetch reader. This flag is currently only meant for groups conversations
// backup. Although it can be utilized for other services in future.
//
// This flag should only be used if lazy item reader is the default choice and
// we want to fallback to prefetch reader.
func AddDisableLazyItemReader(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(
&DisableLazyItemReaderFV,
DisableLazyItemReaderFN,
false,
"Disable lazy item reader.")
cobra.CheckErr(fs.MarkHidden(DisableLazyItemReaderFN))
}

View File

@ -6,22 +6,38 @@ import (
const (
BackupFN = "backup"
BackupIDsFN = "backups"
AWSAccessKeyFN = "aws-access-key"
AWSSecretAccessKeyFN = "aws-secret-access-key"
AWSSessionTokenFN = "aws-session-token"
// Corso Flags
CorsoPassphraseFN = "passphrase"
PassphraseFN = "passphrase"
NewPassphraseFN = "new-passphrase"
)
var (
BackupIDFV string
BackupIDsFV []string
AWSAccessKeyFV string
AWSSecretAccessKeyFV string
AWSSessionTokenFV string
CorsoPassphraseFV string
PassphraseFV string
NewPhasephraseFV string
)
// AddMultipleBackupIDsFlag adds the --backups flag.
func AddMultipleBackupIDsFlag(cmd *cobra.Command, require bool) {
cmd.Flags().StringSliceVar(
&BackupIDsFV,
BackupIDsFN, nil,
"',' separated IDs of the backup to retrieve")
if require {
cobra.CheckErr(cmd.MarkFlagRequired(BackupIDsFN))
}
}
// AddBackupIDFlag adds the --backup flag.
func AddBackupIDFlag(cmd *cobra.Command, require bool) {
cmd.Flags().StringVar(&BackupIDFV, BackupFN, "", "ID of the backup to retrieve.")
@ -31,6 +47,16 @@ func AddBackupIDFlag(cmd *cobra.Command, require bool) {
}
}
// ---------------------------------------------------------------------------
// storage
// ---------------------------------------------------------------------------
func AddAllStorageFlags(cmd *cobra.Command) {
AddCorsoPassphaseFlags(cmd)
// AddAzureCredsFlags is added by ProviderFlags
AddAWSCredsFlags(cmd)
}
func AddAWSCredsFlags(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(&AWSAccessKeyFV, AWSAccessKeyFN, "", "S3 access key")
@ -41,8 +67,31 @@ func AddAWSCredsFlags(cmd *cobra.Command) {
// M365 flags
func AddCorsoPassphaseFlags(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(&CorsoPassphraseFV,
CorsoPassphraseFN,
fs.StringVar(
&PassphraseFV,
PassphraseFN,
"",
"Passphrase to protect encrypted repository contents")
}
// M365 flags
func AddUpdatePassphraseFlags(cmd *cobra.Command, require bool) {
fs := cmd.Flags()
fs.StringVar(
&NewPhasephraseFV,
NewPassphraseFN,
"",
"update Corso passphrase for repo")
if require {
cobra.CheckErr(cmd.MarkFlagRequired(NewPassphraseFN))
}
}
// ---------------------------------------------------------------------------
// Provider
// ---------------------------------------------------------------------------
func AddAllProviderFlags(cmd *cobra.Command) {
AddAzureCredsFlags(cmd)
}

View File

@ -0,0 +1,37 @@
package flags
import (
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/pkg/control"
)
const (
CollisionsFN = "collisions"
DestinationFN = "destination"
ToResourceFN = "to-resource"
)
var (
CollisionsFV string
DestinationFV string
ToResourceFV string
)
// AddRestoreConfigFlags adds the restore config flag set.
func AddRestoreConfigFlags(cmd *cobra.Command, canRestoreToAlternate bool) {
fs := cmd.Flags()
fs.StringVar(
&CollisionsFV, CollisionsFN, string(control.Skip),
//nolint:lll
"Sets the behavior for existing item collisions: "+string(control.Skip)+", "+string(control.Copy)+", or "+string(control.Replace))
fs.StringVar(
&DestinationFV, DestinationFN, "",
"Overrides the folder where items get restored; '/' places items into their original location")
if canRestoreToAlternate {
fs.StringVar(
&ToResourceFV, ToResourceFN, "",
"Overrides the protected resource (mailbox, site, user, etc) where data gets restored")
}
}

View File

@ -0,0 +1,50 @@
package flags
import (
"time"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/pkg/control/repository"
)
const (
RetentionModeFN = "retention-mode"
RetentionDurationFN = "retention-duration"
ExtendRetentionFN = "extend-retention"
)
var (
RetentionModeFV string
RetentionDurationFV time.Duration
ExtendRetentionFV bool
)
// AddRetentionConfigFlags adds the retention config flag set.
func AddRetentionConfigFlags(cmd *cobra.Command) {
fs := cmd.Flags()
fs.StringVar(
&RetentionModeFV,
RetentionModeFN,
repository.NoRetention.String(),
"Sets object locking mode (if any) to use in remote storage: "+
repository.NoRetention.String()+", "+
repository.GovernanceRetention.String()+", or "+
repository.ComplianceRetention.String())
cobra.CheckErr(fs.MarkHidden(RetentionModeFN))
fs.DurationVar(
&RetentionDurationFV,
RetentionDurationFN,
time.Duration(0),
"Set the amount of time to lock individual objects in remote storage")
cobra.CheckErr(fs.MarkHidden(RetentionDurationFN))
fs.BoolVar(
&ExtendRetentionFV,
ExtendRetentionFN,
false,
"Extends object locks during maintenance. "+
"Extends locks by the most recently set value of "+RetentionDurationFN)
cobra.CheckErr(fs.MarkHidden(ExtendRetentionFN))
}

86
src/cli/flags/s3.go Normal file
View File

@ -0,0 +1,86 @@
package flags
import (
"strconv"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/pkg/credentials"
"github.com/alcionai/corso/src/pkg/storage"
)
// S3 bucket flags
const (
BucketFN = "bucket"
EndpointFN = "endpoint"
PrefixFN = "prefix"
DoNotUseTLSFN = "disable-tls"
DoNotVerifyTLSFN = "disable-tls-verification"
)
// S3 bucket flag values
var (
BucketFV string
EndpointFV string
PrefixFV string
DoNotUseTLSFV bool
DoNotVerifyTLSFV bool
)
// S3 bucket flags
func AddS3BucketFlags(cmd *cobra.Command) {
fs := cmd.Flags()
// Flags addition ordering should follow the order we want them to appear in help and docs:
// More generic and more frequently used flags take precedence.
fs.StringVar(&BucketFV, BucketFN, "", "Name of S3 bucket for repo. (required)")
fs.StringVar(&PrefixFV, PrefixFN, "", "Repo prefix within bucket.")
fs.StringVar(&EndpointFV, EndpointFN, "", "S3 service endpoint.")
fs.BoolVar(&DoNotUseTLSFV, DoNotUseTLSFN, false, "Disable TLS (HTTPS)")
fs.BoolVar(&DoNotVerifyTLSFV, DoNotVerifyTLSFN, false, "Disable TLS (HTTPS) certificate verification.")
}
func S3FlagOverrides(cmd *cobra.Command) map[string]string {
fs := GetPopulatedFlags(cmd)
return PopulateS3Flags(fs)
}
func PopulateS3Flags(flagset PopulatedFlags) map[string]string {
s3Overrides := map[string]string{
storage.StorageProviderTypeKey: storage.ProviderS3.String(),
}
if _, ok := flagset[AWSAccessKeyFN]; ok {
s3Overrides[credentials.AWSAccessKeyID] = AWSAccessKeyFV
}
if _, ok := flagset[AWSSecretAccessKeyFN]; ok {
s3Overrides[credentials.AWSSecretAccessKey] = AWSSecretAccessKeyFV
}
if _, ok := flagset[AWSSessionTokenFN]; ok {
s3Overrides[credentials.AWSSessionToken] = AWSSessionTokenFV
}
if _, ok := flagset[BucketFN]; ok {
s3Overrides[storage.Bucket] = BucketFV
}
if _, ok := flagset[PrefixFN]; ok {
s3Overrides[storage.Prefix] = PrefixFV
}
if _, ok := flagset[DoNotUseTLSFN]; ok {
s3Overrides[storage.DoNotUseTLS] = strconv.FormatBool(DoNotUseTLSFV)
}
if _, ok := flagset[DoNotVerifyTLSFN]; ok {
s3Overrides[storage.DoNotVerifyTLS] = strconv.FormatBool(DoNotVerifyTLSFV)
}
if _, ok := flagset[EndpointFN]; ok {
s3Overrides[storage.Endpoint] = EndpointFV
}
return s3Overrides
}

View File

@ -5,23 +5,41 @@ import (
)
const (
LibraryFN = "library"
ListFolderFN = "list"
ListItemFN = "list-item"
DataLibraries = "libraries"
DataPages = "pages"
DataLists = "lists"
)
const (
LibraryFN = "library"
ListFN = "list"
ListModifiedAfterFN = "list-modified-after"
ListModifiedBeforeFN = "list-modified-before"
ListCreatedAfterFN = "list-created-after"
ListCreatedBeforeFN = "list-created-before"
PageFolderFN = "page-folder"
PageFN = "page"
SiteFN = "site" // site only accepts WebURL values
SiteIDFN = "site-id" // site-id accepts actual site ids
SiteFN = "site" // site only accepts WebURL values
SiteIDFN = "site-id" // site-id accepts actual site ids
)
var (
LibraryFV string
ListFolderFV []string
ListItemFV []string
LibraryFV string
ListFV []string
ListModifiedAfterFV string
ListModifiedBeforeFV string
ListCreatedAfterFV string
ListCreatedBeforeFV string
PageFolderFV []string
PageFV []string
SiteIDFV []string
WebURLFV []string
SiteIDFV []string
WebURLFV []string
)
// AddSharePointDetailsAndRestoreFlags adds flags that are common to both the
@ -61,17 +79,26 @@ func AddSharePointDetailsAndRestoreFlags(cmd *cobra.Command) {
"Select files modified before this datetime.")
// lists
fs.StringSliceVar(
&ListFolderFV,
ListFolderFN, nil,
"Select lists by name; accepts '"+Wildcard+"' to select all lists.")
cobra.CheckErr(fs.MarkHidden(ListFolderFN))
fs.StringSliceVar(
&ListItemFV,
ListItemFN, nil,
"Select lists by item name; accepts '"+Wildcard+"' to select all lists.")
cobra.CheckErr(fs.MarkHidden(ListItemFN))
&ListFV,
ListFN, nil,
"Select lists by name.")
fs.StringVar(
&ListModifiedAfterFV,
ListModifiedAfterFN, "",
"Select lists modified after this datetime.")
fs.StringVar(
&ListModifiedBeforeFV,
ListModifiedBeforeFN, "",
"Select lists modified before this datetime.")
fs.StringVar(
&ListCreatedAfterFV,
ListCreatedAfterFN, "",
"Select lists created after this datetime.")
fs.StringVar(
&ListCreatedBeforeFV,
ListCreatedBeforeFN, "",
"Select lists created before this datetime.")
// pages
@ -90,24 +117,28 @@ func AddSharePointDetailsAndRestoreFlags(cmd *cobra.Command) {
// AddSiteIDFlag adds the --site-id flag, which accepts site ID values.
// This flag is hidden, since we expect users to prefer the --site url
// and do not want to encourage confusion.
func AddSiteIDFlag(cmd *cobra.Command) {
func AddSiteIDFlag(cmd *cobra.Command, multiple bool) {
fs := cmd.Flags()
message := "ID of the site to operate on"
if multiple {
//nolint:lll
message += "; accepts '" + Wildcard + "' to select all sites. Args cannot be comma-delimited and must use multiple flags."
}
// note string ARRAY var. IDs naturally contain commas, so we cannot accept
// duplicate values within a flag declaration. ie: --site-id a,b,c does not
// work. Users must call --site-id a --site-id b --site-id c.
fs.StringArrayVar(
&SiteIDFV,
SiteIDFN, nil,
//nolint:lll
"Backup data by site ID; accepts '"+Wildcard+"' to select all sites. Args cannot be comma-delimited and must use multiple flags.")
fs.StringArrayVar(&SiteIDFV, SiteIDFN, nil, message)
cobra.CheckErr(fs.MarkHidden(SiteIDFN))
}
// AddSiteFlag adds the --site flag, which accepts webURL values.
func AddSiteFlag(cmd *cobra.Command) {
cmd.Flags().StringSliceVar(
&WebURLFV,
SiteFN, nil,
"Backup data by site URL; accepts '"+Wildcard+"' to select all sites.")
func AddSiteFlag(cmd *cobra.Command, multiple bool) {
message := "Web URL of the site to operate on"
if multiple {
message += "; accepts '" + Wildcard + "' to select all sites."
}
cmd.Flags().StringSliceVar(&WebURLFV, SiteFN, nil, message)
}

28
src/cli/flags/teams.go Normal file
View File

@ -0,0 +1,28 @@
package flags
import (
"github.com/spf13/cobra"
)
const (
TeamFN = "team"
)
var TeamFV []string
func AddTeamDetailsAndRestoreFlags(cmd *cobra.Command) {
// TODO: implement flags
}
// AddTeamFlag adds the --team flag, which accepts id or name values.
// TODO: need to decide what the appropriate "name" to accept here is.
// keepers thinks its either DisplayName or MailNickname or Mail
// Mail is most accurate, MailNickame is accurate and shorter, but the end user
// may not see either one visibly.
// https://learn.microsoft.com/en-us/graph/api/team-list?view=graph-rest-1.0&tabs=http
func AddTeamFlag(cmd *cobra.Command) {
cmd.Flags().StringSliceVar(
&TeamFV,
TeamFN, nil,
"Backup data by team; accepts '"+Wildcard+"' to select all teams.")
}

View File

@ -0,0 +1,13 @@
package flags
import (
"github.com/spf13/cobra"
)
const (
DataChats = "chats"
)
func AddTeamsChatsDetailsAndRestoreFlags(cmd *cobra.Command) {
// TODO: add details flags
}

26
src/cli/flags/testdata/backup_list.go vendored Normal file
View File

@ -0,0 +1,26 @@
package testdata
import (
"testing"
"github.com/spf13/cobra"
"gotest.tools/v3/assert"
"github.com/alcionai/corso/src/cli/flags"
)
func PreparedBackupListFlags() []string {
return []string{
"--" + flags.AlertsFN, flags.Show,
"--" + flags.FailedItemsFN, flags.Show,
"--" + flags.SkippedItemsFN, flags.Show,
"--" + flags.RecoveredErrorsFN, flags.Show,
}
}
func AssertBackupListFlags(t *testing.T, cmd *cobra.Command) {
assert.Equal(t, flags.Show, flags.ListAlertsFV)
assert.Equal(t, flags.Show, flags.FailedItemsFV)
assert.Equal(t, flags.Show, flags.ListSkippedItemsFV)
assert.Equal(t, flags.Show, flags.ListRecoveredErrorsFV)
}

130
src/cli/flags/testdata/flags.go vendored Normal file
View File

@ -0,0 +1,130 @@
package testdata
import (
"strings"
"github.com/spf13/cobra"
)
func FlgInputs(in []string) string { return strings.Join(in, ",") }
var (
BackupInput = "backup-id"
SiteInput = "site-id"
GroupsInput = []string{"team1", "group2"}
MailboxInput = []string{"mailbox1", "mailbox2"}
UsersInput = []string{"users1", "users2"}
SiteIDInput = []string{"siteID1", "siteID2"}
WebURLInput = []string{"webURL1", "webURL2"}
ExchangeCategoryDataInput = []string{"email", "events", "contacts"}
SharepointCategoryDataInput = []string{"files", "lists", "pages"}
GroupsCategoryDataInput = []string{"files", "lists", "pages", "messages"}
TeamsChatsCategoryDataInput = []string{"chats"}
ChannelInput = []string{"channel1", "channel2"}
MessageInput = []string{"message1", "message2"}
MessageCreatedAfterInput = "messageCreatedAfter"
MessageCreatedBeforeInput = "messageCreatedBefore"
MessageLastReplyAfterInput = "messageLastReplyAfter"
MessageLastReplyBeforeInput = "messageLastReplyBefore"
ContactInput = []string{"contact1", "contact2"}
ContactFldInput = []string{"contactFld1", "contactFld2"}
ContactNameInput = "contactName"
ConversationInput = []string{"conversation1", "conversation2"}
PostInput = []string{"post1", "post2"}
EmailInput = []string{"mail1", "mail2"}
EmailFldInput = []string{"mailFld1", "mailFld2"}
EmailReceivedAfterInput = "mailReceivedAfter"
EmailReceivedBeforeInput = "mailReceivedBefore"
EmailSenderInput = "mailSender"
EmailSubjectInput = "mailSubject"
EventInput = []string{"event1", "event2"}
EventCalInput = []string{"eventCal1", "eventCal2"}
EventOrganizerInput = "eventOrganizer"
EventRecursInput = "eventRecurs"
EventStartsAfterInput = "eventStartsAfter"
EventStartsBeforeInput = "eventStartsBefore"
EventSubjectInput = "eventSubject"
LibraryInput = "library"
FileNameInput = []string{"fileName1", "fileName2"}
FolderPathInput = []string{"folderPath1", "folderPath2"}
FileCreatedAfterInput = "fileCreatedAfter"
FileCreatedBeforeInput = "fileCreatedBefore"
FileModifiedAfterInput = "fileModifiedAfter"
FileModifiedBeforeInput = "fileModifiedBefore"
ListsInput = []string{"listName1", "listName2"}
ListCreatedAfterInput = "listCreatedAfter"
ListCreatedBeforeInput = "listCreatedBefore"
ListModifiedAfterInput = "listModifiedAfter"
ListModifiedBeforeInput = "listModifiedBefore"
PageFolderInput = []string{"pageFolder1", "pageFolder2"}
PageInput = []string{"page1", "page2"}
Collisions = "collisions"
Destination = "destination"
ToResource = "toResource"
SkipPermissions = false
DeltaPageSize = "7"
Archive = true
FormatType = "json"
AzureClientID = "testAzureClientId"
AzureTenantID = "testAzureTenantId"
AzureClientSecret = "testAzureClientSecret"
AWSAccessKeyID = "testAWSAccessKeyID"
AWSSecretAccessKey = "testAWSSecretAccessKey"
AWSSessionToken = "testAWSSessionToken"
CorsoPassphrase = "testCorsoPassphrase"
RestoreDestination = "test-restore-destination"
FetchParallelism = "3"
FailFast = true
DisableIncrementals = true
ForceItemDataDownload = true
DisableDelta = true
EnableImmutableID = true
)
func WithFlags2(
cc *cobra.Command,
command string,
flagSets ...[]string,
) {
args := []string{command}
for _, sl := range flagSets {
args = append(args, sl...)
}
cc.SetArgs(args)
}
func WithFlags(
command string,
flagSets ...[]string,
) func(*cobra.Command) {
return func(cc *cobra.Command) {
args := []string{command}
for _, sl := range flagSets {
args = append(args, sl...)
}
cc.SetArgs(args)
}
}

42
src/cli/flags/testdata/groups.go vendored Normal file
View File

@ -0,0 +1,42 @@
package testdata
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/alcionai/corso/src/cli/flags"
)
func PreparedChannelFlags() []string {
return []string{
"--" + flags.ChannelFN, FlgInputs(ChannelInput),
"--" + flags.MessageFN, FlgInputs(MessageInput),
"--" + flags.MessageCreatedAfterFN, MessageCreatedAfterInput,
"--" + flags.MessageCreatedBeforeFN, MessageCreatedBeforeInput,
"--" + flags.MessageLastReplyAfterFN, MessageLastReplyAfterInput,
"--" + flags.MessageLastReplyBeforeFN, MessageLastReplyBeforeInput,
}
}
func AssertChannelFlags(t *testing.T, cmd *cobra.Command) {
assert.ElementsMatch(t, ChannelInput, flags.ChannelFV)
assert.ElementsMatch(t, MessageInput, flags.MessageFV)
assert.Equal(t, MessageCreatedAfterInput, flags.MessageCreatedAfterFV)
assert.Equal(t, MessageCreatedBeforeInput, flags.MessageCreatedBeforeFV)
assert.Equal(t, MessageLastReplyAfterInput, flags.MessageLastReplyAfterFV)
assert.Equal(t, MessageLastReplyBeforeInput, flags.MessageLastReplyBeforeFV)
}
func PreparedConversationFlags() []string {
return []string{
"--" + flags.ConversationFN, FlgInputs(ConversationInput),
"--" + flags.PostFN, FlgInputs(PostInput),
}
}
func AssertConversationFlags(t *testing.T, cmd *cobra.Command) {
assert.Equal(t, ConversationInput, flags.ConversationFV)
assert.Equal(t, PostInput, flags.PostFV)
}

56
src/cli/flags/testdata/repo.go vendored Normal file
View File

@ -0,0 +1,56 @@
package testdata
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/alcionai/corso/src/cli/flags"
)
func PreparedStorageFlags() []string {
return []string{
"--" + flags.AWSAccessKeyFN, AWSAccessKeyID,
"--" + flags.AWSSecretAccessKeyFN, AWSSecretAccessKey,
"--" + flags.AWSSessionTokenFN, AWSSessionToken,
"--" + flags.PassphraseFN, CorsoPassphrase,
}
}
func AssertStorageFlags(t *testing.T, cmd *cobra.Command) {
assert.Equal(t, AWSAccessKeyID, flags.AWSAccessKeyFV)
assert.Equal(t, AWSSecretAccessKey, flags.AWSSecretAccessKeyFV)
assert.Equal(t, AWSSessionToken, flags.AWSSessionTokenFV)
assert.Equal(t, CorsoPassphrase, flags.PassphraseFV)
}
func PreparedProviderFlags() []string {
return []string{
"--" + flags.AzureClientIDFN, AzureClientID,
"--" + flags.AzureClientTenantFN, AzureTenantID,
"--" + flags.AzureClientSecretFN, AzureClientSecret,
}
}
func AssertProviderFlags(t *testing.T, cmd *cobra.Command) {
assert.Equal(t, AzureClientID, flags.AzureClientIDFV)
assert.Equal(t, AzureTenantID, flags.AzureClientTenantFV)
assert.Equal(t, AzureClientSecret, flags.AzureClientSecretFV)
}
func PreparedGenericBackupFlags() []string {
return []string{
"--" + flags.FailFastFN,
"--" + flags.DisableIncrementalsFN,
"--" + flags.ForceItemDataDownloadFN,
}
}
func AssertGenericBackupFlags(t *testing.T, cmd *cobra.Command) {
assert.True(t, flags.FailFastFV, "fail fast flag")
assert.True(t, flags.DisableIncrementalsFV, "disable incrementals flag")
assert.True(t, flags.ForceItemDataDownloadFV, "force item data download flag")
}

32
src/cli/flags/testdata/sharepoint.go vendored Normal file
View File

@ -0,0 +1,32 @@
package testdata
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/alcionai/corso/src/cli/flags"
)
func PreparedLibraryFlags() []string {
return []string{
"--" + flags.LibraryFN, LibraryInput,
"--" + flags.FolderFN, FlgInputs(FolderPathInput),
"--" + flags.FileFN, FlgInputs(FileNameInput),
"--" + flags.FileCreatedAfterFN, FileCreatedAfterInput,
"--" + flags.FileCreatedBeforeFN, FileCreatedBeforeInput,
"--" + flags.FileModifiedAfterFN, FileModifiedAfterInput,
"--" + flags.FileModifiedBeforeFN, FileModifiedBeforeInput,
}
}
func AssertLibraryFlags(t *testing.T, cmd *cobra.Command) {
assert.Equal(t, LibraryInput, flags.LibraryFV)
assert.Equal(t, FolderPathInput, flags.FolderPathFV)
assert.Equal(t, FileNameInput, flags.FileNameFV)
assert.Equal(t, FileCreatedAfterInput, flags.FileCreatedAfterFV)
assert.Equal(t, FileCreatedBeforeInput, flags.FileCreatedBeforeFV)
assert.Equal(t, FileModifiedAfterInput, flags.FileModifiedAfterFV)
assert.Equal(t, FileModifiedBeforeInput, flags.FileModifiedBeforeFV)
}

25
src/cli/flags/testdata/teamschats.go vendored Normal file
View File

@ -0,0 +1,25 @@
package testdata
import (
"testing"
"github.com/spf13/cobra"
)
func PreparedTeamsChatsFlags() []string {
return []string{
// FIXME: populate when adding filters
// "--" + flags.ChatCreatedAfterFN, ChatCreatedAfterInput,
// "--" + flags.ChatCreatedBeforeFN, ChatCreatedBeforeInput,
// "--" + flags.ChatLastMessageAfterFN, ChatLastMessageAfterInput,
// "--" + flags.ChatLastMessageBeforeFN, ChatLastMessageBeforeInput,
}
}
func AssertTeamsChatsFlags(t *testing.T, cmd *cobra.Command) {
// FIXME: populate when adding filters
// assert.Equal(t, ChatCreatedAfterInput, flags.ChatCreatedAfterFV)
// assert.Equal(t, ChatCreatedBeforeInput, flags.ChatCreatedBeforeFV)
// assert.Equal(t, ChatLastMessageAfterInput, flags.ChatLastMessageAfterFV)
// assert.Equal(t, ChatLastMessageBeforeInput, flags.ChatLastMessageBeforeFV)
}

View File

@ -46,11 +46,12 @@ func (ev envVar) MinimumPrintable() any {
return ev
}
func (ev envVar) Headers() []string {
func (ev envVar) Headers(bool) []string {
// NOTE: skipID does not make sense in this context
return []string{ev.category, " "}
}
func (ev envVar) Values() []string {
func (ev envVar) Values(bool) []string {
return []string{ev.name, ev.description}
}
@ -93,8 +94,7 @@ func envGuide(cmd *cobra.Command, args []string) {
Info(ctx,
"\n--- Environment Variable Guide ---\n",
"As a best practice, Corso retrieves credentials and sensitive information from environment variables.\n ",
"\n",
)
"\n")
Table(ctx, toPrintable(corsoEVs))
Info(ctx, "\n")
Table(ctx, toPrintable(azureEVs))

View File

@ -5,10 +5,14 @@ import (
"encoding/json"
"fmt"
"io"
"strings"
"github.com/spf13/cobra"
"github.com/tidwall/pretty"
"github.com/tomlazar/table"
"github.com/alcionai/corso/src/internal/common/color"
"github.com/alcionai/corso/src/internal/observe"
)
var (
@ -81,67 +85,89 @@ func Only(ctx context.Context, e error) error {
// Err prints the params to cobra's error writer (stdErr by default)
// if s is nil, prints nothing.
// Prepends the message with "Error: "
func Err(ctx context.Context, s ...any) {
out(getRootCmd(ctx).ErrOrStderr(), s...)
cw := color.NewColorableWriter(color.Red, getRootCmd(ctx).ErrOrStderr())
s = append([]any{"Error:"}, s...)
out(ctx, cw, s...)
}
// Errf prints the params to cobra's error writer (stdErr by default)
// if s is nil, prints nothing.
// Prepends the message with "Error: "
// You should ideally be using SimpleError or OperationError.
func Errf(ctx context.Context, tmpl string, s ...any) {
outf(getRootCmd(ctx).ErrOrStderr(), "Error: "+tmpl, s...)
cw := color.NewColorableWriter(color.Red, getRootCmd(ctx).ErrOrStderr())
tmpl = "Error: " + tmpl
outf(ctx, cw, tmpl, s...)
}
// Out prints the params to cobra's output writer (stdOut by default)
// if s is nil, prints nothing.
func Out(ctx context.Context, s ...any) {
out(getRootCmd(ctx).OutOrStdout(), s...)
out(ctx, getRootCmd(ctx).OutOrStdout(), s...)
}
// Out prints the formatted strings to cobra's output writer (stdOut by default)
// if t is empty, prints nothing.
func Outf(ctx context.Context, t string, s ...any) {
outf(getRootCmd(ctx).OutOrStdout(), t, s...)
outf(ctx, getRootCmd(ctx).OutOrStdout(), t, s...)
}
// Info prints the params to cobra's error writer (stdErr by default)
// if s is nil, prints nothing.
func Info(ctx context.Context, s ...any) {
out(getRootCmd(ctx).ErrOrStderr(), s...)
out(ctx, getRootCmd(ctx).ErrOrStderr(), s...)
}
// Info prints the formatted strings to cobra's error writer (stdErr by default)
// if t is empty, prints nothing.
func Infof(ctx context.Context, t string, s ...any) {
outf(getRootCmd(ctx).ErrOrStderr(), t, s...)
outf(ctx, getRootCmd(ctx).ErrOrStderr(), t, s...)
}
// Pretty prettifies and prints the value.
func Pretty(ctx context.Context, a any) {
if a == nil {
Err(ctx, "<nil>")
return
}
printPrettyJSON(ctx, getRootCmd(ctx).ErrOrStderr(), a)
}
// PrettyJSON prettifies and prints the value.
func PrettyJSON(ctx context.Context, p minimumPrintabler) {
if p == nil {
Err(ctx, "<nil>")
return
}
outputJSON(getRootCmd(ctx).ErrOrStderr(), p, outputAsJSONDebug)
outputJSON(ctx, getRootCmd(ctx).ErrOrStderr(), p, outputAsJSONDebug)
}
// out is the testable core of exported print funcs
func out(w io.Writer, s ...any) {
func out(ctx context.Context, w io.Writer, s ...any) {
if len(s) == 0 {
return
}
// observe bars needs to be flushed before printing
observe.Flush(ctx)
fmt.Fprint(w, s...)
fmt.Fprintf(w, "\n")
}
// outf is the testable core of exported print funcs
func outf(w io.Writer, t string, s ...any) {
func outf(ctx context.Context, w io.Writer, t string, s ...any) {
if len(t) == 0 {
return
}
// observe bars needs to be flushed before printing
observe.Flush(ctx)
fmt.Fprintf(w, t, s...)
fmt.Fprintf(w, "\n")
}
@ -153,11 +179,11 @@ func outf(w io.Writer, t string, s ...any) {
type Printable interface {
minimumPrintabler
// should list the property names of the values surfaced in Values()
Headers() []string
Headers(skipID bool) []string
// list of values for tabular or csv formatting
// if the backing data is nil or otherwise missing,
// values should provide an empty string as opposed to skipping entries
Values() []string
Values(skipID bool) []string
}
type minimumPrintabler interface {
@ -167,39 +193,56 @@ type minimumPrintabler interface {
// Item prints the printable, according to the caller's requested format.
func Item(ctx context.Context, p Printable) {
printItem(getRootCmd(ctx).OutOrStdout(), p)
printItem(ctx, getRootCmd(ctx).OutOrStdout(), p)
}
// print prints the printable items,
// according to the caller's requested format.
func printItem(w io.Writer, p Printable) {
func printItem(ctx context.Context, w io.Writer, p Printable) {
if outputAsJSON || outputAsJSONDebug {
outputJSON(w, p, outputAsJSONDebug)
outputJSON(ctx, w, p, outputAsJSONDebug)
return
}
outputTable(w, []Printable{p})
outputTable(ctx, w, []Printable{p})
}
// ItemProperties prints the printable either as in a single line or a json
// The difference between this and Item is that this one does not print the ID
func ItemProperties(ctx context.Context, p Printable) {
printItemProperties(ctx, getRootCmd(ctx).OutOrStdout(), p)
}
// print prints the printable items,
// according to the caller's requested format.
func printItemProperties(ctx context.Context, w io.Writer, p Printable) {
if outputAsJSON || outputAsJSONDebug {
outputJSON(ctx, w, p, outputAsJSONDebug)
return
}
outputOneLine(ctx, w, []Printable{p})
}
// All prints the slice of printable items,
// according to the caller's requested format.
func All(ctx context.Context, ps ...Printable) {
printAll(getRootCmd(ctx).OutOrStdout(), ps)
printAll(ctx, getRootCmd(ctx).OutOrStdout(), ps)
}
// printAll prints the slice of printable items,
// according to the caller's requested format.
func printAll(w io.Writer, ps []Printable) {
func printAll(ctx context.Context, w io.Writer, ps []Printable) {
if len(ps) == 0 {
return
}
if outputAsJSON || outputAsJSONDebug {
outputJSONArr(w, ps, outputAsJSONDebug)
outputJSONArr(ctx, w, ps, outputAsJSONDebug)
return
}
outputTable(w, ps)
outputTable(ctx, w, ps)
}
// ------------------------------------------------------------------------------------------
@ -209,20 +252,23 @@ func printAll(w io.Writer, ps []Printable) {
// Table writes the printables in a tabular format. Takes headers from
// the 0th printable only.
func Table(ctx context.Context, ps []Printable) {
outputTable(getRootCmd(ctx).OutOrStdout(), ps)
outputTable(ctx, getRootCmd(ctx).OutOrStdout(), ps)
}
// output to stdout the list of printable structs in a table
func outputTable(w io.Writer, ps []Printable) {
func outputTable(ctx context.Context, w io.Writer, ps []Printable) {
t := table.Table{
Headers: ps[0].Headers(),
Headers: ps[0].Headers(false),
Rows: [][]string{},
}
for _, p := range ps {
t.Rows = append(t.Rows, p.Values())
t.Rows = append(t.Rows, p.Values(false))
}
// observe bars needs to be flushed before printing
observe.Flush(ctx)
_ = t.WriteTable(
w,
&table.Config{
@ -236,20 +282,20 @@ func outputTable(w io.Writer, ps []Printable) {
// JSON
// ------------------------------------------------------------------------------------------
func outputJSON(w io.Writer, p minimumPrintabler, debug bool) {
func outputJSON(ctx context.Context, w io.Writer, p minimumPrintabler, debug bool) {
if debug {
printJSON(w, p)
printJSON(ctx, w, p)
return
}
if debug {
printJSON(w, p)
printJSON(ctx, w, p)
} else {
printJSON(w, p.MinimumPrintable())
printJSON(ctx, w, p.MinimumPrintable())
}
}
func outputJSONArr(w io.Writer, ps []Printable, debug bool) {
func outputJSONArr(ctx context.Context, w io.Writer, ps []Printable, debug bool) {
sl := make([]any, 0, len(ps))
for _, p := range ps {
@ -260,11 +306,14 @@ func outputJSONArr(w io.Writer, ps []Printable, debug bool) {
}
}
printJSON(w, sl)
printJSON(ctx, w, sl)
}
// output to stdout the list of printable structs as json.
func printJSON(w io.Writer, a any) {
func printJSON(ctx context.Context, w io.Writer, a any) {
// observe bars needs to be flushed before printing
observe.Flush(ctx)
bs, err := json.Marshal(a)
if err != nil {
fmt.Fprintf(w, "error formatting results to json: %v\n", err)
@ -273,3 +322,45 @@ func printJSON(w io.Writer, a any) {
fmt.Fprintln(w, string(pretty.Pretty(bs)))
}
// output to stdout the list of printable structs as prettified json.
func printPrettyJSON(ctx context.Context, w io.Writer, a any) {
// observe bars needs to be flushed before printing
observe.Flush(ctx)
bs, err := json.MarshalIndent(a, "", " ")
if err != nil {
fmt.Fprintf(w, "error formatting results to json: %v\n", err)
return
}
fmt.Fprintln(w, string(pretty.Pretty(bs)))
}
// -------------------------------------------------------------------------------------------
// One line
// -------------------------------------------------------------------------------------------
// Output in the following format:
// Bytes Uploaded: 401 kB | Items Uploaded: 59 | Items Skipped: 0 | Errors: 0
func outputOneLine(ctx context.Context, w io.Writer, ps []Printable) {
// observe bars needs to be flushed before printing
observe.Flush(ctx)
headers := ps[0].Headers(true)
rows := [][]string{}
for _, p := range ps {
rows = append(rows, p.Values(true))
}
printables := []string{}
for _, row := range rows {
for i, col := range row {
printables = append(printables, fmt.Sprintf("%s: %s", headers[i], col))
}
}
fmt.Fprintln(w, strings.Join(printables, " | "))
}

View File

@ -36,20 +36,28 @@ func (suite *PrintUnitSuite) TestOnly() {
func (suite *PrintUnitSuite) TestOut() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
b := bytes.Buffer{}
msg := "I have seen the fnords!"
out(&b, msg)
out(ctx, &b, msg)
assert.Contains(t, b.String(), msg)
}
func (suite *PrintUnitSuite) TestOutf() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
b := bytes.Buffer{}
msg := "I have seen the fnords!"
msg2 := "smarf"
outf(&b, msg, msg2)
outf(ctx, &b, msg, msg2)
bs := b.String()
assert.Contains(t, bs, msg)
assert.Contains(t, bs, msg2)

217
src/cli/repo/filesystem.go Normal file
View File

@ -0,0 +1,217 @@
package repo
import (
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/events"
"github.com/alcionai/corso/src/pkg/config"
ctrlRepo "github.com/alcionai/corso/src/pkg/control/repository"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
)
const (
fsProviderCommand = "filesystem"
fsProviderCmdUseSuffix = "--path <path>"
)
const (
fsProviderCmdInitExamples = `# Create a new Corso repository on local or network attached storage
corso repo init filesystem --path /tmp/corso-repo`
fsProviderCmdConnectExamples = `# Connect to a Corso repository on local or network attached storage
corso repo connect filesystem --path /tmp/corso-repo`
)
func addFilesystemCommands(cmd *cobra.Command) *cobra.Command {
var c *cobra.Command
switch cmd.Use {
case initCommand:
init := filesystemInitCmd()
c, _ = utils.AddCommand(cmd, init)
case connectCommand:
c, _ = utils.AddCommand(cmd, filesystemConnectCmd())
}
c.Use = c.Use + " " + fsProviderCmdUseSuffix
c.SetUsageTemplate(cmd.UsageTemplate())
flags.AddFilesystemFlags(c)
return c
}
// `corso repo init filesystem [<flag>...]`
func filesystemInitCmd() *cobra.Command {
return &cobra.Command{
Use: fsProviderCommand,
Short: "Initialize a repository on local or network storage.",
Long: `Bootstraps a new repository on local or network storage and connects it to your m365 account.`,
RunE: initFilesystemCmd,
Args: cobra.NoArgs,
Example: fsProviderCmdInitExamples,
}
}
// initializes a filesystem repo.
func initFilesystemCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
overrides := flags.FilesystemFlagOverrides(cmd)
// TODO(pandeyabs): Move filepath conversion to FilesystemConfig scope.
abs, err := utils.MakeAbsoluteFilePath(overrides[flags.FilesystemPathFN])
if err != nil {
return Only(ctx, clues.Wrap(err, "getting absolute repo path"))
}
overrides[flags.FilesystemPathFN] = abs
cfg, err := config.ReadCorsoConfig(
ctx,
storage.ProviderFilesystem,
true,
false,
flags.FilesystemFlagOverrides(cmd))
if err != nil {
return Only(ctx, err)
}
opt := utils.ControlWithConfig(cfg)
// Retention is not supported for filesystem repos.
retentionOpts := ctrlRepo.Retention{}
storageCfg, err := cfg.Storage.ToFilesystemConfig()
if err != nil {
return Only(ctx, clues.Wrap(err, "Retrieving filesystem configuration"))
}
m365, err := cfg.Account.M365Config()
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to parse m365 account config"))
}
r, err := repository.New(
ctx,
cfg.Account,
cfg.Storage,
opt,
repository.NewRepoID)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to construct the repository controller"))
}
ric := repository.InitConfig{RetentionOpts: retentionOpts}
if err = r.Initialize(ctx, ric); err != nil {
return Only(ctx, clues.Stack(ErrInitializingRepo, err))
}
defer utils.CloseRepo(ctx, r)
Infof(ctx, "Initialized a repository at path %s", storageCfg.Path)
err = config.WriteRepoConfig(
ctx,
storageCfg,
m365,
opt.Repo,
r.GetID())
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to write repository configuration"))
}
return nil
}
// ---------------------------------------------------------------------------------------------------------
// Connect
// ---------------------------------------------------------------------------------------------------------
// `corso repo connect filesystem [<flag>...]`
func filesystemConnectCmd() *cobra.Command {
return &cobra.Command{
Use: fsProviderCommand,
Short: "Connect to a repository on local or network storage.",
Long: `Ensures a connection to an existing repository on local or network storage.`,
RunE: connectFilesystemCmd,
Args: cobra.NoArgs,
Example: fsProviderCmdConnectExamples,
}
}
// connects to an existing filesystem repo.
func connectFilesystemCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
overrides := flags.FilesystemFlagOverrides(cmd)
// TODO(pandeyabs): Move filepath conversion to FilesystemConfig scope.
abs, err := utils.MakeAbsoluteFilePath(overrides[flags.FilesystemPathFN])
if err != nil {
return Only(ctx, clues.Wrap(err, "getting absolute repo path"))
}
overrides[flags.FilesystemPathFN] = abs
cfg, err := config.ReadCorsoConfig(
ctx,
storage.ProviderFilesystem,
true,
true,
overrides)
if err != nil {
return Only(ctx, err)
}
repoID := cfg.RepoID
if len(repoID) == 0 {
repoID = events.RepoIDNotFound
}
storageCfg, err := cfg.Storage.ToFilesystemConfig()
if err != nil {
return Only(ctx, clues.Wrap(err, "Retrieving filesystem configuration"))
}
m365, err := cfg.Account.M365Config()
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to parse m365 account config"))
}
opts := utils.ControlWithConfig(cfg)
r, err := repository.New(
ctx,
cfg.Account,
cfg.Storage,
opts,
repoID)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to create a repository controller"))
}
if err := r.Connect(ctx, repository.ConnConfig{}); err != nil {
return Only(ctx, clues.Stack(ErrConnectingRepo, err))
}
defer utils.CloseRepo(ctx, r)
Infof(ctx, "Connected to repository at path %s", storageCfg.Path)
err = config.WriteRepoConfig(
ctx,
storageCfg,
m365,
opts.Repo,
r.GetID())
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to write repository configuration"))
}
return nil
}

View File

@ -0,0 +1,155 @@
package repo_test
import (
"os"
"testing"
"github.com/alcionai/clues"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/flags"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
type FilesystemE2ESuite struct {
tester.Suite
}
func TestFilesystemE2ESuite(t *testing.T) {
suite.Run(t, &FilesystemE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *FilesystemE2ESuite) TestInitFilesystemCmd() {
table := []struct {
name string
hasConfigFile bool
}{
{
name: "NoConfigFile",
hasConfigFile: false,
},
{
name: "hasConfigFile",
hasConfigFile: true,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
st := storeTD.NewFilesystemStorage(t)
cfg, err := st.ToFilesystemConfig()
require.NoError(t, err, clues.ToCore(err))
force := map[string]string{
tconfig.TestCfgStorageProvider: storage.ProviderFilesystem.String(),
}
vpr, configFP := tconfig.MakeTempTestConfigClone(t, force)
if !test.hasConfigFile {
// Ideally we could use `/dev/null`, but you need a
// toml file plus this works cross platform
os.Remove(configFP)
}
ctx = config.SetViper(ctx, vpr)
cmd := cliTD.StubRootCmd(
"repo", "init", "filesystem",
"--"+flags.ConfigFileFN, configFP,
"--path", cfg.Path)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// noop
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
})
}
}
func (suite *FilesystemE2ESuite) TestConnectFilesystemCmd() {
table := []struct {
name string
hasConfigFile bool
}{
{
name: "NoConfigFile",
hasConfigFile: false,
},
{
name: "HasConfigFile",
hasConfigFile: true,
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
st := storeTD.NewFilesystemStorage(t)
cfg, err := st.ToFilesystemConfig()
require.NoError(t, err, clues.ToCore(err))
force := map[string]string{
tconfig.TestCfgAccountProvider: account.ProviderM365.String(),
tconfig.TestCfgStorageProvider: storage.ProviderFilesystem.String(),
tconfig.TestCfgFilesystemPath: cfg.Path,
}
vpr, configFP := tconfig.MakeTempTestConfigClone(t, force)
if !test.hasConfigFile {
// Ideally we could use `/dev/null`, but you need a
// toml file plus this works cross platform
os.Remove(configFP)
}
ctx = config.SetViper(ctx, vpr)
// init the repo first
r, err := repository.New(
ctx,
tconfig.NewM365Account(t),
st,
control.DefaultOptions(),
repository.NewRepoID)
require.NoError(t, err, clues.ToCore(err))
err = r.Initialize(ctx, repository.InitConfig{})
require.NoError(t, err, clues.ToCore(err))
// then test it
cmd := cliTD.StubRootCmd(
"repo", "connect", "filesystem",
"--"+flags.ConfigFileFN, configFP,
"--path", cfg.Path)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
})
}
}

View File

@ -0,0 +1,53 @@
package repo
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/internal/tester"
)
type FilesystemSuite struct {
tester.Suite
}
func TestFilesystemSuite(t *testing.T) {
suite.Run(t, &FilesystemSuite{Suite: tester.NewUnitSuite(t)})
}
func (suite *FilesystemSuite) TestAddFilesystemCommands() {
expectUse := fsProviderCommand + " " + fsProviderCmdUseSuffix
table := []struct {
name string
use string
expectUse string
expectShort string
expectRunE func(*cobra.Command, []string) error
}{
{"init filesystem", initCommand, expectUse, filesystemInitCmd().Short, initFilesystemCmd},
{"connect filesystem", connectCommand, expectUse, filesystemConnectCmd().Short, connectFilesystemCmd},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
cmd := &cobra.Command{Use: test.use}
c := addFilesystemCommands(cmd)
require.NotNil(t, c)
cmds := cmd.Commands()
require.Len(t, cmds, 1)
child := cmds[0]
assert.Equal(t, test.expectUse, child.Use)
assert.Equal(t, test.expectShort, child.Short)
tester.AreSameFunc(t, test.expectRunE, child.RunE)
})
}
}

View File

@ -8,19 +8,34 @@ import (
"golang.org/x/exp/maps"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/print"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/events"
"github.com/alcionai/corso/src/pkg/control/repository"
"github.com/alcionai/corso/src/pkg/path"
repo "github.com/alcionai/corso/src/pkg/repository"
)
const (
initCommand = "init"
connectCommand = "connect"
maintenanceCommand = "maintenance"
initCommand = "init"
connectCommand = "connect"
updatePassphraseCommand = "update-passphrase"
MaintenanceCommand = "maintenance"
)
const (
providerCommandUpdatePhasephraseExamples = `# Update the Corso repository passphrase"
corso repo update-passphrase --new-passphrase 'newpass'`
)
var (
ErrConnectingRepo = clues.New("connecting repository")
ErrInitializingRepo = clues.New("initializing repository")
)
var repoCommands = []func(cmd *cobra.Command) *cobra.Command{
addS3Commands,
addFilesystemCommands,
}
// AddCommands attaches all `corso repo * *` commands to the parent.
@ -28,23 +43,25 @@ func AddCommands(cmd *cobra.Command) {
var (
// Get new instances so that setting the context during tests works
// properly.
repoCmd = repoCmd()
initCmd = initCmd()
connectCmd = connectCmd()
maintenanceCmd = maintenanceCmd()
repoCmd = repoCmd()
initCmd = initCmd()
connectCmd = connectCmd()
maintenanceCmd = maintenanceCmd()
updatePassphraseCmd = updatePassphraseCmd()
)
cmd.AddCommand(repoCmd)
repoCmd.AddCommand(initCmd)
repoCmd.AddCommand(connectCmd)
repoCmd.AddCommand(maintenanceCmd)
repoCmd.AddCommand(updatePassphraseCmd)
utils.AddCommand(
repoCmd,
maintenanceCmd,
utils.HideCommand(),
utils.MarkPreReleaseCommand())
flags.AddMaintenanceModeFlag(maintenanceCmd)
flags.AddForceMaintenanceFlag(maintenanceCmd)
flags.AddMaintenanceUserFlag(maintenanceCmd)
flags.AddMaintenanceHostnameFlag(maintenanceCmd)
flags.AddUpdatePassphraseFlags(updatePassphraseCmd, true)
for _, addRepoTo := range repoCommands {
addRepoTo(initCmd)
@ -58,7 +75,7 @@ func repoCmd() *cobra.Command {
return &cobra.Command{
Use: "repo",
Short: "Manage your repositories",
Long: `Initialize, configure, and connect to your account backup repositories.`,
Long: `Initialize, configure, connect and update to your account backup repositories`,
RunE: handleRepoCmd,
Args: cobra.NoArgs,
}
@ -106,7 +123,7 @@ func handleConnectCmd(cmd *cobra.Command, args []string) error {
func maintenanceCmd() *cobra.Command {
return &cobra.Command{
Use: maintenanceCommand,
Use: MaintenanceCommand,
Short: "Run maintenance on an existing repository",
Long: `Run maintenance on an existing repository to optimize performance and storage use`,
RunE: handleMaintenanceCmd,
@ -122,9 +139,14 @@ func handleMaintenanceCmd(cmd *cobra.Command, args []string) error {
return err
}
r, _, _, err := utils.GetAccountAndConnect(ctx, S3Overrides())
r, _, err := utils.AccountConnectAndWriteRepoConfig(
ctx,
cmd,
// Need to give it a valid service so it won't error out on us even though
// we don't need the graph client.
path.OneDriveService)
if err != nil {
return print.Only(ctx, err)
return Only(ctx, err)
}
defer utils.CloseRepo(ctx, r)
@ -137,12 +159,12 @@ func handleMaintenanceCmd(cmd *cobra.Command, args []string) error {
Force: flags.ForceMaintenanceFV,
})
if err != nil {
return print.Only(ctx, err)
return Only(ctx, err)
}
err = m.Run(ctx)
if err != nil {
return print.Only(ctx, err)
return Only(ctx, err)
}
return nil
@ -165,3 +187,55 @@ func getMaintenanceType(t string) (repository.MaintenanceType, error) {
return res, nil
}
// The repo update subcommand.
// `corso repo update-passphrase [<flag>...]`
func updatePassphraseCmd() *cobra.Command {
return &cobra.Command{
Use: updatePassphraseCommand,
Short: "Update the repository passphrase",
Long: `Update the repository passphrase`,
RunE: handleUpdateCmd,
Args: cobra.NoArgs,
Example: providerCommandUpdatePhasephraseExamples,
}
}
// Handler for calls to `corso repo update-password`.
func handleUpdateCmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
// Need to give it a valid service so it won't error out on us even though
// we don't need the graph client.
repos, rdao, err := utils.GetAccountAndConnect(ctx, cmd, path.OneDriveService)
if err != nil {
return Only(ctx, err)
}
opts := rdao.Opts
defer utils.CloseRepo(ctx, repos)
repoID := repos.GetID()
if len(repoID) == 0 {
repoID = events.RepoIDNotFound
}
r, err := repo.New(
ctx,
rdao.Repo.Account,
rdao.Repo.Storage,
opts,
repoID)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to create a repository controller"))
}
if err := r.UpdatePassword(ctx, flags.NewPhasephraseFV); err != nil {
return Only(ctx, clues.Wrap(err, "Failed to update s3"))
}
Infof(ctx, "Updated repo password.")
return nil
}

View File

@ -1,14 +1,23 @@
package repo
package repo_test
import (
"testing"
"github.com/alcionai/clues"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/cli/repo"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/storage"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
type RepoUnitSuite struct {
@ -23,7 +32,7 @@ func (suite *RepoUnitSuite) TestAddRepoCommands() {
t := suite.T()
cmd := &cobra.Command{}
AddCommands(cmd)
repo.AddCommands(cmd)
var found bool
@ -32,10 +41,95 @@ func (suite *RepoUnitSuite) TestAddRepoCommands() {
require.Len(t, repoCmds, 1)
for _, c := range repoCmds[0].Commands() {
if c.Use == maintenanceCommand {
if c.Use == repo.MaintenanceCommand {
found = true
}
}
assert.True(t, found, "looking for maintenance command")
}
type RepoE2ESuite struct {
tester.Suite
}
func TestRepoE2ESuite(t *testing.T) {
suite.Run(t, &RepoE2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *RepoE2ESuite) TestUpdatePassphraseCmd() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
st := storeTD.NewPrefixedS3Storage(t)
sc, err := st.StorageConfig()
require.NoError(t, err, clues.ToCore(err))
cfg := sc.(*storage.S3Config)
vpr, configFP := tconfig.MakeTempTestConfigClone(t, nil)
ctx = config.SetViper(ctx, vpr)
cmd := cliTD.StubRootCmd(
"repo", "init", "s3",
"--"+flags.ConfigFileFN, configFP,
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// connect with old passphrase
cmd = cliTD.StubRootCmd(
"repo", "connect", "s3",
"--"+flags.ConfigFileFN, configFP,
"--bucket", cfg.Bucket,
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
cmd = cliTD.StubRootCmd(
"repo", "update-passphrase",
"--"+flags.ConfigFileFN, configFP,
"--new-passphrase", "newpass")
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// connect again with new passphrase
cmd = cliTD.StubRootCmd(
"repo", "connect", "s3",
"--"+flags.ConfigFileFN, configFP,
"--bucket", cfg.Bucket,
"--prefix", cfg.Prefix,
"--passphrase", "newpass")
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// connect with old passphrase - it will fail
cmd = cliTD.StubRootCmd(
"repo", "connect", "s3",
"--"+flags.ConfigFileFN, configFP,
"--bucket", cfg.Bucket,
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}

View File

@ -1,70 +1,40 @@
package repo
import (
"os"
"strconv"
"strings"
"github.com/alcionai/clues"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
. "github.com/alcionai/corso/src/cli/print"
"github.com/alcionai/corso/src/cli/utils"
"github.com/alcionai/corso/src/internal/common/str"
"github.com/alcionai/corso/src/internal/events"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/credentials"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
)
// s3 bucket info from flags
var (
succeedIfExists bool
bucket string
endpoint string
prefix string
doNotUseTLS bool
doNotVerifyTLS bool
)
// called by repo.go to map subcommands to provider-specific handling.
func addS3Commands(cmd *cobra.Command) *cobra.Command {
var (
c *cobra.Command
fs *pflag.FlagSet
)
var c *cobra.Command
switch cmd.Use {
case initCommand:
c, fs = utils.AddCommand(cmd, s3InitCmd())
init := s3InitCmd()
flags.AddRetentionConfigFlags(init)
c, _ = utils.AddCommand(cmd, init)
case connectCommand:
c, fs = utils.AddCommand(cmd, s3ConnectCmd())
c, _ = utils.AddCommand(cmd, s3ConnectCmd())
}
c.Use = c.Use + " " + s3ProviderCommandUseSuffix
c.SetUsageTemplate(cmd.UsageTemplate())
flags.AddAWSCredsFlags(c)
flags.AddAzureCredsFlags(c)
flags.AddCorsoPassphaseFlags(c)
// Flags addition ordering should follow the order we want them to appear in help and docs:
// More generic and more frequently used flags take precedence.
fs.StringVar(&bucket, "bucket", "", "Name of S3 bucket for repo. (required)")
fs.StringVar(&prefix, "prefix", "", "Repo prefix within bucket.")
fs.StringVar(&endpoint, "endpoint", "s3.amazonaws.com", "S3 service endpoint.")
fs.BoolVar(&doNotUseTLS, "disable-tls", false, "Disable TLS (HTTPS)")
fs.BoolVar(&doNotVerifyTLS, "disable-tls-verification", false, "Disable TLS (HTTPS) certificate verification.")
// In general, we don't want to expose this flag to users and have them mistake it
// for a broad-scale idempotency solution. We can un-hide it later the need arises.
fs.BoolVar(&succeedIfExists, "succeed-if-exists", false, "Exit with success if the repo has already been initialized.")
cobra.CheckErr(fs.MarkHidden("succeed-if-exists"))
flags.AddAWSCredsFlags(c)
flags.AddS3BucketFlags(c)
return c
}
@ -114,26 +84,24 @@ func s3InitCmd() *cobra.Command {
func initS3Cmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
// s3 values from flags
s3Override := S3Overrides()
// s3 values from envs
s3Override = S3UpdateFromEnvVar(s3Override)
cfg, err := config.GetConfigRepoDetails(ctx, true, false, s3Override)
cfg, err := config.ReadCorsoConfig(
ctx,
storage.ProviderS3,
true,
false,
flags.S3FlagOverrides(cmd))
if err != nil {
return Only(ctx, err)
}
// SendStartCorsoEvent uses distict ID as tenant ID because repoID is still not generated
utils.SendStartCorsoEvent(
ctx,
cfg.Storage,
cfg.Account.ID(),
map[string]any{"command": "init repo"},
cfg.Account.ID(),
utils.Control())
opt := utils.ControlWithConfig(cfg)
s3Cfg, err := cfg.Storage.S3Config()
retentionOpts, err := utils.MakeRetentionOpts(cmd)
if err != nil {
return Only(ctx, err)
}
s3Cfg, err := cfg.Storage.ToS3Config()
if err != nil {
return Only(ctx, clues.Wrap(err, "Retrieving s3 configuration"))
}
@ -150,20 +118,27 @@ func initS3Cmd(cmd *cobra.Command, args []string) error {
return Only(ctx, clues.Wrap(err, "Failed to parse m365 account config"))
}
r, err := repository.Initialize(ctx, cfg.Account, cfg.Storage, utils.Control())
r, err := repository.New(
ctx,
cfg.Account,
cfg.Storage,
opt,
repository.NewRepoID)
if err != nil {
if succeedIfExists && errors.Is(err, repository.ErrorRepoAlreadyExists) {
return nil
}
return Only(ctx, clues.Wrap(err, "Failed to construct the repository controller"))
}
return Only(ctx, clues.Wrap(err, "Failed to initialize a new S3 repository"))
ric := repository.InitConfig{RetentionOpts: retentionOpts}
if err = r.Initialize(ctx, ric); err != nil {
return Only(ctx, clues.Stack(ErrInitializingRepo, err))
}
defer utils.CloseRepo(ctx, r)
Infof(ctx, "Initialized a S3 repository within bucket %s.", s3Cfg.Bucket)
if err = config.WriteRepoConfig(ctx, s3Cfg, m365, r.GetID()); err != nil {
if err = config.WriteRepoConfig(ctx, s3Cfg, m365, opt.Repo, r.GetID()); err != nil {
return Only(ctx, clues.Wrap(err, "Failed to write repository configuration"))
}
@ -190,12 +165,12 @@ func s3ConnectCmd() *cobra.Command {
func connectS3Cmd(cmd *cobra.Command, args []string) error {
ctx := cmd.Context()
// s3 values from flags
s3Override := S3Overrides()
// s3 values from envs
s3Override = S3UpdateFromEnvVar(s3Override)
cfg, err := config.GetConfigRepoDetails(ctx, true, true, s3Override)
cfg, err := config.ReadCorsoConfig(
ctx,
storage.ProviderS3,
true,
true,
flags.S3FlagOverrides(cmd))
if err != nil {
return Only(ctx, err)
}
@ -205,7 +180,7 @@ func connectS3Cmd(cmd *cobra.Command, args []string) error {
repoID = events.RepoIDNotFound
}
s3Cfg, err := cfg.Storage.S3Config()
s3Cfg, err := cfg.Storage.ToS3Config()
if err != nil {
return Only(ctx, clues.Wrap(err, "Retrieving s3 configuration"))
}
@ -222,45 +197,29 @@ func connectS3Cmd(cmd *cobra.Command, args []string) error {
return Only(ctx, clues.New(invalidEndpointErr))
}
r, err := repository.ConnectAndSendConnectEvent(ctx, cfg.Account, cfg.Storage, repoID, utils.Control())
opts := utils.ControlWithConfig(cfg)
r, err := repository.New(
ctx,
cfg.Account,
cfg.Storage,
opts,
repoID)
if err != nil {
return Only(ctx, clues.Wrap(err, "Failed to connect to the S3 repository"))
return Only(ctx, clues.Wrap(err, "Failed to create a repository controller"))
}
if err := r.Connect(ctx, repository.ConnConfig{}); err != nil {
return Only(ctx, clues.Stack(ErrConnectingRepo, err))
}
defer utils.CloseRepo(ctx, r)
Infof(ctx, "Connected to S3 bucket %s.", s3Cfg.Bucket)
if err = config.WriteRepoConfig(ctx, s3Cfg, m365, r.GetID()); err != nil {
if err = config.WriteRepoConfig(ctx, s3Cfg, m365, opts.Repo, r.GetID()); err != nil {
return Only(ctx, clues.Wrap(err, "Failed to write repository configuration"))
}
return nil
}
func S3Overrides() map[string]string {
return map[string]string{
config.AccountProviderTypeKey: account.ProviderM365.String(),
config.StorageProviderTypeKey: storage.ProviderS3.String(),
credentials.AWSAccessKeyID: flags.AWSAccessKeyFV,
credentials.AWSSecretAccessKey: flags.AWSSecretAccessKeyFV,
credentials.AWSSessionToken: flags.AWSSessionTokenFV,
storage.Bucket: bucket,
storage.Endpoint: endpoint,
storage.Prefix: prefix,
storage.DoNotUseTLS: strconv.FormatBool(doNotUseTLS),
storage.DoNotVerifyTLS: strconv.FormatBool(doNotVerifyTLS),
}
}
func S3UpdateFromEnvVar(s3Flag map[string]string) map[string]string {
s3Flag[storage.Bucket] = str.First(s3Flag[storage.Bucket], os.Getenv(storage.BucketKey))
s3Flag[storage.Endpoint] = str.First(s3Flag[storage.Endpoint], os.Getenv(storage.EndpointKey))
s3Flag[storage.Prefix] = str.First(s3Flag[storage.Prefix], os.Getenv(storage.PrefixKey))
s3Flag[storage.DoNotUseTLS] = str.First(s3Flag[storage.DoNotUseTLS], os.Getenv(storage.DisableTLSKey))
s3Flag[storage.DoNotVerifyTLS] = str.First(
s3Flag[storage.DoNotVerifyTLS],
os.Getenv(storage.DisableTLSVerificationKey))
return s3Flag
}

View File

@ -8,13 +8,20 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"golang.org/x/exp/maps"
"github.com/alcionai/corso/src/cli"
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
cliTD "github.com/alcionai/corso/src/cli/testdata"
"github.com/alcionai/corso/src/internal/common/str"
"github.com/alcionai/corso/src/internal/tester"
"github.com/alcionai/corso/src/internal/tester/tconfig"
"github.com/alcionai/corso/src/pkg/account"
"github.com/alcionai/corso/src/pkg/config"
"github.com/alcionai/corso/src/pkg/control"
"github.com/alcionai/corso/src/pkg/repository"
"github.com/alcionai/corso/src/pkg/storage"
storeTD "github.com/alcionai/corso/src/pkg/storage/testdata"
)
type S3E2ESuite struct {
@ -24,8 +31,7 @@ type S3E2ESuite struct {
func TestS3E2ESuite(t *testing.T) {
suite.Run(t, &S3E2ESuite{Suite: tester.NewE2ESuite(
t,
[][]string{tester.AWSStorageCredEnvs, tester.M365AcctCredEnvs},
)})
[][]string{storeTD.AWSStorageCredEnvs, tconfig.M365AcctCredEnvs})})
}
func (suite *S3E2ESuite) TestInitS3Cmd() {
@ -58,11 +64,12 @@ func (suite *S3E2ESuite) TestInitS3Cmd() {
ctx, flush := tester.NewContext(t)
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
st := storeTD.NewPrefixedS3Storage(t)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
vpr, configFP := tester.MakeTempTestConfigClone(t, nil)
vpr, configFP := tconfig.MakeTempTestConfigClone(t, nil)
if !test.hasConfigFile {
// Ideally we could use `/dev/null`, but you need a
// toml file plus this works cross platform
@ -71,9 +78,9 @@ func (suite *S3E2ESuite) TestInitS3Cmd() {
ctx = config.SetViper(ctx, vpr)
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"repo", "init", "s3",
"--config-file", configFP,
"--"+flags.ConfigFileFN, configFP,
"--bucket", test.bucketPrefix+cfg.Bucket,
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
@ -82,9 +89,9 @@ func (suite *S3E2ESuite) TestInitS3Cmd() {
err = cmd.ExecuteContext(ctx)
require.NoError(t, err, clues.ToCore(err))
// a second initialization should result in an error
// noop
err = cmd.ExecuteContext(ctx)
assert.ErrorIs(t, err, repository.ErrorRepoAlreadyExists, clues.ToCore(err))
require.NoError(t, err, clues.ToCore(err))
})
}
}
@ -95,22 +102,21 @@ func (suite *S3E2ESuite) TestInitMultipleTimes() {
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
st := storeTD.NewPrefixedS3Storage(t)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
vpr, configFP := tester.MakeTempTestConfigClone(t, nil)
vpr, configFP := tconfig.MakeTempTestConfigClone(t, nil)
ctx = config.SetViper(ctx, vpr)
for i := 0; i < 2; i++ {
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"repo", "init", "s3",
"--config-file", configFP,
"--"+flags.ConfigFileFN, configFP,
"--bucket", cfg.Bucket,
"--prefix", cfg.Prefix,
"--succeed-if-exists",
)
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
// run the command
@ -125,17 +131,22 @@ func (suite *S3E2ESuite) TestInitS3Cmd_missingBucket() {
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
st := storeTD.NewPrefixedS3Storage(t)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
vpr, configFP := tester.MakeTempTestConfigClone(t, nil)
force := map[string]string{
tconfig.TestCfgBucket: "",
}
vpr, configFP := tconfig.MakeTempTestConfigClone(t, force)
ctx = config.SetViper(ctx, vpr)
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"repo", "init", "s3",
"--config-file", configFP,
"--"+flags.ConfigFileFN, configFP,
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
@ -174,16 +185,17 @@ func (suite *S3E2ESuite) TestConnectS3Cmd() {
ctx, flush := tester.NewContext(t)
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
st := storeTD.NewPrefixedS3Storage(t)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
force := map[string]string{
tester.TestCfgAccountProvider: "M365",
tester.TestCfgStorageProvider: "S3",
tester.TestCfgPrefix: cfg.Prefix,
tconfig.TestCfgAccountProvider: account.ProviderM365.String(),
tconfig.TestCfgStorageProvider: storage.ProviderS3.String(),
tconfig.TestCfgPrefix: cfg.Prefix,
}
vpr, configFP := tester.MakeTempTestConfigClone(t, force)
vpr, configFP := tconfig.MakeTempTestConfigClone(t, force)
if !test.hasConfigFile {
// Ideally we could use `/dev/null`, but you need a
// toml file plus this works cross platform
@ -193,16 +205,23 @@ func (suite *S3E2ESuite) TestConnectS3Cmd() {
ctx = config.SetViper(ctx, vpr)
// init the repo first
_, err = repository.Initialize(ctx, account.Account{}, st, control.Defaults())
r, err := repository.New(
ctx,
tconfig.NewM365Account(t),
st,
control.DefaultOptions(),
repository.NewRepoID)
require.NoError(t, err, clues.ToCore(err))
err = r.Initialize(ctx, repository.InitConfig{})
require.NoError(t, err, clues.ToCore(err))
// then test it
cmd := tester.StubRootCmd(
cmd := cliTD.StubRootCmd(
"repo", "connect", "s3",
"--config-file", configFP,
"--"+flags.ConfigFileFN, configFP,
"--bucket", test.bucketPrefix+cfg.Bucket,
"--prefix", cfg.Prefix,
)
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
// run the command
@ -212,54 +231,63 @@ func (suite *S3E2ESuite) TestConnectS3Cmd() {
}
}
func (suite *S3E2ESuite) TestConnectS3Cmd_BadBucket() {
t := suite.T()
ctx, flush := tester.NewContext(t)
func (suite *S3E2ESuite) TestConnectS3Cmd_badInputs() {
table := []struct {
name string
bucket string
prefix string
expectErr func(t *testing.T, err error)
}{
{
name: "bucket",
bucket: "wrong",
expectErr: func(t *testing.T, err error) {
assert.ErrorIs(t, err, storage.ErrVerifyingConfigStorage, clues.ToCore(err))
},
},
{
name: "prefix",
prefix: "wrong",
expectErr: func(t *testing.T, err error) {
assert.ErrorIs(t, err, storage.ErrVerifyingConfigStorage, clues.ToCore(err))
},
},
}
for _, test := range table {
suite.Run(test.name, func() {
t := suite.T()
defer flush()
ctx, flush := tester.NewContext(t)
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
require.NoError(t, err, clues.ToCore(err))
st := storeTD.NewPrefixedS3Storage(t)
cfg, err := st.ToS3Config()
require.NoError(t, err, clues.ToCore(err))
vpr, configFP := tester.MakeTempTestConfigClone(t, nil)
bucket := str.First(test.bucket, cfg.Bucket)
prefix := str.First(test.prefix, cfg.Prefix)
ctx = config.SetViper(ctx, vpr)
over := map[string]string{}
acct := tconfig.NewM365Account(t)
cmd := tester.StubRootCmd(
"repo", "connect", "s3",
"--config-file", configFP,
"--bucket", "wrong",
"--prefix", cfg.Prefix)
cli.BuildCommandTree(cmd)
maps.Copy(over, acct.Config)
over[account.AccountProviderTypeKey] = account.ProviderM365.String()
over[storage.StorageProviderTypeKey] = storage.ProviderS3.String()
// run the command
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
}
func (suite *S3E2ESuite) TestConnectS3Cmd_BadPrefix() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
st := tester.NewPrefixedS3Storage(t)
cfg, err := st.S3Config()
require.NoError(t, err, clues.ToCore(err))
vpr, configFP := tester.MakeTempTestConfigClone(t, nil)
ctx = config.SetViper(ctx, vpr)
cmd := tester.StubRootCmd(
"repo", "connect", "s3",
"--config-file", configFP,
"--bucket", cfg.Bucket,
"--prefix", "wrong")
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
vpr, configFP := tconfig.MakeTempTestConfigClone(t, over)
ctx = config.SetViper(ctx, vpr)
cmd := cliTD.StubRootCmd(
"repo", "connect", "s3",
"--"+flags.ConfigFileFN, configFP,
"--bucket", bucket,
"--prefix", prefix)
cli.BuildCommandTree(cmd)
// run the command
err = cmd.ExecuteContext(ctx)
require.Error(t, err, clues.ToCore(err))
test.expectErr(t, err)
})
}
}

Some files were not shown because too many files have changed in this diff Show More