From 9c38188bb4e55b1453cdc163f8e6800ac52430ee Mon Sep 17 00:00:00 2001 From: StyxX65 <150797939+StyxX65@users.noreply.github.com> Date: Sun, 12 Apr 2026 14:49:28 +0200 Subject: [PATCH] Update CONTRIBUTING.md --- CONTRIBUTING.md | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3ea6908..c0081a4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,16 @@ # Contributing to GDPR Scanner Thank you for considering a contribution. This project helps organisations find -and manage personal data in Microsoft 365 tenants. Contributions that improve -compliance coverage, reliability, and usability are very welcome. +and manage personal data across Microsoft 365 (Exchange, OneDrive, SharePoint, +Teams), Google Workspace (Gmail, Google Drive), and local/SMB file systems. +Contributions that improve compliance coverage, reliability, and usability are +very welcome. --- ## Before You Start -- Check the [open issues](../../issues) and [SUGGESTIONS.md](SUGGESTIONS.md) to - see if your idea is already tracked +- Check the [open issues](../../issues) to see if your idea is already tracked - For large features, open an issue first to discuss the approach — this avoids wasted effort if the direction doesn't fit - Security vulnerabilities: see [SECURITY.md](SECURITY.md) — do not file public issues @@ -31,16 +32,16 @@ pip install -r requirements.txt # Danish NER model (optional — needed for name/address detection) python -m spacy download da_core_news_lg -# Run the Document Scanner -python server.py - -# Run the GDPRScanner +# Start the scanner (serves on http://0.0.0.0:5100) python gdpr_scanner.py + +# Run the test suite +python -m pytest tests/ -q ``` -You will need a Microsoft Azure app registration with the permissions described -in the README to test GDPRScanner against a real tenant. A developer tenant -is available for free via the [Microsoft 365 Developer Program](https://developer.microsoft.com/microsoft-365/dev-program). +To test against a real M365 tenant you will need a Microsoft Azure app +registration with the permissions described in the README. A free developer +tenant is available via the [Microsoft 365 Developer Program](https://developer.microsoft.com/microsoft-365/dev-program). --- @@ -48,8 +49,7 @@ is available for free via the [Microsoft 365 Developer Program](https://develope - Bug fixes - Improved CPR false-positive reduction -- New language files (see `lang/en.lang` for the key list) -- Items from [SUGGESTIONS.md](SUGGESTIONS.md) — check the status column first +- New language files (see `lang/en.json` for the key list) - Performance improvements for large tenants - Docker / deployment improvements - Documentation fixes @@ -65,7 +65,7 @@ is available for free via the [Microsoft 365 Developer Program](https://develope - All personal data (CPR numbers) must be SHA-256 hashed before storage — never store or log raw CPR values - Wrap Graph API calls in try/except and handle `M365PermissionError` gracefully -**JavaScript (embedded in the Flask templates)** +**JavaScript (`static/js/*.js` — ES modules)** - `const` / `let` — no `var` - `async/await` over `.then()` chains - All user-visible strings must have a `data-i18n` key so translations work @@ -78,9 +78,9 @@ is available for free via the [Microsoft 365 Developer Program](https://develope ## Adding a Language -1. Copy `lang/en.lang` to `lang/xx.lang` (ISO 639-1 code) +1. Copy `lang/en.json` to `lang/xx.json` (ISO 639-1 code) 2. Translate all values — keys must stay identical -3. Test by setting `~/.m365_scanner_lang` to `xx` and restarting +3. Test by writing `xx` to `~/.gdprscanner/lang` and restarting --- @@ -88,10 +88,12 @@ is available for free via the [Microsoft 365 Developer Program](https://develope 1. Fork the repository and create a branch: `git checkout -b feature/my-feature` 2. Make your changes and test them -3. Run a syntax check: `python -m py_compile gdpr_scanner.py m365_connector.py gdpr_db.py` -4. Update `README.md` if your change adds or changes user-visible behaviour -5. Open a pull request with a clear description of what it does and why -6. Link to the relevant issue or SUGGESTIONS.md item if applicable +3. Run the test suite: `python -m pytest tests/ -q` +4. Run a syntax check on the modules you touched, e.g.: + `python -m py_compile gdpr_scanner.py scan_engine.py app_config.py gdpr_db.py` +5. Update `README.md` if your change adds or changes user-visible behaviour +6. Open a pull request with a clear description of what it does and why +7. Link to the relevant issue if applicable We aim to review pull requests within one week.