Skip to content

Commit c850eaf

Browse files
authored
Merge branch 'v3' into security/path-traversal-v3
2 parents 7d107b3 + 85479a1 commit c850eaf

6 files changed

Lines changed: 102 additions & 4 deletions

File tree

.github/workflows/python-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ jobs:
202202
echo "No tag found; scanning commits since merge-base with main ($LAST_TAG)"
203203
fi
204204
ALLOWED_TYPES='^(fix|perf|chore|ci|docs|build|refactor|style|test|revert)(\(.*\))?:'
205-
BAD_COMMITS=$(git log "$LAST_TAG"..HEAD --format='%s' | grep -iEvx "$ALLOWED_TYPES.*" || true)
205+
BAD_COMMITS=$(git log "$LAST_TAG"..HEAD --no-merges --format='%s' | grep -iEvx "$ALLOWED_TYPES.*" || true)
206206
if [ -n "$BAD_COMMITS" ]; then
207207
echo "::error::All commits on maintenance branches must use an allowed type: fix, perf, chore, ci, docs, build, refactor, style, test, revert."
208208
echo "::error::The following commits do not match:"

.snyk

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,13 @@ ignore:
2424
is temporary to allow pipeline progress.
2525
expires: 2026-03-28T00:00:00.000Z
2626
created: 2026-01-28T00:00:00.000Z
27+
'SNYK-PYTHON-PARAMIKO-16425764':
28+
- '*':
29+
reason: >
30+
Low severity cryptographic algorithm issue in paramiko@4.0.0.
31+
No upgrade or patch available. Paramiko is used for remote
32+
SSH operations which are not part of trestle's primary use case.
33+
Accepted risk pending upstream fix.
34+
expires: 2026-08-07T00:00:00.000Z
35+
created: 2026-05-07T00:00:00.000Z
2736
patch: {}

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,65 @@
22

33
<!-- version list -->
44

5+
## v3.12.1 (2026-05-11)
6+
7+
### Bug Fixes
8+
9+
- Add cross-platform install docs and conventional-pr make target
10+
([#2202](https://github.com/oscal-compass/compliance-trestle/pull/2202),
11+
[`4444dc2`](https://github.com/oscal-compass/compliance-trestle/commit/4444dc29c1598b4096d74129f1c740757905d999))
12+
13+
- Address PR review comments on multi-train release support
14+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
15+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
16+
17+
- Apply mdformat to maintenance_releases.md
18+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
19+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
20+
21+
- Convert negative security checks to positive allowlists
22+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
23+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
24+
25+
- Correct act install SHA to commit SHA (not tag object SHA)
26+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
27+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
28+
29+
- Pin act install to v0.2.87 and fix mdformat table padding
30+
([#2202](https://github.com/oscal-compass/compliance-trestle/pull/2202),
31+
[`4444dc2`](https://github.com/oscal-compass/compliance-trestle/commit/4444dc29c1598b4096d74129f1c740757905d999))
32+
33+
- Pre-configure act image to avoid interactive prompt in CI
34+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
35+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
36+
37+
- Upgrade cryptography to 46.0.7 (SNYK-PYTHON-CRYPTOGRAPHY-15809188,
38+
SNYK-PYTHON-CRYPTOGRAPHY-15953315)
39+
([`e14ffd0`](https://github.com/oscal-compass/compliance-trestle/commit/e14ffd023bfa2f2dc91bf79827a999762d45690f))
40+
41+
### Continuous Integration
42+
43+
- Add act-based local workflow testing
44+
([#2202](https://github.com/oscal-compass/compliance-trestle/pull/2202),
45+
[`4444dc2`](https://github.com/oscal-compass/compliance-trestle/commit/4444dc29c1598b4096d74129f1c740757905d999))
46+
47+
- Add act-based local workflow testing and CI validation
48+
([#2202](https://github.com/oscal-compass/compliance-trestle/pull/2202),
49+
[`4444dc2`](https://github.com/oscal-compass/compliance-trestle/commit/4444dc29c1598b4096d74129f1c740757905d999))
50+
51+
- Add multi-train release support for maintenance branches
52+
([#2201](https://github.com/oscal-compass/compliance-trestle/pull/2201),
53+
[`47ecd1d`](https://github.com/oscal-compass/compliance-trestle/commit/47ecd1d9a8bea3801dca4b2b6b89ef0cf39175e2))
54+
55+
- Add Snyk exception for paramiko cryptographic algorithm issue
56+
([#2218](https://github.com/oscal-compass/compliance-trestle/pull/2218),
57+
[`b4c9d94`](https://github.com/oscal-compass/compliance-trestle/commit/b4c9d94cfead66176ea475c39b20925b4340398b))
58+
59+
- Fix merge commit validation and document release environment setup
60+
([#2218](https://github.com/oscal-compass/compliance-trestle/pull/2218),
61+
[`b4c9d94`](https://github.com/oscal-compass/compliance-trestle/commit/b4c9d94cfead66176ea475c39b20925b4340398b))
62+
63+
564
## v3.12.0 (2026-02-13)
665

766
### Bug Fixes

docs/contributing/github_actions_setup.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,35 @@ Pypi authorization must be setup following the procedure in the following docume
2727
Trestle supports releasing patches from maintenance branches (e.g., `v3`, `v4`). When creating a new maintenance branch, the following GitHub configuration is required:
2828

2929
- **Branch protection**: Create a ruleset for `v[0-9]*` branches requiring PR reviews, status checks, squash merges, and restricted push access. See [Maintenance releases](maintenance_releases.md) for details.
30-
- **Release environment**: The `release` environment's deployment branch rules must include maintenance branches (add `v*` pattern or list branches explicitly).
30+
- **Release environment**: Add the specific maintenance branch to the `release` environment's deployment branch rules. See [Adding a branch to the release environment](#adding-a-branch-to-the-release-environment) below.
3131
- **PyPI trusted publisher**: Verify the trusted publisher configuration does not restrict publishing to `main` only.
32+
33+
### Adding a branch to the release environment
34+
35+
When cutting a new major version (e.g., v5.0.0), add the previous major version's maintenance branch (e.g., `v4`) to the `release` GitHub Environment. Each branch must be added **individually by exact name** (not using wildcards) to require deliberate opt-in for new maintenance branches.
36+
37+
#### Using the GitHub UI
38+
39+
1. Navigate to **Settings****Environments****release**
40+
1. Under **Deployment branches and tags**, click **Add deployment branch or tag rule**
41+
1. Select **Branch** as the rule type
42+
1. Enter the exact branch name: `v4` (not `v*` or `v[0-9]*`)
43+
1. Click **Add rule**
44+
45+
#### Using the GitHub CLI
46+
47+
```bash
48+
gh api repos/oscal-compass/compliance-trestle/environments/release/deployment-branch-policies \
49+
--method POST -f name='v4' -f type='branch'
50+
```
51+
52+
#### Verifying the configuration
53+
54+
List all deployment branches to confirm the new branch was added:
55+
56+
```bash
57+
gh api repos/oscal-compass/compliance-trestle/environments/release/deployment-branch-policies \
58+
--jq '.branch_policies[] | {name, type}'
59+
```
60+
61+
Expected output should include entries for `main` and all active maintenance branches (e.g., `v3`, `v4`).

docs/contributing/maintenance_releases.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ When a new major version is released (e.g., v5.0.0), create a maintenance branch
9191
- Restrict push access to maintainers
9292
- Disallow force pushes and deletions
9393

94-
1. **Update the GitHub `release` environment** if it uses an explicit branch list (add the new branch)
94+
1. **Add the new branch to the `release` environment** — each maintenance branch must be explicitly allowed for deployments. Follow the step-by-step instructions in [GitHub actions setup → Adding a branch to the release environment](github_actions_setup.md#adding-a-branch-to-the-release-environment).
9595

9696
1. **Consider enabling Dependabot** for security updates on the new maintenance branch
9797

trestle/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@
2323
opinionated approach to OSCAL adoption.
2424
"""
2525

26-
__version__ = '3.12.0'
26+
__version__ = '3.12.1'

0 commit comments

Comments
 (0)