Sync Microsoft Intune managed devices into Snipe-IT with optional filters by platform and Azure AD group. Ships as a Python CLI, Docker image on GHCR, and Kubernetes CronJob (plain YAML or Helm).
Full, navigable docs: docs/README.md — table of contents for all user guides.
| Topic | Link |
|---|---|
| First-time setup & dry run | Getting started |
| Run as a local Python script (venv, cron) | Run locally with Python |
| Environment variables & Azure / Snipe setup | Configuration |
| CLI flags, examples, group IDs | Usage & CLI |
| Docker pull, run, tags | Deployment — Docker |
| Helm & Kubernetes manifest | Deployment — Kubernetes |
helm repo add (index on GitHub Pages) |
GitHub Pages for Helm |
| Sync behavior & field mapping | How it works |
| Common errors | Troubleshooting |
| Version pins & GHCR | Releases & images |
- Fetch Intune devices via Microsoft Graph; filter by OS (
windows,android,ios,macos,all) - Optional filter by Azure AD group membership
- Normalize Android Enterprise UPN prefixes; auto-create Snipe categories / manufacturers / models
- Create or update assets; check out to Snipe users matched by email / username
--dry-run; Docker on GHCR; Helm chart + plaink8s/manifest
- Complete prerequisites and credentials: Configuration
- Run a safe preview:
python3 app.py --dry-run --platform windows(see Getting started) - Schedule in-cluster if needed: Deployment — Kubernetes
| Path | Purpose |
|---|---|
docs/ |
User documentation (navigable hub) |
app.py |
Application entrypoint |
charts/intune2snipe/ |
Helm chart |
k8s/cronjob.yaml |
Sample CronJob + Secret |
RELEASING.md |
Maintainer release process |
AGENTS.md |
Context for AI / automation tools |
Issues: templates — create labels once per .github/LABELS.md.
Before a PR: pip install -r requirements.txt -r requirements-dev.txt and pytest tests/ -v; test with --dry-run where relevant.