Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/sync/coderabbit.template.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineConfig } from "@coderabbitai/config"

// Approved authors for this repository, populated by the shared configuration sync.
const autoApproveAuthors = new Set(%<auto_approve_authors>s)
const autoApproveAuthors = new Set<string>(%<auto_approve_authors>s)

export default defineConfig((ctx) => ({
inheritance: true,
Expand Down
6 changes: 5 additions & 1 deletion .github/actions/sync/shared-config_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,15 @@ def expect_coderabbit_config(opted_in: false, directory: target)
successful_command("node", "-", (directory/coderabbit_config).to_s, opted_in.to_s, stdin_data: <<~'JS')
const assert = require("node:assert/strict");
const fs = require("node:fs");
const { stripTypeScriptTypes } = require("node:module");
const vm = require("node:vm");
const source = fs.readFileSync(process.argv[2], "utf8");
// Type stripping cannot catch Set<never> inference for an empty author list.
assert.ok(source.includes("const autoApproveAuthors = new Set<string>("),
"Keep author sets explicitly typed so empty lists accept string lookups");
const optedIn = process.argv[3] === "true";
const sandbox = { defineConfig: (config) => config };
vm.runInNewContext(source
vm.runInNewContext(stripTypeScriptTypes(source)
.replace(/^import \{ defineConfig \} from "@coderabbitai\/config"\n/m, "")
.replace("export default ", "globalThis.config = "), sandbox);

Expand Down
Loading