Commit Graph
1331 Commits
Author SHA1 Message Date
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
89eafe2f23 chore(deps): bump pyjwt from 2.10.1 to 2.12.0 (#14977)
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.10.1 to 2.12.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.10.1...2.12.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-version: 2.12.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-08 14:07:17 -04:00
Dan GuidoandGitHub 7748ff3123 Declare missing cloud collections in requirements.yml (#15000)
Four cloud roles use modules from collections that were not declared in
requirements.yml: cloud-ec2 and cloud-lightsail use cloudformation and
ec2_ami_info from amazon.aws, cloud-gce uses gcp_compute_* from
google.cloud, cloud-hetzner uses hetzner.hcloud.server and ssh_key, and
cloud-cloudstack uses cs_instance, cs_securitygroup, and cs_securitygroup_rule
from ngine_io.cloudstack. Deploys to these providers worked only when the
collections happened to be installed from another source. On a fresh
install via ansible-galaxy install -r requirements.yml, the roles would
fail at runtime with module-not-found errors.

This is the same bug class as #14999 (vultr.cloud).
2026-05-08 13:55:40 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
cfd43f0867 chore(deps): bump pytest from 8.4.1 to 9.0.3 (#14990)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.1 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-08 13:51:54 -04:00
Dan MotzenbeckerandGitHub c85da0292a Add vultr.cloud dependency to fix Vultr deploys (#14999)
* add vultr.cloud dependency to requirements

* Pin vultr.cloud version
2026-05-08 13:10:53 -04:00
dependabot[bot]andGitHub c11104a705 chore(deps): bump the python group with 5 updates (#14998) 2026-05-06 09:40:02 -04:00
dependabot[bot]andGitHub 80ea4a0e62 chore(deps): bump actions/checkout in the github-actions group (#14997) 2026-05-06 09:39:45 -04:00
dependabot[bot]andGitHub 335ae3c32a chore(deps): bump the python group across 1 directory with 4 updates (#14995) 2026-04-29 09:28:57 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d2b59295ed chore(deps): bump the github-actions group with 2 updates (#14993)
Bumps the github-actions group with 2 updates: [docker/build-push-action](https://github.com/docker/build-push-action) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `docker/build-push-action` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/d08e5c354a6adb9ed34480a06d141179aa583294...bcafcacb16a39f128d818304e6c9c0c18556b85f)

Updates `actions/upload-artifact` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 08:27:54 -04:00
dependabot[bot]andGitHub c15b6908ce chore(deps): bump the python group with 2 updates (#14992) 2026-04-15 10:30:04 -04:00
dependabot[bot]andGitHub b4cfa33649 chore(deps): bump docker/login-action in the github-actions group (#14991) 2026-04-15 10:29:42 -04:00
dependabot[bot]andGitHub 76ba8491b8 chore(deps): bump cryptography from 46.0.6 to 46.0.7 (#14989) 2026-04-08 18:21:54 -04:00
dependabot[bot]andGitHub 5b53b851ee chore(deps): bump the python group with 3 updates (#14988) 2026-04-08 10:42:30 -04:00
dependabot[bot]andGitHub ea34a120cd chore(deps): bump the python group with 2 updates (#14987) 2026-04-01 07:02:05 -04:00
dependabot[bot]andGitHub e2bfb7e306 chore(deps): bump pygments from 2.19.2 to 2.20.0 (#14985) 2026-03-30 17:28:20 -04:00
dependabot[bot]andGitHub 9040490904 chore(deps): bump cryptography from 46.0.5 to 46.0.6 (#14984) 2026-03-29 08:06:52 -04:00
dependabot[bot]andGitHub dc0c944068 chore(deps): bump the python group with 4 updates (#14982) 2026-03-25 08:17:09 -04:00
dependabot[bot]andGitHub eb89aa20e0 chore(deps): bump dorny/paths-filter in the github-actions group (#14981) 2026-03-25 08:15:09 -04:00
dependabot[bot]andGitHub 3750bac55b chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 (#14978) 2026-03-18 08:30:05 -04:00
dependabot[bot]andGitHub ccb4932a11 chore(deps): bump the python group with 3 updates (#14980) 2026-03-18 08:29:48 -04:00
dependabot[bot]andGitHub a06d7e004d chore(deps): bump the github-actions group with 3 updates (#14979) 2026-03-18 08:29:30 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1332aacc87 chore(deps): bump black from 25.1.0 to 26.3.1 (#14976)
Bumps [black](https://github.com/psf/black) from 25.1.0 to 26.3.1.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/25.1.0...26.3.1)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 26.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-12 15:00:31 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4e77f722ab chore(deps): bump the python group with 2 updates (#14975)
Bumps the python group with 2 updates: [boto3](https://github.com/boto/boto3) and [linode-api4](https://github.com/linode/linode_api4-python).


Updates `boto3` from 1.42.56 to 1.42.60
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.56...1.42.60)

Updates `linode-api4` from 5.39.0 to 5.40.0
- [Release notes](https://github.com/linode/linode_api4-python/releases)
- [Commits](https://github.com/linode/linode_api4-python/compare/v5.39.0...v5.40.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.60
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: linode-api4
  dependency-version: 5.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 13:36:53 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
14eed25fe6 chore(deps): bump the github-actions group with 3 updates (#14974)
Bumps the github-actions group with 3 updates: [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action), [docker/login-action](https://github.com/docker/login-action) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `docker/setup-qemu-action` from 3.7.0 to 4.0.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/c7c53464625b32c7a7e944ae62b3e17d2b600130...ce360397dd3f832beb865e1373c09c0e9f86d70a)

Updates `docker/login-action` from 3.7.0 to 4.0.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/c94ce9fb468520275223c153574b00df6fe4bcc9...b45d80f862d83dbcd57f89517bcf500b2ab88fb2)

Updates `actions/upload-artifact` from 6.0.0 to 7.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: docker/login-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 13:36:44 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
28cb68169d chore(deps): bump boto3 from 1.42.51 to 1.42.56 in the python group (#14973)
Bumps the python group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.51 to 1.42.56
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.51...1.42.56)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.56
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 06:02:03 -08:00
dependabot[bot]andGitHub e5470b69bb chore(deps): bump docker/build-push-action in the github-actions group (#14971) 2026-02-25 04:55:25 -08:00
dependabot[bot]andGitHub 87c66347fa chore(deps): bump the python group with 3 updates (#14972) 2026-02-25 04:55:05 -08:00
de11b86060 fix: detect missing SECP384R1 early and fix community.crypto compatibility (#14970)
Add pre-flight check in main.yml that catches missing cryptography/SECP384R1
before deployment starts, replacing the cryptic error from community.crypto
internals with an actionable message pointing users to run ./algo or uv sync.

Root cause of the CI ipsec/both test failures: cryptography 46.0.5 wraps
the ec module with _ModuleWithDeprecations (for SECT curve deprecation),
which breaks community.crypto's ec.__dict__.get("SECP384R1") lookup.
The fix in community.crypto 3.1.1 uses getattr() instead.

Changes:
- Add SECP384R1 pre-flight check to main.yml (conditional on ipsec_enabled)
- Add cryptography>=42.0.0 as explicit dependency in pyproject.toml
- Upgrade community.crypto to >=3.1.1 (fixes __dict__ vs getattr bug)
- Add ansible-galaxy collection install step to CI
- Use venv Python interpreter for local deployments in add_host tasks

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 02:40:17 -08:00
dependabot[bot]andGitHub a79d73009f chore(deps): bump the python group with 3 updates (#14968) 2026-02-18 07:50:25 -07:00
dependabot[bot]andGitHub 2b7f1c3fef chore(deps): bump boto3 from 1.42.36 to 1.42.41 in the python group (#14967) 2026-02-11 11:08:51 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d3443a0634 chore(deps): bump cryptography from 46.0.3 to 46.0.5 (#14966)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.3 to 46.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 22:02:13 -05:00
5a72268117 feat: add destroy subcommand to tear down deployed servers (#14965)
* feat: add destroy subcommand to tear down deployed servers

Add `./algo destroy <server-ip>` to programmatically remove cloud
resources and clean up local configs. Reads provider and server name
from configs/<ip>/.config.yml, gathers credentials via existing
prompts.yml, confirms with user, then dispatches to provider-specific
destroy tasks.

Supports all 11 cloud providers:
- DigitalOcean, EC2, Lightsail (CloudFormation), Azure (resource group),
  GCE (instance + subsidiary resources), Hetzner, Vultr, Scaleway,
  OpenStack, CloudStack, Linode
- Local provider: config cleanup only

Also stores algo_region in .config.yml during deployment so destroy
can auto-detect region. Fixes Scaleway module to allow state=absent
without image/commercial_type/organization params. Adds Vultr to
region-required providers and stores algo_region in Vultr prompts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add list-servers script and tests

Add scripts/list_servers.py to scan configs/ for deployed server
metadata and output JSON. Referenced by `./algo list-servers`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:24:14 -05:00
bdc03d0a7f ci: add semgrep SAST scanning to CI and pre-commit (#14964)
* ci: add semgrep SAST scanning to CI and pre-commit

Add semgrep static analysis to the security workflow and pre-commit
hooks. Uses `--config auto` for comprehensive coverage across Python,
Dockerfile, and GitHub Actions. The intentional `USER root` in the
Dockerfile (required for bind mount compatibility) is excluded via
`--exclude-rule`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: pin semgrep container image to digest for zizmor

Pin semgrep/semgrep to sha256 digest (v1.151.0) to satisfy
zizmor's unpinned-images audit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add zizmor pre-commit hook for Actions security audit

Matches the existing actionlint pattern — gracefully skips if zizmor
is not installed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:59:30 -05:00
984831bcab fix: add explicit bool filters for Ansible 12 jinja2_native compatibility (#14963)
* fix: add explicit bool filters for Ansible 12 jinja2_native compatibility

Ansible 12 enables jinja2_native by default, which means string values
like "true"/"false" are no longer automatically coerced to booleans in
when: conditions and Jinja2 if statements. Add | bool filters to all
boolean variable references in tasks, templates, and handlers.

Also reformats long single-line Jinja2 conditionals into multi-line for
readability, fixes GCE default() calls for native mode, adds help
command to the algo script, and updates test fixtures to register the
bool filter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add j2lint for Jinja2 template linting

Add j2lint (aristanetworks/j2lint) to catch syntax errors, spacing
issues, and operator formatting in Jinja2 templates. Integrated into
pre-commit hooks, lint.yml CI, and smart-tests.yml.

Rules S3/S5/S6/S7/V1 are ignored — they enforce conventions
incompatible with Ansible's config-file-embedded templates.

Also fixes int+1 → int + 1 operator spacing in server.conf.j2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve all ansible-lint warnings and enforce zero-tolerance policy

Fix 18 jinja[spacing] errors across 12 files by moving Jinja2 block
delimiters to prevent YAML >- folding from introducing trailing spaces.

Fix 27 key-order[task] warnings across 17 files by reordering task keys
to canonical order (name → when → tags → environment → become → block).

Promote key-order[task] and yaml[line-length] from warn_list to hard
errors by removing warn_list entirely from .ansible-lint.

Add zero-tolerance warning policy to CLAUDE.md explaining why warnings
are unacceptable in a security tool and documenting resolution order.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:21:56 -05:00
0056bc725c docs: add non-interactive deployment reference to CLAUDE.md (#14962)
Document all variables and environment variable fallbacks that enable
fully headless deployment, so LLM agents and CI pipelines can discover
how to deploy without interactive prompts.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:37:14 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
29706d33e2 chore(deps): bump the python group with 4 updates (#14961)
Bumps the python group with 4 updates: [boto3](https://github.com/boto/boto3), [azure-mgmt-compute](https://github.com/Azure/azure-sdk-for-python), [google-auth](https://github.com/googleapis/google-auth-library-python) and [hcloud](https://github.com/hetznercloud/hcloud-python).


Updates `boto3` from 1.42.33 to 1.42.36
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.33...1.42.36)

Updates `azure-mgmt-compute` from 37.1.0 to 37.2.0
- [Release notes](https://github.com/Azure/azure-sdk-for-python/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-python/compare/azure-mgmt-compute_37.1.0...azure-mgmt-compute_37.2.0)

Updates `google-auth` from 2.47.0 to 2.48.0
- [Release notes](https://github.com/googleapis/google-auth-library-python/releases)
- [Changelog](https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0)

Updates `hcloud` from 2.15.0 to 2.16.0
- [Release notes](https://github.com/hetznercloud/hcloud-python/releases)
- [Changelog](https://github.com/hetznercloud/hcloud-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hetznercloud/hcloud-python/compare/v2.15.0...v2.16.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: azure-mgmt-compute
  dependency-version: 37.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: google-auth
  dependency-version: 2.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: hcloud
  dependency-version: 2.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 09:24:18 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ac62f8dbe9 chore(deps): bump docker/login-action in the github-actions group (#14960)
Bumps the github-actions group with 1 update: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/5e57cd118135c172c3672efd75eb46360885c0ef...c94ce9fb468520275223c153574b00df6fe4bcc9)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 09:24:08 -05:00
c5b88a77b7 test: validate config.cfg against deprecated cloud instance types (#14958)
Replace toy data tests with actual config.cfg validation to catch
deprecated instance types before deployment fails. Checks for:

- Hetzner Intel CX series (removed Sept 2024, use AMD CPX)
- DigitalOcean old naming scheme (use s-*vcpu-* format)
- EC2 previous gen types (unavailable in VPC)

Also adds basic sanity checks for required fields and malformed values.

Refs #14730

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:32:44 -05:00
8bdac1db4e security: remove unused sshpubkeys dependency (CVE-2024-23342) (#14957)
Remove sshpubkeys from cloudstack extras to eliminate the vulnerable
python-ecdsa transitive dependency. The sshpubkeys package was declared
but never actually imported or used anywhere in the codebase - CloudStack
role uses Ansible collection modules, not this Python package.

CVE-2024-23342 is a high severity Minerva timing attack affecting all
versions of python-ecdsa with no fix planned by maintainers.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:10:12 -05:00
21e21747ea ci: modernize tooling with prek, ty, and security scanning (#14956)
* ci: modernize tooling with prek, ty, and security scanning

Migrate from pre-commit to prek (Rust-native, faster hooks) and add
comprehensive CI improvements for code quality and security.

Changes:
- Replace pre-commit with prek for git hooks
- Add ty type checker (Rust-based, replaces mypy)
- Expand ruff rules: security (S), simplify (SIM), commented code (ERA)
- Add pip-audit workflow for Python dependency CVE scanning
- Add actionlint and zizmor for GitHub Actions linting/security
- Add ruff format check to CI
- Enable stricter ansible-lint rules (no-changed-when, risky-file-permissions)
- Remove obsolete Claude workflow files
- Apply ruff formatting fixes to test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): resolve actionlint install and ty type errors

- Use actionlint's official install script instead of broken URL pattern
- Exclude test mock modules from ty type checking
- Run workflows on push only for main/master to avoid duplicate PR runs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): use glob pattern for actionlint, exclude all tests from ty

- actionlint requires *.yml glob, not directory path
- Exclude all tests from ty type checking (test code has looser typing)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): quote shell variables to fix shellcheck warnings

Fix SC2046/SC2086 warnings in workflow scripts:
- Quote $(uname -r) in apt-get install
- Quote $(pwd) in docker volume mount
- Quote $existing in gh issue comment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): move key-order[task] to warn_list

Too many existing violations in the codebase to enable as error.
Move to warn_list for gradual fixes over time.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:10:05 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4d462eed57 chore(deps): bump boto3 from 1.42.31 to 1.42.33 in the python group (#14955)
Bumps the python group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.31 to 1.42.33
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.31...1.42.33)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 23:28:23 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
264ed2b7ad chore(deps): bump actions/setup-python in the github-actions group (#14954)
Bumps the github-actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).


Updates `actions/setup-python` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/83679a892e2d95755f2dac6acb0bfd1e9ac5d548...a309ff8b426b58ec0e2a45f0f869d46889d02405)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 23:13:03 -05:00
1ea11eefb9 fix: GCE region selection displays complete names instead of characters (#14953)
The Jinja2 template was building a string that looked like a list
instead of an actual list. When Ansible iterated over this string,
it yielded one character per iteration, causing the region prompt
to display:
  1. [
  2. '
  3. a
  ...

Now follows the pattern used by other cloud providers (EC2, DigitalOcean,
etc.) by storing region objects directly and accessing .name property.

Fixes #14944

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:09:15 -05:00
9bced9c6ad fix(ec2): change default instance type from t2.micro to t3.micro (#14952)
The T2 instance family is legacy and not available in newer AWS regions
like il-central-1 (Israel). Changing to t3.micro ensures deployments
work in all regions.

T3 instances offer better performance than T2 and are still covered
under the AWS Free Tier.

Fixes #14947

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:53:15 -05:00
genevera (she/her)andGitHub 6fa8a11c69 fix(aip): correct assertion for SNAT IPv4 address validation (#14949) 2026-01-29 22:47:23 -05:00
373871674d docs: add tests vs filters pattern for boolean checks (#14951)
Tests (`is X`) return native booleans; filters (`| X`) return data.
Use tests in assert.that and when: clauses.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:37:41 -05:00
dependabot[bot]andGitHub 0160b762c5 chore(deps): bump the python group with 4 updates (#14946) 2026-01-28 13:19:34 -05:00
dependabot[bot]andGitHub 4996ab35bd chore(deps): bump actions/checkout in the github-actions group (#14945) 2026-01-28 13:19:03 -05:00
dependabot[bot]andGitHub 028372e1cc chore(deps): bump the python group with 2 updates (#14943) 2026-01-21 07:31:54 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
23f3e81ea4 chore(deps): bump azure-core from 1.35.0 to 1.38.0 (#14942)
Bumps [azure-core](https://github.com/Azure/azure-sdk-for-python) from 1.35.0 to 1.38.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-python/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.35.0...azure-core_1.38.0)

---
updated-dependencies:
- dependency-name: azure-core
  dependency-version: 1.38.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 15:23:28 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6f742eaf41 chore(deps): bump virtualenv from 20.34.0 to 20.36.1 (#14941)
Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.34.0 to 20.36.1.
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/virtualenv/compare/20.34.0...20.36.1)

---
updated-dependencies:
- dependency-name: virtualenv
  dependency-version: 20.36.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 15:18:35 -05:00