From 0f2694136753d7e7f68c3ecbf9790157039f50b8 Mon Sep 17 00:00:00 2001 From: Einswilli Date: Sat, 6 Sep 2025 15:02:56 +0000 Subject: [PATCH 01/17] Add Lint & format workflows. --- .github/workflows/lint-format.yml | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/lint-format.yml diff --git a/.github/workflows/lint-format.yml b/.github/workflows/lint-format.yml new file mode 100644 index 0000000..836c676 --- /dev/null +++ b/.github/workflows/lint-format.yml @@ -0,0 +1,35 @@ +name: Lint & Format + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + lint-format: + name: Lint, Format, and Type Check + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install black isort mypy + + - name: Run black + run: black . + + - name: Run isort + run: isort . + + # - name: Run mypy + # run: mypy . From b9913ca90305aac7eb59bd281f33b2c0610538f6 Mon Sep 17 00:00:00 2001 From: Einswilli Date: Sat, 6 Sep 2025 17:17:30 +0000 Subject: [PATCH 02/17] Add Code of Conduct. --- .gitignore | 9 ++++++++- .python-version | 1 + CODE_OF_CONDUCT.md | 43 +++++++++++++++++++++++++++++++++++++++++++ main.py | 6 ++++++ pyproject.toml | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 .python-version create mode 100644 CODE_OF_CONDUCT.md create mode 100644 main.py create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore index b7faf40..ae29df6 100644 --- a/.gitignore +++ b/.gitignore @@ -98,7 +98,7 @@ ipython_config.py # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. -#uv.lock +uv.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. @@ -205,3 +205,10 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + + +# CUSTOM +docs/* +rules/* +tests/* +valkyrie/* diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..ab6d481 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# 🕊 **Valkyrie Code of Conduct** + +## 🌟 Our Pledge +We pledge to foster an open, inclusive, and respectful environment for all contributors, regardless of: + +- Background or experience level +- Gender identity or expression +- Sexual orientation +- Disability +- Personal appearance +- Race, ethnicity, or religion +- Technology preferences + +## 🚫 Unacceptable Behavior +Examples include but are not limited to: + +- Harassment or derogatory comments +- Trolling or personal/political attacks +- Publishing others' private information without consent +- Other conduct that could reasonably be considered inappropriate + +## 🛠 Enforcement Responsibilities +Project maintainers will: + +- Remove/edit inappropriate content +- Warn or ban offenders temporarily/permanently +- Apply consequences fairly and consistently + +## ⚖️ Reporting Guidelines +Report violations to **[project email/contact]** with: + +1. **Where/when** the incident occurred +2. **Description** of the behavior +3. **Context** (if available) +4. Your **contact information** (optional) + +All reports will be reviewed and investigated promptly. + +## 🔄 Attribution +This Code of Conduct is adapted from: + +- [Contributor Covenant 2.1](https://www.contributor-covenant.org/) +- [Django Code of Conduct](https://www.djangoproject.com/conduct/) diff --git a/main.py b/main.py new file mode 100644 index 0000000..addd523 --- /dev/null +++ b/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from valkyrie!") + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..f0c833d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,37 @@ +[project] +name = "valkyrie" +version = "0.1.0" +description = "The guardian of your Pull Requests. She decides what gets to merge." +readme = "README.md" +license = {file = "LICENSE"} +authors = [{ name = "AllDotPy", email = "hello@alldotpy.com" }] +maintainers = [{ name = "#Einswilli", email = "einswilligoeh@email.com" }] +requires-python = ">=3.13" +dependencies = [] + +[project.optional-dependencies] +dev = [ + "black", + "mypy", + "twine", + "uv", + "build", + "pytest>=8.4.0", + "mkdocs>=1.6.1", + "setuptools>=80.8.0", + "mkdocs-material>=9.6.14", + "mkdocs-static-i18n>=1.3.0", +] + +[project.urls] +Homepage = "https://alldotpy.github.io/FletX" +Repository = "https://github.com/AllDotPy/FletX" +Documentation = "https://alldotpy.github.io/FletX" +Tracker = "https://github.com/AllDotPy/FletX/issues" + +[tool.setuptools] +packages = ["valkyrie"] + +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" \ No newline at end of file From b6bd2620f79a0631a979d9b7873d253dc0ef79f8 Mon Sep 17 00:00:00 2001 From: Einswilli Date: Sat, 6 Sep 2025 17:27:55 +0000 Subject: [PATCH 03/17] Add Contributions guide. --- CONTRIBUTING.md | 330 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bba36bf --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,330 @@ +# 🛡️ Valkyrie - Contribution Guide + +Thank you for your interest in contributing to Valkyrie! This guide will help you get started with the project. + +## 📋 Table of Contents +1. [Getting Started](#getting-started) +2. [Project Structure](#project-structure) +3. [Development Workflow](#development-workflow) +4. [Code Conventions](#code-conventions) +5. [Testing & Quality](#testing--quality) +6. [Documentation](#documentation) +7. [Reporting Bugs](#reporting-bugs) +8. [Feature Proposals](#feature-proposals) +9. [Code of Conduct](#code-of-conduct) + +--- + +## 1. Getting Started + +### Prerequisites +- Python 3.10+ +- Git +- Poetry (for dependency management) + +### Initial Setup +```bash +# Fork the repository +git clone https://github.com/AllDotPy/valkyrie.git +cd valkyrie + +# Install dependencies +poetry install + +# Install pre-commit hooks +poetry run pre-commit install + +# Verify installation +poetry run valkyrie --version +``` + +### Development Environment +We recommend using VS Code with the following extensions: +- Python +- Pylance +- Ruff +- Pre-commit + +--- + +## 2. Project Structure + +``` +valkyrie/ +├── valkyrie/ +│ ├── core/ +│ │ ├── scanner.py # Main Engine +│ │ ├── types.py # Common Types +│ │ └── exceptions.py # Custom Exceptions +│ ├── plugins/ +│ │ ├── __init__.py # Plugin manager +│ │ ├── secrets.py # Plugin secrets +│ │ ├── dependencies.py # Plugin deps +│ │ └── iam.py # Plugin IAM +│ ├── integrations/ +│ │ ├── github.py # GitHub Actions +│ │ ├── gitlab.py # GitLab CI +│ │ └── formatters.py # SARIF, HTML, etc. +│ └── cli.py # CLI Interface +├── rules/ # Local Rules +├── tests/ # Comprehensive test suite +├── docs/ # Documentation +├── .github/workflows/ # GitHub Actions +├── valkyrie.yaml # Configuration +├── pyproject.toml # Python packaging +└── README.md # Documentation utilisateur +``` + +--- + +## 3. Development Workflow + +### Branch Strategy +- `main` - Stable production branch +- `develop` - Integration branch for features +- `feature/*` - New features +- `fix/*` - Bug fixes +- `docs/*` - Documentation improvements + +### Contribution Process +1. **Find an Issue** - Look for `good first issue` or `help wanted` labels +2. **Discuss** - Comment on the issue to discuss approach +3. **Branch** - Create a feature branch from `develop` +4. **Code** - Implement your changes +5. **Test** - Add tests and ensure they pass +6. **Commit** - Use conventional commit messages +7. **PR** - Open a pull request against `develop` + +### Commit Message Convention +``` +(): + + + +