summaryrefslogtreecommitdiff
path: root/lib/api/projects.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-07-10 14:03:00 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-07-10 14:03:00 +0300
commit6a9aed1e878bc8651243d645d0a9d2f7da33f248 (patch)
treeb70a5bb88b89676130271207029df4eaba0dc573 /lib/api/projects.rb
parent223d26405128a64f624b78e7d4b03565d1e85a69 (diff)
parent381638b77f68004dd9b5607eacceb3cee5b2bf3c (diff)
downloadgitlab-ce-6a9aed1e878bc8651243d645d0a9d2f7da33f248.tar.gz
Merge branch 'master' into 6-0-dev
Conflicts: CHANGELOG VERSION app/views/admin/teams/projects/new.html.haml app/views/projects/teams/available.html.haml doc/install/installation.md
Diffstat (limited to 'lib/api/projects.rb')
-rw-r--r--lib/api/projects.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 6dc051e4ba2..d5709f5cb59 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -121,6 +121,42 @@ module API
end
+ # Mark this project as forked from another
+ #
+ # Parameters:
+ # id: (required) - The ID of the project being marked as a fork
+ # forked_from_id: (required) - The ID of the project it was forked from
+ # Example Request:
+ # POST /projects/:id/fork/:forked_from_id
+ post ":id/fork/:forked_from_id" do
+ authenticated_as_admin!
+ forked_from_project = find_project(params[:forked_from_id])
+ unless forked_from_project.nil?
+ if user_project.forked_from_project.nil?
+ user_project.create_forked_project_link(forked_to_project_id: user_project.id, forked_from_project_id: forked_from_project.id)
+ else
+ render_api_error!("Project already forked", 409)
+ end
+ else
+ not_found!
+ end
+
+ end
+
+ # Remove a forked_from relationship
+ #
+ # Parameters:
+ # id: (required) - The ID of the project being marked as a fork
+ # Example Request:
+ # DELETE /projects/:id/fork
+ delete ":id/fork" do
+ authenticated_as_admin!
+ unless user_project.forked_project_link.nil?
+ user_project.forked_project_link.destroy
+ end
+ end
+
+
# Get a project team members
#
# Parameters: