-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.projenrc.ts
96 lines (88 loc) · 2.32 KB
/
.projenrc.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import {
CodeOfConduct,
GitHubber,
NpmReleaser,
Organisational,
Recommended,
} from "@mountainpass/cool-bits-for-projen";
import { NpmAccess } from "projen/lib/javascript";
import { TypeScriptProject } from "projen/lib/typescript";
const gitHubber = new GitHubber({
name: "problem-document",
username: "mountain-pass",
});
const npmReleaser = new NpmReleaser(gitHubber, {
scope: "mountainpass",
access: NpmAccess.PUBLIC,
release: true,
});
const organisational = new Organisational({
organisation: {
name: "Mountain Pass",
email: "[email protected]",
url: "https://mountain-pass.com.au",
},
});
const project = new TypeScriptProject({
...gitHubber.nodeProjectOptions(),
...organisational.nodeProjectOptions(),
...npmReleaser.nodeProjectOptions(),
...Recommended.defaultProjectOptions,
description:
"A basic RFC7807 Problem Details document with basic type checking and autocomplete" /* The description is just a string that helps people understand the purpose of the package. */,
deps: [] /* Runtime dependencies of this module. */,
devDeps: [
"http-status-codes",
"@types/http-status-codes",
"@mountainpass/cool-bits-for-projen",
] /* Build dependencies for this module. */,
keywords: ["problem-details", "rfc7807"],
defaultReleaseBranch: "main",
projenrcTs: true,
dependabotOptions: {
labels: ["auto-approve"],
},
jestOptions: {
jestConfig: {
coverageThreshold: {
branches: 100,
functions: 100,
lines: 100,
statements: 100,
},
},
},
autoApproveUpgrades: true,
autoApproveOptions: {
allowedUsernames: ["dependabot[bot]"],
label: "auto-approve",
secret: "GITHUB_TOKEN",
},
githubOptions: {
pullRequestLintOptions: {
semanticTitleOptions: {
types: [
"build",
"chore",
"ci",
"docs",
"feat",
"fix",
"perf",
"refactor",
"revert",
"style",
"test",
],
},
},
},
});
new Recommended(project, {
cSpellOptions: { language: "en-GB", ignorePaths: ["docs"] },
});
new CodeOfConduct(project, { contactMethod: "[email protected]" });
gitHubber.addToProject(project);
npmReleaser.addToProject(project);
organisational.addToProject(project);
project.synth();