Skip to content
Closed
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
38 changes: 38 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":dependencyDashboard",
":semanticCommits",
"helpers:pinGitHubActionDigests"
],
"labels": ["type: chore"],
"reviewers": ["mwaldheim", "tboerger"],
"schedule": ["before 6am on monday"],
"golang": {
"postUpdateOptions": ["gomodTidy"]
},
"packageRules": [
{
"description": "Group all GitHub Actions minor/patch updates",
"matchManagers": ["github-actions"],
"matchUpdateTypes": ["minor", "patch", "digest"],
"groupName": "GitHub Actions",
"automerge": false
},
{
"description": "Group Go module minor/patch updates",
"matchManagers": ["gomod"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "Go dependencies",
"automerge": false
},
{
"description": "Automerge Go toolchain patch updates",
"matchManagers": ["gomod"],
"matchDepTypes": ["golang"],
"matchUpdateTypes": ["patch"],
"automerge": true
}
]
}
51 changes: 51 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# CI — build, test and lint on every push and PR
name: CI

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

permissions:
contents: read

jobs:
test:
name: Test (Go ${{ matrix.go }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go: ["1.24", "1.25", "1.26"]
steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
cache: true

- name: Download modules
run: go mod download

- name: Build
run: go build ./...

- name: Test
run: go test ./...

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

- uses: actions/setup-go@v5
with:
go-version: "1.24"
cache: true

- uses: golangci/golangci-lint-action@v8
with:
version: v2.1.6
41 changes: 41 additions & 0 deletions .github/workflows/dco.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# DCO — require Signed-off-by on all commits
name: DCO

on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
dco:
name: DCO Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0

- name: Check Signed-off-by on all commits
run: |
BASE="${{ github.event.pull_request.base.sha }}"
HEAD="${{ github.event.pull_request.head.sha }}"
MISSING=0

while IFS= read -r sha; do
body=$(git log -1 --format="%B" "$sha")
if ! echo "$body" | grep -qE "^Signed-off-by: .+ <.+>$"; then
echo "::error::Commit $sha is missing a valid Signed-off-by trailer."
echo " Message: $(git log -1 --format='%s' $sha)"
MISSING=$((MISSING + 1))
fi
done < <(git log --format="%H" "$BASE..$HEAD")

if [ "$MISSING" -gt 0 ]; then
echo ""
echo "::error::$MISSING commit(s) are missing 'Signed-off-by: Name <email>'."
echo "Fix with: git rebase --signoff HEAD~$MISSING && git push --force-with-lease"
exit 1
fi
echo "All commits have a valid Signed-off-by trailer ✓"
31 changes: 31 additions & 0 deletions .github/workflows/renovate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: 2026 The semrel Authors

name: Renovate

on:
schedule:
- cron: "0 5 * * 1"
workflow_dispatch:

permissions:
contents: write
pull-requests: write
issues: write

concurrency:
group: renovate
cancel-in-progress: false

jobs:
renovate:
name: Renovate
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Run Renovate
uses: renovatebot/github-action@v46.1.14
with:
token: ${{ secrets.RENOVATE_TOKEN != '' && secrets.RENOVATE_TOKEN || secrets.GITHUB_TOKEN }}
24 changes: 24 additions & 0 deletions .github/workflows/reuse.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: 2026 The semrel Authors

name: REUSE

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

permissions:
contents: read

jobs:
reuse:
name: REUSE Compliance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: REUSE lint
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
43 changes: 43 additions & 0 deletions .github/workflows/scorecard.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# OpenSSF Scorecard
name: Scorecard

on:
push:
branches: [main]
schedule:
- cron: "30 2 * * 1" # Weekly on Monday

permissions: read-all

jobs:
scorecard:
name: Scorecard Analysis
runs-on: ubuntu-latest
permissions:
security-events: write
id-token: write
contents: read
actions: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true

- uses: ossf/scorecard-action@v2.4.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCORECARD_TOKEN: ${{ secrets.SCORECARD_TOKEN }}
with:
results_file: scorecard-results.sarif
results_format: sarif
publish_results: true

- uses: actions/upload-artifact@v4
with:
name: scorecard-results
path: scorecard-results.sarif
retention-days: 5

- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: scorecard-results.sarif
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Binaries
/bin/
/dist/
*.exe
*.exe~
*.dll
*.so
*.dylib

# Go build cache
/vendor/

# Test output
*.test
*.out
coverage.txt
coverage.html

# Editor artifacts
.idea/
.vscode/
*.swp
*.swo
*~

# OS artifacts
.DS_Store
Thumbs.db

# Release artifacts
/release/
checksums.txt
*.sig
*.intoto.jsonl

# Local config overrides
.semrel.local.yaml
7 changes: 7 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: semrel-plugins
Source: https://github.com/SemRels/semrel-plugins

Files: *
Copyright: 2026 The semrel Authors
License: Apache-2.0
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Contributing to go-semrel-plugins

For plugin release publishing conventions, binary naming, checksums, and registry visibility, follow the canonical guide in [`semrel-registry`](https://github.com/SemRels/semrel-registry/blob/main/docs/release-guide.md).

Use this repository for SDK work and for publishing plugin releases that should be aggregated into the registry.
Loading
Loading