-[[!tag wishlist]]
+[[!tag wishlist done]]
[[!toc ]]
> and use `parse_diff_tree` to get a list of the files changed. Then it
> could determine if the changes were allowed.
>
-> To do that, it should perhaps first look at what unix user received the
+> To do that, it should first look at what unix user received the
> commit. That could be mapped directly to an ikiwiki user. This would
-> typically be an unprivelidged user, but you might also want to set up
-> separate users who have fewer limits on what they can push. OTOH, I'm not
-> sure how to get this info in an ikiwiki wrapper.. the real and effective
-> gid are already trampled. So maybe leave this out and always treat it as
-> an anonymous edit from a non-logged in user?
+> typically be an unprivelidged user (that was set up just to allow
+> anonymous pushes), but you might also want to set up
+> separate users who have fewer limits on what they can push. And, of
+> course, pushes from the main user, who owns the wiki, would not be
+> checked at all. So, let's say `$config{usermap}` is a hash, something
+> like `{usera => "wikiusera", userb => "wikiuserb"}`, and pushes from
+> users not in the hash are not checked.
>
> Then it seems like it would want to call `check_canedit` to test if an
> edit to each changed page is allowed. Might also want to call
> Also, I've not verified that the objects have been recieved already when
> whe pre-receive hook is called. Although the docs seem to say that is the
> case. --[[Joey]]
+
+>> Update: The git pre-receive hook stuff is written, and seems to work.
+>> I think it makes more sense than using diffs, and so think this todo
+>> could probably be closed.
+>> --[[Joey]]
+
+>>> I agree, closing this. I really prefer this solution to the one I was
+>>> initially proposing.
+>>> Is this pre-receive hook already enabled on ikiwiki.info?
+>>> If not, do you plan to enable it at some point?
+>>> --[[intrigeri]]
+
+>>>> [[news/git_push_to_this_wiki]] gave me the answer. Well done! --[[intrigeri]]