-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathcopier.yml
100 lines (86 loc) · 2.64 KB
/
copier.yml
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
97
98
99
100
_subdirectory: template
project_type:
type: str
help: Is this project a package or an app?
choices:
- app
- package
default: package
project_name:
type: str
help: What is your {{ project_type }}'s name?
placeholder: "{% if project_type == 'app' %}My App{% else %}My Package{% endif %}"
validator: >-
{% if not project_name.strip() %}
Invalid project name
{% endif %}
project_description:
type: str
help: What does your {{ project_type }} do in one sentence?
placeholder: A Python {{ project_type }} that reticulates splines.
validator: >-
{% if not project_description.strip() %}
Invalid project description
{% endif %}
project_url:
type: str
help: What is the URL of your project's repository?
placeholder: https://github.com/user/{{ project_type }}
validator: >-
{% if not project_url.startswith("https://") %}
Invalid project URL
{% endif %}
author_name:
type: str
help: What is the name of your {{ project_type }}'s primary author?
placeholder: John Smith
validator: >-
{% if not author_name %}
Invalid author name
{% endif %}
author_email:
type: str
help: What is the email address of your {{ project_type }}'s primary author?
placeholder: [email protected]
validator: >-
{% if not "@" in author_email %}
Invalid author email address
{% endif %}
python_version:
type: str
help: "{% if project_type == 'app' %}Which Python version should your app use?{% else %}What is the minimum Python version your package should support?{% endif %}"
default: "{% if project_type == 'app' %}3.12{% else %}3.10{% endif %}"
ci:
type: str
help: Which CI/CD provider would you like to use?
choices:
GitHub Actions: github
GitLab CI/CD: gitlab
default: "{% if 'github' in project_url %}github{% else %}gitlab{% endif %}"
when: "{{ 'github' not in project_url and 'gitlab' not in project_url }}"
typing:
type: str
help: Do you want to use optional or strict typing and linting?
choices:
Optional: optional
Strict: strict
default: optional
with_conventional_commits:
type: bool
help: Do you want to follow the Conventional Commits standard (https://www.conventionalcommits.org) for your commit messages?
default: true
with_fastapi_api:
type: bool
help: Does your app need a FastAPI API?
default: false
when: "{{ project_type == 'app' }}"
with_typer_cli:
type: bool
help: Does your {{ project_type }} need a Typer CLI?
default: false
project_name_kebab_case:
when: false
default: "{{ project_name | lower | replace(' ', '-') }}"
project_name_snake_case:
when: false
default: "{{ project_name | lower | replace(' ', '_') }}"