Update CONTRIBUTING.md

This commit is contained in:
StyxX65 2026-04-12 14:49:28 +02:00
parent 854f862bd1
commit 9c38188bb4

View File

@ -1,15 +1,16 @@
# Contributing to GDPR Scanner # Contributing to GDPR Scanner
Thank you for considering a contribution. This project helps organisations find Thank you for considering a contribution. This project helps organisations find
and manage personal data in Microsoft 365 tenants. Contributions that improve and manage personal data across Microsoft 365 (Exchange, OneDrive, SharePoint,
compliance coverage, reliability, and usability are very welcome. 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 ## Before You Start
- Check the [open issues](../../issues) and [SUGGESTIONS.md](SUGGESTIONS.md) to - Check the [open issues](../../issues) to see if your idea is already tracked
see if your idea is already tracked
- For large features, open an issue first to discuss the approach — this avoids - For large features, open an issue first to discuss the approach — this avoids
wasted effort if the direction doesn't fit wasted effort if the direction doesn't fit
- Security vulnerabilities: see [SECURITY.md](SECURITY.md) — do not file public issues - 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) # Danish NER model (optional — needed for name/address detection)
python -m spacy download da_core_news_lg python -m spacy download da_core_news_lg
# Run the Document Scanner # Start the scanner (serves on http://0.0.0.0:5100)
python server.py
# Run the GDPRScanner
python gdpr_scanner.py 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 To test against a real M365 tenant you will need a Microsoft Azure app
in the README to test GDPRScanner against a real tenant. A developer tenant registration with the permissions described in the README. A free developer
is available for free via the [Microsoft 365 Developer Program](https://developer.microsoft.com/microsoft-365/dev-program). 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 - Bug fixes
- Improved CPR false-positive reduction - Improved CPR false-positive reduction
- New language files (see `lang/en.lang` for the key list) - New language files (see `lang/en.json` for the key list)
- Items from [SUGGESTIONS.md](SUGGESTIONS.md) — check the status column first
- Performance improvements for large tenants - Performance improvements for large tenants
- Docker / deployment improvements - Docker / deployment improvements
- Documentation fixes - 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 - 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 - 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` - `const` / `let` — no `var`
- `async/await` over `.then()` chains - `async/await` over `.then()` chains
- All user-visible strings must have a `data-i18n` key so translations work - 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 ## 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 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` 1. Fork the repository and create a branch: `git checkout -b feature/my-feature`
2. Make your changes and test them 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` 3. Run the test suite: `python -m pytest tests/ -q`
4. Update `README.md` if your change adds or changes user-visible behaviour 4. Run a syntax check on the modules you touched, e.g.:
5. Open a pull request with a clear description of what it does and why `python -m py_compile gdpr_scanner.py scan_engine.py app_config.py gdpr_db.py`
6. Link to the relevant issue or SUGGESTIONS.md item if applicable 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. We aim to review pull requests within one week.