Pg-spot-operator

Latest version: v0.9.12

Safety actively analyzes 688674 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 3

0.8.2

------------------
- Release: version 0.8.2 🚀 [Kaarel Moppel]
- README - Add info on Python installation via pipx (59) [Kaarel
Moppel]

* Add info on Python installation via pipx

* Demo the newly added --ansible-path flag when running via pipx
- Make custom Ansible paths possible via --ansible-path (58) [Kaarel
Moppel]

For example when wanting to do some customizations to the Postgres setup
or when using via PyPI / pipx

0.8.1

------------------
- Release: version 0.8.1 🚀 [Kaarel Moppel]

0.8.0

------------------
- Release: version 0.8.0 🚀 [Kaarel Moppel]
- Faster teardown - don't sleep unnecessarily (57) [Kaarel Moppel]

If there are no volumes (--storage-type=local) then no reason to sleep.
And if using floating IPs then NIC is set to DeleteOnTermination and
don't have to do anything
- Some messages were still only about looking for the cheapest VM (55)
[Kaarel Moppel]

https://github.com/pg-spot-ops/pg-spot-operator/issues/13
- Reduce after-VM-create sleep from 30s to 5s. [Kaarel Moppel]

As already checking the instance state in ensure_vm()...but still need a
bit of extra as "available" state doesn't mean actually that one can
yet log in. 5s seems to work well though.

https://github.com/pg-spot-ops/pg-spot-operator/issues/46
- Don't create a NIC in floating IP mode (52) [Kaarel Moppel]

As less chance of abandoned resources + faster ressurect after eviction as don't have to wait for the NIC to become "available"

* Don't create a NIC in floating IP mode

Rename floating_public_ip -> floating_ips

https://github.com/pg-spot-ops/pg-spot-operator/issues/7

* Add some comments around public IPs to the example manifest
- Merge pull request 54 from pg-spot-ops/non-default-ssh-key-option.
[Evans Akai Bekoe]

New flag --ssh-private-key + Ansible manifest section
- Take account --ssh-private-key when displaying the SSH connect string.
[Kaarel Moppel]
- Check on startup that --ssh-private-key .pub file also exists. [Kaarel
Moppel]
- New flag --ssh-private-key + Ansible manifest section. [Kaarel Moppel]

New section as proably need to add all other Ansible connection opts
also to support ProxyCommand etc
- Show the SSH connect string on VM create / instance setup finished
(53) [Kaarel Moppel]

https://github.com/pg-spot-ops/pg-spot-operator/issues/26
- Don't show "Re-configuring Postgres" when in --vm-only mode. [Kaarel
Moppel]
- Correct last commit typo. [Kaarel Moppel]
- Survive when public or private primary IP address of instances changes
(51) [Kaarel Moppel]

Normally should not happen but possible. Re-register in CMDB then.
- Show progress messages still in --connstr-output-only mode (50)
[Kaarel Moppel]

Was a bit too scary
- Detect externally set expiration tags and terminate the instance if
needed (47) [Kaarel Moppel]

* Detect externally set expiration tags and shut down the engine

To to counter the "runaway daemon" problem

https://github.com/pg-spot-ops/pg-spot-operator/issues/33

* Ensure the externally signalled expiry is persistent on one engine node

By introducing a new Sqlite table "ignored_instance"

* Don't shut down the engine after external signalling

This reduces the chance of a resurrect-loop if running Docker with something
like --restart=unless-stopped

* Take into account --dry-run and custom host modes
- Proofread readme (49) [Evans Akai Bekoe]

* proofread readme

* proofread readme
- Support adding extensions over the CLI (48) [Kaarel Moppel]

* New CLI flags --os-extra-packages and --shared-preload-libraries

To enable non core extensions like postgis or timescaledb. By default
only load pg_stat_statements

* Add a new CLI / manifest attribute "extensions"

To pre-create listed extensions as users don't have the necessary privs
if admin_is_superuser=false

* Fix linter

* Improve --os-extra-packages help comment

To be really comma separated
- Add --app-db-name / PGSO_APP_DB_NAME flag. [Kaarel Moppel]

