community
community copied to clipboard
Create a Netlify form for joining the community
Netlify forms can be used to let people 'become a developer' from their web browser. It allows signing using GitHub, for authenticated collection of their username to be added to the org. We could also add a field for the issue they want to be assigned to.
It is then easy for maintainers to invite them to the org after some rudimentary checks, or add a http://webtask.io which automatically invites them if they pass some basic automated checks to prevent abuse.
Probably a good app name is '/join'
GitMate.io thinks possibly related issues are https://github.com/coala/community/issues/6 (Create a .coafile), https://github.com/coala/community/issues/10 (Create a README.md), and https://github.com/coala/community/issues/55 (Create project specific logo).
When testing, ensure the form name is a dummy name, so that the form name can be changed in order to reset the fields which are recognised as part of the form. This is a problem I've encountered with Netlify forms. The final form name should be amended into the app just before it is merged.
What kind of automated checks we can use to prevent abuse?
Some ideas..
We could automatically accept people who have extensive existing merged contributions to repositories with 'lots' of stars.
Abuse usually comes from accounts with empty profiles.
We could reject recently created github accounts , instead telling them to rectify the situation in a few ways:
- do one of the github training exercises which involve published commits on github, or
- push their own code into a github repo in their user space, or
- recommend they complete a task from http://www.firsttimersonly.com/ or similar, and later we can suggest they go to https://github.com/coala/git-task-list , or
- publish their email address on their GitHub profile so it can be checked.
We could also reject requests from accounts which have an unusual ratio of merge to unmerged PRs in the last few months, to avoid reputable accounts which have taken over by someone else.