Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
cfc72c5
Update dependencies and configuration files
csikb Oct 27, 2025
4f7d9a3
Update poetry.lock
csikb Oct 27, 2025
e277343
Add Docker CI/CD workflows and update Renovate configuration
csikb Oct 27, 2025
fbf6dac
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
e4b79b4
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
7457a3a
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
24bd30b
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
96a4640
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
0740f04
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
fd54185
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
eb3db9e
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
4aae4d5
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
dfb517a
Refactor docstrings and update Python version requirement in pyprojec…
csikb Oct 27, 2025
6d6e5b5
Add Scorecard workflow for supply-chain security analysis
csikb Oct 27, 2025
45d46e5
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
9d41cd3
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
1bbba8d
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
89ca66e
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
2799a28
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
2d596ec
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
b17ae0d
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
0eb39b5
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
eaaf040
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
27d67b9
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
8705382
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
35c4056
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
6094f0f
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
adc46c6
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
bba8544
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
6a58b07
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
a207e79
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
e193fc8
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
aeb60b6
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
21b0d41
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
be48ef8
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
efd6bd7
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
7960afc
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
6b250e1
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
b491b67
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
b653d23
Add Scorecard workflow for supply-chain security analysis
csikb Oct 28, 2025
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
105 changes: 0 additions & 105 deletions .circleci/config.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -161,3 +161,6 @@ cython_debug/
.idea/

.git

### Node.js template
node_modules/
85 changes: 85 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Docker

on:
pull_request:
workflow_dispatch:
merge_group:
schedule:
- cron: "0 0 * * *"
push:
branches: [ "main" ]
release:
types: [ published ]

permissions: read-all

jobs:
lint:
name: Lint Dockerfile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0

build:
name: Build and publish
runs-on: ubuntu-24.04-arm
permissions:
contents: read
packages: write
attestations: write
id-token: write
security-events: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
id: meta
env:
DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=schedule
type=semver,pattern={{raw}}
type=semver,pattern=v{{major}}.{{minor}}
type=semver,pattern=v{{major}}
type=ref,event=branch
type=ref,event=pr
# on.schedule: nightly
# on.push:tag: latest (auto), v1.2.3, v.1,2, v.1
# on.push.branch: branchName
# on.pull_request: pr-number (won't be pushed)

- uses: docker/bake-action@3acf805d94d93a86cce4ca44798a76464a75b88c # v6.9.0
with:
push: ${{ github.event_name != 'pull_request' && github.event_name != 'merge_group' }}
files: |
cwd://${{ steps.meta.outputs.bake-file }}
cwd://${{ steps.meta.outputs.bake-file-annotations }}
./docker-bake.hcl
sbom: true
provenance: true
set: |
*.cache-from=type=gha
*.cache-to=type=gha,mode=max

- uses: anchore/scan-action@568b89d27fc18c60e56937bff480c91c772cd993 # v7.1.0
id: scan
if: ${{ github.event_name != 'pull_request' && github.event_name != 'merge_group' }}
with:
image: "ghcr.io/bsstudio/bss-web-file-api:${{ env.DOCKER_METADATA_OUTPUT_VERSION }}"
cache-db: true
severity-cutoff: 'high'
fail-build: false

- uses: github/codeql-action/upload-sarif@4e94bd11f71e507f7f87df81788dff88d1dacbfb # v4.31.0
if: ${{ github.event_name != 'pull_request' && github.event_name != 'merge_group' }}
with:
sarif_file: ${{ steps.scan.outputs.sarif }}
25 changes: 25 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Integration test

on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches: [ "main" ]

permissions: read-all

jobs:
unit-test:
name: Integration test
runs-on: ubuntu-22.04
timeout-minutes: 5
permissions:
id-token: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version-file: "pyproject.toml"
- uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
- run: uv run pytest tests-int
65 changes: 65 additions & 0 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Python

on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches: [ "main" ]

permissions: read-all

jobs:
pre-commit:
name: Pre commit checks
runs-on: ubuntu-22.04
timeout-minutes: 5
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version-file: "pyproject.toml"
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1

unit-test:
name: Unit test
runs-on: ubuntu-22.04
timeout-minutes: 5
permissions:
id-token: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version-file: "pyproject.toml"
- uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
- run: uv run pytest tests --cov=src --cov-fail-under=100 --cov-report json
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 #v5.5.1
with:
use_oidc: true

type-test:
name: Static type check
runs-on: ubuntu-22.04
timeout-minutes: 5
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version-file: "pyproject.toml"
- uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
- run: uv run mypy
- run: uv run pylint src

lint:
name: Lint
runs-on: ubuntu-22.04
timeout-minutes: 5
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version-file: "pyproject.toml"
- uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
- run: uv run black --check .
- run: uv run isort --check .
42 changes: 42 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Release

on:
pull_request:
merge_group:
push:
branches: [ main ]

permissions: read-all

jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
id: release-token
with:
app-id: ${{ vars.RELEASE_APP_ID }}
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
permission-contents: write # to be able to publish a GitHub release
permission-issues: write # to be able to comment on released issues
permission-pull-requests: write # to be able to comment on released pull requests

- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
token: ${{ steps.release-token.outputs.token }}
fetch-depth: 0

- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0

- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version-file: package.json
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'

- run: pnpm install

- run: pnpm run release
env:
GH_TOKEN: ${{ steps.release-token.outputs.token }}
Loading