René's URL Explorer Experiment


Title: Modernize import hook by BadSingleton · Pull Request #1369 · pythonnet/pythonnet · GitHub

Open Graph Title: Modernize import hook by BadSingleton · Pull Request #1369 · pythonnet/pythonnet

X Title: Modernize import hook by BadSingleton · Pull Request #1369 · pythonnet/pythonnet

Description: What does this implement/fix? Explain your changes. This replaces the current import hook replacement with a MetaPathFinder, letting python handle non-CLR module import. Does this close any currently open issues? #727 #1245 #547 #111 and probably others. Any other comments? This fix also helps working around a mono runtime behaviour where a mono owns all threads that execute .NET code. Checklist Check all those that are applicable and complete. Make sure to include one or more tests for your change If an enhancement PR, please create docs and at best an example Add yourself to AUTHORS Updated the CHANGELOG

Open Graph Description: What does this implement/fix? Explain your changes. This replaces the current import hook replacement with a MetaPathFinder, letting python handle non-CLR module import. Does this close any current...

X Description: What does this implement/fix? Explain your changes. This replaces the current import hook replacement with a MetaPathFinder, letting python handle non-CLR module import. Does this close any current...

Opengraph URL: https://github.com/pythonnet/pythonnet/pull/1369

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:80a6d6e5-ada0-3bf7-f17f-482a18db5ba7
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBDFC:67735:3CDE538:5258E5B:69708570
html-safe-nonce7e8947c4bc90dadcc38776a295b79d3cb37353022b6a9446fff9fb7bfe27883e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCREZDOjY3NzM1OjNDREU1Mzg6NTI1OEU1Qjo2OTcwODU3MCIsInZpc2l0b3JfaWQiOiI2OTY5NzM0MDAwNDEwNjU4MTYwIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmaca9a6f0258a9059d129cb0406bffb1f4cc12dab206e12d6e1035f75b66a484236
hovercard-subject-tagpull_request:561318661
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/pythonnet/pythonnet/pull/1369/files
twitter:imagehttps://avatars.githubusercontent.com/u/6788684?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/6788684?s=400&v=4
og:image:altWhat does this implement/fix? Explain your changes. This replaces the current import hook replacement with a MetaPathFinder, letting python handle non-CLR module import. Does this close any current...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None9920a62ba22d06470388e2904804fb7e5ec51c9e35f81784e9191394c74b2bd2
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git
octolytics-dimension-user_id6050430
octolytics-dimension-user_loginpythonnet
octolytics-dimension-repository_id14748123
octolytics-dimension-repository_nwopythonnet/pythonnet
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id14748123
octolytics-dimension-repository_network_root_nwopythonnet/pythonnet
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7d6181066430cc06553c8396ca201e194ae33cb9
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/pythonnet/pythonnet/pull/1369/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpythonnet%2Fpythonnet%2Fpull%2F1369%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpythonnet%2Fpythonnet%2Fpull%2F1369%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=pythonnet%2Fpythonnet
Reloadhttps://github.com/pythonnet/pythonnet/pull/1369/files
Reloadhttps://github.com/pythonnet/pythonnet/pull/1369/files
Reloadhttps://github.com/pythonnet/pythonnet/pull/1369/files
pythonnet https://github.com/pythonnet
pythonnethttps://github.com/pythonnet/pythonnet
Notifications https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Fork 770 https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Star 5.4k https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Code https://github.com/pythonnet/pythonnet
Issues 155 https://github.com/pythonnet/pythonnet/issues
Pull requests 18 https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects 0 https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/pythonnet/pythonnet/security
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1369/files
Insights https://github.com/pythonnet/pythonnet/pulse
Code https://github.com/pythonnet/pythonnet
Issues https://github.com/pythonnet/pythonnet/issues
Pull requests https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security https://github.com/pythonnet/pythonnet/security
Insights https://github.com/pythonnet/pythonnet/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpythonnet%2Fpythonnet%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpythonnet%2Fpythonnet%2Fissues%2Fnew%2Fchoose
filmorhttps://github.com/filmor
pythonnet:masterhttps://github.com/pythonnet/pythonnet/tree/master
Unity-Technologies:modernize-import-hookhttps://github.com/Unity-Technologies/pythonnet/tree/modernize-import-hook
Conversation 52 https://github.com/pythonnet/pythonnet/pull/1369
Commits 21 https://github.com/pythonnet/pythonnet/pull/1369/commits
Checks 0 https://github.com/pythonnet/pythonnet/pull/1369/checks
Files changed https://github.com/pythonnet/pythonnet/pull/1369/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1369/files
Modernize import hook https://github.com/pythonnet/pythonnet/pull/1369/files#top
Show all changes 21 commits https://github.com/pythonnet/pythonnet/pull/1369/files
a321daa (WIP) modernize the import hook BadSingleton Jan 15, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/a321daa0147a49984a1df027df9d3f6104e77950
279b535 Add the loaded namespaces tracking BadSingleton Jan 15, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/279b53546d358582ac9b22ef12b5ad74ba35b064
f92e95b cleanup and changelog entry BadSingleton Jan 15, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/f92e95b39dc67979dcc17497edfe99873a17bbce
afffc18 Fix a bug where clr wasn't in sys.modules after reload BadSingleton Jan 18, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/afffc187515fa7c8e725f2e0cc592cc04966ef7c
d821c0f Further refinements to setattr logic on ModuleObjects BadSingleton Jan 19, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/d821c0f7094f92508babc4dc7168f133f12894cd
e469a8a fixups, add docs BadSingleton Jan 20, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/e469a8a73cfc0870cb56ba0368cff44c3938dd24
685b972 merge fixup BadSingleton Mar 4, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/685b972001d2186e60d41f7a42959f74e6e8a5e0
be81364 (WIP) import hook in the pytohn module BadSingleton Mar 10, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/be8136448e1220f2a3ea93f7243c2f4a8eaa6237
73958ed Revert "(WIP) import hook in the pytohn module" BadSingleton Apr 12, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/73958ed239b21cc71c0206c3e5ffcc45ed7aa182
e71a0ef Import hook as a module, take 2 BadSingleton Apr 12, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/e71a0ef90414bd2cde21901ed3956251fccc4753
2af066d fixup! Merge remote-tracking branch 'origin/master' into modernize-im… BadSingleton Apr 12, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/2af066db6da89e3cad1119b9d4408c24f533e6ae
bb490bf fixup! fixup! Merge remote-tracking branch 'origin/master' into moder… BadSingleton Apr 12, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/bb490bf5f324f6f63f68bfb5cdb231f1d9934e63
31ea876 Create a clr.loader module BadSingleton Jun 1, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/31ea87698811ac382243f7328bc0885bfb4e5c75
c02d5c6 Test to test if the test passes BadSingleton Jun 2, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/c02d5c626a400d4d0f2847d24ba958b0fc7af97a
970a189 fix new exception usage BadSingleton Jun 2, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/970a18904675dbc6677b0d4262c72290c9ea9896
059605b kick the build because I can't repro BadSingleton Jun 2, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/059605bc249cbd7ca2e92e0aa642f8da6b3c3eaf
ff170e9 Add Namespaces to the import hook only through AddReference BadSingleton Jun 2, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/ff170e99b78ef411e54efd4d2d429799670d043f
63de923 Review changes, update API usage BadSingleton Jun 8, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/63de923a44259732525810bcbcca93bb963d0b9d
624f7e3 Merge remote-tracking branch 'upstream/master' into modernize-import-… BadSingleton Jun 14, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/624f7e337a1ca2593133b86d6707deeb102d98df
bd7e745 make PyModule_AddObject in line with CPython BadSingleton Jun 14, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/bd7e7450847dec33f9906d95270eae61fb8eead6
46a85fe take care of stragglers BadSingleton Jun 15, 2021 https://github.com/pythonnet/pythonnet/pull/1369/commits/46a85fedd1197a3ff3d4f2df337e5d900639b696
Clear filters https://github.com/pythonnet/pythonnet/pull/1369/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1369/files
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1369/files
CHANGELOG.md https://github.com/pythonnet/pythonnet/pull/1369/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed
TestPythonException.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-c9e555a1a6d8032db5fa7b9ea5c17cdd44d1563f68ea8f1b2a8d4ac6d0a92172
pyimport.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-54560ecd2f7920ff0812798703cf9b5138cc0fea38379ae21c4d54353ae5ac98
assemblymanager.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
converter.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-72dfd7f278c0d6de7e41256893ce639665e58b7d65a627b5d0c0dfa4173095e8
extensiontype.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-2a9d3fd3e4e705e1c1b1e857853601dcdf823ef2e658c772e5c5dd2712af2a9c
importhook.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-a3519b110d7c58f117c82c3d4d5c1b4de9d1217504801b64a0476ddc50270ea1
moduleobject.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-95baca92be51a7722a976817722cd8effdbd462db8f6e189928f162762d75611
TypeOffset.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-a72eafaf5fd99991613eafdf3b84604d14b3e88af4d8ab3b24b433677f8a8e8f
pylist.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-a38cb3fe456ae36a58ec9e6f4d5a2e66b66e9c5ac86c8cd67fefa13446387c53
runtime.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-f1749bdd9f64fdac5c64d5cb0982ce1dac5e2d9a2cdd55b93d3f83b5047a855d
TestRunner.cs https://github.com/pythonnet/pythonnet/pull/1369/files#diff-5066298aaeb48b813b73cbd804342b59a89595d124ada7e85893b277d0f7148e
test_domain_reload.py https://github.com/pythonnet/pythonnet/pull/1369/files#diff-44afee0743a90c2454d65f1fce72dac7324b28d1a89ad50e36e5d2510cb560ad
CHANGELOG.mdhttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/CHANGELOG.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed
src/embed_tests/TestPythonException.cshttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-c9e555a1a6d8032db5fa7b9ea5c17cdd44d1563f68ea8f1b2a8d4ac6d0a92172
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/src/embed_tests/TestPythonException.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-c9e555a1a6d8032db5fa7b9ea5c17cdd44d1563f68ea8f1b2a8d4ac6d0a92172
src/embed_tests/pyimport.cshttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-54560ecd2f7920ff0812798703cf9b5138cc0fea38379ae21c4d54353ae5ac98
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/src/embed_tests/pyimport.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-54560ecd2f7920ff0812798703cf9b5138cc0fea38379ae21c4d54353ae5ac98
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-54560ecd2f7920ff0812798703cf9b5138cc0fea38379ae21c4d54353ae5ac98
src/runtime/assemblymanager.cshttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/src/runtime/assemblymanager.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-ec817a3080cb54b7ab7107226a35fe72560bead6faec81dd9e6a5620311d2a7b
src/runtime/converter.cshttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-72dfd7f278c0d6de7e41256893ce639665e58b7d65a627b5d0c0dfa4173095e8
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/src/runtime/converter.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-72dfd7f278c0d6de7e41256893ce639665e58b7d65a627b5d0c0dfa4173095e8
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-72dfd7f278c0d6de7e41256893ce639665e58b7d65a627b5d0c0dfa4173095e8
src/runtime/extensiontype.cshttps://github.com/pythonnet/pythonnet/pull/1369/files#diff-2a9d3fd3e4e705e1c1b1e857853601dcdf823ef2e658c772e5c5dd2712af2a9c
View file https://github.com/Unity-Technologies/pythonnet/blob/46a85fedd1197a3ff3d4f2df337e5d900639b696/src/runtime/extensiontype.cs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/pythonnet/pythonnet/pull/1369/{{ revealButtonHref }}
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-2a9d3fd3e4e705e1c1b1e857853601dcdf823ef2e658c772e5c5dd2712af2a9c
https://github.com/pythonnet/pythonnet/pull/1369/files#diff-2a9d3fd3e4e705e1c1b1e857853601dcdf823ef2e658c772e5c5dd2712af2a9c
Please reload this pagehttps://github.com/pythonnet/pythonnet/pull/1369/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.