GitHub and coding projects
Repository scope, App credentials, local checkouts, and event-driven follow-up.
Connect the Jian GitHub App under Settings → Integrations and grant it the repositories you want agents to use. Jian attaches GitHub's official MCP server with the App's authorization and provides authenticated Git operations for working checkouts.
Repository scope
A conversation attached to a GitHub project is scoped to that repository. Outside a bound project, GitHub access covers the repositories granted on the connected account or accounts. With multiple accounts, the agent chooses the appropriate server for the repository owner.
Actions are performed as the App, not as your personal GitHub account. Person-specific capabilities such as your starred repositories or personal notifications are not available just because repository access was granted.
API operations versus a checkout
| Work | Mechanism |
|---|---|
| Issues, pull requests, reviews, Actions, releases | GitHub MCP tools |
| Clone, fetch, pull, push | github_git, using the App's authorization |
| Edit files, run tests, inspect a diff | File and shell tools in a checkout |
| Branch, commit, rebase, merge locally | Local Git in that checkout |
github_git acts where the conversation works: the gateway workspace or its selected remote machine. A plain shell git clone does not automatically inherit the GitHub App's credentials.
Pulls normally fast-forward; rebase is an explicit option. Push requires a branch, and force behavior uses a lease. External writes, including push, still follow the conversation's protection settings.
A concrete coding workflow
- Connect GitHub and grant the target repository.
- Create or select its project conversation and execution machine.
- Ask the agent to inspect the issue and relevant source before editing.
- Have it make the change, run the appropriate checks, and present the diff.
- Approve the requested push or pull request when ready.
- Use Listening to continue when CI finishes or the pull request closes.
Example:
In Harbor Studio's dashboard repository, investigate the empty-state rendering bug. Add a focused regression check, show me the diff, and wait before pushing.
A worker result or a passing local test is not proof of successful CI. Ask for the exact pull request/check result when that is part of completion.
Credentials and remote machines
The gateway lends App authorization to the supported Git operation, rather than asking you to put a long-lived personal token into a repository URL. A remote worker must support the relevant command/secret-environment capability for those operations.
Keep ordinary project files and Git credentials separate. Never ask an agent to print a token to “check” that authentication is configured.
Troubleshooting
- 404 on a private repository: check the spelling and whether the App installation was granted that repository.
- 403 / Resource not accessible by integration: check repository access and App permissions; personal-account-only APIs may not support App credentials.
- Non-fast-forward push: reconcile branches and inspect the result; do not solve it with an unrequested force push.
- Remote clone fails but GitHub API works: inspect the target machine's status and Git execution result separately.
- CI still pending: let a listener wait for a state change rather than repeatedly starting model turns.