Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9d5cdf3
Code maintenance (#44)
MarTrepodi Apr 30, 2025
77d339a
chore(deps): upgrade requests and urllib3, bump version to 1.14.1 (#45)
MarTrepodi Jul 7, 2025
fce921a
back port of helpers from 2.0 development branch (#46)
MarTrepodi Aug 1, 2025
9662c16
Update version.py
MarTrepodi Aug 1, 2025
8771e4b
feat(helpers): add function to calculate datacron dismantle value (#47)
MarTrepodi Aug 5, 2025
06f8d69
Introduce logging and migration to uv for dependency management (#48)
MarTrepodi Oct 2, 2025
0f25e7c
chore(release): bump version to 1.16.0 and update workflow (#49)
MarTrepodi Oct 2, 2025
62bd98f
feat(core): add new namespace and content retrieval methods in suppor…
MarTrepodi Nov 19, 2025
c1a4bbd
feat(ci): add GitHub Actions workflows for CI, linting, and commit va…
MarTrepodi Mar 1, 2026
3d165a5
feat(ci): add GitHub Actions workflows for CI, linting, and commit va…
MarTrepodi Mar 1, 2026
5ab6886
feat(templates): add issue templates and dependabot configuration
MarTrepodi Mar 2, 2026
4c80b3c
test(unit): refactor test suite to remove mocks in favor of _post pat…
MarTrepodi Mar 2, 2026
a03eb43
feat(core): enhance swgoh-comlink library with improved payload valid…
MarTrepodi Mar 2, 2026
aa61dae
Chore/clean up (#64)
MarTrepodi Mar 2, 2026
bd50d83
chore(deps): bump actions/setup-python from 5 to 6
dependabot[bot] Mar 2, 2026
13a1cd9
chore(deps): bump actions/upload-artifact from 4 to 7
dependabot[bot] Mar 2, 2026
e80a9ef
chore(deps): bump actions/download-artifact from 4 to 8
dependabot[bot] Mar 2, 2026
174409c
chore(deps): bump actions/labeler from 5 to 6
dependabot[bot] Mar 2, 2026
b193338
chore(deps): bump actions/setup-python from 5 to 6 (#65)
MarTrepodi Mar 2, 2026
cdfcc12
chore(deps): bump actions/upload-artifact from 4 to 7 (#66)
MarTrepodi Mar 2, 2026
edd8f0d
chore(deps): bump actions/download-artifact from 4 to 8 (#67)
MarTrepodi Mar 2, 2026
0db5569
chore(deps): bump astral-sh/setup-uv from 4 to 7
dependabot[bot] Mar 2, 2026
12b6861
chore(deps): bump actions/labeler from 5 to 6 (#69)
MarTrepodi Mar 2, 2026
48e2f0c
chore(deps): bump astral-sh/setup-uv from 4 to 7 (#68)
MarTrepodi Mar 2, 2026
72a29f6
fix(core): route get_enums() through shared _request() method
MarTrepodi Mar 2, 2026
8912882
fix(core): route get_enums() through shared _request() method (#70)
MarTrepodi Mar 2, 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
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default owner for everything in the repo
* @MarTrepodi
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Bug Report
description: Report a bug in comlink-python
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear description of what the bug is.
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Minimal code or steps to reproduce the issue.
placeholder: |
from swgoh_comlink import SwgohComlink
comlink = SwgohComlink()
# ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen.
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened. Include full traceback if applicable.
validations:
required: true

- type: input
id: python-version
attributes:
label: Python Version
placeholder: "3.12.0"
validations:
required: true

- type: input
id: package-version
attributes:
label: Package Version
placeholder: "1.17.0"
validations:
required: true

- type: input
id: comlink-version
attributes:
label: Comlink Service Version (if applicable)
placeholder: "0.38.1"
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Feature Request
description: Suggest a new feature or enhancement
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem or Use Case
description: What are you trying to accomplish? How are you currently working around it?
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the API or behavior you'd like to see.
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any alternative approaches you've considered.
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "dependencies"
- "ci"

- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
labels:
- "dependencies"
30 changes: 30 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Label definitions for actions/labeler
# Maps file path patterns to PR labels

code:
- changed-files:
- any-glob-to-any-file:
- "src/**"

testing:
- changed-files:
- any-glob-to-any-file:
- "tests/**"

documentation:
- changed-files:
- any-glob-to-any-file:
- "docs/**"
- "*.md"
- "examples/**"

ci:
- changed-files:
- any-glob-to-any-file:
- ".github/**"

dependencies:
- changed-files:
- any-glob-to-any-file:
- "pyproject.toml"
- "uv.lock"
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Description

<!-- What does this PR do? Why is it needed? -->

## Related Issues

<!-- Link related issues: "Closes #123" or "Relates to #456" -->

## Type of Change

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Refactor (code change that neither fixes a bug nor adds a feature)
- [ ] Documentation
- [ ] Tests

## Checklist

- [ ] My commits follow the [Angular commit convention](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `refactor:`, etc.)
- [ ] I have added/updated docstrings with type hints for any new or changed public methods
- [ ] I have added unit tests that cover my changes (mocked, not requiring a live comlink service)
- [ ] All existing tests still pass (`python -m pytest tests/ -v`)
- [ ] Ruff linter passes (`ruff check src/ tests/`)
- [ ] I have not bundled unrelated changes in this PR

## Testing

<!-- How did you test this? What should reviewers verify? -->
126 changes: 126 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: CI

on:
pull_request:
branches: [main, 2.0-development]
push:
branches: [main]

permissions:
contents: read

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

jobs:

# ── Lint ───────────────────────────────────────────────────────────────
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v7

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

- name: Run Ruff linter
run: uvx ruff check src/ tests/

- name: Run Ruff formatter check
# NOTE: Set continue-on-error to false once the initial formatting PR is merged
continue-on-error: true
run: uvx ruff format --check src/ tests/

# ── Type check ─────────────────────────────────────────────────────────
type-check:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v7

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

- name: Install dependencies
run: uv pip install --system -e "." mypy

- name: Run mypy
# NOTE: 38 existing errors (mostly implicit Optional). Set continue-on-error
# to false once type annotations are cleaned up (see pyproject.toml TODO).
continue-on-error: true
run: mypy src/swgoh_comlink/

# ── Test ───────────────────────────────────────────────────────────────
test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: uv pip install --system -e "." pytest pytest-cov

- name: Run tests with coverage
run: |
python -m pytest tests/ \
--cov=swgoh_comlink \
--cov-report=term-missing \
--cov-report=xml:coverage.xml \
-v

- name: Upload coverage artifact
if: matrix.python-version == '3.12'
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: coverage.xml

# ── Build verification ─────────────────────────────────────────────────
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v7

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

- name: Install hatch
run: uv pip install --system hatch

- name: Build package
run: hatch build

- name: Verify wheel contents
run: |
pip install dist/*.whl
python -c "from swgoh_comlink import SwgohComlink; print('Import OK')"
41 changes: 41 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Commit Lint

on:
pull_request:
branches: [main, 2.0-development]

permissions:
contents: read

jobs:
commitlint:
name: Validate Commit Messages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install commitlint
run: npm install -g @commitlint/{cli,config-conventional}

- name: Create commitlint config
run: |
cat > .commitlintrc.json << 'EOF'
{
"extends": ["@commitlint/config-conventional"],
"rules": {
"type-enum": [2, "always", [
"feat", "fix", "refactor", "build", "deps",
"chore", "docs", "test", "style", "ci", "perf"
]],
"scope-enum": [1, "always", [
"core", "helpers", "deps", "release", "ci"
]],
"subject-max-length": [1, "always", 100]
}
}
EOF

- name: Validate commits
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
19 changes: 19 additions & 0 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Auto Label PR

on:
pull_request:
types: [opened, synchronize]

permissions:
contents: read
pull-requests: write

jobs:
label:
name: Auto Label
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v6
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: false
Loading
Loading