Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ coverage:
patch:
default:
target: 80%
threshold: 0%
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: Bug Report
about: Report a bug in chisel
title: ''
labels: bug
assignees: ''
---

## Description

<!-- Clear description of the bug -->

## Steps to Reproduce

1.
2.
3.

## Expected Behaviour

<!-- What should happen -->

## Actual Behaviour

<!-- What actually happens -->

## Environment

- Go version:
- chisel version:
- OS:

## Minimal Example

```go
// Code that reproduces the issue
```

## Additional Context

<!-- Any other relevant information -->
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Documentation
about: Report documentation issues or request improvements
title: ''
labels: documentation
assignees: ''
---

## Type

<!-- Check one -->

- [ ] Missing documentation
- [ ] Incorrect documentation
- [ ] Unclear documentation
- [ ] Documentation improvement

## Location

<!-- Which file or section? -->

## Description

<!-- What's the issue or suggestion? -->

## Suggested Change

<!-- If applicable, what should the documentation say? -->
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Feature Request
about: Suggest a new feature for chisel
title: ''
labels: enhancement
assignees: ''
---

## Problem

<!-- What problem does this feature solve? -->

## Proposed Solution

<!-- How should this work? -->

## Example Usage

```go
// How would this feature be used?
```

## Alternatives Considered

<!-- Other approaches you've considered -->

## Additional Context

<!-- Any other relevant information -->
31 changes: 31 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
## Summary

<!-- Brief description of the changes (1-3 sentences) -->

## Changes

<!-- Bullet list of specific changes -->

-

## Type

<!-- Check one -->

- [ ] Bug fix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Documentation
- [ ] Testing

## Checklist

- [ ] Tests pass (`make test`)
- [ ] Linting passes (`make lint`)
- [ ] New code has tests
- [ ] Documentation updated (if applicable)

## Related Issues

<!-- Link any related issues: Fixes #123, Relates to #456 -->
110 changes: 110 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ['1.24', '1.25']

steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}

- name: Test all modules
run: |
go test -v -race ./... ./golang/... ./markdown/... ./typescript/... ./python/... ./rust/... ./testing/...

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'

- name: golangci-lint
uses: golangci/golangci-lint-action@v7
with:
version: v2.7.2
args: --config=.golangci.yml --timeout=5m ./... ./golang/... ./markdown/... ./typescript/... ./python/... ./rust/... ./testing/...
skip-cache: false
skip-save-cache: false

- name: Security Report
if: always()
run: |
golangci-lint run --config=.golangci.yml --out-format=json ./... ./golang/... ./markdown/... ./typescript/... ./python/... ./rust/... ./testing/... > lint-report.json || true
echo "### Security Scan Summary" >> $GITHUB_STEP_SUMMARY
echo "Linters with findings:" >> $GITHUB_STEP_SUMMARY
jq -r '.Issues[] | .FromLinter' lint-report.json 2>/dev/null | sort | uniq -c | sort -nr >> $GITHUB_STEP_SUMMARY || echo "No issues found ✅" >> $GITHUB_STEP_SUMMARY

security:
name: Security
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'

- name: Run Gosec Security Scanner
uses: securego/gosec@v2.22.11
with:
args: '-fmt sarif -out gosec-results.sarif --no-fail ./...'

- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v3
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
continue-on-error: true
with:
sarif_file: gosec-results.sarif
wait-for-processing: true

benchmark:
name: Benchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'

- name: Run benchmarks
run: |
echo "### Provider Benchmarks" | tee benchmark_results.txt
go test -bench=. -benchmem -benchtime=1s ./testing/benchmarks/... | tee -a benchmark_results.txt

- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: benchmark_results.txt

ci-complete:
name: CI Complete
needs: [test, lint, security, benchmark]
runs-on: ubuntu-latest
steps:
- run: echo "CI complete"
49 changes: 49 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: CodeQL

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 6 * * 1'

permissions:
contents: read
security-events: write

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25'

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: go
queries: security-and-quality

- name: Build
run: |
go build ./... ./golang/... ./markdown/... ./typescript/... ./python/... ./rust/... ./testing/...

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:go"

- name: Security summary
if: always()
run: |
echo "### 🔒 CodeQL Security Analysis" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Security analysis completed. Check the Security tab for detailed findings." >> $GITHUB_STEP_SUMMARY
Loading
Loading