54 |
55 | Open Source Software is not about the code in the first place but the communications and community. People love good documentation and obvious workflows. If your software solves some problem, but nobody can figure out how to use it or, for example, how to create an effective bug report, there's something very bad going on. Did you hear about Readme Driven Development? Check out the awesome [article written by GitHub co-founder Tom Preston-Werner](https://tom.preston-werner.com/2010/08/23/readme-driven-development.html).
56 |
57 | There are many great README or issues templates available on GitHub, however, you have to find them yourself and combine different templates yourself. In addition, if you want extensive docs like CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md or even advanced GitHub features like a pull request template, additional labels, code scanning, and automatic issue/PR closing and locking you have to do much more work. Your time should be focused on creating something **amazing**. You shouldn't be doing the same tasks over and over like creating your GitHub project template from scratch. Follow the **don’t repeat yourself** principle. Use a template **and go create something amazing**!
58 |
59 | Key features of **Amazing GitHub Template**:
60 |
61 | - Configurable README.md template
62 | - Configurable LICENSE template
63 | - Configurable CODE_OF_CONDUCT.md template
64 | - Configurable CONTRIBUTING.md template
65 | - Configurable SECURITY.md template
66 | - Configurable issues template
67 | - Pull request template
68 | - CODEOWNERS template
69 | - Additional labels template
70 | - Automatic locking for closed issues and PRs workflow
71 | - Automatic cleaning for stale issues and PRs workflow
72 | - Automatic label verification for PRs workflow
73 | - Automatic security code scanning workflow via CodeQL
74 |
75 |
76 | Additional info
77 |
78 |
79 | This project is the result of huge research. I'm a long-time GitHub user so I've seen more than [7.3k](https://github.com/dec0dOS?tab=stars) READMEs so far. I've started writing docs for my open source projects (that are currently in their early stages so they exist in the private space for now). After I've analyzed many popular GitHub READMEs and other GitHub-related docs and features I've tried to create a general-propose template that may be useful for any project.
80 |
81 | Of course, no template will serve all the projects since your needs may be different. So [Cookiecutter](https://github.com/cookiecutter/cookiecutter) comes to the rescue. It allows [Jinja template language](https://jinja.palletsprojects.com) to be used for complex cases. Just enter up the project preferences you want in the Cookiecutter interactive menu and that's it. There is a manual setup that could be useful for your existing projects (or if you don't want to use Cookiecutter for some reason). **This README.md file is not a template itself**, you should [download the precompiled template](https://github.com/dec0dOS/amazing-github-template/releases/download/latest/template.zip) and replace the predefined values, then remove unused sections.
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | ### Built With
90 |
91 | - [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)
92 | - [Cookiecutter](https://github.com/cookiecutter/cookiecutter)
93 | - [GitHub Actions](https://github.com/features/actions)
94 | - [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli)
95 |
96 | ## Getting Started
97 |
98 | ### Prerequisites
99 |
100 | The recommended method to install **Amazing GitHub Template** is by using [Cookiecutter](https://github.com/cookiecutter/cookiecutter). For manual install please refer to [manual setup section](#manual-setup).
101 |
102 | The easiest way to install Cookiecutter is by running:
103 |
104 | ```sh
105 | pip install --user cookiecutter
106 | ```
107 |
108 | For other install options, please refer to [Cookiecutter installation manual](https://cookiecutter.readthedocs.io/en/latest/installation.html).
109 |
110 | ### Usage
111 |
112 | #### Cookiecutter template
113 |
114 | After installing Cookiecutter, all you need to do is to run the following command:
115 |
116 | ```sh
117 | cookiecutter gh:dec0dOS/amazing-github-template
118 | ```
119 |
120 | You will get an interactive prompt where you'll specify relevant options for your project (or the default value will be used).
121 |
122 | 
123 |
124 | #### Manual setup
125 |
126 | Please follow these steps for manual setup:
127 |
128 | 1. [Download the precompiled template](https://github.com/dec0dOS/amazing-github-template/releases/download/latest/template.zip)
129 | 2. Replace all the [variables](#variables-reference) to your desired values
130 | 3. Initialize the repo in the precompiled template folder
131 |
132 | `or`
133 |
134 | Move the necessary files from precompiled template folder to your existing project directory. Don't forget the `.github` directory that may be hidden by default in your operating system
135 |
136 | #### Variables reference
137 |
138 | Please note that entered values are case-sensitive.
139 | Default values are provided as an example to help you figure out what should be entered.
140 |
141 | > On manual setup, you need to replace only values written in **uppercase**.
142 |
143 | | Name | Default value | Description |
144 | | -------------------------- | ------------------ | --------------------------------------------------------------------------- |
145 | | PROJECT_NAME | My Amazing Project | Your project name |
146 | | REPO_SLUG | my-amazing-project | Repo slug must match the GitHub repo URL slug part |
147 | | GITHUB_USERNAME | dec0dOS | Your GitHub username **without @** |
148 | | FULL_NAME | Alexey Potapov | Your full name |
149 | | OPEN_SOURCE_LICENSE | MIT license | Full OSS license name |
150 | | modern_header | y | Use HTML to prettify your header |
151 | | table_in_about | n | Use table to wrap around About section |
152 | | include_logo | y | Include Logo section. Only valid when `modern_header == y` |
153 | | include_badges | y | Include section for badges |
154 | | include_toc | y | Include Table of Contents |
155 | | include_screenshots | y | Include Screenshots section |
156 | | include_project_assistance | y | Include Project assistance section |
157 | | include_authors | y | Include Authors & contributors section |
158 | | include_security | y | Include Security section and SECURITY.md file |
159 | | include_acknowledgements | y | Include Acknowledgements section |
160 | | include_code_of_conduct | y | Include CODE_OF_CONDUCT.md file |
161 | | include_workflows | y | Include .github/workflows directory |
162 | | use_codeql | y | Use [CodeQL](https://securitylab.github.com/tools/codeql/) |
163 | | use_conventional_commits | y | Add [Conventional Commits](https://www.conventionalcommits.org) notice |
164 | | use_github_discussions | n | Use [GitHub Discussions](https://docs.github.com/en/discussions/quickstart) |
165 |
166 | > NOTICE: to use GitHub Discussions, you have to [enable it first](https://docs.github.com/en/discussions/quickstart).
167 |
168 | ## Roadmap
169 |
170 | See the [open issues](https://github.com/dec0dOS/amazing-github-template/issues) for a list of proposed features (and known issues).
171 |
172 | - [Top Feature Requests](https://github.com/dec0dOS/amazing-github-template/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
173 | - [Top Bugs](https://github.com/dec0dOS/amazing-github-template/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
174 | - [Newest Bugs](https://github.com/dec0dOS/amazing-github-template/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
175 |
176 | ## Contributing
177 |
178 | First off, thanks for taking the time to contribute! Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**.
179 |
180 | Please try to create bug reports that are:
181 |
182 | - _Reproducible._ Include steps to reproduce the problem.
183 | - _Specific._ Include as much detail as possible: which version, what environment, etc.
184 | - _Unique._ Do not duplicate existing opened issues.
185 | - _Scoped to a Single Bug._ One bug per report.
186 |
187 | Please adhere to this project's [code of conduct](docs/CODE_OF_CONDUCT.md).
188 |
189 | You can use [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) to check for common markdown style inconsistency.
190 |
191 | ## Support
192 |
193 | Reach out to the maintainer at one of the following places:
194 |
195 | - [GitHub discussions](https://github.com/dec0dOS/amazing-github-template/discussions)
196 | - The email which is located [in GitHub profile](https://github.com/dec0dOS)
197 |
198 | ## License
199 |
200 | This project is licensed under the **MIT license**. Feel free to edit and distribute this template as you like.
201 |
202 | See [LICENSE](LICENSE) for more information.
203 |
204 | ## Acknowledgements
205 |
206 | Thanks for these awesome resources that were used during the development of the **Amazing GitHub template**:
207 |
208 | -
209 | -
210 | -
211 | -
212 | -
213 | -
214 | -
215 | -
216 | -
217 | -
218 | -
219 | -
220 | -
221 | -
222 | -
223 | -
224 | -
225 | -
226 | -
227 | -
228 | -
229 |
--------------------------------------------------------------------------------
/cookiecutter.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_name": "My Amazing Project",
3 | "repo_slug": "{{ cookiecutter.project_name.lower().replace(' ', '-').replace('_', '-') }}",
4 | "github_username": "dec0dOS",
5 | "full_name": "Alexey Potapov",
6 | "open_source_license": [
7 | "MIT license",
8 | "BSD license",
9 | "Apache Software License 2.0",
10 | "GNU General Public License v3",
11 | "Not open source"
12 | ],
13 | "modern_header": "y",
14 | "table_in_about": "n",
15 | "include_logo": "y",
16 | "include_badges": "y",
17 | "include_toc": "y",
18 | "include_screenshots": "y",
19 | "include_project_assistance": "y",
20 | "include_authors": "y",
21 | "include_security": "y",
22 | "include_acknowledgements": "y",
23 | "include_code_of_conduct": "y",
24 | "include_workflows": "y",
25 | "use_codeql": "y",
26 | "use_conventional_commits": "y",
27 | "use_github_discussions": "n"
28 | }
29 |
--------------------------------------------------------------------------------
/docs/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer using any of the [private contact addresses](https://github.com/dec0dOS/amazing-github-template#support). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at
44 |
45 | For answers to common questions about this code of conduct, see
46 |
--------------------------------------------------------------------------------
/hooks/post_gen_project.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import shutil
4 |
5 | PROJECT_DIRECTORY = os.path.realpath(os.path.curdir)
6 |
7 |
8 | def remove(filepath):
9 | fullpath = os.path.join(PROJECT_DIRECTORY, filepath)
10 | if os.path.isfile(fullpath):
11 | os.remove(fullpath)
12 | else:
13 | shutil.rmtree(fullpath, ignore_errors=True)
14 |
15 |
16 | if __name__ == "__main__":
17 | if "{{ cookiecutter.open_source_license }}" == "Not open source":
18 | remove(".github/workflows/codeql.yml") # codeql is available for free only for OSS
19 | remove("LICENSE")
20 |
21 | if "{{ cookiecutter.include_logo }}" != "y":
22 | remove("docs/images/logo.svg")
23 |
24 | if "{{ cookiecutter.include_screenshots }}" != "y":
25 | remove("docs/images/screenshot.png")
26 |
27 | if "{{ cookiecutter.include_security }}" != "y":
28 | remove("docs/SECURITY.md")
29 |
30 | if "{{ cookiecutter.include_code_of_conduct }}" != "y":
31 | remove("docs/CODE_OF_CONDUCT.md")
32 |
33 | if "{{ cookiecutter.include_workflows }}" != "y":
34 | remove(".github/workflows")
35 | remove(".github/labels.yml")
36 |
37 | if "{{ cookiecutter.use_github_discussions }}" == "y":
38 | remove(".github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md")
39 |
40 | if "{{ cookiecutter.use_codeql }}" != "y":
41 | remove(".github/workflows/codeql.yml")
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @{{cookiecutter.github_username}}
2 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug Report
3 | about: Create a report to help {{cookiecutter.project_name}} to improve
4 | title: "bug: "
5 | labels: "bug"
6 | assignees: ""
7 | ---
8 |
9 | # Bug Report
10 |
11 | **{{cookiecutter.project_name}} version:**
12 |
13 |
14 |
15 | **Current behavior:**
16 |
17 |
18 |
19 | **Expected behavior:**
20 |
21 |
22 |
23 | **Steps to reproduce:**
24 |
25 |
26 |
27 | **Related code:**
28 |
29 |
30 |
31 | ```
32 | insert short code snippets here
33 | ```
34 |
35 | **Other information:**
36 |
37 |
38 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature Request
3 | about: Suggest an idea for this project
4 | title: "feat: "
5 | labels: "enhancement"
6 | assignees: ""
7 | ---
8 |
9 | # Feature Request
10 |
11 | **Describe the Feature Request**
12 |
13 |
14 |
15 | **Describe Preferred Solution**
16 |
17 |
18 |
19 | **Describe Alternatives**
20 |
21 |
22 |
23 | **Related Code**
24 |
25 |
26 |
27 | **Additional Context**
28 |
29 |
30 |
31 | **If the feature request is approved, would you be willing to submit a PR?**
32 | _(Help can be provided if you need assistance submitting a PR)_
33 |
34 | - [ ] Yes
35 | - [ ] No
36 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Codebase improvement
3 | about: Provide your feedback for the existing codebase. Suggest a better solution for algorithms, development tools, etc.
4 | title: "dev: "
5 | labels: "enhancement"
6 | assignees: ""
7 | ---
8 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Support Question
3 | about: Question on how to use this project
4 | title: "support: "
5 | labels: "question"
6 | assignees: ""
7 | ---
8 |
9 | # Support Question
10 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | ---
2 | blank_issues_enabled: false
3 | {% if cookiecutter.use_github_discussions == 'y' -%}
4 | contact_links:
5 | - name: {{cookiecutter.project_name}} Community Support
6 | url: https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions
7 | about: Please ask and answer questions here.
8 | {% endif %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Pull Request type
4 |
5 |
6 |
7 | Please check the type of change your PR introduces:
8 |
9 | - [ ] Bugfix
10 | - [ ] Feature
11 | - [ ] Code style update (formatting, renaming)
12 | - [ ] Refactoring (no functional changes, no API changes)
13 | - [ ] Build-related changes
14 | - [ ] Documentation content changes
15 | - [ ] Other (please describe):
16 |
17 | ## What is the current behavior?
18 |
19 |
20 |
21 | Issue Number: N/A
22 |
23 | ## What is the new behavior?
24 |
25 |
26 |
27 | -
28 | -
29 | -
30 |
31 | ## Does this introduce a breaking change?
32 |
33 | - [ ] Yes
34 | - [ ] No
35 |
36 |
37 |
38 | ## Other information
39 |
40 |
41 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/labels.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: "breaking-change"
3 | color: ee0701
4 | description: "A change that changes the API or breaks backward compatibility for users."
5 | - name: "bugfix"
6 | color: ee0701
7 | description: "Inconsistencies or issues which will cause a problem for users or implementors."
8 | - name: "documentation"
9 | color: 0052cc
10 | description: "Solely about the documentation of the project."
11 | - name: "enhancement"
12 | color: 1d76db
13 | description: "Enhancement of the code, not introducing new features."
14 | - name: "refactor"
15 | color: 1d76db
16 | description: "Updating the code with simpler, easier to understand or more efficient syntax or methods, but not introducing new features."
17 | - name: "performance"
18 | color: 1d76db
19 | description: "Improving performance of the project, not introducing new features."
20 | - name: "new-feature"
21 | color: 0e8a16
22 | description: "New features or options."
23 | - name: "maintenance"
24 | color: 2af79e
25 | description: "Generic maintenance tasks."
26 | - name: "ci"
27 | color: 1d76db
28 | description: "Work that improves the continuous integration."
29 | - name: "dependencies"
30 | color: 1d76db
31 | description: "Change in project dependencies."
32 |
33 | - name: "in-progress"
34 | color: fbca04
35 | description: "Issue is currently being worked on by a developer."
36 | - name: "stale"
37 | color: fef2c0
38 | description: "No activity for quite some time."
39 | - name: "no-stale"
40 | color: fef2c0
41 | description: "This is exempt from the stale bot."
42 |
43 | - name: "security"
44 | color: ee0701
45 | description: "Addressing a vulnerability or security risk in this project."
46 | - name: "incomplete"
47 | color: fef2c0
48 | description: "Missing information."
49 | - name: "invalid"
50 | color: fef2c0
51 | description: "This is off-topic, spam, or otherwise doesn't apply to this project."
52 |
53 | - name: "beginner-friendly"
54 | color: 0e8a16
55 | description: "Good first issue for people wanting to contribute to this project."
56 | - name: "help-wanted"
57 | color: 0e8a16
58 | description: "We need some extra helping hands or expertise in order to resolve this!"
59 |
60 | - name: "priority-critical"
61 | color: ee0701
62 | description: "Must be addressed as soon as possible."
63 | - name: "priority-high"
64 | color: b60205
65 | description: "After critical issues are fixed, these should be dealt with before any further issues."
66 | - name: "priority-medium"
67 | color: 0e8a16
68 | description: "This issue may be useful, and needs some attention."
69 | - name: "priority-low"
70 | color: e4ea8a
71 | description: "Nice addition, maybe... someday..."
72 |
73 | - name: "major"
74 | color: b60205
75 | description: "This PR causes a major bump in the version number."
76 | - name: "minor"
77 | color: 0e8a16
78 | description: "This PR causes a minor bump in the version number."
79 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/workflows/codeql.yml:
--------------------------------------------------------------------------------
1 | ---{% raw %}
2 | name: CodeQL
3 |
4 | on:
5 | push:
6 | pull_request:
7 | schedule:
8 | - cron: "30 1 * * 0"
9 |
10 | jobs:
11 | codeql:
12 | name: 🏭 Scanning
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: ⤵️ Check out code from GitHub
16 | uses: actions/checkout@v2
17 | - name: 🏗 Initialize CodeQL
18 | uses: github/codeql-action/init@v1
19 | - name: 🚀 Perform CodeQL Analysis
20 | uses: github/codeql-action/analyze@v1
21 | {% endraw %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/workflows/labels.yml:
--------------------------------------------------------------------------------
1 | ---{% raw %}
2 | name: Sync labels
3 |
4 | on:
5 | push:
6 | branches:
7 | - main
8 | paths:
9 | - .github/labels.yml
10 |
11 | jobs:
12 | labels:
13 | name: ♻️ Sync labels
14 | runs-on: ubuntu-latest
15 | steps:
16 | - name: ⤵️ Check out code from GitHub
17 | uses: actions/checkout@v2
18 | - name: 🚀 Run Label Syncer
19 | uses: micnncim/action-label-syncer@v1.2.0
20 | env:
21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22 | {% endraw %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/workflows/lock.yml:
--------------------------------------------------------------------------------
1 | ---{% raw %}
2 | name: Lock
3 |
4 | on:
5 | schedule:
6 | - cron: "0 9 * * *"
7 | workflow_dispatch:
8 |
9 | jobs:
10 | lock:
11 | name: 🔒 Lock closed issues and PRs
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: dessant/lock-threads@v2.0.3
15 | with:
16 | github-token: ${{ github.token }}
17 | issue-lock-inactive-days: "30"
18 | issue-lock-reason: ""
19 | issue-comment: >
20 | Issue closed and locked due to lack of activity.
21 |
22 | If you encounter this same issue, please open a new issue and refer
23 | to this closed one.
24 | pr-lock-inactive-days: "1"
25 | pr-lock-reason: ""
26 | pr-comment: >
27 | Pull Request closed and locked due to lack of activity.
28 |
29 | If you'd like to build on this closed PR, you can clone it using
30 | this method: https://stackoverflow.com/a/14969986
31 |
32 | Then open a new PR, referencing this closed PR in your message.
33 | {% endraw %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/workflows/pr-labels.yml:
--------------------------------------------------------------------------------
1 | ---{% raw %}
2 | name: PR Labels
3 |
4 | on:
5 | pull_request:
6 | types: [opened, labeled, unlabeled, synchronize]
7 |
8 | jobs:
9 | pr_labels:
10 | name: 🏭 Verify
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: 🏷 Verify PR has a valid label
14 | uses: jesusvasquez333/verify-pr-label-action@v1.4.0
15 | with:
16 | github-token: "${{ secrets.GITHUB_TOKEN }}"
17 | valid-labels: >-
18 | breaking-change, bugfix, documentation, enhancement,
19 | refactor, performance, new-feature, maintenance, ci, dependencies
20 | disable-reviews: true
21 | {% endraw %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | ---{% raw %}
2 | name: Stale
3 |
4 | on:
5 | schedule:
6 | - cron: "0 8 * * *"
7 | workflow_dispatch:
8 |
9 | jobs:
10 | stale:
11 | name: 🧹 Clean up stale issues and PRs
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: 🚀 Run stale
15 | uses: actions/stale@v3
16 | with:
17 | repo-token: ${{ secrets.GITHUB_TOKEN }}
18 | days-before-stale: 30
19 | days-before-close: 7
20 | remove-stale-when-updated: true
21 | stale-issue-label: "stale"
22 | exempt-issue-labels: "no-stale,help-wanted"
23 | stale-issue-message: >
24 | There hasn't been any activity on this issue recently, and in order
25 | to prioritize active issues, it will be marked as stale.
26 |
27 | Please make sure to update to the latest version and
28 | check if that solves the issue. Let us know if that works for you
29 | by leaving a 👍
30 |
31 | Because this issue is marked as stale, it will be closed and locked
32 | in 7 days if no further activity occurs.
33 |
34 | Thank you for your contributions!
35 | stale-pr-label: "stale"
36 | exempt-pr-labels: "no-stale"
37 | stale-pr-message: >
38 | There hasn't been any activity on this pull request recently, and in
39 | order to prioritize active work, it has been marked as stale.
40 |
41 | This PR will be closed and locked in 7 days if no further activity
42 | occurs.
43 |
44 | Thank you for your contributions!
45 | {% endraw %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSE:
--------------------------------------------------------------------------------
1 | {% if cookiecutter.open_source_license == 'MIT license' -%}
2 | MIT License
3 |
4 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }}
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 | {% elif cookiecutter.open_source_license == 'BSD license' %}
24 |
25 | BSD License
26 |
27 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }}
28 | All rights reserved.
29 |
30 | Redistribution and use in source and binary forms, with or without modification,
31 | are permitted provided that the following conditions are met:
32 |
33 | * Redistributions of source code must retain the above copyright notice, this
34 | list of conditions and the following disclaimer.
35 |
36 | * Redistributions in binary form must reproduce the above copyright notice, this
37 | list of conditions and the following disclaimer in the documentation and/or
38 | other materials provided with the distribution.
39 |
40 | * Neither the name of the copyright holder nor the names of its
41 | contributors may be used to endorse or promote products derived from this
42 | software without specific prior written permission.
43 |
44 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
45 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
46 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
47 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
48 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
49 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
50 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
51 | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
52 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
53 | OF THE POSSIBILITY OF SUCH DAMAGE.
54 | {% elif cookiecutter.open_source_license == 'Apache Software License 2.0' -%}
55 | Apache Software License 2.0
56 |
57 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }}
58 |
59 | Licensed under the Apache License, Version 2.0 (the "License");
60 | you may not use this file except in compliance with the License.
61 | You may obtain a copy of the License at
62 |
63 | http://www.apache.org/licenses/LICENSE-2.0
64 |
65 | Unless required by applicable law or agreed to in writing, software
66 | distributed under the License is distributed on an "AS IS" BASIS,
67 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
68 | See the License for the specific language governing permissions and
69 | limitations under the License.
70 | {% elif cookiecutter.open_source_license == 'GNU General Public License v3' -%}
71 | GNU GENERAL PUBLIC LICENSE
72 | Version 3, 29 June 2007
73 |
74 | Copyright (C) {% now 'local', '%Y' %} {{ cookiecutter.full_name }}
75 |
76 | This program is free software: you can redistribute it and/or modify
77 | it under the terms of the GNU General Public License as published by
78 | the Free Software Foundation, either version 3 of the License, or
79 | (at your option) any later version.
80 |
81 | This program is distributed in the hope that it will be useful,
82 | but WITHOUT ANY WARRANTY; without even the implied warranty of
83 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84 | GNU General Public License for more details.
85 |
86 | You should have received a copy of the GNU General Public License
87 | along with this program. If not, see .
88 |
89 | Reach out to the maintainer using any of the private contact addresses
90 | .
91 |
92 | You should also get your employer (if you work as a programmer) or school,
93 | if any, to sign a "copyright disclaimer" for the program, if necessary.
94 | For more information on this, and how to apply and follow the GNU GPL, see
95 | .
96 |
97 | The GNU General Public License does not permit incorporating your program
98 | into proprietary programs. If your program is a subroutine library, you
99 | may consider it more useful to permit linking proprietary applications with
100 | the library. If this is what you want to do, use the GNU Lesser General
101 | Public License instead of this License. But first, please read
102 | .
103 | {% endif %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/README.md:
--------------------------------------------------------------------------------
1 | {%- if cookiecutter.modern_header == 'y' -%}
2 | {%- if cookiecutter.include_logo == 'y' -%}
3 |
91 | {% endif %}
92 | > **[?]**
93 | > Provide general information about your project here.
94 | > What problem does it (intend to) solve?
95 | > What is the purpose of your project?
96 | > Why did you undertake it?
97 | > You don't have to answer all the questions -- just the ones relevant to your project.
98 |
99 | {% if cookiecutter.include_screenshots == 'y' -%}
100 |
101 | Screenshots
102 |
103 |
104 | > **[?]**
105 | > Please provide your screenshots here.
106 |
107 | | Home Page | Login Page |
108 | | :-------------------------------------------------------------------: | :--------------------------------------------------------------------: |
109 | | | |
110 |
111 |
112 | {%- endif %}
113 | {% if cookiecutter.table_in_about == 'y' %}
114 |
115 | {% endif %}
116 | ### Built With
117 |
118 | > **[?]**
119 | > Please provide the technologies that are used in the project.
120 |
121 | ## Getting Started
122 |
123 | ### Prerequisites
124 |
125 | > **[?]**
126 | > What are the project requirements/dependencies?
127 |
128 | ### Installation
129 |
130 | > **[?]**
131 | > Describe how to install and get started with the project.
132 |
133 | ## Usage
134 |
135 | > **[?]**
136 | > How does one go about using it?
137 | > Provide various use cases and code examples here.
138 |
139 | ## Roadmap
140 |
141 | See the [open issues](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues) for a list of proposed features (and known issues).
142 |
143 | - [Top Feature Requests](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
144 | - [Top Bugs](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
145 | - [Newest Bugs](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
146 |
147 | ## Support
148 |
149 | > **[?]**
150 | > Provide additional ways to contact the project maintainer/maintainers.
151 |
152 | Reach out to the maintainer at one of the following places:
153 |
154 | {% if cookiecutter.use_github_discussions == 'y' -%}
155 | - [GitHub Discussions](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions)
156 | {%- elif cookiecutter.use_github_discussions != 'y' -%}
157 | - [GitHub issues](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues/new?assignees=&labels=question&template=04_SUPPORT_QUESTION.md&title=support%3A+)
158 | {%- endif %}
159 | - Contact options listed on [this GitHub profile](https://github.com/{{cookiecutter.github_username}})
160 |
161 | {% if cookiecutter.include_project_assistance == 'y' -%}
162 | ## Project assistance
163 |
164 | If you want to say **thank you** or/and support active development of {{cookiecutter.project_name}}:
165 |
166 | - Add a [GitHub Star](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}) to the project.
167 | - Tweet about the {{cookiecutter.project_name}}.
168 | - Write interesting articles about the project on [Dev.to](https://dev.to/), [Medium](https://medium.com/) or your personal blog.
169 |
170 | Together, we can make {{cookiecutter.project_name}} **better**!
171 | {% endif %}
172 | ## Contributing
173 |
174 | {% if cookiecutter.open_source_license != 'Not open source' -%}
175 | First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**.
176 | {% endif %}
177 |
178 | Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved!
179 |
180 | {% if cookiecutter.include_authors == 'y' -%}
181 | ## Authors & contributors
182 |
183 | The original setup of this repository is by [{{cookiecutter.full_name}}](https://github.com/{{cookiecutter.github_username}}).
184 |
185 | For a full list of all authors and contributors, see [the contributors page](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/contributors).
186 | {% endif %}
187 | {% if cookiecutter.include_security == 'y' -%}
188 | ## Security
189 |
190 | {{cookiecutter.project_name}} follows good practices of security, but 100% security cannot be assured.
191 | {{cookiecutter.project_name}} is provided **"as is"** without any **warranty**. Use at your own risk.
192 |
193 | _For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._
194 | {% endif %}
195 | {% if cookiecutter.open_source_license != 'Not open source' -%}
196 | ## License
197 |
198 | This project is licensed under the **{{cookiecutter.open_source_license}}**.
199 |
200 | See [LICENSE](LICENSE) for more information.
201 | {% endif %}
202 | {% if cookiecutter.include_acknowledgements == 'y' -%}
203 | ## Acknowledgements
204 |
205 | > **[?]**
206 | > If your work was funded by any organization or institution, acknowledge their support here.
207 | > In addition, if your work relies on other software libraries, or was inspired by looking at other work, it is appropriate to acknowledge this intellectual debt too.
208 | {% endif %}
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/docs/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer using any of the [private contact addresses](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}#support). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at
44 |
45 | For answers to common questions about this code of conduct, see
46 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/docs/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
4 | {% if cookiecutter.include_code_of_conduct == 'y' -%}
5 | Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
6 | {% endif %}
7 | ## Development environment setup
8 |
9 | > **[?]**
10 | > Proceed to describe how to setup local development environment.
11 | > e.g:
12 |
13 | To set up a development environment, please follow these steps:
14 |
15 | 1. Clone the repo
16 |
17 | ```sh
18 | git clone https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}
19 | ```
20 |
21 | 2. TODO
22 |
23 | ## Issues and feature requests
24 |
25 | You've found a bug in the source code, a mistake in the documentation or maybe you'd like a new feature?{% if cookiecutter.use_github_discussions == 'y' -%} Take a look at [GitHub Discussions](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions) to see if it's already being discussed. {% endif %} You can help us by [submitting an issue on GitHub](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues). Before you create an issue, make sure to search the issue archive -- your issue may have already been addressed!
26 |
27 | Please try to create bug reports that are:
28 |
29 | - _Reproducible._ Include steps to reproduce the problem.
30 | - _Specific._ Include as much detail as possible: which version, what environment, etc.
31 | - _Unique._ Do not duplicate existing opened issues.
32 | - _Scoped to a Single Bug._ One bug per report.
33 |
34 | **Even better: Submit a pull request with a fix or new feature!**
35 |
36 | ### How to submit a Pull Request
37 |
38 | 1. Search our repository for open or closed
39 | [Pull Requests](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/pulls)
40 | that relate to your submission. You don't want to duplicate effort.
41 | 2. Fork the project
42 | 3. Create your feature branch (`git checkout -b feat/amazing_feature`)
43 | 4. Commit your changes (`git commit -m 'feat: add amazing_feature'`) {% if cookiecutter.use_conventional_commits == 'y' -%}
44 | {{cookiecutter.project_name}} uses [conventional commits](https://www.conventionalcommits.org), so please follow the specification in your commit messages.{% endif %}
45 | 5. Push to the branch (`git push origin feat/amazing_feature`)
46 | 6. [Open a Pull Request](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/compare?expand=1)
47 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/docs/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Reporting a Vulnerability
4 |
5 | If there are any vulnerabilities in **{{cookiecutter.project_name}}**, don't hesitate to _report them_.
6 |
7 | 1. Use any of the [private contact addresses](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}#support).
8 | 2. Describe the vulnerability.
9 |
10 | If you have a fix, that is most welcome -- please attach or summarize it in your message!
11 |
12 | 3. We will evaluate the vulnerability and, if necessary, release a fix or mitigating steps to address it. We will contact you to let you know the outcome, and will credit you in the report.
13 |
14 | Please **do not disclose the vulnerability publicly** until a fix is released!
15 |
16 | 4. Once we have either a) published a fix, or b) declined to address the vulnerability for whatever reason, you are free to publicly disclose it.
17 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/docs/images/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
260 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/docs/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dec0dOS/amazing-github-template/6a23f3baa353a1936703b9e8fa0870132f9b6edf/{{cookiecutter.repo_slug}}/docs/images/screenshot.png
--------------------------------------------------------------------------------