Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ccad047
Add Dependabot config for pip and github-actions ecosystems
RNKuhns Jul 4, 2026
61c48ce
Add pre-commit CI workflow
RNKuhns Jul 4, 2026
bd882fe
Add cross-platform test matrix workflow
RNKuhns Jul 4, 2026
bd7ebd8
Add dependency vulnerability scanning workflow
RNKuhns Jul 4, 2026
451f725
Add CodeQL static analysis workflow
RNKuhns Jul 4, 2026
c95c785
Add CONTRIBUTORS.md via all-contributors spec
RNKuhns Jul 4, 2026
af253ec
Add workflow to auto-regenerate CONTRIBUTORS.md
RNKuhns Jul 4, 2026
a1a1c71
Add weekly maintenance workflow
RNKuhns Jul 4, 2026
69d505d
Match GitHub App secret/variable names to what was actually configured
RNKuhns Jul 4, 2026
73a4fe8
Use client-id instead of deprecated app-id for GitHub App auth
RNKuhns Jul 4, 2026
43803e8
miscellaneous updates to actions
RNKuhns Jul 4, 2026
e6f68db
Add missing step names for consistency across workflows
RNKuhns Jul 4, 2026
dbda022
Add Codecov infrastructure with a 90% coverage minimum
RNKuhns Jul 4, 2026
b6d7563
Add Read the Docs infrastructure
RNKuhns Jul 4, 2026
71565e5
Minor review changes
RNKuhns Jul 4, 2026
b6dbef9
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 4, 2026
38d40d6
Ignore ruff A001 (builtin shadowing) for docs/conf.py
RNKuhns Jul 4, 2026
7bad121
Add scripts/generate_requirements.sh
RNKuhns Jul 4, 2026
0e05176
Merge branch 'actions_and_related' of https://github.com/predict-ably…
RNKuhns Jul 4, 2026
5a32b8b
bump version test
RNKuhns Jul 4, 2026
033e730
Wire generate_requirements.sh into pre-commit and CI
RNKuhns Jul 4, 2026
4b20488
Fix executable bit lost due to core.fileMode=false
RNKuhns Jul 4, 2026
0f62878
Get generate_requirements working
RNKuhns Jul 4, 2026
46aea64
Security file
RNKuhns Jul 19, 2026
70ea19c
Update check-requirements
RNKuhns Jul 19, 2026
fac3a43
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 19, 2026
23c894e
Update codeql
RNKuhns Jul 19, 2026
0983c09
Merge branch 'actions_and_related' of https://github.com/predict-ably…
RNKuhns Jul 19, 2026
3b93027
Merge branch 'main' into actions_and_related
RNKuhns Jul 19, 2026
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
25 changes: 25 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"projectName": "call-report",
"projectOwner": "RNKuhns",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"CONTRIBUTORS.md"
],
"imageSize": 100,
"commit": false,
"contributorsPerLine": 7,
"contributorsSortAlphabetically": true,
"skipCi": true,
"contributors": [
{
"login": "RNKuhns",
"name": "RNKuhns",
"avatar_url": "https://avatars.githubusercontent.com/RNKuhns",
"profile": "https://github.com/RNKuhns",
"contributions": [
"code"
]
}
]
}
23 changes: 23 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
coverage:
status:
project:
default:
target: 90%
threshold: 1%
informational: false
patch:
default:
target: 90%
threshold: 1%
informational: false

comment:
require_changes: true

github_checks:
annotations: true

ignore:
- "docs/"
- "tests/"
- ".github/"
35 changes: 35 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
time: "01:43"
commit-message:
include: scope
prefix: "[MNT] "
labels:
- "maintenance"
- "dependencies"
groups:
python-minor-patch:
update-types:
- "minor"
- "patch"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
time: "01:43"
commit-message:
include: scope
prefix: "[MNT] "
labels:
- "maintenance"
- "dependencies"
groups:
actions-minor-patch:
update-types:
- "minor"
- "patch"
51 changes: 51 additions & 0 deletions .github/workflows/check-requirements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: check-requirements

on:
push:
branches: [main]
paths:
- "pyproject.toml"
pull_request:
branches: [main]
paths:
- "pyproject.toml"

permissions:
contents: read

jobs:
check-requirements-in-sync:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Install pip-tools
run: pip install pip-tools

- name: Regenerate requirements.txt
run: scripts/generate_requirements.sh

- name: Check for drift in requirements.txt and report
run: |
if ! git diff --quiet requirements.txt; then
echo "::group::requirements.txt is out of sync — diff below"
git diff requirements.txt
echo "::endgroup::"
echo "::error::requirements.txt is out of sync with pyproject.toml. Fix locally with: ./scripts/generate_requirements.sh && git add requirements.txt && git commit"
# Mark that we need to upload the corrected file and fail
echo "DRIFT_DETECTED=true" >> "$GITHUB_ENV"
else
echo "requirements.txt is in sync."
fi

- name: Fail if drift was detected
if: env.DRIFT_DETECTED == 'true'
run: exit 1
101 changes: 24 additions & 77 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,23 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"
name: CodeQL

on:
push:
branches: [ "main" ]
branches: [main]
pull_request:
branches: [ "main" ]
branches: [main]
schedule:
- cron: '23 0 * * 6'
- cron: "0 6 * * 1"

permissions:
contents: read

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
name: Analyze
runs-on: ubuntu-latest
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

Expand All @@ -47,55 +29,20 @@ jobs:
build-mode: none
- language: python
build-mode: none
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- name: Run manual build steps
if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: python
build-mode: none

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:python"
88 changes: 88 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: pre-commit

on:
push:
branches: [main]
pull_request:
branches: [main]
types:
- opened
- synchronize
- reopened
- labeled
- unlabeled

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Cache pre-commit environments
uses: actions/cache@v6
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ runner.os }}-py3.12-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
pre-commit-${{ runner.os }}-py3.12-

- name: Get changed files
if: ${{ github.event_name == 'pull_request' }}
# uses v47.0.5
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96
id: changed-files

- name: List changed files
if: ${{ github.event_name == 'pull_request' }}
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'

# Check the full repository on pushes to main
- name: Full pre-commit
if: ${{ github.event_name == 'push' }}
uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files

# Check the full repository on PRs that are explicitly labelled
- name: Full pre-commit on labelled PR
if: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'full-pre-commit') }}
uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files

# Otherwise only check changed files on PRs
- name: Local pre-commit
if: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'full-pre-commit') }}
uses: pre-commit/action@v3.0.1
with:
extra_args: --files ${{ steps.changed-files.outputs.all_changed_files }}

codespell-annotations:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Annotate locations with typos
uses: codespell-project/codespell-problem-matcher@v1

- name: Codespell
uses: codespell-project/actions-codespell@v2
37 changes: 37 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: security

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 6 * * 1"

permissions:
contents: read

jobs:
pip-audit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Install pip-tools
run: pip install pip-tools

- name: Regenerate requirements.txt
run: scripts/generate_requirements.sh

- name: Audit dependencies for known vulnerabilities
uses: pypa/gh-action-pip-audit@v1.1.0
with:
inputs: requirements.txt
Loading
Loading