Initial template setup
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.py]
|
||||||
|
indent_size = 4
|
||||||
|
max_line_length = 100
|
||||||
|
|
||||||
|
[*.{sh,bash}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.{ps1,psm1}]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
name: Bug Report
|
||||||
|
about: Something is broken or behaves unexpectedly
|
||||||
|
title: "[Bug] "
|
||||||
|
labels: ["bug"]
|
||||||
|
---
|
||||||
|
|
||||||
|
## What happened
|
||||||
|
|
||||||
|
<!-- Describe the bug. What did you do, what did you expect, what happened instead? -->
|
||||||
|
|
||||||
|
## Steps to reproduce
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
|
||||||
|
- Version:
|
||||||
|
- OS:
|
||||||
|
- Anything else relevant:
|
||||||
|
|
||||||
|
## Logs / Screenshots
|
||||||
|
|
||||||
|
<!-- Paste relevant log output or attach screenshots. Use ```code blocks``` for logs. -->
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: Suggest an idea or improvement
|
||||||
|
title: "[Feature] "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
---
|
||||||
|
|
||||||
|
## The problem
|
||||||
|
|
||||||
|
<!-- What are you trying to do? What's missing or annoying? -->
|
||||||
|
|
||||||
|
## Proposed solution
|
||||||
|
|
||||||
|
<!-- How would you solve it? Concrete behavior, not implementation details. -->
|
||||||
|
|
||||||
|
## Alternatives considered
|
||||||
|
|
||||||
|
<!-- What else did you think about? Why didn't that work? -->
|
||||||
|
|
||||||
|
## Additional context
|
||||||
|
|
||||||
|
<!-- Screenshots, examples from other tools, related issues. -->
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
## Summary
|
||||||
|
|
||||||
|
<!-- What does this PR do? 1-3 bullet points. -->
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
<!-- Linked issue, motivation, or context. "Fixes #N" if applicable. -->
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
<!-- How did you verify this works? -->
|
||||||
|
|
||||||
|
- [ ]
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
- [ ] Code builds without warnings
|
||||||
|
- [ ] Tests pass (or N/A)
|
||||||
|
- [ ] Documentation updated (or N/A)
|
||||||
|
- [ ] No secrets or credentials committed
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
name: Security
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
schedule:
|
||||||
|
- cron: '0 4 * * 1' # Mondays 04:00 UTC
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
semgrep:
|
||||||
|
uses: Hellion-Forge/security-workflows/.gitea/workflows/semgrep.yml@main
|
||||||
|
# If you need to exclude specific rules or paths, drop a .semgrep-exclude.yml
|
||||||
|
# at the repo root. The reusable workflow honors it.
|
||||||
|
|
||||||
|
trivy:
|
||||||
|
uses: Hellion-Forge/security-workflows/.gitea/workflows/trivy.yml@main
|
||||||
+44
@@ -0,0 +1,44 @@
|
|||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editors
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
.pytest_cache/
|
||||||
|
.coverage
|
||||||
|
.mypy_cache/
|
||||||
|
|
||||||
|
# Node / Bun
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
.next/
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.pnpm-debug.log*
|
||||||
|
|
||||||
|
# Shell / build artifacts
|
||||||
|
*.tar.gz
|
||||||
|
*.zip
|
||||||
|
out/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Local env / secrets
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
*.local.json
|
||||||
|
secrets/
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# CODEOWNERS — automatic review-assignment for PRs.
|
||||||
|
# Syntax: <pattern> <user-or-team-handle>
|
||||||
|
#
|
||||||
|
# More: https://docs.gitea.com/usage/code-owners
|
||||||
|
#
|
||||||
|
# Default owner for everything in the repo.
|
||||||
|
# Replace with the appropriate user/team for the new repo.
|
||||||
|
* @JonKazama-Hellion
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Florian Wathling / Hellion Online Media
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
# Forge Tool Template
|
||||||
|
|
||||||
|
A starting point for small tools and scripts on the [Hellion Forge](https://gitea.hellion-forge.cloud/) — language-agnostic, Renovate-aware, security-scanned.
|
||||||
|
|
||||||
|
Use this when you have:
|
||||||
|
|
||||||
|
- a one-shot script (Bash, Python, PowerShell, Node, etc.)
|
||||||
|
- a small CLI utility
|
||||||
|
- a config-only repo (Ansible, dotfiles, infrastructure-as-code)
|
||||||
|
- anything that doesn't fit the [Dalamud Plugin Template](../dalamud-plugin-template) or the [Web App Template](../web-app-template)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How to use this template
|
||||||
|
|
||||||
|
1. Click **"Use this template"** on the Forge.
|
||||||
|
2. Update this `README.md` to describe your actual tool — replace this template-usage section with real install/run/contribute instructions.
|
||||||
|
3. Drop your tool's source files at the repo root or under a sensible folder (`scripts/`, `src/`, `bin/`).
|
||||||
|
4. Adjust `.gitignore` for your language. The default has Python, Node, and shell artifacts pre-listed; remove or extend as needed.
|
||||||
|
5. If your tool needs a different security-scan config, edit `.gitea/workflows/security.yml`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What's included
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── .editorconfig
|
||||||
|
├── .gitea/
|
||||||
|
│ ├── ISSUE_TEMPLATE/ Bug + feature templates
|
||||||
|
│ ├── PULL_REQUEST_TEMPLATE.md
|
||||||
|
│ └── workflows/
|
||||||
|
│ └── security.yml Semgrep + Trivy via Hellion-Forge/security-workflows
|
||||||
|
├── .gitignore Multi-language defaults
|
||||||
|
├── examples/README.md Placeholder for usage examples
|
||||||
|
├── CODEOWNERS Default reviewer (replace for new repo)
|
||||||
|
├── LICENSE MIT
|
||||||
|
└── README.md This file (replace before shipping)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Renovate
|
||||||
|
|
||||||
|
Renovate runs as a system-level service on the Forge. New repos in `Hellion-Forge` are picked up automatically — no per-repo config needed unless you want to override the default behavior. Add a `renovate.json` at the repo root for custom rules.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Security scanning
|
||||||
|
|
||||||
|
The `.gitea/workflows/security.yml` stub calls the reusable workflows in `Hellion-Forge/security-workflows`. Default behavior:
|
||||||
|
|
||||||
|
- Semgrep with the recommended ruleset
|
||||||
|
- Trivy filesystem scan for known CVEs
|
||||||
|
- Runs on push to main + pull requests + weekly cron
|
||||||
|
|
||||||
|
To exclude specific paths or rules, drop a `.semgrep-exclude.yml` at the repo root (the reusable workflow honors it).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT — see `LICENSE`.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Examples
|
||||||
|
|
||||||
|
Drop usage examples for your tool here — sample input files, expected output, common command-line invocations, integration snippets.
|
||||||
|
|
||||||
|
If your tool has no useful examples (e.g. an internal-only script), delete this folder.
|
||||||
Reference in New Issue
Block a user