Skip to content

Commit 9089ece

Browse files
committed
feat: initial commit
1 parent fae4a79 commit 9089ece

31 files changed

Lines changed: 833 additions & 24 deletions

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"ghcr.io/devcontainers-extra/features/poetry:2": {}
1313
},
1414
// Use 'postCreateCommand' to run commands after the container is created.
15-
"postCreateCommand": "",
15+
"postCreateCommand": "make init",
1616
"customizations": {
1717
"vscode": {
1818
"extensions": [

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for more information:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
# https://containers.dev/guide/dependabot
6+
7+
version: 2
8+
updates:
9+
- package-ecosystem: "devcontainers"
10+
directory: "/"
11+
schedule:
12+
interval: weekly

.github/workflows/code-quality.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Lint & Check Types & Test
2+
3+
permissions:
4+
contents: read
5+
6+
on:
7+
push:
8+
branches: ["*"]
9+
pull_request:
10+
branches: ["*"]
11+
12+
jobs:
13+
ci:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: actions/setup-python@v4
18+
with:
19+
python-version: "3.12"
20+
- name: Install dependencies
21+
run: |
22+
pip install --upgrade pip
23+
pip install ruff mypy pytest pytest-asyncio
24+
- name: Lint (ruff)
25+
run: ruff check --config=pyproject.toml src/
26+
- name: Type check (mypy)
27+
run: mypy --config-file=pyproject.toml src/
28+
- name: Run tests (pytest)
29+
run: pytest -v

.github/workflows/codeql.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL Advanced"
13+
14+
on:
15+
push:
16+
branches: ["*"]
17+
pull_request:
18+
branches: ["*"]
19+
schedule:
20+
- cron: '17 21 * * 3'
21+
22+
jobs:
23+
analyze:
24+
name: Analyze (${{ matrix.language }})
25+
# Runner size impacts CodeQL analysis time. To learn more, please see:
26+
# - https://gh.io/recommended-hardware-resources-for-running-codeql
27+
# - https://gh.io/supported-runners-and-hardware-resources
28+
# - https://gh.io/using-larger-runners (GitHub.com only)
29+
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
30+
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
31+
permissions:
32+
# required for all workflows
33+
security-events: write
34+
35+
# required to fetch internal or private CodeQL packs
36+
packages: read
37+
38+
# only required for workflows in private repositories
39+
actions: read
40+
contents: read
41+
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
include:
46+
- language: actions
47+
build-mode: none
48+
- language: python
49+
build-mode: none
50+
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
51+
# Use `c-cpp` to analyze code written in C, C++ or both
52+
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
53+
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
54+
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
55+
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
56+
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
57+
# 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
58+
steps:
59+
- name: Checkout repository
60+
uses: actions/checkout@v4
61+
62+
# Add any setup steps before running the `github/codeql-action/init` action.
63+
# This includes steps like installing compilers or runtimes (`actions/setup-node`
64+
# or others). This is typically only required for manual builds.
65+
# - name: Setup runtime (example)
66+
# uses: actions/setup-example@v1
67+
68+
# Initializes the CodeQL tools for scanning.
69+
- name: Initialize CodeQL
70+
uses: github/codeql-action/init@v3
71+
with:
72+
languages: ${{ matrix.language }}
73+
build-mode: ${{ matrix.build-mode }}
74+
# If you wish to specify custom queries, you can do so here or in a config file.
75+
# By default, queries listed here will override any specified in a config file.
76+
# Prefix the list here with "+" to use these queries and those in the config file.
77+
78+
# 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
79+
# queries: security-extended,security-and-quality
80+
81+
# If the analyze step fails for one of the languages you are analyzing with
82+
# "We were unable to automatically build your code", modify the matrix above
83+
# to set the build mode to "manual" for that language. Then modify this step
84+
# to build your code.
85+
# ℹ️ Command-line programs to run using the OS shell.
86+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
87+
- if: matrix.build-mode == 'manual'
88+
shell: bash
89+
run: |
90+
echo 'If you are using a "manual" build mode for one or more of the' \
91+
'languages you are analyzing, replace this with the commands to build' \
92+
'your code, for example:'
93+
echo ' make bootstrap'
94+
echo ' make release'
95+
exit 1
96+
97+
- name: Perform CodeQL Analysis
98+
uses: github/codeql-action/analyze@v3
99+
with:
100+
category: "/language:${{matrix.language}}"
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Check Python Minimum Version
2+
# This workflow will run compatibility checks using Vermin, which checks the minimum Python version required for the codebase.
3+
4+
# uv run vermin --eval-annotations --backport typing --no-parse-comments .
5+
on:
6+
push:
7+
branches: ["*"]
8+
pull_request:
9+
branches: ["*"]
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
ci:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
- uses: actions/setup-python@v4
20+
with:
21+
python-version: "3.13"
22+
- name: Install dependencies
23+
run: |
24+
pip install --upgrade pip
25+
pip install vermin
26+
- name: Check minimal Python version
27+
run: vermin --eval-annotations --backport typing --no-parse-comments .

.gitignore

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ ipython_config.py
9898
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
9999
# This is especially recommended for binary packages to ensure reproducibility, and is more
100100
# commonly ignored for libraries.
101-
#uv.lock
101+
# uv.lock
102102

103103
# poetry
104104
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105105
# This is especially recommended for binary packages to ensure reproducibility, and is more
106106
# commonly ignored for libraries.
107107
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108-
#poetry.lock
108+
poetry.lock
109109

110110
# pdm
111111
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
@@ -129,6 +129,9 @@ celerybeat.pid
129129

130130
# Environments
131131
.env
132+
.env.development
133+
.env.test
134+
.env.production
132135
.venv
133136
env/
134137
venv/
@@ -167,28 +170,11 @@ cython_debug/
167170
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
168171
#.idea/
169172

170-
# Abstra
171-
# Abstra is an AI-powered process automation framework.
172-
# Ignore directories containing user credentials, local state, and settings.
173-
# Learn more at https://abstra.io/docs
174-
.abstra/
175-
176-
# Visual Studio Code
177-
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
178-
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
179-
# and can be added to the global gitignore or merged into this file. However, if you prefer,
180-
# you could uncomment the following to ignore the enitre vscode folder
181-
# .vscode/
182-
183173
# Ruff stuff:
184174
.ruff_cache/
185175

186176
# PyPI configuration file
187177
.pypirc
188178

189-
# Cursor
190-
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
191-
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
192-
# refer to https://docs.cursor.com/context/ignore-files
193-
.cursorignore
194-
.cursorindexingignore
179+
# Dockerignore file for each app stage
180+
.dockerignore

.pre-commit-config.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
repos:
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
rev: v0.11.12
4+
hooks:
5+
# Run the linter.
6+
- id: ruff-check
7+
args: [ --config=pyproject.toml ]
8+
files: ^src/
9+
10+
# Run the formatter.
11+
- id: ruff-format
12+
args: [ --config=pyproject.toml ]
13+
files: ^src/
14+
15+
- repo: https://github.com/pre-commit/mirrors-mypy
16+
rev: v1.15.0
17+
hooks:
18+
# Run mypy type checking.
19+
- id: mypy
20+
args: [--config-file=pyproject.toml ]
21+
files: ^src/
22+
23+
- repo: local
24+
hooks:
25+
# Run pytest.
26+
- id: pytest
27+
name: pytest
28+
entry: poetry run pytest
29+
language: system
30+
types: [python]
31+
pass_filenames: false
32+
args: [ -v ]

CHANGELOG.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
## 0.9.0 (2025-06-07)
2+
3+
### Feat
4+
5+
- add loading env variables based on app stage
6+
7+
### Fix
8+
9+
- move getting correct path to env file to another variable
10+
- fix name of workflow
11+
12+
## 0.8.0 (2025-06-05)
13+
14+
### Feat
15+
16+
- change workflow to check minimal python version to run code
17+
18+
## 0.7.0 (2025-06-04)
19+
20+
### Feat
21+
22+
- add workflow for testing on multiple Python versions
23+
- add workflow for linting, type-checking and testing
24+
25+
### Fix
26+
27+
- fix problem with running ruff linter
28+
- fix problem with testing async functions
29+
30+
## 0.6.0 (2025-06-01)
31+
32+
### Feat
33+
34+
- add pytest and configure for testing sync/async functions
35+
36+
## 0.5.0 (2025-05-31)
37+
38+
### Feat
39+
40+
- update vscode profile for devcontainer
41+
- add vscode profile to devcontainer configuration
42+
- configure Dependabot for automated dependency updates and security checks
43+
- setup .devcontainer for codespaces
44+
45+
## 0.4.1 (2025-05-31)
46+
47+
### Fix
48+
49+
- fix error calling entrypoint file inside container
50+
51+
## 0.4.0 (2025-05-31)
52+
53+
### Feat
54+
55+
- add makefile for simplifies running scripts and tasks
56+
57+
## 0.3.1 (2025-05-29)
58+
59+
### Fix
60+
61+
- fix pre-commit hooks
62+
63+
## 0.3.0 (2025-05-29)
64+
65+
### Feat
66+
67+
- add mkdocs --dev dependency for generating documentation
68+
69+
## 0.2.0 (2025-05-28)
70+
71+
### Feat
72+
73+
- add commitizen --dev dependency
74+
- add pre-commit --dev dependency
75+
- initial commit

0 commit comments

Comments
 (0)