A project should be able to write contributor agreement text, and then whenever someone submits a merge request, that contributor needs to check that they agree. Also have an independent form for people to mark their agreement (e.g. if they contributed via a patch file on a ticket). Admins should be able to view the list of agreements (user & date). After they've agreed once, users don't need to see it on the merge request form again.
Not sure if this should be project-wide or for each scm repo. Project-wide seems more logical to me, but it would be nice to encapsulate this logic at a tool level.
This is not needed for Allura proper any more. Still might be nice to have.
The Apache License directly accounts for contributions, so a form isn't necessary. http://www.apache.org/licenses/LICENSE-2.0.html#contributions