To create a non-postgres DB for app / user usage
- Fix non-admin user default DB and public schema privs. [Kaarel Moppel]

Non-admin couldn't create tables effectively
- Fix tests/test_manifests.py. [Kaarel Moppel]
- New CLI flag --admin-is-superuser / PGSO_ADMIN_IS_SUPERUSER. [Kaarel
Moppel]

Also don't hand out the real superuser by default anymore
- README - specify that the discount rate is to normal EC2 pricing.
[Kaarel Moppel]

and RDS actually costs more
- README - add a Why journey to introduce the concept. [Kaarel Moppel]
- CLI - don't require --storage-min in --teardown or --teardown-region
mode. [Kaarel Moppel]
- README - link to RDS pricing + indicate approximate uptime. [Kaarel
Moppel]
- README - elaborate more on the input manifests. [Kaarel Moppel]
- README - move "integrating with apps" section higher. [Kaarel Moppel]

Add a note about tags usage
- README - clarify user input options + add a VC subsection. [Kaarel
Moppel]
- README update - fix some inconsistencies. [Kaarel Moppel]
- Add support for optional on-the-VM monitoring (29) [Kaarel Moppel]

* Add Ansible monitoring_setup role

Installs prom + node_exporter if monitoring.node_exporter set

* Grafana setup added

* New vars structure

Replace "lineinfile" grafana.ini with a custom ini template

* Provision 2 dashboards - node exporter basic + node exporter full

Slightly modified versions of:
https://grafana.com/grafana/dashboards/13978-node-exporter-quickstart-and-dashboard/
https://grafana.com/grafana/dashboards/1860-node-exporter-full/

* Fix cold apt cache

* Make node exporter quickstart dash Grafana global default

* Rename local_only -> externally_accessible in monitoring section

* Fix externally_accessible effect - was reversed actually

* Add monitoring.grafana.protocol param to control TLS

Enabled via a self-signed certificate by default

* WIP Monitoring CLI flags + README

* Integrate with the engine. Feature complete now

* README minor correction

* Fix CLI to_bool -> str_to_bool rename leftovers

* Display the Grafana URL if enabled

* Node exporter quickstart dash - add tooltip sort by descending

* Make monitoring.grafana.protocol setting a bit more foolproof

As per PR review

* Don't rotate Grafana certs on every Ansible run
- README minor fix - Docker path location. [Kaarel Moppel]
- Reduce Cronjob chattiness in --self-terminate mode. [Kaarel Moppel]

As Cron assumes if failed when producing output
- Cli price check mode (32) [Kaarel Moppel]

* Add a new CLI flag --check-price / PGSO_CHECK_PRICE env var

Resolves HW reqs (according to the --selection-strategy in effect), displays the current Spot price and exits

Some AWS secrets setting refactor bycatch
- README ports section - add a sample AWS CLI command to enable SSH
access. [Kaarel Moppel]

for the engine node IP address only
- README - add a section on relevant ports / EC2 Security Group
permissions. [Kaarel Moppel]
- Improve the delete_all_operator_tagged_objects.sh script. [Kaarel
Moppel]

Scan all active regions by default for Spot Operator resources
- Postgres tuning - use SKU real CPU / RAM / disk info when available.
[Kaarel Moppel]

So far was using the user input, but as it's "min_cpu" etc, the real
harware can be much more powerful
- Docker - use latest (3.12) Python base image. [Kaarel Moppel]
- CLI flags - enable custom AWS subnets and Security Groups. [Kaarel
Moppel]

By adding 2 new flags --aws-security-group-ids and --aws-subnet-id
- Increase AWS root volume size from default 8 to 20GB. [Kaarel Moppel]

8 is too skimpy probably, might want to install some custom packages
still for ad-hoc analytics etc
- Cli.py fix to_bool -> str_to_bool leftover. [Kaarel Moppel]
- Require --expiration-date when --self-terminate set. [Kaarel Moppel]
- README - add --self-terminate mode info. [Kaarel Moppel]
- New CLI flags --self-terminate --self-terminate-access-key-id --self-
terminate-secret-access-key. [Kaarel Moppel]

