Hi Tao, we are actively working on updating the docs for MQ to include better instructions.
For the MQ, we perform merges with the "graphite-app" bot (the merged changes are still attributed to the author, the bot is just performing the action). So enforcing use of the MQ is done by restricting merge access to the trunk branch to only the "graphite-app" bot. More detailed instruction are below.
For enforcing merge via the MQ, there is one more "Branch protection rule" settings that you will want to enable. It is near the bottom of that setting page.
You will want to enable "Restrict who can push to matching branches" then add the "Graphite App" (graphite-app) as who can push to the branches (see the attached image).
One additional note, github automatically includes admins and maintainers as users who can bypass these rules and there doesn't seem to be a setting to disable that. As a result, we haven't yet found a way to force those users merge via the merge queue. We will keep investigating, but it appears to be a limitation with github.