The way I've historically dealt with this is by adding a user's Github profile name to their node and downloading their own hosted dotfiles if that attribute is set and a default (organization) set if not.
For instance:
git "/home/user/dotfiles" do
repository "git@github.com:git_user/dotfiles.git"
user "user"
group "user"
end
execute "cp -R /home/user/dotfiles /home/user"
You could also set the repository as a node attribute so that they aren't just limited to their own repo.
The files don't necessarily need to be copied either. Personally, I symlink them, but you need to know a bit of how they're set up ahead of time to make the script robust enough for that to work in a stable way.