Skip to content

Commit 898e0c3

Browse files
committed
fortify: harden repo for public release
- Simplify install.sh: remove all auth/private-repo code, use direct URL download with SHA-256 checksum verification and source-build fallback - Pin CI action versions to commit SHAs (supply-chain security) - Add CODEOWNERS (all files require @senet review) - Add SECURITY.md (responsible disclosure policy) - Add dependabot.yml (weekly Go modules + GitHub Actions updates) - Add PR template and issue templates (bug report, feature request) - Update README: add status badges, simplify install instructions, remove --verify=false references, add contributing/security links - Update CONTRIBUTING.md: add branch protection notes, CODEOWNERS reference, security reporting guidance
1 parent 85f9f0e commit 898e0c3

11 files changed

Lines changed: 165 additions & 58 deletions

File tree

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# All files require review from the repository owner.
2+
* @senet
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug in helm-map
4+
labels: bug
5+
---
6+
7+
## Description
8+
9+
<!-- A clear description of the bug. -->
10+
11+
## Steps to Reproduce
12+
13+
1.
14+
2.
15+
3.
16+
17+
## Expected Behaviour
18+
19+
<!-- What should happen? -->
20+
21+
## Actual Behaviour
22+
23+
<!-- What actually happens? -->
24+
25+
## Environment
26+
27+
- OS:
28+
- Helm version (`helm version`):
29+
- helm-map version (`helm map version`):
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature for helm-map
4+
labels: enhancement
5+
---
6+
7+
## Problem
8+
9+
<!-- What problem does this solve? -->
10+
11+
## Proposed Solution
12+
13+
<!-- How should it work? -->
14+
15+
## Alternatives Considered
16+
17+
<!-- Any other approaches you've thought of? -->

.github/SECURITY.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
| Version | Supported |
6+
|---------|--------------------|
7+
| 0.1.x | :white_check_mark: |
8+
9+
## Reporting a Vulnerability
10+
11+
If you discover a security vulnerability in helm-map, please report it responsibly.
12+
13+
**Do NOT open a public issue.**
14+
15+
Instead, email **sen.net@hotmail.com** with:
16+
17+
1. A clear description of the vulnerability
18+
2. Steps to reproduce
19+
3. Potential impact
20+
4. Suggested fix (if any)
21+
22+
You should receive an acknowledgement within **48 hours**. A fix will be prioritised and a patched release published as soon as possible.
23+
24+
## Disclosure Policy
25+
26+
- Vulnerabilities will be disclosed publicly once a fix is available.
27+
- Credit will be given to the reporter (unless they request anonymity).

.github/dependabot.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: gomod
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
commit-message:
8+
prefix: "deps"
9+
10+
- package-ecosystem: github-actions
11+
directory: /
12+
schedule:
13+
interval: weekly
14+
commit-message:
15+
prefix: "ci"

.github/pull_request_template.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## Description
2+
3+
<!-- What does this PR do? -->
4+
5+
## Checklist
6+
7+
- [ ] Tests added / updated
8+
- [ ] `make test` passes
9+
- [ ] `make lint` passes
10+
- [ ] Documentation updated (if applicable)

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
lint:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v4
17-
- uses: actions/setup-go@v5
16+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
17+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
1818
with:
1919
go-version: "1.25"
2020
- name: Install golangci-lint
@@ -25,8 +25,8 @@ jobs:
2525
test:
2626
runs-on: ubuntu-latest
2727
steps:
28-
- uses: actions/checkout@v4
29-
- uses: actions/setup-go@v5
28+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
29+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
3030
with:
3131
go-version: "1.25"
3232
- name: Run tests
@@ -42,8 +42,8 @@ jobs:
4242
runs-on: ubuntu-latest
4343
needs: [lint, test]
4444
steps:
45-
- uses: actions/checkout@v4
46-
- uses: actions/setup-go@v5
45+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
46+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
4747
with:
4848
go-version: "1.25"
4949
- name: Build

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ jobs:
1111
test:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
15-
- uses: actions/setup-go@v5
14+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
15+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
1616
with:
1717
go-version: "1.25"
1818
- name: Run tests
@@ -24,11 +24,11 @@ jobs:
2424
runs-on: ubuntu-latest
2525
needs: [test]
2626
steps:
27-
- uses: actions/checkout@v4
27+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2828
with:
2929
fetch-depth: 0
3030

