We have some marketing people who want to make trivial updates to our site, but we don't want to give them write access to the entire repo.
We've given them read-only access so they can fork the repo, make edits and send us (engineering) pull requests. But the missing piece that keeps this from being useful is that they can't keep their fork up to date using github.com. The best they can do is delete the fork and fork again, which stinks.
Is the ability to pull new commits from the original repo into your fork actually missing from github.com, or are we missing it?
If you try to edit a file from a repo you can read, but not write-to, from the GitHub interface, it will fork the repo, make a branch for the edit, then send a PR from that branch. If you try this again in the future, you'll get a different branch.
It is possible to update a fork from the GitHub interface... you make a new pull request from the original tree to your fork, then accept that PR. If you just hit "Pull Request" when looking at your fork, you'll see a "reverse bases" link that will do this.
I'm surprised that GitHub hasn't made git remotes easier to manage. If you fork a repo, AFAIK you have to manually add remotes to keep up to date with the upstream repo. When you fork a repo, why don't they automatically add an "upstream" remote and support git pull/fetch from the web UI?
They should really make another branch before making any changes and then offer that branch up for the merge, once it gets merged they can delete the branch and fast-forward the master branch. The other options would simply be using a form of "git reset" or "git rebase" to clean up their branch.
They kinda do... make a new pull request on the GitHub website, pulling from upstream into your fork, then accept it. It works quite well, except for the extra merge commit.
I think there might be some confusion here. All I suggested was the git flow model[1] AKA forking, making your own branch, changing things, and making a pull request on that branch and if it gets merged, you delete the branch and fast-forward master.
I don't see why they can't pull in updates from the original repo. Are they not adding it as a remote?
"I don't see why they can't pull in updates from the original repo."
Because github doesn't provide a way to do that on the site. Git workflows that can be achieved entirely on github.com were that subject of the story, and my original comment.
Ah, I was a bit confused. GitHub's kind of in-between being a web-UI for git and simply a storage bin for git repos. If they wanted to add the functionality to pull (fetch and merge) they'd have to implement a lot more functionality to handle conflicts. Have you tried looking at the native GitHub clients? They might provide the functionality you're looking for.
We've given them read-only access so they can fork the repo, make edits and send us (engineering) pull requests. But the missing piece that keeps this from being useful is that they can't keep their fork up to date using github.com. The best they can do is delete the fork and fork again, which stinks.
Is the ability to pull new commits from the original repo into your fork actually missing from github.com, or are we missing it?