Need explicit input - not read from local AWS config as with normal --aws-access-key-id and
--aws-secret-access-key as there are serious security implications
- Reference instance_teardown.py from root home in cron. [Kaarel Moppel]
- Roles/self_terminatio - main flow implemented. [Kaarel Moppel]

Install a cronjob under root to check "expiration_date" every 10mins
- New feature - fire-and-forget auto-terminate mode WIP. [Kaarel Moppel]
- Validate --instance-name and --storage-type. [Kaarel Moppel]
- Update README about the new --connstr-output-only mode. [Kaarel
Moppel]
- New feature: --connstr-output-only mode. [Kaarel Moppel]

Ensure VM, set up Postgres, print connstr and exit. Helps with all kinds
of integrations / pipelines
- README - mention that a setup from zero typically takes 2-3min.
[Kaarel Moppel]
- Enable Ansible pipelining to speed up the setup. [Kaarel Moppel]

From zero setup taking 2-3min usually now
- Show the selected zone instead of region on new instance selection.
[Kaarel Moppel]

To better see what zones are cheap currently
- Don't auto-add quotes to --expiration-date input. [Kaarel Moppel]

Leave it to user as leads to confusing errors otherwise
- HW filtering - exclude burstable instance types by default. [Kaarel
Moppel]

As tend to get killed more often
- Refactor manifest compilation from CLI args. [Kaarel Moppel]

Skip the intermediary text glueing - set InstanceManifest attributes
and export to YAML in the end, as need a textual representation also
for SQLite storage / change diffing
- Adjust CLI params. [Kaarel Moppel]
- Convert roles/open_pg_instance_access. [Kaarel Moppel]
- Convert roles/pgbackrest_restore. [Kaarel Moppel]
- Convert roles/configure_pgbackrest. [Kaarel Moppel]
- Convert roles/init_pg_instance. [Kaarel Moppel]
- Convert roles/os_setup. [Kaarel Moppel]
- Convert roles/install_os_pg_prereqs. [Kaarel Moppel]
- Convert merge_vars. [Kaarel Moppel]
- Python side moved to new manifest API. [Kaarel Moppel]
- Fix --dry-run Ansible inventory compilation. [Kaarel Moppel]
- CLI rename --selection to --selection-strategy. [Kaarel Moppel]

Manifest field: vm.instance_selection_strategy
Currently supported: cheapest | random
- Merge pull request 17 from pg-spot-ops/14-instance-choice-strategy.
[Evans Akai Bekoe]

allow random strategy for instance-type selection
- Fix misc review stuff. [Evans Akai Bekoe]
- Fix misc review comments. [Evans Akai Bekoe]
- Allow random strategy for instance-type selection. [Evans Akai Bekoe]
- Merge pull request 21 from pg-spot-ops/non-su-power. [Evans Akai
Bekoe]

add more roles to pg admin user
- Fix review items. [Evans Akai Bekoe]
- Add more roles to admin user. [Evans Akai Bekoe]
- WIP. [Kaarel Moppel]
- If admin_is_superuser not set, grant all built-in Postgres roles
instead. [Kaarel Moppel]
- Fix find_cheapest_spot_region_for_instance_type.py UTC handling.
[Kaarel Moppel]
- README update on expected eviction rates. [Kaarel Moppel]
- Generate correct inventory file in --dry-run mode for fixed host.
[Kaarel Moppel]

Use provided vm.host / vm.login_user instead of localhost
- Fixed vm.host / vm.login_user was ignored for manifest files. [Kaarel
Moppel]
- README - add a section on the Enterprise Edition. [Kaarel Moppel]
- Ansible - fix unattended upgrades setup. [Kaarel Moppel]

vm.unattended_security_upgrades input var was not actually effective.
Also enable automatic reboot if needed
- Main loop - show backing instance type also if a VM exists. [Kaarel
Moppel]
- Limit get_current_hourly_ondemand_price fetching completion to 5s.
[Kaarel Moppel]
- Implement pg_config.ensure_shared_preload_libraries. [Kaarel Moppel]

