Desktop app that stages, commits and pushes local project folders to GitHub — without you touching the command line.
Project Pusher2 v1.1.0 adds automated GitHub Release generation for supported Electron projects using electron-builder.
- Detects whether a project has a safe, supported release profile
- Generates
.github/workflows/release.ymlautomatically - Builds Windows x64, Linux x64 and macOS Universal releases
- Verifies that the Git tag matches
package.json - Fails safely when expected build artifacts are missing
- Generates
SHA256SUMS.txt - Publishes the GitHub Release only after all platform builds succeed
- Never overwrites an existing release workflow
- Refuses ambiguous or unsupported build configurations instead of guessing
The complete v1.1.0 release pipeline was verified end-to-end on GitHub Actions. See CHANGELOG.md for release history.
Project Pusher is an Electron desktop app for developers who move between machines and side projects. Pick a folder, pick a repository, write a commit message, hit Push.
- 📁 Folder → repo mapping — remember which local folder belongs to which remote
- 🌿 Branch & remote selection — push to
main,develop, or any branch - ✍️ Commit composer — stage all or selected changes and write a conventional commit message
- 🔐 Token vault — the token stays in
.env/ OS keychain, never in the repository - 🧾 Push history — see what was pushed, when, and to which branch
- 🖥️ Cross-platform — Windows, macOS and Linux builds
Download the latest installer from the Releases page and verify the SHA-256 checksum listed in the release notes.
git clone https://github.com/Janus5G/project-pusher2.git
cd project-pusher2
npm install
cp .env.example .env # then add your GitHub token
npm startRequirements: Node.js 22, npm 10+, Git 2.30+.
-
Add a token. Create a fine-grained GitHub PAT with
Contents: Read and writeand put it in.env:GITHUB_TOKEN=ghp_your_token_here -
Add a project. Click Add project, choose a local folder and the target repository (
owner/name). -
Pick a branch. Default is
main; any branch on the remote works. -
Stage & commit. Review changed files, stage what you want, write a message.
-
Push. Project Pusher commits and pushes over HTTPS using your token.
Non-interactive example (CLI bridge):
npx project-pusher2 push --folder ./my-app --repo Janus5G/my-app --branch main -m "feat: initial push"Project Pusher handles a credential that can write to your repositories, so it is built defensively:
- Tokens are never written to logs, crash reports, or the repository.
.env,*.pem,*.key,.ssh/andid_rsa*are git-ignored by default.- Every push and PR is scanned by gitleaks;
npm auditruns in CI and weekly. - The app talks only to
api.github.comover HTTPS — no telemetry, no third-party analytics.
Found a vulnerability? Please report it privately — see SECURITY.md. Do not open a public issue.
npm install # install dependencies
npm start # run the Electron app in dev mode
npm run lint # eslint
npm test # unit + integration tests
npm run build # produce distributablesProject layout:
main/ Electron main process (git + GitHub logic)
renderer/ UI (HTML/CSS/JS)
scripts/ build & docs automation
.github/ CI, security scanning, issue templates
Code style is enforced by .editorconfig + ESLint: UTF-8, LF, 2-space indent. See CONTRIBUTING.md before opening a PR.
Project Pusher can generate an opt-in .github/workflows/release.yml when the local scanner can prove a supported packaging profile.
The first supported profile is Electron + electron-builder. For that profile Project Pusher generates a tag-driven workflow that:
- validates tests and the package/tag version,
- builds Windows x64
.exe, Linux x64.AppImage, and macOS Universal.dmg+.zip, - fails when expected artifacts are missing,
- creates
SHA256SUMS.txt, - publishes one GitHub Release only after all platform builds succeed.
Existing release workflows are never overwritten. If the scanner sees an ambiguous build script, an unsupported external electron-builder config, or another project type, the release option stays disabled instead of guessing.
- Confirm the scanner marks Automated GitHub Release as supported and generate the workflow once.
- Bump
versioninpackage.json(npm version patch|minor|major). - Update
CHANGELOG.md. - Push the matching tag, for example
vX.Y.Z. - GitHub Actions validates, builds all supported platforms, calculates SHA-256 checksums, and publishes the GitHub Release automatically.
MIT © Janus5G
- 🐛 Bug reports
- 💡 Feature requests
- 🔐 Security: My email
