René's URL Explorer Experiment


Title: Modernizing the project · Issue #264 · nodejs/github-bot · GitHub

Open Graph Title: Modernizing the project · Issue #264 · nodejs/github-bot

X Title: Modernizing the project · Issue #264 · nodejs/github-bot

Description: First of, I love our GitHub bot. It's an essential piece of our infrastructure, and it can fill the gaps where GitHub Actions don't work well (the whole read-only, no secrets situation with forked PRs). With that being said, I have been ...

Open Graph Description: First of, I love our GitHub bot. It's an essential piece of our infrastructure, and it can fill the gaps where GitHub Actions don't work well (the whole read-only, no secrets situation with forked ...

X Description: First of, I love our GitHub bot. It's an essential piece of our infrastructure, and it can fill the gaps where GitHub Actions don't work well (the whole read-only, no secrets situation with...

Opengraph URL: https://github.com/nodejs/github-bot/issues/264

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Modernizing the project","articleBody":"First of, I love our GitHub bot. It's an essential piece of our infrastructure, and it can fill the gaps where GitHub Actions don't work well (the whole read-only, no secrets situation with forked PRs). With that being said, I have been trying to contribute to the project and the entry barrier seems somewhat high:\r\n\r\n1) Getting the development environment working on my machine took between one and two hours\r\n2) There's no way (afaik) to properly test Jenkins hooks\r\n3) Some of the dependencies we use are deprecate (`github`, `request`, there might be others too)\r\n  1) `github` is not only deprecated, it lacks documentation. To find out which method to use, developers need to look into the TypeScript definition and then figure out which GitHub API is being called to read the documentation on https://developer.github.com/v3/\r\n4) Some parts of the code have hardcoded `nodejs` as org and `node` as repository, which makes it impossible for users to test without finding these conditionals and changing them/commenting those out\r\n\r\nThe project is also heavily callback-oriented, some parts would probably benefit from changing to an `async/await`-oriented implementation (I know this is more controversial, so I won't push too much on it).\r\n\r\nBased on the points above, I have some suggestions to modernize the project:\r\n\r\n1) To improve the development experience, we could set up our own relay, which would essentially be a multiplexer receiving webhook calls from `nodejs/node-auto-test`. Anyone who wants to collaborate would connect to that relay, and they would receive the appropriate tokens needed for testing. We could add checks so that only certain teams are allowed to request access. We can also have a separate user with permissions limited to `nodejs/node-auto-test`, to prevent folks from mistakenly affecting other repositories. The same relay could be used for Jenkins hooks.\r\n2) To avoid hardcoded repositories and orgs, we could move some of the logic to the repositories. For example, [labeling is only enabled on `nodejs/node`](https://github.com/nodejs/github-bot/blob/master/scripts/node-subsystem-label.js#L16-L17), if we moved the labels definition to `nodejs/node` (so that the bot loads the definition when needed), it would be easier for collaborators to include/remove definitions for new files, and it would also allow the bot to detect if that repository supports labeling or not.\r\n3) Replacing deprecated dependencies and potentially moving more towards `async/await` API might be harder. We could either start a new branch from scratch, or try to modernize different pieces individually. Either way it will need some coordination efforts as well as a lot of work to get it working properly.\r\n\r\nAs an alternative, we could turn the `github-bot` into an Actions relay: it would receive events from GitHub and Jenkins, and would forward those events to the [repository dispatch API](https://help.github.com/en/actions/reference/events-that-trigger-workflows#external-events-repository_dispatch). This way, we could define everything as Actions on the respective repositories, circumventing the gaps with Actions on forked PRs and being able to define Actions for Jenkins events.\r\n\r\nWhat do folks think? cc @nodejs/github-bot ","author":{"url":"https://github.com/mmarchini","@type":"Person","name":"mmarchini"},"datePublished":"2020-06-30T00:30:40.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":9},"url":"https://github.com/264/github-bot/issues/264"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:e5624a0c-e4f8-6c1c-8bbb-d161cfd46325
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id9F0A:50FD4:CE06FB:1210325:6A4E8B55
html-safe-nonceaff912fc45270b16d545a70e80ab007ba22aed0372a505ac423bf047b519729c
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RjBBOjUwRkQ0OkNFMDZGQjoxMjEwMzI1OjZBNEU4QjU1IiwidmlzaXRvcl9pZCI6IjcxMjM2NDc1MjA3MzE3Mjg3MjUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac7634e194eb7ac243481ccfc3aa6a81014ea128e62ed91f482efb118037cf2353
hovercard-subject-tagissue:647757430
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/github-bot/264/issue_layout
twitter:imagehttps://opengraph.githubassets.com/4bfa9db3fa2b148f9425f2c36a612acfb82b4e4ddd37d85cb1d599bb98a94a50/nodejs/github-bot/issues/264
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/4bfa9db3fa2b148f9425f2c36a612acfb82b4e4ddd37d85cb1d599bb98a94a50/nodejs/github-bot/issues/264
og:image:altFirst of, I love our GitHub bot. It's an essential piece of our infrastructure, and it can fill the gaps where GitHub Actions don't work well (the whole read-only, no secrets situation with forked ...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamemmarchini
hostnamegithub.com
expected-hostnamegithub.com
None41b6ab3ba6d20a71766ac245b5a4a94c6fc672a9cd4da7d44c1b33ab8bf6a21c
turbo-cache-controlno-preview
go-importgithub.com/nodejs/github-bot git https://github.com/nodejs/github-bot.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id55435270
octolytics-dimension-repository_nwonodejs/github-bot
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id55435270
octolytics-dimension-repository_network_root_nwonodejs/github-bot
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasee6a744804e8e70f97b4d5a18a94dcc63db22f97a
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/nodejs/github-bot/issues/264#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fgithub-bot%2Fissues%2F264
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
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
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
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/enterprise/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%2Fnodejs%2Fgithub-bot%2Fissues%2F264
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%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=nodejs%2Fgithub-bot
Reloadhttps://github.com/nodejs/github-bot/issues/264
Reloadhttps://github.com/nodejs/github-bot/issues/264
Reloadhttps://github.com/nodejs/github-bot/issues/264
Please reload this pagehttps://github.com/nodejs/github-bot/issues/264
nodejs https://github.com/nodejs
github-bothttps://github.com/nodejs/github-bot
Please reload this pagehttps://github.com/nodejs/github-bot/issues/264
Notifications https://github.com/login?return_to=%2Fnodejs%2Fgithub-bot
Fork 138 https://github.com/login?return_to=%2Fnodejs%2Fgithub-bot
Star 300 https://github.com/login?return_to=%2Fnodejs%2Fgithub-bot
Code https://github.com/nodejs/github-bot
Issues 18 https://github.com/nodejs/github-bot/issues
Pull requests 2 https://github.com/nodejs/github-bot/pulls
Actions https://github.com/nodejs/github-bot/actions
Projects https://github.com/nodejs/github-bot/projects
Security and quality 0 https://github.com/nodejs/github-bot/security
Insights https://github.com/nodejs/github-bot/pulse
Code https://github.com/nodejs/github-bot
Issues https://github.com/nodejs/github-bot/issues
Pull requests https://github.com/nodejs/github-bot/pulls
Actions https://github.com/nodejs/github-bot/actions
Projects https://github.com/nodejs/github-bot/projects
Security and quality https://github.com/nodejs/github-bot/security
Insights https://github.com/nodejs/github-bot/pulse
Modernizing the projecthttps://github.com/nodejs/github-bot/issues/264#top
https://github.com/mmarchini
mmarchinihttps://github.com/mmarchini
on Jun 30, 2020https://github.com/nodejs/github-bot/issues/264#issue-647757430
https://developer.github.com/v3/https://developer.github.com/v3/
labeling is only enabled on nodejs/nodehttps://github.com/nodejs/github-bot/blob/master/scripts/node-subsystem-label.js#L16-L17
repository dispatch APIhttps://help.github.com/en/actions/reference/events-that-trigger-workflows#external-events-repository_dispatch
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.