René's URL Explorer Experiment


Title: feat(cli): deepnote sync — ZIP-per-notebook export + inverse-ZIP push (GRN-5421) by jamesbhobbs · Pull Request #451 · deepnote/deepnote · GitHub

Open Graph Title: feat(cli): deepnote sync — ZIP-per-notebook export + inverse-ZIP push (GRN-5421) by jamesbhobbs · Pull Request #451 · deepnote/deepnote

X Title: feat(cli): deepnote sync — ZIP-per-notebook export + inverse-ZIP push (GRN-5421) by jamesbhobbs · Pull Request #451 · deepnote/deepnote

Description: Reworks the deepnote sync CLI (#429, Wojtek's branch) for the export endpoint that shipped, and implements the push direction as the exact inverse of export. Stacked on #429, which is left untouched. This branch is Wojtek's two sync commits rebased onto main (his PR was CONFLICTING) plus two commits on top: the ZIP pull rework, then the inverse-ZIP push. Why #429 was built against the single-document export from the original enablement PR (deepnote-internal #20511). The endpoint that merged — deepnote-internal #20596 — instead returns a ZIP with one .deepnote document per notebook. Every layer assumed one file per project, so that had to be reworked. Two other drifts fixed here: folder.path is now { id, name } segments + isPathComplete (not string[]), and only the documents are deterministic (never the ZIP container), so the content hash is computed over the documents. Pull (commit 1) Layer Change @deepnote/cloud exportProject unzips the export into { filename, content }[] (adds fflate); folder schema/types fixed. sync-paths a directory per project (//, one .deepnote per notebook); .files/ inside it. sync-manifest { dir, notebooks[], contentHash, ... }, hash over the exploded documents. sync command pull writes one file per notebook, deletes files for notebooks removed in the cloud; rename moves the directory. Push (commit 2) — the exact inverse of export Rather than defer push behind an undecided contract, this defines the contract by writing the client for it. Push re-uploads the same ZIP of .deepnote documents the export produced — no re-merge, no re-serialization — to POST /v2/projects/{id}/import, with baseModifiedAt + baseContentHash for lost-update protection. Because the unit is identical in both directions, the baseContentHash question dissolves: both sides hash the exploded documents the same way (algorithm specified in the contract doc). @deepnote/cloud: importProject(files, opts) POSTs a ZIP (application/zip); new uploadProjectFile / deleteProjectFile (real, already-deployed POST/DELETE /v2/files). sync command: local-only edit → import → re-export → write back; 409 → override/skip; empty local project confirmed before delete-all; --all-files uploads changed local files on push (delete-then-upload, since POST /v2/files won't overwrite). POST /v2/projects/{id}/import is not deployed yet. A 404/501 degrades to push-deferred (edit kept, nothing lost), so the client ships safely ahead of the server. 📋 The contract for the server authors packages/cloud/docs/project-import-contract.md is the spec to implement against: ZIP-in reconciliation semantics, the exact canonical content-hash algorithm (so both sides match), params, responses, and errors. The client in this PR is the reference implementation. Testing Full pnpm test: 164 files, 2846 passed, 0 failures (nested worktree + .env parked per the local-env quirk). pnpm typecheck, biome, prettier, cspell all clean. New coverage: ZIP explode; dir-per-project planning; per-notebook pull + deleted-notebook cleanup; push (import ZIP body + base fingerprints, re-export write-back); 409 skip/override; 404 → graceful push-deferred; --all-files upload (delete-then-upload); uploadProjectFile/deleteProjectFile; canonical-hash order-independence. Not yet done: live verification against production (the export ZIP and the import endpoint may not be deployed to api.deepnote.com yet). 🤖 Generated with Claude Code Summary by CodeRabbit New Features Added deepnote sync [dir] to mirror cloud projects locally in both directions. Supports dry runs, conflict handling, pruning, JSON output, renames, and incremental working-directory file synchronization. Detects unchanged content, tracks synchronization state, and helps prevent unintended overwrites. Added cloud operations for listing, exporting, importing, downloading, uploading, and deleting project files. Added safe path handling and file-size safeguards for synchronized files. Documentation Added CLI, cloud API, and sync command reference documentation.

Open Graph Description: Reworks the deepnote sync CLI (#429, Wojtek's branch) for the export endpoint that shipped, and implements the push direction as the exact inverse of export. Stacked on #429, which is left unt...

X Description: Reworks the deepnote sync CLI (#429, Wojtek's branch) for the export endpoint that shipped, and implements the push direction as the exact inverse of export. Stacked on #429, which is left...

Opengraph URL: https://github.com/deepnote/deepnote/pull/451

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:66a24cce-1c49-273d-575f-a1b6162973e4
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDFE6:2768C6:A34AB5:DCF430:6AEDCEFC
html-safe-nonce67c889186c54420854b27ee388b7c1b4fa42e8973f4b105c0f0bc028c060650a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERkU2OjI3NjhDNjpBMzRBQjU6RENGNDMwOjZBRURDRUZDIiwidmlzaXRvcl9pZCI6IjI3ODA0ODU5MzI4NTcyODIzMDAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacedcbeb876157f5c9db681a6da5e9ea191ea573bb9913bfbd38044f5a4191ec43
hovercard-subject-tagpull_request:4223303522
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
twitter:imagehttps://avatars.githubusercontent.com/u/15235276?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/15235276?s=400&v=4
og:image:altReworks the deepnote sync CLI (#429, Wojtek's branch) for the export endpoint that shipped, and implements the push direction as the exact inverse of export. Stacked on #429, which is left unt...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonef60373873bb1ef795e8511ea1f2a76997e9c649d72b02942aedf2def3423a0ce
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/deepnote/deepnote git https://github.com/deepnote/deepnote.git
octolytics-dimension-user_id45339858
octolytics-dimension-user_logindeepnote
octolytics-dimension-repository_id1066509034
octolytics-dimension-repository_nwodeepnote/deepnote
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1066509034
octolytics-dimension-repository_network_root_nwodeepnote/deepnote
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release0f55cfa61438c7dc93d1024a1e5e5182b36830e2
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdeepnote%2Fdeepnote%2Fpull%2F451%2Fcommits%2F256307731da9522d705334a71551fab4004947a7
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdeepnote%2Fdeepnote%2Fpull%2F451%2Fcommits%2F256307731da9522d705334a71551fab4004947a7
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=deepnote%2Fdeepnote
Reloadhttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
Reloadhttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
Reloadhttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
deepnotehttps://github.com/deepnote
deepnotehttps://github.com/deepnote/deepnote
Codehttps://github.com/deepnote/deepnote
Issues14 (14)https://github.com/deepnote/deepnote/issues
Pull requests24 (24)https://github.com/deepnote/deepnote/pulls
Discussionshttps://github.com/deepnote/deepnote/discussions
Actionshttps://github.com/deepnote/deepnote/actions
Security and qualityhttps://github.com/deepnote/deepnote/security
Insightshttps://github.com/deepnote/deepnote/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fdeepnote%2Fdeepnote%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fdeepnote%2Fdeepnote%2Fissues%2Fnew%2Fchoose
dinohamzichttps://github.com/dinohamzic
mainhttps://github.com/deepnote/deepnote/tree/main
hobbs/grn-5421-sync-zip-exporthttps://github.com/deepnote/deepnote/tree/hobbs/grn-5421-sync-zip-export
Conversation 41 https://github.com/deepnote/deepnote/pull/451
Commits 39 https://github.com/deepnote/deepnote/pull/451/commits
Checks 20 https://github.com/deepnote/deepnote/pull/451/checks
Files changed https://github.com/deepnote/deepnote/pull/451/files
Please reload this pagehttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
feat(cli): deepnote sync — ZIP-per-notebook export + inverse-ZIP push (GRN-5421) https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#top
Show all changes 39 commits https://github.com/deepnote/deepnote/pull/451/files
28dbe9b feat(cli): add deepnote sync to mirror workspace projects with the lo… voyti Jul 22, 2026 https://github.com/deepnote/deepnote/pull/451/commits/28dbe9bb62696d1313f73c6729597f4d9159f256
28ed833 feat(sync): send baseContentHash on push and guard empty-document del… voyti Jul 28, 2026 https://github.com/deepnote/deepnote/pull/451/commits/28ed833906ce525167d58b8c8a257c29b710cd4a
e1ac520 feat(cli): rework deepnote sync for the ZIP-per-notebook export jamesbhobbs Aug 6, 2026 https://github.com/deepnote/deepnote/pull/451/commits/e1ac5209a52fde3b703e0e5b2d2abbb2a4e39642
24e5a0f feat(cli): implement deepnote sync push as the exact inverse of export jamesbhobbs Aug 6, 2026 https://github.com/deepnote/deepnote/pull/451/commits/24e5a0f4a2a7fa05aa761465afdef70e62f9a7f6
ed9b8a7 fix(cli): truncate path segment before stripping trailing dot/space jamesbhobbs Aug 6, 2026 https://github.com/deepnote/deepnote/pull/451/commits/ed9b8a7df4520d879e3e7e427e574d7316c0379e
5ea8db9 fix(cli): abort sync on Ctrl+C; detect same-size file edits by hash jamesbhobbs Aug 6, 2026 https://github.com/deepnote/deepnote/pull/451/commits/5ea8db9df5450d7d732fcacd54d16918d5cd30f4
6d6f804 docs(cli): note both --all-files directions; add markdown fence langu… jamesbhobbs Aug 6, 2026 https://github.com/deepnote/deepnote/pull/451/commits/6d6f8040e8c33cacb394b10dc07e36572e9e178a
acac54d feat: support new import endpoint dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/acac54d9f2a10b22ddccd5b3aa7a838f1eea9c66
b2be886 test: cr feedback dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/b2be8865e012314f1114214048780085ad214245
81914f1 Merge branch 'main' into hobbs/grn-5421-sync-zip-export dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/81914f11d5063939632fd9c57c89ad84fcd035eb
397f49d fix(cli): validate sync manifest paths dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/397f49d5e62e87d441cf8a45226f2390eb5f28ee
0abb8bc fix(cli): keep sync project paths disjoint dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/0abb8bc33b6c11b0291ead76d5f17ca6df0cc06b
9f2127f fix(cli): preserve sync path collision suffixes dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/9f2127fae42b0f2019be71d20ff713d7787e81c5
e2807ad fix(cloud): require sync pagination dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/e2807ad07b83ad381f21ac6d1d162ec7f8d9e232
0763640 fix(cloud): require project file inventory dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/076364072372ef45423f26356b5fcc9a0339f0bb
6a50732 fix(cli): retry interrupted file replacements dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/6a507324125925619f8f2e2c1d7cebe2b3617331
2563077 fix(cli): verify uploaded file paths dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
db1c980 fix(cli): preserve case-only notebook renames dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/db1c980769c345399c721a72d81da21e596dc3b1
1a7431e fix(sync): bound working file transfers dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/1a7431e80c60b59b593f72ef4a8205e2b0fc71c8
1c4d26e fix(sync): distinguish suspended import errors dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/1c4d26e7cde6f8152a01c62a62a0a3050d01aaa4
1cdaf46 fix(cloud): reject malformed project exports dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/1cdaf468d8ba8b43821b27d27729799cea2e3008
33de7b5 fix(sync): namespace incomplete folder paths dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/33de7b5d7d78e2e6311053f45d61f8f781353636
192e13a fix(sync): keep dry runs read-only dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/192e13a61ddaf99e27e7eca24957715fcebd41ca
92ea19a docs(cli): remove stale sync fallback help dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/92ea19a6b73273360e16a9e4fbc28ad5daef9605
1046d4a chore: spell check dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/1046d4a07fe1d01872a550ed77cab23a10d735b1
e429219 fix(sync): reject non-canonical upload paths dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/e4292198959c2a01458dbfbb740d18f01e820435
7189064 fix(sync): reject unsafe filesystem paths dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/7189064bc6dfd2053ccdfbccc8a5c8fe2ef0221f
eee923f fix(sync): require file inventory timestamps dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/eee923f01c2afa0e79a257f8420d5fb352909c0b
0bd965a test(sync): assert symlink rejection does not delete dinohamzic Aug 10, 2026 https://github.com/deepnote/deepnote/pull/451/commits/0bd965a1740af4b8a240d013908c6a7a761b7d1a
6df113a fix(cli): preserve live project paths during prune dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/6df113a473f0e94b7b109bc11a9abe6acd437e13
93f7280 fix(cloud): copy exact bytes for file uploads dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/93f72803e694c12eb5f4625660f15d27d92830bc
cc8ebd1 fix(cli): reject occupied sync destinations dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/cc8ebd10aa647af70719e1cda37da2741202c7d0
b6751d7 fix(cli): refuse ambiguous workspace pruning dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/b6751d70c52d72eacef959b259ebe94938e23052
c610688 fix(cli): make project hashes locale-independent dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/c610688883c7cead02db34faee27c147af29d1e5
7517563 docs(cli): clarify sync deletion behavior dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/751756349fc885636b70308fd8710fa2cd5d7247
e95a37f chore: cspell dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/e95a37f840d1f745792bc6614f3e6a3be9c62696
132c40f refactor(cli): use native canonical hash sorting dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/132c40f2f5d07a25320c99c9ed11845c90f0f95b
f79af23 test(cli): cover empty-project notebook deletion guard dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/f79af23b2bfdf1ba1b7cefdb9ad3f71f843de9a1
6e6af8e docs(cloud): pin suspended project import response dinohamzic Aug 11, 2026 https://github.com/deepnote/deepnote/pull/451/commits/6e6af8e1b5ceda071214f858e59b7eb8ad2933e2
Clear filters https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
Please reload this pagehttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
Please reload this pagehttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
sync.test.ts https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
sync.ts https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-68b4ae21aa7b700f48f2376946eddfbe1c73e3412bd4bfa480be174ff4e54a12
sync.test.ts https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-4883f1c51f1e6fca6c80fe65f4cb471fa29bb96243aa0886499a2d2fa5ee0753
sync.ts https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
Prev https://github.com/deepnote/deepnote/pull/451/commits/6a507324125925619f8f2e2c1d7cebe2b3617331
Next https://github.com/deepnote/deepnote/pull/451/commits/db1c980769c345399c721a72d81da21e596dc3b1
Please reload this pagehttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7
https://github.com/dinohamzic
dinohamzichttps://github.com/deepnote/deepnote/commits?author=dinohamzic
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
packages/cli/src/commands/sync.test.tshttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
View file https://github.com/deepnote/deepnote/blob/256307731da9522d705334a71551fab4004947a7/packages/cli/src/commands/sync.test.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/451/commits/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-2a59c8310bdb5c4d6494a25d2883680fe8bdfde40d5f89972489b163af967308
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
packages/cli/src/commands/sync.tshttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-68b4ae21aa7b700f48f2376946eddfbe1c73e3412bd4bfa480be174ff4e54a12
View file https://github.com/deepnote/deepnote/blob/256307731da9522d705334a71551fab4004947a7/packages/cli/src/commands/sync.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/451/commits/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-68b4ae21aa7b700f48f2376946eddfbe1c73e3412bd4bfa480be174ff4e54a12
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-68b4ae21aa7b700f48f2376946eddfbe1c73e3412bd4bfa480be174ff4e54a12
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
packages/cloud/src/sync.test.tshttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-4883f1c51f1e6fca6c80fe65f4cb471fa29bb96243aa0886499a2d2fa5ee0753
View file https://github.com/deepnote/deepnote/blob/256307731da9522d705334a71551fab4004947a7/packages/cloud/src/sync.test.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/451/commits/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-4883f1c51f1e6fca6c80fe65f4cb471fa29bb96243aa0886499a2d2fa5ee0753
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-4883f1c51f1e6fca6c80fe65f4cb471fa29bb96243aa0886499a2d2fa5ee0753
https://github.com/deepnote/deepnote/blob/main/.github/CODEOWNERS#L2
packages/cloud/src/sync.tshttps://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
View file https://github.com/deepnote/deepnote/blob/256307731da9522d705334a71551fab4004947a7/packages/cloud/src/sync.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/deepnote/deepnote/pull/451/commits/{{ revealButtonHref }}
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
https://github.com/deepnote/deepnote/pull/451/commits/256307731da9522d705334a71551fab4004947a7#diff-404348e9a69abbc2108d745a5bb9c71b0f8af19e60fe7b3aebbfeb0aa380a186
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.