# FAQ ## Does it ever push something I didn't want pushed? No. Secrets, oversized files, divergence, unreachable remotes, missing permissions and missing remotes all **block** that repo. It never force-pushes and never does destructive `reset`/`rebase`/`clean`. ## Does it commit my changes automatically? Only if `commit_policy.auto_commit` is `true`. Otherwise a dirty repo is `skipped` (and shown in the report). It never silently commits. ## What if my repo gets renamed on GitHub? URGithub detects it and renames the local folder + registry entry automatically. GitHub is the source of truth for names. See [Repositories & Sync](repositories.md). ## Where does my data live? In your **base location** (e.g. `D:\Data\urgithub\`) — not in this project folder. The project is just the engine. The only thing written outside the base location is `~\.urgithub\base.txt`. ## Does it work on Linux/macOS? The engine and GUI work anywhere Python 3.10+ runs; the Windows Task Scheduler integration and shutdown quick-push are Windows-only. On Linux/macOS, schedule runs with your own `cron` / `systemd` / `launchd` calling `python3 urgithub.py --run scheduled`. ## Do I need a cloud service or a daemon? No. URGithub does not require a cloud service or a permanently running server. Its core engine uses Python and the tools installed on your own machine, with no third-party Python packages. ## What if two runs fire at once? Impossible by design — a global lock serializes them; the second one exits with `skipped — lock held`. A stale lock expires after 15 seconds. ## What happens if I'm not registered? Rule 0: no registration → no operations. Only `--setup` runs first. Any other command reports `not registered. Run: python urgithub.py --setup`. ## Does URGithub clone all my repos on first run? Yes — the first run clones your entire GitHub account (private repos and forks included unless `skip_forks`). Later, `clone_missing_repos` handles new repositories. ## Will a big file be pushed? No. Files over `limits.max_file_mb` (default 100 MB) block the repo (`blocked: oversize files`); files over `limits.warn_file_mb` (default 50 MB) are flagged as large in the report. GitHub rejects files over 100 MB anyway. ## What stops a run from pushing secrets? `security.block_on_secrets` (on by default) scans file names **and** contents. Anything flagged is reported and **never pushed**. A single bad repo never blocks the others.