This server supports the WHATWG Participant Agreement, including submitting the agreement, updating GitHub pull requests to Living Standards with status checks, and storing the agreement data in other data repositories.
Process for Editors
When someone submits a pull request for a contribution, you should get a GitHub status line letting you know whether they are authorized to participate. You can click through it for more details.
If their pull request is marked as pending because they or their associated entity needs to be verified, then you'll want to do that verification process. This means:
- Checking their entry in the participant-data repository, and for individuals the participant-data-private repository, for any obvious mistakes or omissions. We are not responsible for people who sign the contract in bad faith, but we can try to help spot mistakes such as:
- Contributors signing up as individuals, when their GitHub profile clearly indicates that they work in the field of web technologies as an employee, contractor, or agent of another person or legal entity.
- Entity agreements signed by someone who does not seem authorized to act on the entity's behalf.
- If it looks good, editing the appropriate entry in the participant-data repository to flip
- If you are unsure, ask the contributor for clarification, or ask the Steering Group for help if necessary.
If the pull request is marked as pending for reasons on their side, e.g. not having signed the agreement or not having signed up for the appropriate workstream, you may need to guide them through this process. Remember to be friendly; the human touch counts!
Once they've gotten this straightened out, you can use the status link in the pull request to re-synchronize the GitHub pull request with our database. That should turn the status check green, at which point you can merge their PR!
Developing this repository
To get set up:
- Install Node.js, version 8 or above.
npm installin this directory to install all dependencies.
private-config.jsonand fill in all the values appropriately.
Start the server with
npm run start. It will use the
PORT environment variable if set, or 3000 as the default port otherwise.
List of resources
GET /agreement: the agreement form
POST /submit-agreement: where the
/agreementform is submitted to
POST /push-status-check: an endpoint hit by the GitHub commit status webhook
GET /agreement-status?user=...&repo=...: the status page linked to from the GitHub status check
POST /update-pr: an endpoint hit by
/agreement-statusto sync pull requests
Setting up the GitHub webhook
Follow the "Creating Webhooks" guide from GitHub for Living Standard repositories. The settings are:
/push-status-checkon this server
- Content type:
- Secret: the value you've set in your
- Choose "Select individual events" and choose "Pull request" only
Also ensure that the username specified in
private-config.json is given write access to the repository, so it can push status updates.