Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 20 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
.git
.github
.venv
.temp
.pytest_cache
.ruff_cache
**/__pycache__
dist
tests
docs
.env
.env.*
*.key
*.pem
*.pfx
*.p12
*.sig
manifest.json
archives
restored
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Bug report
description: Something does not work as expected
labels: [bug]
body:
- type: textarea
id: what
attributes:
label: What happened?
description: What did you run, what did you expect, and what happened instead?
validations:
required: true
- type: textarea
id: command
attributes:
label: Command or code
render: shell
- type: input
id: version
attributes:
label: BatchVault version
description: Output of `batchvault --version`
validations:
required: true
- type: dropdown
id: engine
attributes:
label: Engine
options: [auto, native, 7zip]
- type: input
id: platform
attributes:
label: OS and Python version
- type: textarea
id: log
attributes:
label: Log or error output
description: Run `batchvault doctor` and attach the relevant lines of the log file. Remove anything private.
render: text
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: https://github.com/coldsofttech/BatchVault/security/advisories/new
about: Please report security problems privately.
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Feature request
description: Suggest an improvement
labels: [enhancement]
body:
- type: textarea
id: problem
attributes:
label: What are you trying to do?
validations:
required: true
- type: textarea
id: idea
attributes:
label: What would you like BatchVault to do?
10 changes: 10 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## What changed

<!-- What does this do, and why? -->

## Checklist

- [ ] Tests added or updated
- [ ] `uv run ruff check .` and `uv run pytest -m "not integration and not e2e"` pass
- [ ] `CHANGELOG.md` has a short `[Unreleased]` entry
- [ ] README or `docs/` updated if behaviour changed
33 changes: 33 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
version: 2

updates:
# Python dependencies and the uv.lock file
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore(deps)"
groups:
python-dependencies:
patterns: ["*"]
update-types: ["minor", "patch"]

# Actions used in .github/workflows
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore(ci)"
groups:
github-actions:
patterns: ["*"]

# Hook versions in .pre-commit-config.yaml
- package-ecosystem: "pre-commit"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore(deps)"
77 changes: 77 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Docker

# Builds the image on every pull request and publishes both variants to GHCR
# when a version tag such as v0.2.0 is pushed.
on:
push:
tags: ["v*.*.*"]
pull_request:
paths:
- Dockerfile
- .dockerignore
- pyproject.toml
- src/**
- .github/workflows/docker.yml

concurrency:
group: docker-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
image:
name: Image (${{ matrix.variant }})
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
include:
- { variant: native, with_7zip: "false", suffix: "" }
- { variant: 7zip, with_7zip: "true", suffix: "-7zip" }

steps:
- uses: actions/checkout@v7

- uses: docker/setup-qemu-action@v3

- uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
if: startsWith(github.ref, 'refs/tags/')
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Tags
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/batchvault
flavor: |
latest=false
suffix=${{ matrix.suffix }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}

- name: Build${{ startsWith(github.ref, 'refs/tags/') && ' and push' || '' }}
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
build-args: WITH_7ZIP=${{ matrix.with_7zip }}
push: ${{ startsWith(github.ref, 'refs/tags/') }}
provenance: mode=max
sbom: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=${{ matrix.variant }}
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}
Loading
Loading