-
Notifications
You must be signed in to change notification settings - Fork 0
troubleshooting
python --version # or python3, or py -3- Install Python 3.10+ from python.org or
winget install Python.Python.3.12. - Restart the terminal so
PATHupdates. - If only
python3is available (Linux/macOS), usepython3in every command.
git --versionInstall Git and restart the terminal. URGithub runs Git through the PATH.
gh --versionInstall GitHub CLI (winget install GitHub.cli, apt install gh, or brew install gh) and restart the terminal.
gh auth statusIf not logged in, authenticate:
gh auth loginThe setup wizard's authentication step must report that you are logged in successfully. Choose the login flow that matches your setup (device flow for SSH/remote sessions).
git config --global user.name "Your Name"
git config --global user.email "you@example.com"Git refuses to commit without an identity.
Do not bypass the safety mechanism immediately. First inspect report.html and check for:
- divergence
- detected secrets
- invalid repository state
- missing remote
- authorization failure
- repository access failure
- unsupported state
flowchart TD
A[Repo not pushed] --> B{Blocked?}
B -->|blocked: divergence| D[git pull manually and review]
B -->|blocked: secrets| E[Remove / gitignore the secret, or add to security.allow_files]
B -->|blocked: oversize files| F[Remove file / move to LFS / raise limits.max_file_mb]
B -->|blocked: no push permission| G[Check gh auth scopes, repo permissions]
B -->|blocked: no remote configured| H[Add origin remote]
B -->|skipped| I[Enable commit_policy.auto_commit or commit manually]
A blocked operation is often an intentional safety result. Resolve the cause — e.g. remove the secret file, fix the remote, or review a divergence manually — then rerun. For diverged repos, resolve the merge yourself; URGithub never does it for you.
python -c "import tkinter; print('tkinter OK')"If this fails on Linux, install the Tk package for your distribution (e.g. python3-tk). The wizard and Control Center require tkinter.
python urgithub.py --schedule statusReinstall the schedule and check the registered tasks:
python urgithub.py --schedule installThe shutdown quick-push task requires admin rights — run the install that triggers the UAC prompt. Confirm the tasks appear in Task Scheduler and that the Python path stored in the task is correct.
Cron and launchd jobs run with no terminal PATH. Use absolute paths:
0 */3 * * * cd /home/you/push-to-github && /usr/bin/python3 urgithub.py --run scheduledConfirm the real interpreter path with which python3.
Another run is active; the global lock serializes them and the second one exits. A stale lock expires after 15 seconds.
Impossible by design — the global lock serializes them; the second one exits.
Run python urgithub.py --schedule install first (requires registration).
Run --schedule install from an elevated prompt (the wizard retries with a UAC prompt automatically).
GitHub is the source of truth for names:
-
Renamed on GitHub only → URGithub detects it via
gh apiand renames the local folder + registry entry automatically. -
Renamed locally only → URGithub adopts it, reusing the registry entry. Then run
gh repo rename NewName --repo owner/OldNameon GitHub to match. - Leftover ghost entries (from manual moves) can be dropped with
--forget NAMEor bulk-cleaned with--prune.
- Run
python urgithub.py --scanthenpython urgithub.py --reposto see what is discovered. - Reconciles against
gh repo list— check thegithub_ownersetting andgh auth status. - Forked repos are skipped when
skip_forksis enabled. - New clones require
clone_missing_reposto be enabled (default).
Open report.html for the failed run and include:
- the trigger that started the run
- the repositories and operations involved
- the failure / blocked reason from the report
- relevant journal entries (
journal.jsonl) - your platform and Python/Git/gh versions
Back to Home.
Discover · Scan · Synchronize · Commit · Push · Verify · Report — with safety gates and an HTML activity report after every run.
| About | Quick links | Status |
|---|---|---|
| Home · Installation · Architecture | Repositories & Sync · Security · Report & Journal | Configuration · Automation · Operations & Updating |
| FAQ · Troubleshooting · Wiki home | Repository · Issues · Releases |
|
URGithub never runs git reset, --force, rebase, or clean — anything unsafe is blocked and reported, never silently destroyed.
MIT License · © 2026 Ganesh Bakkera · learnerforge/push-to-github
Getting started
- Home — overview, pipeline, quick start
- Installation — requirements, setup wizard, first run
Concepts
- Architecture — one engine, every trigger
- Repositories & Sync — discovery, rename, quarantine, block codes
- Security — safety model, secret detection, blocked operations
-
Report & Journal —
report.htmland the JSONL journal
Operation
-
Configuration — every config key,
--configCLI - Automation — triggers and scheduling per OS
- Operations & Updating — production setup, upgrades, maintenance
Help
- FAQ — common questions
- Troubleshooting — symptoms and fixes
Quick reference
-
--setup· one-time registration wizard -
--scan· discover repositories (never syncs) -
--sync· full safe synchronization -
--report· regeneratereport.html -
--schedule install· install Windows scheduling -
--run manual· run the manual trigger
Repository ↗ · Issues ↗ · Releases ↗
v0.1.0 · MIT License · © 2026 Ganesh Bakkera