List converted to shared_preload_libraries (+ restart of Postgres when
needed) when shared_preload_libraries not already specified by user in extra_config_lines
- Shut down when --teardown set and resource cleanup successful. [Kaarel
Moppel]
- Clean up logs older than one week on startup. [Kaarel Moppel]

Ansible actions leave some garbage (full roles + vars + logs) which
might start to accumulate in long term
- Display backing instance pub / priv IP on a NoOp loop still. [Kaarel
Moppel]
- Lower default backup.wal_archiving_max_interval to 2min. [Kaarel
Moppel]

So that average data loss for instance storage would be around 1min
- README - add a section on backups. [Kaarel Moppel]
- CLI - add pgbackrest s3 backups option. [Kaarel Moppel]

With s3 cleanup by default on instance expiry. New flags:
--backup-s3-bucket
--backup-cipher
--backup-retention-days
--backup-s3-key
--backup-s3-key-secret
- README - clarify remote "postgres" user access possibility. [Kaarel
Moppel]

Not enabled by default
- README - add a section "setup finished" callback hook usage. [Kaarel
Moppel]
- Reduce Containerfile size slightly. [Kaarel Moppel]

Via apt-clean
- README - add a Security section. [Kaarel Moppel]
- README - all more main features and and --expiration-date sample.
[Kaarel Moppel]
- README - add a subsection on "destroy file" usage. [Kaarel Moppel]
- Relax the single-engine-process mutex a bit - make it per instance-
name. [Kaarel Moppel]
- README - add a section on non-cloud development. [Kaarel Moppel]
- Test SSH connection in --dry-run mode when using custom VM. [Kaarel
Moppel]
- CLI rename --vm-address / username to more clear --vm-host/--vm-login-
user. [Kaarel Moppel]

Also in the manifest
- CLI - don't require --region / --storage-min when using a fixed VM.
[Kaarel Moppel]
- Fix var merging - include new setup_finished_callback. [Kaarel Moppel]
- Set --vm-address / --vm-user also as manifest attributes. [Kaarel
Moppel]

So that could test the full lifecycle including callback
- Add --setup-finished-callback CLI param. [Kaarel Moppel]

Rename Ansible connstr_changed_callback role also to
setup_finished_callback as called even when the actual connstr doesnt
change but some other setting
- README update. [Kaarel Moppel]
- Skip 30s sleep if backing VM actually existed during ensure_vm.
[Kaarel Moppel]
- Don't resolve HW reqs on startup when already have a backing VM.
[Kaarel Moppel]

Just show price info
- Containerfile - add missing tuning_profiles folder. [Kaarel Moppel]
- Add standard python3 shebang to tuning profiles. [Kaarel Moppel]
- More logging adjustments. [Kaarel Moppel]
- Reduce some logging noise. [Kaarel Moppel]
- README - switch the run examples to a cheaper 2 CPU instance. [Kaarel
Moppel]

Correct Docker image name also
- Add all available fields to the example manifest. [Kaarel Moppel]
- Rename admin_is_real_superuser to admin_is_superuser. [Kaarel Moppel]
- Fix get_network_interfaces, return only NICs related to given
instance. [Kaarel Moppel]
- Fix CLI set --expiration-date instances resurrected in next loop.
[Kaarel Moppel]
- Add quotes to --expiration-date CLI param if not already quoted.
[Kaarel Moppel]
- Implement single instance destroy. [Kaarel Moppel]
- New CLI flag / feature: --destroy-file-base-path. [Kaarel Moppel]

Defaults to "/tmp/destroy-". Main idea is to auto-shutdown the container
after instance not needed anyore with something like:
docker exec pg1 -- touch /tmp/destroy-myinstance
- Add one retry to connstr changed callback invocation. [Kaarel Moppel]
- New feature - execut a user provided callback on connect string
change. [Kaarel Moppel]
- Implement manifest is_paused attribute. [Kaarel Moppel]

No engine actions temporarily to perform some user maintenance / shut
down the instance etc
- Show RAM in MiB if < 1GB instead of 0. [Kaarel Moppel]

Fix multi-instance cheapest detection
- Support multi-instance input from user. [Kaarel Moppel]

vm.instance_type -> vm.instance_types list
- Fix test_filter_instances. [Kaarel Moppel]
- Make admin user superuser by default. [Kaarel Moppel]

As the whole thing geared anyways for power users
- Move single instance mutex check down a bit. [Kaarel Moppel]

So that can still check for prices when something running
- Ansible - fix default pg_hba access. [Kaarel Moppel]
- Ansible - unused roles cleanup. [Kaarel Moppel]
- CLI add --admin-user / --admin-user-password. [Kaarel Moppel]
- Validate --user-tags on startup instead of manifest compilation.
[Kaarel Moppel]
- Add --user-tags CLI option. [Kaarel Moppel]
- New feature - upscale / downscale on CPU / RAM requirements change.
[Kaarel Moppel]

Also for local instance storage
- Correct instance type filtering. [Kaarel Moppel]

Don't leave out burstable instances
- Exit after --dry-run first loop. [Kaarel Moppel]
- Add --vm-address / --vm-user to run / test Ansible setup on custom
host. [Kaarel Moppel]

Good for local Vagrant testing for example
- Remove --no-recreate flag as cannot implement without a fully stateful
CMDB. [Kaarel Moppel]
- Add --vm-only / PGSO_VM_ONLY CLI flag to skip Ansible setup. [Kaarel
Moppel]
- Add --teardown-region CLI option. [Kaarel Moppel]

Same as delete_all_operator_tagged_objects.sh but for Docker convenience
- CLI - infer --region from --zone if latter set. [Kaarel Moppel]
- Destroy_target_time_utc -> expiration_date leftovers. [Kaarel Moppel]
- Add ansible/v1/merge_vars.yml. [Kaarel Moppel]

For more convenient merge testing
- Ansible engine vars merging - remove unneeded default vars. [Kaarel
Moppel]
- Delete object script - add eu-south regions (dev-testing) [Kaarel
Moppel]
- Don't include 1st disk device into LV when using network storage.
[Kaarel Moppel]
- Ansible - fix mounting of EBS volumes when local storage also exists.
[Kaarel Moppel]
- Apply some rounding to the selected instances Spot price. [Kaarel
Moppel]
- Find_cheapest_spot_region - get rid of depracated warning. [Kaarel
Moppel]
- Don't validate --region format in case of manifest file input. [Kaarel
Moppel]
- Decrypt the secrets in main loop before AWS client usage. [Kaarel
Moppel]
- Make manifest secret decryption generic. [Kaarel Moppel]

And decrypt also aws.access_key_id / secret_access_key
- Rename ensure_app_dbname to app_db_name. [Kaarel Moppel]
- Fix instance expiry check - account for utc / non-utc inputs. [Kaarel
Moppel]
- Rename expires_on to more standard expiration_date. [Kaarel Moppel]
- Add pg-spot-operator-expires-on tag to created VMs if set. [Kaarel
Moppel]
- Find_cheapest_spot_region - add ondemand savings info. [Kaarel Moppel]
- Add util script to find cheapest zone for an instance type. [Kaarel
Moppel]
- Reduce logging noise, better AMI info. [Kaarel Moppel]
- Validate --region format. [Kaarel Moppel]
- Ensure single instance of program running. [Kaarel Moppel]
- Replace override manifest with a more light session_vars dict. [Kaarel
Moppel]

To propagate engine interventions / overrides to ansible
- Encrypt pg.admin_user_password for the sample manifest. [Kaarel
Moppel]
- Validate vault password decryption with --check-manifests. [Kaarel
Moppel]
- Ansible - add more default vars. [Kaarel Moppel]

So that can run roles without manifests in "vars" folder
- Ansible - fix Postgres port to 5432. [Kaarel Moppel]
- Ansible - rename pg.major_ver to top level postgres_version. [Kaarel
Moppel]
- Remove --sqlite-path param. [Kaarel Moppel]

Glue SQLITE_DBNAME to --config-dir
- Show selected SKU info only after we have the spot price. [Kaarel
Moppel]
- Refactor boto3.get_client to a separate file. [Kaarel Moppel]
- README update - docer run with new direct SSH keys / AWS creds input.
[Kaarel Moppel]
- Add --aws-access-key-id / --aws-secret-access-key params. [Kaarel
Moppel]

To not bind ~/.aws to the container
- Tuning - add a line with profile name as a comment. [Kaarel Moppel]
- Apply the "default" tuning profile by default. [Kaarel Moppel]
- Add --tuning-profile / PGSO_TUNING_PROFILE CLI parameter. [Kaarel
Moppel]

To be able to apply basic Postgres tuning easily
- Add standalone tuning profiles. [Kaarel Moppel]
- Add --ssh-keys / PGSO_SSH_KEYS param. [Kaarel Moppel]

For more Docker convenience, so that don't have to bind to host .ssh for
convenient access
- Replace PyPy instructions with local Python dev. [Kaarel Moppel]
- Add Containerfile. [Kaarel Moppel]
- Pass user_data to ec2_launch_instance. [Kaarel Moppel]
- Make ensure_vm execution less generic. [Kaarel Moppel]
- WIP. [Kaarel Moppel]
- CLI - do some basic validations before CMDB init. [Kaarel Moppel]
- Pass dry-run to ec2_launch_instance and catch ClientError. [Kaarel
Moppel]
- Fix --dry-run. [Kaarel Moppel]
- Import operator / main loop skel. [Kaarel Moppel]
- Manifest rename - pg.major_ver to top lvl postgres_version. [Kaarel
Moppel]
- Add SQLite CMDB for keeping instance / VM info and manifest changes.
[Kaarel Moppel]
- Add --pg-major-version param. [Kaarel Moppel]
- Manifests - move assign_public_ip attr from VM section to root.
[Kaarel Moppel]
- Add --cpu_architecture arg. [Kaarel Moppel]

Rename destroy_target_time_utc -> expires_on
- CLI - impl --check-manifest. [Kaarel Moppel]
- Fix tests. [Kaarel Moppel]
- Amend last tests/test_aws_vm.py. [Kaarel Moppel]
- Add test_ensure_spot_vm. [Kaarel Moppel]
- Add a Bash script to clean up any operator created AWS resources.
[Kaarel Moppel]

Handy for dev testing
- AWS VM creation skel. [Kaarel Moppel]
- Remove unused imports. [Kaarel Moppel]
- Add manifests.py defining the user input YAML model. [Kaarel Moppel]
- Add AWS impl skel. [Kaarel Moppel]
- Add CLI args. [Kaarel Moppel]
- Add example_manifests/hello_aws.yaml. [Kaarel Moppel]
- Import single instance ansible from EE. [Kaarel Moppel]
- Remove .github/workflows/rename_project.yml. [Kaarel Moppel]
- Remove some template skel files. [Kaarel Moppel]
- Bump actions/checkout from 3 to 4. [dependabot[bot]]

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-major
...
- Bump actions/setup-python from 4 to 5. [dependabot[bot]]

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-type: direct:production
update-type: version-update:semver-major
...
- Bump softprops/action-gh-release from 1 to 2. [dependabot[bot]]

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
dependency-type: direct:production
update-type: version-update:semver-major
...
- Bump stefanzweifel/git-auto-commit-action from 4 to 5.
[dependabot[bot]]

Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4 to 5.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
dependency-type: direct:production
update-type: version-update:semver-major
...
- Bump codecov/codecov-action from 3 to 4. [dependabot[bot]]

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
dependency-type: direct:production
update-type: version-update:semver-major
...
- Python 3.9 -> 3.10. [Kaarel Moppel]

No win / mac builds
- README update. [Kaarel Moppel]
- Change licence to Functional Source License, Version 1.1, Apache 2.0
Future License. [Kaarel Moppel]
- ✅ Ready to clone and code. [kmoppel]
- Initial commit. [Kaarel Moppel]

Page 3 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.