diff --git a/lib/gitlab/backend/shell.rb b/lib/gitlab/backend/shell.rb
index 8bced609e086cf50faeb97b04ebbf44a4070f109..e6100b376e3374d9b3eca88cf08eb80115455c14 100644
--- a/lib/gitlab/backend/shell.rb
+++ b/lib/gitlab/backend/shell.rb
@@ -71,6 +71,31 @@ module Gitlab
       system "#{gitlab_shell_user_home}/gitlab-shell/bin/gitlab-projects", "rm-project", "#{name}.git"
     end
 
+    # Add repository branch from passed ref
+    #
+    # path - project path with namespace
+    # branch_name - new branch name
+    # ref - HEAD for new branch
+    #
+    # Ex.
+    #   add_branch("gitlab/gitlab-ci", "4-0-stable", "master")
+    #
+    def add_branch(path, branch_name, ref)
+      system "#{gitlab_shell_user_home}/gitlab-shell/bin/gitlab-projects", "create-branch", "#{path}.git", branch_name, ref
+    end
+
+    # Remove repository branch
+    #
+    # path - project path with namespace
+    # branch_name - branch name to remove
+    #
+    # Ex.
+    #   rm_branch("gitlab/gitlab-ci", "4-0-stable")
+    #
+    def rm_branch(path, branch_name)
+      system "#{gitlab_shell_user_home}/gitlab-shell/bin/gitlab-projects", "rm-branch", "#{path}.git", branch_name
+    end
+
     # Add new key to gitlab-shell
     #
     # Ex.