Skip to content

ci: fork verification pipeline, deploy gate, secret placeholders, audit Round 4 - #73

Merged
JOY (JOY) merged 7 commits into
devfrom
ci/fork-verification-gate
Sep 16, 2026
Merged

JOY (JOY) merged 7 commits into
devfrom
ci/fork-verification-gate

Conversation

@JOY

Copy link
Copy Markdown

What

  1. Fork CI (audit HI-09) - new fork-ci.yml runs type-check + lint + unit tests on pull_request and push to dev/main. The upstream All checks workflow only fires on merge_group and is guarded to calcom/cal.diy, so nothing verified this fork until now.
  2. Deploy gate (audit HI-09) - deploy-docker.yml now requires a type-check job to pass before publishing :latest to GHCR.
  3. Secret placeholders (audit CR-08 + LO-13) - apps/api/v2/.env.example shipped real NEXTAUTH_SECRET / JWT_SECRET / CALENDSO_ENCRYPTION_KEY / CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY values and README-PLATFORM.md embedded a fully-signed example JWT. All replaced with placeholders.
  4. Audit report Round 4 - docs/audit/2026-09-08-audit-report.html: records fixes verified in code since the last update (MD-03, MD-05/06, LO-02, LO-03, MD-29), marks HI-09/CR-08 fixed, adds a status badge to every finding, switches to native dark theme.
  5. Feature gap report - docs/audit/2026-09-16-calcom-vs-crove-cal-gap.html (new, Vietnamese, dark): Cal.com features v6.2-v6.9 the fork lacks, each with repo verification evidence and a recommended order. Context: Cal.com went closed source in 2026-04, so none of this can arrive via upstream sync anymore.

Evidence

  • Verified remaining-tail state in code on 2026-09-16 before writing status (grep + git log per finding).
  • Inline script of the audit report passes node --check; STATUS map covers all 76 findings.

Risk

  • CI may need tuning on first real run (secrets such as TURBO_TOKEN are absent on this repo - jobs degrade to local cache).
  • Cron workflows (HI-10) intentionally NOT enabled yet: they need fork secrets (CRON_SECRET etc.) configured first.

🤖 Generated by ZCode

@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: bbda81e4-adbf-4c45-b8ef-f36c1068acb6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request replaces hardcoded secrets and tokens with placeholder instructions in .env.example and README-PLATFORM.md to prevent credential exposure. It also introduces a new HTML audit document comparing Cal.com and Crove-Cal features. Feedback on the audit document highlights a mismatch between the summary card counts and the detailed table entries, which should be corrected for consistency.

Comment on lines +60 to +65
<div class="cards">
<div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div>
<div class="card warn"><div class="num">2</div><div class="lbl">Có một phần / bản cũ</div></div>
<div class="card ok"><div class="num">4</div><div class="lbl">Không cần cho use-case DOS</div></div>
<div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div>
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a mismatch between the summary cards and the actual counts in the detailed table below:

  • The count of items with a partial/old version status (b-part) is 5 (Workflows 2.0, Troubleshooter 2.0, PBAC role overlays, Audit logs, Salesforce improvements), but the card shows 2.
  • The count of items marked as not needed for the DOS use-case (KHÔNG CẦN priority) is 6 (Cal.ai, Cal Events, Cal Pay, Design system, Cal.com Agents, Salesforce improvements), but the card shows 4.

Updating these numbers will ensure the summary section is accurate and consistent with the detailed table.

Suggested change
<div class="cards">
<div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div>
<div class="card warn"><div class="num">2</div><div class="lbl">Có một phần / bản cũ</div></div>
<div class="card ok"><div class="num">4</div><div class="lbl">Không cần cho use-case DOS</div></div>
<div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div>
</div>
<div class="cards">
<div class="card miss"><div class="num">12</div><div class="lbl">Tính năng fork CHƯA có</div></div>
<div class="card warn"><div class="num">5</div><div class="lbl">Có một phần / bản cũ</div></div>
<div class="card ok"><div class="num">6</div><div class="lbl">Không cần cho use-case DOS</div></div>
<div class="card info"><div class="num">0</div><div class="lbl">Port được từ upstream (đã đóng source)</div></div>
</div>

JOY added 3 commits September 16, 2026 18:18
The upstream All checks workflow only fires on merge_group and is
guarded to calcom/cal.diy, so nothing verified pushes or PRs on
DOS/Crove-Cal (audit finding HI-09). fork-ci.yml runs type-check, lint
and unit tests on pull_request and push to dev/main, reusing the
existing reusable workflows. deploy-docker.yml now requires a
type-check job to pass before publishing :latest to GHCR.

The caller grants actions:write explicitly: lint.yml asks for it and a
called workflow requesting more than the default GITHUB_TOKEN grant
makes every run die as a startup_failure before any job is created.
apps/api/v2/.env.example carried real NEXTAUTH_SECRET, JWT_SECRET,
CALENDSO_ENCRYPTION_KEY and CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY values
and README-PLATFORM.md embedded a fully-signed example JWT (audit
findings CR-08 and LO-13). Anyone copying the example would run with
publicly-known keys. Replaced with placeholders.
… report

Round 4 status (2026-09-16, verified in code): MD-03, MD-05/06, LO-02,
LO-03, MD-29 were already fixed by commits after the last report update
and are now recorded; HI-09 (fork CI + deploy gate) and CR-08 (env
example placeholders) close in this PR. Every finding now carries a
status badge (fixed / partial / decision / open) with per-finding notes.

Also adds a dark-theme Vietnamese report comparing Cal.com features
(v6.2-v6.9, post closed-source) against the fork, with per-item repo
verification evidence and a recommended order. The audit report is
switched to a native dark theme to match the docs standard.
@JOY
JOY (JOY) force-pushed the ci/fork-verification-gate branch from bd28132 to 8dd12ef Compare September 16, 2026 11:18
JOY added 4 commits September 16, 2026 18:21
The embed-react program pulls in embed-core sources through tsconfig
paths; those files reference the node 'process' global. Locally the
root-hoisted @types/node happened to be visible, but a clean CI install
resolves differently and every run failed with TS2591 (Cannot find name
'process'). embed-core already declares "types": ["node"]; mirror it
here so the check is deterministic instead of layout-dependent.
Commit 4234549 untracked the app-store generated files, relying on
the pre-commit hook to regenerate them locally. A clean CI checkout has
no such hook, so type-check and unit tests died on missing
apps.schemas.generated / apps.metadata.generated imports. Run the same
'yarn app-store:build' the hook uses right after yarn install.
embed-snippet pulls embed-core sources into its program and hit the
same TS2591 'process' failure as embed-react; declare node types the
same way.

The /api/health test still asserted the pre-MD-15 behavior where the
raw database error string was returned in the response body. The route
no longer leaks it, so assert the error field is undefined instead.
Verified locally: 3/3 tests pass.
Local runs pass because platform packages carry dist/ artifacts from
earlier builds, and 'types' resolution plus skipLibCheck hides
redeclarations in platform/types sources. A clean CI checkout has no
dist, so apps/web type-checked those sources directly and failed with
a wall of TS2612. Making type-check depend on ^build gives CI the same
artifacts local development always has.
@JOY
JOY (JOY) merged commit 412ec66 into dev Sep 16, 2026
9 checks passed
@JOY
JOY (JOY) deleted the ci/fork-verification-gate branch September 16, 2026 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant