Private repositories
Publish a workflow from a private GitHub repository: connect the Qsolve GitHub app, choose repositories, and what other people can and cannot see.
Updated 12 November 2026 View as markdown
You can publish a workflow from a private GitHub repository. You install the Qsolve GitHub app on the repositories you choose, and Qsolve reads only those, read-only. Other people see the workflow's results and track record. They never see your code or the repository address.
Connect GitHub
- Open Publish a workflow and choose Private repository under Submit a repository.
- Select Connect GitHub. GitHub asks which account and which repositories to give the app. Choose only the repositories you want to publish from.
- GitHub sends you back to Qsolve, and your account now shows next to the repository list.
If the repositories belong to an organisation and you are not an owner, GitHub sends the request to an owner, and you connect again once they approve it.
Submit
Pick the repository from the list, add a branch, tag or commit if you do not want the default branch, and select Submit. Qsolve fetches that one commit, checks it and benchmarks it exactly as it does for a public repository; see Validation and publishing.
A new version of a private workflow is fetched the same way. Open the workflow in Your workflows and select Publish.
What other people can see
| Public repository | Private repository | |
|---|---|---|
| The workflow page and its track record | Yes | Yes |
| Running the workflow | Yes | Yes |
| The repository address | Shown as a link | Not shown |
| Your code | Readable on GitHub | Not shown anywhere |
The results are measured by Qsolve, not reported by your code, so a closed workflow has the same verifiable record as an open one. Qsolve keeps a copy of the code it ran, as it does for every workflow, so that every run uses exactly the checked version.
What the app can do
The app is granted read-only access to repository contents, for the repositories you chose and nothing else. It cannot write to your repositories or read the others. Qsolve fetches with a token that lasts about an hour and does not store it.
To stop Qsolve reading a repository, remove it from the app's access on GitHub. To disconnect an account in Qsolve, use the x next to it on that page; that forgets the connection but does not uninstall the app, so remove the app on GitHub too if you want access gone.
If it does not work
| You see | Cause | Fix |
|---|---|---|
| The repository is not in the list | The app was not given it | Choose Add an account or repositories and share it on GitHub |
| "The Qsolve GitHub App cannot read that repository" | Access was removed after you connected | Share the repository with the app again |
| "This connection attempt expired" | You took longer than 15 minutes on GitHub | Start again from Publish a workflow |
| "Could not resolve 'x' in this repository" | The branch or tag does not exist | Check the name |