How does the GitHub `@openhands` or the `openhands...
# proj-integrations
g
How does the GitHub
@openhands
or the
openhands
label work? I met with @hundreds-twilight-32833 and realized I didn't know where it was in our docs.
It's kinda buried
h
Oh neat! Thank you
g
I'll flag to see if there is a better way to surface this. The search struggled to find it too
🙌 1
Oh but i see it doesnt' say HOW it works Is it in the OH/OH repo how it works?
@nutritious-balloon-65098 how does the github integration where you can
@openhands
in a PR or label
openhands
and you are deployed? check the openhands/openhands repo
n
I'm on it! Jamie can track my progress here.
## Summary You asked how the GitHub integration works when you
@openhands
in a PR or add the
openhands
label. I explored the repo and found there are two separate mechanisms: --- ### OpenHands Cloud (the
@openhands
/
openhands
label you asked about) Powered by a GitHub App + webhook (
enterprise/
code): - GitHub sends webhook events →
POST /integration/github/events
- Label trigger:
openhands
label added to an issue or PR - Mention trigger:
@openhands
appears in a comment (exact word match, case-insensitive — so
@openhands-agent
does NOT trigger it) - Permission gate: sender must have write access to the repo (admin/write collaborator or org member) - Flow: looks up the sender's OpenHands Cloud account → adds 👀 reaction → starts a new conversation → optionally runs a solvability analysis → posts "I'm on it!" with a link to all-hands.dev → agent works on the issue The label/mention strings are defined in
enterprise/integrations/utils.py → get_oh_labels()
, which returns `'openhands'`/`'@openhands'` for production and `'openhands-exp'`/`'@openhands-exp'` for staging/local. --- ### Self-hosted GitHub Actions resolver (separate, open-source path) Uses
fix-me
label
and
@openhands-agent
mention (not
@openhands
). Lives in
.github/workflows/openhands-resolver.yml
. Runs the OpenHands agent via
python -m openhands.resolver.resolve_issue
and creates a draft PR or branch with the result. --- The key insight the docs were missing:
@openhands
and the
openhands
label are Cloud-only
(GitHub App webhook flow), while the self-hosted Actions resolver uses different trigger names (
fix-me
/
@openhands-agent
) by default.