mrkeyoor.com_
Fri 16 Oct 18:52 UTC
Automationevaluationupdated 07 Oct 2026

GitHub520 review

GitHub520 publishes a frequently updated hosts file that maps GitHub domains to selected IP addresses. Its documentation is written in Chinese, with no English README, and it is aimed mainly at people whose GitHub pages or images load slowly or fail to load.

+3stars / 7d
Verdict

Our GitHub520 run installed 61 packages in 30 seconds and pip-audit found 12 known vulnerabilities, even though ordinary users do not need the Python updater. Use the published hosts feed as a reversible personal workaround when GitHub access is unreliable and you can inspect each update. Do not standardize commit 03874f6 across a company fleet while certificate validation remains an open pull request.

We ran it

Lab card: what happened when we ran GitHub520Screenshot of GitHub520 (github.com/521xueweihan/GitHub520)
Install✓ · 30s61 packages · 57 MB
Build✓ · 3s
Testsn/ano test script
Known vulns12(pip-audit)
Repo17 files~332 lines of source · 1.5 MB · 1 CI workflows

Answers from our run

Does GitHub520 build from source?

Dependencies installed in 30 seconds (61 packages), and the build succeeded in 3 seconds. We cloned commit 03874f6 into a clean Debian container with 3 CPUs and no project-specific setup.

Does GitHub520 have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does GitHub520 have known vulnerabilities in its dependencies?

pip-audit flagged 12 known advisories in the dependency tree at the time of our run.

Who should not use GitHub520?

English-only teams that need official operating instructions: the README is in Chinese and provides no English version.

What are the alternatives to GitHub520?

SwitchHosts, AdGuard Home, ineo6 hosts. Our GitHub520 run installed 61 packages in 30 seconds and pip-audit found 12 known vulnerabilities, even though ordinary users do not need the Python updater.

Setup4/5Five-minute user path, but hosts edits need elevated access
Docs3/5Detailed Chinese steps, with no English README
Community4/529,955 stars and issue activity in October 2026
Maturity2/5No test target or releases, with TLS validation still open

Who it’s for

Developers who can safely edit and restore their own hosts file.
Chinese-speaking users dealing with slow GitHub pages or missing repository images.
SwitchHosts users who want a remote list refreshed on a schedule.
Network tinkerers who will verify the generated addresses before wider deployment.

Who it’s NOT for

English-only teams that need official operating instructions: the README is in Chinese and provides no English version.
Managed devices where users cannot edit system networking: the README says iPhones and iPads need jailbreaking, while Android devices need root access.
Security-sensitive fleets that require hostname certificate checks before an IP is published: commit 03874f6 ranks candidates by TCP latency on port 443, and open PR 319 proposes adding TLS and SNI validation.
Commercial redistributors or maintainers of modified copies: the README applies CC BY-NC-ND 4.0, which bars commercial use and derivatives.
Teams that require an upstream test suite and tagged releases: our run found no test target, and GitHub returned no latest release.

Setup reality

Our sandbox installed commit 03874f6 in 30 seconds, pulling 61 Python packages and using 57 MB. The build passed in 3 seconds. There was no test script or target, so tests were skipped, and pip-audit reported 12 known vulnerabilities.

Ordinary users do not install the Python project. They copy the published hosts block or subscribe to its raw URL through SwitchHosts. No credential or service account is required, but editing the system hosts file needs administrator or root access.

The README recommends a 1-hour refresh in SwitchHosts and documents separate DNS-flush steps for Windows, Linux, and macOS. Its mobile route requires jailbreak or root. Open issue 324 reports that importing the list into AdGuard Home as a DNS blocklist caused timeouts in the reporter's IPv4-only setup.

A 2-hour job replaces normal DNS answers with chosen IPs

GitHub520 takes a direct approach to unreliable GitHub access. Its workflow runs every 2 hours, retrieves a generated address list, and republishes a hosts file covering GitHub pages, raw files, release assets, avatars, Copilot, and related domains. A user then makes the operating system prefer those addresses over ordinary DNS. That can repair a broken route quickly, but it also makes the feed's address choices part of every GitHub connection on that machine.

The user path is short. The Chinese README says it takes 5 minutes and offers manual copying, one-line commands, SwitchHosts, and an AdGuard route. Windows, Linux, and macOS each get a DNS-cache command. SwitchHosts is the saner desktop option because the change has a visible profile and a recommended 1-hour refresh interval. On iOS the README requires jailbreaking, and on Android it requires root, which rules out most managed phones.

A 30-second source install is separate from the user setup

