Can I use Drone inside my network with public GitHub?

I have some repos on GitHub that I would like to build with Drone. However, I want to self-host Drone in my home network (without opening any ports to the internet). Obviously my Drone instance can communicate out to the internet to see the commits to the GitHub repo.

                 |     |
  My LAN         |  F  |        Internet
                 |  i  |
                 |  r  |
-----------      |  e  |      -----------
|         |      |  w  |     |          |
|         |      |  a  |     |          |
|  Drone  |      |  l  |     |  GitHub  |
|         |      |  l  |     |          |
|         |      |     |     |          |
-----------      |     |      -----------
                 |     |

Am I able to use Drone (inside my network) with public GitHub? This article seems to suggest Drone needs to be made public.

In order for Github to properly notify Drone, the server must be accessible to the world.

Builds / Pipelines are triggered by Github webhooks (when you push code, open pull requests, etc). Github cannot deliver webhooks to a private address. The ability to receive webhooks from Github is a pre-requisite for using Drone.

Thanks! You can mark this as solved!

It would be very nice to not expose any ports to the internet.
Drone has access to all repositories and can compromise someday.
GItlab CI Runner does not require opening ports.

Maybe we could periodically call this API to get events and updates:

GitHub Events API

Events are optimized for polling with the “ETag” header. If no new events have been triggered, you will see a “304 Not Modified” response, and your current rate limit will be untouched. There is also an “X-Poll-Interval” header that specifies how often (in seconds) you are allowed to poll.

@zartdinov that is a great idea. I would suggest someone from the community create a custom poller and publish to github to share with the community.

There is interesting service Smee provided by GitHub and Protobot team.