mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-24 17:28:40 +00:00
Setup Danger (#6994)
This PR sets up [Danger](https://danger.systems/js/) to help us codify some of our PR rules. As an initial rule, Danger will check to ensure that every PR has a `Release Notes` section: <img width="943" alt="Screenshot 2024-01-29 at 11 50 12 AM" src="https://github.com/zed-industries/zed/assets/1486634/4d56e759-e72f-4bc0-8e74-42c55e2e6888"> Release Notes: - N/A
This commit is contained in:
parent
d694017d05
commit
d60ef81ede
5 changed files with 1135 additions and 0 deletions
35
.github/workflows/danger.yml
vendored
Normal file
35
.github/workflows/danger.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
name: Danger
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
types:
|
||||
- opened
|
||||
- synchronize
|
||||
- reopened
|
||||
- edited
|
||||
|
||||
jobs:
|
||||
danger:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: pnpm/action-setup@v2.2.4
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
cache: "pnpm"
|
||||
cache-dependency-path: "script/danger/pnpm-lock.yaml"
|
||||
|
||||
- run: pnpm install --dir script/danger
|
||||
|
||||
- name: Run Danger
|
||||
run: pnpm run --dir script/danger danger ci
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
1
script/danger/.gitignore
vendored
Normal file
1
script/danger/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
node_modules/
|
27
script/danger/dangerfile.ts
Normal file
27
script/danger/dangerfile.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { danger, warn } from "danger";
|
||||
|
||||
const RELEASE_NOTES_PATTERN = new RegExp("Release Notes:\\r?\\n\\s+-", "gm");
|
||||
|
||||
const hasReleaseNotes = RELEASE_NOTES_PATTERN.test(danger.github.pr.body);
|
||||
if (!hasReleaseNotes) {
|
||||
warn(
|
||||
[
|
||||
"This PR is missing release notes.",
|
||||
"",
|
||||
'Please add a "Release Notes" section that describes the change:',
|
||||
"",
|
||||
"```",
|
||||
"Release Notes:",
|
||||
"",
|
||||
"- (Added|Fixed|Improved) ... ([#<public_issue_number_if_exists>](https://github.com/zed-industries/zed/issues/<public_issue_number_if_exists>)).",
|
||||
"```",
|
||||
"",
|
||||
'If your change is not user-facing, you can use "N/A" for the entry:',
|
||||
"```",
|
||||
"Release Notes:",
|
||||
"",
|
||||
"- N/A",
|
||||
"```",
|
||||
].join("\n"),
|
||||
);
|
||||
}
|
12
script/danger/package.json
Normal file
12
script/danger/package.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "danger",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"danger": "danger"
|
||||
},
|
||||
"devDependencies": {
|
||||
"danger": "11.3.1"
|
||||
}
|
||||
}
|
1060
script/danger/pnpm-lock.yaml
Normal file
1060
script/danger/pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue