A Python utility to ensure your files are securely encrypted with SOPS. Integrates seamlessly into your pre-commit workflow, providing automated validation for SOPS-encrypted files, enhancing security and compliance in your development process.
Project description
Validate-SOPS
Overview
validate-sops
is a Python utility designed to validate that specified files are encrypted using Mozilla SOPS (Secrets OPerationS). It ensures that sensitive files committed to your repository are securely encrypted, preventing accidental exposure of secrets.
Supported Formats
The utility supports validation for files in the following formats:
- JSON (.json)
- YAML (.yaml and .yml)
- Environment files (.env)
Features
- Validates multiple files for SOPS encryption.
- Easily integrated into pre-commit hooks for automated validation.
- Provides clear error messages for non-compliant files.
Usage
To use validate-sops
as a pre-commit hook in your projects, add the following configuration to your .pre-commit-config.yaml
file:
repos:
- repo: https://github.com/voldy/validate-sops
rev: 'v0.1.1' # Use the latest commit SHA or tag
hooks:
- id: validate-sops
# Adjust based on your file(s) location and type(s)
files: '.*\/secrets\/encrypted\.(yaml|yml|json|env)$'
Ensure that the file paths and types specified in the files regex pattern match the location and formats of the files you intend to validate in your project.
Local Development Setup
The following instructions are intended for contributors and developers working on the validate-sops
utility itself.
Installation
This project uses Poetry for dependency management and package handling. Ensure you have Poetry installed on your system.
To set up validate-sops
for local development, follow these steps:
- Clone the repository:
git clone https://github.com/voldy/validate-sops.git
cd validate-sops
- Install dependencies using Poetry:
poetry install
- Set up the pre-commit hooks:
After configuring
.pre-commit-config.yaml
in your project, run the following command to set up the git hook scripts:
pre-commit install
- To manually execute all configured pre-commit hooks on all files, run:
poetry run pre-commit run --all-files
This step is useful for testing the hooks before committing.
Running Tests
To run the unit tests for validate-sops
, use the following command:
poetry run pytest
Testing Changes Locally in Another Project
If you're making changes to validate-sops
and want to test these changes within the context of another project that uses validate-sops
as a pre-commit hook, you can leverage the pre-commit try-repo
command. This allows you to run your locally modified version of validate-sops
directly in the consuming project without needing to commit or push your changes.
Here's how you can test your local changes to validate-sops
in another project:
- Navigate to the root directory of the project where
validate-sops
is integrated as a pre-commit hook. - Run the following command:
pre-commit try-repo /local/path/to/validate-sops validate-sops --verbose --all-files
Replace /local/path/to/validate-sops
with the actual path to your local clone of the validate-sops repository.
Note: The try-repo
command allows you to temporarily include your local version of validate-sops
in the pre-commit configuration of the consuming project. This enables you to test uncommitted changes in validate-sops
directly, making it easier to iterate on your development before finalizing your changes.
Contributing
Contributions to validate-sops
are welcome! Please feel free to submit pull requests or open issues to suggest improvements or report bugs.
Author
Vladimir Zhukov
License
validate-sops
is licensed under the MIT License. See the LICENSE
file in the project root for the full license text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file validate_sops-0.1.1.tar.gz
.
File metadata
- Download URL: validate_sops-0.1.1.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.5 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81446b8c4158cc5c1be72b67633173416e9020d8fa9db0b95a14e722c415c469 |
|
MD5 | 471a3fa8ef142e7be8bef0a61f7bc7fd |
|
BLAKE2b-256 | 626f7c03edfd30776d71aeacce66ed71dbaf9422369947efc7f401d1b244c2d1 |
File details
Details for the file validate_sops-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: validate_sops-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.5 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91f537b29403ded87eb5b682692335d71f3f218fd5109294536427858a8d5c88 |
|
MD5 | 80c96301754a54cdf90f07c88b498961 |
|
BLAKE2b-256 | 2704e6e17072632d3a9eeea96fc602dee7dd6e730cfdd8bac8edf01f1622ab48 |