recce-nightly 0.61.0.20250406__tar.gz → 0.61.0.20250408__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of recce-nightly might be problematic. Click here for more details.
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/PKG-INFO +1 -1
- recce_nightly-0.61.0.20250408/recce/VERSION +1 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/cli.py +61 -2
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/404.html +1 -1
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/index.html +1 -1
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/index.txt +1 -1
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/event/__init__.py +4 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/state.py +38 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/recce_cloud.py +18 -6
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/PKG-INFO +1 -1
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/SOURCES.txt +2 -2
- recce_nightly-0.61.0.20250406/recce/VERSION +0 -1
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/LICENSE +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/README.md +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/base.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/dbt_adapter/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/dbt_adapter/dbt_version.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/sqlmesh_adapter.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/apis/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/apis/check_api.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/apis/check_func.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/apis/run_api.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/apis/run_func.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/artifact.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/config.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/core.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/269-83bbdbcbd0cc1ddb.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/29e3cc0d-6e3b0cf904a6874d.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/36e1c10d-800596efe83e74a6.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/38610ee6-24a85e2dfb424ddb.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/3998a672-63fc54b2b517ee2b.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/450c323b-b36e745822edebe2.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/47d8844f-0516cea2ef568380.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/6dc81886-9871b611a22bd997.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/783-784ce10322400a48.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/7a8a3e83-dd26fafa0a7421e5.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/7f27ae6c-4ddea120696db611.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/9746af58-527fd8cbd2d17eee.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/a30376cd-1ad5a3f522da896c.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/app/_not-found/page-76f691066176b63a.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/app/layout-fdacc83a3bf974a3.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/app/page-35403e208468490c.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/b63b1b3f-fe714039749c1250.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/c132bf7d-4cb4c4a123e27340.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/c1ceaa8b-64142a5184f1b8b2.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/cd9f8d63-543677b0ef49da87.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/ce84277d-4bca7695ec1ada94.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/e24bf851-5db5db8459b0b291.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/fee69bc6-1df8306af9d11293.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/framework-ded83d71b51ce901.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/main-7183c49fe89a1f9b.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/main-app-cfd795a5fe58bf37.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/pages/_app-9f1049bbd7b90455.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/pages/_error-71ed60313c005df1.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/chunks/webpack-8a8709fe9d22c323.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/css/c9ecb46a4b21c126.css +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.31d693bb.woff +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.7e2c1e62.woff +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-latin-800-normal.97e20d5e.woff +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
- {recce_nightly-0.61.0.20250406/recce/data/_next/static/OXOOZAq4LWXXqX5m_TtEy → recce_nightly-0.61.0.20250408/recce/data/_next/static/poWNiO-9u2knvOaIjX61p}/_buildManifest.js +0 -0
- {recce_nightly-0.61.0.20250406/recce/data/_next/static/OXOOZAq4LWXXqX5m_TtEy → recce_nightly-0.61.0.20250408/recce/data/_next/static/poWNiO-9u2knvOaIjX61p}/_ssgManifest.js +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/favicon.ico +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/imgs/feedback/thumbs-down.png +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/imgs/feedback/thumbs-up.png +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/logo/recce-logo-white.png +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/diff.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/event/CONFIG +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/event/SENTRY_DNS +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/event/collector.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/event/track.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/exceptions.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/git.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/github.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/models/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/models/check.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/models/run.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/models/types.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/pull_request.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/run.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/server.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/summary.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/core.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/dataframe.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/histogram.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/lineage.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/profile.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/query.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/rowcount.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/schema.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/top_k.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/tasks/valuediff.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/breaking.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/cache.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/cll.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/io.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/lineage.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/logger.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/pydantic_model.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/singleton.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/yaml/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/dependency_links.txt +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/entry_points.txt +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/requires.txt +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/top_level.txt +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/setup.cfg +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/setup.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/conftest.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/adapter/dbt_adapter/test_selector.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/__init__.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/conftest.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_histogram.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_lineage.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_preset_checks.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_profile.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_query.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_row_count.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_schema.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_top_k.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_valuediff.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_cli.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_config.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_core.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_dbt.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_pull_request.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_server.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_state.py +0 -0
- {recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/test_summary.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.61.0.20250408
|
|
@@ -9,12 +9,13 @@ import uvicorn
|
|
|
9
9
|
from recce import event
|
|
10
10
|
from recce.artifact import upload_dbt_artifacts, download_dbt_artifacts
|
|
11
11
|
from recce.config import RecceConfig, RECCE_CONFIG_FILE, RECCE_ERROR_LOG_FILE
|
|
12
|
+
from recce.event import get_recce_api_token, update_user_profile
|
|
12
13
|
from recce.git import current_branch, current_default_branch
|
|
13
14
|
from recce.run import cli_run, check_github_ci_env
|
|
14
|
-
from recce.state import RecceStateLoader, RecceCloudStateManager
|
|
15
|
+
from recce.state import RecceStateLoader, RecceCloudStateManager, RecceShareStateManager
|
|
15
16
|
from recce.summary import generate_markdown_summary
|
|
16
17
|
from recce.util.logger import CustomFormatter
|
|
17
|
-
from recce.util.recce_cloud import RecceCloudException, get_recce_cloud_onboarding_state
|
|
18
|
+
from recce.util.recce_cloud import RecceCloudException, get_recce_cloud_onboarding_state, RECCE_CLOUD_API_HOST
|
|
18
19
|
from .core import RecceContext, set_default_context
|
|
19
20
|
from .event.track import TrackCommand
|
|
20
21
|
|
|
@@ -751,6 +752,64 @@ def artifact(**kwargs):
|
|
|
751
752
|
return recce_ci_artifact(**kwargs)
|
|
752
753
|
|
|
753
754
|
|
|
755
|
+
@cli.command(cls=TrackCommand)
|
|
756
|
+
@click.argument('state_file', type=click.Path(exists=True))
|
|
757
|
+
@click.option('--api-token', help='The token used by Recce Cloud API.', type=click.STRING,
|
|
758
|
+
envvar='RECCE_API_TOKEN')
|
|
759
|
+
@add_options(recce_options)
|
|
760
|
+
def share(state_file, **kwargs):
|
|
761
|
+
"""
|
|
762
|
+
Share the state file
|
|
763
|
+
"""
|
|
764
|
+
from rich.console import Console
|
|
765
|
+
|
|
766
|
+
handle_debug_flag(**kwargs)
|
|
767
|
+
cloud_options = {
|
|
768
|
+
'api_token': kwargs.get('api_token'),
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
console = Console()
|
|
772
|
+
|
|
773
|
+
# read or input the api token
|
|
774
|
+
api_token = cloud_options.get('api_token') if cloud_options.get('api_token') else get_recce_api_token()
|
|
775
|
+
if api_token is None:
|
|
776
|
+
console.print("Please login Recce Cloud and copy the API token from the setting page.\n"
|
|
777
|
+
f"{RECCE_CLOUD_API_HOST}/settings#tokens\n"
|
|
778
|
+
"You can also edit it in the recce profiles yaml file later.")
|
|
779
|
+
api_token = click.prompt('Your Recce API token', type=str, hide_input=True, show_default=False)
|
|
780
|
+
update_user_profile({'api_token': api_token})
|
|
781
|
+
|
|
782
|
+
cloud_options['api_token'] = api_token
|
|
783
|
+
|
|
784
|
+
# load local state
|
|
785
|
+
state_loader = create_state_loader(review_mode=True, cloud_mode=False, state_file=state_file,
|
|
786
|
+
cloud_options=cloud_options)
|
|
787
|
+
|
|
788
|
+
if not state_loader.verify():
|
|
789
|
+
error, hint = state_loader.error_and_hint
|
|
790
|
+
console.print(f"[[red]Error[/red]] {error}")
|
|
791
|
+
console.print(f"{hint}")
|
|
792
|
+
exit(1)
|
|
793
|
+
|
|
794
|
+
# check if state exists in cloud
|
|
795
|
+
state_manager = RecceShareStateManager(cloud_options)
|
|
796
|
+
if not state_manager.verify():
|
|
797
|
+
error, hint = state_manager.error_and_hint
|
|
798
|
+
console.print(f"[[red]Error[/red]] {error}")
|
|
799
|
+
console.print(f"{hint}")
|
|
800
|
+
exit(1)
|
|
801
|
+
|
|
802
|
+
# check if state exists in cloud
|
|
803
|
+
state_file_name = os.path.basename(state_file)
|
|
804
|
+
|
|
805
|
+
try:
|
|
806
|
+
console.print(f'Shared Link: {state_manager.share_state(state_file_name, state_loader.state)}')
|
|
807
|
+
except RecceCloudException as e:
|
|
808
|
+
console.print(f"[[red]Error[/red]] {e}")
|
|
809
|
+
console.print(f"Reason: {e.reason}")
|
|
810
|
+
exit(1)
|
|
811
|
+
|
|
812
|
+
|
|
754
813
|
@cli.command(hidden=True, cls=TrackCommand)
|
|
755
814
|
@click.argument('state_file', required=True)
|
|
756
815
|
@click.option('--host', default='localhost', show_default=True, help='The host to bind to.')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8a8709fe9d22c323.js"/><script src="/_next/static/chunks/38610ee6-24a85e2dfb424ddb.js" async=""></script><script src="/_next/static/chunks/783-784ce10322400a48.js" async=""></script><script src="/_next/static/chunks/main-app-cfd795a5fe58bf37.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>recce</title><meta name="description" content="Recce: Data validation toolkit for comprehensive PR review"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8a8709fe9d22c323.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[83798,[],\"\"]\n3:I[26375,[],\"\"]\n4:I[22587,[],\"\"]\na:I[114,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8a8709fe9d22c323.js"/><script src="/_next/static/chunks/38610ee6-24a85e2dfb424ddb.js" async=""></script><script src="/_next/static/chunks/783-784ce10322400a48.js" async=""></script><script src="/_next/static/chunks/main-app-cfd795a5fe58bf37.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>recce</title><meta name="description" content="Recce: Data validation toolkit for comprehensive PR review"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8a8709fe9d22c323.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[83798,[],\"\"]\n3:I[26375,[],\"\"]\n4:I[22587,[],\"\"]\na:I[114,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"poWNiO-9u2knvOaIjX61p\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"recce\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Recce: Data validation toolkit for comprehensive PR review\"}]]\n2:null\n"])</script></body></html>
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
transparent 0%,
|
|
25
25
|
#3182ce 50%,
|
|
26
26
|
transparent 100%
|
|
27
|
-
);position:absolute;will-change:left;min-width:50%;-webkit-animation:animation-11lmxjq 1s ease infinite normal none running;animation:animation-11lmxjq 1s ease infinite normal none running;}@-webkit-keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}@keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}</style><div style="width:0%" data-indeterminate="" aria-valuemax="100" aria-valuemin="0" role="progressbar" class="css-h5ends"></div></div></div><div class="css-0"></div></div></div></div><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-8a8709fe9d22c323.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/c9ecb46a4b21c126.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[83798,[],\"\"]\n4:I[49272,[],\"ClientPageRoot\"]\n5:I[12963,[\"266\",\"static/chunks/e24bf851-5db5db8459b0b291.js\",\"517\",\"static/chunks/c1ceaa8b-64142a5184f1b8b2.js\",\"678\",\"static/chunks/3998a672-63fc54b2b517ee2b.js\",\"509\",\"static/chunks/9746af58-527fd8cbd2d17eee.js\",\"648\",\"static/chunks/ce84277d-4bca7695ec1ada94.js\",\"989\",\"static/chunks/47d8844f-0516cea2ef568380.js\",\"147\",\"static/chunks/a30376cd-1ad5a3f522da896c.js\",\"995\",\"static/chunks/fee69bc6-1df8306af9d11293.js\",\"739\",\"static/chunks/7a8a3e83-dd26fafa0a7421e5.js\",\"283\",\"static/chunks/450c323b-b36e745822edebe2.js\",\"303\",\"static/chunks/36e1c10d-800596efe83e74a6.js\",\"22\",\"static/chunks/29e3cc0d-6e3b0cf904a6874d.js\",\"25\",\"static/chunks/b63b1b3f-fe714039749c1250.js\",\"355\",\"static/chunks/7f27ae6c-4ddea120696db611.js\",\"495\",\"static/chunks/6dc81886-9871b611a22bd997.js\",\"599\",\"static/chunks/c132bf7d-4cb4c4a123e27340.js\",\"971\",\"static/chunks/cd9f8d63-543677b0ef49da87.js\",\"269\",\"static/chunks/269-83bbdbcbd0cc1ddb.js\",\"931\",\"static/chunks/app/page-35403e208468490c.js\"],\"default\",1]\n6:I[26375,[],\"\"]\n7:I[22587,[],\"\"]\n9:I[114,[],\"\"]\na:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
27
|
+
);position:absolute;will-change:left;min-width:50%;-webkit-animation:animation-11lmxjq 1s ease infinite normal none running;animation:animation-11lmxjq 1s ease infinite normal none running;}@-webkit-keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}@keyframes animation-11lmxjq{0%{left:-40%;}100%{left:100%;}}</style><div style="width:0%" data-indeterminate="" aria-valuemax="100" aria-valuemin="0" role="progressbar" class="css-h5ends"></div></div></div><div class="css-0"></div></div></div></div><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-8a8709fe9d22c323.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/c9ecb46a4b21c126.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[83798,[],\"\"]\n4:I[49272,[],\"ClientPageRoot\"]\n5:I[12963,[\"266\",\"static/chunks/e24bf851-5db5db8459b0b291.js\",\"517\",\"static/chunks/c1ceaa8b-64142a5184f1b8b2.js\",\"678\",\"static/chunks/3998a672-63fc54b2b517ee2b.js\",\"509\",\"static/chunks/9746af58-527fd8cbd2d17eee.js\",\"648\",\"static/chunks/ce84277d-4bca7695ec1ada94.js\",\"989\",\"static/chunks/47d8844f-0516cea2ef568380.js\",\"147\",\"static/chunks/a30376cd-1ad5a3f522da896c.js\",\"995\",\"static/chunks/fee69bc6-1df8306af9d11293.js\",\"739\",\"static/chunks/7a8a3e83-dd26fafa0a7421e5.js\",\"283\",\"static/chunks/450c323b-b36e745822edebe2.js\",\"303\",\"static/chunks/36e1c10d-800596efe83e74a6.js\",\"22\",\"static/chunks/29e3cc0d-6e3b0cf904a6874d.js\",\"25\",\"static/chunks/b63b1b3f-fe714039749c1250.js\",\"355\",\"static/chunks/7f27ae6c-4ddea120696db611.js\",\"495\",\"static/chunks/6dc81886-9871b611a22bd997.js\",\"599\",\"static/chunks/c132bf7d-4cb4c4a123e27340.js\",\"971\",\"static/chunks/cd9f8d63-543677b0ef49da87.js\",\"269\",\"static/chunks/269-83bbdbcbd0cc1ddb.js\",\"931\",\"static/chunks/app/page-35403e208468490c.js\"],\"default\",1]\n6:I[26375,[],\"\"]\n7:I[22587,[],\"\"]\n9:I[114,[],\"\"]\na:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"poWNiO-9u2knvOaIjX61p\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c9ecb46a4b21c126.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvet"])</script><script>self.__next_f.push([1,"ica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"recce\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Recce: Data validation toolkit for comprehensive PR review\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
3:I[12963,["266","static/chunks/e24bf851-5db5db8459b0b291.js","517","static/chunks/c1ceaa8b-64142a5184f1b8b2.js","678","static/chunks/3998a672-63fc54b2b517ee2b.js","509","static/chunks/9746af58-527fd8cbd2d17eee.js","648","static/chunks/ce84277d-4bca7695ec1ada94.js","989","static/chunks/47d8844f-0516cea2ef568380.js","147","static/chunks/a30376cd-1ad5a3f522da896c.js","995","static/chunks/fee69bc6-1df8306af9d11293.js","739","static/chunks/7a8a3e83-dd26fafa0a7421e5.js","283","static/chunks/450c323b-b36e745822edebe2.js","303","static/chunks/36e1c10d-800596efe83e74a6.js","22","static/chunks/29e3cc0d-6e3b0cf904a6874d.js","25","static/chunks/b63b1b3f-fe714039749c1250.js","355","static/chunks/7f27ae6c-4ddea120696db611.js","495","static/chunks/6dc81886-9871b611a22bd997.js","599","static/chunks/c132bf7d-4cb4c4a123e27340.js","971","static/chunks/cd9f8d63-543677b0ef49da87.js","269","static/chunks/269-83bbdbcbd0cc1ddb.js","931","static/chunks/app/page-35403e208468490c.js"],"default",1]
|
|
3
3
|
4:I[26375,[],""]
|
|
4
4
|
5:I[22587,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["poWNiO-9u2knvOaIjX61p",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c9ecb46a4b21c126.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"suppressHydrationWarning":true,"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"recce"}],["$","meta","3",{"name":"description","content":"Recce: Data validation toolkit for comprehensive PR review"}],["$","link","4",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"32x32"}]]
|
|
7
7
|
1:null
|
|
@@ -46,6 +46,11 @@ RECCE_CLOUD_PASSWORD_MISSING = ErrorMessage(
|
|
|
46
46
|
hint_message='Please provide a password with the option "--password <compress-password>"'
|
|
47
47
|
)
|
|
48
48
|
|
|
49
|
+
RECCE_API_TOKEN_MISSING = ErrorMessage(
|
|
50
|
+
error_message='No Recc API token is provided',
|
|
51
|
+
hint_message='Please login to Recce Cloud and copy the API token from the settings page'
|
|
52
|
+
)
|
|
53
|
+
|
|
49
54
|
|
|
50
55
|
def s3_sse_c_headers(password: str) -> Dict[str, str]:
|
|
51
56
|
hashed_password = sha256()
|
|
@@ -715,3 +720,36 @@ class RecceCloudStateManager:
|
|
|
715
720
|
return self._purge_state_from_s3_bucket()
|
|
716
721
|
else:
|
|
717
722
|
return self._purge_state_from_recce_cloud()
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
class RecceShareStateManager:
|
|
726
|
+
error_message: str
|
|
727
|
+
hint_message: str
|
|
728
|
+
|
|
729
|
+
# It is a class to share state file on Recce Cloud.
|
|
730
|
+
|
|
731
|
+
def __init__(self, cloud_options: Optional[Dict[str, str]] = None):
|
|
732
|
+
self.cloud_options = cloud_options or {}
|
|
733
|
+
self.error_message = None
|
|
734
|
+
self.hint_message = None
|
|
735
|
+
|
|
736
|
+
def verify(self) -> bool:
|
|
737
|
+
if self.cloud_options.get('api_token') is None:
|
|
738
|
+
self.error_message = RECCE_API_TOKEN_MISSING.error_message
|
|
739
|
+
self.hint_message = RECCE_API_TOKEN_MISSING.hint_message
|
|
740
|
+
return False
|
|
741
|
+
return True
|
|
742
|
+
|
|
743
|
+
@property
|
|
744
|
+
def error_and_hint(self) -> (Union[str, None], Union[str, None]):
|
|
745
|
+
return self.error_message, self.hint_message
|
|
746
|
+
|
|
747
|
+
def share_state(self, file_name: str, state: RecceState) -> Union[str, None]:
|
|
748
|
+
import tempfile
|
|
749
|
+
|
|
750
|
+
with tempfile.NamedTemporaryFile() as tmp:
|
|
751
|
+
state.to_file(tmp.name, file_type=SupportedFileTypes.FILE)
|
|
752
|
+
response = RecceCloud(token=self.cloud_options.get('api_token')).share_state(file_name, open(tmp.name, 'rb'))
|
|
753
|
+
if response.get('status') != 'success':
|
|
754
|
+
return f"Failed to share the state file. Reason: {response.get('message')}"
|
|
755
|
+
return response.get('share_url')
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
|
-
from typing import Dict
|
|
4
|
+
from typing import Dict, IO
|
|
5
5
|
|
|
6
6
|
import requests
|
|
7
7
|
|
|
@@ -34,11 +34,11 @@ class RecceCloud:
|
|
|
34
34
|
self.token = token
|
|
35
35
|
self.base_url = f'{RECCE_CLOUD_API_HOST}/api/v1'
|
|
36
36
|
|
|
37
|
-
def _request(self, method, url,
|
|
37
|
+
def _request(self, method, url, **kwargs):
|
|
38
38
|
headers = {
|
|
39
39
|
'Authorization': f'Bearer {self.token}'
|
|
40
40
|
}
|
|
41
|
-
return requests.request(method, url, headers=headers,
|
|
41
|
+
return requests.request(method, url, headers=headers, **kwargs)
|
|
42
42
|
|
|
43
43
|
def get_presigned_url(self,
|
|
44
44
|
method: PresignedUrlMethod,
|
|
@@ -70,7 +70,7 @@ class RecceCloud:
|
|
|
70
70
|
api_url = f'{self.base_url}/{repository}/commits/{branch}/artifacts/{method}?artifact_name={artifact_name}&enable_ssec=true'
|
|
71
71
|
else:
|
|
72
72
|
raise ValueError('Either pr_id or sha must be provided.')
|
|
73
|
-
response = self._request('POST', api_url,
|
|
73
|
+
response = self._request('POST', api_url, json=metadata)
|
|
74
74
|
if response.status_code != 200:
|
|
75
75
|
raise RecceCloudException(
|
|
76
76
|
message='Failed to {method} artifact {preposition} Recce Cloud.'.format(
|
|
@@ -119,10 +119,22 @@ class RecceCloud:
|
|
|
119
119
|
status_code=response.status_code
|
|
120
120
|
)
|
|
121
121
|
|
|
122
|
+
def share_state(self, file_name: str, file_io: IO):
|
|
123
|
+
api_url = f'{self.base_url}/recce-state/upload'
|
|
124
|
+
files = {'file': (file_name, file_io, 'application/json')}
|
|
125
|
+
response = self._request('POST', api_url, files=files)
|
|
126
|
+
if response.status_code != 200:
|
|
127
|
+
raise RecceCloudException(
|
|
128
|
+
message='Failed to share Recce state.',
|
|
129
|
+
reason=response.text,
|
|
130
|
+
status_code=response.status_code
|
|
131
|
+
)
|
|
132
|
+
return response.json()
|
|
133
|
+
|
|
122
134
|
def update_github_pull_request_check(self, pr_info: PullRequestInfo, metadata: dict = None):
|
|
123
135
|
api_url = f'{self.base_url}/{pr_info.repository}/pulls/{pr_info.id}/github/checks'
|
|
124
136
|
try:
|
|
125
|
-
self._request('POST', api_url,
|
|
137
|
+
self._request('POST', api_url, json=metadata)
|
|
126
138
|
except Exception as e:
|
|
127
139
|
# We don't care the response of this request, so we don't need to raise any exception.
|
|
128
140
|
logger.debug(f'Failed to update the GitHub PR check. Reason: {str(e)}')
|
|
@@ -140,7 +152,7 @@ class RecceCloud:
|
|
|
140
152
|
|
|
141
153
|
def set_onboarding_state(self, state: str):
|
|
142
154
|
api_url = f'{self.base_url}/users/onboarding-state'
|
|
143
|
-
response = self._request('PUT', api_url,
|
|
155
|
+
response = self._request('PUT', api_url, json={'state': state})
|
|
144
156
|
if response.status_code != 200:
|
|
145
157
|
raise RecceCloudException(
|
|
146
158
|
message='Failed to update onboarding state in Recce Cloud.',
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/SOURCES.txt
RENAMED
|
@@ -30,8 +30,6 @@ recce/data/404.html
|
|
|
30
30
|
recce/data/favicon.ico
|
|
31
31
|
recce/data/index.html
|
|
32
32
|
recce/data/index.txt
|
|
33
|
-
recce/data/_next/static/OXOOZAq4LWXXqX5m_TtEy/_buildManifest.js
|
|
34
|
-
recce/data/_next/static/OXOOZAq4LWXXqX5m_TtEy/_ssgManifest.js
|
|
35
33
|
recce/data/_next/static/chunks/269-83bbdbcbd0cc1ddb.js
|
|
36
34
|
recce/data/_next/static/chunks/29e3cc0d-6e3b0cf904a6874d.js
|
|
37
35
|
recce/data/_next/static/chunks/36e1c10d-800596efe83e74a6.js
|
|
@@ -73,6 +71,8 @@ recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2
|
|
|
73
71
|
recce/data/_next/static/media/montserrat-latin-ext-800-normal.aff52ab0.woff
|
|
74
72
|
recce/data/_next/static/media/montserrat-vietnamese-800-normal.5f21869b.woff
|
|
75
73
|
recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2
|
|
74
|
+
recce/data/_next/static/poWNiO-9u2knvOaIjX61p/_buildManifest.js
|
|
75
|
+
recce/data/_next/static/poWNiO-9u2knvOaIjX61p/_ssgManifest.js
|
|
76
76
|
recce/data/imgs/feedback/thumbs-down.png
|
|
77
77
|
recce/data/imgs/feedback/thumbs-up.png
|
|
78
78
|
recce/data/logo/recce-logo-white.png
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.61.0.20250406
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/adapter/sqlmesh_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/data/logo/recce-logo-white.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce/util/pydantic_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/requires.txt
RENAMED
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/recce_nightly.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_histogram.py
RENAMED
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_preset_checks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_row_count.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{recce_nightly-0.61.0.20250406 → recce_nightly-0.61.0.20250408}/tests/tasks/test_valuediff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|