Our clone of commit 03874f6 had 17 files, about 332 lines of source, and a 1.5 MB checkout. Installing its Python environment took 30 seconds, added 61 packages, and consumed 57 MB. The build succeeded in 3 seconds. Those figures describe development of the address generator. Someone subscribing to the generated hosts file does not install those packages or run the Python scripts.

The distinction matters because the README's no-install claim is fair for its normal audience. A user needs the raw hosts URL and permission to change system networking. A contributor inherits a Python resolver that queries several DNS-over-HTTPS and DNS servers, tests candidate addresses over TCP port 443 three times, chooses the lowest median latency, and writes both text and JSON output. No API credential appears in that path.

What happened when we ran it

Our sandbox installed GitHub520 in 30 seconds and built it in 3 seconds on 3 CPUs with 8 GB of RAM. The unprivileged Debian container used Python 3.12 and had no secrets. Installation and build both completed. Pip-audit found 12 known vulnerabilities in the resulting 61-package environment, so contributors should inspect and update the dependency set before trusting the generator in a sensitive workflow.

There was no test script or target at commit 03874f6, so our harness skipped tests. The repository had 1 CI workflow and no tests directory or Dockerfile. A green scheduled workflow therefore shows that the update script ran. It does not give us unit coverage for DNS failures, certificate mismatches, malformed payloads, or hosts-file replacement. We did not measure browsing speed, route quality, or uptime, and the 3-second build cannot answer those questions.

The checkout itself was only 1.5 MB, but its output changes a privileged system file. That is the practical risk boundary. Keep a clean copy of the previous hosts block, inspect the new mapping, and know how to flush the local DNS cache. The project's GNU command truncates the managed tail and appends the remote response, so an interrupted or bad fetch deserves more care than a normal application update.

commit 03874f6 chooses latency before certificate identity

The updater connects to every candidate on port 443 three times and chooses the IP with the lowest median TCP latency. It does not validate that the server presents a certificate for the requested GitHub hostname. Open PR 319 was created to add TLS and SNI validation after issue 310 documented a certificate mismatch. Until that check lands, a fast TCP handshake is too weak a standard for unattended fleet-wide publication.

Issue 324 adds a different warning for AdGuard Home users. The reporter imported the hosts feed as a DNS blocklist and then saw ERR_CONNECTION_TIMED_OUT on a phone and Windows 11 PC. Their investigation found an IPv4 answer plus an all-zero IPv6 response. That report covers one setup, so it does not prove a general AdGuard defect. It does show that the README's blocklist method needs a small-device trial before network-wide use.

The October push includes automation, while 17 issues remain open

GitHub recorded a push on October 7, 2026, and the latest open issue was created on October 4. The open queue contained 17 issues and 7 pull requests. That is current activity, but the repository's scheduled 2-hour publishing job can also move the default branch without a maintainer changing the selection logic. Issue and pull-request dates are more useful health signals than the push date by itself.

GitHub returned no latest release, and the project has no test target in our measured commit. The README labels the project as being in a test stage and says it has only been tested on the author's machine. Its license notice is CC BY-NC-ND 4.0, while GitHub's repository metadata identifies no standard software license. Personal use is easy to understand. Modification and commercial redistribution need a much more careful license reading.

Use the 5-minute fix only where rollback is easy

GitHub520 can be useful when one developer cannot load GitHub and can restore a hosts file without help. I would keep it on an individual workstation, refresh it through a visible profile, and remove it as soon as normal routing works. A company-wide DNS layer deserves certificate-aware address checks, automated validation, a tested failure path, and licensing that clearly covers modified operational use. commit 03874f6 does not meet that bar.

Alternatives

ProjectWhat it isPick it when
SwitchHosts gh↗A desktop app for switching and refreshing local hosts profiles.pick this instead when you need a GUI for several hosts sources rather than one GitHub-specific feed.
AdGuard Home gh↗A network-wide DNS server with filtering and per-client controls.pick this instead when policy should live on the network and you are prepared to configure DNS rules directly.
ineo6 hostsAnother maintained GitHub hosts feed with manual and automatic update instructions.pick this instead when you want to compare independently generated GitHub address lists before changing local DNS behavior.

Sources

  1. GitHub520 repository and Chinese setup guide
  2. GitHub520 scheduled workflow
  3. GitHub520 address selection source
  4. Pull request 319 for certificate validation
  5. Issue 324 on AdGuard Home timeouts
  6. CC BY-NC-ND 4.0 license terms

More automation reviews

supersidian · genspark-claw · orc-claude-plugin · tiktok-views-bot · Ydisks-Xianyu-Helper · jev-gui-delegate · the whole board →