From 7972bdecc12221fd4f7683d79e9f30715df2ac5a Mon Sep 17 00:00:00 2001 From: Amirhossein Alibakhshi Date: Fri, 11 Apr 2025 18:03:28 +0330 Subject: [PATCH 01/21] chore: setup danger --- .github/workflows/development.yml | 27 + dangerfile.ts | 18 + internals/danger/DangerClient.ts | 109 ++++ internals/danger/plugins/checkLockFile.ts | 25 + internals/danger/plugins/checkPRAssignee.ts | 10 + internals/danger/plugins/checkPRSize.ts | 27 + internals/danger/plugins/checkPlayground.ts | 16 + package.json | 2 + pnpm-lock.yaml | 630 ++++++++++++++++++++ 9 files changed, 864 insertions(+) create mode 100644 dangerfile.ts create mode 100644 internals/danger/DangerClient.ts create mode 100644 internals/danger/plugins/checkLockFile.ts create mode 100644 internals/danger/plugins/checkPRAssignee.ts create mode 100644 internals/danger/plugins/checkPRSize.ts create mode 100644 internals/danger/plugins/checkPlayground.ts diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index f3d8d01d..08037705 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -14,6 +14,33 @@ permissions: pull-requests: write jobs: + danger: + name: โšก Run Danger + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: โ˜๏ธ checkout repository + uses: actions/checkout@v4 + + - name: ๐Ÿ”ง setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 9 + + - name: ๐Ÿ”ง setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: ๐Ÿ“ฆ install dependencies + run: pnpm install + + - name: โšก run danger file + run: pnpm danger + env: + DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + lint: name: ๐Ÿ” Run linter runs-on: ubuntu-latest diff --git a/dangerfile.ts b/dangerfile.ts new file mode 100644 index 00000000..74daa981 --- /dev/null +++ b/dangerfile.ts @@ -0,0 +1,18 @@ +import { danger } from "danger"; + +import DangerClient from "./internals/danger/DangerClient.ts"; +import { checkLockFile } from "./internals/danger/plugins/checkLockFile.ts"; +import { checkPlayground } from "./internals/danger/plugins/checkPlayground.ts"; +import { checkPRAssignee } from "./internals/danger/plugins/checkPRAssignee.ts"; +import { checkPRSize } from "./internals/danger/plugins/checkPRSize.ts"; + +await (async function tasks() { + const dangerClient = new DangerClient(danger); + + dangerClient.use(checkLockFile); + dangerClient.use(checkPlayground); + dangerClient.use(checkPRSize); + dangerClient.use(checkPRAssignee); + + await dangerClient.analyze(); +})(); diff --git a/internals/danger/DangerClient.ts b/internals/danger/DangerClient.ts new file mode 100644 index 00000000..948997b7 --- /dev/null +++ b/internals/danger/DangerClient.ts @@ -0,0 +1,109 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { + type DangerDSLType, + type DangerResults, + type GitDSL, + type GitHubDSL, + type GitLabDSL, +} from "danger"; + +declare let results: DangerResults; +declare const warn: (msg: string, file?: string, line?: number) => void; +declare const fail: (msg: string, file?: string, line?: number) => void; +declare const message: (msg: string, file?: string, line?: number) => void; +declare const markdown: (msg: string, file?: string, line?: number) => void; +export type PluginRuntime