diff --git a/.editorconfig b/.editorconfig
index 5a1cb4a..682f265 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,32 +1,33 @@
-# editorconfig.org
root = true
[*]
+charset = utf-8
+end_of_line = lf
indent_style = space
indent_size = 4
-max_line_length = 120
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
insert_final_newline = true
+trim_trailing_whitespace = true
[*.md]
-max_line_length=off
trim_trailing_whitespace = false
-[*.{yaml,yml}]
-max_line_length=off
+[*.{yml,yaml}]
indent_size = 2
-trim_trailing_whitespace = false
-[.gitmodules]
+[*.{json,json5}]
+indent_size = 2
+
+[*.{js,mjs,cjs,ts,mts,cts,jsx,tsx,css,astro}]
+indent_size = 2
+
+[{Makefile,*.mk}]
indent_style = tab
[Dockerfile]
indent_style = tab
-[{Makefile,*.mk}]
+[.gitmodules]
indent_style = tab
[*.sh]
-indent_style = tab
+indent_size = 2
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..365b66a
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+* @lazybytez/oss-maintainers
diff --git a/.github/renovate.json b/.github/renovate.json
index 14332df..1a4e4c3 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -1,7 +1,7 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
- "config:base"
+ "config:recommended"
],
"labels": ["C5 - dependencies"],
"dependencyDashboardApproval": true
diff --git a/.github/workflows/git.yml b/.github/workflows/git.yml
index f3a8af5..0a6b6a1 100644
--- a/.github/workflows/git.yml
+++ b/.github/workflows/git.yml
@@ -1,29 +1,41 @@
-# Checks for Git branches and commit messages to keep consistency
name: Git
-on: ["pull_request"]
+on:
+ pull_request:
+
+permissions:
+ contents: read
+ pull-requests: read
jobs:
- # Verify that the branch name matches the format
verify_branch_name:
+ name: Verify Branch Name
runs-on: ubuntu-latest
steps:
- name: Check branch name
- uses: deepakputhraya/action-branch-name@master
- with:
- regex: '([a-zA-Z0-0-])+\/([a-zA-Z0-0-])+'
- allowed_prefixes: "feature,fix,hotfix,release,renovate"
- ignore: main,develop
+ env:
+ BRANCH: ${{ github.head_ref }}
+ run: |
+ PATTERN='^(feature|fix|hotfix|release|renovate)/[a-zA-Z0-9-]+'
+ if [[ "$BRANCH" =~ $PATTERN ]]; then
+ echo "Branch name '$BRANCH' is valid."
+ else
+ echo "::error::Branch name '$BRANCH' does not match the required pattern: prefix/description"
+ echo "Allowed prefixes: feature, fix, hotfix, release, renovate"
+ exit 1
+ fi
- # Verify that the commits matches the format
verify_commit_messages:
- if: (github.actor!= 'renovate[bot]') && (contains(github.head_ref, 'renovate/github_actions/') == false)
+ name: Verify Commit Messages
+ if: github.actor != 'renovate[bot]' && !startsWith(github.head_ref, 'renovate/')
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout
+ uses: actions/checkout@v6
with:
fetch-depth: 0
+
- name: Run commitlint
- uses: wagoid/commitlint-github-action@v4
+ uses: wagoid/commitlint-github-action@v6
with:
- configFile: commitlint.config.cjs
+ configFile: commitlint.config.mjs
diff --git a/.gitignore b/.gitignore
index 7b14c75..74f4bfc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
+# OS files
+.DS_Store
+Thumbs.db
+
# Editor directories and files
.idea
.vscode
diff --git a/LICENSE b/LICENSE
index 3053c31..2750008 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2022 Lazy Bytez
+Copyright (c) 2026 Lazy Bytez
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index b5dcbfd..1dd916c 100644
--- a/README.md
+++ b/README.md
@@ -1,57 +1,65 @@
# General Template
-[![gh-commit-badge][gh-commit-badge]][gh-commit]
-[![gh-contributors-badge][gh-contributors-badge]][gh-contributors]
-[![gh-stars-badge][gh-stars-badge]][gh-stars]
+
+
+[![License][gh-license-badge]][gh-license]
+[![Last Commit][gh-commit-badge]][gh-commit]
+[![Contributors][gh-contributors-badge]][gh-contributors]
+[![Stars][gh-stars-badge]][gh-stars]
+
+
## Description
-This is a general repository template for all projects done by the organization lazybytez.
-You can use it if you want. Just be sure to modify the names and emails.
+General repository template for all projects by [Lazy Bytez][gh-team].
+
+This template provides a standardized starting point with:
-## Getting started
+- Conventional commit enforcement via [commitlint](https://commitlint.js.org/)
+- Branch naming validation via GitHub Actions
+- Dependency updates via [Renovate](https://docs.renovatebot.com/)
+- EditorConfig for consistent formatting
+- Security policy and code ownership
-tbd
+## Getting Started
+
+1. Click **Use this template** on GitHub to create a new repository.
+2. Update `commitlint.config.mjs` to add project-specific scopes.
+3. Update this `README.md` with your project's details.
+4. If your project is not MIT-licensed, replace the `LICENSE` file.
## Contributing
If you want to take part in contribution, like fixing issues and contributing directly to the code base, please visit
the [How to Contribute][gh-contribute] document.
-## Useful links
+## Useful Links
[License][gh-license] -
[Contributing][gh-contribute] -
-[Code of conduct][gh-codeofconduct] -
+[Code of Conduct][gh-codeofconduct] -
[Issues][gh-issues] -
-[Pull requests][gh-pulls]
+[Pull Requests][gh-pulls]
-
+
###### Copyright (c) [Lazy Bytez][gh-team]. All rights reserved | Licensed under the MIT license.
-
+
+[gh-license-badge]: https://img.shields.io/github/license/lazybytez/general-template?style=for-the-badge&colorA=302D41&colorB=a6e3a1
[gh-commit-badge]: https://img.shields.io/github/last-commit/lazybytez/general-template?style=for-the-badge&colorA=302D41&colorB=cba6f7
-
-[gh-commit]: https://github.com/lazybytez/general-template/commits/main
-
[gh-contributors-badge]: https://img.shields.io/github/contributors/lazybytez/general-template?style=for-the-badge&colorA=302D41&colorB=89dceb
+[gh-stars-badge]: https://img.shields.io/github/stars/lazybytez/general-template?style=for-the-badge&colorA=302D41&colorB=f9e2af
-[gh-contributors]: https://github.com/lazybytez/general-template/graphs/contributors
-
-[gh-stars-badge]: https://img.shields.io/github/stars/lazybytez?style=for-the-badge&colorA=302D41&colorB=f9e2af
+
+[gh-license]: https://github.com/lazybytez/general-template/blob/main/LICENSE
+[gh-commit]: https://github.com/lazybytez/general-template/commits/main
+[gh-contributors]: https://github.com/lazybytez/general-template/graphs/contributors
[gh-stars]: https://github.com/lazybytez/general-template/stargazers
-
[gh-contribute]: https://github.com/lazybytez/.github/blob/main/docs/CONTRIBUTING.md
-
-[gh-license]: https://github.com/lazybytez/general-template/blob/main/LICENSE
-
[gh-codeofconduct]: https://github.com/lazybytez/.github/blob/main/docs/CODE_OF_CONDUCT.md
-
[gh-issues]: https://github.com/lazybytez/general-template/issues
-
[gh-pulls]: https://github.com/lazybytez/general-template/pulls
-
[gh-team]: https://github.com/lazybytez
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..e8f57a2
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,29 @@
+# Security Policy
+
+## Reporting a Vulnerability
+
+**Please do not open public issues for security vulnerabilities.**
+
+Instead, report vulnerabilities via email to **security@lazybytez.de**.
+
+Include as much of the following as possible:
+
+- Description of the vulnerability
+- Steps to reproduce
+- Potential impact
+- Suggested fix (if any)
+
+## Response Timeline
+
+- **Acknowledgement:** within 48 hours
+- **Initial assessment:** within 5 days
+- **Fix or mitigation:** depends on severity
+
+## Supported Versions
+
+Only the latest release is supported with security updates.
+
+## Scope
+
+Third-party dependencies are monitored but not directly maintained by us.
+If you find a vulnerability in a dependency, please report it upstream and notify us as well.
diff --git a/commitlint.config.cjs b/commitlint.config.cjs
deleted file mode 100644
index 51d319c..0000000
--- a/commitlint.config.cjs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Configuration of commitlint to check commit message guidelines
-module.exports = {
- extends: ["@commitlint/config-conventional"],
- parserPreset: "conventional-changelog-conventionalcommits",
- rules: {
- "subject-max-length": [2, "always", 50],
- "scope-enum": [
- 2,
- "always",
- [
- "deps",
- "devops"
- //TODO: extend me
- ]
- ]
- }
-};
diff --git a/commitlint.config.mjs b/commitlint.config.mjs
new file mode 100644
index 0000000..32367aa
--- /dev/null
+++ b/commitlint.config.mjs
@@ -0,0 +1,26 @@
+export default {
+ extends: ["@commitlint/config-conventional"],
+ rules: {
+ "type-enum": [
+ 2,
+ "always",
+ [
+ "feat",
+ "fix",
+ "build",
+ "chore",
+ "ci",
+ "docs",
+ "perf",
+ "refactor",
+ "revert",
+ "style",
+ "test",
+ "sec",
+ ],
+ ],
+ // TODO: extend with project-specific scopes
+ "scope-enum": [2, "always", ["deps", "devops"]],
+ "subject-max-length": [2, "always", 50],
+ },
+};