31-
- uses: actions/setup-go@v5
31+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
3232
with:
3333
go-version: "1.25"
3434

@@ -39,7 +39,7 @@ jobs:
3939
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
4040

4141
- name: Run GoReleaser
42-
uses: goreleaser/goreleaser-action@v6
42+
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
4343
with:
4444
version: latest
4545
args: release --clean

CONTRIBUTING.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,28 @@ Thank you for your interest in contributing to helm-map!
3333
4. Ensure `make test` and `make lint` pass
3434
5. Submit a PR with a clear description
3535

36+
All PRs require:
37+
- Passing CI (lint + test + build)
38+
- Approval from the repository owner ([@senet](https://github.com/senet))
39+
- Review from a [CODEOWNER](/.github/CODEOWNERS)
40+
41+
## Branch Protection
42+
43+
The `main` branch is protected:
44+
- Direct pushes are not allowed
45+
- All changes must go through a pull request
46+
- CI status checks must pass before merging
47+
- Force pushes and branch deletion are blocked
48+
3649
## Reporting Issues
3750

3851
Open an issue on GitHub with:
3952
- A clear description of the problem
4053
- Steps to reproduce
4154
- Expected vs actual behaviour
4255
- helm-map version (`helm map version`)
56+
57+
## Security
58+
59+
To report a security vulnerability, see [SECURITY.md](/.github/SECURITY.md).
60+
**Do not open a public issue for security vulnerabilities.**

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# helm-map
22

3+
[![CI](https://github.com/senet/helm-map/actions/workflows/ci.yml/badge.svg)](https://github.com/senet/helm-map/actions/workflows/ci.yml)
4+
[![Release](https://github.com/senet/helm-map/actions/workflows/release.yml/badge.svg)](https://github.com/senet/helm-map/actions/workflows/release.yml)
5+
[![Go Report Card](https://goreportcard.com/badge/github.com/senet/helm-map)](https://goreportcard.com/report/github.com/senet/helm-map)
6+
[![License](https://img.shields.io/github/license/senet/helm-map)](LICENSE)
7+
38
A Helm plugin that visualises chart dependency trees and release resource maps.
49

510
## Architecture
@@ -18,22 +23,12 @@ See [ARCHITECTURE.md](ARCHITECTURE.md) for full design details.
1823

1924
## Installation
2025

21-
### Helm v3
22-
2326
```bash
2427
helm plugin install https://github.com/senet/helm-map
2528
```
2629

27-
### Helm v4
28-
29-
```bash
30-
helm plugin install --verify=false https://github.com/senet/helm-map
31-
```
32-
33-
> **Note:** Helm v4 enforces plugin signature verification by default. Once a signed
34-
> release is published (with `.prov` files), `--verify=false` will no longer be needed.
35-
> To verify manually, import the [public key](helm-map.pub) and check the `.prov` files
36-
> attached to each GitHub Release.
30+
Pre-built binaries are downloaded automatically for Linux, macOS, and Windows (amd64/arm64).
31+
If no binary is available for your platform, the installer falls back to building from source (requires Go 1.22+).
3732

3833
### Build from source
3934

@@ -49,7 +44,7 @@ make install-local
4944
| Helm Version | Status | Notes |
5045
|---|---|---|
5146
| v3.18+ | Tested | Full support |
52-
| v4.1+ | Tested | Requires `--verify=false` until signed releases are published |
47+
| v4.1+ | Tested | Full support |
5348

5449
## Usage
5550

@@ -139,18 +134,23 @@ make cover
139134

140135
## Release Signing
141136

142-
Releases are signed with GPG. Each `.tar.gz` archive has a corresponding `.prov` signature file.
137+
All release archives are signed with GPG. Each `.tar.gz` has a corresponding `.prov` signature file and SHA-256 checksums are verified automatically by the install script.
143138

144139
To verify a release manually:
145140

146141
```bash
147-
# Import the public key
148142
gpg --import helm-map.pub
149-
150-
# Verify an archive
151143
gpg --verify helm-map_linux_amd64.tar.gz.prov helm-map_linux_amd64.tar.gz
152144
```
153145

146+
## Contributing
147+
148+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
149+
150+
## Security
151+
152+
To report a vulnerability, see [SECURITY.md](.github/SECURITY.md).
153+
154154
## License
155155

156156
Apache License 2.0 — see [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)