Pushing a module to GitHub
Pushing sends a shipped version of a module to a GitHub repository as a pull request, ready for review — OdoMate never commits straight to a branch you’re already using. This page covers opening the dialog, what the fields do, and what happens once you select push. A connected GitHub account is required first; see connecting your GitHub account if you haven’t done that yet.
Opening the dialog
Section titled “Opening the dialog”- Find a Push to GitHub button. It’s on the completion screen right after a generation finishes (see generating your first module), on a module’s card in the Modules Library, or on a specific entry in that module’s version history.
- The button only appears for a version whose ZIP archive is still available — the same condition that governs its Download button. See downloading a module if the archive has already expired.
- Select it to open the Push to GitHub dialog.
Choosing where it goes
Section titled “Choosing where it goes”- If your account has both a personal GitHub connection and access to a team’s, a Push via selector appears first — choose which installation to push through. It’s hidden when there’s nothing to choose between; see connecting your GitHub account for when that happens.
- Use the Repository field to search the repositories your chosen connection can reach. It’s a filterable list of repositories that already exist — there’s no option to create a new one from here. Private repositories show a lock icon. If the one you want is missing, the dialog reads “The app has no repository access yet. Grant access on GitHub, then reopen this dialog.” — follow its Manage repository access on GitHub link, grant access, and reopen the dialog.
- Optionally, fill in Target directory with a folder inside the
repository, such as
addons/. Leave it empty and the module lands at the repository root — either way it lands in its own folder named after the module. - Select Open pull request.
What the push does
Section titled “What the push does”OdoMate never commits to a branch you’re already working on, and it never touches the repository’s default branch directly. Each push:
- Creates a new branch named
odomate/<module-name>-v<version>off the repository’s default branch. If that name is already taken — for example because you pushed this version before — it tries-2,-3, and so on until it finds one that’s free. - Commits the module’s files to that branch with the message
feat: <module name> v<version> (generated by OdoMate). - Opens a pull request from that branch against the repository’s default
branch, titled
Add <module name> v<version> (OdoMate), with a body summarizing the module and linking back to its entry in the Modules Library.
When it finishes
Section titled “When it finishes”A toast confirms Pull request opened, with the branch name and a View pull request link straight to it on GitHub. The module’s card — and its row in version history — then also shows a GitHub PR button linking to the same pull request.
If something goes wrong
Section titled “If something goes wrong”The dialog reports a push failure in place of the success toast, without closing:
- “The GitHub App was uninstalled. Reconnect to continue.” — see reconnecting in connecting your GitHub account.
- “The app cannot access that repository. Grant it access on GitHub and try again.” — the installation lost access to that specific repository; use the dialog’s Manage repository access on GitHub link.
- “That repository has no commits yet. Push an initial commit (e.g. a README) first, then retry.” — OdoMate builds its commit on top of the default branch’s existing history, so the repository needs at least one commit already.
- “The stored archive for this version has expired. Re-run the generation to refresh it.” — see the retention window in downloading a module.
- “GitHub is having trouble right now. Please try again in a moment.” — GitHub’s own API was unreachable or rate-limited; retrying later usually clears it.
- “The push failed. Please try again.” — a catch-all for anything else, including the server’s GitHub integration being unconfigured. Retrying doesn’t need any different input from you, but if it keeps failing there’s nothing further to change from this dialog.
