Is there any way to push successfully built feature branches to another branch?
I'd like to have something like that:
Git repository (Gitorious/GitHub whatever). Branches:
- master (current project's code)
 - quality-assurance (branche where code waits for QA)
 - feature-branches (many remote branches, where devs can develope their features)
 
Developer should have only read access to master and read/write to his feature branches QA read/write quality-assurance branch TeamCity - read/write master, quality-assurance, read only to feature-branches
And now I would like to have a workflow like this:
- Developer pulls code from master branch.
 - Developer creates feature-branch-A.
 - Developer pushes changes to remote feature-branchA
 - TeamCity monitors feature branches
 - TeamCity triggers build and tests on each commit.
 - TeamCity pushes changes to quality-assurance branch if build was successful
 - QA team checks the code (maybe runs some other tests, integrity tests)
 - If QA decides that everything is OK, they push changes to master branch.
 
i don't know if that step with QA is necessary and maybe each feature branch after successful build and tests should be merged with master.
Firstly I would like to know: does it makes sense? I'm just starting with CI and I don't know if it will works.
Secondly, if this workflow is correct, I would like to know how to configure TeamCity to do something like that and what if there would be some kind of conflict or where something could goes wrong.
Recently I watched presentation about Git+Jenkins+Gerrit where I saw something similar, but for .NET development, I personally prefer TeamCity, but if it's much easier to do that with Jenkins, I change my mind.