Add GitHub App connectivity.
Review Request #15227 — Created Aug. 13, 2026 and submitted
This change adds the connection flow and UI for using GitHub Apps. This
involves a new set of views that deal with the mechanics of triggering
the app creation, processing the result, and triggering an app install.This also includes a BaseHostingServiceConnectUI subclass for GitHub
that wires all of that into the connect wizard and provides some custom
UI for the GitHub entry in the connected services list.
- Connected a GitHub App and installed it into multiple organizations.
- Tested all aspects of the wizard flow, including creation of the app
and reassignment of any PAT-based repositories after app install. - Verified that API access works correctly when authenticating using the
app tokens. - Ran unit tests.
| Summary | ID |
|---|---|
| yuvyttvstzusktvqqtsquwwkvvzuwqmz |
| Description | From | Last Updated |
|---|---|---|
|
This is missing a "Version Added". |
|
|
|
This is missing the full module path. |
|
|
|
Can we sort this in alphabetical order? |
|
|
|
These are kind of jumbled. The github ones should go together. Probably easiest just to sort them. |
|
|
|
Can we sort these? |
|
|
|
I'm assuming one of the follow-up changes removes this (or it's meant to be removed in this change). But maybe … |
|
|
|
Can we assert the entirety of github_app so it's clear what tests are affected if need to add to the … |
|
|
|
Can we sort alphabetically? |
|
|
|
Can we pull accounts[0] out into a variable to avoid the repeated indexes? |
|
|
|
Can we pull installations[0] out into a variable to avoid the repeated indexes? |
|
|
|
For here and elsewhere (I forget where else I saw these), Django provides a utility. The class can mix in … |
|
- Commits:
-
Summary ID yuvyttvstzusktvqqtsquwwkvvzuwqmz yuvyttvstzusktvqqtsquwwkvvzuwqmz - Diff:
-
Revision 2 (+6252 -78)
Checks run (2 succeeded)
-
-
-
-
-
-
-
I'm assuming one of the follow-up changes removes this (or it's meant to be removed in this change). But maybe a good flag would be
not settings.PRODUCTION. -
Can we assert the entirety of
github_appso it's clear what tests are affected if need to add to the state? (An example might be a KID reference for any encryption in the future as we move away fromencrypt_password.) -
-
-
-
For here and elsewhere (I forget where else I saw these), Django provides a utility.
The class can mix in
django.contrib.messages.test.MessagesTestMixinand then you can do:self.assertMessages( response, '<message here>')
- Commits:
-
Summary ID yuvyttvstzusktvqqtsquwwkvvzuwqmz yuvyttvstzusktvqqtsquwwkvvzuwqmz - Diff:
-
Revision 3 (+6290 -78)