Last active
May 17, 2024 09:44
-
-
Save Akihide-Tsue/b82ebe50a1f429e5053890fc8a1b79d7 to your computer and use it in GitHub Desktop.
DangerJsでのconsole混入警告、PR差分肥大時の警告、package.jsonのdependencies内に直接@typesのパッケージをインストールさせない
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { danger, fail, warn } from "danger" | |
const modifiedFiles = danger.git.modified_files | |
modifiedFiles.forEach(async (file) => { | |
const diff = await danger.git.diffForFile(file) | |
// console.logが新規で追加された場合に警告する | |
if (diff && diff.diff.includes("console.log")) | |
warn(`:exclamation: console.log が追加されました。 (${file})`) | |
}) | |
const checkLinesOfCode = async () => { | |
const diffLines = (await danger.git.linesOfCode("!yarn.lock")) ?? 0 | |
console.log("diffLines", diffLines) | |
if (diffLines >= 1000 && diffLines < 1500) | |
warn( | |
`:exclamation: (${diffLines}行) 差分が大きすぎます!チケットを分割できるか確認して下さい!`, | |
) | |
if (diffLines >= 1500) | |
warn( | |
`:exclamation: (${diffLines}行) 差分が大きすぎます!チケットを分割してPull Request を細かくしましょう!`, | |
) | |
if (diffLines >= 2000) | |
warn( | |
`:no_entry: (${diffLines}行) 差分が大きすぎます!チケットを分割してPull Request を細かくしましょう!`, | |
) | |
} | |
checkLinesOfCode() | |
const checkDependencies = async () => { | |
const packageJsonUpdate = await danger.git.diffForFile("package.json") | |
if (packageJsonUpdate) { | |
const diff = JSON.parse(packageJsonUpdate.after) | |
const typeDependencies = Object.keys(diff.dependencies).filter( | |
(dependency) => dependency.startsWith("@types/"), | |
) | |
if (typeDependencies.length > 0) { | |
fail( | |
"直接 dependencies に @types ライブラリを追加しないでください。代わりに、`yarn add @types/package_name --dev` を使用してください。", | |
) | |
} | |
} | |
} | |
checkDependencies() | |
// CLI確認コマンド | |
// export DANGER_GITHUB_API_TOKEN='ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' | |
// danger pr https://github.com/tentie-com/MusicAll-webfront/pull/585 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run DangerJS | |
on: | |
pull_request: | |
types: [opened, synchronize, edited] | |
jobs: | |
build: | |
name: Danger JS | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
# [bot]を含む場合は除外 | |
if: ${{ !contains(github.actor, '[bot]') }} | |
permissions: write-all | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Danger | |
uses: danger/danger-js@11.3.1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} | |
DANGER_DISABLE_TRANSPILATION: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment