Skip to content

Commit f045c9c

Browse files
author
luckyPipewrench
committed
feat: full repo pimpery pass
- README: upgraded badge strip (PyPI + Python + Downloads + CI + CodeQL + OpenSSF Scorecard + scanned-by-pipelock + License), added nav links, tightened hero copy. - New OpenSSF Scorecard workflow (weekly + on push to main, publishes results to code scanning dashboard). - New CodeQL workflow for Python (security-and-quality query set, runs on every PR + weekly). With this pass the public repo has four CI-driven security signals visible on the README: CI tests, CodeQL, OpenSSF Scorecard, and pipelock self-scan.
1 parent 18988e9 commit f045c9c

3 files changed

Lines changed: 93 additions & 10 deletions

File tree

.github/workflows/codeql.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
schedule:
9+
- cron: '0 6 * * 1'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
analyze:
16+
runs-on: ubuntu-latest
17+
timeout-minutes: 15
18+
permissions:
19+
security-events: write
20+
packages: read
21+
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
language: [python]
26+
27+
steps:
28+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
29+
with:
30+
persist-credentials: false
31+
32+
- name: Initialize CodeQL
33+
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4
34+
with:
35+
languages: ${{ matrix.language }}
36+
queries: security-and-quality
37+
38+
- name: Perform CodeQL Analysis
39+
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4
40+
with:
41+
category: "/language:${{ matrix.language }}"

.github/workflows/scorecard.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: OpenSSF Scorecard
2+
3+
on:
4+
branch_protection_rule:
5+
workflow_dispatch:
6+
schedule:
7+
- cron: '0 5 * * 1'
8+
push:
9+
branches: [main]
10+
11+
permissions: read-all
12+
13+
jobs:
14+
analysis:
15+
runs-on: ubuntu-latest
16+
permissions:
17+
security-events: write
18+
id-token: write
19+
steps:
20+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
21+
with:
22+
persist-credentials: false
23+
24+
- name: Run Scorecard
25+
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
26+
with:
27+
results_file: results.sarif
28+
results_format: sarif
29+
publish_results: true
30+
31+
- name: Upload Scorecard results
32+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
33+
with:
34+
name: scorecard-results
35+
path: results.sarif
36+
retention-days: 5
37+
38+
- name: Upload to code-scanning
39+
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4
40+
with:
41+
sarif_file: results.sarif

README.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
# pipelock-verify
22

3-
[![PyPI version](https://img.shields.io/pypi/v/pipelock-verify.svg)](https://pypi.org/project/pipelock-verify/)
4-
[![Python versions](https://img.shields.io/pypi/pyversions/pipelock-verify.svg)](https://pypi.org/project/pipelock-verify/)
3+
[![PyPI](https://img.shields.io/pypi/v/pipelock-verify.svg?label=PyPI&logo=pypi&logoColor=white)](https://pypi.org/project/pipelock-verify/)
4+
[![Python](https://img.shields.io/pypi/pyversions/pipelock-verify.svg?label=Python&logo=python&logoColor=white)](https://pypi.org/project/pipelock-verify/)
5+
[![Downloads](https://img.shields.io/pypi/dm/pipelock-verify.svg?label=Downloads)](https://pypi.org/project/pipelock-verify/)
56
[![CI](https://github.com/luckyPipewrench/pipelock-verify-python/actions/workflows/ci.yml/badge.svg)](https://github.com/luckyPipewrench/pipelock-verify-python/actions/workflows/ci.yml)
7+
[![CodeQL](https://github.com/luckyPipewrench/pipelock-verify-python/actions/workflows/codeql.yml/badge.svg)](https://github.com/luckyPipewrench/pipelock-verify-python/actions/workflows/codeql.yml)
8+
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/luckyPipewrench/pipelock-verify-python/badge)](https://scorecard.dev/viewer/?uri=github.com/luckyPipewrench/pipelock-verify-python)
9+
[![scanned by pipelock](https://img.shields.io/badge/scanned%20by-pipelock-00FFC8?labelColor=1A1A2E)](https://github.com/luckyPipewrench/pipelock)
610
[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
711

8-
Python verifier for [Pipelock](https://github.com/luckyPipewrench/pipelock)
9-
action receipts. Verifies the Ed25519 signature, chain linkage, and
10-
flight-recorder wrapping of receipts emitted by the Pipelock mediator.
12+
**Python verifier for [Pipelock](https://github.com/luckyPipewrench/pipelock) action receipts.** Verifies the Ed25519 signature, chain linkage, and flight-recorder wrapping of receipts emitted by the Pipelock mediator.
1113

12-
The library mirrors the Go reference implementation byte-for-byte. The
13-
conformance golden files in `tests/conformance/` are generated by Pipelock's
14-
Go code and verified identically by both sides.
14+
Mirrors the Go reference implementation byte-for-byte. The conformance golden files in `tests/conformance/` are generated by Pipelock's Go code and verified identically by both sides.
15+
16+
[Install](#install) · [Usage](#usage) · [What gets verified](#what-gets-verified) · [Canonicalization](#canonicalization-rules) · [Spec](https://pipelab.org/learn/action-receipt-spec/) · [Go reference](https://github.com/luckyPipewrench/pipelock)
1517

1618
## Install
1719

1820
```bash
1921
pip install pipelock-verify
2022
```
2123

22-
Only one runtime dependency: [`cryptography`](https://cryptography.io) for
23-
the Ed25519 primitives.
24+
Only one runtime dependency: [`cryptography`](https://cryptography.io) for the Ed25519 primitives.
2425

2526
## Usage
2627

0 commit comments

Comments
 (0)