Skip to content

Commit bce54b1

Browse files
authored
Merge pull request #19 from kellenmurphy/chore/badges
Revamp footer, add release-please, and update SECURITY.md
2 parents 49381af + 74ff54f commit bce54b1

7 files changed

Lines changed: 98 additions & 56 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
11+
jobs:
12+
release-please:
13+
name: Release Please
14+
runs-on: ubuntu-24.04
15+
steps:
16+
- name: Release Please
17+
# googleapis/release-please-action v4
18+
uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071
19+
with:
20+
token: ${{ secrets.GITHUB_TOKEN }}
21+
config-file: release-please-config.json
22+
manifest-file: .release-please-manifest.json

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "1.0.0"
3+
}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# samlguy
22

3+
[![CI](https://github.com/kellenmurphy/samlguy/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kellenmurphy/samlguy/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/kellenmurphy/samlguy/graph/badge.svg)](https://codecov.io/gh/kellenmurphy/samlguy) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12859/badge)](https://www.bestpractices.dev/projects/12859)
4+
35
**SAML assertion and JWT decoder for the IAM community.**
46

57
Visit [samlguy.com](https://samlguy.com) — paste whatever messy thing you grabbed from a log file, a network tab, or a browser plugin and the tool figures out what it is and (attempts to) decode it.

SECURITY.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ Current pins in `.github/workflows/scorecard.yml`:
7070
- `actions/upload-artifact` — SHA-pinned (v7.0.1)
7171
- `github/codeql-action/upload-sarif` — SHA-pinned
7272

73+
Current pins in `.github/workflows/release-please.yml`:
74+
- `googleapis/release-please-action` — SHA-pinned (v4)
75+
76+
Current pins in `.github/workflows/codeql.yml`:
77+
- `actions/checkout` — SHA-pinned
78+
- `github/codeql-action/init` — SHA-pinned (v3.28.13)
79+
- `github/codeql-action/analyze` — SHA-pinned (v3.28.13)
80+
7381
Dependabot is configured to open weekly PRs when new versions of these actions are released, keeping SHA rotation low-friction.
7482

7583
### Minimal token permissions
@@ -110,6 +118,16 @@ A CodeQL workflow runs on every push and pull request to `main`, and weekly on M
110118

111119
A [Scorecard](https://securityscorecards.dev) workflow runs weekly and on every push to `main`. It evaluates supply-chain security practices (pinned dependencies, branch protection, token permissions, code review, vulnerability disclosure) and publishes results to the GitHub code scanning dashboard. Results are also published publicly to the OSSF scorecard index.
112120

121+
### Branch protection
122+
123+
The `main` branch is protected with the following rules enforced for all contributors including administrators:
124+
125+
- **Required status checks** — the `Build & Test` CI job must pass before any merge is allowed; the branch must be up to date with `main` before merging (strict mode)
126+
- **Required signatures** — every commit merged to `main` must carry a verified cryptographic signature
127+
- **Required pull request review** — at least one approval is required; stale approvals are dismissed on new pushes; code owner review is required
128+
- **No force pushes** — force-pushing to `main` is blocked
129+
- **No branch deletion**`main` cannot be deleted
130+
113131
### CODEOWNERS
114132

115133
`.github/CODEOWNERS` requires `@kellenmurphy` to approve any pull request that touches any file. This ensures no code is merged without review if collaborators are added in the future.
@@ -124,6 +142,14 @@ Property-based fuzz tests (`src/lib/fuzz.test.ts`) run against every parser on e
124142

125143
---
126144

145+
## Versioning and releases
146+
147+
This project follows [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`). Each release is tagged in the repository with a `v`-prefixed version tag (e.g. `v1.0.0`). Tags are signed with the same SSH key used for commit signing.
148+
149+
Since samlguy.com deploys continuously from `main`, the production deployment always reflects the latest tagged release or the commits immediately following it. Security fixes are released as patch versions and deployed immediately on merge to `main`.
150+
151+
---
152+
127153
## License
128154

129155
This project is released under the [MIT License](LICENSE). You are free to use, fork, modify, and distribute the code. The only requirement is that the copyright notice is preserved in copies or substantial portions of the software.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "samlguy",
3-
"version": "0.0.1",
3+
"version": "1.0.0",
44
"private": true,
55
"type": "module",
66
"scripts": {

release-please-config.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3+
"release-type": "node",
4+
"packages": {
5+
".": {
6+
"package-name": "samlguy",
7+
"changelog-sections": [
8+
{ "type": "feat", "section": "Features" },
9+
{ "type": "fix", "section": "Bug Fixes" },
10+
{ "type": "perf", "section": "Performance" },
11+
{ "type": "security", "section": "Security" },
12+
{ "type": "deps", "section": "Dependencies" },
13+
{ "type": "docs", "section": "Documentation", "hidden": false },
14+
{ "type": "chore", "section": "Miscellaneous", "hidden": true },
15+
{ "type": "ci", "section": "CI/CD", "hidden": true }
16+
]
17+
}
18+
}
19+
}

src/routes/+layout.svelte

Lines changed: 25 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -97,64 +97,34 @@
9797
</main>
9898

9999
<footer class="px-6 py-4">
100-
<div
101-
class="mx-auto flex max-w-5xl flex-col items-center gap-2 text-xs text-neutral-400 dark:text-neutral-600 sm:flex-row sm:flex-wrap sm:justify-center sm:gap-x-3 sm:gap-y-1"
102-
>
100+
<div class="mx-auto flex max-w-5xl flex-wrap items-center justify-center gap-x-3 gap-y-1 text-[10px] text-neutral-400 dark:text-neutral-600">
101+
<a href="/privacy" class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400">Privacy</a>
102+
<span aria-hidden="true">&middot;</span>
103103
<a
104-
href="/privacy"
104+
href="https://github.com/kellenmurphy/samlguy/security"
105+
target="_blank"
106+
rel="noopener noreferrer"
105107
class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400"
106-
>Privacy</a
108+
>Security</a
109+
>
110+
<span aria-hidden="true">&middot;</span>
111+
<span>Made with ♥ by <a href="https://kellenmurphy.com" class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400">The SAML Guy</a></span>
112+
<span aria-hidden="true">&middot;</span>
113+
<a
114+
href="https://github.com/kellenmurphy/samlguy"
115+
target="_blank"
116+
rel="noopener noreferrer"
117+
class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400"
118+
>Source</a
119+
>
120+
<span aria-hidden="true">&middot;</span>
121+
<a
122+
href="https://github.com/kellenmurphy/samlguy/blob/main/LICENSE"
123+
target="_blank"
124+
rel="noopener noreferrer"
125+
class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400"
126+
>MIT License</a
107127
>
108-
<span aria-hidden="true" class="hidden sm:inline">&middot;</span>
109-
<span>
110-
Made with ♥ by <a
111-
href="https://kellenmurphy.com"
112-
class="transition-colors hover:text-neutral-600 dark:hover:text-neutral-400"
113-
>The SAML Guy</a
114-
>
115-
</span>
116-
<span aria-hidden="true" class="hidden sm:inline">&middot;</span>
117-
<span class="flex items-center gap-2">
118-
<a
119-
href="https://github.com/kellenmurphy/samlguy"
120-
target="_blank"
121-
rel="noopener noreferrer"
122-
aria-label="GitHub repository"
123-
>
124-
<svg
125-
viewBox="0 0 16 16"
126-
fill="currentColor"
127-
class="h-4 w-4 text-neutral-900 dark:text-neutral-100"
128-
aria-hidden="true"
129-
>
130-
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
131-
</svg>
132-
</a>
133-
<a
134-
href="https://github.com/kellenmurphy/samlguy/actions/workflows/ci.yml"
135-
target="_blank"
136-
rel="noopener noreferrer"
137-
aria-label="CI status"
138-
>
139-
<img
140-
src="https://img.shields.io/github/actions/workflow/status/kellenmurphy/samlguy/ci.yml?branch=main&style=flat-square&label=CI&labelColor=404040"
141-
alt="CI status"
142-
class="h-4"
143-
/>
144-
</a>
145-
<a
146-
href="https://app.codecov.io/gh/kellenmurphy/samlguy"
147-
target="_blank"
148-
rel="noopener noreferrer"
149-
aria-label="Code coverage"
150-
>
151-
<img
152-
src="https://img.shields.io/codecov/c/github/kellenmurphy/samlguy?style=flat-square&label=coverage&labelColor=404040"
153-
alt="Code coverage"
154-
class="h-4"
155-
/>
156-
</a>
157-
</span>
158128
</div>
159129
</footer>
160130
</div>

0 commit comments

Comments
 (0)