Set up project scaffolding: GitHub Actions workflows, issue templates, changelog, contributing guidelines, MIT license, and README

This commit is contained in:
!verity
2026-03-13 20:31:03 +01:00
parent be54d392cf
commit a7d310bacb
12 changed files with 308 additions and 0 deletions

30
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,30 @@
---
name: Bug
about: Report a bug
title: '[Bug] '
labels: bug
assignees: ''
---
**Description**
Briefly: what is the problem?
**Steps to reproduce**
1.
2.
**Expected**
What should happen?
**Actual**
What happens instead?
**Environment**
- OS:
- Java version:
- Terminal (e.g. PowerShell, CMD, IDE):
**Optional: code snippet**
```java
// minimal example
```

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Question / Discussion
url: https://github.com/jakubbbdev/terminal-ui/discussions
about: For questions and ideas without a concrete bug/feature ticket

View File

@@ -0,0 +1,19 @@
---
name: Feature
about: Suggest an idea or enhancement
title: ''
labels: enhancement
assignees: ''
---
**Problem / motivation**
What is this about? What are you missing right now?
**Proposal**
What should be added or changed?
**Alternatives**
Have you considered other solutions?
**Additional context**
Screenshots, examples, links—feel free to attach.

15
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,15 @@
## Description
<!-- Briefly: what does this PR do? -->
## Type of change
- [ ] Bug fix
- [ ] New feature
- [ ] Refactoring / docs
- [ ] Other
## Checklist
- [ ] `./gradlew build` passes locally
- [ ] Relevant tests updated or added (if applicable)

25
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# Dependabot: automatic PRs for dependency updates
# https://docs.github.com/en/code-security/dependabot
version: 2
updates:
# Gradle dependencies (build.gradle.kts, gradle-wrapper)
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels: ["dependencies"]
commit-message:
prefix: "deps"
# GitHub Actions (*.yml in .github/workflows)
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
labels: ["dependencies", "github-actions"]
commit-message:
prefix: "ci"

35
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
# CodeQL: static security analysis (free for public repos).
name: CodeQL
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
schedule:
- cron: '0 6 * * 1'
jobs:
analyze:
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: java
- name: Build (for CodeQL)
run: |
chmod +x gradlew
./gradlew compileJava --no-daemon
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

22
.github/workflows/dependency-review.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# On PRs: checks dependency changes for known vulnerabilities.
# Useful when Dependabot or manual dependency updates are used in PRs.
name: Dependency Review
on:
pull_request:
branches: [main, master]
permissions:
contents: read
pull-requests: write
jobs:
review:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Dependency Review
uses: actions/dependency-review-action@v4

34
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
# On push of a version tag (e.g. v1.0.0): build, create GitHub Release, upload JARs.
name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
cache: gradle
- run: chmod +x gradlew && ./gradlew build --no-daemon
- name: Create Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: build/libs/*.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}