diff --git a/Gemfile b/Gemfile
index 7539132d..a167be0b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -118,6 +118,9 @@ group :development do
# Better errors handler
gem 'better_errors'
gem 'binding_of_caller'
+
+ # Docs generator
+ gem "sdoc"
end
group :development, :test do
diff --git a/Gemfile.lock b/Gemfile.lock
index fd543191..3bef4bdb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -393,6 +393,9 @@ GEM
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
+ sdoc (0.3.20)
+ json (>= 1.1.3)
+ rdoc (~> 3.10)
seed-fu (2.2.0)
activerecord (~> 3.1)
activesupport (~> 3.1)
@@ -529,6 +532,7 @@ DEPENDENCIES
resque_spec
rspec-rails
sass-rails (~> 3.2.5)
+ sdoc
seed-fu
settingslogic
shoulda-matchers (= 1.3.0)
diff --git a/doc/app/Ability.html b/doc/app/Ability.html
deleted file mode 100644
index f780d067..00000000
--- a/doc/app/Ability.html
+++ /dev/null
@@ -1,570 +0,0 @@
-
-
-
-
-
-
-class Ability - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Ability
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- allowed (object, subject)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def allowed (object , subject )
- case subject .class .name
- when "Project" then project_abilities (object , subject )
- when "Issue" then issue_abilities (object , subject )
- when "Note" then note_abilities (object , subject )
- when "Snippet" then snippet_abilities (object , subject )
- when "MergeRequest" then merge_request_abilities (object , subject )
- else []
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_abilities (user, project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_abilities (user , project )
- rules = []
-
- rules << [
- :read_project ,
- :read_wiki ,
- :read_issue ,
- :read_milestone ,
- :read_snippet ,
- :read_team_member ,
- :read_merge_request ,
- :read_note ,
- :write_project ,
- :write_issue ,
- :write_note
- ] if project .guest_access_for? (user )
-
- rules << [
- :download_code ,
- :write_merge_request ,
- :write_snippet
- ] if project .report_access_for? (user )
-
- rules << [
- :write_wiki ,
- :push_code
- ] if project .dev_access_for? (user )
-
- rules << [
- :push_code_to_protected_branches
- ] if project .master_access_for? (user )
-
- rules << [
- :modify_issue ,
- :modify_snippet ,
- :modify_merge_request ,
- :admin_project ,
- :admin_issue ,
- :admin_milestone ,
- :admin_snippet ,
- :admin_team_member ,
- :admin_merge_request ,
- :admin_note ,
- :accept_mr ,
- :admin_wiki
- ] if project .master_access_for? (user ) || project .owner == user
-
- rules .flatten
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Account.html b/doc/app/Account.html
deleted file mode 100644
index 58f65758..00000000
--- a/doc/app/Account.html
+++ /dev/null
@@ -1,881 +0,0 @@
-
-
-
-
-
-
-module Account - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Account
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- block ()
- click to toggle source
-
-
-
-
-
-
Remove user from all projects and set blocked attribute to true
-
-
-
-
-
-def block
- users_projects .find_each do | membership |
- return false unless membership .destroy
- end
-
- self .blocked = true
- save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- can_create_group? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can_create_group?
- is_admin?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- can_create_project? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can_create_project?
- projects_limit > my_own_projects .count
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- cared_merge_requests ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def cared_merge_requests
- MergeRequest .where ("author_id = :id or assignee_id = :id" , id : self .id ).opened
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- first_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def first_name
- name .split .first unless name .blank?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- identifier ()
- click to toggle source
-
-
-
-
-
-
Returns a string for use as a Gitolite user identifier
-
-
Note that Gitolite 2.x requires the following
-pattern for users:
-
-
^@?[0-9a-zA-Z][0-9a-zA-Z._\@+-]*$
-
-
-
-
-
-def identifier
-
-
- email .gsub (%r\W/ , '_' ).gsub (%r\A([\W\_])+/ , '' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_admin? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_admin?
- admin
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_activity_project ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_activity_project
- projects .first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_ids ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_ids
- projects .map (&:id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- projects_limit_percent ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def projects_limit_percent
- return 100 if projects_limit .zero?
- (my_own_projects .count .to_f / projects_limit ) * 100
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- projects_with_events ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def projects_with_events
- projects .includes (:events ).order ("events.created_at DESC" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- recent_push (project_id = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def recent_push project_id = nil
-
- events = recent_events .code_push .where ("created_at > ?" , Time .now - 2 .hours )
- events = events .where (project_id : project_id ) if project_id
-
-
- events = events .recent .limit (1 ).first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- require_ssh_key? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def require_ssh_key?
- keys .count == 0
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ActivityObserver.html b/doc/app/ActivityObserver.html
deleted file mode 100644
index 3b31271d..00000000
--- a/doc/app/ActivityObserver.html
+++ /dev/null
@@ -1,531 +0,0 @@
-
-
-
-
-
-
-class ActivityObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ActivityObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (record)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (record )
- Event .create (
- project : record .project ,
- target_id : record .id ,
- target_type : record .class .name ,
- action : Event .determine_action (record ),
- author_id : record .author_id
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_save (record)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_save (record )
- if record .changed .include? ("closed" )
- Event .create (
- project : record .project ,
- target_id : record .id ,
- target_type : record .class .name ,
- action : (record .closed ? Event :: Closed : Event :: Reopened ),
- author_id : record .author_id_of_changes
- )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin.html b/doc/app/Admin.html
deleted file mode 100644
index 94fb27ef..00000000
--- a/doc/app/Admin.html
+++ /dev/null
@@ -1,432 +0,0 @@
-
-
-
-
-
-
-module Admin - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Admin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/DashboardController.html b/doc/app/Admin/DashboardController.html
deleted file mode 100644
index 00154b3d..00000000
--- a/doc/app/Admin/DashboardController.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-
-
-
-
-
-class Admin::DashboardController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::DashboardController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @workers = Resque .workers
- @pending_jobs = Resque .size (:post_receive )
- @projects = Project .order ("created_at DESC" ).limit (10 )
- @users = User .order ("created_at DESC" ).limit (10 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/GroupsController.html b/doc/app/Admin/GroupsController.html
deleted file mode 100644
index ef4dae9e..00000000
--- a/doc/app/Admin/GroupsController.html
+++ /dev/null
@@ -1,771 +0,0 @@
-
-
-
-
-
-
-class Admin::GroupsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::GroupsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @group = Group .new (params [:group ])
- @group .owner = current_user
-
- if @group .save
- redirect_to [:admin , @group ], notice : 'Group was successfully created.'
- else
- render action : "new"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @group .destroy
-
- redirect_to admin_groups_path , notice : 'Group was successfully deleted.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @groups = Group .scoped
- @groups = @groups .search (params [:name ]) if params [:name ].present?
- @groups = @groups .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @group = Group .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_update
- project_ids = params [:project_ids ]
- Project .where (id : project_ids ).update_all (group_id : @group .id )
-
- redirect_to :back , notice : 'Group was successfully updated.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- remove_project ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def remove_project
- @project = Project .find (params [:project_id ])
- @project .group_id = nil
- @project .save
-
- redirect_to :back , notice : 'Group was successfully updated.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @projects = Project .scoped
- @projects = @projects .not_in_group (@group ) if @group .projects .present?
- @projects = @projects .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- group_params = params [:group ].dup
- owner_id =group_params .delete (:owner_id )
-
- if owner_id
- @group .owner = User .find (owner_id )
- end
-
- if @group .update_attributes (group_params )
- redirect_to [:admin , @group ], notice : 'Group was successfully updated.'
- else
- render action : "edit"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/HooksController.html b/doc/app/Admin/HooksController.html
deleted file mode 100644
index 48cd5d00..00000000
--- a/doc/app/Admin/HooksController.html
+++ /dev/null
@@ -1,603 +0,0 @@
-
-
-
-
-
-
-class Admin::HooksController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::HooksController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @hook = SystemHook .new (params [:hook ])
-
- if @hook .save
- redirect_to admin_hooks_path , notice : 'Hook was successfully created.'
- else
- @hooks = SystemHook .all
- render :index
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @hook = SystemHook .find (params [:id ])
- @hook .destroy
-
- redirect_to admin_hooks_path
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @hooks = SystemHook .all
- @hook = SystemHook .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- test ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def test
- @hook = SystemHook .find (params [:hook_id ])
- data = {
- event_name : "project_create" ,
- name : "Ruby" ,
- path : "ruby" ,
- project_id : 1 ,
- owner_name : "Someone" ,
- owner_email : "example@gitlabhq.com"
- }
- @hook .execute (data )
-
- redirect_to :back
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/LogsController.html b/doc/app/Admin/LogsController.html
deleted file mode 100644
index 8f70b1ad..00000000
--- a/doc/app/Admin/LogsController.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Admin::LogsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::LogsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/ProjectsController.html b/doc/app/Admin/ProjectsController.html
deleted file mode 100644
index 5744746b..00000000
--- a/doc/app/Admin/ProjectsController.html
+++ /dev/null
@@ -1,733 +0,0 @@
-
-
-
-
-
-
-class Admin::ProjectsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::ProjectsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @admin_project = Project .new (params [:project ])
- @admin_project .owner = current_user
-
- if @admin_project .save
- redirect_to [:admin , @admin_project ], notice : 'Project was successfully created.'
- else
- render action : "new"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @admin_project .destroy
-
- redirect_to admin_projects_url , notice : 'Project was successfully deleted.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @admin_projects = Project .scoped
- @admin_projects = @admin_projects .search (params [:name ]) if params [:name ].present?
- @admin_projects = @admin_projects .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @admin_project = Project .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @users = User .scoped
- @users = @users .not_in_project (@admin_project ) if @admin_project .users .present?
- @users = @users .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- team_update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def team_update
- @admin_project .add_users_ids_to_team (params [:user_ids ], params [:project_access ])
-
- redirect_to [:admin , @admin_project ], notice : 'Project was successfully updated.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- owner_id = params [:project ].delete (:owner_id )
-
- if owner_id
- @admin_project .owner = User .find (owner_id )
- end
-
- if @admin_project .update_attributes (params [:project ])
- redirect_to [:admin , @admin_project ], notice : 'Project was successfully updated.'
- else
- render action : "edit"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/ResqueController.html b/doc/app/Admin/ResqueController.html
deleted file mode 100644
index db73599b..00000000
--- a/doc/app/Admin/ResqueController.html
+++ /dev/null
@@ -1,484 +0,0 @@
-
-
-
-
-
-
-class Admin::ResqueController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::ResqueController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/TeamMembersController.html b/doc/app/Admin/TeamMembersController.html
deleted file mode 100644
index 907bf279..00000000
--- a/doc/app/Admin/TeamMembersController.html
+++ /dev/null
@@ -1,558 +0,0 @@
-
-
-
-
-
-
-class Admin::TeamMembersController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::TeamMembersController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @admin_team_member = UsersProject .find (params [:id ])
- @admin_team_member .destroy
-
- redirect_to :back
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- @admin_team_member = UsersProject .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @admin_team_member = UsersProject .find (params [:id ])
-
- if @admin_team_member .update_attributes (params [:team_member ])
- redirect_to [:admin , @admin_team_member .project ], notice : 'Project Access was successfully updated.'
- else
- render action : "edit"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Admin/UsersController.html b/doc/app/Admin/UsersController.html
deleted file mode 100644
index b300e4f7..00000000
--- a/doc/app/Admin/UsersController.html
+++ /dev/null
@@ -1,839 +0,0 @@
-
-
-
-
-
-
-class Admin::UsersController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Admin::UsersController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- block ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def block
- @admin_user = User .find (params [:id ])
-
- if @admin_user .block
- redirect_to :back , alert : "Successfully blocked"
- else
- redirect_to :back , alert : "Error occured. User was not blocked"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- admin = params [:user ].delete ("admin" )
-
- @admin_user = User .new (params [:user ], as : :admin )
- @admin_user .admin = (admin && admin .to_i > 0 )
-
- respond_to do | format |
- if @admin_user .save
- format .html { redirect_to [:admin , @admin_user ], notice : 'User was successfully created.' }
- format .json { render json : @admin_user , status : :created , location : @admin_user }
- else
- format .html { render action : "new" }
- format .json { render json : @admin_user .errors , status : :unprocessable_entity }
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @admin_user = User .find (params [:id ])
- @admin_user .destroy
-
- respond_to do | format |
- format .html { redirect_to admin_users_url }
- format .json { head :ok }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- @admin_user = User .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @admin_users = User .scoped
- @admin_users = @admin_users .filter (params [:filter ])
- @admin_users = @admin_users .search (params [:name ]) if params [:name ].present?
- @admin_users = @admin_users .order ("updated_at DESC" ).page (params [:page ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @admin_user = User .new ({ projects_limit : Gitlab .config .default_projects_limit }, as : :admin )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @admin_user = User .find (params [:id ])
-
- @projects = if @admin_user .projects .empty?
- Project
- else
- Project .without_user (@admin_user )
- end .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- team_update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def team_update
- @admin_user = User .find (params [:id ])
-
- UsersProject .user_bulk_import (
- @admin_user ,
- params [:project_ids ],
- params [:project_access ]
- )
-
- redirect_to [:admin , @admin_user ], notice : 'Teams were successfully updated.'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unblock ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unblock
- @admin_user = User .find (params [:id ])
-
- if @admin_user .update_attribute (:blocked , false )
- redirect_to :back , alert : "Successfully unblocked"
- else
- redirect_to :back , alert : "Error occured. User was not unblocked"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- admin = params [:user ].delete ("admin" )
-
- if params [:user ][:password ].blank?
- params [:user ].delete (:password )
- params [:user ].delete (:password_confirmation )
- end
-
- @admin_user = User .find (params [:id ])
- @admin_user .admin = (admin && admin .to_i > 0 )
-
- respond_to do | format |
- if @admin_user .update_attributes (params [:user ], as : :admin )
- format .html { redirect_to [:admin , @admin_user ], notice : 'User was successfully updated.' }
- format .json { head :ok }
- else
- format .html { render action : "edit" }
- format .json { render json : @admin_user .errors , status : :unprocessable_entity }
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/AdminController.html b/doc/app/AdminController.html
deleted file mode 100644
index bdda7958..00000000
--- a/doc/app/AdminController.html
+++ /dev/null
@@ -1,490 +0,0 @@
-
-
-
-
-
-
-class AdminController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class AdminController
-
-
-
-
Provides a base class for Admin controllers to
-subclass
-
-
Automatically sets the layout and ensures an administrator is logged in
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- authenticate_admin! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authenticate_admin!
- return render_404 unless current_user .is_admin?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ApplicationController.html b/doc/app/ApplicationController.html
deleted file mode 100644
index dafa3413..00000000
--- a/doc/app/ApplicationController.html
+++ /dev/null
@@ -1,1015 +0,0 @@
-
-
-
-
-
-
-class ApplicationController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ApplicationController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- abilities ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def abilities
- @abilities ||= Six .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- access_denied! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def access_denied!
- render "errors/access_denied" , layout : "errors" , status : 404
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_project_abilities ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def add_project_abilities
- abilities << Ability
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_sign_in_path_for (resource)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_sign_in_path_for resource
- if resource .is_a? (User ) && resource .respond_to? (:blocked ) && resource .blocked
- sign_out resource
- flash [:alert ] = "Your account was blocked"
- new_user_session_path
- else
- super
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_code_access! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_code_access!
- return access_denied! unless can? (current_user , :download_code , project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_project! (action)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_project! (action )
- return access_denied! unless can? (current_user , action , project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- can? (object, action, subject)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can? (object , action , subject )
- abilities .allowed? (object , action , subject )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- git_not_found! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def git_not_found!
- render "errors/git_not_found" , layout : "errors" , status : 404
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- method_missing (method_sym, *arguments, &block)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def method_missing (method_sym , *arguments , &block )
- if method_sym .to_s =~ %r^authorize_(.*)!$/
- authorize_project! ($1 .to_sym )
- else
- super
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- not_found! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def not_found!
- render "errors/not_found" , layout : "errors" , status : 404
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project
- @project ||= current_user .projects .find_by_code (params [:project_id ] || params [:id ])
- @project || render_404
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reject_blocked! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reject_blocked!
- if current_user && current_user .blocked
- sign_out current_user
- flash [:alert ] = "Your account was blocked"
- redirect_to new_user_session_path
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- render_404 ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def render_404
- render file : Rails .root .join ("public" , "404" ), layout : false , status : "404"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- require_non_empty_project ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def require_non_empty_project
- redirect_to @project if @project .empty_repo?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- set_current_user_for_observers ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def set_current_user_for_observers
- MergeRequestObserver .current_user = current_user
- IssueObserver .current_user = current_user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ApplicationDecorator.html b/doc/app/ApplicationDecorator.html
deleted file mode 100644
index 72a459bb..00000000
--- a/doc/app/ApplicationDecorator.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class ApplicationDecorator - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ApplicationDecorator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ApplicationHelper.html b/doc/app/ApplicationHelper.html
deleted file mode 100644
index 9bc4243e..00000000
--- a/doc/app/ApplicationHelper.html
+++ /dev/null
@@ -1,1018 +0,0 @@
-
-
-
-
-
-
-module ApplicationHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module ApplicationHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- app_theme ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def app_theme
- Gitlab :: Theme .css_class_by_id (current_user .try (:theme_id ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- current_action? (*args)
- click to toggle source
-
-
-
-
-
-
Check if a partcular action is the current one
-
-
args - One or more action names to check
-
-
Examples
-
-
-current_action? (:new )
-current_action? (:create )
-current_action? (:new , :create )
-
-
-
-
-
-
-def current_action? (*args )
- args .any? { | v | v .to_s .downcase == action_name }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- current_controller? (*args)
- click to toggle source
-
-
-
-
-
-
Check if a particular controller is the current one
-
-
args - One or more controller names to check
-
-
Examples
-
-
-current_controller? (:tree )
-current_controller? (:commits )
-current_controller? (:commits , :tree )
-
-
-
-
-
-
-def current_controller? (*args )
- args .any? { | v | v .to_s .downcase == controller .controller_name }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- emoji_autocomplete_source ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def emoji_autocomplete_source
-
-
- Emoji .names .to_s
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- gravatar_icon (user_email = '', size = 40)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def gravatar_icon (user_email = '' , size = 40 )
- if Gitlab .config .disable_gravatar? || user_email .blank?
- 'no_avatar.png'
- else
- gravatar_prefix = request .ssl? ? "https://secure" : "http://www"
- user_email .strip!
- "#{gravatar_prefix}.gravatar.com/avatar/#{Digest::MD5.hexdigest(user_email.downcase)}?s=#{size}&d=identicon"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- grouped_options_refs (destination = :tree)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def grouped_options_refs (destination = :tree )
- options = [
- ["Branch" , @project .branch_names ],
- [ "Tag" , @project .tag_names ]
- ]
-
-
-
- if (@ref && ! options .flatten .include? (@ref ) &&
- @ref =~ %r^[0-9a-zA-Z]{6,52}$/ )
- options << ["Commit" , [@ref ]]
- end
-
- grouped_options_for_select (options , @ref || @project .default_branch )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- hexdigest (string)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def hexdigest (string )
- Digest :: SHA1 .hexdigest string
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_commit (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_commit (project )
- if project .repo_exists?
- time_ago_in_words (project .commit .committed_date ) + " ago"
- else
- "Never"
- end
-rescue
- "Never"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ldap_enable? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ldap_enable?
- Devise .omniauth_providers .include? (:ldap )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_last_activity (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_last_activity project
- activity = project .last_activity
- if activity && activity .created_at
- time_ago_in_words (activity .created_at ) + " ago"
- else
- "Never"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- request_protocol ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def request_protocol
- request .ssl? ? "https" : "http"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- search_autocomplete_source ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search_autocomplete_source
- projects = current_user .projects .map { | p | { label : p .name , url : project_path (p ) } }
-
- default_nav = [
- { label : "My Profile" , url : profile_path },
- { label : "My SSH Keys" , url : keys_path },
- { label : "My Dashboard" , url : root_path },
- { label : "Admin Section" , url : admin_root_path },
- ]
-
- help_nav = [
- { label : "Workflow Help" , url : help_workflow_path },
- { label : "Permissions Help" , url : help_permissions_path },
- { label : "Web Hooks Help" , url : help_web_hooks_path },
- { label : "System Hooks Help" , url : help_system_hooks_path },
- { label : "API Help" , url : help_api_path },
- { label : "Markdown Help" , url : help_markdown_path },
- { label : "SSH Keys Help" , url : help_ssh_path },
- ]
-
- project_nav = []
- if @project && ! @project .new_record?
- project_nav = [
- { label : "#{@project.name} Issues" , url : project_issues_path (@project ) },
- { label : "#{@project.name} Commits" , url : project_commits_path (@project , @ref || @project .root_ref ) },
- { label : "#{@project.name} Merge Requests" , url : project_merge_requests_path (@project ) },
- { label : "#{@project.name} Milestones" , url : project_milestones_path (@project ) },
- { label : "#{@project.name} Snippets" , url : project_snippets_path (@project ) },
- { label : "#{@project.name} Team" , url : project_team_index_path (@project ) },
- { label : "#{@project.name} Tree" , url : project_tree_path (@project , @ref || @project .root_ref ) },
- { label : "#{@project.name} Wall" , url : wall_project_path (@project ) },
- { label : "#{@project.name} Wiki" , url : project_wikis_path (@project ) },
- ]
- end
-
- [projects , default_nav , project_nav , help_nav ].flatten .to_json
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- web_app_url ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def web_app_url
- "#{request_protocol}://#{Gitlab.config.web_host}/"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/AttachmentUploader.html b/doc/app/AttachmentUploader.html
deleted file mode 100644
index b6e9d1ba..00000000
--- a/doc/app/AttachmentUploader.html
+++ /dev/null
@@ -1,486 +0,0 @@
-
-
-
-
-
-
-class AttachmentUploader - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class AttachmentUploader
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- store_dir ()
- click to toggle source
-
-
-
-
-
-
Override the directory where uploaded files will be stored. This is a
-sensible default for uploaders that are meant to be mounted:
-
-
-
-
-
-def store_dir
- "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Authority.html b/doc/app/Authority.html
deleted file mode 100644
index 92f46c55..00000000
--- a/doc/app/Authority.html
+++ /dev/null
@@ -1,782 +0,0 @@
-
-
-
-
-
-
-module Authority - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Authority
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_access (user, *access)
- click to toggle source
-
-
-
-
-
-
Compatible with all access rights Should be rewrited for new access rights
-
-
-
-
-
-def add_access (user , *access )
- access = if access .include? (:admin )
- { project_access : UsersProject :: MASTER }
- elsif access .include? (:write )
- { project_access : UsersProject :: DEVELOPER }
- else
- { project_access : UsersProject :: REPORTER }
- end
- opts = { user : user }
- opts .merge! (access )
- users_projects .create (opts )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- allow_read_for? (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def allow_read_for? (user )
- ! users_projects .where (user_id : user .id ).empty?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- dev_access_for? (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def dev_access_for? (user )
- ! users_projects .where (user_id : user .id , project_access : [UsersProject :: DEVELOPER , UsersProject :: MASTER ]).empty?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- guest_access_for? (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def guest_access_for? (user )
- ! users_projects .where (user_id : user .id ).empty?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- master_access_for? (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def master_access_for? (user )
- ! users_projects .where (user_id : user .id , project_access : [UsersProject :: MASTER ]).empty?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- report_access_for? (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def report_access_for? (user )
- ! users_projects .where (user_id : user .id , project_access : [UsersProject :: REPORTER , UsersProject :: DEVELOPER , UsersProject :: MASTER ]).empty?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repository_masters ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repository_masters
- keys = Key .joins ({user : :users_projects }).
- where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: MASTER )
- keys .map (&:identifier )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repository_readers ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repository_readers
- keys = Key .joins ({user : :users_projects }).
- where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: REPORTER )
- keys .map (&:identifier ) + deploy_keys .map (&:identifier )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repository_writers ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repository_writers
- keys = Key .joins ({user : :users_projects }).
- where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: DEVELOPER )
- keys .map (&:identifier )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reset_access (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reset_access (user )
- users_projects .where (project_id : self .id , user_id : user .id ).destroy if self .id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/BaseContext.html b/doc/app/BaseContext.html
deleted file mode 100644
index b9c46738..00000000
--- a/doc/app/BaseContext.html
+++ /dev/null
@@ -1,605 +0,0 @@
-
-
-
-
-
-
-class BaseContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class BaseContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- current_user [RW]
-
-
-
-
-
-
-
-
-
-
-
- params [RW]
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (project, user, params)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (project , user , params )
- @project , @current_user , @params = project , user , params .dup
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- abilities ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def abilities
- @abilities ||= begin
- abilities = Six .new
- abilities << Ability
- abilities
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- can? (object, action, subject)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can? (object , action , subject )
- abilities .allowed? (object , action , subject )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/BlameController.html b/doc/app/BlameController.html
deleted file mode 100644
index 4b23b227..00000000
--- a/doc/app/BlameController.html
+++ /dev/null
@@ -1,500 +0,0 @@
-
-
-
-
-
-
-class BlameController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class BlameController
-
-
-
-
Controller for viewing a file’s blame
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @repo = @project .repo
- @blame = Grit :: Blob .blame (@repo , @commit .id , @path )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/BlobController.html b/doc/app/BlobController.html
deleted file mode 100644
index e8f069c2..00000000
--- a/doc/app/BlobController.html
+++ /dev/null
@@ -1,519 +0,0 @@
-
-
-
-
-
-
-class BlobController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class BlobController
-
-
-
-
Controller for viewing a file’s blame
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- if @tree .is_blob?
- if @tree .text?
- encoding = detect_encoding (@tree .data )
- mime_type = encoding ? "text/plain; charset=#{encoding}" : "text/plain"
- else
- mime_type = @tree .mime_type
- end
-
- send_data (
- @tree .data ,
- type : mime_type ,
- disposition : 'inline' ,
- filename : @tree .name
- )
- else
- not_found!
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Commit.html b/doc/app/Commit.html
deleted file mode 100644
index 05a3f3ce..00000000
--- a/doc/app/Commit.html
+++ /dev/null
@@ -1,1191 +0,0 @@
-
-
-
-
-
-
-class Commit - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Commit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit [RW]
-
-
-
-
-
-
-
-
-
-
-
- head [RW]
-
-
-
-
-
-
-
-
-
-
-
- refs [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits (repo, ref, path = nil, limit = nil, offset = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits (repo , ref , path = nil , limit = nil , offset = nil )
- if path
- repo .log (ref , path , max_count : limit , skip : offset )
- elsif limit && offset
- repo .commits (ref , limit , offset )
- else
- repo .commits (ref )
- end .map { | c | Commit .new (c ) }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_between (repo, from, to)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_between (repo , from , to )
- repo .commits_between (from , to ).map { | c | Commit .new (c ) }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_since (repo, date)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_since (repo , date )
- commits = repo .heads .map do | h |
- repo .log (h .name , nil , since : date ).each { | c | Commit .new (c , h ) }
- end .flatten .uniq { | c | c .id }
-
- commits .sort! do | x , y |
- y .committed_date <=> x .committed_date
- end
-
- commits
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_with_refs (repo, n = 20)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_with_refs (repo , n = 20 )
- commits = repo .branches .map { | ref | Commit .new (ref .commit , ref ) }
-
- commits .sort! do | x , y |
- y .committed_date <=> x .committed_date
- end
-
- commits [0 .. n ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- compare (project, from, to)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def compare (project , from , to )
- result = {
- commits : [],
- diffs : [],
- commit : nil ,
- same : false
- }
-
- return result unless from && to
-
- first = project .commit (to .try (:strip ))
- last = project .commit (from .try (:strip ))
-
- if first && last
- commits = [first , last ].sort_by (&:created_at )
- younger = commits .first
- older = commits .last
-
- result [:same ] = (younger .id == older .id )
- result [:commits ] = project .repo .commits_between (younger .id , older .id ).map {| c | Commit .new (c )}
- result [:diffs ] = project .repo .diff (younger .id , older .id ) rescue []
- result [:commit ] = Commit .new (older )
- end
-
- result
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_or_first (repo, commit_id = nil, root_ref)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def find_or_first (repo , commit_id = nil , root_ref )
- commit = if commit_id
- repo .commit (commit_id )
- else
- repo .commits (root_ref ).first
- end
-
- Commit .new (commit ) if commit
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- fresh_commits (repo, n = 10)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def fresh_commits (repo , n = 10 )
- commits = repo .heads .map do | h |
- repo .commits (h .name , n ).map { | c | Commit .new (c , h ) }
- end .flatten .uniq { | c | c .id }
-
- commits .sort! do | x , y |
- y .committed_date <=> x .committed_date
- end
-
- commits [0 ... n ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (raw_commit, head = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (raw_commit , head = nil )
- @commit = raw_commit
- @head = head
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- author_email ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def author_email
- author .email
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- author_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def author_name
- utf8 author .name
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- committer_email ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def committer_email
- committer .email
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- committer_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def committer_name
- utf8 committer .name
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- created_at ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def created_at
- committed_date
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- different_committer? ()
- click to toggle source
-
-
-
-
-
-
Was this commit committed by a different person than the original author?
-
-
-
-
-
-def different_committer?
- author_name != committer_name || author_email != committer_email
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- parents_count ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def parents_count
- parents && parents .count || 0
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- prev_commit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def prev_commit
- parents .try :first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- prev_commit_id ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def prev_commit_id
- prev_commit .try :id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- safe_message ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def safe_message
- @safe_message ||= utf8 message
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- short_id (length = 10)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def short_id (length = 10 )
- id .to_s [0 .. length ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CommitController.html b/doc/app/CommitController.html
deleted file mode 100644
index 564161e9..00000000
--- a/doc/app/CommitController.html
+++ /dev/null
@@ -1,509 +0,0 @@
-
-
-
-
-
-
-class CommitController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class CommitController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- result = CommitLoadContext .new (project , current_user , params ).execute
-
- @commit = result [:commit ]
- git_not_found! unless @commit
-
- @suppress_diff = result [:suppress_diff ]
- @note = result [:note ]
- @line_notes = result [:line_notes ]
- @notes_count = result [:notes_count ]
- @comments_allowed = true
-
- respond_to do | format |
- format .html do
- if result [:status ] == :huge_commit
- render "huge_commit" and return
- end
- end
-
- format .patch
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CommitDecorator.html b/doc/app/CommitDecorator.html
deleted file mode 100644
index 3cca57a4..00000000
--- a/doc/app/CommitDecorator.html
+++ /dev/null
@@ -1,663 +0,0 @@
-
-
-
-
-
-
-class CommitDecorator - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class CommitDecorator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- author_link (options)
- click to toggle source
-
-
-
-
-
-
Returns a link to the commit author. If the author has a matching user and
-is a member of the current @project it will link to the team member page.
-Otherwise it will link to the author email as specified in the commit.
-
-
options:
-
-
avatar: true will prepend avatar image
-
-
-
-
-
-def author_link (options )
- text = if options [:avatar ]
- avatar = h .image_tag h .gravatar_icon (author_email ), class : "avatar" , width : 16
- "#{avatar} #{author_name}"
- else
- author_name
- end
- team_member = @project .try (:team_member_by_name_or_email , author_name , author_email )
-
- if team_member .nil?
- h .mail_to author_email , text .html_safe , class : "commit-author-link"
- else
- h .link_to text , h .project_team_member_path (@project , team_member ), class : "commit-author-link"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- description ()
- click to toggle source
-
-
-
-
-
-
Returns the commits description
-
-
cut off, ellipses (`&hellp;`) are prepended to the commit message.
-
-
-
-
-
-def description
- description = safe_message
-
- title_end = description .index (%r\n/ )
- if (! title_end && description .length > 80 ) || (title_end && title_end > 80 )
- "…" .html_safe << description [70 .. -1 ]
- else
- description .split (%r\n/ , 2 )[1 ].try (:chomp )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_title ()
- click to toggle source
-
-
-
-
-
-
Returns a string describing the commit for use in a link title
-
-
Example
-
-
"Commit: Alex Denisov - Project git clone panel"
-
-
-
-
-
-def link_title
- "Commit: #{author_name} - #{title}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- title ()
- click to toggle source
-
-
-
-
-
-
Returns the commits title.
-
-
Usually, the commit title is the first line of the commit message. In case
-this first line is longer than 80 characters, it is cut off after 70
-characters and ellipses (`&hellp;`) are appended.
-
-
-
-
-
-def title
- title = safe_message
-
- return no_commit_message if title .blank?
-
- title_end = title .index (%r\n/ )
- if (! title_end && title .length > 80 ) || (title_end && title_end > 80 )
- title [0 .. 69 ] << "…" .html_safe
- else
- title .split (%r\n/ , 2 ).first
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- no_commit_message ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def no_commit_message
- "--no commit message"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CommitLoadContext.html b/doc/app/CommitLoadContext.html
deleted file mode 100644
index feb6dbf4..00000000
--- a/doc/app/CommitLoadContext.html
+++ /dev/null
@@ -1,513 +0,0 @@
-
-
-
-
-
-
-class CommitLoadContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class CommitLoadContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- result = {
- commit : nil ,
- suppress_diff : false ,
- line_notes : [],
- notes_count : 0 ,
- note : nil ,
- status : :ok
- }
-
- commit = project .commit (params [:id ])
-
- if commit
- commit = CommitDecorator .decorate (commit )
- line_notes = project .commit_line_notes (commit )
-
- result [:commit ] = commit
- result [:note ] = project .build_commit_note (commit )
- result [:line_notes ] = line_notes
- result [:notes_count ] = line_notes .count + project .commit_notes (commit ).count
-
- begin
- result [:suppress_diff ] = true if commit .diffs .size > 200 && ! params [:force_show_diff ]
- rescue Grit :: Git :: GitTimeout
- result [:suppress_diff ] = true
- result [:status ] = :huge_commit
- end
- end
-
- result
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CommitsController.html b/doc/app/CommitsController.html
deleted file mode 100644
index 52eaad04..00000000
--- a/doc/app/CommitsController.html
+++ /dev/null
@@ -1,507 +0,0 @@
-
-
-
-
-
-
-class CommitsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class CommitsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @repo = @project .repo
- @limit , @offset = (params [:limit ] || 40 ), (params [:offset ] || 0 )
-
- @commits = @project .commits (@ref , @path , @limit , @offset )
- @commits = CommitDecorator .decorate (@commits )
-
- respond_to do | format |
- format .html
- format .js
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CommitsHelper.html b/doc/app/CommitsHelper.html
deleted file mode 100644
index 58844bec..00000000
--- a/doc/app/CommitsHelper.html
+++ /dev/null
@@ -1,625 +0,0 @@
-
-
-
-
-
-
-module CommitsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module CommitsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- build_line_anchor (index, line_new, line_old)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def build_line_anchor (index , line_new , line_old )
- "#{index}_#{line_old}_#{line_new}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- each_diff_line (diff_arr, index) { |full_line, type, nil, nil, nil| ... }
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def each_diff_line (diff_arr , index )
- line_old = 1
- line_new = 1
- type = nil
-
- lines_arr = :: Gitlab :: InlineDiff .processing diff_arr
- lines_arr .each do | line |
- next if line .match (%r^\-\-\- \/dev\/null/ )
- next if line .match (%r^\+\+\+ \/dev\/null/ )
- next if line .match (%r^\-\-\- a/ )
- next if line .match (%r^\+\+\+ b/ )
-
- full_line = html_escape (line .gsub (%r\n/ , '' ))
- full_line = :: Gitlab :: InlineDiff .replace_markers full_line
-
- if line .match (%r^@@ -/ )
- type = "match"
-
- line_old = line .match (%r\-[0-9]*/ )[0 ].to_i .abs rescue 0
- line_new = line .match (%r\+[0-9]*/ )[0 ].to_i .abs rescue 0
-
- next if line_old == 1 && line_new == 1
- yield (full_line , type , nil , nil , nil )
- next
- else
- type = identification_type (line )
- line_code = build_line_anchor (index , line_new , line_old )
- yield (full_line , type , line_code , line_new , line_old )
- end
-
-
- if line [0 ] == "+"
- line_new += 1
- elsif line [0 ] == "-"
- line_old += 1
- else
- line_new += 1
- line_old += 1
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- identification_type (line)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def identification_type (line )
- if line [0 ] == "+"
- "new"
- elsif line [0 ] == "-"
- "old"
- else
- nil
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- image_diff_class (diff)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def image_diff_class (diff )
- if diff .deleted_file
- "diff_image_removed"
- elsif diff .new_file
- "diff_image_added"
- else
- nil
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/CompareController.html b/doc/app/CompareController.html
deleted file mode 100644
index 177e22d2..00000000
--- a/doc/app/CompareController.html
+++ /dev/null
@@ -1,556 +0,0 @@
-
-
-
-
-
-
-class CompareController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class CompareController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- redirect_to project_compare_path (@project , params [:from ], params [:to ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- result = Commit .compare (project , params [:from ], params [:to ])
-
- @commits = result [:commits ]
- @commit = result [:commit ]
- @diffs = result [:diffs ]
- @refs_are_same = result [:same ]
- @line_notes = []
-
- @commits = CommitDecorator .decorate (@commits )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/DashboardController.html b/doc/app/DashboardController.html
deleted file mode 100644
index e3f4d1b4..00000000
--- a/doc/app/DashboardController.html
+++ /dev/null
@@ -1,569 +0,0 @@
-
-
-
-
-
-
-class DashboardController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class DashboardController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @groups = Group .where (id : current_user .projects .pluck (:group_id ))
- @projects = current_user .projects_with_events
- @projects = @projects .page (params [:page ]).per (30 )
-
- @events = Event .in_projects (current_user .project_ids ).limit (20 ).offset (params [:offset ] || 0 )
- @last_push = current_user .recent_push
-
- respond_to do | format |
- format .html
- format .js
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues ()
- click to toggle source
-
-
-
-
-
-
Get only assigned issues
-
-
-
-
-
-def issues
- @projects = current_user .projects .all
- @user = current_user
- @issues = current_user .assigned_issues .opened .recent .page (params [:page ]).per (20 )
- @issues = @issues .includes (:author , :project )
-
- respond_to do | format |
- format .html
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_requests ()
- click to toggle source
-
-
-
-
-
-
Get authored or assigned open merge requests
-
-
-
-
-
-def merge_requests
- @projects = current_user .projects .all
- @merge_requests = current_user .cared_merge_requests .recent .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/DeployKeysController.html b/doc/app/DeployKeysController.html
deleted file mode 100644
index 318a1441..00000000
--- a/doc/app/DeployKeysController.html
+++ /dev/null
@@ -1,626 +0,0 @@
-
-
-
-
-
-
-class DeployKeysController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class DeployKeysController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @key = @project .deploy_keys .new (params [:key ])
- if @key .save
- redirect_to project_deploy_keys_path (@project )
- else
- render "new"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @key = @project .deploy_keys .find (params [:id ])
- @key .destroy
-
- respond_to do | format |
- format .html { redirect_to project_deploy_keys_url }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @keys = @project .deploy_keys .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @key = @project .deploy_keys .new
-
- respond_with (@key )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @key = @project .deploy_keys .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ErrorsController.html b/doc/app/ErrorsController.html
deleted file mode 100644
index e77a67d7..00000000
--- a/doc/app/ErrorsController.html
+++ /dev/null
@@ -1,485 +0,0 @@
-
-
-
-
-
-
-class ErrorsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ErrorsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- githost ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def githost
- render "errors/gitolite"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Event.html b/doc/app/Event.html
deleted file mode 100644
index 1347cda3..00000000
--- a/doc/app/Event.html
+++ /dev/null
@@ -1,1222 +0,0 @@
-
-
-
-
-
-
-class Event - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Event
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Closed
-
-
-
-
-
-
-
- Created
-
-
-
-
- Joined
-
-
-
-
- Left
-
-
-
-
- Merged
-
-
-
-
- Pushed
-
-
-
-
- Reopened
-
-
-
-
- Updated
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- determine_action (record)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def determine_action (record )
- if [Issue , MergeRequest ].include? record .class
- Event :: Created
- elsif record .kind_of? Note
- Event :: Commented
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- action_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def action_name
- if closed?
- "closed"
- elsif merged?
- "merged"
- elsif joined?
- 'joined'
- elsif left?
- 'left'
- else
- "opened"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- allowed? ()
- click to toggle source
-
-
-
-
-
-
Next events currently enabled for system
-
-
- push
-- new issue
-- merge request
-
-
-
-
-
-def allowed?
- push? || issue? || merge_request? || membership_changed?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- author ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def author
- @author ||= User .find (author_id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- changed_issue? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def changed_issue?
- target_type == "Issue" &&
- [Closed , Reopened ].include? (action )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- changed_merge_request? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def changed_merge_request?
- target_type == "MergeRequest" &&
- [Closed , Reopened ].include? (action )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- closed? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def closed?
- action == self .class :: Closed
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issue
- target if target_type == "Issue"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issue?
- target_type == "Issue"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- joined? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def joined?
- action == Joined
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- left? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def left?
- action == Left
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- membership_changed? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def membership_changed?
- joined? || left?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_request ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merge_request
- target if target_type == "MergeRequest"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_request? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merge_request?
- target_type == "MergeRequest"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merged? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merged?
- action == self .class :: Merged
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_issue? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_issue?
- target_type == "Issue" &&
- action == Created
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_merge_request? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_merge_request?
- target_type == "MergeRequest" &&
- action == Created
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_name
- if project
- project .name
- else
- "(deleted project)"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- push? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def push?
- action == self .class :: Pushed && valid_push?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reopened? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reopened?
- action == self .class :: Reopened
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- target_title ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def target_title
- target .try :title
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/EventDecorator.html b/doc/app/EventDecorator.html
deleted file mode 100644
index dddb98a6..00000000
--- a/doc/app/EventDecorator.html
+++ /dev/null
@@ -1,578 +0,0 @@
-
-
-
-
-
-
-class EventDecorator - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class EventDecorator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- feed_summary ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def feed_summary
- if self .issue?
- h .render "events/event_issue" , issue : self .issue
- elsif self .push?
- h .render "events/event_push" , event : self
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- feed_title ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def feed_title
- if self .issue?
- "#{self.author_name} #{self.action_name} issue ##{self.target_id}: #{self.issue_title} at #{self.project.name}"
- elsif self .merge_request?
- "#{self.author_name} #{self.action_name} MR ##{self.target_id}: #{self.merge_request_title} at #{self.project.name}"
- elsif self .push?
- "#{self.author_name} #{self.push_action_name} #{self.ref_type} #{self.ref_name} at #{self.project.name}"
- elsif self .membership_changed?
- "#{self.author_name} #{self.action_name} #{self.project.name}"
- else
- ""
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- feed_url ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def feed_url
- if self .issue?
- h .project_issue_url (self .project , self .issue )
- elsif self .merge_request?
- h .project_merge_request_url (self .project , self .merge_request )
-
- elsif self .push?
- if self .push_with_commits?
- if self .commits_count > 1
- h .project_compare_url (self .project , :from => self .parent_commit .id , :to => self .last_commit .id )
- else
- h .project_commit_url (self .project , :id => self .last_commit .id )
- end
- else
- h .project_commits_url (self .project , self .ref_name )
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/EventsHelper.html b/doc/app/EventsHelper.html
deleted file mode 100644
index 4f7c0454..00000000
--- a/doc/app/EventsHelper.html
+++ /dev/null
@@ -1,566 +0,0 @@
-
-
-
-
-
-
-module EventsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module EventsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- event_action_name (event)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def event_action_name (event )
- target = if event .target_type
- event .target_type .titleize .downcase
- else
- 'project'
- end
-
- [event .action_name , target ].join (" " )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- event_image (event)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def event_image event
- event_image_path = if event .push?
- "event_push.png"
- elsif event .merged?
- "event_mr_merged.png"
- end
-
- return nil unless event_image_path
-
- content_tag :div , class : 'event_icon' do
- image_tag event_image_path
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_author (event)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_author (event )
- project = event .project
- tm = project .team_member_by_id (event .author_id ) if project
-
- if tm
- link_to event .author_name , project_team_member_path (project , tm )
- else
- event .author_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ExtractsPath.html b/doc/app/ExtractsPath.html
deleted file mode 100644
index e3825307..00000000
--- a/doc/app/ExtractsPath.html
+++ /dev/null
@@ -1,614 +0,0 @@
-
-
-
-
-
-
-module ExtractsPath - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module ExtractsPath
-
-
-
-
Module providing methods for dealing with separating a tree-ish string and
-a file path string when combined in a request parameter
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- assign_ref_vars ()
- click to toggle source
-
-
-
-
-
-
Assigns common instance variables for views working with Git tree-ish
-objects
-
-
Assignments are:
-
-@id - A string representing the joined ref and path
-
-@ref - A string representing the ref (e.g., the branch, tag, or commit
-SHA)
-
-@path - A string representing the filesystem path
-
-@commit - A CommitDecorator representing
-the commit from the given ref
-
-@tree - A TreeDecorator representing the
-tree at the given ref/path
-
-
-
If the :id parameter appears to be requesting a specific response format,
-that will be handled as well.
-
-
Automatically renders `not_found!` if a valid tree path could not be
-resolved (e.g., when a user inserts an invalid path or ref).
-
-
-
-
-
-def assign_ref_vars
-
- if params [:id ].ends_with? ('.atom' )
- params [:id ].gsub! (%r\.atom$/ , '' )
- request .format = :atom
- end
-
- @ref , @path = extract_ref (params [:id ])
-
- @id = File .join (@ref , @path )
-
- @commit = CommitDecorator .decorate (@project .commit (@ref ))
-
- @tree = Tree .new (@commit .tree , @project , @ref , @path )
- @tree = TreeDecorator .new (@tree )
-
- raise InvalidPathError if @tree .invalid?
-rescue NoMethodError , InvalidPathError
- not_found!
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ExtractsPath/InvalidPathError.html b/doc/app/ExtractsPath/InvalidPathError.html
deleted file mode 100644
index 3c8c60fc..00000000
--- a/doc/app/ExtractsPath/InvalidPathError.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class ExtractsPath::InvalidPathError - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ExtractsPath::InvalidPathError
-
-
-
-
Raised when given an invalid file path
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/FileSizeValidator.html b/doc/app/FileSizeValidator.html
deleted file mode 100644
index 5acdf291..00000000
--- a/doc/app/FileSizeValidator.html
+++ /dev/null
@@ -1,652 +0,0 @@
-
-
-
-
-
-
-class FileSizeValidator - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class FileSizeValidator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CHECKS
-
-
-
-
- DEFAULT_TOKENIZER
-
-
-
-
- MESSAGES
-
-
-
-
- RESERVED_OPTIONS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (options)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (options )
- if range = (options .delete (:in ) || options .delete (:within ))
- raise ArgumentError , ":in and :within must be a Range" unless range .is_a? (Range )
- options [:minimum ], options [:maximum ] = range .begin , range .end
- options [:maximum ] -= 1 if range .exclude_end?
- end
-
- super
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- check_validity! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def check_validity!
- keys = CHECKS .keys & options .keys
-
- if keys .empty?
- raise ArgumentError , 'Range unspecified. Specify the :within, :maximum, :minimum, or :is option.'
- end
-
- keys .each do | key |
- value = options [key ]
-
- unless value .is_a? (Integer ) && value >= 0
- raise ArgumentError , ":#{key} must be a nonnegative Integer"
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- help ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def help
- Helper .instance
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- validate_each (record, attribute, value)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def validate_each (record , attribute , value )
- raise (ArgumentError , "A CarrierWave::Uploader::Base object was expected" ) unless value .kind_of? CarrierWave :: Uploader :: Base
-
- value = (options [:tokenizer ] || DEFAULT_TOKENIZER ).call (value ) if value .kind_of? (String )
-
- CHECKS .each do | key , validity_check |
- next unless check_value = options [key ]
-
- value ||= [] if key == :maximum
-
- value_size = value .size
- next if value_size .send (validity_check , check_value )
-
- errors_options = options .except (*RESERVED_OPTIONS )
- errors_options [:file_size ] = help .number_to_human_size check_value
-
- default_message = options [MESSAGES [key ]]
- errors_options [:message ] ||= default_message if default_message
-
- record .errors .add (attribute , MESSAGES [key ], errors_options )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/FileSizeValidator/Helper.html b/doc/app/FileSizeValidator/Helper.html
deleted file mode 100644
index 4fd146c2..00000000
--- a/doc/app/FileSizeValidator/Helper.html
+++ /dev/null
@@ -1,455 +0,0 @@
-
-
-
-
-
-
-class FileSizeValidator::Helper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class FileSizeValidator::Helper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/GitHost.html b/doc/app/GitHost.html
deleted file mode 100644
index 3197a73f..00000000
--- a/doc/app/GitHost.html
+++ /dev/null
@@ -1,479 +0,0 @@
-
-
-
-
-
-
-module GitHost - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module GitHost
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- git_host ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def git_host
- Gitlab :: Gitolite .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab.html b/doc/app/Gitlab.html
deleted file mode 100644
index 0e28a24b..00000000
--- a/doc/app/Gitlab.html
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
-
-
-
-
-module Gitlab - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Gitlab
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/API.html b/doc/app/Gitlab/API.html
deleted file mode 100644
index 8fad1eec..00000000
--- a/doc/app/Gitlab/API.html
+++ /dev/null
@@ -1,452 +0,0 @@
-
-
-
-
-
-
-class Gitlab::API - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VERSION
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/APIHelpers.html b/doc/app/Gitlab/APIHelpers.html
deleted file mode 100644
index 47bf3fb1..00000000
--- a/doc/app/Gitlab/APIHelpers.html
+++ /dev/null
@@ -1,846 +0,0 @@
-
-
-
-
-
-
-module Gitlab::APIHelpers - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Gitlab::APIHelpers
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- attributes_for_keys (keys)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def attributes_for_keys (keys )
- attrs = {}
- keys .each do | key |
- attrs [key ] = params [key ] if params [key ].present?
- end
- attrs
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authenticate! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authenticate!
- unauthorized! unless current_user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authenticated_as_admin! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authenticated_as_admin!
- forbidden! unless current_user .is_admin?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize! (action, subject)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize! action , subject
- unless abilities .allowed? (current_user , action , subject )
- forbidden!
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- current_user ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def current_user
- @current_user ||= User .find_by_authentication_token (params [:private_token ] || env ["HTTP_PRIVATE_TOKEN" ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- forbidden! ()
- click to toggle source
-
-
-
-
-
-
error helpers
-
-
-
-
-
-def forbidden!
- render_api_error! ('403 Forbidden' , 403 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- not_allowed! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def not_allowed!
- render_api_error! ('Method Not Allowed' , 405 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- not_found! (resource = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def not_found! (resource = nil )
- message = ["404" ]
- message << resource if resource
- message << "Not Found"
- render_api_error! (message .join (' ' ), 404 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- paginate (object)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def paginate (object )
- object .page (params [:page ]).per (params [:per_page ].to_i )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- render_api_error! (message, status)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def render_api_error! (message , status )
- error! ({'message' => message }, status )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unauthorized! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unauthorized!
- render_api_error! ('401 Unauthorized' , 401 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- user_project ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def user_project
- if @project ||= current_user .projects .find_by_id (params [:id ]) ||
- current_user .projects .find_by_code (params [:id ])
- else
- not_found!
- end
-
- @project
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/AppLogger.html b/doc/app/Gitlab/AppLogger.html
deleted file mode 100644
index e3a352af..00000000
--- a/doc/app/Gitlab/AppLogger.html
+++ /dev/null
@@ -1,523 +0,0 @@
-
-
-
-
-
-
-class Gitlab::AppLogger - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::AppLogger
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- file_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .file_name
- 'application.log'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Auth.html b/doc/app/Gitlab/Auth.html
deleted file mode 100644
index ac4fd556..00000000
--- a/doc/app/Gitlab/Auth.html
+++ /dev/null
@@ -1,630 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Auth - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Auth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create_from_omniauth (auth, ldap = false)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create_from_omniauth (auth , ldap = false )
- provider = auth .provider
- uid = auth .info .uid || auth .uid
- name = auth .info .name .force_encoding ("utf-8" )
- email = auth .info .email .downcase unless auth .info .email .nil?
-
- ldap_prefix = ldap ? '(LDAP) ' : ''
- raise OmniAuth :: Error , "#{ldap_prefix}#{provider} does not provide an email" " address" if auth .info .email .blank?
-
- log .info "#{ldap_prefix}Creating user from #{provider} login" " {uid => #{uid}, name => #{name}, email => #{email}}"
- password = Devise .friendly_token [0 , 8 ].downcase
- @user = User .new ({
- extern_uid : uid ,
- provider : provider ,
- name : name ,
- email : email ,
- password : password ,
- password_confirmation : password ,
- projects_limit : Gitlab .config .default_projects_limit ,
- }, as : :admin )
- if Gitlab .config .omniauth ['block_auto_created_users' ] && ! ldap
- @user .blocked = true
- end
- @user .save!
- @user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_for_ldap_auth (auth, signed_in_resource = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def find_for_ldap_auth (auth , signed_in_resource = nil )
- uid = auth .info .uid
- provider = auth .provider
- email = auth .info .email .downcase unless auth .info .email .nil?
- raise OmniAuth :: Error , "LDAP accounts must provide an uid and email address" if uid .nil? or email .nil?
-
- if @user = User .find_by_extern_uid_and_provider (uid , provider )
- @user
- elsif @user = User .find_by_email (email )
- log .info "Updating legacy LDAP user #{email} with extern_uid => #{uid}"
- @user .update_attributes (:extern_uid => uid , :provider => provider )
- @user
- else
- create_from_omniauth (auth , true )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_or_new_for_omniauth (auth)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def find_or_new_for_omniauth (auth )
- provider , uid = auth .provider , auth .uid
- email = auth .info .email .downcase unless auth .info .email .nil?
-
- if @user = User .find_by_provider_and_extern_uid (provider , uid )
- @user
- elsif @user = User .find_by_email (email )
- @user .update_attributes (:extern_uid => uid , :provider => provider )
- @user
- else
- if Gitlab .config .omniauth ['allow_single_sign_on' ]
- @user = create_from_omniauth (auth )
- @user
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- log ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def log
- Gitlab :: AppLogger
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Encode.html b/doc/app/Gitlab/Encode.html
deleted file mode 100644
index 387e0db2..00000000
--- a/doc/app/Gitlab/Encode.html
+++ /dev/null
@@ -1,537 +0,0 @@
-
-
-
-
-
-
-module Gitlab::Encode - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Gitlab::Encode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- detect_encoding (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def detect_encoding message
- return nil unless message
-
- hash = CharlockHolmes :: EncodingDetector .detect (message ) rescue {}
- return hash [:encoding ] ? hash [:encoding ] : nil
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- utf8 (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def utf8 message
-
- return nil unless message
-
- message .force_encoding ("utf-8" )
-
- detect = CharlockHolmes :: EncodingDetector .detect (message )
- return message if detect [:type ] == :binary
-
-
- return message if message .valid_encoding?
-
-
- if detect [:encoding ]
- message .force_encoding (detect [:encoding ])
- message .encode! ("utf-8" , detect [:encoding ], undef : :replace , replace : "" , invalid : :replace )
- end
-
-
- message .valid_encoding? ? message : raise
-
-
-rescue
- encoding = detect ? detect [:encoding ] : "unknown"
- "--broken encoding: #{encoding}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities.html b/doc/app/Gitlab/Entities.html
deleted file mode 100644
index 8cd0d837..00000000
--- a/doc/app/Gitlab/Entities.html
+++ /dev/null
@@ -1,433 +0,0 @@
-
-
-
-
-
-
-module Gitlab::Entities - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Gitlab::Entities
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/Hook.html b/doc/app/Gitlab/Entities/Hook.html
deleted file mode 100644
index c9eba832..00000000
--- a/doc/app/Gitlab/Entities/Hook.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::Hook - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::Hook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/Issue.html b/doc/app/Gitlab/Entities/Issue.html
deleted file mode 100644
index f713b7ab..00000000
--- a/doc/app/Gitlab/Entities/Issue.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::Issue - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::Issue
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/Milestone.html b/doc/app/Gitlab/Entities/Milestone.html
deleted file mode 100644
index f762ad29..00000000
--- a/doc/app/Gitlab/Entities/Milestone.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::Milestone - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::Milestone
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/Project.html b/doc/app/Gitlab/Entities/Project.html
deleted file mode 100644
index 725e6b75..00000000
--- a/doc/app/Gitlab/Entities/Project.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::Project - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::Project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/ProjectMember.html b/doc/app/Gitlab/Entities/ProjectMember.html
deleted file mode 100644
index 468d3dc1..00000000
--- a/doc/app/Gitlab/Entities/ProjectMember.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::ProjectMember - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::ProjectMember
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/ProjectSnippet.html b/doc/app/Gitlab/Entities/ProjectSnippet.html
deleted file mode 100644
index e19fad75..00000000
--- a/doc/app/Gitlab/Entities/ProjectSnippet.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::ProjectSnippet - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::ProjectSnippet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/RepoCommit.html b/doc/app/Gitlab/Entities/RepoCommit.html
deleted file mode 100644
index 04c118a3..00000000
--- a/doc/app/Gitlab/Entities/RepoCommit.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::RepoCommit - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::RepoCommit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/RepoObject.html b/doc/app/Gitlab/Entities/RepoObject.html
deleted file mode 100644
index 27f928c1..00000000
--- a/doc/app/Gitlab/Entities/RepoObject.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::RepoObject - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::RepoObject
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/SSHKey.html b/doc/app/Gitlab/Entities/SSHKey.html
deleted file mode 100644
index 43ed0f01..00000000
--- a/doc/app/Gitlab/Entities/SSHKey.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::SSHKey - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::SSHKey
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/User.html b/doc/app/Gitlab/Entities/User.html
deleted file mode 100644
index fb978194..00000000
--- a/doc/app/Gitlab/Entities/User.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::User - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::User
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/UserBasic.html b/doc/app/Gitlab/Entities/UserBasic.html
deleted file mode 100644
index dcb1e782..00000000
--- a/doc/app/Gitlab/Entities/UserBasic.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::UserBasic - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::UserBasic
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Entities/UserLogin.html b/doc/app/Gitlab/Entities/UserLogin.html
deleted file mode 100644
index fde77335..00000000
--- a/doc/app/Gitlab/Entities/UserLogin.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Entities::UserLogin - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Entities::UserLogin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/FileEditor.html b/doc/app/Gitlab/FileEditor.html
deleted file mode 100644
index 0916d63c..00000000
--- a/doc/app/Gitlab/FileEditor.html
+++ /dev/null
@@ -1,647 +0,0 @@
-
-
-
-
-
-
-class Gitlab::FileEditor - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::FileEditor
-
-
-
-
GitLab file editor
-
-
It gives you ability to make changes to files & commit this changes
-from GitLab UI.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
- ref [RW]
-
-
-
-
-
-
-
-
-
-
-
- user [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (user, project, ref)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (user , project , ref )
- self .user = user
- self .project = project
- self .ref = ref
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- update (path, content, commit_message, last_commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update (path , content , commit_message , last_commit )
- return false unless can_edit? (path , last_commit )
-
- Grit :: Git .with_timeout (10 .seconds ) do
- lock_file = Rails .root .join ("tmp" , "#{project.path}.lock" )
-
- File .open (lock_file , "w+" ) do | f |
- f .flock (File :: LOCK_EX )
-
- unless project .satellite .exists?
- raise "Satellite doesn't exist"
- end
-
- project .satellite .clear
-
- Dir .chdir (project .satellite .path ) do
- r = Grit :: Repo .new ('.' )
- r .git .sh "git reset --hard"
- r .git .sh "git fetch origin"
- r .git .sh "git config user.name \"#{user.name}\""
- r .git .sh "git config user.email \"#{user.email}\""
- r .git .sh "git checkout -b #{ref} origin/#{ref}"
- File .open (path , 'w' ){| f | f .write (content )}
- r .git .sh "git add ."
- r .git .sh "git commit -am '#{commit_message}'"
- output = r .git .sh "git push origin #{ref}"
-
- if output =~ %rreject/
- return false
- end
- end
- end
- end
- true
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- can_edit? (path, last_commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can_edit? (path , last_commit )
- current_last_commit = @project .last_commit_for (ref , path ).sha
- last_commit == current_last_commit
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/GitLogger.html b/doc/app/Gitlab/GitLogger.html
deleted file mode 100644
index c37bce98..00000000
--- a/doc/app/Gitlab/GitLogger.html
+++ /dev/null
@@ -1,523 +0,0 @@
-
-
-
-
-
-
-class Gitlab::GitLogger - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::GitLogger
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- file_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .file_name
- 'githost.log'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Gitolite.html b/doc/app/Gitlab/Gitolite.html
deleted file mode 100644
index 60ef3b13..00000000
--- a/doc/app/Gitlab/Gitolite.html
+++ /dev/null
@@ -1,716 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Gitolite - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Gitolite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- config ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def config
- Gitlab :: GitoliteConfig .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create_repository (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- enable_automerge ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def enable_automerge
- config .admin_all_repo!
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- remove_key (key_id, projects)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def remove_key key_id , projects
- config .apply do | config |
- config .rm_key (key_id )
- config .update_projects (projects )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- remove_repository (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def remove_repository project
- config .destroy_project! (project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- set_key (key_id, key_content, projects)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def set_key key_id , key_content , projects
- config .apply do | config |
- config .write_key (key_id , key_content )
- config .update_projects (projects )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_repository (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_repository project
- config .update_project! (project .path , project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- url_to_repo (path)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def url_to_repo path
- Gitlab .config .ssh_path + "#{path}.git"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Gitolite/AccessDenied.html b/doc/app/Gitlab/Gitolite/AccessDenied.html
deleted file mode 100644
index 64a3b17a..00000000
--- a/doc/app/Gitlab/Gitolite/AccessDenied.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Gitolite::AccessDenied - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Gitolite::AccessDenied
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/GitoliteConfig.html b/doc/app/Gitlab/GitoliteConfig.html
deleted file mode 100644
index 19671089..00000000
--- a/doc/app/Gitlab/GitoliteConfig.html
+++ /dev/null
@@ -1,994 +0,0 @@
-
-
-
-
-
-
-class Gitlab::GitoliteConfig - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::GitoliteConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- conf [R]
-
-
-
-
-
-
-
-
-
-
-
- config_tmp_dir [R]
-
-
-
-
-
-
-
-
-
-
-
- ga_repo [R]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- admin_all_repo ()
- click to toggle source
-
-
-
-
-
-
Enable access to all repos for gitolite admin. We use it for accept merge
-request feature
-
-
-
-
-
-def admin_all_repo
- owner_name = Gitlab .config .gitolite_admin_key
-
-
- repo_name = "@all"
- repo = if conf .has_repo? (repo_name )
- conf .get_repo (repo_name )
- else
- :: Gitolite :: Config :: Repo .new (repo_name )
- end
-
- repo .add_permission ("RW+" , "" , owner_name )
- conf .add_repo (repo , true )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- admin_all_repo! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def admin_all_repo!
- apply { | config | config .admin_all_repo }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- apply () { |self| ... }
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def apply
- Timeout :: timeout (30 ) do
- File .open (Rails .root .join ('tmp' , "gitlabhq-gitolite.lock" ), "w+" ) do | f |
- begin
-
-
- f .flock (File :: LOCK_EX )
-
-
-
- pull (config_tmp_dir )
-
-
-
- @conf = ga_repo .config
-
-
-
-
- yield (self )
-
-
-
-
- ga_repo .save
-
-
-
- push (config_tmp_dir )
- ensure
-
-
-
- FileUtils .rm_rf (File .join (config_tmp_dir , 'gitolite' ))
-
-
- FileUtils .rm_rf (config_tmp_dir )
-
-
-
- f .flock (File :: LOCK_UN )
- end
- end
- end
-rescue PullError => ex
- log ("Pull error -> " + ex .message )
- raise Gitolite :: AccessDenied , ex .message
-
-rescue PushError => ex
- log ("Push error -> " + " " + ex .message )
- raise Gitolite :: AccessDenied , ex .message
-
-rescue Exception => ex
- log (ex .class .name + " " + ex .message )
- raise Gitolite :: AccessDenied .new ("gitolite timeout" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy_project (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy_project (project )
- FileUtils .rm_rf (project .path_to_repo )
- conf .rm_repo (project .path )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy_project! (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy_project! (project )
- apply do | config |
- config .destroy_project (project )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- log (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def log message
- Gitlab :: GitLogger .error (message )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- rm_key (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def rm_key (user )
- key_path = File .join (config_tmp_dir , 'gitolite/keydir' , "#{user}.pub" )
- ga_key = :: Gitolite :: SSHKey .from_file (key_path )
- ga_repo .rm_key (ga_key )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_project (repo_name, project)
- click to toggle source
-
-
-
-
-
-
update or create
-
-
-
-
-
-def update_project (repo_name , project )
- repo = update_project_config (project , conf )
- conf .add_repo (repo , true )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_project! (repo_name, project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_project! (repo_name , project )
- apply do | config |
- config .update_project (repo_name , project )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_project_config (project, conf)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_project_config (project , conf )
- repo_name = project .path
-
- repo = if conf .has_repo? (repo_name )
- conf .get_repo (repo_name )
- else
- :: Gitolite :: Config :: Repo .new (repo_name )
- end
-
- name_readers = project .repository_readers
- name_writers = project .repository_writers
- name_masters = project .repository_masters
-
- pr_br = project .protected_branches .map (&:name ).join ("$ " )
-
- repo .clean_permissions
-
-
- unless name_writers .blank? || pr_br .blank?
- repo .add_permission ("-" , pr_br .strip + "$ " , name_writers )
- end
-
-
- repo .add_permission ("R" , "" , name_readers ) unless name_readers .blank?
-
-
- repo .add_permission ("RW+" , "" , name_writers ) unless name_writers .blank?
- repo .add_permission ("RW+" , "" , name_masters ) unless name_masters .blank?
-
-
- repo .set_git_config ("core.sharedRepository" , "0660" )
-
- repo
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_projects (projects)
- click to toggle source
-
-
-
-
-
-
Updates many projects and uses project.path as the repo path An order of
-magnitude faster than #update_project
-
-
-
-
-
-def update_projects (projects )
- projects .each do | project |
- repo = update_project_config (project , conf )
- conf .add_repo (repo , true )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- write_key (id, key)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def write_key (id , key )
- File .open (File .join (config_tmp_dir , 'gitolite/keydir' ,"#{id}.pub" ), 'w' ) do | f |
- f .write (key .gsub (%r\n/ ,'' ))
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/GitoliteConfig/PullError.html b/doc/app/Gitlab/GitoliteConfig/PullError.html
deleted file mode 100644
index 8e5a1510..00000000
--- a/doc/app/Gitlab/GitoliteConfig/PullError.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::GitoliteConfig::PullError - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::GitoliteConfig::PullError
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/GitoliteConfig/PushError.html b/doc/app/Gitlab/GitoliteConfig/PushError.html
deleted file mode 100644
index c1541f49..00000000
--- a/doc/app/Gitlab/GitoliteConfig/PushError.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class Gitlab::GitoliteConfig::PushError - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::GitoliteConfig::PushError
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/GraphCommit.html b/doc/app/Gitlab/GraphCommit.html
deleted file mode 100644
index b8ffa6f4..00000000
--- a/doc/app/Gitlab/GraphCommit.html
+++ /dev/null
@@ -1,967 +0,0 @@
-
-
-
-
-
-
-class Gitlab::GraphCommit - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::GraphCommit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- refs [RW]
-
-
-
-
-
-
-
-
-
-
-
- space [RW]
-
-
-
-
-
-
-
-
-
-
-
- time [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_free_space (time_range)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .find_free_space (time_range )
- reserved = []
- for day in time_range
- reserved += @_reserved [day ]
- end
- space = 1
- while reserved .include? space do
- space += 1
- end
- space
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index_commits (commits)
- click to toggle source
-
-
-
-
-
-
Method is adding time and space on the list of commits. As well as returns
-date list corelated with time set on commits.
-
-
@param [Array<GraphCommit>] comits to index
-
-
@return [Array<TimeDate>] list of commit dates corelated with time on
-commits
-
-
-
-
-
-def self .index_commits (commits )
- days , heads = [], []
- map = {}
-
- commits .reverse .each_with_index do | c ,i |
- c .time = i
- days [i ] = c .committed_date
- map [c .id ] = c
- heads += c .refs unless c .refs .nil?
- end
-
- heads .select! {| h | h .is_a? Grit :: Head or h .is_a? Grit :: Remote }
-
- heads .sort! do | a ,b |
- if a .name == "master"
- -1
- elsif b .name == "master"
- 1
- else
- b .commit .committed_date <=> a .commit .committed_date
- end
- end
-
- @_reserved = {}
- days .each_index do | i |
- @_reserved [i ] = []
- end
-
- heads .each do | h |
- if map .include? h .commit .id then
- place_chain (map [h .commit .id ], map )
- end
- end
- days
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mark_reserved (time_range, space)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .mark_reserved (time_range , space )
- for day in time_range
- @_reserved [day ].push (space )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (commit )
- @_commit = commit
- @time = -1
- @space = 0
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- place_chain (commit, map, parent_time = nil)
- click to toggle source
-
-
-
-
-
-
Add space mark on commit and its parents
-
-
@param [GraphCommit] the commit object. @param
-[Hash<String,GraphCommit>] map of commits
-
-
-
-
-
-def self .place_chain (commit , map , parent_time = nil )
- leaves = take_left_leaves (commit , map )
- if leaves .empty? then
- return
- end
- space = find_free_space (leaves .last .time .. leaves .first .time )
- leaves .each {| l | l .space = space }
-
- min_time = leaves .last .time
- parents = leaves .last .parents .collect
- parents .each do | p |
- if map .include? p .id then
- parent = map [p .id ]
- if parent .time < min_time then
- min_time = parent .time
- end
- end
- end
- if parent_time .nil? then
- max_time = leaves .first .time
- else
- max_time = parent_time - 1
- end
- mark_reserved (min_time .. max_time , space )
-
- leaves .each do | l |
- parents = l .parents .collect
- .select {| p | map .include? p .id and map [p .id ].space == 0 }
- for p in parents
- place_chain (map [p .id ], map , l .time )
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- take_left_leaves (commit, map)
- click to toggle source
-
-
-
-
-
-
Takes most left subtree branch of commits which don’t have space mark yet.
-
-
@param [GraphCommit] the commit object. @param
-[Hash<String,GraphCommit>] map of commits
-
-
@return [Array<GraphCommit>] list of branch commits
-
-
-
-
-
-def self .take_left_leaves (commit , map )
- leaves = []
- leaves .push (commit ) if commit .space == 0
- while true
- parent = commit .parents .collect
- .select {| p | map .include? p .id and map [p .id ].space == 0 }
- if parent .count == 0 then
- return leaves
- else
- commit = map [parent .first .id ]
- leaves .push (commit )
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_graph (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .to_graph (project )
- @repo = project .repo
- commits = Grit :: Commit .find_all (@repo , nil , {max_count : 650 })
-
- ref_cache = {}
-
- commits .map! {| c | GraphCommit .new (Commit .new (c ))}
- commits .each { | commit | commit .add_refs (ref_cache , @repo ) }
-
- days = GraphCommit .index_commits (commits )
- @days_json = days .compact .collect {| d | [d .day , d .strftime ("%b" )] }.to_json
- @commits_json = commits .map (&:to_graph_hash ).to_json
-
- return @days_json , @commits_json
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_refs (ref_cache, repo)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def add_refs (ref_cache , repo )
- if ref_cache .empty?
- repo .refs .each do | ref |
- ref_cache [ref .commit .id ] ||= []
- ref_cache [ref .commit .id ] << ref
- end
- end
- @refs = ref_cache [@_commit .id ] if ref_cache .include? (@_commit .id )
- @refs ||= []
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- method_missing (m, *args, &block)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def method_missing (m , *args , &block )
- @_commit .send (m , *args , &block )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_graph_hash ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_graph_hash
- h = {}
- h [:parents ] = self .parents .collect do | p |
- [p .id ,0 ,0 ]
- end
- h [:author ] = Gitlab :: Encode .utf8 (author .name )
- h [:time ] = time
- h [:space ] = space
- h [:refs ] = refs .collect {| r | r .name }.join (" " ) unless refs .nil?
- h [:id ] = sha
- h [:date ] = date
- h [:message ] = escape_once (Gitlab :: Encode .utf8 (message ))
- h [:login ] = author .email
- h
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/InlineDiff.html b/doc/app/Gitlab/InlineDiff.html
deleted file mode 100644
index 91eeae9c..00000000
--- a/doc/app/Gitlab/InlineDiff.html
+++ /dev/null
@@ -1,611 +0,0 @@
-
-
-
-
-
-
-class Gitlab::InlineDiff - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::InlineDiff
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FINISH
-
-
-
-
- START
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- _indexes_of_changed_lines (diff_arr)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def _indexes_of_changed_lines diff_arr
- chain_of_first_symbols = ""
- diff_arr .each_with_index do | line , i |
- chain_of_first_symbols += line [0 ]
- end
- chain_of_first_symbols .gsub! (%r[^\-\+]/ , "#" )
-
- offset = 0
- indexes = []
- while index = chain_of_first_symbols .index ("#-+#" , offset )
- indexes << index
- offset = index + 1
- end
- indexes
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- processing (diff_arr)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def processing diff_arr
- indexes = _indexes_of_changed_lines diff_arr
-
- indexes .each do | index |
- first_line = diff_arr [index + 1 ]
- second_line = diff_arr [index + 2 ]
- max_length = [first_line .size , second_line .size ].max
-
- first_the_same_symbols = 0
- (0 .. max_length + 1 ).each do | i |
- first_the_same_symbols = i - 1
- if first_line [i ] != second_line [i ] && i > 0
- break
- end
- end
- first_token = first_line [0 .. first_the_same_symbols ][1 .. -1 ]
- diff_arr [index + 1 ].sub! (first_token , first_token + START )
- diff_arr [index + 2 ].sub! (first_token , first_token + START )
- last_the_same_symbols = 0
- (1 .. max_length + 1 ).each do | i |
- last_the_same_symbols = - i
- shortest_line = second_line .size > first_line .size ? first_line : second_line
- if ( first_line [- i ] != second_line [- i ] ) || "#{first_token}#{START}" .size == shortest_line [1 .. - i ].size
- break
- end
- end
- last_the_same_symbols += 1
- last_token = first_line [last_the_same_symbols .. -1 ]
- diff_arr [index + 1 ].sub! (%r#{Regexp.escape(last_token)}$/ , FINISH + last_token )
- diff_arr [index + 2 ].sub! (%r#{Regexp.escape(last_token)}$/ , FINISH + last_token )
- end
- diff_arr
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- replace_markers (line)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def replace_markers line
- line .gsub! (START , "<span class='idiff'>" )
- line .gsub! (FINISH , "</span>" )
- line
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Issues.html b/doc/app/Gitlab/Issues.html
deleted file mode 100644
index eda99ed1..00000000
--- a/doc/app/Gitlab/Issues.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Issues - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Issues
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Logger.html b/doc/app/Gitlab/Logger.html
deleted file mode 100644
index 8cc6cdea..00000000
--- a/doc/app/Gitlab/Logger.html
+++ /dev/null
@@ -1,583 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Logger - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Logger
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- build ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .build
- new (Rails .root .join ("log" , file_name ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- error (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .error (message )
- build .error (message )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- info (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .info (message )
- build .info (message )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- read_latest ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .read_latest
- path = Rails .root .join ("log" , file_name )
- self .build unless File .exist? (path )
- logs = File .read (path ).split ("\n" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Markdown.html b/doc/app/Gitlab/Markdown.html
deleted file mode 100644
index 12691455..00000000
--- a/doc/app/Gitlab/Markdown.html
+++ /dev/null
@@ -1,580 +0,0 @@
-
-
-
-
-
-
-module Gitlab::Markdown - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Gitlab::Markdown
-
-
-
-
Custom parser for GitLab-flavored Markdown
-
-
It replaces references in the text with links to the appropriate items in
-GitLab.
-
-
Supported reference formats are:
-
-
* @foo for team members
-* #123 for issues
-* !123 for merge requests
-* $123 for snippets
-* 123456 for commits
-
-
It also parses Emoji codes to insert images. See www.emoji-cheat-sheet.com/ for
-a list of the supported icons.
-
-
Examples
-
-
>> gfm ("Hey @david, can you fix this?" )
-=> "Hey <a href=" / gitlab / team_members / 1 ">@david</a>, can you fix this?"
-
->> gfm ("Commit 35d5f7c closes #1234" )
-=> "Commit <a href=" / gitlab / commits / 35 d5f7c ">35d5f7c</a> closes <a href=" / gitlab / issues / 1234 ">#1234</a>"
-
->> gfm (":trollface:" )
-=> "<img alt=\":trollface:\" class=\"emoji\" src=\"/images/trollface.png" title =\":trollface:\" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- EMOJI_PATTERN
-
-
-
-
- REFERENCE_PATTERN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- html_options [R]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- gfm (text, html_options = {})
- click to toggle source
-
-
-
-
-
-
Public: Parse the provided text with GitLab-Flavored Markdown
-
-
text - the source text #html_options - extra
-options for the reference links as given to link_to
-
-
Note: reference links will only be generated if @project is set
-
-
-
-
-
-def gfm (text , html_options = {})
- return text if text .nil?
-
-
-
-
- text = text .dup .to_str
-
- @html_options = html_options
-
-
-
- extractions = {}
- text .gsub! (%r{<pre>.*?</pre>|<code>.*?</code>} ) do | match |
- md5 = Digest :: MD5 .hexdigest (match )
- extractions [md5 ] = match
- "{gfm-extraction-#{md5}}"
- end
-
-
-
- text = parse (text )
-
-
- text .gsub! (%r\{gfm-extraction-(\h{32})\}/ ) do
- extractions [$1 ]
- end
-
- sanitize text .html_safe , attributes : ActionView :: Base .sanitized_allowed_attributes + %w(id class)
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Merge.html b/doc/app/Gitlab/Merge.html
deleted file mode 100644
index 99a66cd5..00000000
--- a/doc/app/Gitlab/Merge.html
+++ /dev/null
@@ -1,628 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Merge - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Merge
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_request [RW]
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
- user [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (merge_request, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (merge_request , user )
- @merge_request = merge_request
- @project = merge_request .project
- @user = user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- can_be_merged? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can_be_merged?
- in_locked_and_timed_satellite do | merge_repo |
- merge_in_satellite! (merge_repo )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge! ()
- click to toggle source
-
-
-
-
-
-
Merges the source branch into the target branch in the satellite and pushes
-it back to Gitolite . It also removes the source
-branch if requested in the merge request.
-
-
Returns false if the merge produced conflicts Returns false if pushing from
-the satallite to Gitolite failed or was
-rejected Returns true otherwise
-
-
-
-
-
-def merge!
- in_locked_and_timed_satellite do | merge_repo |
- if merge_in_satellite! (merge_repo )
-
-
- merge_repo .git .push ({raise : true }, :origin , merge_request .target_branch )
-
-
- if merge_request .should_remove_source_branch && ! project .root_ref? (merge_request .source_branch )
-
- merge_repo .git .push ({raise : true }, :origin , ":#{merge_request.source_branch}" )
- end
-
-
- true
- end
- end
-rescue Grit :: Git :: CommandFailed
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Milestones.html b/doc/app/Gitlab/Milestones.html
deleted file mode 100644
index aac605b2..00000000
--- a/doc/app/Gitlab/Milestones.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Milestones - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Milestones
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Projects.html b/doc/app/Gitlab/Projects.html
deleted file mode 100644
index a44cba3c..00000000
--- a/doc/app/Gitlab/Projects.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Projects - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Projects
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Satellite.html b/doc/app/Gitlab/Satellite.html
deleted file mode 100644
index 4615d1c6..00000000
--- a/doc/app/Gitlab/Satellite.html
+++ /dev/null
@@ -1,664 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Satellite - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Satellite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PARKING_BRANCH
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize project
- self .project = project
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- clear ()
- click to toggle source
-
-
-
-
-
-
will be deleted all branches except PARKING_BRANCH
-
-
-
-
-
-def clear
- Dir .chdir (path ) do
- heads = Grit :: Repo .new ("." ).heads .map {| head | head .name }
- if heads .include? PARKING_BRANCH
- %xgit checkout #{PARKING_BRANCH}`
- else
- %xgit checkout -b #{PARKING_BRANCH}`
- end
- heads .delete (PARKING_BRANCH )
- heads .each do | head |
- %xgit branch -D #{head}`
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- %xgit clone #{project.url_to_repo} #{path}`
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- exists? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def exists?
- File .exists? path
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- path ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def path
- Rails .root .join ("tmp" , "repo_satellites" , project .path )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Session.html b/doc/app/Gitlab/Session.html
deleted file mode 100644
index 12f3433e..00000000
--- a/doc/app/Gitlab/Session.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Session - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Session
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Theme.html b/doc/app/Gitlab/Theme.html
deleted file mode 100644
index 00b3e5f6..00000000
--- a/doc/app/Gitlab/Theme.html
+++ /dev/null
@@ -1,493 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Theme - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Theme
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- css_class_by_id (id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .css_class_by_id (id )
- themes = {
- 1 => "ui_basic" ,
- 2 => "ui_mars" ,
- 3 => "ui_modern"
- }
-
- id ||= 1
-
- return themes [id ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Gitlab/Users.html b/doc/app/Gitlab/Users.html
deleted file mode 100644
index c9712874..00000000
--- a/doc/app/Gitlab/Users.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
-
-class Gitlab::Users - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Gitlab::Users
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/GitlabMarkdownHelper.html b/doc/app/GitlabMarkdownHelper.html
deleted file mode 100644
index 6bf172ac..00000000
--- a/doc/app/GitlabMarkdownHelper.html
+++ /dev/null
@@ -1,559 +0,0 @@
-
-
-
-
-
-
-module GitlabMarkdownHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module GitlabMarkdownHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_gfm (body, url, html_options = {})
- click to toggle source
-
-
-
-
-
-
Use this in places where you would normally use link_to(gfm(…), …).
-
-
It solves a problem occurring with nested links (i.e. “<a>outer text
-<a>gfm ref</a> more outer text</a>”). This will not be
-interpreted as intended. Browsers will parse something like “<a>outer
-text </a><a>gfm ref</a> more outer text” (notice the last
-part is not linked any more). #link_to_gfm
-corrects that. It wraps all parts to explicitly produce the correct linking
-behavior (i.e. “<a>outer text </a><a>gfm
-ref</a><a> more outer text</a>”).
-
-
-
-
-
-def link_to_gfm (body , url , html_options = {})
- return "" if body .blank?
-
- gfm_body = gfm (escape_once (body ), html_options )
-
- gfm_body .gsub! (%r{<a.*?>.*?</a>} ) do | match |
- "</a>#{match}#{link_to("", url, html_options)[0..-5]}"
- end
-
- link_to (gfm_body .html_safe , url , html_options )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- markdown (text)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def markdown (text )
- unless @markdown
- gitlab_renderer = Redcarpet :: Render :: GitlabHTML .new (self ,
-
- filter_html : true ,
- with_toc_data : true ,
- hard_wrap : true )
- @markdown = Redcarpet :: Markdown .new (gitlab_renderer ,
-
- no_intra_emphasis : true ,
- tables : true ,
- fenced_code_blocks : true ,
- autolink : true ,
- strikethrough : true ,
- lax_html_blocks : true ,
- space_after_headers : true ,
- superscript : true )
- end
-
- @markdown .render (text ).html_safe
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Grack.html b/doc/app/Grack.html
deleted file mode 100644
index e3c5bbd4..00000000
--- a/doc/app/Grack.html
+++ /dev/null
@@ -1,433 +0,0 @@
-
-
-
-
-
-
-module Grack - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Grack
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Grack/Auth.html b/doc/app/Grack/Auth.html
deleted file mode 100644
index 5da483f7..00000000
--- a/doc/app/Grack/Auth.html
+++ /dev/null
@@ -1,734 +0,0 @@
-
-
-
-
-
-
-class Grack::Auth - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Grack::Auth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
- user [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- can? (object, action, subject)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can? (object , action , subject )
- abilities .allowed? (object , action , subject )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- current_ref ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def current_ref
- if @env ["HTTP_CONTENT_ENCODING" ] =~ %rgzip/
- input = Zlib :: GzipReader .new (@request .body ).read
- else
- input = @request .body .read
- end
-
- @request .body .rewind
- %rrefs\/heads\/([\w-]+)/ .match (input ).to_a .first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- valid? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def valid?
-
- email , password = @auth .credentials
- self .user = User .find_by_email (email )
- return false unless user .try (:valid_password? , password )
-
-
- ENV ['GL_USER' ] = email
-
- ENV ['GL_BYPASS_UPDATE_HOOK' ] = "true"
-
-
- @env ['PATH_INFO' ] = @request .path
- @env ['SCRIPT_NAME' ] = ""
-
-
- if m = %r^\/([\w-]+).git/ .match (@request .path_info ).to_a
- self .project = Project .find_by_path (m .last )
- return false unless project
- end
-
-
- if @request .get?
- validate_get_request
- elsif @request .post?
- validate_post_request
- else
- false
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- validate_get_request ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def validate_get_request
- true
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- validate_post_request ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def validate_post_request
- if @request .path_info .end_with? ('git-upload-pack' )
- can? (user , :push_code , project )
- elsif @request .path_info .end_with? ('git-receive-pack' )
- action = if project .protected_branch? (current_ref )
- :push_code_to_protected_branches
- else
- :push_code
- end
-
- can? (user , action , project )
- else
- false
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- abilities ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def abilities
- @abilities ||= begin
- abilities = Six .new
- abilities << Ability
- abilities
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Group.html b/doc/app/Group.html
deleted file mode 100644
index a23e1da6..00000000
--- a/doc/app/Group.html
+++ /dev/null
@@ -1,555 +0,0 @@
-
-
-
-
-
-
-class Group - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Group
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- search (query)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .search query
- where ("name LIKE :query OR code LIKE :query" , query : "%#{query}%" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_param ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_param
- code
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- users ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def users
- User .joins (:users_projects ).where (users_projects : {project_id : project_ids }).uniq
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/GroupsController.html b/doc/app/GroupsController.html
deleted file mode 100644
index 72e1022c..00000000
--- a/doc/app/GroupsController.html
+++ /dev/null
@@ -1,735 +0,0 @@
-
-
-
-
-
-
-class GroupsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class GroupsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues ()
- click to toggle source
-
-
-
-
-
-
Get only assigned issues
-
-
-
-
-
-def issues
- @user = current_user
- @issues = current_user .assigned_issues .opened
- @issues = @issues .of_group (@group ).recent .page (params [:page ]).per (20 )
- @issues = @issues .includes (:author , :project )
-
- respond_to do | format |
- format .html
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_requests ()
- click to toggle source
-
-
-
-
-
-
Get authored or assigned open merge requests
-
-
-
-
-
-def merge_requests
- @merge_requests = current_user .cared_merge_requests
- @merge_requests = @merge_requests .of_group (@group ).recent .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- people ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def people
- @users = group .users .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- search ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search
- result = SearchContext .new (project_ids , params ).execute
-
- @projects = result [:projects ]
- @merge_requests = result [:merge_requests ]
- @issues = result [:issues ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @events = Event .in_projects (project_ids ).limit (20 ).offset (params [:offset ] || 0 )
- @last_push = current_user .recent_push
-
- respond_to do | format |
- format .html
- format .js
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- group ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def group
- @group ||= Group .find_by_code (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_ids ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_ids
- projects .map (&:id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- projects ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def projects
- @projects ||= current_user .projects_with_events .where (group_id : @group .id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/HelpController.html b/doc/app/HelpController.html
deleted file mode 100644
index afbbeb0b..00000000
--- a/doc/app/HelpController.html
+++ /dev/null
@@ -1,484 +0,0 @@
-
-
-
-
-
-
-class HelpController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class HelpController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/HooksController.html b/doc/app/HooksController.html
deleted file mode 100644
index 70fd89c3..00000000
--- a/doc/app/HooksController.html
+++ /dev/null
@@ -1,595 +0,0 @@
-
-
-
-
-
-
-class HooksController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class HooksController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @hook = @project .hooks .new (params [:hook ])
- @hook .save
-
- if @hook .valid?
- redirect_to project_hooks_path (@project )
- else
- @hooks = @project .hooks .all
- render :index
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @hook = @project .hooks .find (params [:id ])
- @hook .destroy
-
- redirect_to project_hooks_path (@project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @hooks = @project .hooks .all
- @hook = ProjectHook .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- test ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def test
- TestHookContext .new (project , current_user , params ).execute
-
- redirect_to :back
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Issue.html b/doc/app/Issue.html
deleted file mode 100644
index e8a7881c..00000000
--- a/doc/app/Issue.html
+++ /dev/null
@@ -1,501 +0,0 @@
-
-
-
-
-
-
-class Issue - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Issue
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- open_for (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .open_for (user )
- opened .assigned (user )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssueCommonality.html b/doc/app/IssueCommonality.html
deleted file mode 100644
index 336580d8..00000000
--- a/doc/app/IssueCommonality.html
+++ /dev/null
@@ -1,641 +0,0 @@
-
-
-
-
-
-
-module IssueCommonality - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module IssueCommonality
-
-
-
-
Contains common functionality shared between Issues and MergeRequests
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_assigned? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_assigned?
- ! ! assignee_id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_being_closed? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_being_closed?
- closed_changed? && closed
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_being_reassigned? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_being_reassigned?
- assignee_id_changed?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_being_reopened? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_being_reopened?
- closed_changed? && ! closed
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new?
- today? && created_at == updated_at
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- today? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def today?
- Date .today == created_at .to_date
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssueCommonality/ClassMethods.html b/doc/app/IssueCommonality/ClassMethods.html
deleted file mode 100644
index d4ab179d..00000000
--- a/doc/app/IssueCommonality/ClassMethods.html
+++ /dev/null
@@ -1,479 +0,0 @@
-
-
-
-
-
-
-module IssueCommonality::ClassMethods - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module IssueCommonality::ClassMethods
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- search (query)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search (query )
- where ("title like :query" , query : "%#{query}%" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssueObserver.html b/doc/app/IssueObserver.html
deleted file mode 100644
index 7f16a865..00000000
--- a/doc/app/IssueObserver.html
+++ /dev/null
@@ -1,571 +0,0 @@
-
-
-
-
-
-
-class IssueObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class IssueObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (issue )
- if issue .assignee && issue .assignee != current_user
- Notify .new_issue_email (issue .id ).deliver
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_update (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_update (issue )
- send_reassigned_email (issue ) if issue .is_being_reassigned?
-
- status = nil
- status = 'closed' if issue .is_being_closed?
- status = 'reopened' if issue .is_being_reopened?
- if status
- Note .create_status_change_note (issue , current_user , status )
- [issue .author , issue .assignee ].compact .each do | recipient |
- Notify .issue_status_changed_email (recipient .id , issue .id , status , current_user )
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- send_reassigned_email (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def send_reassigned_email (issue )
- recipient_ids = [issue .assignee_id , issue .assignee_id_was ].keep_if {| id | id && id != current_user .id }
-
- recipient_ids .each do | recipient_id |
- Notify .reassigned_issue_email (recipient_id , issue .id , issue .assignee_id_was ).deliver
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssuesBulkUpdateContext.html b/doc/app/IssuesBulkUpdateContext.html
deleted file mode 100644
index 1d87a757..00000000
--- a/doc/app/IssuesBulkUpdateContext.html
+++ /dev/null
@@ -1,503 +0,0 @@
-
-
-
-
-
-
-class IssuesBulkUpdateContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class IssuesBulkUpdateContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- update_data = params [:update ]
-
- issues_ids = update_data [:issues_ids ].split ("," )
- milestone_id = update_data [:milestone_id ]
- assignee_id = update_data [:assignee_id ]
- status = update_data [:status ]
-
- opts = {}
- opts [:milestone_id ] = milestone_id if milestone_id .present?
- opts [:assignee_id ] = assignee_id if assignee_id .present?
- opts [:closed ] = (status == "closed" ) if status .present?
-
- issues = Issue .where (id : issues_ids ).all
- issues = issues .select { | issue | can? (current_user , :modify_issue , issue ) }
- issues .each { | issue | issue .update_attributes (opts ) }
- {
- count : issues .count ,
- success : ! issues .count .zero?
- }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssuesController.html b/doc/app/IssuesController.html
deleted file mode 100644
index 6b3edbb6..00000000
--- a/doc/app/IssuesController.html
+++ /dev/null
@@ -1,996 +0,0 @@
-
-
-
-
-
-
-class IssuesController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class IssuesController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- bulk_update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def bulk_update
- result = IssuesBulkUpdateContext .new (project , current_user , params ).execute
- redirect_to :back , notice : "#{result[:count]} issues updated"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @issue = @project .issues .new (params [:issue ])
- @issue .author = current_user
- @issue .save
-
- respond_to do | format |
- format .html do
- if @issue .valid?
- redirect_to project_issue_path (@project , @issue )
- else
- render :new
- end
- end
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @issue .destroy
-
- respond_to do | format |
- format .html { redirect_to project_issues_path }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- respond_with (@issue )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @issues = issues_filtered
- @issues = @issues .page (params [:page ]).per (20 )
-
- respond_to do | format |
- format .html
- format .js
- format .atom { render layout : false }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @issue = @project .issues .new (params [:issue ])
- respond_with (@issue )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- search ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search
- terms = params ['terms' ]
-
- @issues = issues_filtered
- @issues = @issues .where ("title LIKE ?" , "%#{terms}%" ) unless terms .blank?
- @issues = @issues .page (params [:page ]).per (100 )
-
- render partial : 'issues'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @note = @project .notes .new (noteable : @issue )
-
- respond_to do | format |
- format .html
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- sort ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def sort
- return render_404 unless can? (current_user , :admin_issue , @project )
-
- @issues = @project .issues .where (id : params ['issue' ])
- @issues .each do | issue |
- issue .position = params ['issue' ].index (issue .id .to_s ) + 1
- issue .save
- end
-
- render nothing : true
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @issue .update_attributes (params [:issue ].merge (author_id_of_changes : current_user .id ))
-
- respond_to do | format |
- format .js
- format .html do
- if @issue .valid?
- redirect_to [@project , @issue ]
- else
- render :edit
- end
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_admin_issue! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_admin_issue!
- return render_404 unless can? (current_user , :admin_issue , @issue )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_modify_issue! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_modify_issue!
- return render_404 unless can? (current_user , :modify_issue , @issue )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issue
- @issue ||= @project .issues .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues_filtered ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issues_filtered
- @issues = IssuesListContext .new (project , current_user , params ).execute
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- module_enabled ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def module_enabled
- return render_404 unless @project .issues_enabled
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssuesHelper.html b/doc/app/IssuesHelper.html
deleted file mode 100644
index d58a5f7f..00000000
--- a/doc/app/IssuesHelper.html
+++ /dev/null
@@ -1,698 +0,0 @@
-
-
-
-
-
-
-module IssuesHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module IssuesHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue_css_classes (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issue_css_classes issue
- classes = "issue"
- classes << " closed" if issue .closed
- classes << " today" if issue .today?
- classes
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues_filter ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issues_filter
- {
- all : "all" ,
- closed : "closed" ,
- to_me : "assigned-to-me" ,
- open : "open"
- }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_issue_assignee (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_issue_assignee (issue )
- project = issue .project
-
- tm = project .team_member_by_id (issue .assignee_id )
- if tm
- link_to issue .assignee_name , project_team_member_path (project , tm ), class : "author_link"
- else
- issue .assignee_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_issue_author (issue)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_issue_author (issue )
- project = issue .project
-
- tm = project .team_member_by_id (issue .author_id )
- if tm
- link_to issue .author_name , project_team_member_path (project , tm ), class : "author_link"
- else
- issue .author_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_issues_filter_path (project, params = {})
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_issues_filter_path project , params = {}
- params [:f ] ||= cookies ['issue_filter' ]
- project_issues_path project , params
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unassigned_filter ()
- click to toggle source
-
-
-
-
-
-
Returns an OpenStruct object suitable for use by
-options_from_collection_for_select
to allow filtering issues
-by an unassigned User or Milestone
-
-
-
-
-
-def unassigned_filter
-
- OpenStruct .new (id : 0 , title : 'Unspecified' , name : 'Unassigned' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/IssuesListContext.html b/doc/app/IssuesListContext.html
deleted file mode 100644
index 01acec45..00000000
--- a/doc/app/IssuesListContext.html
+++ /dev/null
@@ -1,537 +0,0 @@
-
-
-
-
-
-
-class IssuesListContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class IssuesListContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- @issues = case params [:f ]
- when issues_filter [:all ] then @project .issues
- when issues_filter [:closed ] then @project .issues .closed
- when issues_filter [:to_me ] then @project .issues .opened .assigned (current_user )
- else @project .issues .opened
- end
-
- @issues = @issues .tagged_with (params [:label_name ]) if params [:label_name ].present?
- @issues = @issues .includes (:author , :project ).order ("updated_at" )
-
-
- if params [:assignee_id ].present?
- @issues = @issues .where (assignee_id : (params [:assignee_id ] == '0' ? nil : params [:assignee_id ]))
- end
-
-
- if params [:milestone_id ].present?
- @issues = @issues .where (milestone_id : (params [:milestone_id ] == '0' ? nil : params [:milestone_id ]))
- end
-
- @issues
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Key.html b/doc/app/Key.html
deleted file mode 100644
index afbcea93..00000000
--- a/doc/app/Key.html
+++ /dev/null
@@ -1,700 +0,0 @@
-
-
-
-
-
-
-class Key - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- fingerprintable_key ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def fingerprintable_key
- return true unless key
-
- file = Tempfile .new ('key_file' )
- begin
- file .puts key
- file .rewind
- fingerprint_output = %xssh-keygen -lf #{file.path} 2>&1`
- ensure
- file .close
- file .unlink
- end
- errors .add (:key , "can't be fingerprinted" ) if fingerprint_output .match ("failed" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_deploy_key ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_deploy_key
- true if project_id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_deploy? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_deploy?
- Key .where (identifier : identifier ).count == 0
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- projects ()
- click to toggle source
-
-
-
-
-
-
projects that has this key
-
-
-
-
-
-def projects
- if is_deploy_key
- [project ]
- else
- user .projects
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- set_identifier ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def set_identifier
- if is_deploy_key
- self .identifier = "deploy_#{Digest::MD5.hexdigest(key)}"
- else
- self .identifier = "#{user.identifier}_#{Time.now.to_i}"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- strip_white_space ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def strip_white_space
- self .key = self .key .strip unless self .key .blank?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unique_key ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unique_key
- query = Key .where (key : key )
- query = query .where ('(project_id IS NULL OR project_id = ?)' , project_id ) if project_id
- if (query .count > 0 )
- errors .add :key , 'already exist.'
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/KeyObserver.html b/doc/app/KeyObserver.html
deleted file mode 100644
index bdaf9f84..00000000
--- a/doc/app/KeyObserver.html
+++ /dev/null
@@ -1,530 +0,0 @@
-
-
-
-
-
-
-class KeyObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class KeyObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_destroy (key)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_destroy (key )
- return if key .is_deploy_key && ! key .last_deploy?
- git_host .remove_key (key .identifier , key .projects )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_save (key)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_save (key )
- git_host .set_key (key .identifier , key .key , key .projects )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/KeysController.html b/doc/app/KeysController.html
deleted file mode 100644
index 13fac402..00000000
--- a/doc/app/KeysController.html
+++ /dev/null
@@ -1,624 +0,0 @@
-
-
-
-
-
-
-class KeysController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class KeysController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @key = current_user .keys .new (params [:key ])
- @key .save
-
- respond_with (@key )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @key = current_user .keys .find (params [:id ])
- @key .destroy
-
- respond_to do | format |
- format .html { redirect_to keys_url }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @keys = current_user .keys .all
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @key = current_user .keys .new
-
- respond_with (@key )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @key = current_user .keys .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/LabelsController.html b/doc/app/LabelsController.html
deleted file mode 100644
index 7dece840..00000000
--- a/doc/app/LabelsController.html
+++ /dev/null
@@ -1,523 +0,0 @@
-
-
-
-
-
-
-class LabelsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class LabelsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @labels = @project .issues_labels .order ('count DESC' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- module_enabled ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def module_enabled
- return render_404 unless @project .issues_enabled
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MergeRequest.html b/doc/app/MergeRequest.html
deleted file mode 100644
index 7dbe6f4f..00000000
--- a/doc/app/MergeRequest.html
+++ /dev/null
@@ -1,1478 +0,0 @@
-
-
-
-
-
-
-class MergeRequest - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class MergeRequest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BROKEN_DIFF
-
-
-
-
- CANNOT_BE_MERGED
-
-
-
-
- CAN_BE_MERGED
-
-
-
-
- UNCHECKED
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- should_remove_source_branch [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_all_by_branch (branch_name)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .find_all_by_branch (branch_name )
- where ("source_branch LIKE :branch OR target_branch LIKE :branch" , branch : branch_name )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- automerge! (current_user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def automerge! (current_user )
- if Gitlab :: Merge .new (self , current_user ).merge! && self .unmerged_commits .empty?
- self .merge! (current_user .id )
- true
- end
-rescue
- self .mark_as_unmergable
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- broken_diffs? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def broken_diffs?
- diffs == [BROKEN_DIFF ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- can_be_merged? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def can_be_merged?
- state == CAN_BE_MERGED
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- check_if_can_be_merged ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def check_if_can_be_merged
- self .state = if Gitlab :: Merge .new (self , self .author ).can_be_merged?
- CAN_BE_MERGED
- else
- CANNOT_BE_MERGED
- end
- self .save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- closed_event ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def closed_event
- self .project .events .where (target_id : self .id , target_type : "MergeRequest" , action : Event :: Closed ).last
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits
- st_commits || []
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- diffs ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def diffs
- st_diffs || []
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- human_state ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def human_state
- states = {
- CAN_BE_MERGED => "can_be_merged" ,
- CANNOT_BE_MERGED => "cannot_be_merged" ,
- UNCHECKED => "unchecked"
- }
- states [self .state ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_commit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_commit
- commits .first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mark_as_merged! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def mark_as_merged!
- self .merged = true
- self .closed = true
- save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mark_as_unchecked ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def mark_as_unchecked
- self .state = UNCHECKED
- self .save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mark_as_unmergable ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def mark_as_unmergable
- self .state = CANNOT_BE_MERGED
- self .save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge! (user_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merge! (user_id )
- self .mark_as_merged!
- Event .create (
- project : self .project ,
- action : Event :: Merged ,
- target_id : self .id ,
- target_type : "MergeRequest" ,
- author_id : user_id
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_event ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merge_event
- self .project .events .where (target_id : self .id , target_type : "MergeRequest" , action : Event :: Merged ).last
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merged? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merged?
- merged && merge_event
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mr_and_commit_notes ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def mr_and_commit_notes
- commit_ids = commits .map (&:id )
- Note .where ("(noteable_type = 'MergeRequest' AND noteable_id = :mr_id) OR (noteable_type = 'Commit' AND noteable_id IN (:commit_ids))" , mr_id : id , commit_ids : commit_ids )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- open? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def open?
- ! closed
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- probably_merged? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def probably_merged?
- unmerged_commits .empty? &&
- commits .any? && open?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reload_code ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reload_code
- self .reloaded_commits
- self .reloaded_diffs
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reloaded_commits ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reloaded_commits
- if open? && unmerged_commits .any?
- self .st_commits = unmerged_commits
- save
- end
- commits
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reloaded_diffs ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reloaded_diffs
- if open? && unmerged_diffs .any?
- self .st_diffs = unmerged_diffs
- self .save
- end
-
-rescue Grit :: Git :: GitTimeout
- self .st_diffs = [BROKEN_DIFF ]
- self .save
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_raw ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_raw
- FileUtils .mkdir_p (Rails .root .join ("tmp" , "patches" ))
- patch_path = Rails .root .join ("tmp" , "patches" , "merge_request_#{self.id}.patch" )
-
- from = commits .last .id
- to = source_branch
-
- project .repo .git .run ('' , "format-patch" , " > #{patch_path.to_s}" , {}, ["#{from}..#{to}" , "--stdout" ])
-
- patch_path
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unchecked? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unchecked?
- state == UNCHECKED
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unmerged_commits ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unmerged_commits
- self .project .repo .
- commits_between (self .target_branch , self .source_branch ).
- map {| c | Commit .new (c )}.
- sort_by (&:created_at ).
- reverse
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- unmerged_diffs ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def unmerged_diffs
-
-
-
- common_commit = project .repo .git .native (:merge_base , {}, [target_branch , source_branch ]).strip
- diffs = project .repo .diff (common_commit , source_branch )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- valid_diffs? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def valid_diffs?
- ! broken_diffs?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- validate_branches ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def validate_branches
- if target_branch == source_branch
- errors .add :base , "You can not use same branch for source and target branches"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MergeRequestObserver.html b/doc/app/MergeRequestObserver.html
deleted file mode 100644
index f2d0dbd7..00000000
--- a/doc/app/MergeRequestObserver.html
+++ /dev/null
@@ -1,569 +0,0 @@
-
-
-
-
-
-
-class MergeRequestObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class MergeRequestObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (merge_request)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (merge_request )
- if merge_request .assignee && merge_request .assignee != current_user
- Notify .new_merge_request_email (merge_request .id ).deliver
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_update (merge_request)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_update (merge_request )
- send_reassigned_email (merge_request ) if merge_request .is_being_reassigned?
-
- status = nil
- status = 'closed' if merge_request .is_being_closed?
- status = 'reopened' if merge_request .is_being_reopened?
- if status
- Note .create_status_change_note (merge_request , current_user , status )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- send_reassigned_email (merge_request)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def send_reassigned_email (merge_request )
- recipients_ids = merge_request .assignee_id_was , merge_request .assignee_id
- recipients_ids .delete current_user .id
-
- recipients_ids .each do | recipient_id |
- Notify .reassigned_merge_request_email (recipient_id , merge_request .id , merge_request .assignee_id_was ).deliver
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MergeRequestsController.html b/doc/app/MergeRequestsController.html
deleted file mode 100644
index ef257c6c..00000000
--- a/doc/app/MergeRequestsController.html
+++ /dev/null
@@ -1,1114 +0,0 @@
-
-
-
-
-
-
-class MergeRequestsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class MergeRequestsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- automerge ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def automerge
- return access_denied! unless can? (current_user , :accept_mr , @project )
- if @merge_request .open? && @merge_request .can_be_merged?
- @merge_request .should_remove_source_branch = params [:should_remove_source_branch ]
- @merge_request .automerge! (current_user )
- @status = true
- else
- @status = false
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- automerge_check ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def automerge_check
- if @merge_request .unchecked?
- @merge_request .check_if_can_be_merged
- end
- render json : {state : @merge_request .human_state }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branch_from ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branch_from
- @commit = project .commit (params [:ref ])
- @commit = CommitDecorator .decorate (@commit )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branch_to ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branch_to
- @commit = project .commit (params [:ref ])
- @commit = CommitDecorator .decorate (@commit )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @merge_request = @project .merge_requests .new (params [:merge_request ])
- @merge_request .author = current_user
-
- if @merge_request .save
- @merge_request .reload_code
- redirect_to [@project , @merge_request ], notice : 'Merge request was successfully created.'
- else
- render action : "new"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @merge_request .destroy
-
- respond_to do | format |
- format .html { redirect_to project_merge_requests_url (@project ) }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- diffs ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def diffs
- @diffs = @merge_request .diffs
- @commit = @merge_request .last_commit
-
- @comments_allowed = true
- @line_notes = @merge_request .notes .where ("line_code is not null" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @merge_requests = MergeRequestsLoadContext .new (project , current_user , params ).execute
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @merge_request = @project .merge_requests .new (params [:merge_request ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- raw ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def raw
- send_file @merge_request .to_raw
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- respond_to do | format |
- format .html
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- if @merge_request .update_attributes (params [:merge_request ].merge (author_id_of_changes : current_user .id ))
- @merge_request .reload_code
- @merge_request .mark_as_unchecked
- redirect_to [@project , @merge_request ], notice : 'Merge request was successfully updated.'
- else
- render action : "edit"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_admin_merge_request! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_admin_merge_request!
- return render_404 unless can? (current_user , :admin_merge_request , @merge_request )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_modify_merge_request! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_modify_merge_request!
- return render_404 unless can? (current_user , :modify_merge_request , @merge_request )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- define_show_vars ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def define_show_vars
-
- @note = @project .notes .new (noteable : @merge_request )
-
-
-
- @commits = @merge_request .commits
- @commits = CommitDecorator .decorate (@commits )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- merge_request ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def merge_request
- @merge_request ||= @project .merge_requests .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- module_enabled ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def module_enabled
- return render_404 unless @project .merge_requests_enabled
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- validates_merge_request ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def validates_merge_request
-
- return git_not_found! unless @project .repo .heads .map (&:name ).include? (@merge_request .target_branch )
-
-
-
- return git_not_found! if ! @project .repo .heads .map (&:name ).include? (@merge_request .source_branch ) && @merge_request .commits .blank?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MergeRequestsHelper.html b/doc/app/MergeRequestsHelper.html
deleted file mode 100644
index fec9b0e0..00000000
--- a/doc/app/MergeRequestsHelper.html
+++ /dev/null
@@ -1,599 +0,0 @@
-
-
-
-
-
-
-module MergeRequestsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module MergeRequestsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_merge_request_assignee (merge_request)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_merge_request_assignee (merge_request )
- project = merge_request .project
-
- tm = project .team_member_by_id (merge_request .assignee_id )
- if tm
- link_to merge_request .assignee_name , project_team_member_path (project , tm ), class : "author_link"
- else
- merge_request .assignee_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_merge_request_author (merge_request)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_merge_request_author (merge_request )
- project = merge_request .project
-
- tm = project .team_member_by_id (merge_request .author_id )
- if tm
- link_to merge_request .author_name , project_team_member_path (project , tm ), class : "author_link"
- else
- merge_request .author_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mr_css_classes (mr)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def mr_css_classes mr
- classes = "merge_request"
- classes << " closed" if mr .closed
- classes << " merged" if mr .merged?
- classes
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_mr_path_from_push_event (event)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_mr_path_from_push_event (event )
- new_project_merge_request_path (
- event .project ,
- merge_request : {
- source_branch : event .branch_name ,
- target_branch : event .project .root_ref ,
- title : event .branch_name .titleize
- }
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MergeRequestsLoadContext.html b/doc/app/MergeRequestsLoadContext.html
deleted file mode 100644
index 5c1b8829..00000000
--- a/doc/app/MergeRequestsLoadContext.html
+++ /dev/null
@@ -1,496 +0,0 @@
-
-
-
-
-
-
-class MergeRequestsLoadContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class MergeRequestsLoadContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- type = params [:f ]
-
- merge_requests = project .merge_requests
-
- merge_requests = case type
- when 'all' then merge_requests
- when 'closed' then merge_requests .closed
- when 'assigned-to-me' then merge_requests .opened .assigned (current_user )
- else merge_requests .opened
- end .page (params [:page ]).per (20 )
-
- merge_requests .includes (:author , :project ).order ("closed, created_at desc" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Milestone.html b/doc/app/Milestone.html
deleted file mode 100644
index cc3bdc58..00000000
--- a/doc/app/Milestone.html
+++ /dev/null
@@ -1,589 +0,0 @@
-
-
-
-
-
-
-class Milestone - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Milestone
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- active ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .active
- where ("due_date > ? OR due_date IS NULL" , Date .today )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- expires_at ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def expires_at
- "expires at #{due_date.stamp("Aug 21, 2011")}" if due_date
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- participants ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def participants
- User .where (id : issues .pluck (:assignee_id ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- percent_complete ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def percent_complete
- ((self .issues .closed .count * 100 ) / self .issues .count ).abs
-rescue ZeroDivisionError
- 100
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/MilestonesController.html b/doc/app/MilestonesController.html
deleted file mode 100644
index e15d6fef..00000000
--- a/doc/app/MilestonesController.html
+++ /dev/null
@@ -1,816 +0,0 @@
-
-
-
-
-
-
-class MilestonesController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class MilestonesController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @milestone = @project .milestones .new (params [:milestone ])
-
- if @milestone .save
- redirect_to project_milestone_path (@project , @milestone )
- else
- render "new"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- return access_denied! unless can? (current_user , :admin_milestone , @milestone )
-
- @milestone .destroy
-
- respond_to do | format |
- format .html { redirect_to project_milestones_path }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- respond_with (@milestone )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @milestones = case params [:f ]
- when 'all' ; @project .milestones
- else @project .milestones .active
- end
-
- @milestones = @milestones .includes (:project ).order ("due_date" )
- @milestones = @milestones .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @milestone = @project .milestones .new
- respond_with (@milestone )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @issues = @milestone .issues
- @users = @milestone .participants
-
- respond_to do | format |
- format .html
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @milestone .update_attributes (params [:milestone ])
-
- respond_to do | format |
- format .js
- format .html do
- if @milestone .valid?
- redirect_to [@project , @milestone ]
- else
- render :edit
- end
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_admin_milestone! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_admin_milestone!
- return render_404 unless can? (current_user , :admin_milestone , @project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- milestone ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def milestone
- @milestone ||= @project .milestones .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- module_enabled ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def module_enabled
- return render_404 unless @project .issues_enabled
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Note.html b/doc/app/Note.html
deleted file mode 100644
index 24a474b0..00000000
--- a/doc/app/Note.html
+++ /dev/null
@@ -1,777 +0,0 @@
-
-
-
-
-
-
-class Note - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Note
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- notify [RW]
-
-
-
-
-
-
-
-
-
-
-
- notify_author [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create_status_change_note (noteable, author, status)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .create_status_change_note (noteable , author , status )
- create ({
- noteable : noteable ,
- project : noteable .project ,
- author : author ,
- note : "_Status changed to #{status}_"
- }, without_protection : true )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit_author ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit_author
- @commit_author ||=
- project .users .find_by_email (noteable .author_email ) ||
- project .users .find_by_name (noteable .author_name )
-rescue
- nil
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- downvote? ()
- click to toggle source
-
-
-
-
-
-
Returns true if this is a downvote note, otherwise false is returned
-
-
-
-
-
-def downvote?
- note .start_with? ('-1' ) || note .start_with? (':-1:' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- for_commit? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def for_commit?
- noteable_type == "Commit"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- for_diff_line? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def for_diff_line?
- line_code .present?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- noteable ()
- click to toggle source
-
-
-
-
-
-
override to return commits, which are not active record
-
-
-
-
-
-def noteable
- if for_commit?
- project .commit (noteable_id )
- else
- super
- end
-
-
-rescue
- nil
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- notify_only_author? (user)
- click to toggle source
-
-
-
-
-
-
Check if we can notify commit author with email about our comment
-
-
If commit author email exist in project and commit author is not passed
-user we can send email to him
-
-
params:
-
-
user - current user
-
-
return:
-
-
Boolean
-
-
-
-
-
-def notify_only_author? (user )
- for_commit? && commit_author &&
- commit_author .email != user .email
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- upvote? ()
- click to toggle source
-
-
-
-
-
-
Returns true if this is an upvote note, otherwise false is returned
-
-
-
-
-
-def upvote?
- note .start_with? ('+1' ) || note .start_with? (':+1:' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/NoteObserver.html b/doc/app/NoteObserver.html
deleted file mode 100644
index d0528833..00000000
--- a/doc/app/NoteObserver.html
+++ /dev/null
@@ -1,603 +0,0 @@
-
-
-
-
-
-
-class NoteObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class NoteObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (note)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (note )
- send_notify_mails (note )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- notify_team (note)
- click to toggle source
-
-
-
-
-
-
Notifies the whole team except the author of note
-
-
-
-
-
-def notify_team (note )
-
- noteable_type = note .noteable_type || "Wall"
- notify_method = "note_#{noteable_type.underscore}_email" .to_sym
-
- if Notify .respond_to? notify_method
- team_without_note_author (note ).map do | u |
- Notify .send (notify_method , u .id , note .id ).deliver
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- send_notify_mails (note)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def send_notify_mails (note )
- if note .notify
- notify_team (note )
- elsif note .notify_author
-
- Notify .note_commit_email (note .commit_author .id , note .id ).deliver
- else
-
- nil
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- team_without_note_author (note)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def team_without_note_author (note )
- note .project .users .reject { | u | u .id == note .author .id }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Notes.html b/doc/app/Notes.html
deleted file mode 100644
index d6bcc540..00000000
--- a/doc/app/Notes.html
+++ /dev/null
@@ -1,434 +0,0 @@
-
-
-
-
-
-
-module Notes - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Notes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Notes/CreateContext.html b/doc/app/Notes/CreateContext.html
deleted file mode 100644
index 6d4c8449..00000000
--- a/doc/app/Notes/CreateContext.html
+++ /dev/null
@@ -1,490 +0,0 @@
-
-
-
-
-
-
-class Notes::CreateContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Notes::CreateContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- note = project .notes .new (params [:note ])
- note .author = current_user
- note .notify = true if params [:notify ] == '1'
- note .notify_author = true if params [:notify_author ] == '1'
- note .save
- note
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Notes/LoadContext.html b/doc/app/Notes/LoadContext.html
deleted file mode 100644
index 273fc0f0..00000000
--- a/doc/app/Notes/LoadContext.html
+++ /dev/null
@@ -1,513 +0,0 @@
-
-
-
-
-
-
-class Notes::LoadContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Notes::LoadContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- target_type = params [:target_type ]
- target_id = params [:target_id ]
- after_id = params [:after_id ]
- before_id = params [:before_id ]
-
-
- @notes = case target_type
- when "commit"
- project .commit_notes (project .commit (target_id )).fresh .limit (20 )
- when "issue"
- project .issues .find (target_id ).notes .inc_author .fresh .limit (20 )
- when "merge_request"
- project .merge_requests .find (target_id ).mr_and_commit_notes .inc_author .fresh .limit (20 )
- when "snippet"
- project .snippets .find (target_id ).notes .fresh
- when "wall"
-
- project .common_notes .order ("created_at DESC, id DESC" ).limit (50 )
- when "wiki"
- project .wiki_notes .limit (20 )
- end
-
- @notes = if after_id
- @notes .where ("id > ?" , after_id )
- elsif before_id
- @notes .where ("id < ?" , before_id )
- else
- @notes
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/NotesController.html b/doc/app/NotesController.html
deleted file mode 100644
index 5623d4a2..00000000
--- a/doc/app/NotesController.html
+++ /dev/null
@@ -1,636 +0,0 @@
-
-
-
-
-
-
-class NotesController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class NotesController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @note = Notes :: CreateContext .new (project , current_user , params ).execute
-
- respond_to do | format |
- format .html {redirect_to :back }
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @note = @project .notes .find (params [:id ])
- return access_denied! unless can? (current_user , :admin_note , @note )
- @note .destroy
-
- respond_to do | format |
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- notes
- if params [:target_type ] == "merge_request"
- @mixed_targets = true
- @main_target_type = params [:target_type ].camelize
- end
-
- respond_with (@notes )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- preview ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def preview
- render text : view_context .markdown (params [:note ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- notes ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def notes
- @notes = Notes :: LoadContext .new (project , current_user , params ).execute
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/NotesHelper.html b/doc/app/NotesHelper.html
deleted file mode 100644
index c2940f8d..00000000
--- a/doc/app/NotesHelper.html
+++ /dev/null
@@ -1,581 +0,0 @@
-
-
-
-
-
-
-module NotesHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module NotesHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_commit_diff_line_note (note)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_commit_diff_line_note (note )
- commit = note .noteable
- diff_index , diff_old_line , diff_new_line = note .line_code .split ('_' )
-
- link_file = commit .diffs [diff_index .to_i ].new_path
- link_line = diff_new_line
-
- link_to "#{link_file}:L#{link_line}" , project_commit_path (@project , commit , anchor : note .line_code )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- loading_more_notes? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def loading_more_notes?
- params [:loading_more ].present?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- loading_new_notes? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def loading_new_notes?
- params [:loading_new ].present?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_for_main_target? (note)
- click to toggle source
-
-
-
-
-
-
Helps to distinguish e.g. commit notes in mr notes list
-
-
-
-
-
-def note_for_main_target? (note )
- ! @mixed_targets || @main_target_type == note .noteable_type
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Notify.html b/doc/app/Notify.html
deleted file mode 100644
index 933e1cbc..00000000
--- a/doc/app/Notify.html
+++ /dev/null
@@ -1,883 +0,0 @@
-
-
-
-
-
-
-class Notify - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Notify
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- issue_status_changed_email (recipient_id, issue_id, status, updated_by_user_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issue_status_changed_email (recipient_id , issue_id , status , updated_by_user_id )
- @issue = Issue .find issue_id
- @issue_status = status
- @updated_by = User .find updated_by_user_id
- mail (to : recipient (recipient_id ),
- subject : subject ("changed issue ##{@issue.id}" , @issue .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_issue_email (issue_id)
- click to toggle source
-
-
-
-
-
-
Issue
-
-
-
-
-
-def new_issue_email (issue_id )
- @issue = Issue .find (issue_id )
- @project = @issue .project
- mail (to : @issue .assignee_email , subject : subject ("new issue ##{@issue.id}" , @issue .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_merge_request_email (merge_request_id)
- click to toggle source
-
-
-
-
-
-
Merge Request
-
-
-
-
-
-def new_merge_request_email (merge_request_id )
- @merge_request = MergeRequest .find (merge_request_id )
- @project = @merge_request .project
- mail (to : @merge_request .assignee_email , subject : subject ("new merge request !#{@merge_request.id}" , @merge_request .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_user_email (user_id, password)
- click to toggle source
-
-
-
-
-
-
User
-
-
-
-
-
-def new_user_email (user_id , password )
- @user = User .find (user_id )
- @password = password
- mail (to : @user .email , subject : subject ("Account was created for you" ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_commit_email (recipient_id, note_id)
- click to toggle source
-
-
-
-
-
-
Note
-
-
-
-
-
-def note_commit_email (recipient_id , note_id )
- @note = Note .find (note_id )
- @commit = @note .noteable
- @commit = CommitDecorator .decorate (@commit )
- @project = @note .project
- mail (to : recipient (recipient_id ), subject : subject ("note for commit #{@commit.short_id}" , @commit .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_issue_email (recipient_id, note_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def note_issue_email (recipient_id , note_id )
- @note = Note .find (note_id )
- @issue = @note .noteable
- @project = @note .project
- mail (to : recipient (recipient_id ), subject : subject ("note for issue ##{@issue.id}" ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_merge_request_email (recipient_id, note_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def note_merge_request_email (recipient_id , note_id )
- @note = Note .find (note_id )
- @merge_request = @note .noteable
- @project = @note .project
- mail (to : recipient (recipient_id ), subject : subject ("note for merge request !#{@merge_request.id}" ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_wall_email (recipient_id, note_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def note_wall_email (recipient_id , note_id )
- @note = Note .find (note_id )
- @project = @note .project
- mail (to : recipient (recipient_id ), subject : subject )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- note_wiki_email (recipient_id, note_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def note_wiki_email (recipient_id , note_id )
- @note = Note .find (note_id )
- @wiki = @note .noteable
- @project = @note .project
- mail (to : recipient (recipient_id ), subject : subject ("note for wiki" ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_access_granted_email (user_project_id)
- click to toggle source
-
-
-
-
-
-
Project
-
-
-
-
-
-def project_access_granted_email (user_project_id )
- @users_project = UsersProject .find user_project_id
- @project = @users_project .project
- mail (to : @users_project .user .email ,
- subject : subject ("access to project was granted" ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reassigned_issue_email (recipient_id, issue_id, previous_assignee_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reassigned_issue_email (recipient_id , issue_id , previous_assignee_id )
- @issue = Issue .find (issue_id )
- @previous_assignee ||= User .find (previous_assignee_id )
- @project = @issue .project
- mail (to : recipient (recipient_id ), subject : subject ("changed issue ##{@issue.id}" , @issue .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reassigned_merge_request_email (recipient_id, merge_request_id, previous_assignee_id)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reassigned_merge_request_email (recipient_id , merge_request_id , previous_assignee_id )
- @merge_request = MergeRequest .find (merge_request_id )
- @previous_assignee ||= User .find (previous_assignee_id )
- @project = @merge_request .project
- mail (to : recipient (recipient_id ), subject : subject ("changed merge request !#{@merge_request.id}" , @merge_request .title ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/OmniauthCallbacksController.html b/doc/app/OmniauthCallbacksController.html
deleted file mode 100644
index d40a16a3..00000000
--- a/doc/app/OmniauthCallbacksController.html
+++ /dev/null
@@ -1,527 +0,0 @@
-
-
-
-
-
-
-class OmniauthCallbacksController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class OmniauthCallbacksController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- failure_message ()
- click to toggle source
-
-
-
-
-
-
Extend the standard message generation to accept our custom exception
-
-
-
-
-
-def failure_message
- exception = env ["omniauth.error" ]
- error = exception .error_reason if exception .respond_to? (:error_reason )
- error ||= exception .error if exception .respond_to? (:error )
- error ||= exception .message if exception .respond_to? (:message )
- error ||= env ["omniauth.error.type" ].to_s
- error .to_s .humanize if error
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ldap ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ldap
-
- @user = User .find_for_ldap_auth (request .env ["omniauth.auth" ], current_user )
- if @user .persisted?
- @user .remember_me = true
- end
- sign_in_and_redirect @user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/PostReceive.html b/doc/app/PostReceive.html
deleted file mode 100644
index 11468fd9..00000000
--- a/doc/app/PostReceive.html
+++ /dev/null
@@ -1,495 +0,0 @@
-
-
-
-
-
-
-class PostReceive - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class PostReceive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProfileController.html b/doc/app/ProfileController.html
deleted file mode 100644
index deb4b0bc..00000000
--- a/doc/app/ProfileController.html
+++ /dev/null
@@ -1,683 +0,0 @@
-
-
-
-
-
-
-class ProfileController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProfileController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- design ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- history ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def history
- @events = current_user .recent_events .page (params [:page ]).per (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- password_update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def password_update
- params [:user ].reject! { | k , v | k != "password" && k != "password_confirmation" }
-
- if @user .update_attributes (params [:user ])
- flash [:notice ] = "Password was successfully updated. Please login with it"
- redirect_to new_user_session_path
- else
- render action : "password"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- reset_private_token ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def reset_private_token
- current_user .reset_authentication_token!
- redirect_to profile_account_path
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- token ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @user .update_attributes (params [:user ])
- redirect_to :back
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProfileHelper.html b/doc/app/ProfileHelper.html
deleted file mode 100644
index ab7773ba..00000000
--- a/doc/app/ProfileHelper.html
+++ /dev/null
@@ -1,481 +0,0 @@
-
-
-
-
-
-
-module ProfileHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module ProfileHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- oauth_active_class (provider)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def oauth_active_class provider
- if current_user .provider == provider .to_s
- 'active'
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Project.html b/doc/app/Project.html
deleted file mode 100644
index 55868ef1..00000000
--- a/doc/app/Project.html
+++ /dev/null
@@ -1,1202 +0,0 @@
-
-
-
-
-
-
-class Project - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- error_code [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- access_options ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def access_options
- UsersProject .access_roles
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- active ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def active
- joins (:issues , :notes , :merge_requests ).order ("issues.created_at, notes.created_at, merge_requests.created_at DESC" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create_by_user (params, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create_by_user (params , user )
- project = Project .new params
-
- Project .transaction do
- project .owner = user
- project .save!
-
-
- project .users_projects .create! (project_access : UsersProject :: MASTER , user : user )
-
-
-
- project .update_repository
- end
-
- project
-rescue Gitlab :: Gitolite :: AccessDenied => ex
- project .error_code = :gitolite
- project
-rescue => ex
- project .error_code = :db
- project .errors .add (:base , "Can't save project. Please try again later" )
- project
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- search (query)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search query
- where ("name LIKE :query OR code LIKE :query OR path LIKE :query" , query : "%#{query}%" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- build_commit_note (commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def build_commit_note (commit )
- notes .new (noteable_id : commit .id , noteable_type : "Commit" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- check_limit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def check_limit
- unless owner .can_create_project?
- errors [:base ] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it" )
- end
-rescue
- errors [:base ] << ("Can't check your ability to create project" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit_line_notes (commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit_line_notes (commit )
- notes .where (noteable_id : commit .id , noteable_type : "Commit" ).where ("line_code IS NOT NULL" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit_notes (commit)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit_notes (commit )
- notes .where (noteable_id : commit .id , noteable_type : "Commit" , line_code : nil )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- common_notes ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def common_notes
- notes .where (noteable_type : ["" , nil ]).inc_author_project
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- git_error? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def git_error?
- error_code == :gitolite
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- issues_labels ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def issues_labels
- issues .tag_counts_on (:labels )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_activity ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_activity
- last_event
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_activity_date ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_activity_date
- last_event .try (:created_at ) || updated_at
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- private? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def private?
- private_flag
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_id ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_id
- self .id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- public? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def public?
- ! private_flag
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repo_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repo_name
- if path == "gitolite-admin"
- errors .add (:path , " like 'gitolite-admin' is not allowed" )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- saved? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def saved?
- id && valid?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_param ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_param
- code
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- web_url ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def web_url
- [Gitlab .config .url , code ].join ("/" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- wiki_notes ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def wiki_notes
- Note .where (noteable_id : wikis .pluck (:id ), noteable_type : 'Wiki' , project_id : self .id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProjectHook.html b/doc/app/ProjectHook.html
deleted file mode 100644
index e5d17ef0..00000000
--- a/doc/app/ProjectHook.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class ProjectHook - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProjectHook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProjectObserver.html b/doc/app/ProjectObserver.html
deleted file mode 100644
index d4ce7824..00000000
--- a/doc/app/ProjectObserver.html
+++ /dev/null
@@ -1,589 +0,0 @@
-
-
-
-
-
-
-class ProjectObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProjectObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create project
- log_info ("#{project.owner.name} created a new project \"#{project.name}\"" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_destroy (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_destroy (project )
- log_info ("Project \"#{project.name}\" was removed" )
-
- project .destroy_repository
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_save (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_save (project )
- project .update_repository
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- log_info (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def log_info message
- Gitlab :: AppLogger .info message
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProjectResourceController.html b/doc/app/ProjectResourceController.html
deleted file mode 100644
index aa972617..00000000
--- a/doc/app/ProjectResourceController.html
+++ /dev/null
@@ -1,439 +0,0 @@
-
-
-
-
-
-
-class ProjectResourceController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProjectResourceController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProjectsController.html b/doc/app/ProjectsController.html
deleted file mode 100644
index 6982deab..00000000
--- a/doc/app/ProjectsController.html
+++ /dev/null
@@ -1,785 +0,0 @@
-
-
-
-
-
-
-class ProjectsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProjectsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @project = Project .create_by_user (params [:project ], current_user )
-
- respond_to do | format |
- format .html do
- if @project .saved?
- redirect_to (@project , notice : 'Project was successfully created.' )
- else
- render action : "new"
- end
- end
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
-
-
- UsersProject .skip_callback (:destroy , :after , :update_repository )
- project .destroy
- UsersProject .set_callback (:destroy , :after , :update_repository )
-
- respond_to do | format |
- format .html { redirect_to root_path }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- files ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def files
- @notes = @project .notes .where ("attachment != 'NULL'" ).order ("created_at DESC" ).limit (100 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- graph ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def graph
- @days_json , @commits_json = Gitlab :: GraphCommit .to_graph (project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @project = Project .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- limit = (params [:limit ] || 20 ).to_i
- @events = @project .events .recent .limit (limit ).offset (params [:offset ] || 0 )
-
- respond_to do | format |
- format .html do
- unless @project .empty_repo?
- @last_push = current_user .recent_push (@project .id )
- render :show
- else
- render "projects/empty"
- end
- end
- format .js
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- respond_to do | format |
- if project .update_attributes (params [:project ])
- format .html { redirect_to edit_project_path (project ), notice : 'Project was successfully updated.' }
- format .js
- else
- format .html { render action : "edit" }
- format .js
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- wall ()
- click to toggle source
-
-
-
-
-
-
Wall
-
-
-
-
-
-def wall
- return render_404 unless @project .wall_enabled
- @note = Note .new
-
- respond_to do | format |
- format .html
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProjectsHelper.html b/doc/app/ProjectsHelper.html
deleted file mode 100644
index 5edd4592..00000000
--- a/doc/app/ProjectsHelper.html
+++ /dev/null
@@ -1,543 +0,0 @@
-
-
-
-
-
-
-module ProjectsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module ProjectsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- grouper_project_members (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def grouper_project_members (project )
- @project .users_projects .sort_by (&:project_access ).reverse .group_by (&:project_access )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- link_to_project (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def link_to_project project
- link_to project .name , project
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- remove_from_team_message (project, member)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def remove_from_team_message (project , member )
- "You are going to remove #{member.user_name} from #{project.name}. Are you sure?"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProtectedBranch.html b/doc/app/ProtectedBranch.html
deleted file mode 100644
index 900646dc..00000000
--- a/doc/app/ProtectedBranch.html
+++ /dev/null
@@ -1,529 +0,0 @@
-
-
-
-
-
-
-class ProtectedBranch - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProtectedBranch
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit
- project .commit (self .name )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_repository ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_repository
- git_host .update_repository (project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/ProtectedBranchesController.html b/doc/app/ProtectedBranchesController.html
deleted file mode 100644
index 7eb2b1fd..00000000
--- a/doc/app/ProtectedBranchesController.html
+++ /dev/null
@@ -1,556 +0,0 @@
-
-
-
-
-
-
-class ProtectedBranchesController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class ProtectedBranchesController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @project .protected_branches .create (params [:protected_branch ])
- redirect_to project_protected_branches_path (@project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @project .protected_branches .find (params [:id ]).destroy
-
- respond_to do | format |
- format .html { redirect_to project_protected_branches_path }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @branches = @project .protected_branches .all
- @protected_branch = @project .protected_branches .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/PushEvent.html b/doc/app/PushEvent.html
deleted file mode 100644
index 002866a6..00000000
--- a/doc/app/PushEvent.html
+++ /dev/null
@@ -1,1105 +0,0 @@
-
-
-
-
-
-
-module PushEvent - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module PushEvent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- branch? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branch?
- data [:ref ]["refs/heads" ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branch_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branch_name
- @branch_name ||= data [:ref ].gsub ("refs/heads/" , "" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit_from ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit_from
- data [:before ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit_to ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit_to
- data [:after ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits ()
- click to toggle source
-
-
-
-
-
-
Max 20 commits from push DESC
-
-
-
-
-
-def commits
- @commits ||= data [:commits ].map { | commit | project .commit (commit [:id ]) }.reverse
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_count ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_count
- data [:total_commits_count ] || commits .count || 0
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_commit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_commit
- project .commit (commit_to )
-rescue => ex
- nil
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_push_to_non_root? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_push_to_non_root?
- branch? && project .default_branch != branch_name
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- md_ref? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def md_ref?
- ! (rm_ref? || new_ref? )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_branch? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_branch?
- commit_from =~ %r^00000/
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_ref? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_ref?
- commit_from =~ %r^00000/
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- parent_commit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def parent_commit
- project .commit (commit_from )
-rescue => ex
- nil
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- push_action_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def push_action_name
- if new_ref?
- "pushed new"
- elsif rm_ref?
- "deleted"
- else
- "pushed to"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- push_with_commits? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def push_with_commits?
- md_ref? && commits .any? && parent_commit && last_commit
-rescue Grit :: NoSuchPathError
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ref_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ref_name
- if tag?
- tag_name
- else
- branch_name
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ref_type ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ref_type
- tag? ? "tag" : "branch"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- rm_ref? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def rm_ref?
- commit_to =~ %r^00000/
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tag?
- data [:ref ]["refs/tags" ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag_name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tag_name
- @tag_name ||= data [:ref ].gsub ("refs/tags/" , "" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- valid_push? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def valid_push?
- data [:ref ]
-rescue => ex
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/PushObserver.html b/doc/app/PushObserver.html
deleted file mode 100644
index 804447a6..00000000
--- a/doc/app/PushObserver.html
+++ /dev/null
@@ -1,699 +0,0 @@
-
-
-
-
-
-
-module PushObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module PushObserver
-
-
-
-
Includes methods for handling Git Push events
-
-
Triggered by PostReceive job
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute_hooks (oldrev, newrev, ref, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute_hooks (oldrev , newrev , ref , user )
- ref_parts = ref .split ('/' )
-
-
- return if ref_parts [1 ] !~ %rheads/ || oldrev == "00000000000000000000000000000000"
-
- data = post_receive_data (oldrev , newrev , ref , user )
-
- hooks .each { | hook | hook .execute (data ) }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- observe_push (oldrev, newrev, ref, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def observe_push (oldrev , newrev , ref , user )
- data = post_receive_data (oldrev , newrev , ref , user )
-
- Event .create (
- project : self ,
- action : Event :: Pushed ,
- data : data ,
- author_id : data [:user_id ]
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- post_receive_data (oldrev, newrev, ref, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def post_receive_data (oldrev , newrev , ref , user )
-
- push_commits = commits_between (oldrev , newrev )
-
-
- push_commits_count = push_commits .size
-
-
- push_commits_limited = push_commits .last (20 )
-
-
- data = {
- before : oldrev ,
- after : newrev ,
- ref : ref ,
- user_id : user .id ,
- user_name : user .name ,
- repository : {
- name : name ,
- url : web_url ,
- description : description ,
- homepage : web_url ,
- },
- commits : [],
- total_commits_count : push_commits_count
- }
-
-
-
-
- push_commits_limited .each do | commit |
- data [:commits ] << {
- id : commit .id ,
- message : commit .safe_message ,
- timestamp : commit .date .xmlschema ,
- url : "#{Gitlab.config.url}/#{code}/commits/#{commit.id}" ,
- author : {
- name : commit .author_name ,
- email : commit .author_email
- }
- }
- end
-
- data
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- trigger_post_receive (oldrev, newrev, ref, user)
- click to toggle source
-
-
-
-
-
-
This method will be called after each post receive and only if the provided
-user is present in GitLab.
-
-
All callbacks for post receive should be placed here.
-
-
-
-
-
-def trigger_post_receive (oldrev , newrev , ref , user )
-
- self .observe_push (oldrev , newrev , ref , user )
-
-
- self .update_merge_requests (oldrev , newrev , ref , user )
-
-
- self .execute_hooks (oldrev , newrev , ref , user )
-
-
- self .satellite .create unless self .satellite .exists?
-
-
-
- if default_branch .nil?
- update_attributes (default_branch : discover_default_branch )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_merge_requests (oldrev, newrev, ref, user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_merge_requests (oldrev , newrev , ref , user )
- return true unless ref =~ %rheads/
- branch_name = ref .gsub ("refs/heads/" , "" )
- c_ids = self .commits_between (oldrev , newrev ).map (&:id )
-
-
- mrs = self .merge_requests .opened .find_all_by_branch (branch_name ).all
- mrs .each { | merge_request | merge_request .reload_code ; merge_request .mark_as_unchecked }
-
-
- mrs = self .merge_requests .opened .where (target_branch : branch_name ).all
- mrs = mrs .select (&:last_commit ).select { | mr | c_ids .include? (mr .last_commit .id ) }
- mrs .each { | merge_request | merge_request .merge! (user .id ) }
-
- true
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Redcarpet.html b/doc/app/Redcarpet.html
deleted file mode 100644
index 238b7f25..00000000
--- a/doc/app/Redcarpet.html
+++ /dev/null
@@ -1,432 +0,0 @@
-
-
-
-
-
-
-module Redcarpet - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Redcarpet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Redcarpet/Render.html b/doc/app/Redcarpet/Render.html
deleted file mode 100644
index acb7ba3c..00000000
--- a/doc/app/Redcarpet/Render.html
+++ /dev/null
@@ -1,432 +0,0 @@
-
-
-
-
-
-
-module Redcarpet::Render - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Redcarpet::Render
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Redcarpet/Render/GitlabHTML.html b/doc/app/Redcarpet/Render/GitlabHTML.html
deleted file mode 100644
index 93212eab..00000000
--- a/doc/app/Redcarpet/Render/GitlabHTML.html
+++ /dev/null
@@ -1,594 +0,0 @@
-
-
-
-
-
-
-class Redcarpet::Render::GitlabHTML - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Redcarpet::Render::GitlabHTML
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- template [R]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (template, options = {})
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (template , options = {})
- @template = template
- @project = @template .instance_variable_get ("@project" )
- super options
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- block_code (code, language)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def block_code (code , language )
- if Pygments :: Lexer .find (language )
- Pygments .highlight (code , lexer : language , options : {encoding : 'utf-8' })
- else
- Pygments .highlight (code , options : {encoding : 'utf-8' })
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- postprocess (full_document)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def postprocess (full_document )
- h .gfm (full_document )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/RefsController.html b/doc/app/RefsController.html
deleted file mode 100644
index a8248da0..00000000
--- a/doc/app/RefsController.html
+++ /dev/null
@@ -1,638 +0,0 @@
-
-
-
-
-
-
-class RefsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class RefsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- logs_tree ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def logs_tree
- contents = @tree .contents
- @logs = contents .map do | content |
- file = params [:path ] ? File .join (params [:path ], content .name ) : content .name
- last_commit = @project .commits (@commit .id , file , 1 ).last
- last_commit = CommitDecorator .decorate (last_commit )
- {
- file_name : content .name ,
- commit : last_commit
- }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- switch ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def switch
- respond_to do | format |
- format .html do
- new_path = if params [:destination ] == "tree"
- project_tree_path (@project , @ref )
- else
- project_commits_path (@project , @ref )
- end
-
- redirect_to new_path
- end
- format .js do
- @ref = params [:ref ]
- define_tree_vars
- render "tree"
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- define_tree_vars ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def define_tree_vars
- params [:path ] = nil if params [:path ].blank?
-
- @repo = project .repo
- @commit = project .commit (@ref )
- @commit = CommitDecorator .decorate (@commit )
- @tree = Tree .new (@commit .tree , project , @ref , params [:path ])
- @tree = TreeDecorator .new (@tree )
- @hex_path = Digest :: SHA1 .hexdigest (params [:path ] || "" )
-
- if params [:path ]
- @logs_path = logs_file_project_ref_path (@project , @ref , params [:path ])
- else
- @logs_path = logs_tree_project_ref_path (@project , @ref )
- end
-rescue
- return render_404
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ref ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ref
- @ref = params [:id ] || params [:ref ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/RepositoriesController.html b/doc/app/RepositoriesController.html
deleted file mode 100644
index 3a22f71e..00000000
--- a/doc/app/RepositoriesController.html
+++ /dev/null
@@ -1,593 +0,0 @@
-
-
-
-
-
-
-class RepositoriesController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class RepositoriesController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- archive ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def archive
- unless can? (current_user , :download_code , @project )
- render_404 and return
- end
-
-
- file_path = @project .archive_repo (params [:ref ])
-
- if file_path
-
- send_file file_path
- else
- render_404
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branches ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branches
- @branches = @project .branches
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @activities = @project .commits_with_refs (20 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Repository.html b/doc/app/Repository.html
deleted file mode 100644
index cb68146c..00000000
--- a/doc/app/Repository.html
+++ /dev/null
@@ -1,1566 +0,0 @@
-
-
-
-
-
-
-module Repository - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Repository
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- archive_repo (ref)
- click to toggle source
-
-
-
-
-
-
Archive Project to .tar.gz
-
-
Already packed repo archives stored at
-app_root/tmp/repositories/project_name/project_name-commit-id.tag.gz
-
-
-
-
-
-def archive_repo (ref )
- ref = ref || self .root_ref
- commit = self .commit (ref )
- return nil unless commit
-
-
- file_name = self .code + "-" + commit .id .to_s + ".tar.gz"
- storage_path = Rails .root .join ("tmp" , "repositories" , self .code )
- file_path = File .join (storage_path , file_name )
-
-
- prefix = self .code + "/"
-
-
- unless File .exists? (file_path )
- FileUtils .mkdir_p storage_path
- file = self .repo .archive_to_file (ref , prefix , file_path )
- end
-
- file_path
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branch_names ()
- click to toggle source
-
-
-
-
-
-
Returns an Array of branch names
-
-
-
-
-
-def branch_names
- repo .branches .collect (&:name ).sort
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- branches ()
- click to toggle source
-
-
-
-
-
-
Returns an Array of Branches
-
-
-
-
-
-def branches
- repo .branches .sort_by (&:name )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commit (commit_id = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commit (commit_id = nil )
- Commit .find_or_first (repo , commit_id , root_ref )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits (ref, path = nil, limit = nil, offset = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits (ref , path = nil , limit = nil , offset = nil )
- Commit .commits (repo , ref , path , limit , offset )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_between (from, to)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_between (from , to )
- Commit .commits_between (repo , from , to )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_since (date)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_since (date )
- Commit .commits_since (repo , date )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- commits_with_refs (n = 20)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def commits_with_refs (n = 20 )
- Commit .commits_with_refs (repo , n )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy_repository ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy_repository
- git_host .remove_repository (self )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- discover_default_branch ()
- click to toggle source
-
-
-
-
-
-
Discovers the default branch based on the repository’s available branches
-
-If no branches are present, returns nil
-
-If one branch is present, returns its name
-
-If two or more branches are present, returns the one that has a name
-matching #root_ref
-(default_branch or ‘master’ if default_branch is nil)
-
-
-
-
-
-
-def discover_default_branch
- if branch_names .length == 0
- nil
- elsif branch_names .length == 1
- branch_names .first
- else
- branch_names .select { | v | v == root_ref }.first
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- empty_repo? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def empty_repo?
- ! repo_exists? || ! has_commits?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- fresh_commits (n = 10)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def fresh_commits (n = 10 )
- Commit .fresh_commits (repo , n )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- has_commits? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def has_commits?
- ! ! commit
-rescue Grit :: NoSuchPathError
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- has_post_receive_file? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def has_post_receive_file?
- hook_file = File .join (path_to_repo , 'hooks' , 'post-receive' )
- File .exists? (hook_file )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- heads ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def heads
- @heads ||= repo .heads
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- http_url_to_repo ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def http_url_to_repo
- http_url = [Gitlab .config .url , "/" , path , ".git" ].join ('' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- last_commit_for (ref, path = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def last_commit_for (ref , path = nil )
- commits (ref , path , 1 ).first
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- open_branches ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def open_branches
- if protected_branches .empty?
- self .repo .heads
- else
- pnames = protected_branches .map (&:name )
- self .repo .heads .reject { | h | pnames .include? (h .name ) }
- end .sort_by (&:name )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- path_to_repo ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def path_to_repo
- File .join (Gitlab .config .git_base_path , "#{path}.git" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- protected_branch? (branch_name)
- click to toggle source
-
-
-
-
-
-
Check if current branch name is marked as protected in the system
-
-
-
-
-
-def protected_branch? branch_name
- protected_branches .map (&:name ).include? (branch_name )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ref_names ()
- click to toggle source
-
-
-
-
-
-
Returns an Array of branch and tag names
-
-
-
-
-
-def ref_names
- [branch_names + tag_names ].flatten
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repo ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repo
- @repo ||= Grit :: Repo .new (path_to_repo )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repo_exists? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repo_exists?
- @repo_exists ||= (repo && ! repo .branches .empty? )
-rescue
- @repo_exists = false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- root_ref ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def root_ref
- default_branch || "master"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- root_ref? (branch)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def root_ref? (branch )
- root_ref == branch
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- satellite ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def satellite
- @satellite ||= Gitlab :: Satellite .new (self )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- ssh_url_to_repo ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def ssh_url_to_repo
- url_to_repo
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag_names ()
- click to toggle source
-
-
-
-
-
-
Returns an Array of tag names
-
-
-
-
-
-def tag_names
- repo .tags .collect (&:name ).sort .reverse
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- tree (fcommit, path = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tree (fcommit , path = nil )
- fcommit = commit if fcommit == :head
- tree = fcommit .tree
- path ? (tree / path ) : tree
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_repository ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_repository
- git_host .update_repository (self )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- url_to_repo ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def url_to_repo
- git_host .url_to_repo (path )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- valid_repo? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def valid_repo?
- repo
-rescue
- errors .add (:path , "Invalid repository path" )
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SearchContext.html b/doc/app/SearchContext.html
deleted file mode 100644
index 6a3d2bd5..00000000
--- a/doc/app/SearchContext.html
+++ /dev/null
@@ -1,599 +0,0 @@
-
-
-
-
-
-
-class SearchContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SearchContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- params [RW]
-
-
-
-
-
-
-
-
-
-
-
- project_ids [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (project_ids, params)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (project_ids , params )
- @project_ids , @params = project_ids , params .dup
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- query = params [:search ]
-
- return result unless query .present?
-
- result [:projects ] = Project .where (id : project_ids ).search (query ).limit (10 )
- result [:merge_requests ] = MergeRequest .where (project_id : project_ids ).search (query ).limit (10 )
- result [:issues ] = Issue .where (project_id : project_ids ).search (query ).limit (10 )
- result
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- result ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def result
- @result ||= {
- projects : [],
- merge_requests : [],
- issues : []
- }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SearchController.html b/doc/app/SearchController.html
deleted file mode 100644
index 0c14ea8f..00000000
--- a/doc/app/SearchController.html
+++ /dev/null
@@ -1,489 +0,0 @@
-
-
-
-
-
-
-class SearchController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SearchController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- result = SearchContext .new (current_user .project_ids , params ).execute
-
- @projects = result [:projects ]
- @merge_requests = result [:merge_requests ]
- @issues = result [:issues ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Snippet.html b/doc/app/Snippet.html
deleted file mode 100644
index a24e4494..00000000
--- a/doc/app/Snippet.html
+++ /dev/null
@@ -1,667 +0,0 @@
-
-
-
-
-
-
-class Snippet - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Snippet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- content_types ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .content_types
- [
- ".rb" , ".py" , ".pl" , ".scala" , ".c" , ".cpp" , ".java" ,
- ".haml" , ".html" , ".sass" , ".scss" , ".xml" , ".php" , ".erb" ,
- ".js" , ".sh" , ".coffee" , ".yml" , ".md"
- ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- data ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def data
- content
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- expired? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def expired?
- expires_at && expires_at < Time .current
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- mode ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- name ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def name
- file_name
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- size ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SnippetsController.html b/doc/app/SnippetsController.html
deleted file mode 100644
index 7585a295..00000000
--- a/doc/app/SnippetsController.html
+++ /dev/null
@@ -1,833 +0,0 @@
-
-
-
-
-
-
-class SnippetsController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SnippetsController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @snippet = @project .snippets .new (params [:snippet ])
- @snippet .author = current_user
- @snippet .save
-
- if @snippet .valid?
- redirect_to [@project , @snippet ]
- else
- respond_with (@snippet )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- return access_denied! unless can? (current_user , :admin_snippet , @snippet )
-
- @snippet .destroy
-
- redirect_to project_snippets_path (@project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def index
- @snippets = @project .snippets
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @snippet = @project .snippets .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- raw ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def raw
- send_data (
- @snippet .content ,
- type : "text/plain" ,
- disposition : 'inline' ,
- filename : @snippet .file_name
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @note = @project .notes .new (noteable : @snippet )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @snippet .update_attributes (params [:snippet ])
-
- if @snippet .valid?
- redirect_to [@project , @snippet ]
- else
- respond_with (@snippet )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_admin_snippet! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_admin_snippet!
- return render_404 unless can? (current_user , :admin_snippet , @snippet )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- authorize_modify_snippet! ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def authorize_modify_snippet!
- return render_404 unless can? (current_user , :modify_snippet , @snippet )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- snippet ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def snippet
- @snippet ||= @project .snippets .find (params [:id ])
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SnippetsHelper.html b/doc/app/SnippetsHelper.html
deleted file mode 100644
index 99c08d51..00000000
--- a/doc/app/SnippetsHelper.html
+++ /dev/null
@@ -1,485 +0,0 @@
-
-
-
-
-
-
-module SnippetsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module SnippetsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- lifetime_select_options ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def lifetime_select_options
- options = [
- ['forever' , nil ],
- ['1 day' , "#{Date.current + 1.day}" ],
- ['1 week' , "#{Date.current + 1.week}" ],
- ['1 month' , "#{Date.current + 1.month}" ]
- ]
- options_for_select (options )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/StaticModel.html b/doc/app/StaticModel.html
deleted file mode 100644
index 9dd1617c..00000000
--- a/doc/app/StaticModel.html
+++ /dev/null
@@ -1,648 +0,0 @@
-
-
-
-
-
-
-module StaticModel - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module StaticModel
-
-
-
-
Provides an ActiveRecord-like interface to a model whose data is not
-persisted to a database.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- == (other)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def == (other )
- if other .is_a? StaticModel
- id == other .id
- else
- super
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- [] (key)
- click to toggle source
-
-
-
-
-
-
Used by AR for fetching attributes
-
-
Pass it along if we respond to it.
-
-
-
-
-
-def [] (key )
- send (key ) if respond_to? (key )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroyed? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroyed?
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- new_record? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new_record?
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- persisted? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def persisted?
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_param ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_param
- id
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/StaticModel/ClassMethods.html b/doc/app/StaticModel/ClassMethods.html
deleted file mode 100644
index 27ee1373..00000000
--- a/doc/app/StaticModel/ClassMethods.html
+++ /dev/null
@@ -1,511 +0,0 @@
-
-
-
-
-
-
-module StaticModel::ClassMethods - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module StaticModel::ClassMethods
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- base_class ()
- click to toggle source
-
-
-
-
-
-
Used by ActiveRecord’s polymorphic association to set object_type
-
-
-
-
-
-def base_class
- self
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- primary_key ()
- click to toggle source
-
-
-
-
-
-
Used by ActiveRecord’s polymorphic association to set object_id
-
-
-
-
-
-def primary_key
- 'id'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SystemHook.html b/doc/app/SystemHook.html
deleted file mode 100644
index 8e35bf27..00000000
--- a/doc/app/SystemHook.html
+++ /dev/null
@@ -1,525 +0,0 @@
-
-
-
-
-
-
-class SystemHook - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SystemHook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- all_hooks_fire (data)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .all_hooks_fire (data )
- SystemHook .all .each do | sh |
- sh .async_execute data
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- async_execute (data)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def async_execute (data )
- Resque .enqueue (SystemHookWorker , id , data )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SystemHookObserver.html b/doc/app/SystemHookObserver.html
deleted file mode 100644
index 20d81963..00000000
--- a/doc/app/SystemHookObserver.html
+++ /dev/null
@@ -1,573 +0,0 @@
-
-
-
-
-
-
-class SystemHookObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SystemHookObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (model)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (model )
- if model .kind_of? Project
- SystemHook .all_hooks_fire ({
- event_name : "project_create" ,
- name : model .name ,
- path : model .path ,
- project_id : model .id ,
- owner_name : model .owner .name ,
- owner_email : model .owner .email ,
- created_at : model .created_at
- })
- elsif model .kind_of? User
- SystemHook .all_hooks_fire ({
- event_name : "user_create" ,
- name : model .name ,
- email : model .email ,
- created_at : model .created_at
- })
-
- elsif model .kind_of? UsersProject
- SystemHook .all_hooks_fire ({
- event_name : "user_add_to_team" ,
- project_name : model .project .name ,
- project_path : model .project .path ,
- project_id : model .project_id ,
- user_name : model .user .name ,
- user_email : model .user .email ,
- project_access : model .repo_access_human ,
- created_at : model .created_at
- })
-
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_destroy (model)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_destroy (model )
- if model .kind_of? Project
- SystemHook .all_hooks_fire ({
- event_name : "project_destroy" ,
- name : model .name ,
- path : model .path ,
- project_id : model .id ,
- owner_name : model .owner .name ,
- owner_email : model .owner .email ,
- })
- elsif model .kind_of? User
- SystemHook .all_hooks_fire ({
- event_name : "user_destroy" ,
- name : model .name ,
- email : model .email
- })
-
- elsif model .kind_of? UsersProject
- SystemHook .all_hooks_fire ({
- event_name : "user_remove_from_team" ,
- project_name : model .project .name ,
- project_path : model .project .path ,
- project_id : model .project_id ,
- user_name : model .user .name ,
- user_email : model .user .email ,
- project_access : model .repo_access_human
- })
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/SystemHookWorker.html b/doc/app/SystemHookWorker.html
deleted file mode 100644
index 153eb577..00000000
--- a/doc/app/SystemHookWorker.html
+++ /dev/null
@@ -1,485 +0,0 @@
-
-
-
-
-
-
-class SystemHookWorker - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class SystemHookWorker
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TabHelper.html b/doc/app/TabHelper.html
deleted file mode 100644
index 43cc08a4..00000000
--- a/doc/app/TabHelper.html
+++ /dev/null
@@ -1,621 +0,0 @@
-
-
-
-
-
-
-module TabHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module TabHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- branches_tab_class ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def branches_tab_class
- if current_page? (branches_project_repository_path (@project )) ||
- current_controller? (:protected_branches ) ||
- current_page? (project_repository_path (@project ))
- 'active'
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- nav_link (options = {}, &block)
- click to toggle source
-
-
-
-
-
-
Navigation link helper
-
-
Returns an `li` element with an ‘active’ class if the supplied
-controller(s) and/or action(s) are currently active. The content of the
-element is the value passed to the block.
-
-
options - The options hash used to determine if the element is “active”
-(default: {})
-
-
:controller - One or more controller names to check (optional).
-:action - One or more action names to check (optional).
-:path - A shorthand path, such as 'dashboard#index', to check (optional).
-:html_options - Extra options to be passed to the list element (optional).
-
-
block - An optional block that will become the contents of the returned
-
-
`li` element.
-
-
When both :controller and :action are specified, BOTH must match in order
-to be marked as active. When only one is given, either can match.
-
-
Examples
-
-
-
-
-nav_link (controller : [:tree , :refs ], action : :edit ) { "Hello" }
-
-
-
-nav_link (controller : [:tree , :refs ]) { "Hello" }
-
-
-
-nav_link (path : 'tree#show' ) { "Hello" }
-
-
-
-nav_link (controller : :tree , html_options : {class : 'home' }) { "Hello" }
-
-
-
-
Returns a list item element String
-
-
-
-
-
-def nav_link (options = {}, &block )
- if path = options .delete (:path )
- c , a , _ = path .split ('#' )
- else
- c = options .delete (:controller )
- a = options .delete (:action )
- end
-
- if c && a
-
- klass = current_controller? (*c ) && current_action? (*a ) ? 'active' : ''
- else
-
- klass = current_controller? (*c ) || current_action? (*a ) ? 'active' : ''
- end
-
-
-
- o = options .delete (:html_options ) || {}
- o [:class ] ||= ''
- o [:class ] += ' ' + klass
- o [:class ].strip!
-
- if block_given?
- content_tag (:li , capture (&block ), o )
- else
- content_tag (:li , nil , o )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_tab_class ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_tab_class
- [:show , :files , :edit , :update ].each do | action |
- return "active" if current_page? (controller : "projects" , action : action , id : @project )
- end
-
- if ['snippets' , 'hooks' , 'deploy_keys' , 'team_members' ].include? controller .controller_name
- "active"
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TagsHelper.html b/doc/app/TagsHelper.html
deleted file mode 100644
index 3a98d61f..00000000
--- a/doc/app/TagsHelper.html
+++ /dev/null
@@ -1,516 +0,0 @@
-
-
-
-
-
-
-module TagsHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module TagsHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag_list (project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tag_list project
- html = ''
- project .tag_list .each do | tag |
- html += link_to tag , tag_path (tag )
- end
-
- html .html_safe
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tag_path (tag)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tag_path tag
- "/tags/#{tag}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Team.html b/doc/app/Team.html
deleted file mode 100644
index 3a583694..00000000
--- a/doc/app/Team.html
+++ /dev/null
@@ -1,710 +0,0 @@
-
-
-
-
-
-
-module Team - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Team
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_user_id_to_team (user_id, access_role)
- click to toggle source
-
-
-
-
-
-
Add user to project with passed access role by user id
-
-
-
-
-
-def add_user_id_to_team (user_id , access_role )
- users_projects .create (
- user_id : user_id ,
- project_access : access_role
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_user_to_team (user, access_role)
- click to toggle source
-
-
-
-
-
-
Add user to project with passed access role
-
-
-
-
-
-def add_user_to_team (user , access_role )
- add_user_id_to_team (user .id , access_role )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_users_ids_to_team (users_ids, access_role)
- click to toggle source
-
-
-
-
-
-
Add multiple users to project with same access role by user ids
-
-
-
-
-
-def add_users_ids_to_team (users_ids , access_role )
- UsersProject .bulk_import (self , users_ids , access_role )
- self .update_repository
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- add_users_to_team (users, access_role)
- click to toggle source
-
-
-
-
-
-
Add multiple users to project with same access role
-
-
-
-
-
-def add_users_to_team (users , access_role )
- add_users_ids_to_team (users .map (&:id ), access_role )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- delete_users_ids_from_team (users_ids)
- click to toggle source
-
-
-
-
-
-
Delete multiple users from project by user ids
-
-
-
-
-
-def delete_users_ids_from_team (users_ids )
- UsersProject .bulk_delete (self , users_ids )
- self .update_repository
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- team_member_by_id (user_id)
- click to toggle source
-
-
-
-
-
-
Get Team Member record by user id
-
-
-
-
-
-def team_member_by_id (user_id )
- users_projects .find_by_user_id (user_id )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- team_member_by_name_or_email (name = nil, email = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def team_member_by_name_or_email (name = nil , email = nil )
- user = users .where ("name like ? or email like ?" , name , email ).first
- users_projects .where (user : user ) if user
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_users_ids_to_role (users_ids, access_role)
- click to toggle source
-
-
-
-
-
-
Update multiple project users to same access role by user ids
-
-
-
-
-
-def update_users_ids_to_role (users_ids , access_role )
- UsersProject .bulk_update (self , users_ids , access_role )
- self .update_repository
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TeamMembersController.html b/doc/app/TeamMembersController.html
deleted file mode 100644
index 46af7c9f..00000000
--- a/doc/app/TeamMembersController.html
+++ /dev/null
@@ -1,698 +0,0 @@
-
-
-
-
-
-
-class TeamMembersController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class TeamMembersController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- apply_import ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def apply_import
- giver = Project .find (params [:source_project_id ])
- status = UsersProject .import_team (giver , project )
- notice = status ? "Succesfully imported" : "Import failed"
-
- redirect_to project_team_members_path (project ), notice : notice
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @project .add_users_ids_to_team (
- params [:user_ids ],
- params [:project_access ]
- )
-
- redirect_to project_team_index_path (@project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @team_member = project .users_projects .find (params [:id ])
- @team_member .destroy
-
- respond_to do | format |
- format .html { redirect_to project_team_index_path (@project ) }
- format .js { render nothing : true }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- index ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def new
- @team_member = project .users_projects .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @team_member = project .users_projects .find (params [:id ])
- @events = @team_member .user .recent_events .where (:project_id => @project .id ).limit (7 )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- @team_member = project .users_projects .find (params [:id ])
- @team_member .update_attributes (params [:team_member ])
-
- unless @team_member .valid?
- flash [:alert ] = "User should have at least one role"
- end
- redirect_to project_team_index_path (@project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TestHookContext.html b/doc/app/TestHookContext.html
deleted file mode 100644
index e18701cb..00000000
--- a/doc/app/TestHookContext.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-
-
-
-
-
-class TestHookContext - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class TestHookContext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute
- hook = project .hooks .find (params [:id ])
- commits = project .commits (project .default_branch , nil , 3 )
- data = project .post_receive_data (commits .last .id , commits .first .id , "refs/heads/#{project.default_branch}" , current_user )
- hook .execute (data )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Tree.html b/doc/app/Tree.html
deleted file mode 100644
index f1f414a4..00000000
--- a/doc/app/Tree.html
+++ /dev/null
@@ -1,663 +0,0 @@
-
-
-
-
-
-
-class Tree - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Tree
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- path [RW]
-
-
-
-
-
-
-
-
-
-
-
- project [RW]
-
-
-
-
-
-
-
-
-
-
-
- ref [RW]
-
-
-
-
-
-
-
-
-
-
-
- tree [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- new (raw_tree, project, ref = nil, path = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def initialize (raw_tree , project , ref = nil , path = nil )
- @project , @ref , @path = project , ref , path
- @tree = if path .present?
- raw_tree / path .dup .force_encoding ('ascii-8bit' )
- else
- raw_tree
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- empty? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def empty?
- data .blank?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- invalid? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def invalid?
- tree .nil?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- is_blob? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def is_blob?
- tree .is_a? (Grit :: Blob )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TreeController.html b/doc/app/TreeController.html
deleted file mode 100644
index 1adba0ec..00000000
--- a/doc/app/TreeController.html
+++ /dev/null
@@ -1,583 +0,0 @@
-
-
-
-
-
-
-class TreeController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class TreeController
-
-
-
-
Controller for viewing a repository’s file structure
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- @last_commit = @project .last_commit_for (@ref , @path ).sha
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- @hex_path = Digest :: SHA1 .hexdigest (@path )
- @logs_path = logs_file_project_ref_path (@project , @ref , @path )
-
- respond_to do | format |
- format .html
-
- format .js { no_cache_headers }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update
- file_editor = Gitlab :: FileEditor .new (current_user , @project , @ref )
- update_status = file_editor .update (
- @path ,
- params [:content ],
- params [:commit_message ],
- params [:last_commit ]
- )
-
- if update_status
- redirect_to project_tree_path (@project , @id ), notice : "Your changes have been successfully commited"
- else
- flash [:notice ] = "Your changes could not be commited, because the file has been changed"
- render :edit
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TreeDecorator.html b/doc/app/TreeDecorator.html
deleted file mode 100644
index e6bdc0fa..00000000
--- a/doc/app/TreeDecorator.html
+++ /dev/null
@@ -1,597 +0,0 @@
-
-
-
-
-
-
-class TreeDecorator - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class TreeDecorator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- breadcrumbs (max_links = 2) { |link_to("..", "| ... }
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def breadcrumbs (max_links = 2 )
- if path
- part_path = ""
- parts = path .split ("\/" )
-
-
-
- yield (h .link_to (".." , "#" , remote : true )) if parts .count > max_links
-
- parts .each do | part |
- part_path = File .join (part_path , part ) unless part_path .empty?
- part_path = part if part_path .empty?
-
- next unless parts .last (2 ).include? (part ) if parts .count > max_links
- yield (h .link_to (h .truncate (part , length : 40 ), h .project_tree_path (project , h .tree_join (ref , part_path )), remote : true ))
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- readme ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def readme
- @readme ||= contents .find { | c | c .is_a? (Grit :: Blob ) and c .name =~ %r^readme/ }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- up_dir? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def up_dir?
- path .present?
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- up_dir_path ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def up_dir_path
- file = File .join (path , ".." )
- h .project_tree_path (project , h .tree_join (ref , file ))
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/TreeHelper.html b/doc/app/TreeHelper.html
deleted file mode 100644
index e185ba72..00000000
--- a/doc/app/TreeHelper.html
+++ /dev/null
@@ -1,736 +0,0 @@
-
-
-
-
-
-
-module TreeHelper - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module TreeHelper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- allowed_tree_edit? ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def allowed_tree_edit?
- if @project .protected_branch? @ref
- can? (current_user , :push_code_to_protected_branches , @project )
- else
- can? (current_user , :push_code , @project )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- gitlab_markdown? (filename)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def gitlab_markdown? (filename )
- filename .end_with? (*%w(.mdown .md .markdown) )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- markup? (filename)
- click to toggle source
-
-
-
-
-
-
Public: Determines if a given filename is compatible with GitHub::Markup.
-
-
filename - Filename string to check
-
-
Returns boolean
-
-
-
-
-
-def markup? (filename )
- filename .end_with? (*%w(.textile .rdoc .org .creole
- .mediawiki .rst .asciidoc .pod) )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- plain_text_readme? (filename)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def plain_text_readme? filename
- filename == 'README'
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- render_tree (contents)
- click to toggle source
-
-
-
-
-
-
Sorts a repository’s tree so that folders are before files and renders
-their corresponding partials
-
-
contents - A Grit::Tree object for the current tree
-
-
-
-
-
-def render_tree (contents )
-
- folders , files = contents .partition { | v | v .kind_of? (Grit :: Tree ) }
-
- tree = ""
-
-
- tree += render partial : 'tree/tree_item' , collection : folders , locals : {type : 'folder' } if folders .present?
-
- files .each do | f |
- if f .respond_to? (:url )
-
- tree += render partial : 'tree/submodule_item' , object : f
- else
-
- tree += render partial : 'tree/tree_item' , object : f , locals : {type : 'file' }
- end
- end
-
- tree .html_safe
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tree_hex_class (content)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def tree_hex_class (content )
- "file_#{hexdigest(content.name)}"
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tree_icon (type)
- click to toggle source
-
-
-
-
-
-
Return an image icon depending on the file type
-
-
type - String type of the tree item; either ‘folder’ or ‘file’
-
-
-
-
-
-def tree_icon (type )
- image = type == 'folder' ? 'file_dir.png' : 'file_txt.png'
- image_tag (image , size : '16x16' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- tree_join (*args)
- click to toggle source
-
-
-
-
-
-
Simple shortcut to File.join
-
-
-
-
-
-def tree_join (*args )
- File .join (*args )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/User.html b/doc/app/User.html
deleted file mode 100644
index 513f9644..00000000
--- a/doc/app/User.html
+++ /dev/null
@@ -1,755 +0,0 @@
-
-
-
-
-
-
-class User - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class User
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- force_random_password [RW]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create_from_omniauth (auth, ldap = false)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create_from_omniauth (auth , ldap = false )
- gitlab_auth .create_from_omniauth (auth , ldap )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- filter (filter_name)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def filter filter_name
- case filter_name
- when "admins" ; self .admins
- when "blocked" ; self .blocked
- when "wop" ; self .without_projects
- else
- self .active
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_for_ldap_auth (auth, signed_in_resource = nil)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def find_for_ldap_auth (auth , signed_in_resource = nil )
- gitlab_auth .find_for_ldap_auth (auth , signed_in_resource )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- find_or_new_for_omniauth (auth)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def find_or_new_for_omniauth (auth )
- gitlab_auth .find_or_new_for_omniauth (auth )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- gitlab_auth ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def gitlab_auth
- Gitlab :: Auth .new
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- search (query)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def search query
- where ("name LIKE :query or email LIKE :query" , query : "%#{query}%" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- without_projects ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def without_projects
- where ('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)' )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generate_password ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def generate_password
- if self .force_random_password
- self .password = self .password_confirmation = Devise .friendly_token .first (8 )
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/UserObserver.html b/doc/app/UserObserver.html
deleted file mode 100644
index 95c7249d..00000000
--- a/doc/app/UserObserver.html
+++ /dev/null
@@ -1,557 +0,0 @@
-
-
-
-
-
-
-class UserObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class UserObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (user )
- log_info ("User \"#{user.name}\" (#{user.email}) was created" )
-
- Notify .new_user_email (user .id , user .password ).deliver
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_destroy (user)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_destroy user
- log_info ("User \"#{user.name}\" (#{user.email}) was removed" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- log_info (message)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def log_info message
- Gitlab :: AppLogger .info message
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/UsersProject.html b/doc/app/UsersProject.html
deleted file mode 100644
index f157832b..00000000
--- a/doc/app/UsersProject.html
+++ /dev/null
@@ -1,904 +0,0 @@
-
-
-
-
-
-
-class UsersProject - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class UsersProject
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- DEVELOPER
-
-
-
-
- GUEST
-
-
-
-
- MASTER
-
-
-
-
- REPORTER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- access_roles ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def access_roles
- {
- "Guest" => GUEST ,
- "Reporter" => REPORTER ,
- "Developer" => DEVELOPER ,
- "Master" => MASTER
- }
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- bulk_delete (project, user_ids)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def bulk_delete (project , user_ids )
- UsersProject .transaction do
- UsersProject .where (:user_id => user_ids , :project_id => project .id ).each do | users_project |
- users_project .destroy
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- bulk_import (project, user_ids, project_access)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def bulk_import (project , user_ids , project_access )
- UsersProject .transaction do
- user_ids .each do | user_id |
- users_project = UsersProject .new (
- project_access : project_access ,
- user_id : user_id
- )
- users_project .project = project
- users_project .save
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- bulk_update (project, user_ids, project_access)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def bulk_update (project , user_ids , project_access )
- UsersProject .transaction do
- UsersProject .where (:user_id => user_ids , :project_id => project .id ).each do | users_project |
- users_project .project_access = project_access
- users_project .save
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- import_team (source_project, target_project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def import_team (source_project , target_project )
- UsersProject .without_repository_callback do
- UsersProject .transaction do
- team = source_project .users_projects .all
-
- team .each do | tm |
-
- next if target_project .users .include? (tm .user )
-
- new_tm = tm .dup
- new_tm .id = nil
- new_tm .project_id = target_project .id
- new_tm .save
- end
- end
- end
-
- target_project .update_repository
- true
-rescue
- false
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- user_bulk_import (user, project_ids, project_access)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def user_bulk_import (user , project_ids , project_access )
- UsersProject .transaction do
- project_ids .each do | project_id |
- users_project = UsersProject .new (
- project_access : project_access ,
- )
- users_project .project_id = project_id
- users_project .user_id = user .id
- users_project .save
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- without_repository_callback () { || ... }
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def without_repository_callback
- UsersProject .skip_callback (:destroy , :after , :update_repository )
- yield
- UsersProject .set_callback (:destroy , :after , :update_repository )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project_access_human ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def project_access_human
- Project .access_options .key (self .project_access )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- repo_access_human ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def repo_access_human
- self .class .access_roles .invert [self .project_access ]
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- role_access ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def role_access
- project_access
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- update_repository ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def update_repository
- git_host .update_repository (project )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/UsersProjectObserver.html b/doc/app/UsersProjectObserver.html
deleted file mode 100644
index 7c7b90a0..00000000
--- a/doc/app/UsersProjectObserver.html
+++ /dev/null
@@ -1,558 +0,0 @@
-
-
-
-
-
-
-class UsersProjectObserver - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class UsersProjectObserver
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_commit (users_project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_commit (users_project )
- return if users_project .destroyed?
- Notify .project_access_granted_email (users_project .id ).deliver
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_create (users_project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_create (users_project )
- Event .create (
- project_id : users_project .project .id ,
- action : Event :: Joined ,
- author_id : users_project .user .id
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- after_destroy (users_project)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def after_destroy (users_project )
- Event .create (
- project_id : users_project .project .id ,
- action : Event :: Left ,
- author_id : users_project .user .id
- )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Votes.html b/doc/app/Votes.html
deleted file mode 100644
index 9fa2a0b7..00000000
--- a/doc/app/Votes.html
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
-
-
-module Votes - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
module Votes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- downvotes ()
- click to toggle source
-
-
-
-
-
-
Return the number of -1 comments (downvotes)
-
-
-
-
-
-def downvotes
- notes .select (&:downvote? ).size
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- downvotes_in_percent ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def downvotes_in_percent
- if votes_count .zero?
- 0
- else
- 100.0 - upvotes_in_percent
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- upvotes ()
- click to toggle source
-
-
-
-
-
-
Return the number of +1 comments (upvotes)
-
-
-
-
-
-def upvotes
- notes .select (&:upvote? ).size
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- upvotes_in_percent ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def upvotes_in_percent
- if votes_count .zero?
- 0
- else
- 100.0 / votes_count * upvotes
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- votes_count ()
- click to toggle source
-
-
-
-
-
-
Return the total number of votes
-
-
-
-
-
-def votes_count
- upvotes + downvotes
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/WebHook.html b/doc/app/WebHook.html
deleted file mode 100644
index 44a89adb..00000000
--- a/doc/app/WebHook.html
+++ /dev/null
@@ -1,506 +0,0 @@
-
-
-
-
-
-
-class WebHook - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class WebHook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- execute (data)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def execute (data )
- parsed_url = URI .parse (url )
- if parsed_url .userinfo .blank?
- WebHook .post (url , body : data .to_json , headers : { "Content-Type" => "application/json" })
- else
- post_url = url .gsub ("#{parsed_url.userinfo}@" , "" )
- WebHook .post (post_url ,
- body : data .to_json ,
- headers : {"Content-Type" => "application/json" },
- basic_auth : {username : parsed_url .user , password : parsed_url .password })
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/Wiki.html b/doc/app/Wiki.html
deleted file mode 100644
index c2bf5b61..00000000
--- a/doc/app/Wiki.html
+++ /dev/null
@@ -1,567 +0,0 @@
-
-
-
-
-
-
-class Wiki - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class Wiki
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- regenerate_from (wiki)
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def self .regenerate_from wiki
- regenerated_field = [:slug , :content , :title ]
-
- new_wiki = Wiki .new
- regenerated_field .each do | field |
- new_wiki .send ("#{field}=" , wiki .send (field ))
- end
- new_wiki
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- to_param ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def to_param
- slug
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- set_slug ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def set_slug
- self .slug = self .title .parameterize
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/WikisController.html b/doc/app/WikisController.html
deleted file mode 100644
index 4a4e930c..00000000
--- a/doc/app/WikisController.html
+++ /dev/null
@@ -1,676 +0,0 @@
-
-
-
-
-
-
-class WikisController - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
class WikisController
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- create ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def create
- @wiki = @project .wikis .new (params [:wiki ])
- @wiki .user = current_user
-
- respond_to do | format |
- if @wiki .save
- format .html { redirect_to [@project , @wiki ], notice : 'Wiki was successfully updated.' }
- else
- format .html { render action : "edit" }
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def destroy
- @wikis = @project .wikis .where (slug : params [:id ]).delete_all
-
- respond_to do | format |
- format .html { redirect_to project_wiki_path (@project , :index ), notice : "Page was successfully deleted" }
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- edit ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def edit
- @wiki = @project .wikis .where (slug : params [:id ]).order ("created_at" ).last
- @wiki = Wiki .regenerate_from @wiki
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- history ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def history
- @wikis = @project .wikis .where (slug : params [:id ]).order ("created_at" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- pages ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def pages
- @wikis = @project .wikis .group (:slug ).order ("created_at" )
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
- show ()
- click to toggle source
-
-
-
-
-
-
-
-
-
-
-
-def show
- if params [:old_page_id ]
- @wiki = @project .wikis .find (params [:old_page_id ])
- else
- @wiki = @project .wikis .where (slug : params [:id ]).order ("created_at" ).last
- end
-
- @note = @project .notes .new (noteable : @wiki )
-
- if @wiki
- render 'show'
- else
- if can? (current_user , :write_wiki , @project )
- @wiki = @project .wikis .new (slug : params [:id ])
- render 'edit'
- else
- render 'empty'
- end
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc/app/created.rid b/doc/app/created.rid
deleted file mode 100644
index 972a7e6f..00000000
--- a/doc/app/created.rid
+++ /dev/null
@@ -1,135 +0,0 @@
-Thu, 25 Oct 2012 11:45:21 +0300
-doc/README_FOR_APP Wed, 06 Jun 2012 13:56:49 +0300
-app/observers/issue_observer.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/observers/key_observer.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/observers/project_observer.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/observers/activity_observer.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/observers/user_observer.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/observers/merge_request_observer.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/observers/note_observer.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/observers/system_hook_observer.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/observers/users_project_observer.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/contexts/test_hook_context.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/contexts/commit_load_context.rb Mon, 22 Oct 2012 16:08:19 +0300
-app/contexts/notes/create_context.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/contexts/notes/load_context.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/contexts/search_context.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/contexts/issues_bulk_update_context.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/contexts/base_context.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/contexts/merge_requests_load_context.rb Mon, 22 Oct 2012 16:08:19 +0300
-app/contexts/issues_list_context.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/mailers/notify.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/team.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/push_event.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/votes.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/roles/issue_commonality.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/git_host.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/roles/authority.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/push_observer.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/roles/account.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/static_model.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/roles/repository.rb Wed, 24 Oct 2012 12:43:00 +0300
-app/workers/post_receive.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/workers/system_hook_worker.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/controllers/issues_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/labels_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/project_resource_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/dashboard_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/projects_controller.rb Tue, 23 Oct 2012 11:29:23 +0300
-app/controllers/repositories_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/milestones_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/hooks_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/blob_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/merge_requests_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/admin/logs_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/admin/dashboard_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/admin/projects_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/admin/hooks_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/admin/team_members_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/admin/groups_controller.rb Wed, 24 Oct 2012 12:43:00 +0300
-app/controllers/admin/users_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/admin/resque_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/blame_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/keys_controller.rb Wed, 26 Sep 2012 13:10:32 +0300
-app/controllers/admin_controller.rb Wed, 26 Sep 2012 13:10:32 +0300
-app/controllers/errors_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/help_controller.rb Wed, 06 Jun 2012 13:56:49 +0300
-app/controllers/profile_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/commits_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/team_members_controller.rb Wed, 24 Oct 2012 16:14:03 +0300
-app/controllers/omniauth_callbacks_controller.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/controllers/protected_branches_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/snippets_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/groups_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/compare_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/wikis_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/search_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/deploy_keys_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/tree_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/commit_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/refs_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/controllers/application_controller.rb Wed, 24 Oct 2012 14:17:22 +0300
-app/controllers/notes_controller.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/uploaders/attachment_uploader.rb Wed, 22 Aug 2012 14:52:27 +0300
-app/models/tree.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/project.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/issue.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/project_hook.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/group.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/key.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/snippet.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/user.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/note.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/wiki.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/users_project.rb Wed, 24 Oct 2012 16:14:03 +0300
-app/models/web_hook.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/ability.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/milestone.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/commit.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/protected_branch.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/merge_request.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/event.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/models/system_hook.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/decorators/commit_decorator.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/decorators/event_decorator.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/decorators/application_decorator.rb Fri, 21 Sep 2012 15:40:04 +0300
-app/decorators/tree_decorator.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/tags_helper.rb Wed, 06 Jun 2012 13:56:49 +0300
-app/helpers/application_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/gitlab_markdown_helper.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/helpers/notes_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/profile_helper.rb Fri, 21 Sep 2012 15:47:07 +0300
-app/helpers/tree_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/commits_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/projects_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/events_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/issues_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/tab_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-app/helpers/snippets_helper.rb Wed, 06 Jun 2012 13:56:49 +0300
-app/helpers/merge_requests_helper.rb Mon, 22 Oct 2012 16:08:18 +0300
-lib/file_size_validator.rb Wed, 22 Aug 2012 14:52:27 +0300
-lib/api.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/gitlab/encode.rb Wed, 22 Aug 2012 14:52:27 +0300
-lib/gitlab/graph_commit.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/gitlab/theme.rb Tue, 26 Jun 2012 16:08:37 +0300
-lib/gitlab/app_logger.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/gitlab/inline_diff.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/merge.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/backend/gitolite.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/gitlab/backend/grack_auth.rb Mon, 22 Oct 2012 19:02:02 +0300
-lib/gitlab/backend/gitolite_config.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/git_logger.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/gitlab/markdown.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/file_editor.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/logger.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/satellite.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/gitlab/auth.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/extracts_path.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/api/issues.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/api/projects.rb Mon, 22 Oct 2012 16:08:18 +0300
-lib/api/helpers.rb Mon, 22 Oct 2012 16:08:18 +0300
-lib/api/entities.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/api/session.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/api/users.rb Mon, 22 Oct 2012 16:08:19 +0300
-lib/api/milestones.rb Fri, 21 Sep 2012 15:47:07 +0300
-lib/redcarpet/render/gitlab_html.rb Wed, 22 Aug 2012 14:52:27 +0300
diff --git a/doc/app/doc/README_FOR_APP.html b/doc/app/doc/README_FOR_APP.html
deleted file mode 100644
index 9456512e..00000000
--- a/doc/app/doc/README_FOR_APP.html
+++ /dev/null
@@ -1,399 +0,0 @@
-
-
-
-
-
-
-README_FOR_APP - Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Use this README file to introduce your application and point to useful
-places in the API for learning more. Run “rake doc:app” to generate API
-documentation for your models, controllers, helpers, and libraries.
-
-
-
-
-
-
-
diff --git a/doc/app/images/add.png b/doc/app/images/add.png
deleted file mode 100755
index 6332fefe..00000000
Binary files a/doc/app/images/add.png and /dev/null differ
diff --git a/doc/app/images/brick.png b/doc/app/images/brick.png
deleted file mode 100644
index 7851cf34..00000000
Binary files a/doc/app/images/brick.png and /dev/null differ
diff --git a/doc/app/images/brick_link.png b/doc/app/images/brick_link.png
deleted file mode 100644
index 9ebf013a..00000000
Binary files a/doc/app/images/brick_link.png and /dev/null differ
diff --git a/doc/app/images/bug.png b/doc/app/images/bug.png
deleted file mode 100644
index 2d5fb90e..00000000
Binary files a/doc/app/images/bug.png and /dev/null differ
diff --git a/doc/app/images/bullet_black.png b/doc/app/images/bullet_black.png
deleted file mode 100644
index 57619706..00000000
Binary files a/doc/app/images/bullet_black.png and /dev/null differ
diff --git a/doc/app/images/bullet_toggle_minus.png b/doc/app/images/bullet_toggle_minus.png
deleted file mode 100644
index b47ce55f..00000000
Binary files a/doc/app/images/bullet_toggle_minus.png and /dev/null differ
diff --git a/doc/app/images/bullet_toggle_plus.png b/doc/app/images/bullet_toggle_plus.png
deleted file mode 100644
index 9ab4a896..00000000
Binary files a/doc/app/images/bullet_toggle_plus.png and /dev/null differ
diff --git a/doc/app/images/date.png b/doc/app/images/date.png
deleted file mode 100644
index 783c8335..00000000
Binary files a/doc/app/images/date.png and /dev/null differ
diff --git a/doc/app/images/delete.png b/doc/app/images/delete.png
deleted file mode 100755
index 08f24936..00000000
Binary files a/doc/app/images/delete.png and /dev/null differ
diff --git a/doc/app/images/find.png b/doc/app/images/find.png
deleted file mode 100644
index 15474796..00000000
Binary files a/doc/app/images/find.png and /dev/null differ
diff --git a/doc/app/images/loadingAnimation.gif b/doc/app/images/loadingAnimation.gif
deleted file mode 100644
index 82290f48..00000000
Binary files a/doc/app/images/loadingAnimation.gif and /dev/null differ
diff --git a/doc/app/images/macFFBgHack.png b/doc/app/images/macFFBgHack.png
deleted file mode 100644
index c6473b32..00000000
Binary files a/doc/app/images/macFFBgHack.png and /dev/null differ
diff --git a/doc/app/images/package.png b/doc/app/images/package.png
deleted file mode 100644
index da3c2a2d..00000000
Binary files a/doc/app/images/package.png and /dev/null differ
diff --git a/doc/app/images/page_green.png b/doc/app/images/page_green.png
deleted file mode 100644
index de8e003f..00000000
Binary files a/doc/app/images/page_green.png and /dev/null differ
diff --git a/doc/app/images/page_white_text.png b/doc/app/images/page_white_text.png
deleted file mode 100644
index 813f712f..00000000
Binary files a/doc/app/images/page_white_text.png and /dev/null differ
diff --git a/doc/app/images/page_white_width.png b/doc/app/images/page_white_width.png
deleted file mode 100644
index 1eb88094..00000000
Binary files a/doc/app/images/page_white_width.png and /dev/null differ
diff --git a/doc/app/images/plugin.png b/doc/app/images/plugin.png
deleted file mode 100644
index 6187b15a..00000000
Binary files a/doc/app/images/plugin.png and /dev/null differ
diff --git a/doc/app/images/ruby.png b/doc/app/images/ruby.png
deleted file mode 100644
index f763a168..00000000
Binary files a/doc/app/images/ruby.png and /dev/null differ
diff --git a/doc/app/images/tag_blue.png b/doc/app/images/tag_blue.png
deleted file mode 100755
index 3f02b5f8..00000000
Binary files a/doc/app/images/tag_blue.png and /dev/null differ
diff --git a/doc/app/images/tag_green.png b/doc/app/images/tag_green.png
deleted file mode 100644
index 83ec984b..00000000
Binary files a/doc/app/images/tag_green.png and /dev/null differ
diff --git a/doc/app/images/transparent.png b/doc/app/images/transparent.png
deleted file mode 100644
index d665e179..00000000
Binary files a/doc/app/images/transparent.png and /dev/null differ
diff --git a/doc/app/images/wrench.png b/doc/app/images/wrench.png
deleted file mode 100644
index 5c8213fe..00000000
Binary files a/doc/app/images/wrench.png and /dev/null differ
diff --git a/doc/app/images/wrench_orange.png b/doc/app/images/wrench_orange.png
deleted file mode 100644
index 565a9330..00000000
Binary files a/doc/app/images/wrench_orange.png and /dev/null differ
diff --git a/doc/app/images/zoom.png b/doc/app/images/zoom.png
deleted file mode 100644
index 908612e3..00000000
Binary files a/doc/app/images/zoom.png and /dev/null differ
diff --git a/doc/app/index.html b/doc/app/index.html
deleted file mode 100644
index a46b4fbc..00000000
--- a/doc/app/index.html
+++ /dev/null
@@ -1,392 +0,0 @@
-
-
-
-
-
-
-Rails Application Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-This is the API documentation for Rails Application Documentation.
-
-
-
-
diff --git a/doc/app/js/darkfish.js b/doc/app/js/darkfish.js
deleted file mode 100644
index 4be722fa..00000000
--- a/doc/app/js/darkfish.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- *
- * Darkfish Page Functions
- * $Id: darkfish.js 53 2009-01-07 02:52:03Z deveiant $
- *
- * Author: Michael Granger
- *
- */
-
-/* Provide console simulation for firebug-less environments */
-if (!("console" in window) || !("firebug" in console)) {
- var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
- "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
-
- window.console = {};
- for (var i = 0; i < names.length; ++i)
- window.console[names[i]] = function() {};
-};
-
-
-/**
- * Unwrap the first element that matches the given @expr@ from the targets and return them.
- */
-$.fn.unwrap = function( expr ) {
- return this.each( function() {
- $(this).parents( expr ).eq( 0 ).after( this ).remove();
- });
-};
-
-
-function showSource( e ) {
- var target = e.target;
- var codeSections = $(target).
- parents('.method-detail').
- find('.method-source-code');
-
- $(target).
- parents('.method-detail').
- find('.method-source-code').
- slideToggle();
-};
-
-function hookSourceViews() {
- $('.method-heading').click( showSource );
-};
-
-function toggleDebuggingSection() {
- $('.debugging-section').slideToggle();
-};
-
-function hookDebuggingToggle() {
- $('#debugging-toggle img').click( toggleDebuggingSection );
-};
-
-function hookTableOfContentsToggle() {
- $('.indexpage li .toc-toggle').each( function() {
- $(this).click( function() {
- $(this).toggleClass('open');
- });
-
- var section = $(this).next();
-
- $(this).click( function() {
- section.slideToggle();
- });
- });
-}
-
-function hookSearch() {
- var input = $('#search-field').eq(0);
- var result = $('#search-results').eq(0);
- $(result).show();
-
- var search_section = $('#search-section').get(0);
- $(search_section).show();
-
- var search = new Search(search_data, input, result);
-
- search.renderItem = function(result) {
- var li = document.createElement('li');
- var html = '';
-
- // TODO add relative path to
-
-
-
-
-
-
-
-
-
-
-Table of Contents - Rails Application Documentation
-
-Pages
-
-
-Classes/Modules
-
-
-Methods
-
-
-
-
-
diff --git a/doc/code/apple-touch-icon.png b/doc/code/apple-touch-icon.png
new file mode 100644
index 00000000..50f98b0f
Binary files /dev/null and b/doc/code/apple-touch-icon.png differ
diff --git a/doc/code/classes/Ability.html b/doc/code/classes/Ability.html
new file mode 100644
index 00000000..c50e5d3e
--- /dev/null
+++ b/doc/code/classes/Ability.html
@@ -0,0 +1,507 @@
+
+
+
+
+ Ability
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Ability
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ G
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
allowed (object, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def allowed (object , subject )
+ case subject .class .name
+ when "Project" then project_abilities (object , subject )
+ when "Issue" then issue_abilities (object , subject )
+ when "Note" then note_abilities (object , subject )
+ when "Snippet" then snippet_abilities (object , subject )
+ when "MergeRequest" then merge_request_abilities (object , subject )
+ when "Group" then group_abilities (object , subject )
+ else []
+ end
+end
+
+
+
+
+
+
+
+
+
group_abilities (user, group)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def group_abilities user , group
+ rules = []
+
+ rules << [
+ :manage_group
+ ] if group .owner == user
+
+ rules .flatten
+end
+
+
+
+
+
+
+
+
+
project_abilities (user, project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_abilities (user , project )
+ rules = []
+
+
+ if project .master_access_for? (user )
+ rules << project_master_rules
+
+ elsif project .dev_access_for? (user )
+ rules << project_dev_rules
+
+ elsif project .report_access_for? (user )
+ rules << project_report_rules
+
+ elsif project .guest_access_for? (user )
+ rules << project_guest_rules
+ end
+
+ if project .namespace
+
+
+ if project .namespace .owner == user
+ rules << project_admin_rules
+ end
+ else
+
+
+ if project .owner == user
+ rules << project_admin_rules
+ end
+ end
+
+
+ rules .flatten
+end
+
+
+
+
+
+
+
+
+
project_admin_rules ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_admin_rules
+ project_master_rules + [
+ :change_namespace ,
+ :rename_project ,
+ :remove_project
+ ]
+end
+
+
+
+
+
+
+
+
+
project_dev_rules ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_dev_rules
+ project_report_rules + [
+ :write_wiki ,
+ :push_code
+ ]
+end
+
+
+
+
+
+
+
+
+
project_guest_rules ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_guest_rules
+ [
+ :read_project ,
+ :read_wiki ,
+ :read_issue ,
+ :read_milestone ,
+ :read_snippet ,
+ :read_team_member ,
+ :read_merge_request ,
+ :read_note ,
+ :write_project ,
+ :write_issue ,
+ :write_note
+ ]
+end
+
+
+
+
+
+
+
+
+
project_master_rules ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_master_rules
+ project_dev_rules + [
+ :push_code_to_protected_branches ,
+ :modify_issue ,
+ :modify_snippet ,
+ :modify_merge_request ,
+ :admin_issue ,
+ :admin_milestone ,
+ :admin_snippet ,
+ :admin_team_member ,
+ :admin_merge_request ,
+ :admin_note ,
+ :accept_mr ,
+ :admin_wiki ,
+ :admin_project
+ ]
+end
+
+
+
+
+
+
+
+
+
project_report_rules ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_report_rules
+ project_guest_rules + [
+ :download_code ,
+ :write_merge_request ,
+ :write_snippet
+ ]
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Account.html b/doc/code/classes/Account.html
new file mode 100644
index 00000000..21119cc8
--- /dev/null
+++ b/doc/code/classes/Account.html
@@ -0,0 +1,1032 @@
+
+
+
+
+ Account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ I
+
+
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
abilities ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def abilities
+ @abilities ||= begin
+ abilities = Six .new
+ abilities << Ability
+ abilities
+ end
+end
+
+
+
+
+
+
+
+
+
authorized_groups ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorized_groups
+ @authorized_groups ||= begin
+ groups = Group .where (id : self .projects .pluck (:namespace_id )).all
+ groups = groups + self .groups
+ groups .uniq
+ end
+end
+
+
+
+
+
+
+
+
+
authorized_projects ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorized_projects
+ Project .authorized_for (self )
+end
+
+
+
+
+
+
+
+
+
+
+
Remove user from all projects and set blocked attribute to true
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def block
+ users_projects .find_each do | membership |
+ return false unless membership .destroy
+ end
+
+ self .blocked = true
+ save
+end
+
+
+
+
+
+
+
+
+
can? (action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can? action , subject
+ abilities .allowed? (self , action , subject )
+end
+
+
+
+
+
+
+
+
+
can_create_group? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_create_group?
+ is_admin?
+end
+
+
+
+
+
+
+
+
+
can_create_project? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_create_project?
+ projects_limit > my_own_projects .count
+end
+
+
+
+
+
+
+
+
+
cared_merge_requests ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def cared_merge_requests
+ MergeRequest .where ("author_id = :id or assignee_id = :id" , id : self .id )
+end
+
+
+
+
+
+
+
+
+
first_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def first_name
+ name .split .first unless name .blank?
+end
+
+
+
+
+
+
+
+
+
identifier ()
+
+
Link
+
+
+
+
+
Returns a string for use as a Gitolite user identifier
+
+
Note that Gitolite 2.x requires the following
+pattern for users:
+
+
^@?[0-9a-zA-Z][0-9a-zA-Z._\@+-]*$
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def identifier
+
+
+ email .gsub (%r\W/ , '_' ).gsub (%r\A([\W\_])+/ , '' )
+end
+
+
+
+
+
+
+
+
+
is_admin? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_admin?
+ admin
+end
+
+
+
+
+
+
+
+
+
last_activity_project ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_activity_project
+ projects .first
+end
+
+
+
+
+
+
+
+
+
my_own_projects ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def my_own_projects
+ Project .personal (self )
+end
+
+
+
+
+
+
+
+
+
namespace_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespace_id
+ namespace .try :id
+end
+
+
+
+
+
+
+
+
+
namespaces ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespaces
+ namespaces = []
+
+
+ namespaces << self .namespace if self .namespace
+
+
+ namespaces += if admin
+ Group .all
+ else
+ groups .all
+ end
+ namespaces
+end
+
+
+
+
+
+
+
+
+
project_ids ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_ids
+ projects .map (&:id )
+end
+
+
+
+
+
+
+
+
+
projects_limit_percent ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def projects_limit_percent
+ return 100 if projects_limit .zero?
+ (my_own_projects .count .to_f / projects_limit ) * 100
+end
+
+
+
+
+
+
+
+
+
projects_sorted_by_activity ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def projects_sorted_by_activity
+ projects .sorted_by_activity
+end
+
+
+
+
+
+
+
+
+
recent_push (project_id = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def recent_push project_id = nil
+
+ events = recent_events .code_push .where ("created_at > ?" , Time .now - 2 .hours )
+ events = events .where (project_id : project_id ) if project_id
+
+
+ events = events .recent .limit (1 ).first
+end
+
+
+
+
+
+
+
+
+
require_ssh_key? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def require_ssh_key?
+ keys .count == 0
+end
+
+
+
+
+
+
+
+
+
several_namespaces? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def several_namespaces?
+ namespaces .size > 1
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActiveRecord.html b/doc/code/classes/ActiveRecord.html
new file mode 100644
index 00000000..fdf88c1c
--- /dev/null
+++ b/doc/code/classes/ActiveRecord.html
@@ -0,0 +1,79 @@
+
+
+
+
+ ActiveRecord
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ActiveRecord
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActiveRecord/ConnectionAdapters.html b/doc/code/classes/ActiveRecord/ConnectionAdapters.html
new file mode 100644
index 00000000..ec389166
--- /dev/null
+++ b/doc/code/classes/ActiveRecord/ConnectionAdapters.html
@@ -0,0 +1,86 @@
+
+
+
+
+ ActiveRecord::ConnectionAdapters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ActiveRecord::ConnectionAdapters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActiveRecord/ConnectionAdapters/Mysql2Adapter.html b/doc/code/classes/ActiveRecord/ConnectionAdapters/Mysql2Adapter.html
new file mode 100644
index 00000000..2c8d740a
--- /dev/null
+++ b/doc/code/classes/ActiveRecord/ConnectionAdapters/Mysql2Adapter.html
@@ -0,0 +1,167 @@
+
+
+
+
+ ActiveRecord::ConnectionAdapters::Mysql2Adapter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ActiveRecord::ConnectionAdapters::Mysql2Adapter
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
execute (*args)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute (*args )
+ execute_without_retry (*args )
+rescue ActiveRecord :: StatementInvalid => e
+ if e .message =~ %rserver has gone away/
+ warn "Server timed out, retrying"
+ reconnect!
+ retry
+ else
+ raise e
+ end
+end
+
+
+
+
+
+
+
+
+
execute_without_retry (*args)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter.html b/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter.html
new file mode 100644
index 00000000..0ee82105
--- /dev/null
+++ b/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter.html
@@ -0,0 +1,191 @@
+
+
+
+
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
add_column_with_limit_filter (table_name, column_name, type, options = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_column_with_limit_filter (table_name , column_name , type , options = {})
+ options .delete (:limit ) if type == :text
+ add_column_without_limit_filter (table_name , column_name , type , options )
+end
+
+
+
+
+
+
+
+
+
change_column_with_limit_filter (table_name, column_name, type, options = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def change_column_with_limit_filter (table_name , column_name , type , options = {})
+ options .delete (:limit ) if type == :text
+ change_column_without_limit_filter (table_name , column_name , type , options )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/TableDefinition.html b/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/TableDefinition.html
new file mode 100644
index 00000000..f2ea0db4
--- /dev/null
+++ b/doc/code/classes/ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/TableDefinition.html
@@ -0,0 +1,135 @@
+
+
+
+
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
text (*args)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def text (*args )
+ options = args .extract_options!
+ options .delete (:limit )
+ column_names = args
+ type = :text
+ column_names .each { | name | column (name , type , options ) }
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ActivityObserver.html b/doc/code/classes/ActivityObserver.html
new file mode 100644
index 00000000..31f4982e
--- /dev/null
+++ b/doc/code/classes/ActivityObserver.html
@@ -0,0 +1,194 @@
+
+
+
+
+ ActivityObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ActivityObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (record)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (record )
+ event_author_id = record .author_id
+
+
+ if record .kind_of? (Note ) && record .note .include? ("_Status changed to " )
+ return true
+ end
+
+ if event_author_id
+ Event .create (
+ project : record .project ,
+ target_id : record .id ,
+ target_type : record .class .name ,
+ action : Event .determine_action (record ),
+ author_id : event_author_id
+ )
+ end
+end
+
+
+
+
+
+
+
+
+
after_save (record)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_save (record )
+ if record .changed .include? ("closed" ) && record .author_id_of_changes
+ Event .create (
+ project : record .project ,
+ target_id : record .id ,
+ target_type : record .class .name ,
+ action : (record .closed ? Event :: Closed : Event :: Reopened ),
+ author_id : record .author_id_of_changes
+ )
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin.html b/doc/code/classes/Admin.html
new file mode 100644
index 00000000..ba82287d
--- /dev/null
+++ b/doc/code/classes/Admin.html
@@ -0,0 +1,114 @@
+
+
+
+
+ Admin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Admin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/DashboardController.html b/doc/code/classes/Admin/DashboardController.html
new file mode 100644
index 00000000..02643b7f
--- /dev/null
+++ b/doc/code/classes/Admin/DashboardController.html
@@ -0,0 +1,139 @@
+
+
+
+
+ Admin::DashboardController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Admin::DashboardController
+
+ <
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @projects = Project .order ("created_at DESC" ).limit (10 )
+ @users = User .order ("created_at DESC" ).limit (10 )
+
+ @resque_accessible = true
+ @workers = Resque .workers
+ @pending_jobs = Resque .size (:post_receive )
+
+rescue Redis :: InheritedError
+ @resque_accessible = false
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/GroupsController.html b/doc/code/classes/Admin/GroupsController.html
new file mode 100644
index 00000000..b3651e8b
--- /dev/null
+++ b/doc/code/classes/Admin/GroupsController.html
@@ -0,0 +1,586 @@
+
+
+
+
+ Admin::GroupsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Admin::GroupsController
+
+ <
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @group = Group .new (params [:group ])
+ @group .path = @group .name .dup .parameterize if @group .name
+ @group .owner = current_user
+
+ if @group .save
+ redirect_to [:admin , @group ], notice : 'Group was successfully created.'
+ else
+ render action : "new"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @group .truncate_teams
+
+ @group .destroy
+
+ redirect_to admin_groups_path , notice : 'Group was successfully deleted.'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @groups = Group .order ('name ASC' )
+ @groups = @groups .search (params [:name ]) if params [:name ].present?
+ @groups = @groups .page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @group = Group .new
+end
+
+
+
+
+
+
+
+
+
project_teams_update ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_teams_update
+ @group .add_users_to_project_teams (params [:user_ids ], params [:project_access ])
+ redirect_to [:admin , @group ], notice : 'Users was successfully added.'
+end
+
+
+
+
+
+
+
+
+
project_update ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_update
+ project_ids = params [:project_ids ]
+
+ Project .where (id : project_ids ).each do | project |
+ project .transfer (@group )
+ end
+
+ redirect_to :back , notice : 'Group was successfully updated.'
+end
+
+
+
+
+
+
+
+
+
remove_project ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def remove_project
+ @project = Project .find (params [:project_id ])
+ @project .transfer (nil )
+
+ redirect_to :back , notice : 'Group was successfully updated.'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @projects = Project .scoped
+ @projects = @projects .not_in_group (@group ) if @group .projects .present?
+ @projects = @projects .all
+ @projects .reject! (&:empty_repo? )
+
+ @users = User .active
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ group_params = params [:group ].dup
+ owner_id =group_params .delete (:owner_id )
+
+ if owner_id
+ @group .owner = User .find (owner_id )
+ end
+
+ if @group .update_attributes (group_params )
+ redirect_to [:admin , @group ], notice : 'Group was successfully updated.'
+ else
+ render action : "edit"
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/HooksController.html b/doc/code/classes/Admin/HooksController.html
new file mode 100644
index 00000000..1d56fbc7
--- /dev/null
+++ b/doc/code/classes/Admin/HooksController.html
@@ -0,0 +1,294 @@
+
+
+
+
+ Admin::HooksController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @hook = SystemHook .new (params [:hook ])
+
+ if @hook .save
+ redirect_to admin_hooks_path , notice : 'Hook was successfully created.'
+ else
+ @hooks = SystemHook .all
+ render :index
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @hook = SystemHook .find (params [:id ])
+ @hook .destroy
+
+ redirect_to admin_hooks_path
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @hooks = SystemHook .all
+ @hook = SystemHook .new
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def test
+ @hook = SystemHook .find (params [:hook_id ])
+ data = {
+ event_name : "project_create" ,
+ name : "Ruby" ,
+ path : "ruby" ,
+ project_id : 1 ,
+ owner_name : "Someone" ,
+ owner_email : "example@gitlabhq.com"
+ }
+ @hook .execute (data )
+
+ redirect_to :back
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/LogsController.html b/doc/code/classes/Admin/LogsController.html
new file mode 100644
index 00000000..8782d95f
--- /dev/null
+++ b/doc/code/classes/Admin/LogsController.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Admin::LogsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/ProjectsController.html b/doc/code/classes/Admin/ProjectsController.html
new file mode 100644
index 00000000..1a0bd492
--- /dev/null
+++ b/doc/code/classes/Admin/ProjectsController.html
@@ -0,0 +1,436 @@
+
+
+
+
+ Admin::ProjectsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Admin::ProjectsController
+
+ <
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ P
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+
+ @project .truncate_team
+
+ @project .destroy
+
+ redirect_to admin_projects_path , notice : 'Project was successfully deleted.'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @projects = Project .scoped
+ @projects = @projects .where (namespace_id : params [:namespace_id ]) if params [:namespace_id ].present?
+ @projects = @projects .where (namespace_id : nil ) if params [:namespace_id ] == Namespace .global_id
+ @projects = @projects .search (params [:name ]) if params [:name ].present?
+ @projects = @projects .includes (:namespace ).order ("namespaces.path, projects.name ASC" ).page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @users = User .active
+ @users = @users .not_in_project (@project ) if @project .users .present?
+ @users = @users .all
+end
+
+
+
+
+
+
+
+
+
team_update ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_update
+ @project .add_users_ids_to_team (params [:user_ids ], params [:project_access ])
+
+ redirect_to [:admin , @project ], notice : 'Project was successfully updated.'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ status = ProjectUpdateContext .new (project , current_user , params ).execute (:admin )
+
+ if status
+ redirect_to [:admin , @project ], notice : 'Project was successfully updated.'
+ else
+ render action : "edit"
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project
+ id = params [:project_id ] || params [:id ]
+
+ @project = Project .find_with_namespace (id )
+ @project || render_404
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/ResqueController.html b/doc/code/classes/Admin/ResqueController.html
new file mode 100644
index 00000000..52cb2f87
--- /dev/null
+++ b/doc/code/classes/Admin/ResqueController.html
@@ -0,0 +1,130 @@
+
+
+
+
+ Admin::ResqueController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Admin::ResqueController
+
+ <
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/TeamMembersController.html b/doc/code/classes/Admin/TeamMembersController.html
new file mode 100644
index 00000000..b055f509
--- /dev/null
+++ b/doc/code/classes/Admin/TeamMembersController.html
@@ -0,0 +1,234 @@
+
+
+
+
+ Admin::TeamMembersController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Admin::TeamMembersController
+
+ <
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @admin_team_member = UsersProject .find (params [:id ])
+ @admin_team_member .destroy
+
+ redirect_to :back
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ @admin_team_member = UsersProject .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @admin_team_member = UsersProject .find (params [:id ])
+
+ if @admin_team_member .update_attributes (params [:team_member ])
+ redirect_to [:admin , @admin_team_member .project ], notice : 'Project Access was successfully updated.'
+ else
+ render action : "edit"
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Admin/UsersController.html b/doc/code/classes/Admin/UsersController.html
new file mode 100644
index 00000000..cfe1e514
--- /dev/null
+++ b/doc/code/classes/Admin/UsersController.html
@@ -0,0 +1,616 @@
+
+
+
+
+ Admin::UsersController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def block
+ @admin_user = User .find (params [:id ])
+
+ if @admin_user .block
+ redirect_to :back , alert : "Successfully blocked"
+ else
+ redirect_to :back , alert : "Error occured. User was not blocked"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ admin = params [:user ].delete ("admin" )
+
+ @admin_user = User .new (params [:user ], as : :admin )
+ @admin_user .admin = (admin && admin .to_i > 0 )
+
+ respond_to do | format |
+ if @admin_user .save
+ format .html { redirect_to [:admin , @admin_user ], notice : 'User was successfully created.' }
+ format .json { render json : @admin_user , status : :created , location : @admin_user }
+ else
+ format .html { render action : "new" }
+ format .json { render json : @admin_user .errors , status : :unprocessable_entity }
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @admin_user = User .find (params [:id ])
+ if @admin_user .my_own_projects .count > 0
+ redirect_to admin_users_path , alert : "User is a project owner and can't be removed." and return
+ end
+ @admin_user .destroy
+
+ respond_to do | format |
+ format .html { redirect_to admin_users_url }
+ format .json { head :ok }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ @admin_user = User .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @admin_users = User .scoped
+ @admin_users = @admin_users .filter (params [:filter ])
+ @admin_users = @admin_users .search (params [:name ]) if params [:name ].present?
+ @admin_users = @admin_users .alphabetically .page (params [:page ])
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @admin_user = User .new ({ projects_limit : Gitlab .config .gitlab .default_projects_limit }, as : :admin )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @admin_user = User .find (params [:id ])
+
+ @projects = if @admin_user .projects .empty?
+ Project
+ else
+ Project .without_user (@admin_user )
+ end .all
+end
+
+
+
+
+
+
+
+
+
team_update ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_update
+ @admin_user = User .find (params [:id ])
+
+ UsersProject .user_bulk_import (
+ @admin_user ,
+ params [:project_ids ],
+ params [:project_access ]
+ )
+
+ redirect_to [:admin , @admin_user ], notice : 'Teams were successfully updated.'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unblock
+ @admin_user = User .find (params [:id ])
+
+ if @admin_user .update_attribute (:blocked , false )
+ redirect_to :back , alert : "Successfully unblocked"
+ else
+ redirect_to :back , alert : "Error occured. User was not unblocked"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ admin = params [:user ].delete ("admin" )
+
+ if params [:user ][:password ].blank?
+ params [:user ].delete (:password )
+ params [:user ].delete (:password_confirmation )
+ end
+
+ @admin_user = User .find (params [:id ])
+ @admin_user .admin = (admin && admin .to_i > 0 )
+
+ respond_to do | format |
+ if @admin_user .update_attributes (params [:user ], as : :admin )
+ format .html { redirect_to [:admin , @admin_user ], notice : 'User was successfully updated.' }
+ format .json { head :ok }
+ else
+ format .html { render action : "edit" }
+ format .json { render json : @admin_user .errors , status : :unprocessable_entity }
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/AdminController.html b/doc/code/classes/AdminController.html
new file mode 100644
index 00000000..629a30fe
--- /dev/null
+++ b/doc/code/classes/AdminController.html
@@ -0,0 +1,140 @@
+
+
+
+
+ AdminController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides a base class for Admin controllers to
+subclass
+
+
Automatically sets the layout and ensures an administrator is logged in
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
authenticate_admin! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authenticate_admin!
+ return render_404 unless current_user .is_admin?
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ApplicationController.html b/doc/code/classes/ApplicationController.html
new file mode 100644
index 00000000..f1c3bed9
--- /dev/null
+++ b/doc/code/classes/ApplicationController.html
@@ -0,0 +1,942 @@
+
+
+
+
+ ApplicationController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ApplicationController
+
+ <
+
+ ActionController::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ G
+
+
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
abilities ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def abilities
+ @abilities ||= Six .new
+end
+
+
+
+
+
+
+
+
+
access_denied! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def access_denied!
+ render "errors/access_denied" , layout : "errors" , status : 404
+end
+
+
+
+
+
+
+
+
+
add_abilities ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_abilities
+ abilities << Ability
+end
+
+
+
+
+
+
+
+
+
after_sign_in_path_for (resource)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_sign_in_path_for resource
+ if resource .is_a? (User ) && resource .respond_to? (:blocked ) && resource .blocked
+ sign_out resource
+ flash [:alert ] = "Your account is blocked. Retry when an admin unblock it."
+ new_user_session_path
+ else
+ super
+ end
+end
+
+
+
+
+
+
+
+
+
authorize_code_access! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_code_access!
+ return access_denied! unless can? (current_user , :download_code , project )
+end
+
+
+
+
+
+
+
+
+
authorize_project! (action)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_project! (action )
+ return access_denied! unless can? (current_user , action , project )
+end
+
+
+
+
+
+
+
+
+
can? (object, action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can? (object , action , subject )
+ abilities .allowed? (object , action , subject )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
git_not_found! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def git_not_found!
+ render "errors/git_not_found" , layout : "errors" , status : 404
+end
+
+
+
+
+
+
+
+
+
log_exception (exception)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log_exception (exception )
+ application_trace = ActionDispatch :: ExceptionWrapper .new (env , exception ).application_trace
+ application_trace .map! { | t | " #{t}\n" }
+ logger .error "\n#{exception.class.name} (#{exception.message}):\n#{application_trace.join}"
+end
+
+
+
+
+
+
+
+
+
method_missing (method_sym, *arguments, &block)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def method_missing (method_sym , *arguments , &block )
+ if method_sym .to_s =~ %r^authorize_(.*)!$/
+ authorize_project! ($1 .to_sym )
+ else
+ super
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
not_found! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def not_found!
+ render "errors/not_found" , layout : "errors" , status : 404
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project
+ id = params [:project_id ] || params [:id ]
+
+ @project = Project .find_with_namespace (id )
+
+ if @project and can? (current_user , :read_project , @project )
+ @project
+ else
+ @project = nil
+ render_404
+ end
+end
+
+
+
+
+
+
+
+
+
reject_blocked! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reject_blocked!
+ if current_user && current_user .blocked
+ sign_out current_user
+ flash [:alert ] = "Your account is blocked. Retry when an admin unblock it."
+ redirect_to new_user_session_path
+ end
+end
+
+
+
+
+
+
+
+
+
render_403 ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def render_403
+ render file : Rails .root .join ("public" , "403" ), layout : false , status : "403"
+end
+
+
+
+
+
+
+
+
+
render_404 ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def render_404
+ render file : Rails .root .join ("public" , "404" ), layout : false , status : "404"
+end
+
+
+
+
+
+
+
+
+
require_non_empty_project ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def require_non_empty_project
+ redirect_to @project if @project .empty_repo?
+end
+
+
+
+
+
+
+
+
+
set_current_user_for_observers ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def set_current_user_for_observers
+ MergeRequestObserver .current_user = current_user
+ IssueObserver .current_user = current_user
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ApplicationDecorator.html b/doc/code/classes/ApplicationDecorator.html
new file mode 100644
index 00000000..348cf42a
--- /dev/null
+++ b/doc/code/classes/ApplicationDecorator.html
@@ -0,0 +1,76 @@
+
+
+
+
+ ApplicationDecorator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ApplicationDecorator
+
+ <
+
+ Draper::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ApplicationHelper.html b/doc/code/classes/ApplicationHelper.html
new file mode 100644
index 00000000..2c3a82bb
--- /dev/null
+++ b/doc/code/classes/ApplicationHelper.html
@@ -0,0 +1,890 @@
+
+
+
+
+ ApplicationHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ApplicationHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ E
+
+
+
+
+ G
+
+
+
+
+ H
+
+
+
+
+ L
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
app_theme ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def app_theme
+ Gitlab :: Theme .css_class_by_id (current_user .try (:theme_id ))
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
current_action? (*args)
+
+
Link
+
+
+
+
+
Check if a partcular action is the current one
+
+
args - One or more action names to check
+
+
Examples
+
+
+current_action? (:new )
+current_action? (:create )
+current_action? (:new , :create )
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def current_action? (*args )
+ args .any? { | v | v .to_s .downcase == action_name }
+end
+
+
+
+
+
+
+
+
+
current_controller? (*args)
+
+
Link
+
+
+
+
+
Check if a particular controller is the current one
+
+
args - One or more controller names to check
+
+
Examples
+
+
+current_controller? (:tree )
+current_controller? (:commits )
+current_controller? (:commits , :tree )
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def current_controller? (*args )
+ args .any? { | v | v .to_s .downcase == controller .controller_name }
+end
+
+
+
+
+
+
+
+
+
emoji_autocomplete_source ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def emoji_autocomplete_source
+
+
+ Emoji .names .to_s
+end
+
+
+
+
+
+
+
+
+
gravatar_icon (user_email = '', size = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gravatar_icon (user_email = '' , size = nil )
+ size = 40 if size .nil? || size <= 0
+
+ if ! Gitlab .config .gravatar .enabled || user_email .blank?
+ 'no_avatar.png'
+ else
+ gravatar_url = request .ssl? ? Gitlab .config .gravatar .ssl_url : Gitlab .config .gravatar .plain_url
+ user_email .strip!
+ sprintf (gravatar_url , {:hash => Digest :: MD5 .hexdigest (user_email .downcase ), :email => URI .escape (user_email ), :size => size })
+ end
+end
+
+
+
+
+
+
+
+
+
grouped_options_refs (destination = :tree)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def grouped_options_refs (destination = :tree )
+ options = [
+ ["Branch" , @project .branch_names ],
+ [ "Tag" , @project .tag_names ]
+ ]
+
+
+
+ if (@ref && ! options .flatten .include? (@ref ) &&
+ @ref =~ %r^[0-9a-zA-Z]{6,52}$/ )
+ options << ["Commit" , [@ref ]]
+ end
+
+ grouped_options_for_select (options , @ref || @project .default_branch )
+end
+
+
+
+
+
+
+
+
+
hexdigest (string)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def hexdigest (string )
+ Digest :: SHA1 .hexdigest string
+end
+
+
+
+
+
+
+
+
+
last_commit (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_commit (project )
+ if project .repo_exists?
+ time_ago_in_words (project .commit .committed_date ) + " ago"
+ else
+ "Never"
+ end
+rescue
+ "Never"
+end
+
+
+
+
+
+
+
+
+
ldap_enable? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ldap_enable?
+ Devise .omniauth_providers .include? (:ldap )
+end
+
+
+
+
+
+
+
+
+
project_last_activity (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_last_activity project
+ activity = project .last_activity
+ if activity && activity .created_at
+ time_ago_in_words (activity .created_at ) + " ago"
+ else
+ "Never"
+ end
+end
+
+
+
+
+
+
+
+
+
request_protocol ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def request_protocol
+ request .ssl? ? "https" : "http"
+end
+
+
+
+
+
+
+
+
+
search_autocomplete_source ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search_autocomplete_source
+ projects = current_user .authorized_projects .map { | p | { label : p .name_with_namespace , url : project_path (p ) } }
+ groups = current_user .authorized_groups .map { | group | { label : "<group> #{group.name}" , url : group_path (group ) } }
+
+ default_nav = [
+ { label : "My Profile" , url : profile_path },
+ { label : "My SSH Keys" , url : keys_path },
+ { label : "My Dashboard" , url : root_path },
+ { label : "Admin Section" , url : admin_root_path },
+ ]
+
+ help_nav = [
+ { label : "Workflow Help" , url : help_workflow_path },
+ { label : "Permissions Help" , url : help_permissions_path },
+ { label : "Web Hooks Help" , url : help_web_hooks_path },
+ { label : "System Hooks Help" , url : help_system_hooks_path },
+ { label : "API Help" , url : help_api_path },
+ { label : "Markdown Help" , url : help_markdown_path },
+ { label : "SSH Keys Help" , url : help_ssh_path },
+ { label : "Gitlab Rake Tasks Help" , url : help_raketasks_path },
+ ]
+
+ project_nav = []
+ if @project && ! @project .new_record?
+ project_nav = [
+ { label : "#{@project.name} Issues" , url : project_issues_path (@project ) },
+ { label : "#{@project.name} Commits" , url : project_commits_path (@project , @ref || @project .root_ref ) },
+ { label : "#{@project.name} Merge Requests" , url : project_merge_requests_path (@project ) },
+ { label : "#{@project.name} Milestones" , url : project_milestones_path (@project ) },
+ { label : "#{@project.name} Snippets" , url : project_snippets_path (@project ) },
+ { label : "#{@project.name} Team" , url : project_team_index_path (@project ) },
+ { label : "#{@project.name} Tree" , url : project_tree_path (@project , @ref || @project .root_ref ) },
+ { label : "#{@project.name} Wall" , url : wall_project_path (@project ) },
+ { label : "#{@project.name} Wiki" , url : project_wikis_path (@project ) },
+ ]
+ end
+
+ [groups , projects , default_nav , project_nav , help_nav ].flatten .to_json
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
user_color_scheme_class ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def user_color_scheme_class
+ current_user .dark_scheme ? :black : :white
+end
+
+
+
+
+
+
+
+
+
web_app_url ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def web_app_url
+ "#{request_protocol}://#{Gitlab.config.gitlab.host}/"
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/AttachmentUploader.html b/doc/code/classes/AttachmentUploader.html
new file mode 100644
index 00000000..79bc7c98
--- /dev/null
+++ b/doc/code/classes/AttachmentUploader.html
@@ -0,0 +1,132 @@
+
+
+
+
+ AttachmentUploader
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ AttachmentUploader
+
+ <
+
+ CarrierWave::Uploader::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
store_dir ()
+
+
Link
+
+
+
+
+
Override the directory where uploaded files will be stored. This is a
+sensible default for uploaders that are meant to be mounted:
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def store_dir
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Authority.html b/doc/code/classes/Authority.html
new file mode 100644
index 00000000..fc93f4be
--- /dev/null
+++ b/doc/code/classes/Authority.html
@@ -0,0 +1,528 @@
+
+
+
+
+ Authority
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Authority
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ D
+
+
+
+
+ G
+
+
+
+
+ M
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
add_access (user, *access)
+
+
Link
+
+
+
+
+
Compatible with all access rights Should be rewrited for new access rights
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_access (user , *access )
+ access = if access .include? (:admin )
+ { project_access : UsersProject :: MASTER }
+ elsif access .include? (:write )
+ { project_access : UsersProject :: DEVELOPER }
+ else
+ { project_access : UsersProject :: REPORTER }
+ end
+ opts = { user : user }
+ opts .merge! (access )
+ users_projects .create (opts )
+end
+
+
+
+
+
+
+
+
+
allow_read_for? (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def allow_read_for? (user )
+ ! users_projects .where (user_id : user .id ).empty?
+end
+
+
+
+
+
+
+
+
+
dev_access_for? (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def dev_access_for? (user )
+ ! users_projects .where (user_id : user .id , project_access : [UsersProject :: DEVELOPER , UsersProject :: MASTER ]).empty?
+end
+
+
+
+
+
+
+
+
+
guest_access_for? (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def guest_access_for? (user )
+ ! users_projects .where (user_id : user .id ).empty?
+end
+
+
+
+
+
+
+
+
+
master_access_for? (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def master_access_for? (user )
+ ! users_projects .where (user_id : user .id , project_access : [UsersProject :: MASTER ]).empty?
+end
+
+
+
+
+
+
+
+
+
report_access_for? (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def report_access_for? (user )
+ ! users_projects .where (user_id : user .id , project_access : [UsersProject :: REPORTER , UsersProject :: DEVELOPER , UsersProject :: MASTER ]).empty?
+end
+
+
+
+
+
+
+
+
+
repository_masters ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repository_masters
+ keys = Key .joins ({user : :users_projects }).
+ where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: MASTER )
+ keys .map (&:identifier )
+end
+
+
+
+
+
+
+
+
+
repository_readers ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repository_readers
+ keys = Key .joins ({user : :users_projects }).
+ where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: REPORTER )
+ keys .map (&:identifier ) + deploy_keys .map (&:identifier )
+end
+
+
+
+
+
+
+
+
+
repository_writers ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repository_writers
+ keys = Key .joins ({user : :users_projects }).
+ where ("users_projects.project_id = ? AND users_projects.project_access = ?" , id , UsersProject :: DEVELOPER )
+ keys .map (&:identifier )
+end
+
+
+
+
+
+
+
+
+
reset_access (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reset_access (user )
+ users_projects .where (project_id : self .id , user_id : user .id ).destroy if self .id
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/BaseContext.html b/doc/code/classes/BaseContext.html
new file mode 100644
index 00000000..3fbc76bf
--- /dev/null
+++ b/doc/code/classes/BaseContext.html
@@ -0,0 +1,261 @@
+
+
+
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ BaseContext
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ current_user
+
+
+
+
+
+ [RW]
+
+ params
+
+
+
+
+
+ [RW]
+
+ project
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (project, user, params)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (project , user , params )
+ @project , @current_user , @params = project , user , params .dup
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
abilities ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def abilities
+ @abilities ||= begin
+ abilities = Six .new
+ abilities << Ability
+ abilities
+ end
+end
+
+
+
+
+
+
+
+
+
can? (object, action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can? (object , action , subject )
+ abilities .allowed? (object , action , subject )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/BlameController.html b/doc/code/classes/BlameController.html
new file mode 100644
index 00000000..2d641cb0
--- /dev/null
+++ b/doc/code/classes/BlameController.html
@@ -0,0 +1,152 @@
+
+
+
+
+ BlameController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Controller for viewing a file’s blame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @repo = @project .repo
+ @blame = Grit :: Blob .blame (@repo , @commit .id , @path )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/BlobController.html b/doc/code/classes/BlobController.html
new file mode 100644
index 00000000..22df013f
--- /dev/null
+++ b/doc/code/classes/BlobController.html
@@ -0,0 +1,160 @@
+
+
+
+
+ BlobController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Controller for viewing a file’s blame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ if @tree .is_blob?
+ send_data (
+ @tree .data ,
+ type : @tree .mime_type ,
+ disposition : 'inline' ,
+ filename : @tree .name
+ )
+ else
+ not_found!
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Commit.html b/doc/code/classes/Commit.html
new file mode 100644
index 00000000..15369b89
--- /dev/null
+++ b/doc/code/classes/Commit.html
@@ -0,0 +1,1077 @@
+
+
+
+
+ Commit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Commit
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ F
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ DIFF_SAFE_SIZE
+ =
+ 100
+
+
+
+
+ Safe amount of files with diffs in one commit to render Used to prevent 500
+error on huge commits by suppressing diff
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ commit
+
+
+
+
+
+ [RW]
+
+ head
+
+
+
+
+
+ [RW]
+
+ refs
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
commits (repo, ref, path = nil, limit = nil, offset = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits (repo , ref , path = nil , limit = nil , offset = nil )
+ if path
+ repo .log (ref , path , max_count : limit , skip : offset )
+ elsif limit && offset
+ repo .commits (ref , limit , offset )
+ else
+ repo .commits (ref )
+ end .map { | c | Commit .new (c ) }
+end
+
+
+
+
+
+
+
+
+
commits_between (repo, from, to)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_between (repo , from , to )
+ repo .commits_between (from , to ).map { | c | Commit .new (c ) }
+end
+
+
+
+
+
+
+
+
+
commits_since (repo, date)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_since (repo , date )
+ commits = repo .heads .map do | h |
+ repo .log (h .name , nil , since : date ).each { | c | Commit .new (c , h ) }
+ end .flatten .uniq { | c | c .id }
+
+ commits .sort! do | x , y |
+ y .committed_date <=> x .committed_date
+ end
+
+ commits
+end
+
+
+
+
+
+
+
+
+
commits_with_refs (repo, n = 20)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_with_refs (repo , n = 20 )
+ commits = repo .branches .map { | ref | Commit .new (ref .commit , ref ) }
+
+ commits .sort! do | x , y |
+ y .committed_date <=> x .committed_date
+ end
+
+ commits [0 .. n ]
+end
+
+
+
+
+
+
+
+
+
compare (project, from, to)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def compare (project , from , to )
+ result = {
+ commits : [],
+ diffs : [],
+ commit : nil ,
+ same : false
+ }
+
+ return result unless from && to
+
+ first = project .commit (to .try (:strip ))
+ last = project .commit (from .try (:strip ))
+
+ if first && last
+ result [:same ] = (first .id == last .id )
+ result [:commits ] = project .repo .commits_between (last .id , first .id ).map {| c | Commit .new (c )}
+ result [:diffs ] = project .repo .diff (last .id , first .id ) rescue []
+ result [:commit ] = Commit .new (first )
+ end
+
+ result
+end
+
+
+
+
+
+
+
+
+
find_or_first (repo, commit_id = nil, root_ref)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_or_first (repo , commit_id = nil , root_ref )
+ commit = if commit_id
+ repo .commit (commit_id )
+ else
+ repo .commits (root_ref ).first
+ end
+
+ Commit .new (commit ) if commit
+end
+
+
+
+
+
+
+
+
+
fresh_commits (repo, n = 10)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def fresh_commits (repo , n = 10 )
+ commits = repo .heads .map do | h |
+ repo .commits (h .name , n ).map { | c | Commit .new (c , h ) }
+ end .flatten .uniq { | c | c .id }
+
+ commits .sort! do | x , y |
+ y .committed_date <=> x .committed_date
+ end
+
+ commits [0 ... n ]
+end
+
+
+
+
+
+
+
+
+
new (raw_commit, head = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (raw_commit , head = nil )
+ @commit = raw_commit
+ @head = head
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
author_email ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def author_email
+ author .email
+end
+
+
+
+
+
+
+
+
+
author_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def author_name
+ author .name
+end
+
+
+
+
+
+
+
+
+
committer_email ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def committer_email
+ committer .email
+end
+
+
+
+
+
+
+
+
+
committer_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def committer_name
+ committer .name
+end
+
+
+
+
+
+
+
+
+
created_at ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def created_at
+ committed_date
+end
+
+
+
+
+
+
+
+
+
different_committer? ()
+
+
Link
+
+
+
+
+
Was this commit committed by a different person than the original author?
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def different_committer?
+ author_name != committer_name || author_email != committer_email
+end
+
+
+
+
+
+
+
+
+
parents_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def parents_count
+ parents && parents .count || 0
+end
+
+
+
+
+
+
+
+
+
prev_commit ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def prev_commit
+ parents .try :first
+end
+
+
+
+
+
+
+
+
+
prev_commit_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def prev_commit_id
+ prev_commit .try :id
+end
+
+
+
+
+
+
+
+
+
safe_message ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def safe_message
+ @safe_message ||= message
+end
+
+
+
+
+
+
+
+
+
short_id (length = 10)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def short_id (length = 10 )
+ id .to_s [0 .. length ]
+end
+
+
+
+
+
+
+
+
+
+
+
Shows the diff between the commit’s parent and the commit.
+
+
Cuts out the header and stats from to_patch and returns only the diff.
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_diff
+
+ patch = to_patch
+
+
+ lines = patch .split ("\n" )
+ while ! lines .first .start_with? ("diff --git" ) do
+ lines .shift
+ end
+ lines .pop if lines .last =~ %r^[\d.]+$/
+ lines .pop if lines .last == "-- "
+ lines .join ("\n" )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CommitController.html b/doc/code/classes/CommitController.html
new file mode 100644
index 00000000..5f0bbe9e
--- /dev/null
+++ b/doc/code/classes/CommitController.html
@@ -0,0 +1,160 @@
+
+
+
+
+ CommitController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ result = CommitLoadContext .new (project , current_user , params ).execute
+
+ @commit = result [:commit ]
+ git_not_found! unless @commit
+
+ @suppress_diff = result [:suppress_diff ]
+ @note = result [:note ]
+ @line_notes = result [:line_notes ]
+ @notes_count = result [:notes_count ]
+ @comments_allowed = true
+
+ respond_to do | format |
+ format .html do
+ if result [:status ] == :huge_commit
+ render "huge_commit" and return
+ end
+ end
+
+ format .diff { render text : @commit .to_diff }
+ format .patch { render text : @commit .to_patch }
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CommitDecorator.html b/doc/code/classes/CommitDecorator.html
new file mode 100644
index 00000000..90630578
--- /dev/null
+++ b/doc/code/classes/CommitDecorator.html
@@ -0,0 +1,472 @@
+
+
+
+
+ CommitDecorator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ L
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
author_link (options = {})
+
+
Link
+
+
+
+
+
Returns a link to the commit author. If the author has a matching user and
+is a member of the current @project it will link to the team member page.
+Otherwise it will link to the author email as specified in the commit.
+
+
options:
+
+
avatar: true will prepend the avatar image
+size: size of the avatar image in px
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def author_link (options = {})
+ person_link (options .merge source : :author )
+end
+
+
+
+
+
+
+
+
+
committer_link (options = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def committer_link (options = {})
+ person_link (options .merge source : :committer )
+end
+
+
+
+
+
+
+
+
+
description ()
+
+
Link
+
+
+
+
+
Returns the commits description
+
+
cut off, ellipses (`&hellp;`) are prepended to the commit message.
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def description
+ description = safe_message
+
+ title_end = description .index (%r\n/ )
+ if (! title_end && description .length > 80 ) || (title_end && title_end > 80 )
+ "…" .html_safe << description [70 .. -1 ]
+ else
+ description .split (%r\n/ , 2 )[1 ].try (:chomp )
+ end
+end
+
+
+
+
+
+
+
+
+
link_title ()
+
+
Link
+
+
+
+
+
Returns a string describing the commit for use in a link title
+
+
Example
+
+
"Commit: Alex Denisov - Project git clone panel"
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_title
+ "Commit: #{author_name} - #{title}"
+end
+
+
+
+
+
+
+
+
+
+
+
Returns the commits title.
+
+
Usually, the commit title is the first line of the commit message. In case
+this first line is longer than 80 characters, it is cut off after 70
+characters and ellipses (`&hellp;`) are appended.
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def title
+ title = safe_message
+
+ return no_commit_message if title .blank?
+
+ title_end = title .index (%r\n/ )
+ if (! title_end && title .length > 80 ) || (title_end && title_end > 80 )
+ title [0 .. 69 ] << "…" .html_safe
+ else
+ title .split (%r\n/ , 2 ).first
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
no_commit_message ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def no_commit_message
+ "--no commit message"
+end
+
+
+
+
+
+
+
+
+
person_link (options = {})
+
+
Link
+
+
+
+
+
Private: Returns a link to a person. If the person has a matching user and
+is a member of the current @project it will link to the team member page.
+Otherwise it will link to the person email as specified in the commit.
+
+
options:
+
+
source: one of :author or :committer
+avatar: true will prepend the avatar image
+size: size of the avatar image in px
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def person_link (options = {})
+ source_name = send "#{options[:source]}_name" .to_sym
+ source_email = send "#{options[:source]}_email" .to_sym
+ text = if options [:avatar ]
+ avatar = h .image_tag h .gravatar_icon (source_email , options [:size ]), class : "avatar #{"s#{options[:size]}" if options[:size]}" , width : options [:size ], alt : ""
+ %Q{#{avatar} <span class="commit-#{options[:source]}-name">#{source_name}</span>}
+ else
+ source_name
+ end
+ team_member = @project .try (:team_member_by_name_or_email , source_name , source_email )
+
+ if team_member .nil?
+ h .mail_to source_email , text .html_safe , class : "commit-#{options[:source]}-link"
+ else
+ h .link_to text , h .project_team_member_path (@project , team_member ), class : "commit-#{options[:source]}-link"
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CommitLoadContext.html b/doc/code/classes/CommitLoadContext.html
new file mode 100644
index 00000000..82c04feb
--- /dev/null
+++ b/doc/code/classes/CommitLoadContext.html
@@ -0,0 +1,159 @@
+
+
+
+
+ CommitLoadContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ CommitLoadContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ result = {
+ commit : nil ,
+ suppress_diff : false ,
+ line_notes : [],
+ notes_count : 0 ,
+ note : nil ,
+ status : :ok
+ }
+
+ commit = project .commit (params [:id ])
+
+ if commit
+ commit = CommitDecorator .decorate (commit )
+ line_notes = project .commit_line_notes (commit )
+
+ result [:commit ] = commit
+ result [:note ] = project .build_commit_note (commit )
+ result [:line_notes ] = line_notes
+ result [:notes_count ] = line_notes .count + project .commit_notes (commit ).count
+
+ begin
+ result [:suppress_diff ] = true if commit .diffs .size > Commit :: DIFF_SAFE_SIZE && ! params [:force_show_diff ]
+ rescue Grit :: Git :: GitTimeout
+ result [:suppress_diff ] = true
+ result [:status ] = :huge_commit
+ end
+ end
+
+ result
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CommitsController.html b/doc/code/classes/CommitsController.html
new file mode 100644
index 00000000..53d32967
--- /dev/null
+++ b/doc/code/classes/CommitsController.html
@@ -0,0 +1,155 @@
+
+
+
+
+ CommitsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @repo = @project .repo
+ @limit , @offset = (params [:limit ] || 40 ), (params [:offset ] || 0 )
+
+ @commits = @project .commits (@ref , @path , @limit , @offset )
+ @commits = CommitDecorator .decorate (@commits )
+
+ respond_to do | format |
+ format .html
+ format .js
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CommitsHelper.html b/doc/code/classes/CommitsHelper.html
new file mode 100644
index 00000000..4e4addfb
--- /dev/null
+++ b/doc/code/classes/CommitsHelper.html
@@ -0,0 +1,409 @@
+
+
+
+
+ CommitsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ CommitsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
build_line_anchor (index, line_new, line_old)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def build_line_anchor (index , line_new , line_old )
+ "#{index}_#{line_old}_#{line_new}"
+end
+
+
+
+
+
+
+
+
+
commit_to_html (commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_to_html commit
+ if commit .model
+ escape_javascript (render 'commits/commit' , commit : commit )
+ end
+end
+
+
+
+
+
+
+
+
+
diff_line_content (line)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def diff_line_content (line )
+ if line .blank?
+ " "
+ else
+ line
+ end
+end
+
+
+
+
+
+
+
+
+
each_diff_line (diff_arr, index)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def each_diff_line (diff_arr , index )
+ line_old = 1
+ line_new = 1
+ type = nil
+
+ lines_arr = :: Gitlab :: InlineDiff .processing diff_arr
+ lines_arr .each do | line |
+ next if line .match (%r^\-\-\- \/dev\/null/ )
+ next if line .match (%r^\+\+\+ \/dev\/null/ )
+ next if line .match (%r^\-\-\- a/ )
+ next if line .match (%r^\+\+\+ b/ )
+
+ full_line = html_escape (line .gsub (%r\n/ , '' ))
+ full_line = :: Gitlab :: InlineDiff .replace_markers full_line
+
+ if line .match (%r^@@ -/ )
+ type = "match"
+
+ line_old = line .match (%r\-[0-9]*/ )[0 ].to_i .abs rescue 0
+ line_new = line .match (%r\+[0-9]*/ )[0 ].to_i .abs rescue 0
+
+ next if line_old == 1 && line_new == 1
+ yield (full_line , type , nil , nil , nil )
+ next
+ else
+ type = identification_type (line )
+ line_code = build_line_anchor (index , line_new , line_old )
+ yield (full_line , type , line_code , line_new , line_old )
+ end
+
+
+ if line [0 ] == "+"
+ line_new += 1
+ elsif line [0 ] == "-"
+ line_old += 1
+ else
+ line_new += 1
+ line_old += 1
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
identification_type (line)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def identification_type (line )
+ if line [0 ] == "+"
+ "new"
+ elsif line [0 ] == "-"
+ "old"
+ else
+ nil
+ end
+end
+
+
+
+
+
+
+
+
+
image_diff_class (diff)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def image_diff_class (diff )
+ if diff .deleted_file
+ "diff_removed"
+ elsif diff .new_file
+ "diff_added"
+ else
+ nil
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/CompareController.html b/doc/code/classes/CompareController.html
new file mode 100644
index 00000000..3db60f96
--- /dev/null
+++ b/doc/code/classes/CompareController.html
@@ -0,0 +1,232 @@
+
+
+
+
+ CompareController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ I
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ redirect_to project_compare_path (@project , params [:from ], params [:to ])
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ result = Commit .compare (project , params [:from ], params [:to ])
+
+ @commits = result [:commits ]
+ @commit = result [:commit ]
+ @diffs = result [:diffs ]
+ @refs_are_same = result [:same ]
+ @line_notes = []
+
+ @commits = CommitDecorator .decorate (@commits )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/DashboardController.html b/doc/code/classes/DashboardController.html
new file mode 100644
index 00000000..ae8b126d
--- /dev/null
+++ b/doc/code/classes/DashboardController.html
@@ -0,0 +1,411 @@
+
+
+
+
+ DashboardController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @groups = current_user .authorized_groups
+
+ @has_authorized_projects = @projects .count > 0
+
+ @projects = case params [:scope ]
+ when 'personal' then
+ @projects .personal (current_user )
+ when 'joined' then
+ @projects .joined (current_user )
+ else
+ @projects
+ end
+
+ @projects = @projects .page (params [:page ]).per (30 )
+
+ @events = Event .in_projects (current_user .project_ids )
+ @events = @event_filter .apply_filter (@events )
+ @events = @events .limit (20 ).offset (params [:offset ] || 0 )
+
+ @last_push = current_user .recent_push
+
+ respond_to do | format |
+ format .html
+ format .js
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
Get only assigned issues
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues
+ @issues = current_user .assigned_issues
+ @issues = dashboard_filter (@issues )
+ @issues = @issues .recent .page (params [:page ]).per (20 )
+ @issues = @issues .includes (:author , :project )
+
+ respond_to do | format |
+ format .html
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
merge_requests ()
+
+
Link
+
+
+
+
+
Get authored or assigned open merge requests
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_requests
+ @merge_requests = current_user .cared_merge_requests
+ @merge_requests = dashboard_filter (@merge_requests )
+ @merge_requests = @merge_requests .recent .page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
dashboard_filter (items)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def dashboard_filter items
+ if params [:project_id ]
+ items = items .where (project_id : params [:project_id ])
+ end
+
+ if params [:search ].present?
+ items = items .search (params [:search ])
+ end
+
+ case params [:status ]
+ when 'closed'
+ items .closed
+ when 'all'
+ items
+ else
+ items .opened
+ end
+end
+
+
+
+
+
+
+
+
+
event_filter ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def event_filter
+ @event_filter ||= EventFilter .new (params [:event_filter ])
+end
+
+
+
+
+
+
+
+
+
projects ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def projects
+ @projects = current_user .authorized_projects .sorted_by_activity
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/DashboardHelper.html b/doc/code/classes/DashboardHelper.html
new file mode 100644
index 00000000..6fcb426c
--- /dev/null
+++ b/doc/code/classes/DashboardHelper.html
@@ -0,0 +1,195 @@
+
+
+
+
+ DashboardHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ DashboardHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
dashboard_filter_path (entity, options={})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def dashboard_filter_path (entity , options ={})
+ exist_opts = {
+ status : params [:status ],
+ project_id : params [:project_id ],
+ }
+
+ options = exist_opts .merge (options )
+
+ case entity
+ when 'issue' then
+ dashboard_issues_path (options )
+ when 'merge_request'
+ dashboard_merge_requests_path (options )
+ end
+end
+
+
+
+
+
+
+
+
+
entities_per_project (project, entity)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def entities_per_project project , entity
+ items = project .items_for (entity )
+
+ items = case params [:status ]
+ when 'closed'
+ items .closed
+ when 'all'
+ items
+ else
+ items .opened
+ end
+
+ items .where (assignee_id : current_user .id ).count
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/DeployKeysController.html b/doc/code/classes/DeployKeysController.html
new file mode 100644
index 00000000..952d295c
--- /dev/null
+++ b/doc/code/classes/DeployKeysController.html
@@ -0,0 +1,332 @@
+
+
+
+
+ DeployKeysController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @key = @project .deploy_keys .new (params [:key ])
+ if @key .save
+ redirect_to project_deploy_keys_path (@project )
+ else
+ render "new"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @key = @project .deploy_keys .find (params [:id ])
+ @key .destroy
+
+ respond_to do | format |
+ format .html { redirect_to project_deploy_keys_url }
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @keys = @project .deploy_keys .all
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @key = @project .deploy_keys .new
+
+ respond_with (@key )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @key = @project .deploy_keys .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ErrorsController.html b/doc/code/classes/ErrorsController.html
new file mode 100644
index 00000000..b03cc04c
--- /dev/null
+++ b/doc/code/classes/ErrorsController.html
@@ -0,0 +1,131 @@
+
+
+
+
+ ErrorsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def githost
+ render "errors/gitolite"
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Event.html b/doc/code/classes/Event.html
new file mode 100644
index 00000000..608db599
--- /dev/null
+++ b/doc/code/classes/Event.html
@@ -0,0 +1,1266 @@
+
+
+
+
+ Event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Event
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: events
+
+
id :integer not null, primary key
+target_type :string(255)
+target_id :integer
+title :string(255)
+data :text
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+action :integer
+author_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ J
+
+
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ Created
+ =
+ 1
+
+
+
+
+
+
+
+
+
+ Updated
+ =
+ 2
+
+
+
+
+
+
+
+
+
+ Closed
+ =
+ 3
+
+
+
+
+
+
+
+
+
+ Reopened
+ =
+ 4
+
+
+
+
+
+
+
+
+
+ Pushed
+ =
+ 5
+
+
+
+
+
+
+
+
+
+ Commented
+ =
+ 6
+
+
+
+
+
+
+
+
+
+ Merged
+ =
+ 7
+
+
+
+
+
+
+
+
+
+ Joined
+ =
+ 8
+
+
+
+
+
+
+
+
+
+ Left
+ =
+ 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
determine_action (record)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def determine_action (record )
+ if [Issue , MergeRequest ].include? record .class
+ Event :: Created
+ elsif record .kind_of? Note
+ Event :: Commented
+ end
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
action_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def action_name
+ if closed?
+ "closed"
+ elsif merged?
+ "merged"
+ elsif joined?
+ 'joined'
+ elsif left?
+ 'left'
+ else
+ "opened"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def author
+ @author ||= User .find (author_id )
+end
+
+
+
+
+
+
+
+
+
changed_issue? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def changed_issue?
+ target_type == "Issue" &&
+ [Closed , Reopened ].include? (action )
+end
+
+
+
+
+
+
+
+
+
changed_merge_request? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def changed_merge_request?
+ target_type == "MergeRequest" &&
+ [Closed , Reopened ].include? (action )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def closed?
+ action == self .class :: Closed
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issue
+ target if target_type == "Issue"
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issue?
+ target_type == "Issue"
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def joined?
+ action == Joined
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def left?
+ action == Left
+end
+
+
+
+
+
+
+
+
+
membership_changed? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def membership_changed?
+ joined? || left?
+end
+
+
+
+
+
+
+
+
+
merge_request ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_request
+ target if target_type == "MergeRequest"
+end
+
+
+
+
+
+
+
+
+
merge_request? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_request?
+ target_type == "MergeRequest"
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merged?
+ action == self .class :: Merged
+end
+
+
+
+
+
+
+
+
+
milestone? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def milestone?
+ target_type == "Milestone"
+end
+
+
+
+
+
+
+
+
+
new_issue? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_issue?
+ target_type == "Issue" &&
+ action == Created
+end
+
+
+
+
+
+
+
+
+
new_merge_request? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_merge_request?
+ target_type == "MergeRequest" &&
+ action == Created
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note?
+ target_type == "Note"
+end
+
+
+
+
+
+
+
+
+
project_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_name
+ if project
+ project .name
+ else
+ "(deleted project)"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def proper?
+ if push?
+ true
+ elsif membership_changed?
+ true
+ else
+ (issue? || merge_request? || note? || milestone? ) && target
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def push?
+ action == self .class :: Pushed && valid_push?
+end
+
+
+
+
+
+
+
+
+
reopened? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reopened?
+ action == self .class :: Reopened
+end
+
+
+
+
+
+
+
+
+
target_title ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def target_title
+ target .try :title
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/EventDecorator.html b/doc/code/classes/EventDecorator.html
new file mode 100644
index 00000000..1fdf7f5c
--- /dev/null
+++ b/doc/code/classes/EventDecorator.html
@@ -0,0 +1,240 @@
+
+
+
+
+ EventDecorator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ F
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
feed_summary ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def feed_summary
+ if self .issue?
+ h .render "events/event_issue" , issue : self .issue
+ elsif self .push?
+ h .render "events/event_push" , event : self
+ end
+end
+
+
+
+
+
+
+
+
+
feed_title ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def feed_title
+ if self .issue?
+ "#{self.author_name} #{self.action_name} issue ##{self.target_id}: #{self.issue_title} at #{self.project.name}"
+ elsif self .merge_request?
+ "#{self.author_name} #{self.action_name} MR ##{self.target_id}: #{self.merge_request_title} at #{self.project.name}"
+ elsif self .push?
+ "#{self.author_name} #{self.push_action_name} #{self.ref_type} #{self.ref_name} at #{self.project.name}"
+ elsif self .membership_changed?
+ "#{self.author_name} #{self.action_name} #{self.project.name}"
+ else
+ ""
+ end
+end
+
+
+
+
+
+
+
+
+
feed_url ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def feed_url
+ if self .issue?
+ h .project_issue_url (self .project , self .issue )
+ elsif self .merge_request?
+ h .project_merge_request_url (self .project , self .merge_request )
+
+ elsif self .push?
+ if self .push_with_commits?
+ if self .commits_count > 1
+ h .project_compare_url (self .project , :from => self .parent_commit .id , :to => self .last_commit .id )
+ else
+ h .project_commit_url (self .project , :id => self .last_commit .id )
+ end
+ else
+ h .project_commits_url (self .project , self .ref_name )
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/EventFilter.html b/doc/code/classes/EventFilter.html
new file mode 100644
index 00000000..5bf01133
--- /dev/null
+++ b/doc/code/classes/EventFilter.html
@@ -0,0 +1,543 @@
+
+
+
+
+ EventFilter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ EventFilter
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ O
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ params
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
default_filter ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def default_filter
+ %w{ push issues merge_requests team}
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merged
+ 'merged'
+end
+
+
+
+
+
+
+
+
+
new (params)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize params
+ @params = if params
+ params .dup
+ else
+ []
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def push
+ 'push'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team
+ 'team'
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
active? (key)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def active? key
+ params .include? key
+end
+
+
+
+
+
+
+
+
+
apply_filter (events)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def apply_filter events
+ return events unless params .present?
+
+ filter = params .dup
+
+ actions = []
+ actions << Event :: Pushed if filter .include? 'push'
+ actions << Event :: Merged if filter .include? 'merged'
+
+ if filter .include? 'team'
+ actions << Event :: Joined
+ actions << Event :: Left
+ end
+
+ actions << Event :: Commented if filter .include? 'comments'
+
+ events = events .where (action : actions )
+end
+
+
+
+
+
+
+
+
+
options (key)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def options key
+ filter = params .dup
+
+ if filter .include? key
+ filter .delete key
+ else
+ filter << key
+ end
+
+ filter
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/EventsHelper.html b/doc/code/classes/EventsHelper.html
new file mode 100644
index 00000000..7c7041c6
--- /dev/null
+++ b/doc/code/classes/EventsHelper.html
@@ -0,0 +1,289 @@
+
+
+
+
+ EventsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ EventsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
event_action_name (event)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def event_action_name (event )
+ target = if event .target_type
+ event .target_type .titleize .downcase
+ else
+ 'project'
+ end
+
+ [event .action_name , target ].join (" " )
+end
+
+
+
+
+
+
+
+
+
event_filter_link (key, tooltip)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def event_filter_link key , tooltip
+ key = key .to_s
+
+ filter = @event_filter .options key
+
+ inactive = if @event_filter .active? key
+ nil
+ else
+ 'inactive'
+ end
+
+ content_tag :div , class : "filter_icon #{inactive}" do
+ link_to dashboard_path (event_filter : filter ), class : 'has_tooltip' , 'data-original-title' => tooltip do
+ image_tag "event_filter_#{key}.png"
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
event_image (event)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def event_image event
+ event_image_path = if event .push?
+ "event_push.png"
+ elsif event .merged?
+ "event_mr_merged.png"
+ end
+
+ return nil unless event_image_path
+
+ content_tag :div , class : 'event_icon' do
+ image_tag event_image_path
+ end
+end
+
+
+
+
+
+
+
+
+
link_to_author (event)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_to_author (event )
+ project = event .project
+ tm = project .team_member_by_id (event .author_id ) if project
+
+ if tm
+ link_to event .author_name , project_team_member_path (project , tm )
+ else
+ event .author_name
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ExtractsPath.html b/doc/code/classes/ExtractsPath.html
new file mode 100644
index 00000000..0b8c0c26
--- /dev/null
+++ b/doc/code/classes/ExtractsPath.html
@@ -0,0 +1,300 @@
+
+
+
+
+ ExtractsPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ExtractsPath
+
+
+
+
+
+
+
+
+
+
Module providing methods for dealing with separating a tree-ish string and
+a file path string when combined in a request parameter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
assign_ref_vars ()
+
+
Link
+
+
+
+
+
Assigns common instance variables for views working with Git tree-ish
+objects
+
+
Assignments are:
+
+@id - A string representing the joined ref and path
+
+@ref - A string representing the ref (e.g., the branch, tag, or commit
+SHA)
+
+@path - A string representing the filesystem path
+
+@commit - A CommitDecorator representing
+the commit from the given ref
+
+@tree - A TreeDecorator representing the
+tree at the given ref/path
+
+
+
If the :id parameter appears to be requesting a specific response format,
+that will be handled as well.
+
+
Automatically renders `not_found!` if a valid tree path could not be
+resolved (e.g., when a user inserts an invalid path or ref).
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def assign_ref_vars
+
+ if params [:id ].ends_with? ('.atom' )
+ params [:id ].gsub! (%r\.atom$/ , '' )
+ request .format = :atom
+ end
+
+ @ref , @path = extract_ref (request .fullpath )
+
+ @id = File .join (@ref , @path )
+
+ @commit = CommitDecorator .decorate (@project .commit (@ref ))
+
+ @tree = Tree .new (@commit .tree , @project , @ref , @path )
+ @tree = TreeDecorator .new (@tree )
+
+ raise InvalidPathError if @tree .invalid?
+rescue NoMethodError , InvalidPathError
+ not_found!
+end
+
+
+
+
+
+
+
+
+
+
+
Given a string containing both a Git tree-ish, such as a branch or tag, and
+a filesystem path joined by forward slashes, attempts to separate the two.
+
+
Expects a @project instance variable to contain the active project. This is
+used to check the input against a list of valid repository refs.
+
+
Examples
+
+
+extract_ref ('master' )
+
+
+extract_ref ('master' )
+
+
+extract_ref ("f4b14494ef6abf3d144c28e4af0c20143383e062/CHANGELOG" )
+
+
+extract_ref ("v2.0.0/README.md" )
+
+
+extract_ref ('/gitlab/vagrant/tree/master/app/models/project.rb' )
+
+
+extract_ref ('issues/1234/app/models/project.rb' )
+
+
+
+extract_ref ('non/existent/branch/README.md' )
+
+
+
+
Returns an Array where the first value is the tree-ish and the second is
+the path
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ExtractsPath/InvalidPathError.html b/doc/code/classes/ExtractsPath/InvalidPathError.html
new file mode 100644
index 00000000..67632e3b
--- /dev/null
+++ b/doc/code/classes/ExtractsPath/InvalidPathError.html
@@ -0,0 +1,82 @@
+
+
+
+
+ ExtractsPath::InvalidPathError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ExtractsPath::InvalidPathError
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
Raised when given an invalid file path
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/FileSizeValidator.html b/doc/code/classes/FileSizeValidator.html
new file mode 100644
index 00000000..b1da2752
--- /dev/null
+++ b/doc/code/classes/FileSizeValidator.html
@@ -0,0 +1,376 @@
+
+
+
+
+ FileSizeValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ FileSizeValidator
+
+ <
+
+ ActiveModel::EachValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ H
+
+
+
+
+ N
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ MESSAGES
+ =
+ { is: :wrong_size, minimum: :size_too_small, maximum: :size_too_big }.freeze
+
+
+
+
+
+
+
+
+
+ CHECKS
+ =
+ { is: :==, minimum: :>=, maximum: :<= }.freeze
+
+
+
+
+
+
+
+
+
+ DEFAULT_TOKENIZER
+ =
+ lambda { |value| value.split(//) }
+
+
+
+
+
+
+
+
+
+ RESERVED_OPTIONS
+ =
+ [:minimum, :maximum, :within, :is, :tokenizer, :too_short, :too_long]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (options)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (options )
+ if range = (options .delete (:in ) || options .delete (:within ))
+ raise ArgumentError , ":in and :within must be a Range" unless range .is_a? (Range )
+ options [:minimum ], options [:maximum ] = range .begin , range .end
+ options [:maximum ] -= 1 if range .exclude_end?
+ end
+
+ super
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
check_validity! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def check_validity!
+ keys = CHECKS .keys & options .keys
+
+ if keys .empty?
+ raise ArgumentError , 'Range unspecified. Specify the :within, :maximum, :minimum, or :is option.'
+ end
+
+ keys .each do | key |
+ value = options [key ]
+
+ unless value .is_a? (Integer ) && value >= 0
+ raise ArgumentError , ":#{key} must be a nonnegative Integer"
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def help
+ Helper .instance
+end
+
+
+
+
+
+
+
+
+
validate_each (record, attribute, value)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def validate_each (record , attribute , value )
+ raise (ArgumentError , "A CarrierWave::Uploader::Base object was expected" ) unless value .kind_of? CarrierWave :: Uploader :: Base
+
+ value = (options [:tokenizer ] || DEFAULT_TOKENIZER ).call (value ) if value .kind_of? (String )
+
+ CHECKS .each do | key , validity_check |
+ next unless check_value = options [key ]
+
+ value ||= [] if key == :maximum
+
+ value_size = value .size
+ next if value_size .send (validity_check , check_value )
+
+ errors_options = options .except (*RESERVED_OPTIONS )
+ errors_options [:file_size ] = help .number_to_human_size check_value
+
+ default_message = options [MESSAGES [key ]]
+ errors_options [:message ] ||= default_message if default_message
+
+ record .errors .add (attribute , MESSAGES [key ], errors_options )
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/FileSizeValidator/Helper.html b/doc/code/classes/FileSizeValidator/Helper.html
new file mode 100644
index 00000000..c11d89b3
--- /dev/null
+++ b/doc/code/classes/FileSizeValidator/Helper.html
@@ -0,0 +1,94 @@
+
+
+
+
+ FileSizeValidator::Helper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ FileSizeValidator::Helper
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ Singleton
+
+
+
+
+
+ ActionView::Helpers::NumberHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/GitHost.html b/doc/code/classes/GitHost.html
new file mode 100644
index 00000000..52ea8b32
--- /dev/null
+++ b/doc/code/classes/GitHost.html
@@ -0,0 +1,125 @@
+
+
+
+
+ GitHost
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ GitHost
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
git_host ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def git_host
+ Gitlab :: Gitolite .new
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab.html b/doc/code/classes/Gitlab.html
new file mode 100644
index 00000000..5127be6e
--- /dev/null
+++ b/doc/code/classes/Gitlab.html
@@ -0,0 +1,265 @@
+
+
+
+
+ Gitlab
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab
+
+
+
+
+
+
+
+
+
+
ProjectMover class
+
+
Used for moving project repositories from one subdir to another
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/API.html b/doc/code/classes/Gitlab/API.html
new file mode 100644
index 00000000..fe2ccc76
--- /dev/null
+++ b/doc/code/classes/Gitlab/API.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::API
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/APIHelpers.html b/doc/code/classes/Gitlab/APIHelpers.html
new file mode 100644
index 00000000..603443dd
--- /dev/null
+++ b/doc/code/classes/Gitlab/APIHelpers.html
@@ -0,0 +1,703 @@
+
+
+
+
+ Gitlab::APIHelpers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::APIHelpers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
attributes_for_keys (keys)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def attributes_for_keys (keys )
+ attrs = {}
+ keys .each do | key |
+ attrs [key ] = params [key ] if params [key ].present?
+ end
+ attrs
+end
+
+
+
+
+
+
+
+
+
authenticate! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authenticate!
+ unauthorized! unless current_user
+end
+
+
+
+
+
+
+
+
+
authenticated_as_admin! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authenticated_as_admin!
+ forbidden! unless current_user .is_admin?
+end
+
+
+
+
+
+
+
+
+
authorize! (action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize! action , subject
+ unless abilities .allowed? (current_user , action , subject )
+ forbidden!
+ end
+end
+
+
+
+
+
+
+
+
+
can? (object, action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can? (object , action , subject )
+ abilities .allowed? (object , action , subject )
+end
+
+
+
+
+
+
+
+
+
current_user ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def current_user
+ @current_user ||= User .find_by_authentication_token (params [:private_token ] || env ["HTTP_PRIVATE_TOKEN" ])
+end
+
+
+
+
+
+
+
+
+
find_project ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_project
+ project = Project .find_by_id (params [:id ]) || Project .find_with_namespace (params [:id ])
+
+ if project && can? (current_user , :read_project , project )
+ project
+ else
+ nil
+ end
+end
+
+
+
+
+
+
+
+
+
forbidden! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def forbidden!
+ render_api_error! ('403 Forbidden' , 403 )
+end
+
+
+
+
+
+
+
+
+
not_allowed! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def not_allowed!
+ render_api_error! ('Method Not Allowed' , 405 )
+end
+
+
+
+
+
+
+
+
+
not_found! (resource = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def not_found! (resource = nil )
+ message = ["404" ]
+ message << resource if resource
+ message << "Not Found"
+ render_api_error! (message .join (' ' ), 404 )
+end
+
+
+
+
+
+
+
+
+
paginate (object)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def paginate (object )
+ object .page (params [:page ]).per (params [:per_page ].to_i )
+end
+
+
+
+
+
+
+
+
+
render_api_error! (message, status)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def render_api_error! (message , status )
+ error! ({'message' => message }, status )
+end
+
+
+
+
+
+
+
+
+
unauthorized! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unauthorized!
+ render_api_error! ('401 Unauthorized' , 401 )
+end
+
+
+
+
+
+
+
+
+
user_project ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def user_project
+ @project ||= find_project
+ @project || not_found!
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/AppLogger.html b/doc/code/classes/Gitlab/AppLogger.html
new file mode 100644
index 00000000..2f4dc534
--- /dev/null
+++ b/doc/code/classes/Gitlab/AppLogger.html
@@ -0,0 +1,173 @@
+
+
+
+
+ Gitlab::AppLogger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ F
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
file_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .file_name
+ 'application.log'
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Application.html b/doc/code/classes/Gitlab/Application.html
new file mode 100644
index 00000000..c8a1e3c2
--- /dev/null
+++ b/doc/code/classes/Gitlab/Application.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Application
+
+ <
+
+ Rails::Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Auth.html b/doc/code/classes/Gitlab/Auth.html
new file mode 100644
index 00000000..4eeb3fec
--- /dev/null
+++ b/doc/code/classes/Gitlab/Auth.html
@@ -0,0 +1,315 @@
+
+
+
+
+ Gitlab::Auth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Auth
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
create_from_omniauth (auth, ldap = false)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create_from_omniauth (auth , ldap = false )
+ provider = auth .provider
+ uid = auth .info .uid || auth .uid
+ name = auth .info .name .force_encoding ("utf-8" )
+ email = auth .info .email .downcase unless auth .info .email .nil?
+
+ ldap_prefix = ldap ? '(LDAP) ' : ''
+ raise OmniAuth :: Error , "#{ldap_prefix}#{provider} does not provide an email" " address" if auth .info .email .blank?
+
+ log .info "#{ldap_prefix}Creating user from #{provider} login" " {uid => #{uid}, name => #{name}, email => #{email}}"
+ password = Devise .friendly_token [0 , 8 ].downcase
+ @user = User .new ({
+ extern_uid : uid ,
+ provider : provider ,
+ name : name ,
+ username : email .match (%r^[^@]*/ )[0 ],
+ email : email ,
+ password : password ,
+ password_confirmation : password ,
+ projects_limit : Gitlab .config .gitlab .default_projects_limit ,
+ }, as : :admin )
+ if Gitlab .config .omniauth ['block_auto_created_users' ] && ! ldap
+ @user .blocked = true
+ end
+ @user .save!
+ @user
+end
+
+
+
+
+
+
+
+
+
find_for_ldap_auth (auth, signed_in_resource = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_for_ldap_auth (auth , signed_in_resource = nil )
+ uid = auth .info .uid
+ provider = auth .provider
+ email = auth .info .email .downcase unless auth .info .email .nil?
+ raise OmniAuth :: Error , "LDAP accounts must provide an uid and email address" if uid .nil? or email .nil?
+
+ if @user = User .find_by_extern_uid_and_provider (uid , provider )
+ @user
+ elsif @user = User .find_by_email (email )
+ log .info "Updating legacy LDAP user #{email} with extern_uid => #{uid}"
+ @user .update_attributes (:extern_uid => uid , :provider => provider )
+ @user
+ else
+ create_from_omniauth (auth , true )
+ end
+end
+
+
+
+
+
+
+
+
+
find_or_new_for_omniauth (auth)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_or_new_for_omniauth (auth )
+ provider , uid = auth .provider , auth .uid
+ email = auth .info .email .downcase unless auth .info .email .nil?
+
+ if @user = User .find_by_provider_and_extern_uid (provider , uid )
+ @user
+ elsif @user = User .find_by_email (email )
+ @user .update_attributes (:extern_uid => uid , :provider => provider )
+ @user
+ else
+ if Gitlab .config .omniauth ['allow_single_sign_on' ]
+ @user = create_from_omniauth (auth )
+ @user
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log
+ Gitlab :: AppLogger
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities.html b/doc/code/classes/Gitlab/Entities.html
new file mode 100644
index 00000000..8cb9ed35
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities.html
@@ -0,0 +1,151 @@
+
+
+
+
+ Gitlab::Entities
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::Entities
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/Hook.html b/doc/code/classes/Gitlab/Entities/Hook.html
new file mode 100644
index 00000000..a42cc91d
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/Hook.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::Hook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::Hook
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/Issue.html b/doc/code/classes/Gitlab/Entities/Issue.html
new file mode 100644
index 00000000..432c6f4b
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/Issue.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::Issue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::Issue
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/MRNote.html b/doc/code/classes/Gitlab/Entities/MRNote.html
new file mode 100644
index 00000000..e05a43b8
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/MRNote.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::MRNote
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::MRNote
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/MergeRequest.html b/doc/code/classes/Gitlab/Entities/MergeRequest.html
new file mode 100644
index 00000000..e6807716
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/MergeRequest.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::MergeRequest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::MergeRequest
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/Milestone.html b/doc/code/classes/Gitlab/Entities/Milestone.html
new file mode 100644
index 00000000..3c375faa
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/Milestone.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::Milestone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::Milestone
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/Note.html b/doc/code/classes/Gitlab/Entities/Note.html
new file mode 100644
index 00000000..f0ba6567
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/Note.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::Note
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::Note
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/Project.html b/doc/code/classes/Gitlab/Entities/Project.html
new file mode 100644
index 00000000..a111b19f
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/Project.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::Project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::Project
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/ProjectMember.html b/doc/code/classes/Gitlab/Entities/ProjectMember.html
new file mode 100644
index 00000000..151abf27
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/ProjectMember.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::ProjectMember
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/ProjectSnippet.html b/doc/code/classes/Gitlab/Entities/ProjectSnippet.html
new file mode 100644
index 00000000..61259d0c
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/ProjectSnippet.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::ProjectSnippet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::ProjectSnippet
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/RepoCommit.html b/doc/code/classes/Gitlab/Entities/RepoCommit.html
new file mode 100644
index 00000000..3d181a6f
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/RepoCommit.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::RepoCommit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::RepoCommit
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/RepoObject.html b/doc/code/classes/Gitlab/Entities/RepoObject.html
new file mode 100644
index 00000000..ee6a10e7
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/RepoObject.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::RepoObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::RepoObject
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/SSHKey.html b/doc/code/classes/Gitlab/Entities/SSHKey.html
new file mode 100644
index 00000000..cbc4d1a3
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/SSHKey.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::SSHKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::SSHKey
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/User.html b/doc/code/classes/Gitlab/Entities/User.html
new file mode 100644
index 00000000..5c296676
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/User.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::User
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::User
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/UserBasic.html b/doc/code/classes/Gitlab/Entities/UserBasic.html
new file mode 100644
index 00000000..a17b808d
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/UserBasic.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::UserBasic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Entities::UserBasic
+
+ <
+
+ Grape::Entity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Entities/UserLogin.html b/doc/code/classes/Gitlab/Entities/UserLogin.html
new file mode 100644
index 00000000..d73be2ca
--- /dev/null
+++ b/doc/code/classes/Gitlab/Entities/UserLogin.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Entities::UserLogin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/GitLogger.html b/doc/code/classes/Gitlab/GitLogger.html
new file mode 100644
index 00000000..19018c0f
--- /dev/null
+++ b/doc/code/classes/Gitlab/GitLogger.html
@@ -0,0 +1,173 @@
+
+
+
+
+ Gitlab::GitLogger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ F
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
file_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .file_name
+ 'githost.log'
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/GitStats.html b/doc/code/classes/Gitlab/GitStats.html
new file mode 100644
index 00000000..fabe18bb
--- /dev/null
+++ b/doc/code/classes/Gitlab/GitStats.html
@@ -0,0 +1,506 @@
+
+
+
+
+ Gitlab::GitStats
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::GitStats
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ G
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ ref
+
+
+
+
+
+ [RW]
+
+ repo
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (repo, ref)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize repo , ref
+ @repo , @ref = repo , ref
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authors
+ @authors ||= collect_authors
+end
+
+
+
+
+
+
+
+
+
authors_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authors_count
+ authors .size
+end
+
+
+
+
+
+
+
+
+
commits_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_count
+ @commits_count ||= repo .commit_count (ref )
+end
+
+
+
+
+
+
+
+
+
files_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def files_count
+ args = [ref , '-r' , '--name-only' ]
+ repo .git .run (nil , 'ls-tree' , nil , {}, args ).split ("\n" ).count
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def graph
+ @graph ||= build_graph
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
build_graph (n = 4)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def build_graph n = 4
+ from , to = (Date .today - n .weeks ), Date .today
+ args = ['--all' , "--since=#{from.to_s(:date)}" , '--format=%ad' ]
+ rev_list = repo .git .run (nil , 'rev-list' , nil , {}, args ).split ("\n" )
+
+ commits_dates = rev_list .values_at (* rev_list .each_index .select {| i | i .odd? })
+ commits_dates = commits_dates .map { | date_str | Time .parse (date_str ).to_date .to_s (:date ) }
+
+ commits_per_day = from .upto (to ).map do | day |
+ commits_dates .count (day .to_date .to_s (:date ))
+ end
+
+ OpenStruct .new (
+ labels : from .upto (to ).map { | day | day .stamp ('Aug 23' ) },
+ commits : commits_per_day ,
+ weeks : n
+ )
+end
+
+
+
+
+
+
+
+
+
collect_authors ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def collect_authors
+ shortlog = repo .git .shortlog ({e : true , s : true }, ref )
+
+ authors = []
+
+ lines = shortlog .split ("\n" )
+
+ lines .each do | line |
+ data = line .split ("\t" )
+ commits = data .first
+ author = Grit :: Actor .from_string (data .last )
+
+ authors << OpenStruct .new (
+ name : author .name ,
+ email : author .email ,
+ commits : commits .to_i
+ )
+ end
+
+ authors .sort_by (&:commits ).reverse
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Gitolite.html b/doc/code/classes/Gitlab/Gitolite.html
new file mode 100644
index 00000000..8cf9c58c
--- /dev/null
+++ b/doc/code/classes/Gitlab/Gitolite.html
@@ -0,0 +1,536 @@
+
+
+
+
+ Gitlab::Gitolite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Gitolite
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ E
+
+
+
+
+ M
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def config
+ Gitlab :: GitoliteConfig .new
+end
+
+
+
+
+
+
+
+
+
create_repository (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
enable_automerge ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def enable_automerge
+ config .admin_all_repo!
+end
+
+
+
+
+
+
+
+
+
move_repository (old_repo, project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def move_repository (old_repo , project )
+ config .apply do | config |
+ config .clean_repo (old_repo )
+ config .update_project (project )
+ end
+end
+
+
+
+
+
+
+
+
+
remove_key (key_id, projects)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def remove_key key_id , projects
+ config .apply do | config |
+ config .rm_key (key_id )
+ config .update_projects (projects )
+ end
+end
+
+
+
+
+
+
+
+
+
remove_repository (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def remove_repository project
+ config .destroy_project! (project )
+end
+
+
+
+
+
+
+
+
+
set_key (key_id, key_content, projects)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def set_key key_id , key_content , projects
+ config .apply do | config |
+ config .write_key (key_id , key_content )
+ config .update_projects (projects )
+ end
+end
+
+
+
+
+
+
+
+
+
update_repositories (projects)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_repositories projects
+ config .apply do | config |
+ config .update_projects (projects )
+ end
+end
+
+
+
+
+
+
+
+
+
update_repository (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_repository project
+ config .update_project! (project )
+end
+
+
+
+
+
+
+
+
+
url_to_repo (path)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def url_to_repo path
+ Gitlab .config .gitolite .ssh_path_prefix + "#{path}.git"
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Gitolite/AccessDenied.html b/doc/code/classes/Gitlab/Gitolite/AccessDenied.html
new file mode 100644
index 00000000..8a45dae1
--- /dev/null
+++ b/doc/code/classes/Gitlab/Gitolite/AccessDenied.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::Gitolite::AccessDenied
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Gitolite::AccessDenied
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/GitoliteConfig.html b/doc/code/classes/Gitlab/GitoliteConfig.html
new file mode 100644
index 00000000..11026f5c
--- /dev/null
+++ b/doc/code/classes/Gitlab/GitoliteConfig.html
@@ -0,0 +1,810 @@
+
+
+
+
+ Gitlab::GitoliteConfig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::GitoliteConfig
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ L
+
+
+
+
+ R
+
+
+
+
+ U
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [R]
+
+ conf
+
+
+
+
+
+ [R]
+
+ config_tmp_dir
+
+
+
+
+
+ [R]
+
+ ga_repo
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
admin_all_repo ()
+
+
Link
+
+
+
+
+
Enable access to all repos for gitolite admin. We use it for accept merge
+request feature
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def admin_all_repo
+ owner_name = Gitlab .config .gitolite .admin_key
+
+
+ repo_name = "@all"
+ repo = if conf .has_repo? (repo_name )
+ conf .get_repo (repo_name )
+ else
+ :: Gitolite :: Config :: Repo .new (repo_name )
+ end
+
+ repo .add_permission ("RW+" , "" , owner_name )
+ conf .add_repo (repo , true )
+end
+
+
+
+
+
+
+
+
+
admin_all_repo! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def admin_all_repo!
+ apply { | config | config .admin_all_repo }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def apply
+ Timeout :: timeout (30 ) do
+ File .open (Rails .root .join ('tmp' , "gitlabhq-gitolite.lock" ), "w+" ) do | f |
+ begin
+
+
+ f .flock (File :: LOCK_EX )
+
+
+
+ pull (config_tmp_dir )
+
+
+
+ @conf = ga_repo .config
+
+
+
+
+ yield (self )
+
+
+
+
+ ga_repo .save
+
+
+
+ push (config_tmp_dir )
+ ensure
+
+
+
+ FileUtils .rm_rf (File .join (config_tmp_dir , 'gitolite' ))
+
+
+ FileUtils .rm_rf (config_tmp_dir )
+
+
+
+ f .flock (File :: LOCK_UN )
+ end
+ end
+ end
+rescue PullError => ex
+ log ("Pull error -> " + ex .message )
+ raise Gitolite :: AccessDenied , ex .message
+
+rescue PushError => ex
+ log ("Push error -> " + " " + ex .message )
+ raise Gitolite :: AccessDenied , ex .message
+
+rescue Exception => ex
+ log (ex .class .name + " " + ex .message )
+ raise Gitolite :: AccessDenied .new ("gitolite timeout" )
+end
+
+
+
+
+
+
+
+
+
clean_repo (repo_name)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def clean_repo repo_name
+ conf .rm_repo (repo_name )
+end
+
+
+
+
+
+
+
+
+
destroy_project (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy_project (project )
+ FileUtils .rm_rf (project .path_to_repo )
+ conf .rm_repo (project .path_with_namespace )
+end
+
+
+
+
+
+
+
+
+
destroy_project! (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy_project! (project )
+ apply do | config |
+ config .destroy_project (project )
+ end
+end
+
+
+
+
+
+
+
+
+
log (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log message
+ Gitlab :: GitLogger .error (message )
+end
+
+
+
+
+
+
+
+
+
rm_key (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def rm_key (user )
+ key_path = File .join (config_tmp_dir , 'gitolite/keydir' , "#{user}.pub" )
+ ga_key = :: Gitolite :: SSHKey .from_file (key_path )
+ ga_repo .rm_key (ga_key )
+end
+
+
+
+
+
+
+
+
+
update_project (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_project (project )
+ repo = update_project_config (project , conf )
+ conf .add_repo (repo , true )
+end
+
+
+
+
+
+
+
+
+
update_project! ( project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_project! ( project )
+ apply do | config |
+ config .update_project (project )
+ end
+end
+
+
+
+
+
+
+
+
+
update_project_config (project, conf)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_project_config (project , conf )
+ repo_name = project .path_with_namespace
+
+ repo = if conf .has_repo? (repo_name )
+ conf .get_repo (repo_name )
+ else
+ :: Gitolite :: Config :: Repo .new (repo_name )
+ end
+
+ name_readers = project .repository_readers
+ name_writers = project .repository_writers
+ name_masters = project .repository_masters
+
+ pr_br = project .protected_branches .map (&:name ).join ("$ " )
+
+ repo .clean_permissions
+
+
+ unless name_writers .blank? || pr_br .blank?
+ repo .add_permission ("-" , pr_br .strip + "$ " , name_writers )
+ end
+
+
+ repo .add_permission ("R" , "" , name_readers ) unless name_readers .blank?
+
+
+ repo .add_permission ("RW+" , "" , name_writers ) unless name_writers .blank?
+ repo .add_permission ("RW+" , "" , name_masters ) unless name_masters .blank?
+
+
+ repo .set_git_config ("core.sharedRepository" , "0660" )
+
+ repo
+end
+
+
+
+
+
+
+
+
+
update_projects (projects)
+
+
Link
+
+
+
+
+
Updates many projects and uses project.path_with_namespace as the repo path
+An order of magnitude faster than #update_project
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_projects (projects )
+ projects .each do | project |
+ repo = update_project_config (project , conf )
+ conf .add_repo (repo , true )
+ end
+end
+
+
+
+
+
+
+
+
+
write_key (id, key)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def write_key (id , key )
+ File .open (File .join (config_tmp_dir , 'gitolite/keydir' ,"#{id}.pub" ), 'w' ) do | f |
+ f .write (key .gsub (%r\n/ ,'' ))
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/GitoliteConfig/PullError.html b/doc/code/classes/Gitlab/GitoliteConfig/PullError.html
new file mode 100644
index 00000000..35c46f38
--- /dev/null
+++ b/doc/code/classes/Gitlab/GitoliteConfig/PullError.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::GitoliteConfig::PullError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::GitoliteConfig::PullError
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/GitoliteConfig/PushError.html b/doc/code/classes/Gitlab/GitoliteConfig/PushError.html
new file mode 100644
index 00000000..53efe1e8
--- /dev/null
+++ b/doc/code/classes/Gitlab/GitoliteConfig/PushError.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::GitoliteConfig::PushError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::GitoliteConfig::PushError
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Graph.html b/doc/code/classes/Gitlab/Graph.html
new file mode 100644
index 00000000..e0827c84
--- /dev/null
+++ b/doc/code/classes/Gitlab/Graph.html
@@ -0,0 +1,88 @@
+
+
+
+
+ Gitlab::Graph
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::Graph
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Graph/Commit.html b/doc/code/classes/Gitlab/Graph/Commit.html
new file mode 100644
index 00000000..0198b3f0
--- /dev/null
+++ b/doc/code/classes/Gitlab/Graph/Commit.html
@@ -0,0 +1,337 @@
+
+
+
+
+ Gitlab::Graph::Commit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Graph::Commit
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ ActionView::Helpers::TagHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ refs
+
+
+
+
+
+ [RW]
+
+ space
+
+
+
+
+
+ [RW]
+
+ time
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (commit )
+ @_commit = commit
+ @time = -1
+ @space = 0
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
add_refs (ref_cache, repo)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_refs (ref_cache , repo )
+ if ref_cache .empty?
+ repo .refs .each do | ref |
+ ref_cache [ref .commit .id ] ||= []
+ ref_cache [ref .commit .id ] << ref
+ end
+ end
+ @refs = ref_cache [@_commit .id ] if ref_cache .include? (@_commit .id )
+ @refs ||= []
+end
+
+
+
+
+
+
+
+
+
method_missing (m, *args, &block)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def method_missing (m , *args , &block )
+ @_commit .send (m , *args , &block )
+end
+
+
+
+
+
+
+
+
+
to_graph_hash ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_graph_hash
+ h = {}
+ h [:parents ] = self .parents .collect do | p |
+ [p .id ,0 ,0 ]
+ end
+ h [:author ] = author .name
+ h [:time ] = time
+ h [:space ] = space
+ h [:refs ] = refs .collect {| r | r .name }.join (" " ) unless refs .nil?
+ h [:id ] = sha
+ h [:date ] = date
+ h [:message ] = message
+ h [:login ] = author .email
+ h
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Graph/JsonBuilder.html b/doc/code/classes/Gitlab/Graph/JsonBuilder.html
new file mode 100644
index 00000000..b410947b
--- /dev/null
+++ b/doc/code/classes/Gitlab/Graph/JsonBuilder.html
@@ -0,0 +1,707 @@
+
+
+
+
+ Gitlab::Graph::JsonBuilder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Graph::JsonBuilder
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ commits
+
+
+
+
+
+ [RW]
+
+ days
+
+
+
+
+
+ [RW]
+
+ ref_cache
+
+
+
+
+
+ [RW]
+
+ repo
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
max_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .max_count
+ @max_count ||= 650
+end
+
+
+
+
+
+
+
+
+
new (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize project
+ @project = project
+ @repo = project .repo
+ @ref_cache = {}
+
+ @commits = collect_commits
+ @days = index_commits
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
to_json (*args)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_json (*args )
+ {
+ days : @days .compact .map { | d | [d .day , d .strftime ("%b" )] },
+ commits : @commits .map (&:to_graph_hash )
+ }.to_json (*args )
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
base_space (leaves, map)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def base_space (leaves , map )
+ parents = []
+ leaves .each do | l |
+ parents .concat l .parents .collect .select {| p | map .include? p .id and map [p .id ].space .nonzero? }
+ end
+
+ space = parents .map {| p | map [p .id ].space }.max || 0
+ space += 1
+end
+
+
+
+
+
+
+
+
+
collect_commits ()
+
+
Link
+
+
+
+
+
Get commits from repository
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def collect_commits
+ @commits = Grit :: Commit .find_all (repo , nil , {max_count : self .class .max_count }).dup
+
+
+ @commits .map! { | commit | :: Commit .new (commit ) }
+
+
+ @commits .map! { | commit | Gitlab :: Graph :: Commit .new (commit ) }
+
+
+ @commits .each { | commit | commit .add_refs (ref_cache , repo ) }
+
+ @commits
+end
+
+
+
+
+
+
+
+
+
find_free_space (leaves, map)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_free_space (leaves , map )
+ time_range = leaves .last .time .. leaves .first .time
+ reserved = []
+ for day in time_range
+ reserved += @_reserved [day ]
+ end
+ space = base_space (leaves , map )
+ while reserved .include? space do
+ space += 1
+ end
+ space
+end
+
+
+
+
+
+
+
+
+
index_commits ()
+
+
Link
+
+
+
+
+
Method is adding time and space on the list of commits. As well as returns
+date list corelated with time set on commits.
+
+
@param [Array<Graph::Commit>] comits to index
+
+
@return [Array<TimeDate>] list of commit dates corelated with time on
+commits
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index_commits
+ days , heads = [], []
+ map = {}
+
+ commits .reverse .each_with_index do | c ,i |
+ c .time = i
+ days [i ] = c .committed_date
+ map [c .id ] = c
+ heads += c .refs unless c .refs .nil?
+ end
+
+ heads .select! {| h | h .is_a? Grit :: Head or h .is_a? Grit :: Remote }
+
+ heads .sort! do | a ,b |
+ if a .name == "master"
+ -1
+ elsif b .name == "master"
+ 1
+ else
+ b .commit .committed_date <=> a .commit .committed_date
+ end
+ end
+
+ @_reserved = {}
+ days .each_index do | i |
+ @_reserved [i ] = []
+ end
+
+ heads .each do | h |
+ if map .include? h .commit .id then
+ place_chain (map [h .commit .id ], map )
+ end
+ end
+
+ days
+end
+
+
+
+
+
+
+
+
+
mark_reserved (time_range, space)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mark_reserved (time_range , space )
+ for day in time_range
+ @_reserved [day ].push (space )
+ end
+end
+
+
+
+
+
+
+
+
+
place_chain (commit, map, parent_time = nil)
+
+
Link
+
+
+
+
+
Add space mark on commit and its parents
+
+
@param [Graph::Commit] the commit object. @param
+[Hash<String,Graph::Commit>] map of commits
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def place_chain (commit , map , parent_time = nil )
+ leaves = take_left_leaves (commit , map )
+ if leaves .empty?
+ return
+ end
+ space = find_free_space (leaves , map )
+ leaves .each {| l | l .space = space }
+
+ min_time = leaves .last .time
+ parents = leaves .last .parents .collect
+ parents .each do | p |
+ if map .include? p .id
+ parent = map [p .id ]
+ if parent .time < min_time
+ min_time = parent .time
+ end
+ end
+ end
+ if parent_time .nil?
+ max_time = leaves .first .time
+ else
+ max_time = parent_time - 1
+ end
+ mark_reserved (min_time .. max_time , space )
+
+
+ leaves .each do | l |
+ parents = l .parents .collect .select {| p | map .include? p .id and map [p .id ].space .zero? }
+ for p in parents
+ place_chain (map [p .id ], map , l .time )
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
take_left_leaves (commit, map)
+
+
Link
+
+
+
+
+
Takes most left subtree branch of commits which don’t have space mark yet.
+
+
@param [Graph::Commit] the commit object. @param
+[Hash<String,Graph::Commit>] map of commits
+
+
@return [Array<Graph::Commit>] list of branch commits
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def take_left_leaves (commit , map )
+ leaves = []
+ leaves .push (commit ) if commit .space .zero?
+
+ while true
+ return leaves if commit .parents .count .zero?
+ return leaves unless map .include? commit .parents .first .id
+
+ commit = map [commit .parents .first .id ]
+
+ return leaves unless commit .space .zero?
+
+ leaves .push (commit )
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/InlineDiff.html b/doc/code/classes/Gitlab/InlineDiff.html
new file mode 100644
index 00000000..cd04b7d0
--- /dev/null
+++ b/doc/code/classes/Gitlab/InlineDiff.html
@@ -0,0 +1,299 @@
+
+
+
+
+ Gitlab::InlineDiff
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::InlineDiff
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ #
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ START
+ =
+ "#!idiff-start!#"
+
+
+
+
+
+
+
+
+
+ FINISH
+ =
+ "#!idiff-finish!#"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
_indexes_of_changed_lines (diff_arr)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def _indexes_of_changed_lines diff_arr
+ chain_of_first_symbols = ""
+ diff_arr .each_with_index do | line , i |
+ chain_of_first_symbols += line [0 ]
+ end
+ chain_of_first_symbols .gsub! (%r[^\-\+]/ , "#" )
+
+ offset = 0
+ indexes = []
+ while index = chain_of_first_symbols .index ("#-+#" , offset )
+ indexes << index
+ offset = index + 1
+ end
+ indexes
+end
+
+
+
+
+
+
+
+
+
processing (diff_arr)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def processing diff_arr
+ indexes = _indexes_of_changed_lines diff_arr
+
+ indexes .each do | index |
+ first_line = diff_arr [index + 1 ]
+ second_line = diff_arr [index + 2 ]
+ max_length = [first_line .size , second_line .size ].max
+
+ first_the_same_symbols = 0
+ (0 .. max_length + 1 ).each do | i |
+ first_the_same_symbols = i - 1
+ if first_line [i ] != second_line [i ] && i > 0
+ break
+ end
+ end
+ first_token = first_line [0 .. first_the_same_symbols ][1 .. -1 ]
+ diff_arr [index + 1 ].sub! (first_token , first_token + START )
+ diff_arr [index + 2 ].sub! (first_token , first_token + START )
+ last_the_same_symbols = 0
+ (1 .. max_length + 1 ).each do | i |
+ last_the_same_symbols = - i
+ shortest_line = second_line .size > first_line .size ? first_line : second_line
+ if ( first_line [- i ] != second_line [- i ] ) || "#{first_token}#{START}" .size == shortest_line [1 .. - i ].size
+ break
+ end
+ end
+ last_the_same_symbols += 1
+ last_token = first_line [last_the_same_symbols .. -1 ]
+ diff_arr [index + 1 ].sub! (%r#{Regexp.escape(last_token)}$/ , FINISH + last_token )
+ diff_arr [index + 2 ].sub! (%r#{Regexp.escape(last_token)}$/ , FINISH + last_token )
+ end
+ diff_arr
+end
+
+
+
+
+
+
+
+
+
replace_markers (line)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def replace_markers line
+ line .gsub! (START , "<span class='idiff'>" )
+ line .gsub! (FINISH , "</span>" )
+ line
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Issues.html b/doc/code/classes/Gitlab/Issues.html
new file mode 100644
index 00000000..91c6dead
--- /dev/null
+++ b/doc/code/classes/Gitlab/Issues.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::Issues
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Issues
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Logger.html b/doc/code/classes/Gitlab/Logger.html
new file mode 100644
index 00000000..2c523c19
--- /dev/null
+++ b/doc/code/classes/Gitlab/Logger.html
@@ -0,0 +1,315 @@
+
+
+
+
+ Gitlab::Logger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Logger
+
+ <
+
+ Logger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .build
+ new (Rails .root .join ("log" , file_name ))
+end
+
+
+
+
+
+
+
+
+
error (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .error (message )
+ build .error (message )
+end
+
+
+
+
+
+
+
+
+
info (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .info (message )
+ build .info (message )
+end
+
+
+
+
+
+
+
+
+
read_latest ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .read_latest
+ path = Rails .root .join ("log" , file_name )
+ self .build unless File .exist? (path )
+ logs = %xtail -n 2000 #{path}` .split ("\n" )
+end
+
+
+
+
+
+
+
+
+
read_latest_for (filename)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .read_latest_for filename
+ path = Rails .root .join ("log" , filename )
+ logs = %xtail -n 2000 #{path}` .split ("\n" )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Markdown.html b/doc/code/classes/Gitlab/Markdown.html
new file mode 100644
index 00000000..45d853f3
--- /dev/null
+++ b/doc/code/classes/Gitlab/Markdown.html
@@ -0,0 +1,258 @@
+
+
+
+
+ Gitlab::Markdown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::Markdown
+
+
+
+
+
+
+
+
+
+
Custom parser for GitLab-flavored Markdown
+
+
It replaces references in the text with links to the appropriate items in
+GitLab.
+
+
Supported reference formats are:
+
+
* @foo for team members
+* #123 for issues
+* !123 for merge requests
+* $123 for snippets
+* 123456 for commits
+
+
It also parses Emoji codes to insert images. See www.emoji-cheat-sheet.com/ for
+a list of the supported icons.
+
+
Examples
+
+
>> gfm ("Hey @david, can you fix this?" )
+=> "Hey <a href=" / gitlab / team_members / 1 ">@david</a>, can you fix this?"
+
+>> gfm ("Commit 35d5f7c closes #1234" )
+=> "Commit <a href=" / gitlab / commits / 35 d5f7c ">35d5f7c</a> closes <a href=" / gitlab / issues / 1234 ">#1234</a>"
+
+>> gfm (":trollface:" )
+=> "<img alt=\":trollface:\" class=\"emoji\" src=\"/images/trollface.png" title =\":trollface:\" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ REFERENCE_PATTERN
+ =
+ %r{
+(?<prefix>\W)? # Prefix
+( # Reference
+@(?<user>[a-zA-Z][a-zA-Z0-9_\-\.]*) # User name
+|\#(?<issue>\d+) # Issue ID
+|!(?<merge_request>\d+) # MR ID
+|\$(?<snippet>\d+) # Snippet ID
+|(?<commit>[\h]{6,40}) # Commit ID
+)
+(?<suffix>\W)? # Suffix
+}x.freeze
+
+
+
+
+
+
+
+
+
+ TYPES
+ =
+ [:user, :issue, :merge_request, :snippet, :commit].freeze
+
+
+
+
+
+
+
+
+
+ EMOJI_PATTERN
+ =
+ %r{(:(\S+):)}.freeze
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [R]
+
+ html_options
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
gfm (text, html_options = {})
+
+
Link
+
+
+
+
+
Public: Parse the provided text with GitLab-Flavored Markdown
+
+
text - the source text #html_options - extra
+options for the reference links as given to link_to
+
+
Note: reference links will only be generated if @project is set
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gfm (text , html_options = {})
+ return text if text .nil?
+
+
+
+
+ text = text .dup .to_str
+
+ @html_options = html_options
+
+
+
+ extractions = {}
+ text .gsub! (%r{<pre>.*?</pre>|<code>.*?</code>} ) do | match |
+ md5 = Digest :: MD5 .hexdigest (match )
+ extractions [md5 ] = match
+ "{gfm-extraction-#{md5}}"
+ end
+
+
+
+ text = parse (text )
+
+
+ text .gsub! (%r\{gfm-extraction-(\h{32})\}/ ) do
+ extractions [$1 ]
+ end
+
+ sanitize text .html_safe , attributes : ActionView :: Base .sanitized_allowed_attributes + %w(id class)
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/MergeRequests.html b/doc/code/classes/Gitlab/MergeRequests.html
new file mode 100644
index 00000000..556f2b01
--- /dev/null
+++ b/doc/code/classes/Gitlab/MergeRequests.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::MergeRequests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::MergeRequests
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Milestones.html b/doc/code/classes/Gitlab/Milestones.html
new file mode 100644
index 00000000..4226dab3
--- /dev/null
+++ b/doc/code/classes/Gitlab/Milestones.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::Milestones
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Milestones
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Notes.html b/doc/code/classes/Gitlab/Notes.html
new file mode 100644
index 00000000..90d3e7af
--- /dev/null
+++ b/doc/code/classes/Gitlab/Notes.html
@@ -0,0 +1,100 @@
+
+
+
+
+ Gitlab::Notes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Notes
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ NOTEABLE_TYPES
+ =
+ [Issue, Snippet]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/ProjectMover.html b/doc/code/classes/Gitlab/ProjectMover.html
new file mode 100644
index 00000000..d13cf13d
--- /dev/null
+++ b/doc/code/classes/Gitlab/ProjectMover.html
@@ -0,0 +1,290 @@
+
+
+
+
+ Gitlab::ProjectMover
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::ProjectMover
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ L
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [R]
+
+ new_dir
+
+
+
+
+
+ [R]
+
+ old_dir
+
+
+
+
+
+ [R]
+
+ project
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (project, old_dir, new_dir)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (project , old_dir , new_dir )
+ @project = project
+ @old_dir = old_dir
+ @new_dir = new_dir
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+
+ new_dir_path = File .join (Gitlab .config .gitolite .repos_path , new_dir )
+ system ("mkdir -m 770 #{new_dir_path}" ) unless File .exists? (new_dir_path )
+
+ old_path = File .join (Gitlab .config .gitolite .repos_path , old_dir , "#{project.path}.git" )
+ new_path = File .join (new_dir_path , "#{project.path}.git" )
+
+ if File .exists? new_path
+ raise ProjectMoveError .new ("Destination #{new_path} already exists" )
+ end
+
+ if system ("mv #{old_path} #{new_path}" )
+ log_info "Project #{project.name} was moved from #{old_path} to #{new_path}"
+ true
+ else
+ message = "Project #{project.name} cannot be moved from #{old_path} to #{new_path}"
+ log_info "Error! #{message}"
+ raise ProjectMoveError .new (message )
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
log_info (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log_info message
+ Gitlab :: AppLogger .info message
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/ProjectMover/ProjectMoveError.html b/doc/code/classes/Gitlab/ProjectMover/ProjectMoveError.html
new file mode 100644
index 00000000..0071ba0c
--- /dev/null
+++ b/doc/code/classes/Gitlab/ProjectMover/ProjectMoveError.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Gitlab::ProjectMover::ProjectMoveError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::ProjectMover::ProjectMoveError
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Projects.html b/doc/code/classes/Gitlab/Projects.html
new file mode 100644
index 00000000..9005134e
--- /dev/null
+++ b/doc/code/classes/Gitlab/Projects.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::Projects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Projects
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Regex.html b/doc/code/classes/Gitlab/Regex.html
new file mode 100644
index 00000000..674df322
--- /dev/null
+++ b/doc/code/classes/Gitlab/Regex.html
@@ -0,0 +1,261 @@
+
+
+
+
+ Gitlab::Regex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::Regex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ P
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
path_regex ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def path_regex
+ default_regex
+end
+
+
+
+
+
+
+
+
+
project_name_regex ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_name_regex
+ %r\A[a-zA-Z][a-zA-Z0-9_\-\. ]*\z/
+end
+
+
+
+
+
+
+
+
+
username_regex ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def username_regex
+ default_regex
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
default_regex ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def default_regex
+ %r\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Satellite.html b/doc/code/classes/Gitlab/Satellite.html
new file mode 100644
index 00000000..943bbf8e
--- /dev/null
+++ b/doc/code/classes/Gitlab/Satellite.html
@@ -0,0 +1,102 @@
+
+
+
+
+ Gitlab::Satellite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Gitlab::Satellite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Satellite/Action.html b/doc/code/classes/Gitlab/Satellite/Action.html
new file mode 100644
index 00000000..abe7411e
--- /dev/null
+++ b/doc/code/classes/Gitlab/Satellite/Action.html
@@ -0,0 +1,305 @@
+
+
+
+
+ Gitlab::Satellite::Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Satellite::Action
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ DEFAULT_OPTIONS
+ =
+ { git_timeout: 30.seconds }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ options
+
+
+
+
+
+ [RW]
+
+ project
+
+
+
+
+
+ [RW]
+
+ user
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (user, project, options = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (user , project , options = {})
+ @options = DEFAULT_OPTIONS .merge (options )
+ @project = project
+ @user = user
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
in_locked_and_timed_satellite ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def in_locked_and_timed_satellite
+ Grit :: Git .with_timeout (options [:git_timeout ]) do
+ project .satellite .lock do
+ return yield project .satellite .repo
+ end
+ end
+rescue Errno :: ENOMEM => ex
+ Gitlab :: GitLogger .error (ex .message )
+ return false
+rescue Grit :: Git :: GitTimeout => ex
+ Gitlab :: GitLogger .error (ex .message )
+ return false
+end
+
+
+
+
+
+
+
+
+
prepare_satellite! (repo)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def prepare_satellite! (repo )
+ project .satellite .clear_and_update!
+
+ repo .git .config ({}, "user.name" , user .name )
+ repo .git .config ({}, "user.email" , user .email )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Satellite/EditFileAction.html b/doc/code/classes/Gitlab/Satellite/EditFileAction.html
new file mode 100644
index 00000000..3a35aa22
--- /dev/null
+++ b/doc/code/classes/Gitlab/Satellite/EditFileAction.html
@@ -0,0 +1,284 @@
+
+
+
+
+ Gitlab::Satellite::EditFileAction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Satellite::EditFileAction
+
+ <
+
+ Action
+
+
+
+
+
+
+
+
+
+
+
+
GitLab server-side file update and commit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ file_path
+
+
+
+
+
+ [RW]
+
+ ref
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (user, project, ref, file_path)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (user , project , ref , file_path )
+ super user , project , git_timeout : 10 .seconds
+ @file_path = file_path
+ @ref = ref
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
commit! (content, commit_message, last_commit)
+
+
Link
+
+
+
+
+
Updates the files content and creates a new commit for it
+
+
Returns false if the ref has been updated while editing the file Returns
+false if commiting the change fails Returns false if pushing from the
+satellite to Gitolite failed or was rejected
+Returns true otherwise
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit! (content , commit_message , last_commit )
+ return false unless can_edit? (last_commit )
+
+ in_locked_and_timed_satellite do | repo |
+ prepare_satellite! (repo )
+
+
+ repo .git .checkout ({raise : true , timeout : true , b : true }, ref , "origin/#{ref}" )
+
+
+ file_path_in_satellite = File .join (repo .working_dir , file_path )
+ File .open (file_path_in_satellite , 'w' ) { | f | f .write (content ) }
+
+
+
+ repo .git .commit (raise : true , timeout : true , a : true , m : commit_message )
+
+
+
+
+ repo .git .push ({raise : true , timeout : true }, :origin , ref )
+
+
+ true
+ end
+rescue Grit :: Git :: CommandFailed => ex
+ Gitlab :: GitLogger .error (ex .message )
+ false
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
can_edit? (last_commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_edit? (last_commit )
+ current_last_commit = @project .last_commit_for (ref , file_path ).sha
+ last_commit == current_last_commit
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Satellite/MergeAction.html b/doc/code/classes/Gitlab/Satellite/MergeAction.html
new file mode 100644
index 00000000..064c4f06
--- /dev/null
+++ b/doc/code/classes/Gitlab/Satellite/MergeAction.html
@@ -0,0 +1,274 @@
+
+
+
+
+ Gitlab::Satellite::MergeAction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Satellite::MergeAction
+
+ <
+
+ Action
+
+
+
+
+
+
+
+
+
+
+
+
GitLab server-side merge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ merge_request
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (user, merge_request)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (user , merge_request )
+ super user , merge_request .project
+ @merge_request = merge_request
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
can_be_merged? ()
+
+
Link
+
+
+
+
+
Checks if a merge request can be executed without user interaction
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_be_merged?
+ in_locked_and_timed_satellite do | merge_repo |
+ merge_in_satellite! (merge_repo )
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
Merges the source branch into the target branch in the satellite and pushes
+it back to Gitolite . It also removes the
+source branch if requested in the merge request.
+
+
Returns false if the merge produced conflicts Returns false if pushing from
+the satellite to Gitolite failed or was
+rejected Returns true otherwise
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge!
+ in_locked_and_timed_satellite do | merge_repo |
+ if merge_in_satellite! (merge_repo )
+
+
+ merge_repo .git .push ({raise : true , timeout : true }, :origin , merge_request .target_branch )
+
+
+ if merge_request .should_remove_source_branch && ! project .root_ref? (merge_request .source_branch )
+
+ merge_repo .git .push ({raise : true , timeout : true }, :origin , ":#{merge_request.source_branch}" )
+ end
+
+
+ true
+ end
+ end
+rescue Grit :: Git :: CommandFailed => ex
+ Gitlab :: GitLogger .error (ex .message )
+ false
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Satellite/Satellite.html b/doc/code/classes/Gitlab/Satellite/Satellite.html
new file mode 100644
index 00000000..86d82e6a
--- /dev/null
+++ b/doc/code/classes/Gitlab/Satellite/Satellite.html
@@ -0,0 +1,506 @@
+
+
+
+
+ Gitlab::Satellite::Satellite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Satellite::Satellite
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ E
+
+
+
+
+ L
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ PARKING_BRANCH
+ =
+ "__parking_branch"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ project
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (project )
+ @project = project
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
clear_and_update! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def clear_and_update!
+ raise "Satellite doesn't exist" unless exists?
+
+ delete_heads!
+ clear_working_dir!
+ update_from_source!
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ create_cmd = "git clone #{project.url_to_repo} #{path}"
+ if system (create_cmd )
+ true
+ else
+ Gitlab :: GitLogger .error ("Failed to create satellite for #{project.name_with_namespace}" )
+ false
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def exists?
+ File .exists? path
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def lock
+ raise "Satellite doesn't exist" unless exists?
+
+ File .open (lock_file , "w+" ) do | f |
+ f .flock (File :: LOCK_EX )
+
+ Dir .chdir (path ) do
+ return yield
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
lock_file ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def lock_file
+ Rails .root .join ("tmp" , "satellite_#{project.id}.lock" )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def path
+ Rails .root .join ("tmp" , "repo_satellites" , project .path_with_namespace )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repo
+ raise "Satellite doesn't exist" unless exists?
+
+ @repo ||= Grit :: Repo .new (path )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Seeder.html b/doc/code/classes/Gitlab/Seeder.html
new file mode 100644
index 00000000..a62c96a5
--- /dev/null
+++ b/doc/code/classes/Gitlab/Seeder.html
@@ -0,0 +1,134 @@
+
+
+
+
+ Gitlab::Seeder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Seeder
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ Q
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .quiet
+ SeedFu .quiet = true
+ yield
+ SeedFu .quiet = false
+ puts "\nOK" .green
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Session.html b/doc/code/classes/Gitlab/Session.html
new file mode 100644
index 00000000..ad14adc0
--- /dev/null
+++ b/doc/code/classes/Gitlab/Session.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::Session
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Session
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Theme.html b/doc/code/classes/Gitlab/Theme.html
new file mode 100644
index 00000000..8f918b35
--- /dev/null
+++ b/doc/code/classes/Gitlab/Theme.html
@@ -0,0 +1,141 @@
+
+
+
+
+ Gitlab::Theme
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Theme
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
css_class_by_id (id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .css_class_by_id (id )
+ themes = {
+ 1 => "ui_basic" ,
+ 2 => "ui_mars" ,
+ 3 => "ui_modern" ,
+ 4 => "ui_gray" ,
+ 5 => "ui_color"
+ }
+
+ id ||= 1
+
+ return themes [id ]
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Gitlab/Users.html b/doc/code/classes/Gitlab/Users.html
new file mode 100644
index 00000000..50ba3131
--- /dev/null
+++ b/doc/code/classes/Gitlab/Users.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Gitlab::Users
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Gitlab::Users
+
+ <
+
+ Grape::API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/GitlabCiService.html b/doc/code/classes/GitlabCiService.html
new file mode 100644
index 00000000..a56f614f
--- /dev/null
+++ b/doc/code/classes/GitlabCiService.html
@@ -0,0 +1,371 @@
+
+
+
+
+ GitlabCiService
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ GitlabCiService
+
+ <
+
+ Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: services
+
+
id :integer not null, primary key
+type :string(255)
+title :string(255)
+token :string(255)
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+active :boolean default(FALSE), not null
+project_url :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
activated? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def activated?
+ active
+end
+
+
+
+
+
+
+
+
+
build_page (sha)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def build_page sha
+ project_url + "/builds/#{sha}"
+end
+
+
+
+
+
+
+
+
+
commit_badge_path (sha)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_badge_path sha
+ project_url + "/status?sha=#{sha}"
+end
+
+
+
+
+
+
+
+
+
commit_status (sha)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_status sha
+ response = HTTParty .get (commit_status_path (sha ))
+
+ if response .code == 200 and response ["status" ]
+ response ["status" ]
+ else
+ :error
+ end
+end
+
+
+
+
+
+
+
+
+
commit_status_path (sha)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_status_path sha
+ project_url + "/builds/#{sha}/status.json?token=#{token}"
+end
+
+
+
+
+
+
+
+
+
compose_service_hook ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def compose_service_hook
+ hook = service_hook || build_service_hook
+ hook .url = [project_url , "/build" , "?token=#{token}" ].join ("" )
+ hook .save
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/GitlabMarkdownHelper.html b/doc/code/classes/GitlabMarkdownHelper.html
new file mode 100644
index 00000000..32ae5f82
--- /dev/null
+++ b/doc/code/classes/GitlabMarkdownHelper.html
@@ -0,0 +1,222 @@
+
+
+
+
+ GitlabMarkdownHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ GitlabMarkdownHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
link_to_gfm (body, url, html_options = {})
+
+
Link
+
+
+
+
+
Use this in places where you would normally use link_to(gfm(…), …).
+
+
It solves a problem occurring with nested links (i.e. “<a>outer text
+<a>gfm ref</a> more outer text</a>”). This will not be
+interpreted as intended. Browsers will parse something like “<a>outer
+text </a><a>gfm ref</a> more outer text” (notice the last
+part is not linked any more). #link_to_gfm
+corrects that. It wraps all parts to explicitly produce the correct linking
+behavior (i.e. “<a>outer text </a><a>gfm
+ref</a><a> more outer text</a>”).
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_to_gfm (body , url , html_options = {})
+ return "" if body .blank?
+
+ gfm_body = gfm (escape_once (body ), html_options )
+
+ gfm_body .gsub! (%r{<a.*?>.*?</a>} ) do | match |
+ "</a>#{match}#{link_to("", url, html_options)[0..-5]}"
+ end
+
+ link_to (gfm_body .html_safe , url , html_options )
+end
+
+
+
+
+
+
+
+
+
markdown (text)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def markdown (text )
+ unless @markdown
+ gitlab_renderer = Redcarpet :: Render :: GitlabHTML .new (self ,
+
+ filter_html : true ,
+ with_toc_data : true ,
+ hard_wrap : true )
+ @markdown = Redcarpet :: Markdown .new (gitlab_renderer ,
+
+ no_intra_emphasis : true ,
+ tables : true ,
+ fenced_code_blocks : true ,
+ autolink : true ,
+ strikethrough : true ,
+ lax_html_blocks : true ,
+ space_after_headers : true ,
+ superscript : true )
+ end
+
+ @markdown .render (text ).html_safe
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Grack.html b/doc/code/classes/Grack.html
new file mode 100644
index 00000000..9261c356
--- /dev/null
+++ b/doc/code/classes/Grack.html
@@ -0,0 +1,81 @@
+
+
+
+
+ Grack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Grack
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Grack/Auth.html b/doc/code/classes/Grack/Auth.html
new file mode 100644
index 00000000..a1350e2f
--- /dev/null
+++ b/doc/code/classes/Grack/Auth.html
@@ -0,0 +1,419 @@
+
+
+
+
+ Grack::Auth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Grack::Auth
+
+ <
+
+ Rack::Auth::Basic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ project
+
+
+
+
+
+ [RW]
+
+ user
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
can? (object, action, subject)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can? (object , action , subject )
+ abilities .allowed? (object , action , subject )
+end
+
+
+
+
+
+
+
+
+
current_ref ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def current_ref
+ if @env ["HTTP_CONTENT_ENCODING" ] =~ %rgzip/
+ input = Zlib :: GzipReader .new (@request .body ).read
+ else
+ input = @request .body .read
+ end
+
+ @request .body .rewind
+ %rrefs\/heads\/([\w\.-]+)/ .match (input ).to_a .first
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid?
+
+ login , password = @auth .credentials
+
+ self .user = User .find_by_email (login ) || User .find_by_username (login )
+
+ return false unless user .try (:valid_password? , password )
+
+ email = user .email
+
+
+ ENV ['GL_USER' ] = email
+
+ ENV ['GL_BYPASS_UPDATE_HOOK' ] = "true"
+
+
+ if m = %r^\/([\w\.\/-]+)\.git/ .match (@request .path_info ).to_a
+ self .project = Project .find_with_namespace (m .last )
+ return false unless project
+ end
+
+
+ if @request .get?
+ validate_get_request
+ elsif @request .post?
+ validate_post_request
+ else
+ false
+ end
+end
+
+
+
+
+
+
+
+
+
validate_get_request ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def validate_get_request
+ can? (user , :download_code , project )
+end
+
+
+
+
+
+
+
+
+
validate_post_request ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def validate_post_request
+ if @request .path_info .end_with? ('git-upload-pack' )
+ can? (user , :download_code , project )
+ elsif @request .path_info .end_with? ('git-receive-pack' )
+ action = if project .protected_branch? (current_ref )
+ :push_code_to_protected_branches
+ else
+ :push_code
+ end
+
+ can? (user , action , project )
+ else
+ false
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
abilities ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def abilities
+ @abilities ||= begin
+ abilities = Six .new
+ abilities << Ability
+ abilities
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Group.html b/doc/code/classes/Group.html
new file mode 100644
index 00000000..cf61c3ea
--- /dev/null
+++ b/doc/code/classes/Group.html
@@ -0,0 +1,294 @@
+
+
+
+
+ Group
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Group
+
+ <
+
+ Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: namespaces
+
+
id :integer not null, primary key
+name :string(255) not null
+path :string(255) not null
+owner_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ H
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
add_users_to_project_teams (user_ids, project_access)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_users_to_project_teams (user_ids , project_access )
+ UsersProject .add_users_into_projects (
+ projects .map (&:id ),
+ user_ids ,
+ project_access
+ )
+end
+
+
+
+
+
+
+
+
+
human_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def human_name
+ name
+end
+
+
+
+
+
+
+
+
+
truncate_teams ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def truncate_teams
+ UsersProject .truncate_teams (project_ids )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def users
+ users = User .joins (:users_projects ).where (users_projects : {project_id : project_ids })
+ users = users << owner
+ users .uniq
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/GroupsController.html b/doc/code/classes/GroupsController.html
new file mode 100644
index 00000000..dbca1708
--- /dev/null
+++ b/doc/code/classes/GroupsController.html
@@ -0,0 +1,566 @@
+
+
+
+
+ GroupsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ G
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ P
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
Get only assigned issues
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues
+ @user = current_user
+ @issues = current_user .assigned_issues .opened
+ @issues = @issues .of_group (@group ).recent .page (params [:page ]).per (20 )
+ @issues = @issues .includes (:author , :project )
+
+ respond_to do | format |
+ format .html
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
merge_requests ()
+
+
Link
+
+
+
+
+
Get authored or assigned open merge requests
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_requests
+ @merge_requests = current_user .cared_merge_requests .opened
+ @merge_requests = @merge_requests .of_group (@group ).recent .page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def people
+ @project = group .projects .find (params [:project_id ]) if params [:project_id ]
+ @users = @project ? @project .users : group .users
+ @users .sort_by! (&:name )
+
+ if @project
+ @team_member = @project .users_projects .new
+ else
+ @team_member = UsersProject .new
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search
+ result = SearchContext .new (project_ids , params ).execute
+
+ @projects = result [:projects ]
+ @merge_requests = result [:merge_requests ]
+ @issues = result [:issues ]
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @events = Event .in_projects (project_ids ).limit (20 ).offset (params [:offset ] || 0 )
+ @last_push = current_user .recent_push
+
+ respond_to do | format |
+ format .html
+ format .js
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
team_members ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_members
+ @group .add_users_to_project_teams (params [:user_ids ], params [:project_access ])
+ redirect_to people_group_path (@group ), notice : 'Users was successfully added.'
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
authorize_read_group! ()
+
+
Link
+
+
+
+
+
Dont allow unauthorized access to group
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_read_group!
+ unless projects .present? or can? (current_user , :manage_group , @group )
+ return render_404
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def group
+ @group ||= Group .find_by_path (params [:id ])
+end
+
+
+
+
+
+
+
+
+
project_ids ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_ids
+ projects .map (&:id )
+end
+
+
+
+
+
+
+
+
+
projects ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def projects
+ @projects ||= group .projects .authorized_for (current_user ).sorted_by_activity
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/HelpController.html b/doc/code/classes/HelpController.html
new file mode 100644
index 00000000..fbb76563
--- /dev/null
+++ b/doc/code/classes/HelpController.html
@@ -0,0 +1,130 @@
+
+
+
+
+ HelpController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/HooksController.html b/doc/code/classes/HooksController.html
new file mode 100644
index 00000000..511e05f0
--- /dev/null
+++ b/doc/code/classes/HooksController.html
@@ -0,0 +1,286 @@
+
+
+
+
+ HooksController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @hook = @project .hooks .new (params [:hook ])
+ @hook .save
+
+ if @hook .valid?
+ redirect_to project_hooks_path (@project )
+ else
+ @hooks = @project .hooks .all
+ render :index
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @hook = @project .hooks .find (params [:id ])
+ @hook .destroy
+
+ redirect_to project_hooks_path (@project )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @hooks = @project .hooks .all
+ @hook = ProjectHook .new
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def test
+ TestHookContext .new (project , current_user , params ).execute
+
+ redirect_to :back
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Issue.html b/doc/code/classes/Issue.html
new file mode 100644
index 00000000..6f71ea72
--- /dev/null
+++ b/doc/code/classes/Issue.html
@@ -0,0 +1,174 @@
+
+
+
+
+ Issue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Issue
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: issues
+
+
id :integer not null, primary key
+title :string(255)
+assignee_id :integer
+author_id :integer
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+closed :boolean default(FALSE), not null
+position :integer default(0)
+branch_name :string(255)
+description :text
+milestone_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ O
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
open_for (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .open_for (user )
+ opened .assigned (user )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssueCommonality.html b/doc/code/classes/IssueCommonality.html
new file mode 100644
index 00000000..7398308a
--- /dev/null
+++ b/doc/code/classes/IssueCommonality.html
@@ -0,0 +1,356 @@
+
+
+
+
+ IssueCommonality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ IssueCommonality
+
+
+
+
+
+
+
+
+
+
Contains common functionality shared between Issues and MergeRequests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
is_assigned? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_assigned?
+ ! ! assignee_id
+end
+
+
+
+
+
+
+
+
+
is_being_closed? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_being_closed?
+ closed_changed? && closed
+end
+
+
+
+
+
+
+
+
+
is_being_reassigned? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_being_reassigned?
+ assignee_id_changed?
+end
+
+
+
+
+
+
+
+
+
is_being_reopened? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_being_reopened?
+ closed_changed? && ! closed
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new?
+ today? && created_at == updated_at
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def today?
+ Date .today == created_at .to_date
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssueCommonality/ClassMethods.html b/doc/code/classes/IssueCommonality/ClassMethods.html
new file mode 100644
index 00000000..5c3ca9b2
--- /dev/null
+++ b/doc/code/classes/IssueCommonality/ClassMethods.html
@@ -0,0 +1,125 @@
+
+
+
+
+ IssueCommonality::ClassMethods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ IssueCommonality::ClassMethods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
search (query)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search (query )
+ where ("title like :query" , query : "%#{query}%" )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssueObserver.html b/doc/code/classes/IssueObserver.html
new file mode 100644
index 00000000..1600c0f0
--- /dev/null
+++ b/doc/code/classes/IssueObserver.html
@@ -0,0 +1,236 @@
+
+
+
+
+ IssueObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ IssueObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (issue)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (issue )
+ if issue .assignee && issue .assignee != current_user
+ Notify .new_issue_email (issue .id ).deliver
+ end
+end
+
+
+
+
+
+
+
+
+
after_update (issue)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_update (issue )
+ send_reassigned_email (issue ) if issue .is_being_reassigned?
+
+ status = nil
+ status = 'closed' if issue .is_being_closed?
+ status = 'reopened' if issue .is_being_reopened?
+ if status
+ Note .create_status_change_note (issue , current_user , status )
+ [issue .author , issue .assignee ].compact .each do | recipient |
+ Notify .issue_status_changed_email (recipient .id , issue .id , status , current_user .id ).deliver
+ end
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
send_reassigned_email (issue)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def send_reassigned_email (issue )
+ recipient_ids = [issue .assignee_id , issue .assignee_id_was ].keep_if {| id | id && id != current_user .id }
+
+ recipient_ids .each do | recipient_id |
+ Notify .reassigned_issue_email (recipient_id , issue .id , issue .assignee_id_was ).deliver
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssuesBulkUpdateContext.html b/doc/code/classes/IssuesBulkUpdateContext.html
new file mode 100644
index 00000000..0214d217
--- /dev/null
+++ b/doc/code/classes/IssuesBulkUpdateContext.html
@@ -0,0 +1,149 @@
+
+
+
+
+ IssuesBulkUpdateContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ IssuesBulkUpdateContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ update_data = params [:update ]
+
+ issues_ids = update_data [:issues_ids ].split ("," )
+ milestone_id = update_data [:milestone_id ]
+ assignee_id = update_data [:assignee_id ]
+ status = update_data [:status ]
+
+ opts = {}
+ opts [:milestone_id ] = milestone_id if milestone_id .present?
+ opts [:assignee_id ] = assignee_id if assignee_id .present?
+ opts [:closed ] = (status == "closed" ) if status .present?
+
+ issues = Issue .where (id : issues_ids ).all
+ issues = issues .select { | issue | can? (current_user , :modify_issue , issue ) }
+ issues .each { | issue | issue .update_attributes (opts ) }
+ {
+ count : issues .count ,
+ success : ! issues .count .zero?
+ }
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssuesController.html b/doc/code/classes/IssuesController.html
new file mode 100644
index 00000000..1e18d7a8
--- /dev/null
+++ b/doc/code/classes/IssuesController.html
@@ -0,0 +1,761 @@
+
+
+
+
+ IssuesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
bulk_update ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def bulk_update
+ result = IssuesBulkUpdateContext .new (project , current_user , params ).execute
+ redirect_to :back , notice : "#{result[:count]} issues updated"
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @issue = @project .issues .new (params [:issue ])
+ @issue .author = current_user
+ @issue .save
+
+ respond_to do | format |
+ format .html do
+ if @issue .valid?
+ redirect_to project_issue_path (@project , @issue )
+ else
+ render :new
+ end
+ end
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ respond_with (@issue )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @issues = issues_filtered
+ @issues = @issues .page (params [:page ]).per (20 )
+
+ respond_to do | format |
+ format .html
+ format .js
+ format .atom { render layout : false }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @issue = @project .issues .new (params [:issue ])
+ respond_with (@issue )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search
+ terms = params ['terms' ]
+
+ @issues = issues_filtered
+ @issues = @issues .where ("title LIKE ?" , "%#{terms}%" ) unless terms .blank?
+ @issues = @issues .page (params [:page ]).per (100 )
+
+ render partial : 'issues'
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @note = @project .notes .new (noteable : @issue )
+
+ respond_to do | format |
+ format .html
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def sort
+ return render_404 unless can? (current_user , :admin_issue , @project )
+
+ @issues = @project .issues .where (id : params ['issue' ])
+ @issues .each do | issue |
+ issue .position = params ['issue' ].index (issue .id .to_s ) + 1
+ issue .save
+ end
+
+ render nothing : true
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @issue .update_attributes (params [:issue ].merge (author_id_of_changes : current_user .id ))
+
+ respond_to do | format |
+ format .js
+ format .html do
+ if @issue .valid?
+ redirect_to [@project , @issue ]
+ else
+ render :edit
+ end
+ end
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
authorize_admin_issue! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_admin_issue!
+ return render_404 unless can? (current_user , :admin_issue , @issue )
+end
+
+
+
+
+
+
+
+
+
authorize_modify_issue! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_modify_issue!
+ return render_404 unless can? (current_user , :modify_issue , @issue )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issue
+ @issue ||= @project .issues .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
issues_filtered ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues_filtered
+ @issues = IssuesListContext .new (project , current_user , params ).execute
+end
+
+
+
+
+
+
+
+
+
module_enabled ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def module_enabled
+ return render_404 unless @project .issues_enabled
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssuesHelper.html b/doc/code/classes/IssuesHelper.html
new file mode 100644
index 00000000..7b751045
--- /dev/null
+++ b/doc/code/classes/IssuesHelper.html
@@ -0,0 +1,401 @@
+
+
+
+
+ IssuesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ IssuesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+ L
+
+
+
+
+ P
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
issue_css_classes (issue)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issue_css_classes issue
+ classes = "issue"
+ classes << " closed" if issue .closed
+ classes << " today" if issue .today?
+ classes
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
issues_active_milestones ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues_active_milestones
+ @project .milestones .active .order ("id desc" ).all
+end
+
+
+
+
+
+
+
+
+
issues_filter ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues_filter
+ {
+ all : "all" ,
+ closed : "closed" ,
+ to_me : "assigned-to-me" ,
+ open : "open"
+ }
+end
+
+
+
+
+
+
+
+
+
labels_autocomplete_source ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def labels_autocomplete_source
+ labels = @project .issues_labels .order ('count DESC' )
+ labels = labels .map { | l | { label : l .name , value : l .name } }
+ labels .to_json
+end
+
+
+
+
+
+
+
+
+
project_issues_filter_path (project, params = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_issues_filter_path project , params = {}
+ params [:f ] ||= cookies ['issue_filter' ]
+ project_issues_path project , params
+end
+
+
+
+
+
+
+
+
+
unassigned_filter ()
+
+
Link
+
+
+
+
+
Returns an OpenStruct object suitable for use by
+options_from_collection_for_select
to allow filtering issues
+by an unassigned User or Milestone
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unassigned_filter
+
+ OpenStruct .new (id : 0 , title : 'Unspecified' , name : 'Unassigned' )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/IssuesListContext.html b/doc/code/classes/IssuesListContext.html
new file mode 100644
index 00000000..0298ec75
--- /dev/null
+++ b/doc/code/classes/IssuesListContext.html
@@ -0,0 +1,179 @@
+
+
+
+
+ IssuesListContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ IssuesListContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ issues
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ @issues = case params [:f ]
+ when issues_filter [:all ] then @project .issues
+ when issues_filter [:closed ] then @project .issues .closed
+ when issues_filter [:to_me ] then @project .issues .opened .assigned (current_user )
+ else @project .issues .opened
+ end
+
+ @issues = @issues .tagged_with (params [:label_name ]) if params [:label_name ].present?
+ @issues = @issues .includes (:author , :project ).order ("updated_at" )
+
+
+ if params [:assignee_id ].present?
+ @issues = @issues .where (assignee_id : (params [:assignee_id ] == '0' ? nil : params [:assignee_id ]))
+ end
+
+
+ if params [:milestone_id ].present?
+ @issues = @issues .where (milestone_id : (params [:milestone_id ] == '0' ? nil : params [:milestone_id ]))
+ end
+
+ @issues
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Key.html b/doc/code/classes/Key.html
new file mode 100644
index 00000000..0935e486
--- /dev/null
+++ b/doc/code/classes/Key.html
@@ -0,0 +1,429 @@
+
+
+
+
+ Key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Key
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ F
+
+
+
+
+ I
+
+
+
+
+ L
+
+
+
+
+ P
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
fingerprintable_key ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def fingerprintable_key
+ return true unless key
+
+ file = Tempfile .new ('key_file' )
+ begin
+ file .puts key
+ file .rewind
+ fingerprint_output = %xssh-keygen -lf #{file.path} 2>&1`
+ ensure
+ file .close
+ file .unlink
+ end
+ errors .add (:key , "can't be fingerprinted" ) if fingerprint_output .match ("failed" )
+end
+
+
+
+
+
+
+
+
+
is_deploy_key ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_deploy_key
+ true if project_id
+end
+
+
+
+
+
+
+
+
+
last_deploy? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_deploy?
+ Key .where (identifier : identifier ).count == 0
+end
+
+
+
+
+
+
+
+
+
projects ()
+
+
Link
+
+
+
+
+
projects that has this key
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def projects
+ if is_deploy_key
+ [project ]
+ else
+ user .projects
+ end
+end
+
+
+
+
+
+
+
+
+
set_identifier ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def set_identifier
+ if is_deploy_key
+ self .identifier = "deploy_#{Digest::MD5.hexdigest(key)}"
+ else
+ self .identifier = "#{user.identifier}_#{Time.now.to_i}"
+ end
+end
+
+
+
+
+
+
+
+
+
strip_white_space ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def strip_white_space
+ self .key = self .key .strip unless self .key .blank?
+end
+
+
+
+
+
+
+
+
+
unique_key ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unique_key
+ query = Key .where (key : key )
+ query = query .where ('(project_id IS NULL OR project_id = ?)' , project_id ) if project_id
+ if (query .count > 0 )
+ errors .add :key , 'already exist.'
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/KeyObserver.html b/doc/code/classes/KeyObserver.html
new file mode 100644
index 00000000..1044ea2f
--- /dev/null
+++ b/doc/code/classes/KeyObserver.html
@@ -0,0 +1,186 @@
+
+
+
+
+ KeyObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ KeyObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_destroy (key)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_destroy (key )
+ return if key .is_deploy_key && ! key .last_deploy?
+ git_host .remove_key (key .identifier , key .projects )
+end
+
+
+
+
+
+
+
+
+
after_save (key)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_save (key )
+ git_host .set_key (key .identifier , key .key , key .projects )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/KeysController.html b/doc/code/classes/KeysController.html
new file mode 100644
index 00000000..9caccb75
--- /dev/null
+++ b/doc/code/classes/KeysController.html
@@ -0,0 +1,330 @@
+
+
+
+
+ KeysController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @key = current_user .keys .new (params [:key ])
+ @key .save
+
+ respond_with (@key )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @key = current_user .keys .find (params [:id ])
+ @key .destroy
+
+ respond_to do | format |
+ format .html { redirect_to keys_url }
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @keys = current_user .keys .all
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @key = current_user .keys .new
+
+ respond_with (@key )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @key = current_user .keys .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/LabelsController.html b/doc/code/classes/LabelsController.html
new file mode 100644
index 00000000..53d54c6b
--- /dev/null
+++ b/doc/code/classes/LabelsController.html
@@ -0,0 +1,180 @@
+
+
+
+
+ LabelsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @labels = @project .issues_labels .order ('count DESC' )
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
module_enabled ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def module_enabled
+ return render_404 unless @project .issues_enabled
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MergeRequest.html b/doc/code/classes/MergeRequest.html
new file mode 100644
index 00000000..cd404609
--- /dev/null
+++ b/doc/code/classes/MergeRequest.html
@@ -0,0 +1,1569 @@
+
+
+
+
+ MergeRequest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ MergeRequest
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ F
+
+
+
+
+ H
+
+
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+ O
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ BROKEN_DIFF
+ =
+ "--broken-diff"
+
+
+
+
+
+
+
+
+
+ UNCHECKED
+ =
+ 1
+
+
+
+
+
+
+
+
+
+ CAN_BE_MERGED
+ =
+ 2
+
+
+
+
+
+
+
+
+
+ CANNOT_BE_MERGED
+ =
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ should_remove_source_branch
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
find_all_by_branch (branch_name)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .find_all_by_branch (branch_name )
+ where ("source_branch LIKE :branch OR target_branch LIKE :branch" , branch : branch_name )
+end
+
+
+
+
+
+
+
+
+
find_all_by_milestone (milestone)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .find_all_by_milestone (milestone )
+ where ("milestone_id = :milestone_id" , milestone_id : milestone )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
automerge! (current_user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def automerge! (current_user )
+ if Gitlab :: Satellite :: MergeAction .new (current_user , self ).merge! && self .unmerged_commits .empty?
+ self .merge! (current_user .id )
+ true
+ end
+rescue
+ self .mark_as_unmergable
+ false
+end
+
+
+
+
+
+
+
+
+
broken_diffs? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def broken_diffs?
+ diffs == [BROKEN_DIFF ]
+end
+
+
+
+
+
+
+
+
+
can_be_merged? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_be_merged?
+ state == CAN_BE_MERGED
+end
+
+
+
+
+
+
+
+
+
check_if_can_be_merged ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def check_if_can_be_merged
+ self .state = if Gitlab :: Satellite :: MergeAction .new (self .author , self ).can_be_merged?
+ CAN_BE_MERGED
+ else
+ CANNOT_BE_MERGED
+ end
+ self .save
+end
+
+
+
+
+
+
+
+
+
closed_event ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def closed_event
+ self .project .events .where (target_id : self .id , target_type : "MergeRequest" , action : Event :: Closed ).last
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits
+ st_commits || []
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def diffs
+ st_diffs || []
+end
+
+
+
+
+
+
+
+
+
human_state ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def human_state
+ states = {
+ CAN_BE_MERGED => "can_be_merged" ,
+ CANNOT_BE_MERGED => "cannot_be_merged" ,
+ UNCHECKED => "unchecked"
+ }
+ states [self .state ]
+end
+
+
+
+
+
+
+
+
+
last_commit ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_commit
+ commits .first
+end
+
+
+
+
+
+
+
+
+
last_commit_short_sha ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_commit_short_sha
+ @last_commit_short_sha ||= last_commit .sha [0 .. 10 ]
+end
+
+
+
+
+
+
+
+
+
mark_as_merged! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mark_as_merged!
+ self .merged = true
+ self .closed = true
+ save
+end
+
+
+
+
+
+
+
+
+
mark_as_unchecked ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mark_as_unchecked
+ self .state = UNCHECKED
+ self .save
+end
+
+
+
+
+
+
+
+
+
mark_as_unmergable ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mark_as_unmergable
+ self .state = CANNOT_BE_MERGED
+ self .save
+end
+
+
+
+
+
+
+
+
+
merge! (user_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge! (user_id )
+ self .mark_as_merged!
+ Event .create (
+ project : self .project ,
+ action : Event :: Merged ,
+ target_id : self .id ,
+ target_type : "MergeRequest" ,
+ author_id : user_id
+ )
+end
+
+
+
+
+
+
+
+
+
merge_event ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_event
+ self .project .events .where (target_id : self .id , target_type : "MergeRequest" , action : Event :: Merged ).last
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merged?
+ merged && merge_event
+end
+
+
+
+
+
+
+
+
+
mr_and_commit_notes ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mr_and_commit_notes
+ commit_ids = commits .map (&:id )
+ Note .where ("(noteable_type = 'MergeRequest' AND noteable_id = :mr_id) OR (noteable_type = 'Commit' AND commit_id IN (:commit_ids))" , mr_id : id , commit_ids : commit_ids )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def open?
+ ! closed
+end
+
+
+
+
+
+
+
+
+
probably_merged? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def probably_merged?
+ unmerged_commits .empty? &&
+ commits .any? && open?
+end
+
+
+
+
+
+
+
+
+
reload_code ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reload_code
+ self .reloaded_commits
+ self .reloaded_diffs
+end
+
+
+
+
+
+
+
+
+
reloaded_commits ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reloaded_commits
+ if open? && unmerged_commits .any?
+ self .st_commits = unmerged_commits
+ save
+ end
+ commits
+end
+
+
+
+
+
+
+
+
+
reloaded_diffs ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reloaded_diffs
+ if open? && unmerged_diffs .any?
+ self .st_diffs = unmerged_diffs
+ self .save
+ end
+
+rescue Grit :: Git :: GitTimeout
+ self .st_diffs = [BROKEN_DIFF ]
+ self .save
+end
+
+
+
+
+
+
+
+
+
+
+
Returns the raw diff for this merge request
+
+
see “git diff”
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_diff
+ project .repo .git .native (:diff , {timeout : 30 , raise : true }, "#{target_branch}...#{source_branch}" )
+end
+
+
+
+
+
+
+
+
+
to_patch ()
+
+
Link
+
+
+
+
+
Returns the commit as a series of email patches.
+
+
see “git format-patch”
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_patch
+ project .repo .git .format_patch ({timeout : 30 , raise : true , stdout : true }, "#{target_branch}..#{source_branch}" )
+end
+
+
+
+
+
+
+
+
+
unchecked? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unchecked?
+ state == UNCHECKED
+end
+
+
+
+
+
+
+
+
+
unmerged_commits ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unmerged_commits
+ self .project .repo .
+ commits_between (self .target_branch , self .source_branch ).
+ map {| c | Commit .new (c )}.
+ sort_by (&:created_at ).
+ reverse
+end
+
+
+
+
+
+
+
+
+
unmerged_diffs ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def unmerged_diffs
+
+
+
+ common_commit = project .repo .git .native (:merge_base , {}, [target_branch , source_branch ]).strip
+ diffs = project .repo .diff (common_commit , source_branch )
+end
+
+
+
+
+
+
+
+
+
valid_diffs? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid_diffs?
+ ! broken_diffs?
+end
+
+
+
+
+
+
+
+
+
validate_branches ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def validate_branches
+ if target_branch == source_branch
+ errors .add :base , "You can not use same branch for source and target branches"
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MergeRequestObserver.html b/doc/code/classes/MergeRequestObserver.html
new file mode 100644
index 00000000..364e0346
--- /dev/null
+++ b/doc/code/classes/MergeRequestObserver.html
@@ -0,0 +1,234 @@
+
+
+
+
+ MergeRequestObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ MergeRequestObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (merge_request)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (merge_request )
+ if merge_request .assignee && merge_request .assignee != current_user
+ Notify .new_merge_request_email (merge_request .id ).deliver
+ end
+end
+
+
+
+
+
+
+
+
+
after_update (merge_request)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_update (merge_request )
+ send_reassigned_email (merge_request ) if merge_request .is_being_reassigned?
+
+ status = nil
+ status = 'closed' if merge_request .is_being_closed?
+ status = 'reopened' if merge_request .is_being_reopened?
+ if status
+ Note .create_status_change_note (merge_request , current_user , status )
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
send_reassigned_email (merge_request)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def send_reassigned_email (merge_request )
+ recipients_ids = merge_request .assignee_id_was , merge_request .assignee_id
+ recipients_ids .delete current_user .id
+
+ recipients_ids .each do | recipient_id |
+ Notify .reassigned_merge_request_email (recipient_id , merge_request .id , merge_request .assignee_id_was ).deliver
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MergeRequestsController.html b/doc/code/classes/MergeRequestsController.html
new file mode 100644
index 00000000..4cf181fa
--- /dev/null
+++ b/doc/code/classes/MergeRequestsController.html
@@ -0,0 +1,932 @@
+
+
+
+
+ MergeRequestsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
automerge ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def automerge
+ return access_denied! unless can? (current_user , :accept_mr , @project )
+ if @merge_request .open? && @merge_request .can_be_merged?
+ @merge_request .should_remove_source_branch = params [:should_remove_source_branch ]
+ @merge_request .automerge! (current_user )
+ @status = true
+ else
+ @status = false
+ end
+end
+
+
+
+
+
+
+
+
+
automerge_check ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def automerge_check
+ if @merge_request .unchecked?
+ @merge_request .check_if_can_be_merged
+ end
+ render json : {state : @merge_request .human_state }
+end
+
+
+
+
+
+
+
+
+
branch_from ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branch_from
+ @commit = project .commit (params [:ref ])
+ @commit = CommitDecorator .decorate (@commit )
+end
+
+
+
+
+
+
+
+
+
branch_to ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branch_to
+ @commit = project .commit (params [:ref ])
+ @commit = CommitDecorator .decorate (@commit )
+end
+
+
+
+
+
+
+
+
+
ci_status ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ci_status
+ status = project .gitlab_ci_service .commit_status (merge_request .last_commit .sha )
+ response = { status : status }
+
+ render json : response
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @merge_request = @project .merge_requests .new (params [:merge_request ])
+ @merge_request .author = current_user
+
+ if @merge_request .save
+ @merge_request .reload_code
+ redirect_to [@project , @merge_request ], notice : 'Merge request was successfully created.'
+ else
+ render action : "new"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def diffs
+ @diffs = @merge_request .diffs
+ @commit = @merge_request .last_commit
+
+ @comments_allowed = true
+ @line_notes = @merge_request .notes .where ("line_code is not null" )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @merge_requests = MergeRequestsLoadContext .new (project , current_user , params ).execute
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @merge_request = @project .merge_requests .new (params [:merge_request ])
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ respond_to do | format |
+ format .html
+ format .js
+
+ format .diff { render text : @merge_request .to_diff }
+ format .patch { render text : @merge_request .to_patch }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ if @merge_request .update_attributes (params [:merge_request ].merge (author_id_of_changes : current_user .id ))
+ @merge_request .reload_code
+ @merge_request .mark_as_unchecked
+ redirect_to [@project , @merge_request ], notice : 'Merge request was successfully updated.'
+ else
+ render action : "edit"
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
authorize_admin_merge_request! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_admin_merge_request!
+ return render_404 unless can? (current_user , :admin_merge_request , @merge_request )
+end
+
+
+
+
+
+
+
+
+
authorize_modify_merge_request! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_modify_merge_request!
+ return render_404 unless can? (current_user , :modify_merge_request , @merge_request )
+end
+
+
+
+
+
+
+
+
+
define_show_vars ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def define_show_vars
+
+ @note = @project .notes .new (noteable : @merge_request )
+
+
+
+ @commits = @merge_request .commits
+ @commits = CommitDecorator .decorate (@commits )
+end
+
+
+
+
+
+
+
+
+
merge_request ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def merge_request
+ @merge_request ||= @project .merge_requests .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
module_enabled ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def module_enabled
+ return render_404 unless @project .merge_requests_enabled
+end
+
+
+
+
+
+
+
+
+
validates_merge_request ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def validates_merge_request
+
+ return git_not_found! unless @project .repo .heads .map (&:name ).include? (@merge_request .target_branch )
+
+
+
+ return git_not_found! if ! @project .repo .heads .map (&:name ).include? (@merge_request .source_branch ) && @merge_request .commits .blank?
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MergeRequestsHelper.html b/doc/code/classes/MergeRequestsHelper.html
new file mode 100644
index 00000000..33725cf7
--- /dev/null
+++ b/doc/code/classes/MergeRequestsHelper.html
@@ -0,0 +1,229 @@
+
+
+
+
+ MergeRequestsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ MergeRequestsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
ci_build_details_path (merge_request)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ci_build_details_path merge_request
+ merge_request .project .gitlab_ci_service .build_page (merge_request .last_commit .sha )
+end
+
+
+
+
+
+
+
+
+
mr_css_classes (mr)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def mr_css_classes mr
+ classes = "merge_request"
+ classes << " closed" if mr .closed
+ classes << " merged" if mr .merged?
+ classes
+end
+
+
+
+
+
+
+
+
+
new_mr_path_from_push_event (event)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_mr_path_from_push_event (event )
+ new_project_merge_request_path (
+ event .project ,
+ merge_request : {
+ source_branch : event .branch_name ,
+ target_branch : event .project .root_ref ,
+ title : event .branch_name .titleize
+ }
+ )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MergeRequestsLoadContext.html b/doc/code/classes/MergeRequestsLoadContext.html
new file mode 100644
index 00000000..5e2501c7
--- /dev/null
+++ b/doc/code/classes/MergeRequestsLoadContext.html
@@ -0,0 +1,162 @@
+
+
+
+
+ MergeRequestsLoadContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ MergeRequestsLoadContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
Build collection of Merge Requests based on filtering passed via params for
+@project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ type = params [:f ]
+
+ merge_requests = project .merge_requests
+
+ merge_requests = case type
+ when 'all' then merge_requests
+ when 'closed' then merge_requests .closed
+ when 'assigned-to-me' then merge_requests .opened .assigned (current_user )
+ else merge_requests .opened
+ end
+
+ merge_requests = merge_requests .page (params [:page ]).per (20 )
+ merge_requests = merge_requests .includes (:author , :project ).order ("closed, created_at desc" )
+
+
+ if params [:assignee_id ].present?
+ merge_requests = merge_requests .where (assignee_id : (params [:assignee_id ] == '0' ? nil : params [:assignee_id ]))
+ end
+
+
+ if params [:milestone_id ].present?
+ merge_requests = merge_requests .where (milestone_id : (params [:milestone_id ] == '0' ? nil : params [:milestone_id ]))
+ end
+
+ merge_requests
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Milestone.html b/doc/code/classes/Milestone.html
new file mode 100644
index 00000000..5f275210
--- /dev/null
+++ b/doc/code/classes/Milestone.html
@@ -0,0 +1,616 @@
+
+
+
+
+ Milestone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Milestone
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: milestones
+
+
id :integer not null, primary key
+title :string(255) not null
+project_id :integer not null
+description :text
+due_date :date
+closed :boolean default(FALSE), not null
+created_at :datetime not null
+updated_at :datetime not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ O
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ author_id_of_changes
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
author_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def author_id
+ author_id_of_changes
+end
+
+
+
+
+
+
+
+
+
can_be_closed? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def can_be_closed?
+ open? && issues .opened .count .zero?
+end
+
+
+
+
+
+
+
+
+
closed_items_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def closed_items_count
+ self .issues .closed .count + self .merge_requests .closed .count
+end
+
+
+
+
+
+
+
+
+
expired? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def expired?
+ if due_date
+ due_date .past?
+ else
+ false
+ end
+end
+
+
+
+
+
+
+
+
+
expires_at ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def expires_at
+ if due_date
+ if due_date .past?
+ "expired at #{due_date.stamp("Aug 21, 2011")}"
+ else
+ "expires at #{due_date.stamp("Aug 21, 2011")}"
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
is_empty? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_empty?
+ total_items_count .zero?
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def open?
+ ! closed
+end
+
+
+
+
+
+
+
+
+
open_items_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def open_items_count
+ self .issues .opened .count + self .merge_requests .opened .count
+end
+
+
+
+
+
+
+
+
+
participants ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def participants
+ User .where (id : issues .pluck (:assignee_id ))
+end
+
+
+
+
+
+
+
+
+
percent_complete ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def percent_complete
+ ((closed_items_count * 100 ) / total_items_count ).abs
+rescue ZeroDivisionError
+ 100
+end
+
+
+
+
+
+
+
+
+
total_items_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def total_items_count
+ self .issues .count + self .merge_requests .count
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/MilestonesController.html b/doc/code/classes/MilestonesController.html
new file mode 100644
index 00000000..48a3beb6
--- /dev/null
+++ b/doc/code/classes/MilestonesController.html
@@ -0,0 +1,589 @@
+
+
+
+
+ MilestonesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @milestone = @project .milestones .new (params [:milestone ])
+ @milestone .author_id_of_changes = current_user .id
+
+ if @milestone .save
+ redirect_to project_milestone_path (@project , @milestone )
+ else
+ render "new"
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ return access_denied! unless can? (current_user , :admin_milestone , @milestone )
+
+ @milestone .destroy
+
+ respond_to do | format |
+ format .html { redirect_to project_milestones_path }
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ respond_with (@milestone )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @milestones = case params [:f ]
+ when 'all' ; @project .milestones .order ("closed, due_date DESC" )
+ when 'closed' ; @project .milestones .closed .order ("due_date DESC" )
+ else @project .milestones .active .order ("due_date ASC" )
+ end
+
+ @milestones = @milestones .includes (:project )
+ @milestones = @milestones .page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @milestone = @project .milestones .new
+ respond_with (@milestone )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @issues = @milestone .issues
+ @users = UserDecorator .decorate (@milestone .participants )
+ @merge_requests = @milestone .merge_requests
+
+ respond_to do | format |
+ format .html
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @milestone .update_attributes (params [:milestone ].merge (author_id_of_changes : current_user .id ))
+
+ respond_to do | format |
+ format .js
+ format .html do
+ if @milestone .valid?
+ redirect_to [@project , @milestone ]
+ else
+ render :edit
+ end
+ end
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
authorize_admin_milestone! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_admin_milestone!
+ return render_404 unless can? (current_user , :admin_milestone , @project )
+end
+
+
+
+
+
+
+
+
+
milestone ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def milestone
+ @milestone ||= @project .milestones .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
module_enabled ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def module_enabled
+ return render_404 unless @project .issues_enabled
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Namespace.html b/doc/code/classes/Namespace.html
new file mode 100644
index 00000000..02c9b7e4
--- /dev/null
+++ b/doc/code/classes/Namespace.html
@@ -0,0 +1,629 @@
+
+
+
+
+ Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Namespace
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: namespaces
+
+
id :integer not null, primary key
+name :string(255) not null
+path :string(255) not null
+owner_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ G
+
+
+
+
+ H
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
global_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .global_id
+ 'GLN'
+end
+
+
+
+
+
+
+
+
+
search (query)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .search query
+ where ("name LIKE :query OR path LIKE :query" , query : "%#{query}%" )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
dir_exists? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def dir_exists?
+ File .exists? (namespace_full_path )
+end
+
+
+
+
+
+
+
+
+
ensure_dir_exist ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ensure_dir_exist
+ unless dir_exists?
+ system ("mkdir -m 770 #{namespace_full_path}" )
+ end
+end
+
+
+
+
+
+
+
+
+
human_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def human_name
+ owner_name
+end
+
+
+
+
+
+
+
+
+
move_dir ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def move_dir
+ if path_changed?
+ old_path = File .join (Gitlab .config .gitolite .repos_path , path_was )
+ new_path = File .join (Gitlab .config .gitolite .repos_path , path )
+ if File .exists? (new_path )
+ raise "Already exists"
+ end
+
+ if system ("mv #{old_path} #{new_path}" )
+ send_update_instructions
+ @require_update_gitolite = true
+ else
+ raise "Namespace move error #{old_path} #{new_path}"
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
namespace_full_path ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespace_full_path
+ @namespace_full_path ||= File .join (Gitlab .config .gitolite .repos_path , path )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def rm_dir
+ dir_path = File .join (Gitlab .config .gitolite .repos_path , path )
+ system ("rm -rf #{dir_path}" )
+end
+
+
+
+
+
+
+
+
+
send_update_instructions ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def send_update_instructions
+ projects .each (&:send_move_instructions )
+end
+
+
+
+
+
+
+
+
+
to_param ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_param
+ path
+end
+
+
+
+
+
+
+
+
+
update_gitolite ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_gitolite
+ @require_update_gitolite = false
+ projects .each (&:update_repository )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NamespacedProject.html b/doc/code/classes/NamespacedProject.html
new file mode 100644
index 00000000..976338e8
--- /dev/null
+++ b/doc/code/classes/NamespacedProject.html
@@ -0,0 +1,344 @@
+
+
+
+
+ NamespacedProject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ NamespacedProject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def chief
+ if namespace
+ namespace_owner
+ else
+ owner
+ end
+end
+
+
+
+
+
+
+
+
+
name_with_namespace ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def name_with_namespace
+ @name_with_namespace ||= begin
+ if namespace
+ namespace .human_name + " / " + name
+ else
+ name
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
namespace_owner ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespace_owner
+ namespace .try (:owner )
+end
+
+
+
+
+
+
+
+
+
path_with_namespace ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def path_with_namespace
+ if namespace
+ namespace .path + '/' + path
+ else
+ path
+ end
+end
+
+
+
+
+
+
+
+
+
transfer (new_namespace)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def transfer (new_namespace )
+ Project .transaction do
+ old_namespace = namespace
+ self .namespace = new_namespace
+
+ old_dir = old_namespace .try (:path ) || ''
+ new_dir = new_namespace .try (:path ) || ''
+
+ old_repo = if old_dir .present?
+ File .join (old_dir , self .path )
+ else
+ self .path
+ end
+
+ if Project .where (path : self .path , namespace_id : new_namespace .try (:id )).present?
+ raise TransferError .new ("Project with same path in target namespace already exists" )
+ end
+
+ Gitlab :: ProjectMover .new (self , old_dir , new_dir ).execute
+
+ git_host .move_repository (old_repo , self )
+
+ save!
+ end
+rescue Gitlab :: ProjectMover :: ProjectMoveError => ex
+ raise Project :: TransferError .new (ex .message )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NamespacesHelper.html b/doc/code/classes/NamespacesHelper.html
new file mode 100644
index 00000000..28d485d9
--- /dev/null
+++ b/doc/code/classes/NamespacesHelper.html
@@ -0,0 +1,146 @@
+
+
+
+
+ NamespacesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ NamespacesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
namespaces_options (selected = :current_user, scope = :default)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespaces_options (selected = :current_user , scope = :default )
+ groups = current_user .namespaces .select {| n | n .type == 'Group' }
+
+ users = if scope == :all
+ Namespace .root
+ else
+ current_user .namespaces .reject {| n | n .type == 'Group' }
+ end
+
+ global_opts = ["Global" , [['/' , Namespace .global_id ]] ]
+ group_opts = ["Groups" , groups .map {| g | [g .human_name , g .id ]} ]
+ users_opts = [ "Users" , users .map {| u | [u .human_name , u .id ]} ]
+
+ options = []
+ options << global_opts if current_user .admin
+ options << group_opts
+ options << users_opts
+
+ if selected == :current_user && current_user .namespace
+ selected = current_user .namespace .id
+ end
+
+ grouped_options_for_select (options , selected )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Note.html b/doc/code/classes/Note.html
new file mode 100644
index 00000000..4ec1c4dc
--- /dev/null
+++ b/doc/code/classes/Note.html
@@ -0,0 +1,536 @@
+
+
+
+
+ Note
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Note
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ F
+
+
+
+
+ N
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ notify
+
+
+
+
+
+ [RW]
+
+ notify_author
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
create_status_change_note (noteable, author, status)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .create_status_change_note (noteable , author , status )
+ create ({
+ noteable : noteable ,
+ project : noteable .project ,
+ author : author ,
+ note : "_Status changed to #{status}_"
+ }, without_protection : true )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
commit_author ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_author
+ @commit_author ||=
+ project .users .find_by_email (noteable .author_email ) ||
+ project .users .find_by_name (noteable .author_name )
+rescue
+ nil
+end
+
+
+
+
+
+
+
+
+
downvote? ()
+
+
Link
+
+
+
+
+
Returns true if this is a downvote note, otherwise false is returned
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def downvote?
+ note .start_with? ('-1' ) || note .start_with? (':-1:' )
+end
+
+
+
+
+
+
+
+
+
for_commit? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def for_commit?
+ noteable_type == "Commit"
+end
+
+
+
+
+
+
+
+
+
for_diff_line? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def for_diff_line?
+ line_code .present?
+end
+
+
+
+
+
+
+
+
+
noteable ()
+
+
Link
+
+
+
+
+
override to return commits, which are not active record
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def noteable
+ if for_commit?
+ project .commit (commit_id )
+ else
+ super
+ end
+
+
+rescue
+ nil
+end
+
+
+
+
+
+
+
+
+
noteable_type_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def noteable_type_name
+ if noteable_type .present?
+ noteable_type .downcase
+ else
+ "wall"
+ end
+end
+
+
+
+
+
+
+
+
+
notify_only_author? (user)
+
+
Link
+
+
+
+
+
Check if we can notify commit author with email about our comment
+
+
If commit author email exist in project and commit author is not passed
+user we can send email to him
+
+
params:
+
+
user - current user
+
+
return:
+
+
Boolean
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def notify_only_author? (user )
+ for_commit? && commit_author &&
+ commit_author .email != user .email
+end
+
+
+
+
+
+
+
+
+
+
+
Returns true if this is an upvote note, otherwise false is returned
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def upvote?
+ note .start_with? ('+1' ) || note .start_with? (':+1:' )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NoteEvent.html b/doc/code/classes/NoteEvent.html
new file mode 100644
index 00000000..0817d170
--- /dev/null
+++ b/doc/code/classes/NoteEvent.html
@@ -0,0 +1,380 @@
+
+
+
+
+ NoteEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ NoteEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ N
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
note_commit? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_commit?
+ target .noteable_type == "Commit"
+end
+
+
+
+
+
+
+
+
+
note_commit_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_commit_id
+ target .commit_id
+end
+
+
+
+
+
+
+
+
+
note_short_commit_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_short_commit_id
+ note_commit_id [0 .. 8 ]
+end
+
+
+
+
+
+
+
+
+
note_target ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_target
+ target .noteable
+end
+
+
+
+
+
+
+
+
+
note_target_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_target_id
+ if note_commit?
+ target .commit_id
+ else
+ target .noteable_id .to_s
+ end
+end
+
+
+
+
+
+
+
+
+
note_target_type ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_target_type
+ if target .noteable_type .present?
+ target .noteable_type .titleize
+ else
+ "Wall"
+ end .downcase
+end
+
+
+
+
+
+
+
+
+
wall_note? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def wall_note?
+ target .noteable_type .blank?
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NoteObserver.html b/doc/code/classes/NoteObserver.html
new file mode 100644
index 00000000..cc0e5156
--- /dev/null
+++ b/doc/code/classes/NoteObserver.html
@@ -0,0 +1,290 @@
+
+
+
+
+ NoteObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ NoteObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (note)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (note )
+ send_notify_mails (note )
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
notify_team (note)
+
+
Link
+
+
+
+
+
Notifies the whole team except the author of note
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def notify_team (note )
+
+ noteable_type = note .noteable_type .presence || "Wall"
+ notify_method = "note_#{noteable_type.underscore}_email" .to_sym
+
+ if Notify .respond_to? notify_method
+ team_without_note_author (note ).map do | u |
+ Notify .send (notify_method , u .id , note .id ).deliver
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
send_notify_mails (note)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def send_notify_mails (note )
+ if note .notify
+ notify_team (note )
+ elsif note .notify_author
+
+ Notify .note_commit_email (note .commit_author .id , note .id ).deliver
+ else
+
+ nil
+ end
+end
+
+
+
+
+
+
+
+
+
team_without_note_author (note)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_without_note_author (note )
+ note .project .users .reject { | u | u .id == note .author .id }
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Notes.html b/doc/code/classes/Notes.html
new file mode 100644
index 00000000..19b8dd38
--- /dev/null
+++ b/doc/code/classes/Notes.html
@@ -0,0 +1,88 @@
+
+
+
+
+ Notes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Notes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Notes/CreateContext.html b/doc/code/classes/Notes/CreateContext.html
new file mode 100644
index 00000000..adb3a46f
--- /dev/null
+++ b/doc/code/classes/Notes/CreateContext.html
@@ -0,0 +1,136 @@
+
+
+
+
+ Notes::CreateContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Notes::CreateContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ note = project .notes .new (params [:note ])
+ note .author = current_user
+ note .notify = true if params [:notify ] == '1'
+ note .notify_author = true if params [:notify_author ] == '1'
+ note .save
+ note
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Notes/LoadContext.html b/doc/code/classes/Notes/LoadContext.html
new file mode 100644
index 00000000..24731bc4
--- /dev/null
+++ b/doc/code/classes/Notes/LoadContext.html
@@ -0,0 +1,157 @@
+
+
+
+
+ Notes::LoadContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Notes::LoadContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ target_type = params [:target_type ]
+ target_id = params [:target_id ]
+ after_id = params [:after_id ]
+ before_id = params [:before_id ]
+
+
+ @notes = case target_type
+ when "commit"
+ project .commit_notes (project .commit (target_id )).fresh .limit (20 )
+ when "issue"
+ project .issues .find (target_id ).notes .inc_author .fresh .limit (20 )
+ when "merge_request"
+ project .merge_requests .find (target_id ).mr_and_commit_notes .inc_author .fresh .limit (20 )
+ when "snippet"
+ project .snippets .find (target_id ).notes .fresh
+ when "wall"
+
+ project .common_notes .order ("created_at DESC, id DESC" ).limit (50 )
+ end
+
+ @notes = if after_id
+ @notes .where ("id > ?" , after_id )
+ elsif before_id
+ @notes .where ("id < ?" , before_id )
+ else
+ @notes
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NotesController.html b/doc/code/classes/NotesController.html
new file mode 100644
index 00000000..12cc98fa
--- /dev/null
+++ b/doc/code/classes/NotesController.html
@@ -0,0 +1,338 @@
+
+
+
+
+ NotesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @note = Notes :: CreateContext .new (project , current_user , params ).execute
+
+ respond_to do | format |
+ format .html {redirect_to :back }
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @note = @project .notes .find (params [:id ])
+ return access_denied! unless can? (current_user , :admin_note , @note )
+ @note .destroy
+
+ respond_to do | format |
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ notes
+ if params [:target_type ] == "merge_request"
+ @mixed_targets = true
+ @main_target_type = params [:target_type ].camelize
+ end
+
+ respond_with (@notes )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def preview
+ render text : view_context .markdown (params [:note ])
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def notes
+ @notes = Notes :: LoadContext .new (project , current_user , params ).execute
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/NotesHelper.html b/doc/code/classes/NotesHelper.html
new file mode 100644
index 00000000..39ff6794
--- /dev/null
+++ b/doc/code/classes/NotesHelper.html
@@ -0,0 +1,258 @@
+
+
+
+
+ NotesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ NotesHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ L
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
link_to_commit_diff_line_note (note)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_to_commit_diff_line_note (note )
+ commit = note .noteable
+ diff_index , diff_old_line , diff_new_line = note .line_code .split ('_' )
+
+ link_file = commit .diffs [diff_index .to_i ].new_path
+ link_line = diff_new_line
+
+ link_to "#{link_file}:L#{link_line}" , project_commit_path (@project , commit , anchor : note .line_code )
+end
+
+
+
+
+
+
+
+
+
loading_more_notes? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def loading_more_notes?
+ params [:loading_more ].present?
+end
+
+
+
+
+
+
+
+
+
loading_new_notes? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def loading_new_notes?
+ params [:loading_new ].present?
+end
+
+
+
+
+
+
+
+
+
note_for_main_target? (note)
+
+
Link
+
+
+
+
+
Helps to distinguish e.g. commit notes in mr notes list
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_for_main_target? (note )
+ ! @mixed_targets || @main_target_type == note .noteable_type
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Notify.html b/doc/code/classes/Notify.html
new file mode 100644
index 00000000..ea740381
--- /dev/null
+++ b/doc/code/classes/Notify.html
@@ -0,0 +1,639 @@
+
+
+
+
+ Notify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Notify
+
+ <
+
+ ActionMailer::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ Resque::Mailer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
issue_status_changed_email (recipient_id, issue_id, status, updated_by_user_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issue_status_changed_email (recipient_id , issue_id , status , updated_by_user_id )
+ @issue = Issue .find issue_id
+ @issue_status = status
+ @project = @issue .project
+ @updated_by = User .find updated_by_user_id
+ mail (to : recipient (recipient_id ),
+ subject : subject ("changed issue ##{@issue.id}" , @issue .title ))
+end
+
+
+
+
+
+
+
+
+
new_issue_email (issue_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_issue_email (issue_id )
+ @issue = Issue .find (issue_id )
+ @project = @issue .project
+ mail (to : @issue .assignee_email , subject : subject ("new issue ##{@issue.id}" , @issue .title ))
+end
+
+
+
+
+
+
+
+
+
new_merge_request_email (merge_request_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_merge_request_email (merge_request_id )
+ @merge_request = MergeRequest .find (merge_request_id )
+ @project = @merge_request .project
+ mail (to : @merge_request .assignee_email , subject : subject ("new merge request !#{@merge_request.id}" , @merge_request .title ))
+end
+
+
+
+
+
+
+
+
+
new_user_email (user_id, password)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_user_email (user_id , password )
+ @user = User .find (user_id )
+ @password = password
+ mail (to : @user .email , subject : subject ("Account was created for you" ))
+end
+
+
+
+
+
+
+
+
+
note_commit_email (recipient_id, note_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_commit_email (recipient_id , note_id )
+ @note = Note .find (note_id )
+ @commit = @note .noteable
+ @commit = CommitDecorator .decorate (@commit )
+ @project = @note .project
+ mail (to : recipient (recipient_id ), subject : subject ("note for commit #{@commit.short_id}" , @commit .title ))
+end
+
+
+
+
+
+
+
+
+
note_issue_email (recipient_id, note_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_issue_email (recipient_id , note_id )
+ @note = Note .find (note_id )
+ @issue = @note .noteable
+ @project = @note .project
+ mail (to : recipient (recipient_id ), subject : subject ("note for issue ##{@issue.id}" ))
+end
+
+
+
+
+
+
+
+
+
note_merge_request_email (recipient_id, note_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_merge_request_email (recipient_id , note_id )
+ @note = Note .find (note_id )
+ @merge_request = @note .noteable
+ @project = @note .project
+ mail (to : recipient (recipient_id ), subject : subject ("note for merge request !#{@merge_request.id}" ))
+end
+
+
+
+
+
+
+
+
+
note_wall_email (recipient_id, note_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def note_wall_email (recipient_id , note_id )
+ @note = Note .find (note_id )
+ @project = @note .project
+ mail (to : recipient (recipient_id ), subject : subject )
+end
+
+
+
+
+
+
+
+
+
project_access_granted_email (user_project_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_access_granted_email (user_project_id )
+ @users_project = UsersProject .find user_project_id
+ @project = @users_project .project
+ mail (to : @users_project .user .email ,
+ subject : subject ("access to project was granted" ))
+end
+
+
+
+
+
+
+
+
+
project_was_moved_email (user_project_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_was_moved_email (user_project_id )
+ @users_project = UsersProject .find user_project_id
+ @project = @users_project .project
+ mail (to : @users_project .user .email ,
+ subject : subject ("project was moved" ))
+end
+
+
+
+
+
+
+
+
+
reassigned_issue_email (recipient_id, issue_id, previous_assignee_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reassigned_issue_email (recipient_id , issue_id , previous_assignee_id )
+ @issue = Issue .find (issue_id )
+ @previous_assignee ||= User .find (previous_assignee_id )
+ @project = @issue .project
+ mail (to : recipient (recipient_id ), subject : subject ("changed issue ##{@issue.id}" , @issue .title ))
+end
+
+
+
+
+
+
+
+
+
reassigned_merge_request_email (recipient_id, merge_request_id, previous_assignee_id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reassigned_merge_request_email (recipient_id , merge_request_id , previous_assignee_id )
+ @merge_request = MergeRequest .find (merge_request_id )
+ @previous_assignee ||= User .find (previous_assignee_id )
+ @project = @merge_request .project
+ mail (to : recipient (recipient_id ), subject : subject ("changed merge request !#{@merge_request.id}" , @merge_request .title ))
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Object.html b/doc/code/classes/Object.html
new file mode 100644
index 00000000..5ebc2dcd
--- /dev/null
+++ b/doc/code/classes/Object.html
@@ -0,0 +1,88 @@
+
+
+
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Object
+
+ <
+
+ BasicObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ Linguist::BlobHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/OmniauthCallbacksController.html b/doc/code/classes/OmniauthCallbacksController.html
new file mode 100644
index 00000000..5f54fc02
--- /dev/null
+++ b/doc/code/classes/OmniauthCallbacksController.html
@@ -0,0 +1,188 @@
+
+
+
+
+ OmniauthCallbacksController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ OmniauthCallbacksController
+
+ <
+
+ Devise::OmniauthCallbacksController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ F
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
failure_message ()
+
+
Link
+
+
+
+
+
Extend the standard message generation to accept our custom exception
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def failure_message
+ exception = env ["omniauth.error" ]
+ error = exception .error_reason if exception .respond_to? (:error_reason )
+ error ||= exception .error if exception .respond_to? (:error )
+ error ||= exception .message if exception .respond_to? (:message )
+ error ||= env ["omniauth.error.type" ].to_s
+ error .to_s .humanize if error
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ldap
+
+ @user = User .find_for_ldap_auth (request .env ["omniauth.auth" ], current_user )
+ if @user .persisted?
+ @user .remember_me = true
+ end
+ sign_in_and_redirect @user
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/PostReceive.html b/doc/code/classes/PostReceive.html
new file mode 100644
index 00000000..d078e65e
--- /dev/null
+++ b/doc/code/classes/PostReceive.html
@@ -0,0 +1,149 @@
+
+
+
+
+ PostReceive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ PostReceive
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProfileHelper.html b/doc/code/classes/ProfileHelper.html
new file mode 100644
index 00000000..edab6952
--- /dev/null
+++ b/doc/code/classes/ProfileHelper.html
@@ -0,0 +1,127 @@
+
+
+
+
+ ProfileHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ProfileHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ O
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
oauth_active_class (provider)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def oauth_active_class provider
+ if current_user .provider == provider .to_s
+ 'active'
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProfilesController.html b/doc/code/classes/ProfilesController.html
new file mode 100644
index 00000000..faf4874a
--- /dev/null
+++ b/doc/code/classes/ProfilesController.html
@@ -0,0 +1,513 @@
+
+
+
+
+ ProfilesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ D
+
+
+
+
+ H
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def history
+ @events = current_user .recent_events .page (params [:page ]).per (20 )
+end
+
+
+
+
+
+
+
+
+
reset_private_token ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def reset_private_token
+ if current_user .reset_authentication_token!
+ flash [:notice ] = "Token was successfully updated"
+ end
+
+ redirect_to account_profile_path
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ if @user .update_attributes (params [:user ])
+ flash [:notice ] = "Profile was successfully updated"
+ else
+ flash [:alert ] = "Failed to update profile"
+ end
+
+ respond_to do | format |
+ format .html { redirect_to :back }
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
update_password ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_password
+ params [:user ].reject! { | k , v | k != "password" && k != "password_confirmation" }
+
+ if @user .update_attributes (params [:user ])
+ flash [:notice ] = "Password was successfully updated. Please login with it"
+ redirect_to new_user_session_path
+ else
+ render 'account'
+ end
+end
+
+
+
+
+
+
+
+
+
update_username ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_username
+ @user .update_attributes (username : params [:user ][:username ])
+
+ respond_to do | format |
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Project.html b/doc/code/classes/Project.html
new file mode 100644
index 00000000..00428548
--- /dev/null
+++ b/doc/code/classes/Project.html
@@ -0,0 +1,1392 @@
+
+
+
+
+ Project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Project
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ G
+
+
+
+
+ I
+
+
+
+
+ L
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ error_code
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
access_options ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def access_options
+ UsersProject .access_roles
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def active
+ joins (:issues , :notes , :merge_requests ).order ("issues.created_at, notes.created_at, merge_requests.created_at DESC" )
+end
+
+
+
+
+
+
+
+
+
authorized_for (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorized_for user
+ projects = includes (:users_projects , :namespace )
+ projects = projects .where ("users_projects.user_id = :user_id or projects.owner_id = :user_id or namespaces.owner_id = :user_id" , user_id : user .id )
+end
+
+
+
+
+
+
+
+
+
create_by_user (params, user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create_by_user (params , user )
+ namespace_id = params .delete (:namespace_id )
+
+ project = Project .new params
+
+ Project .transaction do
+
+
+
+
+
+
+ project .path = project .name .dup .parameterize
+
+ project .owner = user
+
+
+
+ if namespace_id != Namespace .global_id
+ project .namespace_id = user .namespace_id
+
+ if namespace_id
+ group = Group .find_by_id (namespace_id )
+ if user .can? :manage_group , group
+ project .namespace_id = namespace_id
+ end
+ end
+ end
+
+ project .save!
+
+
+ project .users_projects .create! (project_access : UsersProject :: MASTER , user : user )
+
+
+
+ project .update_repository
+ end
+
+ project
+rescue Gitlab :: Gitolite :: AccessDenied => ex
+ project .error_code = :gitolite
+ project
+rescue => ex
+ project .error_code = :db
+ project .errors .add (:base , "Can't save project. Please try again later" )
+ project
+end
+
+
+
+
+
+
+
+
+
find_with_namespace (id)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_with_namespace (id )
+ if id .include? ("/" )
+ id = id .split ("/" )
+ namespace_id = Namespace .find_by_path (id .first ).id
+ where (namespace_id : namespace_id ).find_by_path (id .second )
+ else
+ where (path : id , namespace_id : nil ).last
+ end
+end
+
+
+
+
+
+
+
+
+
search (query)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search query
+ where ("projects.name LIKE :query OR projects.path LIKE :query" , query : "%#{query}%" )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
build_commit_note (commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def build_commit_note (commit )
+ notes .new (commit_id : commit .id , noteable_type : "Commit" )
+end
+
+
+
+
+
+
+
+
+
check_limit ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def check_limit
+ unless owner .can_create_project?
+ errors [:base ] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it" )
+ end
+rescue
+ errors [:base ] << ("Can't check your ability to create project" )
+end
+
+
+
+
+
+
+
+
+
+
+
For compatibility with old code
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def code
+ path
+end
+
+
+
+
+
+
+
+
+
commit_line_notes (commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_line_notes (commit )
+ notes .where (commit_id : commit .id , noteable_type : "Commit" ).where ("line_code IS NOT NULL" )
+end
+
+
+
+
+
+
+
+
+
commit_notes (commit)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_notes (commit )
+ notes .where (commit_id : commit .id , noteable_type : "Commit" , line_code : nil )
+end
+
+
+
+
+
+
+
+
+
common_notes ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def common_notes
+ notes .where (noteable_type : ["" , nil ]).inc_author_project
+end
+
+
+
+
+
+
+
+
+
git_error? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def git_error?
+ error_code == :gitolite
+end
+
+
+
+
+
+
+
+
+
gitlab_ci? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gitlab_ci?
+ gitlab_ci_service && gitlab_ci_service .active
+end
+
+
+
+
+
+
+
+
+
issues_labels ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def issues_labels
+ issues .tag_counts_on (:labels )
+end
+
+
+
+
+
+
+
+
+
items_for (entity)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def items_for entity
+ case entity
+ when 'issue' then
+ issues
+ when 'merge_request' then
+ merge_requests
+ end
+end
+
+
+
+
+
+
+
+
+
last_activity ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_activity
+ last_event
+end
+
+
+
+
+
+
+
+
+
last_activity_date ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_activity_date
+ last_event .try (:created_at ) || updated_at
+end
+
+
+
+
+
+
+
+
+
private? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def private?
+ private_flag
+end
+
+
+
+
+
+
+
+
+
project_id ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_id
+ self .id
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def public?
+ ! private_flag
+end
+
+
+
+
+
+
+
+
+
repo_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repo_name
+ denied_paths = %w(gitolite-admin admin dashboard groups help profile projects search)
+
+ if denied_paths .include? (path )
+ errors .add (:path , "like #{path} is not allowed" )
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def saved?
+ id && valid?
+end
+
+
+
+
+
+
+
+
+
send_move_instructions ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def send_move_instructions
+ self .users_projects .each do | member |
+ Notify .project_was_moved_email (member .id ).deliver
+ end
+end
+
+
+
+
+
+
+
+
+
services ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def services
+ [gitlab_ci_service ].compact
+end
+
+
+
+
+
+
+
+
+
to_param ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_param
+ if namespace
+ namespace .path + "/" + path
+ else
+ path
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def web_url
+ [Gitlab .config .gitlab .url , path_with_namespace ].join ("/" )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Project/TransferError.html b/doc/code/classes/Project/TransferError.html
new file mode 100644
index 00000000..2d0be3a4
--- /dev/null
+++ b/doc/code/classes/Project/TransferError.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Project::TransferError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Project::TransferError
+
+ <
+
+ StandardError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectHook.html b/doc/code/classes/ProjectHook.html
new file mode 100644
index 00000000..3fa9c759
--- /dev/null
+++ b/doc/code/classes/ProjectHook.html
@@ -0,0 +1,92 @@
+
+
+
+
+ ProjectHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ProjectHook
+
+ <
+
+ WebHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectObserver.html b/doc/code/classes/ProjectObserver.html
new file mode 100644
index 00000000..bf2292a5
--- /dev/null
+++ b/doc/code/classes/ProjectObserver.html
@@ -0,0 +1,262 @@
+
+
+
+
+ ProjectObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ProjectObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (project )
+ project .update_repository
+end
+
+
+
+
+
+
+
+
+
after_destroy (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_destroy (project )
+ log_info ("Project \"#{project.name}\" was removed" )
+
+ project .destroy_repository
+end
+
+
+
+
+
+
+
+
+
after_update (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_update (project )
+ project .send_move_instructions if project .namespace_id_changed?
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
log_info (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log_info message
+ Gitlab :: AppLogger .info message
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectResourceController.html b/doc/code/classes/ProjectResourceController.html
new file mode 100644
index 00000000..757055ab
--- /dev/null
+++ b/doc/code/classes/ProjectResourceController.html
@@ -0,0 +1,76 @@
+
+
+
+
+ ProjectResourceController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectUpdateContext.html b/doc/code/classes/ProjectUpdateContext.html
new file mode 100644
index 00000000..3fe3f4d6
--- /dev/null
+++ b/doc/code/classes/ProjectUpdateContext.html
@@ -0,0 +1,148 @@
+
+
+
+
+ ProjectUpdateContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ProjectUpdateContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
execute (role = :default)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute (role = :default )
+ namespace_id = params [:project ].delete (:namespace_id )
+
+ allowed_transfer = can? (current_user , :change_namespace , project ) || role == :admin
+
+ if allowed_transfer && namespace_id .present?
+ if namespace_id == Namespace .global_id
+ if project .namespace .present?
+
+ project .transfer (nil )
+ end
+ elsif namespace_id .to_i != project .namespace_id
+
+ namespace = Namespace .find (namespace_id )
+ project .transfer (namespace )
+ end
+ end
+
+ project .update_attributes (params [:project ], as : role )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectsController.html b/doc/code/classes/ProjectsController.html
new file mode 100644
index 00000000..3cc6dd07
--- /dev/null
+++ b/doc/code/classes/ProjectsController.html
@@ -0,0 +1,566 @@
+
+
+
+
+ ProjectsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ F
+
+
+
+
+ G
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @project = Project .create_by_user (params [:project ], current_user )
+
+ respond_to do | format |
+ flash [:notice ] = 'Project was successfully created.' if @project .saved?
+ format .html do
+ if @project .saved?
+ redirect_to @project
+ else
+ render action : "new"
+ end
+ end
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ return access_denied! unless can? (current_user , :remove_project , project )
+
+
+ project .truncate_team
+
+ project .destroy
+
+ respond_to do | format |
+ format .html { redirect_to root_path }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def files
+ @notes = @project .notes .where ("attachment != 'NULL'" ).order ("created_at DESC" ).limit (100 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def graph
+ respond_to do | format |
+ format .html
+ format .json do
+ graph = Gitlab :: Graph :: JsonBuilder .new (project )
+ render :json => graph .to_json
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @project = Project .new
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ limit = (params [:limit ] || 20 ).to_i
+ @events = @project .events .recent .limit (limit ).offset (params [:offset ] || 0 )
+
+ respond_to do | format |
+ format .html do
+ unless @project .empty_repo?
+ @last_push = current_user .recent_push (@project .id )
+ render :show
+ else
+ render "projects/empty"
+ end
+ end
+ format .js
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ status = ProjectUpdateContext .new (project , current_user , params ).execute
+
+ respond_to do | format |
+ if status
+ flash [:notice ] = 'Project was successfully updated.'
+ format .html { redirect_to edit_project_path (project ), notice : 'Project was successfully updated.' }
+ format .js
+ else
+ format .html { render action : "edit" }
+ format .js
+ end
+ end
+
+rescue Project :: TransferError => ex
+ @error = ex
+ render :update_failed
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def wall
+ return render_404 unless @project .wall_enabled
+ @note = Note .new
+
+ respond_to do | format |
+ format .html
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProjectsHelper.html b/doc/code/classes/ProjectsHelper.html
new file mode 100644
index 00000000..a2084279
--- /dev/null
+++ b/doc/code/classes/ProjectsHelper.html
@@ -0,0 +1,384 @@
+
+
+
+
+ ProjectsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ ProjectsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ G
+
+
+
+
+ L
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
grouper_project_members (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def grouper_project_members (project )
+ @project .users_projects .sort_by (&:project_access ).reverse .group_by (&:project_access )
+end
+
+
+
+
+
+
+
+
+
link_to_member (project, author)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_to_member (project , author )
+ return "(deleted)" unless author
+
+
+ avatar = image_tag (gravatar_icon (author .try (:email )), width : 16 , class : "lil_av" )
+
+
+ name = content_tag :strong , author .name , class : 'author'
+
+ author_html = avatar + name
+
+ tm = project .team_member_by_id (author )
+
+ content_tag :span , class : 'member-link' do
+ if tm
+ link_to author_html , project_team_member_path (project , tm ), class : "author_link"
+ else
+ author_html
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
link_to_project (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def link_to_project project
+ link_to project do
+ title = content_tag (:strong , project .name )
+
+ if project .namespace
+ namespace = content_tag (:span , "#{project.namespace.human_name} / " , class : 'tiny' )
+ title = namespace + title
+ end
+
+ title
+ end
+end
+
+
+
+
+
+
+
+
+
project_title (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_title project
+ if project .group
+ project .name_with_namespace
+ else
+ project .name
+ end
+end
+
+
+
+
+
+
+
+
+
remove_from_team_message (project, member)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def remove_from_team_message (project , member )
+ "You are going to remove #{member.user_name} from #{project.name}. Are you sure?"
+end
+
+
+
+
+
+
+
+
+
tm_path (team_member)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tm_path team_member
+ project_team_member_path (@project , team_member )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProtectedBranch.html b/doc/code/classes/ProtectedBranch.html
new file mode 100644
index 00000000..c5399ed4
--- /dev/null
+++ b/doc/code/classes/ProtectedBranch.html
@@ -0,0 +1,206 @@
+
+
+
+
+ ProtectedBranch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ProtectedBranch
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: protected_branches
+
+
id :integer not null, primary key
+project_id :integer not null
+name :string(255) not null
+created_at :datetime not null
+updated_at :datetime not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit
+ project .commit (self .name )
+end
+
+
+
+
+
+
+
+
+
update_repository ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_repository
+ git_host .update_repository (project )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ProtectedBranchesController.html b/doc/code/classes/ProtectedBranchesController.html
new file mode 100644
index 00000000..f1175852
--- /dev/null
+++ b/doc/code/classes/ProtectedBranchesController.html
@@ -0,0 +1,232 @@
+
+
+
+
+ ProtectedBranchesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @project .protected_branches .create (params [:protected_branch ])
+ redirect_to project_protected_branches_path (@project )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @project .protected_branches .find (params [:id ]).destroy
+
+ respond_to do | format |
+ format .html { redirect_to project_protected_branches_path }
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @branches = @project .protected_branches .all
+ @protected_branch = @project .protected_branches .new
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/PushEvent.html b/doc/code/classes/PushEvent.html
new file mode 100644
index 00000000..8b74ebee
--- /dev/null
+++ b/doc/code/classes/PushEvent.html
@@ -0,0 +1,959 @@
+
+
+
+
+ PushEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ PushEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ L
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ T
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branch?
+ data [:ref ]["refs/heads" ]
+end
+
+
+
+
+
+
+
+
+
branch_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branch_name
+ @branch_name ||= data [:ref ].gsub ("refs/heads/" , "" )
+end
+
+
+
+
+
+
+
+
+
commit_from ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_from
+ data [:before ]
+end
+
+
+
+
+
+
+
+
+
commit_to ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit_to
+ data [:after ]
+end
+
+
+
+
+
+
+
+
+
+
+
Max 20 commits from push DESC
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits
+ @commits ||= data [:commits ].map { | commit | project .commit (commit [:id ]) }.reverse
+end
+
+
+
+
+
+
+
+
+
commits_count ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_count
+ data [:total_commits_count ] || commits .count || 0
+end
+
+
+
+
+
+
+
+
+
last_commit ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_commit
+ project .commit (commit_to )
+rescue => ex
+ nil
+end
+
+
+
+
+
+
+
+
+
last_push_to_non_root? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_push_to_non_root?
+ branch? && project .default_branch != branch_name
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def md_ref?
+ ! (rm_ref? || new_ref? )
+end
+
+
+
+
+
+
+
+
+
new_branch? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_branch?
+ commit_from =~ %r^00000/
+end
+
+
+
+
+
+
+
+
+
new_ref? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_ref?
+ commit_from =~ %r^00000/
+end
+
+
+
+
+
+
+
+
+
parent_commit ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def parent_commit
+ project .commit (commit_from )
+rescue => ex
+ nil
+end
+
+
+
+
+
+
+
+
+
push_action_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def push_action_name
+ if new_ref?
+ "pushed new"
+ elsif rm_ref?
+ "deleted"
+ else
+ "pushed to"
+ end
+end
+
+
+
+
+
+
+
+
+
push_with_commits? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def push_with_commits?
+ md_ref? && commits .any? && parent_commit && last_commit
+rescue Grit :: NoSuchPathError
+ false
+end
+
+
+
+
+
+
+
+
+
ref_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ref_name
+ if tag?
+ tag_name
+ else
+ branch_name
+ end
+end
+
+
+
+
+
+
+
+
+
ref_type ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ref_type
+ tag? ? "tag" : "branch"
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def rm_ref?
+ commit_to =~ %r^00000/
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tag?
+ data [:ref ]["refs/tags" ]
+end
+
+
+
+
+
+
+
+
+
tag_name ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tag_name
+ @tag_name ||= data [:ref ].gsub ("refs/tags/" , "" )
+end
+
+
+
+
+
+
+
+
+
valid_push? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid_push?
+ data [:ref ]
+rescue => ex
+ false
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/PushObserver.html b/doc/code/classes/PushObserver.html
new file mode 100644
index 00000000..f747fb4a
--- /dev/null
+++ b/doc/code/classes/PushObserver.html
@@ -0,0 +1,512 @@
+
+
+
+
+ PushObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ PushObserver
+
+
+
+
+
+
+
+
+
+
Includes methods for handling Git Push events
+
+
Triggered by PostReceive job
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ O
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
execute_hooks (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute_hooks (data )
+ hooks .each { | hook | hook .execute (data ) }
+end
+
+
+
+
+
+
+
+
+
execute_services (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute_services (data )
+ services .each do | service |
+
+
+ service .execute (data ) if service .active
+ end
+end
+
+
+
+
+
+
+
+
+
observe_push (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def observe_push (data )
+ Event .create (
+ project : self ,
+ action : Event :: Pushed ,
+ data : data ,
+ author_id : data [:user_id ]
+ )
+end
+
+
+
+
+
+
+
+
+
post_receive_data (oldrev, newrev, ref, user)
+
+
Link
+
+
+
+
+
Produce a hash of post-receive data
+
+
data = {
+
+
before: String,
+after: String,
+ref: String,
+user_id: String,
+user_name: String,
+repository: {
+ name: String,
+ url: String,
+ description: String,
+ homepage: String,
+},
+commits: Array,
+total_commits_count: Fixnum
+
+
}
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def post_receive_data (oldrev , newrev , ref , user )
+
+ push_commits = commits_between (oldrev , newrev )
+
+
+ push_commits_count = push_commits .size
+
+
+ push_commits_limited = push_commits .last (20 )
+
+
+ data = {
+ before : oldrev ,
+ after : newrev ,
+ ref : ref ,
+ user_id : user .id ,
+ user_name : user .name ,
+ repository : {
+ name : name ,
+ url : url_to_repo ,
+ description : description ,
+ homepage : web_url ,
+ },
+ commits : [],
+ total_commits_count : push_commits_count
+ }
+
+
+
+
+ push_commits_limited .each do | commit |
+ data [:commits ] << {
+ id : commit .id ,
+ message : commit .safe_message ,
+ timestamp : commit .date .xmlschema ,
+ url : "#{Gitlab.config.gitlab.url}/#{path_with_namespace}/commit/#{commit.id}" ,
+ author : {
+ name : commit .author_name ,
+ email : commit .author_email
+ }
+ }
+ end
+
+ data
+end
+
+
+
+
+
+
+
+
+
push_to_branch? (ref, oldrev)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def push_to_branch? ref , oldrev
+ ref_parts = ref .split ('/' )
+
+
+ ! (ref_parts [1 ] !~ %rheads/ || oldrev == "00000000000000000000000000000000" )
+end
+
+
+
+
+
+
+
+
+
trigger_post_receive (oldrev, newrev, ref, user)
+
+
Link
+
+
+
+
+
This method will be called after each post receive and only if the provided
+user is present in GitLab.
+
+
All callbacks for post receive should be placed here.
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def trigger_post_receive (oldrev , newrev , ref , user )
+ data = post_receive_data (oldrev , newrev , ref , user )
+
+
+ self .observe_push (data )
+
+ if push_to_branch? ref , oldrev
+
+ self .update_merge_requests (oldrev , newrev , ref , user )
+
+
+ self .execute_hooks (data .dup )
+
+
+ self .execute_services (data .dup )
+ end
+
+
+ self .satellite .create unless self .satellite .exists?
+
+
+
+ if default_branch .nil?
+ update_attributes (default_branch : discover_default_branch )
+ end
+end
+
+
+
+
+
+
+
+
+
update_merge_requests (oldrev, newrev, ref, user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_merge_requests (oldrev , newrev , ref , user )
+ return true unless ref =~ %rheads/
+ branch_name = ref .gsub ("refs/heads/" , "" )
+ c_ids = self .commits_between (oldrev , newrev ).map (&:id )
+
+
+ mrs = self .merge_requests .opened .find_all_by_branch (branch_name ).all
+ mrs .each { | merge_request | merge_request .reload_code ; merge_request .mark_as_unchecked }
+
+
+ mrs = self .merge_requests .opened .where (target_branch : branch_name ).all
+ mrs = mrs .select (&:last_commit ).select { | mr | c_ids .include? (mr .last_commit .id ) }
+ mrs .each { | merge_request | merge_request .merge! (user .id ) }
+
+ true
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Redcarpet.html b/doc/code/classes/Redcarpet.html
new file mode 100644
index 00000000..e1b53d96
--- /dev/null
+++ b/doc/code/classes/Redcarpet.html
@@ -0,0 +1,79 @@
+
+
+
+
+ Redcarpet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Redcarpet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Redcarpet/Render.html b/doc/code/classes/Redcarpet/Render.html
new file mode 100644
index 00000000..29a76394
--- /dev/null
+++ b/doc/code/classes/Redcarpet/Render.html
@@ -0,0 +1,79 @@
+
+
+
+
+ Redcarpet::Render
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Redcarpet::Render
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Redcarpet/Render/GitlabHTML.html b/doc/code/classes/Redcarpet/Render/GitlabHTML.html
new file mode 100644
index 00000000..664207dd
--- /dev/null
+++ b/doc/code/classes/Redcarpet/Render/GitlabHTML.html
@@ -0,0 +1,264 @@
+
+
+
+
+ Redcarpet::Render::GitlabHTML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Redcarpet::Render::GitlabHTML
+
+ <
+
+ Redcarpet::Render::HTML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [R]
+
+ h
+
+
+
+
+
+ [R]
+
+ template
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (template, options = {})
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (template , options = {})
+ @template = template
+ @project = @template .instance_variable_get ("@project" )
+ super options
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
block_code (code, language)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+ def block_code (code , language )
+ options = { options : {encoding : 'utf-8' } }
+ options .merge! (lexer : language .downcase ) if Pygments :: Lexer .find (language )
+
+
+
+
+
+
+
+
+ "
+ <div class="#{h.user_color_scheme_class}">#{Pygments.highlight(code, options)}</div>
+
+"
+ end
+
+
+
+
+
+
+
+
+
postprocess (full_document)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def postprocess (full_document )
+ h .gfm (full_document )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/RefsController.html b/doc/code/classes/RefsController.html
new file mode 100644
index 00000000..971b8fcb
--- /dev/null
+++ b/doc/code/classes/RefsController.html
@@ -0,0 +1,313 @@
+
+
+
+
+ RefsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ L
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
logs_tree ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def logs_tree
+ contents = @tree .contents
+ @logs = contents .map do | content |
+ file = params [:path ] ? File .join (params [:path ], content .name ) : content .name
+ last_commit = @project .commits (@commit .id , file , 1 ).last
+ last_commit = CommitDecorator .decorate (last_commit )
+ {
+ file_name : content .name ,
+ commit : last_commit
+ }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def switch
+ respond_to do | format |
+ format .html do
+ new_path = if params [:destination ] == "tree"
+ project_tree_path (@project , @ref )
+ else
+ project_commits_path (@project , @ref )
+ end
+
+ redirect_to new_path
+ end
+ format .js do
+ @ref = params [:ref ]
+ define_tree_vars
+ render "tree"
+ end
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
define_tree_vars ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def define_tree_vars
+ params [:path ] = nil if params [:path ].blank?
+
+ @repo = project .repo
+ @commit = project .commit (@ref )
+ @commit = CommitDecorator .decorate (@commit )
+ @tree = Tree .new (@commit .tree , project , @ref , params [:path ])
+ @tree = TreeDecorator .new (@tree )
+ @hex_path = Digest :: SHA1 .hexdigest (params [:path ] || "" )
+
+ if params [:path ]
+ @logs_path = logs_file_project_ref_path (@project , @ref , params [:path ])
+ else
+ @logs_path = logs_tree_project_ref_path (@project , @ref )
+ end
+rescue
+ return render_404
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ref
+ @ref = params [:id ] || params [:ref ]
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/RepositoriesController.html b/doc/code/classes/RepositoriesController.html
new file mode 100644
index 00000000..cd661646
--- /dev/null
+++ b/doc/code/classes/RepositoriesController.html
@@ -0,0 +1,325 @@
+
+
+
+
+ RepositoriesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def archive
+ unless can? (current_user , :download_code , @project )
+ render_404 and return
+ end
+
+
+ file_path = @project .archive_repo (params [:ref ])
+
+ if file_path
+
+ send_file file_path
+ else
+ render_404
+ end
+end
+
+
+
+
+
+
+
+
+
branches ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branches
+ @branches = @project .branches
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @activities = @project .commits_with_refs (20 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def stats
+ @stats = Gitlab :: GitStats .new (@project .repo , @project .root_ref )
+ @graph = @stats .graph
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Repository.html b/doc/code/classes/Repository.html
new file mode 100644
index 00000000..a6266790
--- /dev/null
+++ b/doc/code/classes/Repository.html
@@ -0,0 +1,1737 @@
+
+
+
+
+ Repository
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Repository
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ F
+
+
+
+
+ H
+
+
+
+
+ L
+
+
+
+
+ N
+
+
+
+
+ O
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
archive_repo (ref)
+
+
Link
+
+
+
+
+
Archive Project to .tar.gz
+
+
Already packed repo archives stored at
+app_root/tmp/repositories/project_name/project_name-commit-id.tag.gz
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def archive_repo (ref )
+ ref = ref || self .root_ref
+ commit = self .commit (ref )
+ return nil unless commit
+
+
+ file_name = self .path + "-" + commit .id .to_s + ".tar.gz"
+ storage_path = Rails .root .join ("tmp" , "repositories" , self .path_with_namespace )
+ file_path = File .join (storage_path , file_name )
+
+
+ prefix = self .path + "/"
+
+
+ unless File .exists? (file_path )
+ FileUtils .mkdir_p storage_path
+ file = self .repo .archive_to_file (ref , prefix , file_path )
+ end
+
+ file_path
+end
+
+
+
+
+
+
+
+
+
branch_names ()
+
+
Link
+
+
+
+
+
Returns an Array of branch names
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branch_names
+ repo .branches .collect (&:name ).sort
+end
+
+
+
+
+
+
+
+
+
branches ()
+
+
Link
+
+
+
+
+
Returns an Array of Branches
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branches
+ repo .branches .sort_by (&:name )
+end
+
+
+
+
+
+
+
+
+
commit (commit_id = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commit (commit_id = nil )
+ Commit .find_or_first (repo , commit_id , root_ref )
+end
+
+
+
+
+
+
+
+
+
commits (ref, path = nil, limit = nil, offset = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits (ref , path = nil , limit = nil , offset = nil )
+ Commit .commits (repo , ref , path , limit , offset )
+end
+
+
+
+
+
+
+
+
+
commits_between (from, to)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_between (from , to )
+ Commit .commits_between (repo , from , to )
+end
+
+
+
+
+
+
+
+
+
commits_since (date)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_since (date )
+ Commit .commits_since (repo , date )
+end
+
+
+
+
+
+
+
+
+
commits_with_refs (n = 20)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def commits_with_refs (n = 20 )
+ Commit .commits_with_refs (repo , n )
+end
+
+
+
+
+
+
+
+
+
destroy_repository ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy_repository
+ git_host .remove_repository (self )
+end
+
+
+
+
+
+
+
+
+
discover_default_branch ()
+
+
Link
+
+
+
+
+
Discovers the default branch based on the repository’s available branches
+
+If no branches are present, returns nil
+
+If one branch is present, returns its name
+
+If two or more branches are present, returns the one that has a name
+matching #root_ref
+(default_branch or ‘master’ if default_branch is nil)
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def discover_default_branch
+ if branch_names .length == 0
+ nil
+ elsif branch_names .length == 1
+ branch_names .first
+ else
+ branch_names .select { | v | v == root_ref }.first
+ end
+end
+
+
+
+
+
+
+
+
+
empty_repo? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def empty_repo?
+ ! repo_exists? || ! has_commits?
+end
+
+
+
+
+
+
+
+
+
fresh_commits (n = 10)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def fresh_commits (n = 10 )
+ Commit .fresh_commits (repo , n )
+end
+
+
+
+
+
+
+
+
+
has_commits? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def has_commits?
+ ! ! commit
+rescue Grit :: NoSuchPathError
+ false
+end
+
+
+
+
+
+
+
+
+
has_post_receive_file? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def has_post_receive_file?
+ ! ! hook_file
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def heads
+ @heads ||= repo .heads
+end
+
+
+
+
+
+
+
+
+
hook_file ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def hook_file
+ @hook_file ||= begin
+ hook_path = File .join (path_to_repo , 'hooks' , 'post-receive' )
+ File .read (hook_path ) if File .exists? (hook_path )
+ end
+end
+
+
+
+
+
+
+
+
+
http_url_to_repo ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def http_url_to_repo
+ http_url = [Gitlab .config .gitlab .url , "/" , path_with_namespace , ".git" ].join ('' )
+end
+
+
+
+
+
+
+
+
+
last_commit_for (ref, path = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def last_commit_for (ref , path = nil )
+ commits (ref , path , 1 ).first
+end
+
+
+
+
+
+
+
+
+
namespace_dir ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def namespace_dir
+ namespace .try (:path ) || ''
+end
+
+
+
+
+
+
+
+
+
open_branches ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def open_branches
+ if protected_branches .empty?
+ self .repo .heads
+ else
+ pnames = protected_branches .map (&:name )
+ self .repo .heads .reject { | h | pnames .include? (h .name ) }
+ end .sort_by (&:name )
+end
+
+
+
+
+
+
+
+
+
path_to_repo ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def path_to_repo
+ File .join (Gitlab .config .gitolite .repos_path , "#{path_with_namespace}.git" )
+end
+
+
+
+
+
+
+
+
+
protected_branch? (branch_name)
+
+
Link
+
+
+
+
+
Check if current branch name is marked as protected in the system
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def protected_branch? branch_name
+ protected_branches .map (&:name ).include? (branch_name )
+end
+
+
+
+
+
+
+
+
+
ref_names ()
+
+
Link
+
+
+
+
+
Returns an Array of branch and tag names
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ref_names
+ [branch_names + tag_names ].flatten
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repo
+ @repo ||= Grit :: Repo .new (path_to_repo )
+end
+
+
+
+
+
+
+
+
+
repo_exists? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repo_exists?
+ @repo_exists ||= (repo && ! repo .branches .empty? )
+rescue
+ @repo_exists = false
+end
+
+
+
+
+
+
+
+
+
root_ref ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def root_ref
+ default_branch || "master"
+end
+
+
+
+
+
+
+
+
+
root_ref? (branch)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def root_ref? (branch )
+ root_ref == branch
+end
+
+
+
+
+
+
+
+
+
satellite ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def satellite
+ @satellite ||= Gitlab :: Satellite :: Satellite .new (self )
+end
+
+
+
+
+
+
+
+
+
ssh_url_to_repo ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def ssh_url_to_repo
+ url_to_repo
+end
+
+
+
+
+
+
+
+
+
tag_names ()
+
+
Link
+
+
+
+
+
Returns an Array of tag names
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tag_names
+ repo .tags .collect (&:name ).sort .reverse
+end
+
+
+
+
+
+
+
+
+
+
+
Returns an Array of Tags
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
tree (fcommit, path = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tree (fcommit , path = nil )
+ fcommit = commit if fcommit == :head
+ tree = fcommit .tree
+ path ? (tree / path ) : tree
+end
+
+
+
+
+
+
+
+
+
update_repository ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_repository
+ git_host .update_repository (self )
+end
+
+
+
+
+
+
+
+
+
url_to_repo ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def url_to_repo
+ git_host .url_to_repo (path_with_namespace )
+end
+
+
+
+
+
+
+
+
+
valid_hook_file ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid_hook_file
+ @valid_hook_file ||= File .read (Rails .root .join ('lib' , 'hooks' , 'post-receive' ))
+end
+
+
+
+
+
+
+
+
+
valid_post_receive_file? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid_post_receive_file?
+ valid_hook_file == hook_file
+end
+
+
+
+
+
+
+
+
+
valid_repo? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def valid_repo?
+ repo
+rescue
+ errors .add (:path , "Invalid repository path" )
+ false
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ResqueAuthentication.html b/doc/code/classes/ResqueAuthentication.html
new file mode 100644
index 00000000..ec3fc9e4
--- /dev/null
+++ b/doc/code/classes/ResqueAuthentication.html
@@ -0,0 +1,182 @@
+
+
+
+
+ ResqueAuthentication
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ResqueAuthentication
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (app )
+ @app = app
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def call (env )
+ account = env ['warden' ].authenticate! (:database_authenticatable , :rememberable , scope : :user )
+ raise "Access denied" if ! account .admin?
+ @app .call (env )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SearchContext.html b/doc/code/classes/SearchContext.html
new file mode 100644
index 00000000..b8ecb2e7
--- /dev/null
+++ b/doc/code/classes/SearchContext.html
@@ -0,0 +1,262 @@
+
+
+
+
+ SearchContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ SearchContext
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ N
+
+
+
+
+ R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ params
+
+
+
+
+
+ [RW]
+
+ project_ids
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (project_ids, params)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (project_ids , params )
+ @project_ids , @params = project_ids , params .dup
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ query = params [:search ]
+
+ return result unless query .present?
+
+ result [:projects ] = Project .where (id : project_ids ).search (query ).limit (10 )
+ result [:merge_requests ] = MergeRequest .where (project_id : project_ids ).search (query ).limit (10 )
+ result [:issues ] = Issue .where (project_id : project_ids ).search (query ).limit (10 )
+ result [:wiki_pages ] = Wiki .where (project_id : project_ids ).search (query ).limit (10 )
+ result
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def result
+ @result ||= {
+ projects : [],
+ merge_requests : [],
+ issues : [],
+ wiki_pages : []
+ }
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SearchController.html b/doc/code/classes/SearchController.html
new file mode 100644
index 00000000..5f26c934
--- /dev/null
+++ b/doc/code/classes/SearchController.html
@@ -0,0 +1,136 @@
+
+
+
+
+ SearchController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ result = SearchContext .new (current_user .project_ids , params ).execute
+
+ @projects = result [:projects ]
+ @merge_requests = result [:merge_requests ]
+ @issues = result [:issues ]
+ @wiki_pages = result [:wiki_pages ]
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Service.html b/doc/code/classes/Service.html
new file mode 100644
index 00000000..f4973cb3
--- /dev/null
+++ b/doc/code/classes/Service.html
@@ -0,0 +1,94 @@
+
+
+
+
+ Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Service
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: services
+
+
id :integer not null, primary key
+type :string(255)
+title :string(255)
+token :string(255)
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+active :boolean default(FALSE), not null
+project_url :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ServiceHook.html b/doc/code/classes/ServiceHook.html
new file mode 100644
index 00000000..faff9256
--- /dev/null
+++ b/doc/code/classes/ServiceHook.html
@@ -0,0 +1,92 @@
+
+
+
+
+ ServiceHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ ServiceHook
+
+ <
+
+ WebHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/ServicesController.html b/doc/code/classes/ServicesController.html
new file mode 100644
index 00000000..c0165b09
--- /dev/null
+++ b/doc/code/classes/ServicesController.html
@@ -0,0 +1,287 @@
+
+
+
+
+ ServicesController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ @service = @project .gitlab_ci_service
+
+
+ @service = @project .create_gitlab_ci_service unless @service
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @gitlab_ci_service = @project .gitlab_ci_service
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def test
+ commits = project .commits (project .default_branch , nil , 3 )
+ data = project .post_receive_data (commits .last .id , commits .first .id , "refs/heads/#{project.default_branch}" , current_user )
+
+ @service = project .gitlab_ci_service
+ @service .execute (data )
+
+ redirect_to :back
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @service = @project .gitlab_ci_service
+
+ if @service .update_attributes (params [:service ])
+ redirect_to edit_project_service_path (@project , :gitlab_ci )
+ else
+ render 'edit'
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Settings.html b/doc/code/classes/Settings.html
new file mode 100644
index 00000000..05219228
--- /dev/null
+++ b/doc/code/classes/Settings.html
@@ -0,0 +1,131 @@
+
+
+
+
+ Settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Settings
+
+ <
+
+ Settingslogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
gitlab_on_non_standard_port? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gitlab_on_non_standard_port?
+ ! [443 , 80 ].include? (gitlab .port .to_i )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Snippet.html b/doc/code/classes/Snippet.html
new file mode 100644
index 00000000..a71f1316
--- /dev/null
+++ b/doc/code/classes/Snippet.html
@@ -0,0 +1,402 @@
+
+
+
+
+ Snippet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Snippet
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: snippets
+
+
id :integer not null, primary key
+title :string(255)
+content :text
+author_id :integer not null
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+file_name :string(255)
+expires_at :datetime
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ M
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ Linguist::BlobHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
content_types ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .content_types
+ [
+ ".rb" , ".py" , ".pl" , ".scala" , ".c" , ".cpp" , ".java" ,
+ ".haml" , ".html" , ".sass" , ".scss" , ".xml" , ".php" , ".erb" ,
+ ".js" , ".sh" , ".coffee" , ".yml" , ".md"
+ ]
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def data
+ content
+end
+
+
+
+
+
+
+
+
+
expired? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def expired?
+ expires_at && expires_at < Time .current
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def name
+ file_name
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SnippetsController.html b/doc/code/classes/SnippetsController.html
new file mode 100644
index 00000000..fd7e0fe6
--- /dev/null
+++ b/doc/code/classes/SnippetsController.html
@@ -0,0 +1,611 @@
+
+
+
+
+ SnippetsController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @snippet = @project .snippets .new (params [:snippet ])
+ @snippet .author = current_user
+ @snippet .save
+
+ if @snippet .valid?
+ redirect_to [@project , @snippet ]
+ else
+ respond_with (@snippet )
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ return access_denied! unless can? (current_user , :admin_snippet , @snippet )
+
+ @snippet .destroy
+
+ redirect_to project_snippets_path (@project )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def index
+ @snippets = @project .snippets .fresh
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @snippet = @project .snippets .new
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def raw
+ send_data (
+ @snippet .content ,
+ type : "text/plain" ,
+ disposition : 'inline' ,
+ filename : @snippet .file_name
+ )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @note = @project .notes .new (noteable : @snippet )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @snippet .update_attributes (params [:snippet ])
+
+ if @snippet .valid?
+ redirect_to [@project , @snippet ]
+ else
+ respond_with (@snippet )
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
authorize_admin_snippet! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_admin_snippet!
+ return render_404 unless can? (current_user , :admin_snippet , @snippet )
+end
+
+
+
+
+
+
+
+
+
authorize_modify_snippet! ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def authorize_modify_snippet!
+ return render_404 unless can? (current_user , :modify_snippet , @snippet )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def snippet
+ @snippet ||= @project .snippets .find (params [:id ])
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SnippetsHelper.html b/doc/code/classes/SnippetsHelper.html
new file mode 100644
index 00000000..4230a0cc
--- /dev/null
+++ b/doc/code/classes/SnippetsHelper.html
@@ -0,0 +1,131 @@
+
+
+
+
+ SnippetsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ SnippetsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
lifetime_select_options ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def lifetime_select_options
+ options = [
+ ['forever' , nil ],
+ ['1 day' , "#{Date.current + 1.day}" ],
+ ['1 week' , "#{Date.current + 1.week}" ],
+ ['1 month' , "#{Date.current + 1.month}" ]
+ ]
+ options_for_select (options )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/StaticModel.html b/doc/code/classes/StaticModel.html
new file mode 100644
index 00000000..46ead776
--- /dev/null
+++ b/doc/code/classes/StaticModel.html
@@ -0,0 +1,377 @@
+
+
+
+
+ StaticModel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ StaticModel
+
+
+
+
+
+
+
+
+
+
Provides an ActiveRecord-like interface to a model whose data is not
+persisted to a database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
Methods
+
+
+ #
+
+
+
+
+
+ == ,
+
+
+
+
+ []
+
+
+
+
+
+ D
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def == (other )
+ if other .is_a? StaticModel
+ id == other .id
+ else
+ super
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
Used by AR for fetching attributes
+
+
Pass it along if we respond to it.
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def [] (key )
+ send (key ) if respond_to? (key )
+end
+
+
+
+
+
+
+
+
+
destroyed? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroyed?
+ false
+end
+
+
+
+
+
+
+
+
+
new_record? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new_record?
+ false
+end
+
+
+
+
+
+
+
+
+
persisted? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def persisted?
+ false
+end
+
+
+
+
+
+
+
+
+
to_param ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_param
+ id
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/StaticModel/ClassMethods.html b/doc/code/classes/StaticModel/ClassMethods.html
new file mode 100644
index 00000000..38508f6d
--- /dev/null
+++ b/doc/code/classes/StaticModel/ClassMethods.html
@@ -0,0 +1,172 @@
+
+
+
+
+ StaticModel::ClassMethods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ StaticModel::ClassMethods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
base_class ()
+
+
Link
+
+
+
+
+
Used by ActiveRecord’s polymorphic association to set object_type
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def base_class
+ self
+end
+
+
+
+
+
+
+
+
+
primary_key ()
+
+
Link
+
+
+
+
+
Used by ActiveRecord’s polymorphic association to set object_id
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def primary_key
+ 'id'
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SystemHook.html b/doc/code/classes/SystemHook.html
new file mode 100644
index 00000000..4f1ce71f
--- /dev/null
+++ b/doc/code/classes/SystemHook.html
@@ -0,0 +1,191 @@
+
+
+
+
+ SystemHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ SystemHook
+
+ <
+
+ WebHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
all_hooks_fire (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .all_hooks_fire (data )
+ SystemHook .all .each do | sh |
+ sh .async_execute data
+ end
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
async_execute (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def async_execute (data )
+ Resque .enqueue (SystemHookWorker , id , data )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SystemHookObserver.html b/doc/code/classes/SystemHookObserver.html
new file mode 100644
index 00000000..24609a5c
--- /dev/null
+++ b/doc/code/classes/SystemHookObserver.html
@@ -0,0 +1,227 @@
+
+
+
+
+ SystemHookObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ SystemHookObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (model)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (model )
+ if model .kind_of? Project
+ SystemHook .all_hooks_fire ({
+ event_name : "project_create" ,
+ name : model .name ,
+ path : model .path ,
+ project_id : model .id ,
+ owner_name : model .owner .name ,
+ owner_email : model .owner .email ,
+ created_at : model .created_at
+ })
+ elsif model .kind_of? User
+ SystemHook .all_hooks_fire ({
+ event_name : "user_create" ,
+ name : model .name ,
+ email : model .email ,
+ created_at : model .created_at
+ })
+
+ elsif model .kind_of? UsersProject
+ SystemHook .all_hooks_fire ({
+ event_name : "user_add_to_team" ,
+ project_name : model .project .name ,
+ project_path : model .project .path ,
+ project_id : model .project_id ,
+ user_name : model .user .name ,
+ user_email : model .user .email ,
+ project_access : model .repo_access_human ,
+ created_at : model .created_at
+ })
+
+ end
+end
+
+
+
+
+
+
+
+
+
after_destroy (model)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_destroy (model )
+ if model .kind_of? Project
+ SystemHook .all_hooks_fire ({
+ event_name : "project_destroy" ,
+ name : model .name ,
+ path : model .path ,
+ project_id : model .id ,
+ owner_name : model .owner .name ,
+ owner_email : model .owner .email ,
+ })
+ elsif model .kind_of? User
+ SystemHook .all_hooks_fire ({
+ event_name : "user_destroy" ,
+ name : model .name ,
+ email : model .email
+ })
+
+ elsif model .kind_of? UsersProject
+ SystemHook .all_hooks_fire ({
+ event_name : "user_remove_from_team" ,
+ project_name : model .project .name ,
+ project_path : model .project .path ,
+ project_id : model .project_id ,
+ user_name : model .user .name ,
+ user_email : model .user .email ,
+ project_access : model .repo_access_human
+ })
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/SystemHookWorker.html b/doc/code/classes/SystemHookWorker.html
new file mode 100644
index 00000000..9c114ba6
--- /dev/null
+++ b/doc/code/classes/SystemHookWorker.html
@@ -0,0 +1,131 @@
+
+
+
+
+ SystemHookWorker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ SystemHookWorker
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TabHelper.html b/doc/code/classes/TabHelper.html
new file mode 100644
index 00000000..c7b4c790
--- /dev/null
+++ b/doc/code/classes/TabHelper.html
@@ -0,0 +1,346 @@
+
+
+
+
+ TabHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ TabHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ N
+
+
+
+
+ P
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
branches_tab_class ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def branches_tab_class
+ if current_page? (branches_project_repository_path (@project )) ||
+ current_controller? (:protected_branches ) ||
+ current_page? (project_repository_path (@project ))
+ 'active'
+ end
+end
+
+
+
+
+
+
+
+
+
nav_link (options = {}, &block)
+
+
Link
+
+
+
+
+
Navigation link helper
+
+
Returns an `li` element with an ‘active’ class if the supplied
+controller(s) and/or action(s) are currently active. The content of the
+element is the value passed to the block.
+
+
options - The options hash used to determine if the element is “active”
+(default: {})
+
+
:controller - One or more controller names to check (optional).
+:action - One or more action names to check (optional).
+:path - A shorthand path, such as 'dashboard#index', to check (optional).
+:html_options - Extra options to be passed to the list element (optional).
+
+
block - An optional block that will become the contents of the returned
+
+
`li` element.
+
+
When both :controller and :action are specified, BOTH must match in order
+to be marked as active. When only one is given, either can match.
+
+
Examples
+
+
+
+
+nav_link (controller : [:tree , :refs ], action : :edit ) { "Hello" }
+
+
+
+nav_link (controller : [:tree , :refs ]) { "Hello" }
+
+
+
+nav_link (path : 'tree#show' ) { "Hello" }
+
+
+
+nav_link (controller : :tree , html_options : {class : 'home' }) { "Hello" }
+
+
+
+
Returns a list item element String
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def nav_link (options = {}, &block )
+ if path = options .delete (:path )
+ c , a , _ = path .split ('#' )
+ else
+ c = options .delete (:controller )
+ a = options .delete (:action )
+ end
+
+ if c && a
+
+ klass = current_controller? (*c ) && current_action? (*a ) ? 'active' : ''
+ else
+
+ klass = current_controller? (*c ) || current_action? (*a ) ? 'active' : ''
+ end
+
+
+
+ o = options .delete (:html_options ) || {}
+ o [:class ] ||= ''
+ o [:class ] += ' ' + klass
+ o [:class ].strip!
+
+ if block_given?
+ content_tag (:li , capture (&block ), o )
+ else
+ content_tag (:li , nil , o )
+ end
+end
+
+
+
+
+
+
+
+
+
nav_tab (key, value, &block)
+
+
Link
+
+
+
+
+
Use #nav_tab for save
+controller/action but different params
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def nav_tab key , value , &block
+ o = {}
+ o [:class ] = ""
+ o [:class ] << " active" if params [key ] == value
+
+ if block_given?
+ content_tag (:li , capture (&block ), o )
+ else
+ content_tag (:li , nil , o )
+ end
+end
+
+
+
+
+
+
+
+
+
project_tab_class ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_tab_class
+ [:show , :files , :edit , :update ].each do | action |
+ return "active" if current_page? (controller : "projects" , action : action , id : @project )
+ end
+
+ if ['snippets' , 'services' , 'hooks' , 'deploy_keys' , 'team_members' ].include? controller .controller_name
+ "active"
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TagsHelper.html b/doc/code/classes/TagsHelper.html
new file mode 100644
index 00000000..cf30b011
--- /dev/null
+++ b/doc/code/classes/TagsHelper.html
@@ -0,0 +1,170 @@
+
+
+
+
+ TagsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ TagsHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
tag_list (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tag_list project
+ html = ''
+ project .tag_list .each do | tag |
+ html += link_to tag , tag_path (tag )
+ end
+
+ html .html_safe
+end
+
+
+
+
+
+
+
+
+
tag_path (tag)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tag_path tag
+ "/tags/#{tag}"
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Team.html b/doc/code/classes/Team.html
new file mode 100644
index 00000000..08d2c07e
--- /dev/null
+++ b/doc/code/classes/Team.html
@@ -0,0 +1,470 @@
+
+
+
+
+ Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ D
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
add_user_id_to_team (user_id, access_role)
+
+
Link
+
+
+
+
+
Add user to project with passed access role by user id
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_user_id_to_team (user_id , access_role )
+ users_projects .create (
+ user_id : user_id ,
+ project_access : access_role
+ )
+end
+
+
+
+
+
+
+
+
+
add_user_to_team (user, access_role)
+
+
Link
+
+
+
+
+
Add user to project with passed access role
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_user_to_team (user , access_role )
+ add_user_id_to_team (user .id , access_role )
+end
+
+
+
+
+
+
+
+
+
add_users_ids_to_team (users_ids, access_role)
+
+
Link
+
+
+
+
+
Add multiple users to project with same access role by user ids
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_users_ids_to_team (users_ids , access_role )
+ UsersProject .bulk_import (self , users_ids , access_role )
+end
+
+
+
+
+
+
+
+
+
add_users_to_team (users, access_role)
+
+
Link
+
+
+
+
+
Add multiple users to project with same access role
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_users_to_team (users , access_role )
+ add_users_ids_to_team (users .map (&:id ), access_role )
+end
+
+
+
+
+
+
+
+
+
delete_users_ids_from_team (users_ids)
+
+
Link
+
+
+
+
+
Delete multiple users from project by user ids
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def delete_users_ids_from_team (users_ids )
+ UsersProject .bulk_delete (self , users_ids )
+end
+
+
+
+
+
+
+
+
+
team_member_by_id (user_id)
+
+
Link
+
+
+
+
+
Get Team Member record by user id
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_member_by_id (user_id )
+ users_projects .find_by_user_id (user_id )
+end
+
+
+
+
+
+
+
+
+
team_member_by_name_or_email (name = nil, email = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def team_member_by_name_or_email (name = nil , email = nil )
+ user = users .where ("name like ? or email like ?" , name , email ).first
+ users_projects .where (user : user ) if user
+end
+
+
+
+
+
+
+
+
+
truncate_team ()
+
+
Link
+
+
+
+
+
Remove all users from project team
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def truncate_team
+ UsersProject .truncate_team (self )
+end
+
+
+
+
+
+
+
+
+
update_users_ids_to_role (users_ids, access_role)
+
+
Link
+
+
+
+
+
Update multiple project users to same access role by user ids
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_users_ids_to_role (users_ids , access_role )
+ UsersProject .bulk_update (self , users_ids , access_role )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TeamMembersController.html b/doc/code/classes/TeamMembersController.html
new file mode 100644
index 00000000..f411dfd1
--- /dev/null
+++ b/doc/code/classes/TeamMembersController.html
@@ -0,0 +1,438 @@
+
+
+
+
+ TeamMembersController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
apply_import ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def apply_import
+ giver = Project .find (params [:source_project_id ])
+ status = UsersProject .import_team (giver , project )
+ notice = status ? "Succesfully imported" : "Import failed"
+
+ redirect_to project_team_members_path (project ), notice : notice
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @project .add_users_ids_to_team (
+ params [:user_ids ],
+ params [:project_access ]
+ )
+
+ if params [:redirect_to ]
+ redirect_to params [:redirect_to ]
+ else
+ redirect_to project_team_index_path (@project )
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @team_member = project .users_projects .find (params [:id ])
+ @team_member .destroy
+
+ respond_to do | format |
+ format .html { redirect_to project_team_index_path (@project ) }
+ format .js { render nothing : true }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def new
+ @team_member = project .users_projects .new
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @team_member = project .users_projects .find (params [:id ])
+ @events = @team_member .user .recent_events .where (:project_id => @project .id ).limit (7 )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ @team_member = project .users_projects .find (params [:id ])
+ @team_member .update_attributes (params [:team_member ])
+
+ unless @team_member .valid?
+ flash [:alert ] = "User should have at least one role"
+ end
+ redirect_to project_team_index_path (@project )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TestHookContext.html b/doc/code/classes/TestHookContext.html
new file mode 100644
index 00000000..5b9b6478
--- /dev/null
+++ b/doc/code/classes/TestHookContext.html
@@ -0,0 +1,134 @@
+
+
+
+
+ TestHookContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ TestHookContext
+
+ <
+
+ BaseContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute
+ hook = project .hooks .find (params [:id ])
+ commits = project .commits (project .default_branch , nil , 3 )
+ data = project .post_receive_data (commits .last .id , commits .first .id , "refs/heads/#{project.default_branch}" , current_user )
+ hook .execute (data )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Tree.html b/doc/code/classes/Tree.html
new file mode 100644
index 00000000..e71dfa3f
--- /dev/null
+++ b/doc/code/classes/Tree.html
@@ -0,0 +1,322 @@
+
+
+
+
+ Tree
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Tree
+
+ <
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ I
+
+
+
+
+ N
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+ Linguist::BlobHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ path
+
+
+
+
+
+ [RW]
+
+ project
+
+
+
+
+
+ [RW]
+
+ ref
+
+
+
+
+
+ [RW]
+
+ tree
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
new (raw_tree, project, ref = nil, path = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def initialize (raw_tree , project , ref = nil , path = nil )
+ @project , @ref , @path = project , ref , path
+ @tree = if path .present?
+ raw_tree / path
+ else
+ raw_tree
+ end
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def empty?
+ data .blank?
+end
+
+
+
+
+
+
+
+
+
invalid? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def invalid?
+ tree .nil?
+end
+
+
+
+
+
+
+
+
+
is_blob? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def is_blob?
+ tree .is_a? (Grit :: Blob )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TreeController.html b/doc/code/classes/TreeController.html
new file mode 100644
index 00000000..35c99bc0
--- /dev/null
+++ b/doc/code/classes/TreeController.html
@@ -0,0 +1,264 @@
+
+
+
+
+ TreeController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Controller for viewing a repository’s file structure
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+ S
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ @last_commit = @project .last_commit_for (@ref , @path ).sha
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ @hex_path = Digest :: SHA1 .hexdigest (@path )
+ @logs_path = logs_file_project_ref_path (@project , @ref , @path )
+
+ respond_to do | format |
+ format .html
+
+ format .js { no_cache_headers }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update
+ edit_file_action = Gitlab :: Satellite :: EditFileAction .new (current_user , @project , @ref , @path )
+ updated_successfully = edit_file_action .commit! (
+ params [:content ],
+ params [:commit_message ],
+ params [:last_commit ]
+ )
+
+ if updated_successfully
+ redirect_to project_tree_path (@project , @id ), notice : "Your changes have been successfully commited"
+ else
+ flash [:notice ] = "Your changes could not be commited, because the file has been changed"
+ render :edit
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TreeDecorator.html b/doc/code/classes/TreeDecorator.html
new file mode 100644
index 00000000..9b32e1c9
--- /dev/null
+++ b/doc/code/classes/TreeDecorator.html
@@ -0,0 +1,281 @@
+
+
+
+
+ TreeDecorator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ B
+
+
+
+
+ R
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
breadcrumbs (max_links = 2)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def breadcrumbs (max_links = 2 )
+ if path
+ part_path = ""
+ parts = path .split ("\/" )
+
+
+
+ yield (h .link_to (".." , "#" )) if parts .count > max_links
+
+ parts .each do | part |
+ part_path = File .join (part_path , part ) unless part_path .empty?
+ part_path = part if part_path .empty?
+
+ next unless parts .last (2 ).include? (part ) if parts .count > max_links
+ yield (h .link_to (h .truncate (part , length : 40 ), h .project_tree_path (project , h .tree_join (ref , part_path ))))
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def readme
+ @readme ||= contents .find { | c | c .is_a? (Grit :: Blob ) and c .name =~ %r^readme/ }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def up_dir?
+ path .present?
+end
+
+
+
+
+
+
+
+
+
up_dir_path ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def up_dir_path
+ file = File .join (path , ".." )
+ h .project_tree_path (project , h .tree_join (ref , file ))
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/TreeHelper.html b/doc/code/classes/TreeHelper.html
new file mode 100644
index 00000000..a9ca7949
--- /dev/null
+++ b/doc/code/classes/TreeHelper.html
@@ -0,0 +1,541 @@
+
+
+
+
+ TreeHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ TreeHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ G
+
+
+
+
+ M
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
allowed_tree_edit? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def allowed_tree_edit?
+ if @project .protected_branch? @ref
+ can? (current_user , :push_code_to_protected_branches , @project )
+ else
+ can? (current_user , :push_code , @project )
+ end
+end
+
+
+
+
+
+
+
+
+
breadcrumbs ()
+
+
Link
+
+
+
+
+
Breadcrumb links for a Project and, if
+applicable, a tree path
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def breadcrumbs
+ return unless @project && @ref
+
+
+ crumbs = content_tag (:li ) do
+ content_tag (:span , nil , class : 'arrow' ) +
+ link_to (@project .name , project_commits_path (@project , @ref ))
+ end
+
+ if @path
+ parts = @path .split ('/' )
+
+ parts .each_with_index do | part , i |
+ crumbs += content_tag (:span , '/' , class : 'divider' )
+ crumbs += content_tag (:li ) do
+
+ link_to part , project_commits_path (@project , tree_join (@ref , parts [0 .. i ].join ('/' )))
+ end
+ end
+ end
+
+ crumbs .html_safe
+end
+
+
+
+
+
+
+
+
+
gitlab_markdown? (filename)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gitlab_markdown? (filename )
+ filename .end_with? (*%w(.mdown .md .markdown) )
+end
+
+
+
+
+
+
+
+
+
markup? (filename)
+
+
Link
+
+
+
+
+
Public: Determines if a given filename is compatible with GitHub::Markup.
+
+
filename - Filename string to check
+
+
Returns boolean
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def markup? (filename )
+ filename .end_with? (*%w(.textile .rdoc .org .creole
+ .mediawiki .rst .asciidoc .pod) )
+end
+
+
+
+
+
+
+
+
+
plain_text_readme? (filename)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def plain_text_readme? filename
+ filename == 'README'
+end
+
+
+
+
+
+
+
+
+
render_tree (contents)
+
+
Link
+
+
+
+
+
Sorts a repository’s tree so that folders are before files and renders
+their corresponding partials
+
+
contents - A Grit::Tree object for the current tree
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def render_tree (contents )
+
+ folders , files = contents .partition { | v | v .kind_of? (Grit :: Tree ) }
+
+ tree = ""
+
+
+ tree += render partial : 'tree/tree_item' , collection : folders , locals : {type : 'folder' } if folders .present?
+
+ files .each do | f |
+ if f .respond_to? (:url )
+
+ tree += render partial : 'tree/submodule_item' , object : f
+ else
+
+ tree += render partial : 'tree/tree_item' , object : f , locals : {type : 'file' }
+ end
+ end
+
+ tree .html_safe
+end
+
+
+
+
+
+
+
+
+
tree_hex_class (content)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tree_hex_class (content )
+ "file_#{hexdigest(content.name)}"
+end
+
+
+
+
+
+
+
+
+
tree_icon (type)
+
+
Link
+
+
+
+
+
Return an image icon depending on the file type
+
+
type - String type of the tree item; either ‘folder’ or ‘file’
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tree_icon (type )
+ image = type == 'folder' ? 'file_dir.png' : 'file_txt.png'
+ image_tag (image , size : '16x16' )
+end
+
+
+
+
+
+
+
+
+
tree_join (*args)
+
+
Link
+
+
+
+
+
Simple shortcut to File.join
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tree_join (*args )
+ File .join (*args )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/User.html b/doc/code/classes/User.html
new file mode 100644
index 00000000..661b143e
--- /dev/null
+++ b/doc/code/classes/User.html
@@ -0,0 +1,566 @@
+
+
+
+
+ User
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ User
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: users
+
+
id :integer not null, primary key
+email :string(255) default(""), not null
+encrypted_password :string(255) default(""), not null
+reset_password_token :string(255)
+reset_password_sent_at :datetime
+remember_created_at :datetime
+sign_in_count :integer default(0)
+current_sign_in_at :datetime
+last_sign_in_at :datetime
+current_sign_in_ip :string(255)
+last_sign_in_ip :string(255)
+created_at :datetime not null
+updated_at :datetime not null
+name :string(255)
+admin :boolean default(FALSE), not null
+projects_limit :integer default(10)
+skype :string(255) default(""), not null
+linkedin :string(255) default(""), not null
+twitter :string(255) default(""), not null
+authentication_token :string(255)
+dark_scheme :boolean default(FALSE), not null
+theme_id :integer default(1), not null
+bio :string(255)
+blocked :boolean default(FALSE), not null
+failed_attempts :integer default(0)
+locked_at :datetime
+extern_uid :string(255)
+provider :string(255)
+username :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ F
+
+
+
+
+ G
+
+
+
+
+ N
+
+
+
+
+ S
+
+
+
+
+ W
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ force_random_password
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
create_from_omniauth (auth, ldap = false)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create_from_omniauth (auth , ldap = false )
+ gitlab_auth .create_from_omniauth (auth , ldap )
+end
+
+
+
+
+
+
+
+
+
filter (filter_name)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def filter filter_name
+ case filter_name
+ when "admins" ; self .admins
+ when "blocked" ; self .blocked
+ when "wop" ; self .without_projects
+ else
+ self .active
+ end
+end
+
+
+
+
+
+
+
+
+
find_for_ldap_auth (auth, signed_in_resource = nil)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_for_ldap_auth (auth , signed_in_resource = nil )
+ gitlab_auth .find_for_ldap_auth (auth , signed_in_resource )
+end
+
+
+
+
+
+
+
+
+
find_or_new_for_omniauth (auth)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def find_or_new_for_omniauth (auth )
+ gitlab_auth .find_or_new_for_omniauth (auth )
+end
+
+
+
+
+
+
+
+
+
gitlab_auth ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def gitlab_auth
+ Gitlab :: Auth .new
+end
+
+
+
+
+
+
+
+
+
not_in_project (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def not_in_project (project )
+ if project .users .present?
+ where ("id not in (:ids)" , ids : project .users .map (&:id ) )
+ else
+ scoped
+ end
+end
+
+
+
+
+
+
+
+
+
search (query)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search query
+ where ("name LIKE :query or email LIKE :query" , query : "%#{query}%" )
+end
+
+
+
+
+
+
+
+
+
without_projects ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def without_projects
+ where ('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)' )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
generate_password ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def generate_password
+ if self .force_random_password
+ self .password = self .password_confirmation = Devise .friendly_token .first (8 )
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/UserDecorator.html b/doc/code/classes/UserDecorator.html
new file mode 100644
index 00000000..24ce4b76
--- /dev/null
+++ b/doc/code/classes/UserDecorator.html
@@ -0,0 +1,178 @@
+
+
+
+
+ UserDecorator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
avatar_image (size = 16)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def avatar_image size = 16
+ h .image_tag h .gravatar_icon (self .email , size ), class : "avatar #{"s#{size}"}" , width : size
+end
+
+
+
+
+
+
+
+
+
tm_of (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def tm_of (project )
+ project .team_member_by_id (self .id )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/UserObserver.html b/doc/code/classes/UserObserver.html
new file mode 100644
index 00000000..6899937a
--- /dev/null
+++ b/doc/code/classes/UserObserver.html
@@ -0,0 +1,268 @@
+
+
+
+
+ UserObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ UserObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_create (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (user )
+ log_info ("User \"#{user.name}\" (#{user.email}) was created" )
+
+ Notify .new_user_email (user .id , user .password ).deliver
+end
+
+
+
+
+
+
+
+
+
after_destroy (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_destroy user
+ log_info ("User \"#{user.name}\" (#{user.email}) was removed" )
+end
+
+
+
+
+
+
+
+
+
after_save (user)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_save user
+ if user .username_changed?
+ if user .namespace
+ user .namespace .update_attributes (path : user .username )
+ else
+ user .create_namespace! (path : user .username , name : user .username )
+ end
+ end
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
log_info (message)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def log_info message
+ Gitlab :: AppLogger .info message
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/UsersProject.html b/doc/code/classes/UsersProject.html
new file mode 100644
index 00000000..76ae5125
--- /dev/null
+++ b/doc/code/classes/UsersProject.html
@@ -0,0 +1,871 @@
+
+
+
+
+ UsersProject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ UsersProject
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: users_projects
+
+
id :integer not null, primary key
+user_id :integer not null
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+project_access :integer default(0), not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+ B
+
+
+
+
+ I
+
+
+
+
+ P
+
+
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+ U
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+ GUEST
+ =
+ 10
+
+
+
+
+
+
+
+
+
+ REPORTER
+ =
+ 20
+
+
+
+
+
+
+
+
+
+ DEVELOPER
+ =
+ 30
+
+
+
+
+
+
+
+
+
+ MASTER
+ =
+ 40
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+
+ [RW]
+
+ skip_git
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
access_roles ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def access_roles
+ {
+ "Guest" => GUEST ,
+ "Reporter" => REPORTER ,
+ "Developer" => DEVELOPER ,
+ "Master" => MASTER
+ }
+end
+
+
+
+
+
+
+
+
+
add_users_into_projects (project_ids, user_ids, project_access)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def add_users_into_projects (project_ids , user_ids , project_access )
+ UsersProject .transaction do
+ project_ids .each do | project_id |
+ user_ids .each do | user_id |
+ users_project = UsersProject .new (project_access : project_access , user_id : user_id )
+ users_project .project_id = project_id
+ users_project .skip_git = true
+ users_project .save
+ end
+ end
+ Gitlab :: Gitolite .new .update_repositories (Project .where (id : project_ids ))
+ end
+
+ true
+rescue
+ false
+end
+
+
+
+
+
+
+
+
+
bulk_delete (project, user_ids)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def bulk_delete (project , user_ids )
+ UsersProject .transaction do
+ UsersProject .where (user_id : user_ids , project_id : project .id ).each do | users_project |
+ users_project .skip_git = true
+ users_project .destroy
+ end
+
+ project .update_repository
+ end
+end
+
+
+
+
+
+
+
+
+
bulk_import (project, user_ids, project_access)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def bulk_import (project , user_ids , project_access )
+ add_users_into_projects ([project .id ], user_ids , project_access )
+end
+
+
+
+
+
+
+
+
+
bulk_update (project, user_ids, project_access)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def bulk_update (project , user_ids , project_access )
+ UsersProject .transaction do
+ UsersProject .where (user_id : user_ids , project_id : project .id ).each do | users_project |
+ users_project .project_access = project_access
+ users_project .skip_git = true
+ users_project .save
+ end
+ project .update_repository
+ end
+end
+
+
+
+
+
+
+
+
+
import_team (source_project, target_project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def import_team (source_project , target_project )
+ source_team = source_project .users_projects .all
+ target_team = target_project .users_projects .all
+ target_user_ids = target_team .map (&:user_id )
+
+ source_team .reject! do | tm |
+
+ target_user_ids .include? (tm .user_id )
+ end
+
+ source_team .map! do | tm |
+ new_tm = tm .dup
+ new_tm .id = nil
+ new_tm .project_id = target_project .id
+ new_tm .skip_git = true
+ new_tm
+ end
+
+ UsersProject .transaction do
+ source_team .each do | tm |
+ tm .save
+ end
+ target_project .update_repository
+ end
+
+ true
+rescue
+ false
+end
+
+
+
+
+
+
+
+
+
truncate_team (project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def truncate_team project
+ truncate_teams [project .id ]
+end
+
+
+
+
+
+
+
+
+
truncate_teams (project_ids)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def truncate_teams (project_ids )
+ UsersProject .transaction do
+ users_projects = UsersProject .where (project_id : project_ids )
+ users_projects .each do | users_project |
+ users_project .skip_git = true
+ users_project .destroy
+ end
+ Gitlab :: Gitolite .new .update_repositories (Project .where (id : project_ids ))
+ end
+
+ true
+rescue
+ false
+end
+
+
+
+
+
+
+
+
+
user_bulk_import (user, project_ids, project_access)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def user_bulk_import (user , project_ids , project_access )
+ add_users_into_projects (project_ids , [user .id ], project_access )
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
project_access_human ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def project_access_human
+ Project .access_options .key (self .project_access )
+end
+
+
+
+
+
+
+
+
+
repo_access_human ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def repo_access_human
+ self .class .access_roles .invert [self .project_access ]
+end
+
+
+
+
+
+
+
+
+
role_access ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def role_access
+ project_access
+end
+
+
+
+
+
+
+
+
+
skip_git? ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def skip_git?
+ ! ! @skip_git
+end
+
+
+
+
+
+
+
+
+
update_repository ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def update_repository
+ git_host .update_repository (project )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/UsersProjectObserver.html b/doc/code/classes/UsersProjectObserver.html
new file mode 100644
index 00000000..50b02dc7
--- /dev/null
+++ b/doc/code/classes/UsersProjectObserver.html
@@ -0,0 +1,220 @@
+
+
+
+
+ UsersProjectObserver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ UsersProjectObserver
+
+ <
+
+ ActiveRecord::Observer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
after_commit (users_project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_commit (users_project )
+ return if users_project .destroyed?
+ Notify .project_access_granted_email (users_project .id ).deliver
+end
+
+
+
+
+
+
+
+
+
after_create (users_project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_create (users_project )
+ Event .create (
+ project_id : users_project .project .id ,
+ action : Event :: Joined ,
+ author_id : users_project .user .id
+ )
+end
+
+
+
+
+
+
+
+
+
after_destroy (users_project)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def after_destroy (users_project )
+ Event .create (
+ project_id : users_project .project .id ,
+ action : Event :: Left ,
+ author_id : users_project .user .id
+ )
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Votes.html b/doc/code/classes/Votes.html
new file mode 100644
index 00000000..bb786a79
--- /dev/null
+++ b/doc/code/classes/Votes.html
@@ -0,0 +1,307 @@
+
+
+
+
+ Votes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module
+ Votes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ D
+
+
+
+
+ U
+
+
+
+
+ V
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
downvotes ()
+
+
Link
+
+
+
+
+
Return the number of -1 comments (downvotes)
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def downvotes
+ notes .select (&:downvote? ).size
+end
+
+
+
+
+
+
+
+
+
downvotes_in_percent ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def downvotes_in_percent
+ if votes_count .zero?
+ 0
+ else
+ 100.0 - upvotes_in_percent
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
Return the number of +1 comments (upvotes)
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def upvotes
+ notes .select (&:upvote? ).size
+end
+
+
+
+
+
+
+
+
+
upvotes_in_percent ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def upvotes_in_percent
+ if votes_count .zero?
+ 0
+ else
+ 100.0 / votes_count * upvotes
+ end
+end
+
+
+
+
+
+
+
+
+
votes_count ()
+
+
Link
+
+
+
+
+
Return the total number of votes
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def votes_count
+ upvotes + downvotes
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/WebHook.html b/doc/code/classes/WebHook.html
new file mode 100644
index 00000000..54097dd3
--- /dev/null
+++ b/doc/code/classes/WebHook.html
@@ -0,0 +1,168 @@
+
+
+
+
+ WebHook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ WebHook
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ E
+
+
+
+
+
+
+
+
+
+
Included Modules
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
execute (data)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def execute (data )
+ parsed_url = URI .parse (url )
+ if parsed_url .userinfo .blank?
+ WebHook .post (url , body : data .to_json , headers : { "Content-Type" => "application/json" })
+ else
+ post_url = url .gsub ("#{parsed_url.userinfo}@" , "" )
+ WebHook .post (post_url ,
+ body : data .to_json ,
+ headers : {"Content-Type" => "application/json" },
+ basic_auth : {username : parsed_url .user , password : parsed_url .password })
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/Wiki.html b/doc/code/classes/Wiki.html
new file mode 100644
index 00000000..ab0fe9b2
--- /dev/null
+++ b/doc/code/classes/Wiki.html
@@ -0,0 +1,294 @@
+
+
+
+
+ Wiki
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class
+ Wiki
+
+ <
+
+ ActiveRecord::Base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table name: wikis
+
+
id :integer not null, primary key
+title :string(255)
+content :text
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+slug :string(255)
+user_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ R
+
+
+
+
+ S
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class Public methods
+
+
+
+
+
search (query)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def search (query )
+ where ("title like :query OR content like :query" , query : "%#{query}%" )
+end
+
+
+
+
+
+
Class Protected methods
+
+
+
+
+
regenerate_from (wiki)
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def self .regenerate_from wiki
+ regenerated_field = [:slug , :content , :title ]
+
+ new_wiki = Wiki .new
+ regenerated_field .each do | field |
+ new_wiki .send ("#{field}=" , wiki .send (field ))
+ end
+ new_wiki
+end
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
to_param ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def to_param
+ slug
+end
+
+
+
+
+
+
Instance Protected methods
+
+
+
+
+
set_slug ()
+
+
Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def set_slug
+ self .slug = self .title .parameterize
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/classes/WikisController.html b/doc/code/classes/WikisController.html
new file mode 100644
index 00000000..3247d4f0
--- /dev/null
+++ b/doc/code/classes/WikisController.html
@@ -0,0 +1,397 @@
+
+
+
+
+ WikisController
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+ C
+
+
+
+
+ D
+
+
+
+
+ E
+
+
+
+
+ H
+
+
+
+
+ P
+
+
+
+
+ S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance Public methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def create
+ @wiki = @project .wikis .new (params [:wiki ])
+ @wiki .user = current_user
+
+ respond_to do | format |
+ if @wiki .save
+ format .html { redirect_to [@project , @wiki ], notice : 'Wiki was successfully updated.' }
+ else
+ format .html { render action : "edit" }
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def destroy
+ @wikis = @project .wikis .where (slug : params [:id ]).delete_all
+
+ respond_to do | format |
+ format .html { redirect_to project_wiki_path (@project , :index ), notice : "Page was successfully deleted" }
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def edit
+ @wiki = @project .wikis .where (slug : params [:id ]).order ("created_at" ).last
+ @wiki = Wiki .regenerate_from @wiki
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def history
+ @wikis = @project .wikis .where (slug : params [:id ]).order ("created_at" )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def pages
+ @wikis = @project .wikis .group (:slug ).order ("created_at" )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+ show
+
+
+
+
+def show
+ if params [:old_page_id ]
+ @wiki = @project .wikis .find (params [:old_page_id ])
+ else
+ @wiki = @project .wikis .where (slug : params [:id ]).order ("created_at" ).last
+ end
+
+ @note = @project .notes .new (noteable : @wiki )
+
+ if @wiki
+ render 'show'
+ else
+ if can? (current_user , :write_wiki , @project )
+ @wiki = @project .wikis .new (slug : params [:id ])
+ render 'edit'
+ else
+ render 'empty'
+ end
+ end
+end
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/created.rid b/doc/code/created.rid
new file mode 100644
index 00000000..3177c0b3
--- /dev/null
+++ b/doc/code/created.rid
@@ -0,0 +1,155 @@
+Sun, 30 Dec 2012 14:41:56 +0200
+app/models/namespace.rb Sun, 30 Dec 2012 12:06:28 +0200
+app/models/ability.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/commit.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/gitlab_ci_service.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/system_hook.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/key.rb Thu, 27 Dec 2012 12:10:59 +0200
+app/models/note.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/project.rb Fri, 28 Dec 2012 09:30:09 +0200
+app/models/tree.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/milestone.rb Thu, 27 Dec 2012 11:32:29 +0200
+app/models/web_hook.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/protected_branch.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/project_hook.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/event.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/service_hook.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/service.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/snippet.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/merge_request.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/models/user.rb Sun, 30 Dec 2012 13:40:45 +0200
+app/models/group.rb Sun, 30 Dec 2012 14:25:46 +0200
+app/models/wiki.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/models/users_project.rb Sun, 30 Dec 2012 14:27:12 +0200
+app/models/issue.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/observers/system_hook_observer.rb Mon, 30 Jul 2012 09:40:22 +0300
+app/observers/note_observer.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/observers/users_project_observer.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/observers/project_observer.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/observers/user_observer.rb Sun, 30 Dec 2012 12:06:28 +0200
+app/observers/merge_request_observer.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/observers/activity_observer.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/observers/key_observer.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/observers/issue_observer.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/labels_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/projects_controller.rb Sun, 30 Dec 2012 13:33:32 +0200
+app/controllers/application_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/keys_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/repositories_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/services_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/hooks_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/compare_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/merge_requests_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/snippets_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/help_controller.rb Wed, 29 Feb 2012 23:28:38 +0200
+app/controllers/omniauth_callbacks_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/errors_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/blob_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/wikis_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/refs_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/notes_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/milestones_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/search_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/admin_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/team_members_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/profiles_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/dashboard_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/admin/projects_controller.rb Sun, 30 Dec 2012 14:08:40 +0200
+app/controllers/admin/hooks_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/admin/resque_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/admin/logs_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/admin/team_members_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/admin/dashboard_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/admin/users_controller.rb Sun, 30 Dec 2012 13:42:44 +0200
+app/controllers/admin/groups_controller.rb Sun, 30 Dec 2012 14:11:24 +0200
+app/controllers/commits_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/tree_controller.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/controllers/deploy_keys_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/blame_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/protected_branches_controller.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/controllers/commit_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/groups_controller.rb Sun, 30 Dec 2012 12:42:35 +0200
+app/controllers/project_resource_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/controllers/issues_controller.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/mailers/notify.rb Sun, 30 Dec 2012 12:06:28 +0200
+app/uploaders/attachment_uploader.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/helpers/snippets_helper.rb Fri, 02 Dec 2011 02:40:22 +0200
+app/helpers/events_helper.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/helpers/merge_requests_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/tree_helper.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/helpers/namespaces_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/projects_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/tags_helper.rb Fri, 02 Dec 2011 02:40:22 +0200
+app/helpers/gitlab_markdown_helper.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/helpers/dashboard_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/commits_helper.rb Thu, 27 Dec 2012 11:32:29 +0200
+app/helpers/application_helper.rb Sun, 30 Dec 2012 13:49:26 +0200
+app/helpers/issues_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/tab_helper.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/helpers/profile_helper.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/helpers/notes_helper.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/project_update_context.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/contexts/test_hook_context.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/merge_requests_load_context.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/contexts/notes/create_context.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/notes/load_context.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/contexts/issues_bulk_update_context.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/issues_list_context.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/base_context.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/contexts/search_context.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/contexts/commit_load_context.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/roles/note_event.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/roles/push_observer.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/roles/account.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/roles/votes.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/roles/repository.rb Sun, 30 Dec 2012 12:24:50 +0200
+app/roles/git_host.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/roles/team.rb Sun, 30 Dec 2012 14:26:37 +0200
+app/roles/namespaced_project.rb Wed, 26 Dec 2012 10:56:36 +0200
+app/roles/authority.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/roles/push_event.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/roles/static_model.rb Mon, 29 Oct 2012 21:44:39 +0200
+app/roles/issue_commonality.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/decorators/commit_decorator.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/decorators/application_decorator.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/decorators/tree_decorator.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/decorators/event_decorator.rb Mon, 29 Oct 2012 21:33:47 +0200
+app/decorators/user_decorator.rb Sun, 23 Dec 2012 12:16:43 +0200
+app/assets/fonts/OFL.txt Thu, 27 Dec 2012 11:32:29 +0200
+app/workers/post_receive.rb Sun, 23 Dec 2012 14:02:47 +0200
+app/workers/system_hook_worker.rb Mon, 30 Jul 2012 09:40:23 +0300
+lib/extracts_path.rb Thu, 27 Dec 2012 11:32:29 +0200
+lib/file_size_validator.rb Mon, 29 Oct 2012 21:33:47 +0200
+lib/redcarpet/render/gitlab_html.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/auth.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/regex.rb Fri, 28 Dec 2012 09:30:09 +0200
+lib/gitlab/git_logger.rb Mon, 29 Oct 2012 21:33:47 +0200
+lib/gitlab/satellite/merge_action.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/satellite/satellite.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/satellite/edit_file_action.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/satellite/action.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/backend/grack_auth.rb Sun, 30 Dec 2012 12:06:28 +0200
+lib/gitlab/backend/gitolite_config.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/backend/gitolite.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/logger.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/markdown.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/app_logger.rb Mon, 29 Oct 2012 21:33:47 +0200
+lib/gitlab/seeder.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/git_stats.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/project_mover.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/graph/commit.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/gitlab/graph/json_builder.rb Thu, 27 Dec 2012 11:32:29 +0200
+lib/gitlab/theme.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/gitlab/inline_diff.rb Mon, 29 Oct 2012 21:33:47 +0200
+lib/hooks/post-receive Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/projects.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/merge_requests.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/users.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/session.rb Mon, 29 Oct 2012 21:33:47 +0200
+lib/api/notes.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/helpers.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/entities.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/milestones.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/api/issues.rb Sun, 23 Dec 2012 14:02:47 +0200
+lib/event_filter.rb Sun, 23 Dec 2012 12:16:43 +0200
+lib/api.rb Sun, 23 Dec 2012 14:02:47 +0200
diff --git a/doc/code/css/github.css b/doc/code/css/github.css
new file mode 100644
index 00000000..bd778a76
--- /dev/null
+++ b/doc/code/css/github.css
@@ -0,0 +1,129 @@
+/*
+
+github.com style (c) Vasily Polovnyov
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ color: #000;
+ background: #f8f8ff
+}
+
+pre .comment,
+pre .template_comment,
+pre .diff .header,
+pre .javadoc {
+ color: #998;
+ font-style: italic
+}
+
+pre .keyword,
+pre .css .rule .keyword,
+pre .winutils,
+pre .javascript .title,
+pre .lisp .title,
+pre .subst {
+ color: #000;
+ font-weight: bold
+}
+
+pre .number,
+pre .hexcolor {
+ color: #40a070
+}
+
+pre .string,
+pre .tag .value,
+pre .phpdoc,
+pre .tex .formula {
+ color: #d14
+}
+
+pre .title,
+pre .id {
+ color: #900;
+ font-weight: bold
+}
+
+pre .javascript .title,
+pre .lisp .title,
+pre .subst {
+ font-weight: normal
+}
+
+pre .class .title,
+pre .haskell .label,
+pre .tex .command {
+ color: #458;
+ font-weight: bold
+}
+
+pre .tag,
+pre .tag .title,
+pre .rules .property,
+pre .django .tag .keyword {
+ color: #000080;
+ font-weight: normal
+}
+
+pre .attribute,
+pre .variable,
+pre .instancevar,
+pre .lisp .body {
+ color: #008080
+}
+
+pre .regexp {
+ color: #009926
+}
+
+pre .class {
+ color: #458;
+ font-weight: bold
+}
+
+pre .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .lisp .keyword,
+pre .tex .special,
+pre .input_number {
+ color: #990073
+}
+
+pre .builtin,
+pre .built_in,
+pre .lisp .title {
+ color: #0086b3
+}
+
+pre .preprocessor,
+pre .pi,
+pre .doctype,
+pre .shebang,
+pre .cdata {
+ color: #999;
+ font-weight: bold
+}
+
+pre .deletion {
+ background: #fdd
+}
+
+pre .addition {
+ background: #dfd
+}
+
+pre .diff .change {
+ background: #0086b3
+}
+
+pre .chunk {
+ color: #aaa
+}
+
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/doc/code/css/main.css b/doc/code/css/main.css
new file mode 100755
index 00000000..7d5a913a
--- /dev/null
+++ b/doc/code/css/main.css
@@ -0,0 +1,333 @@
+body {
+ font-family: "Helvetica Neue", Arial, sans-serif;
+ background: #FFF;
+ color: #000;
+ margin: 0px;
+ font-size: 0.82em;
+ line-height: 1.25em;
+}
+
+a {
+ color: #00F;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #333;
+ background: #FE8;
+}
+
+p {
+ margin-bottom: 1em;
+}
+
+h1 {
+ font-size: 2.1em;
+ font-weight: normal;
+ line-height: 1.2em;
+ margin: 1.4em 0 0.7em 0;
+}
+
+h2 {
+ font-size: 1.6em;
+ margin: 1.8em 0 0.8em 0;
+ font-weight: normal;
+ line-height: 1.2em;
+}
+
+h3 {
+ font-size: 1.4em;
+ color:#555;
+ margin: 1.4em 0 0.7em 0;
+ font-weight: normal;
+}
+
+h4 {
+ margin: 1.4em 0 0.5em 0;
+ font-size: 1em;
+}
+
+table
+{
+ margin-bottom: 1em;
+}
+
+td, th
+{
+ padding: 0 0.7em 0.3em 0;
+}
+
+th
+{
+ font-weight: bold;
+}
+
+.clear
+{
+ clear: both;
+ width: 0; height: 0;
+}
+
+dt
+{
+ margin-bottom: 0.3em;
+ font-weight: bold;
+}
+
+dd
+{
+ margin-left: 2em;
+ margin-bottom: 1em;
+}
+
+dd p
+{
+ margin-top: 0.6em;
+}
+
+li
+{
+ margin: 0 0 0.5em 2em;
+}
+
+ul li
+{
+ list-style: disc;
+}
+
+ol li
+{
+ list-style: decimal;
+}
+
+.banner
+{
+ background: #EDF3FE;
+ border-bottom: 1px solid #ccc;
+ padding: 1em 2em 0.5em 2em;
+}
+.banner h1
+{
+ font-size: 1.2em;
+ margin: 0;
+}
+
+.banner h1 .type
+{
+ font-size: 0.833em;
+ display:block;
+}
+
+.banner h1 .type,
+.banner h1 .parent
+{
+ color: #666;
+}
+
+.banner ul
+{
+ margin-top: 0.3em;
+ margin-bottom: 0;
+ font-size: 0.85em;
+}
+
+.banner li
+{
+ list-style: none;
+ margin-left: 0;
+ margin-bottom: 0;
+}
+
+pre
+{
+ margin-bottom: 1em;
+}
+
+.methods dt
+{
+ width: 1em;
+ font-size: 1.5em;
+ color:#AAA;
+ position: absolute;
+ font-weight: normal;
+ margin: 0;
+}
+
+.methods dd
+{
+ margin-left: 2.5em;
+ min-height: 1.8em;
+ -height: 1.8em;
+ padding-bottom: 0.8em;
+}
+
+
+.methods ul li
+{
+ margin-right: 0.7em;
+ margin-left: 0;
+ list-style: none;
+ display: inline;
+}
+
+#content {
+ margin: 2em;
+ margin-left: 3.5em;
+ margin-right: 3.5em;
+}
+
+
+.sectiontitle {
+ margin-top: 2em;
+ margin-bottom: 1.3em;
+ margin-left: -1.2em;
+ font-size: 1.2em;
+ padding: 0 0 0.25em 0;
+ font-weight: bold;
+ border-bottom: 1px solid #000;
+}
+
+.contenttitle {
+ margin-top: 4em;
+ margin-bottom: 1.3em;
+ margin-left: -0.9em;
+ font-size: 1.6em;
+ padding: 0 0 0.25em 0;
+ font-weight: bold;
+}
+
+.attr-rw {
+ padding-right: 1em;
+ text-align: center;
+ color: #055;
+}
+
+.attr-name {
+ font-weight: bold;
+ padding-right: 1em;
+}
+
+.attr-desc {
+}
+
+tt {
+ font-size: 1.15em;
+}
+
+.attr-value {
+ font-family: monospace;
+ padding-left: 1em;
+ font-size: 1.15em;
+}
+
+.dyn-source {
+ display: none;
+ background: #fffde8;
+ color: #000;
+ border: #ffe0bb dotted 1px;
+ margin: 0.5em 2em 0.5em 0;
+ padding: 0.5em;
+}
+
+.dyn-source .cmt {
+ color: #00F;
+ font-style: italic;
+}
+
+.dyn-source .kw {
+ color: #070;
+ font-weight: bold;
+}
+
+.description pre {
+ padding: 0.5em;
+ border: #ffe0bb dotted 1px;
+ background: #fffde8;
+}
+
+.method {
+ margin-bottom: 2em;
+}
+.method .description,
+.method .sourcecode
+{
+ margin-left: 1.2em;
+}
+.method h4
+{
+ border-bottom: 1px dotted #999;
+ padding: 0 0 0.2em 0;
+ margin-bottom: 0.8em;
+ font-size: 1.1em;
+ color:#333;
+}
+.method .method-title {
+ border-bottom: 1px dotted #666;
+ padding: 0 0 0.15em 0;
+ margin: 0 0 0.5em 0;
+ font-size: 1.2em;
+ line-height: 1.25em;
+ position: relative;
+}
+
+.method .method-title a.permalink {
+ position: absolute;
+ font-size: 0.75em;
+ right: 0;
+}
+
+.method .sourcecode p.source-link {
+ text-indent: 0em;
+ margin-top: 0.5em;
+}
+
+.method .aka {
+ margin-top: 0.3em;
+ margin-left: 1em;
+ font-style: italic;
+ text-indent: 2em;
+}
+
+.method .source-link
+{
+ font-size: 0.85em;
+}
+
+.ruby-constant {
+ color: teal;
+}
+.ruby-keyword {
+ color: #000;
+ font-weight: bold
+}
+.ruby-title {
+ color: #900;
+ font-weight: bold;
+}
+.ruby-ivar {
+ color: teal;
+}
+.ruby-operator {
+ color: #000;
+ font-weight: bold
+}
+.ruby-identifier {
+ color: #000;
+}
+.ruby-string,
+.ruby-node {
+ color: #D14;
+}
+.ruby-comment {
+ color: #998;
+ font-style: italic;
+}
+.ruby-regexp {
+ color: #009926;
+}
+.ruby-value {
+ color: #990073;
+}
+.ruby-number {
+ color: #40A070;
+}
diff --git a/doc/code/css/panel.css b/doc/code/css/panel.css
new file mode 100755
index 00000000..9bd8027b
--- /dev/null
+++ b/doc/code/css/panel.css
@@ -0,0 +1,384 @@
+/* Panel (begin) */
+ .panel
+ {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ background: #FFF;
+ z-index: 2;
+ font-family: "Helvetica Neue", "Arial", sans-serif;
+ //zoom: 1;
+ }
+
+ .panel_tree .results,
+ .panel_results .tree
+ {
+ display: none;
+ }
+
+ /* Header with search box (begin) */
+ .panel .header
+ {
+ width: 100%;
+ height: 29px;
+ border-bottom: 1px solid #666;
+ position: relative;
+ left: 0; top: 0;
+ background: #e8e8e8;
+ }
+
+ .panel .header div
+ {
+ margin: 0 7px;
+ }
+ .panel .header table
+ {
+ height: 29px;
+ width: 100%;
+ }
+
+ .panel .header table td
+ {
+ vertical-align: middle;
+ text-align: middle;
+ }
+
+ .panel .header label
+ {
+ position: absolute;
+ font-size: 12px;
+ line-height: 29px;
+ margin-left: 3px;
+ color: #999;
+ cursor: text;
+ }
+
+ .panel .header table input
+ {
+ width: 100%;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ display: inline-block;
+ -webkit-appearance: searchfield;
+ height: 22px;
+ //height: auto;
+ }
+
+ /* Header with search box (end) */
+
+
+ /* Results (begin) */
+ .panel .result
+ {
+ position: absolute;
+ top: 30px;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ //height: expression((this.parentNode.offsetHeight - 31));
+ overflow-y: scroll;
+ overflow-x: hidden;
+ -overflow-y: hidden;
+ background: #EDF3FE url(../i/results_bg.png);
+ z-index: 2;
+ //zoom:1;
+ }
+
+ .panel .result ul
+ {
+ font-size: 0.8em;
+ width: 100%;
+ background: #EDF3FE url(../i/results_bg.png);
+ //zoom:1;
+ }
+
+ .panel .result ul li
+ {
+ height: 46px;
+ -height: 50px;
+ //display: inline;
+ //width: 100%;
+ //zoom: 1;
+ overflow: hidden;
+ padding: 4px 10px 0 10px;
+ cursor: pointer;
+ }
+
+ .panel .result ul li h1
+ {
+ font-size: 13px;
+ font-weight: normal;
+ color: #333;
+ margin-bottom: 2px;
+ white-space: nowrap;
+ }
+
+ .panel .result ul li p
+ {
+ font-size: 11px;
+ color: #333;
+ margin-bottom: 2px;
+ white-space: nowrap;
+ }
+
+ .panel .result ul li h1 i,
+ .panel .result ul li p.snippet
+ {
+ color: #999;
+ }
+
+ .panel .result ul li b
+ {
+ color: #000;
+ }
+
+ .panel .result ul li.current
+ {
+ background: #3875D7;
+ }
+
+ .panel .result ul li.current h1,
+ .panel .result ul li.current p
+ {
+ color: #DDD;
+ }
+
+ .panel .result ul li.current h1 i,
+ .panel .result ul li.current p.snippet
+ {
+ color: #AAA;
+ }
+
+ .panel .result ul li.current b
+ {
+ color: #FFF;
+ }
+
+
+ .panel .result ul li:hover,
+ .panel .result ul li.selected
+ {
+ background: #d0d0d0;
+ }
+
+ .panel .result ul li.current:hover
+ {
+ background: #2965C0;
+ }
+
+ .panel .result ul li .badge
+ {
+ margin-right: 0.4em;
+ margin-left: -0.2em;
+ padding: 0 0.2em;
+ color: #000;
+ border-radius: 3px;
+ }
+
+ .panel .result ul li .badge_1
+ {
+ background: #ACDBF4;
+ }
+
+ .panel .result ul li.current .badge_1
+ {
+ background: #97BFD7;
+ }
+
+ .panel .result ul li .badge_2
+ {
+ background: #ACF3C3;
+ }
+
+ .panel .result ul li.current .badge_2
+ {
+ background: #98D7AC;
+ }
+
+ .panel .result ul li .badge_3
+ {
+ background: #E0F3AC;
+ }
+
+ .panel .result ul li.current .badge_3
+ {
+ background: #C4D798;
+ }
+
+ .panel .result ul li .badge_4
+ {
+ background: #D7CA98;
+ }
+
+ .panel .result ul li.current .badge_4
+ {
+ background: #A6B0AC;
+ }
+
+ .panel .result ul li .badge_5
+ {
+ background: #F3C8AC;
+ }
+
+ .panel .result ul li.current .badge_5
+ {
+ background: #D7B198;
+ }
+
+ .panel .result ul li .badge_6
+ {
+ background: #F3ACC3;
+ }
+
+ .panel .result ul li.current .badge_6
+ {
+ background: #D798AB;
+ }
+
+ /* Results (end) */
+
+ /* Tree (begin) */ /**/
+ .panel .tree
+ {
+ position: absolute;
+ top: 30px;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ //zoom: 1;
+ //height: expression((this.parentNode.offsetHeight - 31));
+ overflow-y: scroll;
+ overflow-x: hidden;
+ -overflow-y: hidden;
+ background: #EDF3FE url(../i/tree_bg.png);
+ z-index: 30;
+ }
+
+ .panel .tree ul
+ {
+ background: #EDF3FE url(../i/tree_bg.png);
+ }
+
+ .panel .tree li
+ {
+ cursor: pointer;
+ overflow: hidden;
+ //height: 23px;
+ //display: inline;
+ //zoom: 1;
+ //width: 100%;
+ }
+
+
+ .panel .tree li .content
+ {
+ padding-left: 18px;
+ padding-top: 5px;
+ height: 18px;
+ overflow: hidden;
+ position: relative;
+ }
+
+ .panel .tree li .icon
+ {
+ width: 10px;
+ height: 9px;
+ background: url(../i/arrows.png);
+ background-position: 0 -9px;
+ position: absolute;
+ left: 1px;
+ top: 8px;
+ cursor: default;
+ }
+
+ .panel .tree li.closed .icon
+ {
+ background-position: 0 0;
+ }
+
+ .panel .tree ul li h1
+ {
+ font-size: 13px;
+ font-weight: normal;
+ color: #000;
+ margin-bottom: 2px;
+ white-space: nowrap;
+ }
+
+ .panel .tree ul li p
+ {
+ font-size: 11px;
+ color: #666;
+ margin-bottom: 2px;
+ white-space: nowrap;
+ }
+
+ .panel .tree ul li h1 i
+ {
+ color: #999;
+ font-style: normal;
+ }
+
+ .panel .tree ul li.empty
+ {
+ cursor: text;
+ }
+
+ .panel .tree ul li.empty h1,
+ .panel .tree ul li.empty p
+ {
+ color: #666;
+ font-style: italic;
+ }
+
+ .panel .tree ul li.current
+ {
+ background: #3875D7;
+ }
+
+ .panel .tree ul li.current .icon
+ {
+ background-position: -10px -9px;
+ }
+
+ .panel .tree ul li.current.closed .icon
+ {
+ background-position: -10px 0;
+ }
+
+ .panel .tree ul li.current h1
+ {
+ color: #FFF;
+ }
+
+ .panel .tree ul li.current p
+ {
+ color: #CCC;
+ }
+
+ .panel .tree ul li.current.empty h1,
+ .panel .tree ul li.current.empty p
+ {
+ color: #999;
+ }
+
+ .panel .tree ul li:hover
+ {
+ background: #d0d0d0;
+ }
+
+ .panel .tree ul li.current:hover
+ {
+ background: #2965C0;
+ }
+
+ .panel .tree .stopper
+ {
+ display: none;
+ }
+ /* Tree (end) */ /**/
+
+/* Panel (end) */
\ No newline at end of file
diff --git a/doc/code/css/reset.css b/doc/code/css/reset.css
new file mode 100755
index 00000000..da4a2394
--- /dev/null
+++ b/doc/code/css/reset.css
@@ -0,0 +1,48 @@
+/* http://meyerweb.com/eric/tools/css/reset/ */
+/* v1.0 | 20080212 */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
\ No newline at end of file
diff --git a/doc/code/favicon.ico b/doc/code/favicon.ico
new file mode 100644
index 00000000..e0e80cf8
Binary files /dev/null and b/doc/code/favicon.ico differ
diff --git a/doc/code/files/app/assets/fonts/OFL_txt.html b/doc/code/files/app/assets/fonts/OFL_txt.html
new file mode 100644
index 00000000..f873d9b2
--- /dev/null
+++ b/doc/code/files/app/assets/fonts/OFL_txt.html
@@ -0,0 +1,158 @@
+
+
+
+
+ OFL.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OFL.txt
+
+
+ app/assets/fonts/OFL.txt
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
Copyright © 2010, Jan Gerner (post@yanone.de) This Font Software is
+licensed under the SIL Open Font License, Version 1.1. This license is
+copied below, and is also available with a FAQ at: scripts.sil.org/OFL
+
+
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+
+
+
PREAMBLE The goals of the Open Font License (OFL ) are to stimulate worldwide development of
+collaborative font projects, to support the font creation efforts of
+academic and linguistic communities, and to provide a free and open
+framework in which fonts may be shared and improved in partnership with
+others.
+
+
The OFL allows the licensed fonts to be used,
+studied, modified and redistributed freely as long as they are not sold by
+themselves. The fonts, including any derivative works, can be bundled,
+embedded, redistributed and/or sold with any software provided that any
+reserved names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply to any
+document created using the fonts or their derivatives.
+
+
DEFINITIONS “Font Software” refers to the set of files released by the
+Copyright Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+
“Reserved Font Name” refers to any names specified as such after the
+copyright statement(s).
+
+
“Original Version” refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+
“Modified Version” refers to any derivative made by adding to, deleting, or
+substituting – in part or in whole – any of the components of the Original
+Version, by changing formats or by porting the Font Software to a new
+environment.
+
+
“Author” refers to any designer, engineer, programmer, technical writer or
+other person who contributed to the Font Software.
+
+
PERMISSION & CONDITIONS Permission is hereby granted, free of charge,
+to any person obtaining a copy of the Font Software, to use, study, copy,
+merge, embed, modify, redistribute, and sell modified and unmodified copies
+of the Font Software, subject to the following conditions:
+
+
1) Neither the Font Software nor any of its individual components, in
+Original or Modified Versions, may be sold by itself.
+
+
2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be included
+either as stand-alone text files, human-readable headers or in the
+appropriate machine-readable metadata fields within text or binary files as
+long as those fields can be easily viewed by the user.
+
+
3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any Modified
+Version, except to acknowledge the contribution(s) of the Copyright
+Holder(s) and the Author(s) or with their explicit written permission.
+
+
5) The Font Software, modified or unmodified, in part or in whole, must be
+distributed entirely under this license, and must not be distributed under
+any other license. The requirement for fonts to remain under this license
+does not apply to any document created using the Font Software.
+
+
TERMINATION This license becomes null and void if any of the above
+conditions are not met.
+
+
DISCLAIMER THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS
+IN THE FONT SOFTWARE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/base_context_rb.html b/doc/code/files/app/contexts/base_context_rb.html
new file mode 100644
index 00000000..21416430
--- /dev/null
+++ b/doc/code/files/app/contexts/base_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ base_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ base_context.rb
+
+
+ app/contexts/base_context.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/commit_load_context_rb.html b/doc/code/files/app/contexts/commit_load_context_rb.html
new file mode 100644
index 00000000..c21f5e1b
--- /dev/null
+++ b/doc/code/files/app/contexts/commit_load_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ commit_load_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commit_load_context.rb
+
+
+ app/contexts/commit_load_context.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/issues_bulk_update_context_rb.html b/doc/code/files/app/contexts/issues_bulk_update_context_rb.html
new file mode 100644
index 00000000..18b89d58
--- /dev/null
+++ b/doc/code/files/app/contexts/issues_bulk_update_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ issues_bulk_update_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issues_bulk_update_context.rb
+
+
+ app/contexts/issues_bulk_update_context.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/issues_list_context_rb.html b/doc/code/files/app/contexts/issues_list_context_rb.html
new file mode 100644
index 00000000..6d83a6b4
--- /dev/null
+++ b/doc/code/files/app/contexts/issues_list_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ issues_list_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issues_list_context.rb
+
+
+ app/contexts/issues_list_context.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/merge_requests_load_context_rb.html b/doc/code/files/app/contexts/merge_requests_load_context_rb.html
new file mode 100644
index 00000000..5f9c5462
--- /dev/null
+++ b/doc/code/files/app/contexts/merge_requests_load_context_rb.html
@@ -0,0 +1,86 @@
+
+
+
+
+ merge_requests_load_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_requests_load_context.rb
+
+
+ app/contexts/merge_requests_load_context.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
Build collection of Merge Requests based on filtering passed via params for
+@project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/notes/create_context_rb.html b/doc/code/files/app/contexts/notes/create_context_rb.html
new file mode 100644
index 00000000..7cf9a67c
--- /dev/null
+++ b/doc/code/files/app/contexts/notes/create_context_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ create_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create_context.rb
+
+
+ app/contexts/notes/create_context.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/notes/load_context_rb.html b/doc/code/files/app/contexts/notes/load_context_rb.html
new file mode 100644
index 00000000..84c7f143
--- /dev/null
+++ b/doc/code/files/app/contexts/notes/load_context_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ load_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ load_context.rb
+
+
+ app/contexts/notes/load_context.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/project_update_context_rb.html b/doc/code/files/app/contexts/project_update_context_rb.html
new file mode 100644
index 00000000..2712b358
--- /dev/null
+++ b/doc/code/files/app/contexts/project_update_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ project_update_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project_update_context.rb
+
+
+ app/contexts/project_update_context.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/search_context_rb.html b/doc/code/files/app/contexts/search_context_rb.html
new file mode 100644
index 00000000..85d7cc30
--- /dev/null
+++ b/doc/code/files/app/contexts/search_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ search_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ search_context.rb
+
+
+ app/contexts/search_context.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/contexts/test_hook_context_rb.html b/doc/code/files/app/contexts/test_hook_context_rb.html
new file mode 100644
index 00000000..ebb88998
--- /dev/null
+++ b/doc/code/files/app/contexts/test_hook_context_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ test_hook_context.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ test_hook_context.rb
+
+
+ app/contexts/test_hook_context.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/dashboard_controller_rb.html b/doc/code/files/app/controllers/admin/dashboard_controller_rb.html
new file mode 100644
index 00000000..1fd4edd0
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/dashboard_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ dashboard_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dashboard_controller.rb
+
+
+ app/controllers/admin/dashboard_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/groups_controller_rb.html b/doc/code/files/app/controllers/admin/groups_controller_rb.html
new file mode 100644
index 00000000..8fe6fc90
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/groups_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ groups_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ groups_controller.rb
+
+
+ app/controllers/admin/groups_controller.rb
+ Last modified: 2012-12-30 14:11:24 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/hooks_controller_rb.html b/doc/code/files/app/controllers/admin/hooks_controller_rb.html
new file mode 100644
index 00000000..221091a2
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/hooks_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ hooks_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hooks_controller.rb
+
+
+ app/controllers/admin/hooks_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/logs_controller_rb.html b/doc/code/files/app/controllers/admin/logs_controller_rb.html
new file mode 100644
index 00000000..27957990
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/logs_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ logs_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ logs_controller.rb
+
+
+ app/controllers/admin/logs_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/projects_controller_rb.html b/doc/code/files/app/controllers/admin/projects_controller_rb.html
new file mode 100644
index 00000000..2d611510
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/projects_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ projects_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ projects_controller.rb
+
+
+ app/controllers/admin/projects_controller.rb
+ Last modified: 2012-12-30 14:08:40 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/resque_controller_rb.html b/doc/code/files/app/controllers/admin/resque_controller_rb.html
new file mode 100644
index 00000000..742a9c7d
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/resque_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ resque_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ resque_controller.rb
+
+
+ app/controllers/admin/resque_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/team_members_controller_rb.html b/doc/code/files/app/controllers/admin/team_members_controller_rb.html
new file mode 100644
index 00000000..b821baff
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/team_members_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ team_members_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ team_members_controller.rb
+
+
+ app/controllers/admin/team_members_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin/users_controller_rb.html b/doc/code/files/app/controllers/admin/users_controller_rb.html
new file mode 100644
index 00000000..c8188f7e
--- /dev/null
+++ b/doc/code/files/app/controllers/admin/users_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ users_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ users_controller.rb
+
+
+ app/controllers/admin/users_controller.rb
+ Last modified: 2012-12-30 13:42:44 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/admin_controller_rb.html b/doc/code/files/app/controllers/admin_controller_rb.html
new file mode 100644
index 00000000..78375592
--- /dev/null
+++ b/doc/code/files/app/controllers/admin_controller_rb.html
@@ -0,0 +1,88 @@
+
+
+
+
+ admin_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ admin_controller.rb
+
+
+ app/controllers/admin_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
Provides a base class for Admin
+controllers to subclass
+
+
Automatically sets the layout and ensures an administrator is logged in
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/application_controller_rb.html b/doc/code/files/app/controllers/application_controller_rb.html
new file mode 100644
index 00000000..f13dba25
--- /dev/null
+++ b/doc/code/files/app/controllers/application_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ application_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ application_controller.rb
+
+
+ app/controllers/application_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/blame_controller_rb.html b/doc/code/files/app/controllers/blame_controller_rb.html
new file mode 100644
index 00000000..f0c34244
--- /dev/null
+++ b/doc/code/files/app/controllers/blame_controller_rb.html
@@ -0,0 +1,85 @@
+
+
+
+
+ blame_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ blame_controller.rb
+
+
+ app/controllers/blame_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
Controller for viewing a file’s blame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/blob_controller_rb.html b/doc/code/files/app/controllers/blob_controller_rb.html
new file mode 100644
index 00000000..a5bdfad1
--- /dev/null
+++ b/doc/code/files/app/controllers/blob_controller_rb.html
@@ -0,0 +1,85 @@
+
+
+
+
+ blob_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ blob_controller.rb
+
+
+ app/controllers/blob_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
Controller for viewing a file’s blame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/commit_controller_rb.html b/doc/code/files/app/controllers/commit_controller_rb.html
new file mode 100644
index 00000000..a7189c86
--- /dev/null
+++ b/doc/code/files/app/controllers/commit_controller_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ commit_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commit_controller.rb
+
+
+ app/controllers/commit_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/commits_controller_rb.html b/doc/code/files/app/controllers/commits_controller_rb.html
new file mode 100644
index 00000000..989e4cd8
--- /dev/null
+++ b/doc/code/files/app/controllers/commits_controller_rb.html
@@ -0,0 +1,87 @@
+
+
+
+
+ commits_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commits_controller.rb
+
+
+ app/controllers/commits_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/compare_controller_rb.html b/doc/code/files/app/controllers/compare_controller_rb.html
new file mode 100644
index 00000000..479fa869
--- /dev/null
+++ b/doc/code/files/app/controllers/compare_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ compare_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ compare_controller.rb
+
+
+ app/controllers/compare_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/dashboard_controller_rb.html b/doc/code/files/app/controllers/dashboard_controller_rb.html
new file mode 100644
index 00000000..ac7012f4
--- /dev/null
+++ b/doc/code/files/app/controllers/dashboard_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ dashboard_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dashboard_controller.rb
+
+
+ app/controllers/dashboard_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/deploy_keys_controller_rb.html b/doc/code/files/app/controllers/deploy_keys_controller_rb.html
new file mode 100644
index 00000000..c0c598a2
--- /dev/null
+++ b/doc/code/files/app/controllers/deploy_keys_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ deploy_keys_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ deploy_keys_controller.rb
+
+
+ app/controllers/deploy_keys_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/errors_controller_rb.html b/doc/code/files/app/controllers/errors_controller_rb.html
new file mode 100644
index 00000000..bd2da28b
--- /dev/null
+++ b/doc/code/files/app/controllers/errors_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ errors_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ errors_controller.rb
+
+
+ app/controllers/errors_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/groups_controller_rb.html b/doc/code/files/app/controllers/groups_controller_rb.html
new file mode 100644
index 00000000..905f17b3
--- /dev/null
+++ b/doc/code/files/app/controllers/groups_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ groups_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ groups_controller.rb
+
+
+ app/controllers/groups_controller.rb
+ Last modified: 2012-12-30 12:42:35 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/help_controller_rb.html b/doc/code/files/app/controllers/help_controller_rb.html
new file mode 100644
index 00000000..0c41c81e
--- /dev/null
+++ b/doc/code/files/app/controllers/help_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ help_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ help_controller.rb
+
+
+ app/controllers/help_controller.rb
+ Last modified: 2012-02-29 23:28:38 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/hooks_controller_rb.html b/doc/code/files/app/controllers/hooks_controller_rb.html
new file mode 100644
index 00000000..8182569b
--- /dev/null
+++ b/doc/code/files/app/controllers/hooks_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ hooks_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hooks_controller.rb
+
+
+ app/controllers/hooks_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/issues_controller_rb.html b/doc/code/files/app/controllers/issues_controller_rb.html
new file mode 100644
index 00000000..1c198695
--- /dev/null
+++ b/doc/code/files/app/controllers/issues_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ issues_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issues_controller.rb
+
+
+ app/controllers/issues_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/keys_controller_rb.html b/doc/code/files/app/controllers/keys_controller_rb.html
new file mode 100644
index 00000000..d88ed459
--- /dev/null
+++ b/doc/code/files/app/controllers/keys_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ keys_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ keys_controller.rb
+
+
+ app/controllers/keys_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/labels_controller_rb.html b/doc/code/files/app/controllers/labels_controller_rb.html
new file mode 100644
index 00000000..6b22a056
--- /dev/null
+++ b/doc/code/files/app/controllers/labels_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ labels_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ labels_controller.rb
+
+
+ app/controllers/labels_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/merge_requests_controller_rb.html b/doc/code/files/app/controllers/merge_requests_controller_rb.html
new file mode 100644
index 00000000..5dd462cc
--- /dev/null
+++ b/doc/code/files/app/controllers/merge_requests_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ merge_requests_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_requests_controller.rb
+
+
+ app/controllers/merge_requests_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/milestones_controller_rb.html b/doc/code/files/app/controllers/milestones_controller_rb.html
new file mode 100644
index 00000000..70eb9de7
--- /dev/null
+++ b/doc/code/files/app/controllers/milestones_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ milestones_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ milestones_controller.rb
+
+
+ app/controllers/milestones_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/notes_controller_rb.html b/doc/code/files/app/controllers/notes_controller_rb.html
new file mode 100644
index 00000000..67e846be
--- /dev/null
+++ b/doc/code/files/app/controllers/notes_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ notes_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ notes_controller.rb
+
+
+ app/controllers/notes_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/omniauth_callbacks_controller_rb.html b/doc/code/files/app/controllers/omniauth_callbacks_controller_rb.html
new file mode 100644
index 00000000..1b5e8fa0
--- /dev/null
+++ b/doc/code/files/app/controllers/omniauth_callbacks_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ omniauth_callbacks_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ omniauth_callbacks_controller.rb
+
+
+ app/controllers/omniauth_callbacks_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/profiles_controller_rb.html b/doc/code/files/app/controllers/profiles_controller_rb.html
new file mode 100644
index 00000000..0b085838
--- /dev/null
+++ b/doc/code/files/app/controllers/profiles_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ profiles_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ profiles_controller.rb
+
+
+ app/controllers/profiles_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/project_resource_controller_rb.html b/doc/code/files/app/controllers/project_resource_controller_rb.html
new file mode 100644
index 00000000..e17be7ab
--- /dev/null
+++ b/doc/code/files/app/controllers/project_resource_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ project_resource_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project_resource_controller.rb
+
+
+ app/controllers/project_resource_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/projects_controller_rb.html b/doc/code/files/app/controllers/projects_controller_rb.html
new file mode 100644
index 00000000..939eb71e
--- /dev/null
+++ b/doc/code/files/app/controllers/projects_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ projects_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ projects_controller.rb
+
+
+ app/controllers/projects_controller.rb
+ Last modified: 2012-12-30 13:33:32 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/protected_branches_controller_rb.html b/doc/code/files/app/controllers/protected_branches_controller_rb.html
new file mode 100644
index 00000000..1fca7134
--- /dev/null
+++ b/doc/code/files/app/controllers/protected_branches_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ protected_branches_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ protected_branches_controller.rb
+
+
+ app/controllers/protected_branches_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/refs_controller_rb.html b/doc/code/files/app/controllers/refs_controller_rb.html
new file mode 100644
index 00000000..207441f1
--- /dev/null
+++ b/doc/code/files/app/controllers/refs_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ refs_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ refs_controller.rb
+
+
+ app/controllers/refs_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/repositories_controller_rb.html b/doc/code/files/app/controllers/repositories_controller_rb.html
new file mode 100644
index 00000000..eab4dd4d
--- /dev/null
+++ b/doc/code/files/app/controllers/repositories_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ repositories_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ repositories_controller.rb
+
+
+ app/controllers/repositories_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/search_controller_rb.html b/doc/code/files/app/controllers/search_controller_rb.html
new file mode 100644
index 00000000..f47c3664
--- /dev/null
+++ b/doc/code/files/app/controllers/search_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ search_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ search_controller.rb
+
+
+ app/controllers/search_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/services_controller_rb.html b/doc/code/files/app/controllers/services_controller_rb.html
new file mode 100644
index 00000000..de836e79
--- /dev/null
+++ b/doc/code/files/app/controllers/services_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ services_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ services_controller.rb
+
+
+ app/controllers/services_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/snippets_controller_rb.html b/doc/code/files/app/controllers/snippets_controller_rb.html
new file mode 100644
index 00000000..662aef91
--- /dev/null
+++ b/doc/code/files/app/controllers/snippets_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ snippets_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ snippets_controller.rb
+
+
+ app/controllers/snippets_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/team_members_controller_rb.html b/doc/code/files/app/controllers/team_members_controller_rb.html
new file mode 100644
index 00000000..c4784ecc
--- /dev/null
+++ b/doc/code/files/app/controllers/team_members_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ team_members_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ team_members_controller.rb
+
+
+ app/controllers/team_members_controller.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/tree_controller_rb.html b/doc/code/files/app/controllers/tree_controller_rb.html
new file mode 100644
index 00000000..1a21f186
--- /dev/null
+++ b/doc/code/files/app/controllers/tree_controller_rb.html
@@ -0,0 +1,85 @@
+
+
+
+
+ tree_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tree_controller.rb
+
+
+ app/controllers/tree_controller.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
Controller for viewing a repository’s file structure
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/controllers/wikis_controller_rb.html b/doc/code/files/app/controllers/wikis_controller_rb.html
new file mode 100644
index 00000000..bbebf05f
--- /dev/null
+++ b/doc/code/files/app/controllers/wikis_controller_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ wikis_controller.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ wikis_controller.rb
+
+
+ app/controllers/wikis_controller.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/decorators/application_decorator_rb.html b/doc/code/files/app/decorators/application_decorator_rb.html
new file mode 100644
index 00000000..5998d46d
--- /dev/null
+++ b/doc/code/files/app/decorators/application_decorator_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ application_decorator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ application_decorator.rb
+
+
+ app/decorators/application_decorator.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/decorators/commit_decorator_rb.html b/doc/code/files/app/decorators/commit_decorator_rb.html
new file mode 100644
index 00000000..ef09e718
--- /dev/null
+++ b/doc/code/files/app/decorators/commit_decorator_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ commit_decorator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commit_decorator.rb
+
+
+ app/decorators/commit_decorator.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/decorators/event_decorator_rb.html b/doc/code/files/app/decorators/event_decorator_rb.html
new file mode 100644
index 00000000..156d6008
--- /dev/null
+++ b/doc/code/files/app/decorators/event_decorator_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ event_decorator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ event_decorator.rb
+
+
+ app/decorators/event_decorator.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/decorators/tree_decorator_rb.html b/doc/code/files/app/decorators/tree_decorator_rb.html
new file mode 100644
index 00000000..0ca1f9ee
--- /dev/null
+++ b/doc/code/files/app/decorators/tree_decorator_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ tree_decorator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tree_decorator.rb
+
+
+ app/decorators/tree_decorator.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/decorators/user_decorator_rb.html b/doc/code/files/app/decorators/user_decorator_rb.html
new file mode 100644
index 00000000..ab659f66
--- /dev/null
+++ b/doc/code/files/app/decorators/user_decorator_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ user_decorator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user_decorator.rb
+
+
+ app/decorators/user_decorator.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/application_helper_rb.html b/doc/code/files/app/helpers/application_helper_rb.html
new file mode 100644
index 00000000..72447215
--- /dev/null
+++ b/doc/code/files/app/helpers/application_helper_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ application_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ application_helper.rb
+
+
+ app/helpers/application_helper.rb
+ Last modified: 2012-12-30 13:49:26 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+ digest/md5
+
+ uri
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/commits_helper_rb.html b/doc/code/files/app/helpers/commits_helper_rb.html
new file mode 100644
index 00000000..4d78fca9
--- /dev/null
+++ b/doc/code/files/app/helpers/commits_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ commits_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commits_helper.rb
+
+
+ app/helpers/commits_helper.rb
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/dashboard_helper_rb.html b/doc/code/files/app/helpers/dashboard_helper_rb.html
new file mode 100644
index 00000000..31389328
--- /dev/null
+++ b/doc/code/files/app/helpers/dashboard_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ dashboard_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dashboard_helper.rb
+
+
+ app/helpers/dashboard_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/events_helper_rb.html b/doc/code/files/app/helpers/events_helper_rb.html
new file mode 100644
index 00000000..63903ce0
--- /dev/null
+++ b/doc/code/files/app/helpers/events_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ events_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ events_helper.rb
+
+
+ app/helpers/events_helper.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/gitlab_markdown_helper_rb.html b/doc/code/files/app/helpers/gitlab_markdown_helper_rb.html
new file mode 100644
index 00000000..9aada0e7
--- /dev/null
+++ b/doc/code/files/app/helpers/gitlab_markdown_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ gitlab_markdown_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gitlab_markdown_helper.rb
+
+
+ app/helpers/gitlab_markdown_helper.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/issues_helper_rb.html b/doc/code/files/app/helpers/issues_helper_rb.html
new file mode 100644
index 00000000..1e107ebf
--- /dev/null
+++ b/doc/code/files/app/helpers/issues_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ issues_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issues_helper.rb
+
+
+ app/helpers/issues_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/merge_requests_helper_rb.html b/doc/code/files/app/helpers/merge_requests_helper_rb.html
new file mode 100644
index 00000000..556caad9
--- /dev/null
+++ b/doc/code/files/app/helpers/merge_requests_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ merge_requests_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_requests_helper.rb
+
+
+ app/helpers/merge_requests_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/namespaces_helper_rb.html b/doc/code/files/app/helpers/namespaces_helper_rb.html
new file mode 100644
index 00000000..2fb5aa1d
--- /dev/null
+++ b/doc/code/files/app/helpers/namespaces_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ namespaces_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ namespaces_helper.rb
+
+
+ app/helpers/namespaces_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/notes_helper_rb.html b/doc/code/files/app/helpers/notes_helper_rb.html
new file mode 100644
index 00000000..a21a80fe
--- /dev/null
+++ b/doc/code/files/app/helpers/notes_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ notes_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ notes_helper.rb
+
+
+ app/helpers/notes_helper.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/profile_helper_rb.html b/doc/code/files/app/helpers/profile_helper_rb.html
new file mode 100644
index 00000000..d87776b9
--- /dev/null
+++ b/doc/code/files/app/helpers/profile_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ profile_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ profile_helper.rb
+
+
+ app/helpers/profile_helper.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/projects_helper_rb.html b/doc/code/files/app/helpers/projects_helper_rb.html
new file mode 100644
index 00000000..c388a481
--- /dev/null
+++ b/doc/code/files/app/helpers/projects_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ projects_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ projects_helper.rb
+
+
+ app/helpers/projects_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/snippets_helper_rb.html b/doc/code/files/app/helpers/snippets_helper_rb.html
new file mode 100644
index 00000000..697e590e
--- /dev/null
+++ b/doc/code/files/app/helpers/snippets_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ snippets_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ snippets_helper.rb
+
+
+ app/helpers/snippets_helper.rb
+ Last modified: 2011-12-02 02:40:22 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/tab_helper_rb.html b/doc/code/files/app/helpers/tab_helper_rb.html
new file mode 100644
index 00000000..5bb3d629
--- /dev/null
+++ b/doc/code/files/app/helpers/tab_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ tab_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tab_helper.rb
+
+
+ app/helpers/tab_helper.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/tags_helper_rb.html b/doc/code/files/app/helpers/tags_helper_rb.html
new file mode 100644
index 00000000..074e404c
--- /dev/null
+++ b/doc/code/files/app/helpers/tags_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ tags_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tags_helper.rb
+
+
+ app/helpers/tags_helper.rb
+ Last modified: 2011-12-02 02:40:22 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/helpers/tree_helper_rb.html b/doc/code/files/app/helpers/tree_helper_rb.html
new file mode 100644
index 00000000..2d7bac33
--- /dev/null
+++ b/doc/code/files/app/helpers/tree_helper_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ tree_helper.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tree_helper.rb
+
+
+ app/helpers/tree_helper.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/mailers/notify_rb.html b/doc/code/files/app/mailers/notify_rb.html
new file mode 100644
index 00000000..86e17f0f
--- /dev/null
+++ b/doc/code/files/app/mailers/notify_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ notify.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ notify.rb
+
+
+ app/mailers/notify.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/ability_rb.html b/doc/code/files/app/models/ability_rb.html
new file mode 100644
index 00000000..cf22c56a
--- /dev/null
+++ b/doc/code/files/app/models/ability_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ ability.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ability.rb
+
+
+ app/models/ability.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/commit_rb.html b/doc/code/files/app/models/commit_rb.html
new file mode 100644
index 00000000..f48c8a6c
--- /dev/null
+++ b/doc/code/files/app/models/commit_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ commit.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commit.rb
+
+
+ app/models/commit.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/event_rb.html b/doc/code/files/app/models/event_rb.html
new file mode 100644
index 00000000..0409518c
--- /dev/null
+++ b/doc/code/files/app/models/event_rb.html
@@ -0,0 +1,98 @@
+
+
+
+
+ event.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ event.rb
+
+
+ app/models/event.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: events
+
+
id :integer not null, primary key
+target_type :string(255)
+target_id :integer
+title :string(255)
+data :text
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+action :integer
+author_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+ CLASS
+ Event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/gitlab_ci_service_rb.html b/doc/code/files/app/models/gitlab_ci_service_rb.html
new file mode 100644
index 00000000..69849529
--- /dev/null
+++ b/doc/code/files/app/models/gitlab_ci_service_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ gitlab_ci_service.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gitlab_ci_service.rb
+
+
+ app/models/gitlab_ci_service.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: services
+
+
id :integer not null, primary key
+type :string(255)
+title :string(255)
+token :string(255)
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+active :boolean default(FALSE), not null
+project_url :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/group_rb.html b/doc/code/files/app/models/group_rb.html
new file mode 100644
index 00000000..9606ee7b
--- /dev/null
+++ b/doc/code/files/app/models/group_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ group.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ group.rb
+
+
+ app/models/group.rb
+ Last modified: 2012-12-30 14:25:46 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: namespaces
+
+
id :integer not null, primary key
+name :string(255) not null
+path :string(255) not null
+owner_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+ CLASS
+ Group
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/issue_rb.html b/doc/code/files/app/models/issue_rb.html
new file mode 100644
index 00000000..1cf1727c
--- /dev/null
+++ b/doc/code/files/app/models/issue_rb.html
@@ -0,0 +1,100 @@
+
+
+
+
+ issue.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue.rb
+
+
+ app/models/issue.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: issues
+
+
id :integer not null, primary key
+title :string(255)
+assignee_id :integer
+author_id :integer
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+closed :boolean default(FALSE), not null
+position :integer default(0)
+branch_name :string(255)
+description :text
+milestone_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+ CLASS
+ Issue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/key_rb.html b/doc/code/files/app/models/key_rb.html
new file mode 100644
index 00000000..8b703afe
--- /dev/null
+++ b/doc/code/files/app/models/key_rb.html
@@ -0,0 +1,104 @@
+
+
+
+
+ key.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ key.rb
+
+
+ app/models/key.rb
+ Last modified: 2012-12-27 12:10:59 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: keys
+
+
id :integer not null, primary key
+user_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+key :text
+title :string(255)
+identifier :string(255)
+project_id :integer
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/merge_request_rb.html b/doc/code/files/app/models/merge_request_rb.html
new file mode 100644
index 00000000..11fbed2e
--- /dev/null
+++ b/doc/code/files/app/models/merge_request_rb.html
@@ -0,0 +1,103 @@
+
+
+
+
+ merge_request.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_request.rb
+
+
+ app/models/merge_request.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: merge_requests
+
+
id :integer not null, primary key
+target_branch :string(255) not null
+source_branch :string(255) not null
+project_id :integer not null
+author_id :integer
+assignee_id :integer
+title :string(255)
+closed :boolean default(FALSE), not null
+created_at :datetime not null
+updated_at :datetime not null
+st_commits :text(2147483647)
+st_diffs :text(2147483647)
+merged :boolean default(FALSE), not null
+state :integer default(1), not null
+milestone_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/milestone_rb.html b/doc/code/files/app/models/milestone_rb.html
new file mode 100644
index 00000000..38ec8298
--- /dev/null
+++ b/doc/code/files/app/models/milestone_rb.html
@@ -0,0 +1,96 @@
+
+
+
+
+ milestone.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ milestone.rb
+
+
+ app/models/milestone.rb
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: milestones
+
+
id :integer not null, primary key
+title :string(255) not null
+project_id :integer not null
+description :text
+due_date :date
+closed :boolean default(FALSE), not null
+created_at :datetime not null
+updated_at :datetime not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/namespace_rb.html b/doc/code/files/app/models/namespace_rb.html
new file mode 100644
index 00000000..d0e97db6
--- /dev/null
+++ b/doc/code/files/app/models/namespace_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ namespace.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ namespace.rb
+
+
+ app/models/namespace.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: namespaces
+
+
id :integer not null, primary key
+name :string(255) not null
+path :string(255) not null
+owner_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/note_rb.html b/doc/code/files/app/models/note_rb.html
new file mode 100644
index 00000000..6c7a6e21
--- /dev/null
+++ b/doc/code/files/app/models/note_rb.html
@@ -0,0 +1,108 @@
+
+
+
+
+ note.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ note.rb
+
+
+ app/models/note.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: notes
+
+
id :integer not null, primary key
+note :text
+noteable_id :string(255)
+noteable_type :string(255)
+author_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+project_id :integer
+attachment :string(255)
+line_code :string(255)
+
+
+
+
+
+
+
+
Required Files
+
+
+ carrierwave/orm/activerecord
+
+ file_size_validator
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/project_hook_rb.html b/doc/code/files/app/models/project_hook_rb.html
new file mode 100644
index 00000000..8756e2a3
--- /dev/null
+++ b/doc/code/files/app/models/project_hook_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ project_hook.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project_hook.rb
+
+
+ app/models/project_hook.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/project_rb.html b/doc/code/files/app/models/project_rb.html
new file mode 100644
index 00000000..739bb5c7
--- /dev/null
+++ b/doc/code/files/app/models/project_rb.html
@@ -0,0 +1,115 @@
+
+
+
+
+ project.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project.rb
+
+
+ app/models/project.rb
+ Last modified: 2012-12-28 09:30:09 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: projects
+
+
id :integer not null, primary key
+name :string(255)
+path :string(255)
+description :text
+created_at :datetime not null
+updated_at :datetime not null
+private_flag :boolean default(TRUE), not null
+owner_id :integer
+default_branch :string(255)
+issues_enabled :boolean default(TRUE), not null
+wall_enabled :boolean default(TRUE), not null
+merge_requests_enabled :boolean default(TRUE), not null
+wiki_enabled :boolean default(TRUE), not null
+namespace_id :integer
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/protected_branch_rb.html b/doc/code/files/app/models/protected_branch_rb.html
new file mode 100644
index 00000000..496b4d21
--- /dev/null
+++ b/doc/code/files/app/models/protected_branch_rb.html
@@ -0,0 +1,93 @@
+
+
+
+
+ protected_branch.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ protected_branch.rb
+
+
+ app/models/protected_branch.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: protected_branches
+
+
id :integer not null, primary key
+project_id :integer not null
+name :string(255) not null
+created_at :datetime not null
+updated_at :datetime not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/service_hook_rb.html b/doc/code/files/app/models/service_hook_rb.html
new file mode 100644
index 00000000..7fa375a2
--- /dev/null
+++ b/doc/code/files/app/models/service_hook_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ service_hook.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ service_hook.rb
+
+
+ app/models/service_hook.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/service_rb.html b/doc/code/files/app/models/service_rb.html
new file mode 100644
index 00000000..47b0f7fc
--- /dev/null
+++ b/doc/code/files/app/models/service_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ service.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ service.rb
+
+
+ app/models/service.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: services
+
+
id :integer not null, primary key
+type :string(255)
+title :string(255)
+token :string(255)
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+active :boolean default(FALSE), not null
+project_url :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/snippet_rb.html b/doc/code/files/app/models/snippet_rb.html
new file mode 100644
index 00000000..96016354
--- /dev/null
+++ b/doc/code/files/app/models/snippet_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ snippet.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ snippet.rb
+
+
+ app/models/snippet.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: snippets
+
+
id :integer not null, primary key
+title :string(255)
+content :text
+author_id :integer not null
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+file_name :string(255)
+expires_at :datetime
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/system_hook_rb.html b/doc/code/files/app/models/system_hook_rb.html
new file mode 100644
index 00000000..edccffd9
--- /dev/null
+++ b/doc/code/files/app/models/system_hook_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ system_hook.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ system_hook.rb
+
+
+ app/models/system_hook.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/tree_rb.html b/doc/code/files/app/models/tree_rb.html
new file mode 100644
index 00000000..89ca7611
--- /dev/null
+++ b/doc/code/files/app/models/tree_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ tree.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tree.rb
+
+
+ app/models/tree.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/user_rb.html b/doc/code/files/app/models/user_rb.html
new file mode 100644
index 00000000..18a35e06
--- /dev/null
+++ b/doc/code/files/app/models/user_rb.html
@@ -0,0 +1,117 @@
+
+
+
+
+ user.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user.rb
+
+
+ app/models/user.rb
+ Last modified: 2012-12-30 13:40:45 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: users
+
+
id :integer not null, primary key
+email :string(255) default(""), not null
+encrypted_password :string(255) default(""), not null
+reset_password_token :string(255)
+reset_password_sent_at :datetime
+remember_created_at :datetime
+sign_in_count :integer default(0)
+current_sign_in_at :datetime
+last_sign_in_at :datetime
+current_sign_in_ip :string(255)
+last_sign_in_ip :string(255)
+created_at :datetime not null
+updated_at :datetime not null
+name :string(255)
+admin :boolean default(FALSE), not null
+projects_limit :integer default(10)
+skype :string(255) default(""), not null
+linkedin :string(255) default(""), not null
+twitter :string(255) default(""), not null
+authentication_token :string(255)
+dark_scheme :boolean default(FALSE), not null
+theme_id :integer default(1), not null
+bio :string(255)
+blocked :boolean default(FALSE), not null
+failed_attempts :integer default(0)
+locked_at :datetime
+extern_uid :string(255)
+provider :string(255)
+username :string(255)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/users_project_rb.html b/doc/code/files/app/models/users_project_rb.html
new file mode 100644
index 00000000..072ae905
--- /dev/null
+++ b/doc/code/files/app/models/users_project_rb.html
@@ -0,0 +1,94 @@
+
+
+
+
+ users_project.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ users_project.rb
+
+
+ app/models/users_project.rb
+ Last modified: 2012-12-30 14:27:12 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: users_projects
+
+
id :integer not null, primary key
+user_id :integer not null
+project_id :integer not null
+created_at :datetime not null
+updated_at :datetime not null
+project_access :integer default(0), not null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/web_hook_rb.html b/doc/code/files/app/models/web_hook_rb.html
new file mode 100644
index 00000000..0fc97423
--- /dev/null
+++ b/doc/code/files/app/models/web_hook_rb.html
@@ -0,0 +1,95 @@
+
+
+
+
+ web_hook.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ web_hook.rb
+
+
+ app/models/web_hook.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: web_hooks
+
+
id :integer not null, primary key
+url :string(255)
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+type :string(255) default("ProjectHook")
+service_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/models/wiki_rb.html b/doc/code/files/app/models/wiki_rb.html
new file mode 100644
index 00000000..57d5a2a2
--- /dev/null
+++ b/doc/code/files/app/models/wiki_rb.html
@@ -0,0 +1,96 @@
+
+
+
+
+ wiki.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ wiki.rb
+
+
+ app/models/wiki.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Table name: wikis
+
+
id :integer not null, primary key
+title :string(255)
+content :text
+project_id :integer
+created_at :datetime not null
+updated_at :datetime not null
+slug :string(255)
+user_id :integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/activity_observer_rb.html b/doc/code/files/app/observers/activity_observer_rb.html
new file mode 100644
index 00000000..2a78e1ab
--- /dev/null
+++ b/doc/code/files/app/observers/activity_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ activity_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ activity_observer.rb
+
+
+ app/observers/activity_observer.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/issue_observer_rb.html b/doc/code/files/app/observers/issue_observer_rb.html
new file mode 100644
index 00000000..7f373bac
--- /dev/null
+++ b/doc/code/files/app/observers/issue_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ issue_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue_observer.rb
+
+
+ app/observers/issue_observer.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/key_observer_rb.html b/doc/code/files/app/observers/key_observer_rb.html
new file mode 100644
index 00000000..9834dfc4
--- /dev/null
+++ b/doc/code/files/app/observers/key_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ key_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ key_observer.rb
+
+
+ app/observers/key_observer.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/merge_request_observer_rb.html b/doc/code/files/app/observers/merge_request_observer_rb.html
new file mode 100644
index 00000000..5b779474
--- /dev/null
+++ b/doc/code/files/app/observers/merge_request_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ merge_request_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_request_observer.rb
+
+
+ app/observers/merge_request_observer.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/note_observer_rb.html b/doc/code/files/app/observers/note_observer_rb.html
new file mode 100644
index 00000000..e5a0e03c
--- /dev/null
+++ b/doc/code/files/app/observers/note_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ note_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ note_observer.rb
+
+
+ app/observers/note_observer.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/project_observer_rb.html b/doc/code/files/app/observers/project_observer_rb.html
new file mode 100644
index 00000000..0a4b2b51
--- /dev/null
+++ b/doc/code/files/app/observers/project_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ project_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project_observer.rb
+
+
+ app/observers/project_observer.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/system_hook_observer_rb.html b/doc/code/files/app/observers/system_hook_observer_rb.html
new file mode 100644
index 00000000..53e351ef
--- /dev/null
+++ b/doc/code/files/app/observers/system_hook_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ system_hook_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ system_hook_observer.rb
+
+
+ app/observers/system_hook_observer.rb
+ Last modified: 2012-07-30 09:40:22 +0300
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/user_observer_rb.html b/doc/code/files/app/observers/user_observer_rb.html
new file mode 100644
index 00000000..d17f2409
--- /dev/null
+++ b/doc/code/files/app/observers/user_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ user_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user_observer.rb
+
+
+ app/observers/user_observer.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/observers/users_project_observer_rb.html b/doc/code/files/app/observers/users_project_observer_rb.html
new file mode 100644
index 00000000..e427fc5b
--- /dev/null
+++ b/doc/code/files/app/observers/users_project_observer_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ users_project_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ users_project_observer.rb
+
+
+ app/observers/users_project_observer.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/account_rb.html b/doc/code/files/app/roles/account_rb.html
new file mode 100644
index 00000000..9d8821be
--- /dev/null
+++ b/doc/code/files/app/roles/account_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ account.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ account.rb
+
+
+ app/roles/account.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/authority_rb.html b/doc/code/files/app/roles/authority_rb.html
new file mode 100644
index 00000000..d6d0437d
--- /dev/null
+++ b/doc/code/files/app/roles/authority_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ authority.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ authority.rb
+
+
+ app/roles/authority.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/git_host_rb.html b/doc/code/files/app/roles/git_host_rb.html
new file mode 100644
index 00000000..5a878fc0
--- /dev/null
+++ b/doc/code/files/app/roles/git_host_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ git_host.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ git_host.rb
+
+
+ app/roles/git_host.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/issue_commonality_rb.html b/doc/code/files/app/roles/issue_commonality_rb.html
new file mode 100644
index 00000000..bb787914
--- /dev/null
+++ b/doc/code/files/app/roles/issue_commonality_rb.html
@@ -0,0 +1,90 @@
+
+
+
+
+ issue_commonality.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issue_commonality.rb
+
+
+ app/roles/issue_commonality.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
Contains common functionality shared between Issues and MergeRequests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/namespaced_project_rb.html b/doc/code/files/app/roles/namespaced_project_rb.html
new file mode 100644
index 00000000..d15014b9
--- /dev/null
+++ b/doc/code/files/app/roles/namespaced_project_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ namespaced_project.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ namespaced_project.rb
+
+
+ app/roles/namespaced_project.rb
+ Last modified: 2012-12-26 10:56:36 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/note_event_rb.html b/doc/code/files/app/roles/note_event_rb.html
new file mode 100644
index 00000000..a32a7c94
--- /dev/null
+++ b/doc/code/files/app/roles/note_event_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ note_event.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ note_event.rb
+
+
+ app/roles/note_event.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/push_event_rb.html b/doc/code/files/app/roles/push_event_rb.html
new file mode 100644
index 00000000..6b0d320d
--- /dev/null
+++ b/doc/code/files/app/roles/push_event_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ push_event.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ push_event.rb
+
+
+ app/roles/push_event.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/push_observer_rb.html b/doc/code/files/app/roles/push_observer_rb.html
new file mode 100644
index 00000000..62203df1
--- /dev/null
+++ b/doc/code/files/app/roles/push_observer_rb.html
@@ -0,0 +1,88 @@
+
+
+
+
+ push_observer.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ push_observer.rb
+
+
+ app/roles/push_observer.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
Includes methods for handling Git Push events
+
+
Triggered by PostReceive
+job
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/repository_rb.html b/doc/code/files/app/roles/repository_rb.html
new file mode 100644
index 00000000..f9a847d6
--- /dev/null
+++ b/doc/code/files/app/roles/repository_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ repository.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ repository.rb
+
+
+ app/roles/repository.rb
+ Last modified: 2012-12-30 12:24:50 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/static_model_rb.html b/doc/code/files/app/roles/static_model_rb.html
new file mode 100644
index 00000000..c2355819
--- /dev/null
+++ b/doc/code/files/app/roles/static_model_rb.html
@@ -0,0 +1,91 @@
+
+
+
+
+ static_model.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ static_model.rb
+
+
+ app/roles/static_model.rb
+ Last modified: 2012-10-29 21:44:39 +0200
+
+
+
+
+
+
+
+
+
Provides an ActiveRecord-like interface to a model whose data is not
+persisted to a database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/team_rb.html b/doc/code/files/app/roles/team_rb.html
new file mode 100644
index 00000000..5517f98d
--- /dev/null
+++ b/doc/code/files/app/roles/team_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ team.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ team.rb
+
+
+ app/roles/team.rb
+ Last modified: 2012-12-30 14:26:37 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+ MODULE
+ Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/roles/votes_rb.html b/doc/code/files/app/roles/votes_rb.html
new file mode 100644
index 00000000..a11bf506
--- /dev/null
+++ b/doc/code/files/app/roles/votes_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ votes.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ votes.rb
+
+
+ app/roles/votes.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+ MODULE
+ Votes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/uploaders/attachment_uploader_rb.html b/doc/code/files/app/uploaders/attachment_uploader_rb.html
new file mode 100644
index 00000000..27680fa1
--- /dev/null
+++ b/doc/code/files/app/uploaders/attachment_uploader_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ attachment_uploader.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ attachment_uploader.rb
+
+
+ app/uploaders/attachment_uploader.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/workers/post_receive_rb.html b/doc/code/files/app/workers/post_receive_rb.html
new file mode 100644
index 00000000..fd4e73bf
--- /dev/null
+++ b/doc/code/files/app/workers/post_receive_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ post_receive.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ post_receive.rb
+
+
+ app/workers/post_receive.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/app/workers/system_hook_worker_rb.html b/doc/code/files/app/workers/system_hook_worker_rb.html
new file mode 100644
index 00000000..e62abde0
--- /dev/null
+++ b/doc/code/files/app/workers/system_hook_worker_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ system_hook_worker.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ system_hook_worker.rb
+
+
+ app/workers/system_hook_worker.rb
+ Last modified: 2012-07-30 09:40:23 +0300
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/application_rb.html b/doc/code/files/config/application_rb.html
new file mode 100644
index 00000000..385b7b2f
--- /dev/null
+++ b/doc/code/files/config/application_rb.html
@@ -0,0 +1,92 @@
+
+
+
+
+ application.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ application.rb
+
+
+ config/application.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/boot_rb.html b/doc/code/files/config/boot_rb.html
new file mode 100644
index 00000000..94a4a723
--- /dev/null
+++ b/doc/code/files/config/boot_rb.html
@@ -0,0 +1,78 @@
+
+
+
+
+ boot.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ boot.rb
+
+
+ config/boot.rb
+ Last modified: 2012-04-04 02:04:00 +0300
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+ rubygems
+
+ bundler/setup
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/environment_rb.html b/doc/code/files/config/environment_rb.html
new file mode 100644
index 00000000..2085b87a
--- /dev/null
+++ b/doc/code/files/config/environment_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ environment.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ environment.rb
+
+
+ config/environment.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
Load the rails application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/environments/development_rb.html b/doc/code/files/config/environments/development_rb.html
new file mode 100644
index 00000000..392c8250
--- /dev/null
+++ b/doc/code/files/config/environments/development_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ development.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ development.rb
+
+
+ config/environments/development.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/environments/production_rb.html b/doc/code/files/config/environments/production_rb.html
new file mode 100644
index 00000000..6911c723
--- /dev/null
+++ b/doc/code/files/config/environments/production_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ production.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ production.rb
+
+
+ config/environments/production.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/environments/test_rb.html b/doc/code/files/config/environments/test_rb.html
new file mode 100644
index 00000000..cfd57933
--- /dev/null
+++ b/doc/code/files/config/environments/test_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ test.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ test.rb
+
+
+ config/environments/test.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/1_settings_rb.html b/doc/code/files/config/initializers/1_settings_rb.html
new file mode 100644
index 00000000..3e007ff6
--- /dev/null
+++ b/doc/code/files/config/initializers/1_settings_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ 1_settings.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1_settings.rb
+
+
+ config/initializers/1_settings.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/2_app_rb.html b/doc/code/files/config/initializers/2_app_rb.html
new file mode 100644
index 00000000..de791415
--- /dev/null
+++ b/doc/code/files/config/initializers/2_app_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ 2_app.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2_app.rb
+
+
+ config/initializers/2_app.rb
+ Last modified: 2012-07-30 09:40:23 +0300
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/3_grit_ext_rb.html b/doc/code/files/config/initializers/3_grit_ext_rb.html
new file mode 100644
index 00000000..6b42df4c
--- /dev/null
+++ b/doc/code/files/config/initializers/3_grit_ext_rb.html
@@ -0,0 +1,78 @@
+
+
+
+
+ 3_grit_ext.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3_grit_ext.rb
+
+
+ config/initializers/3_grit_ext.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+ grit
+
+ pygments
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/4_resque_rb.html b/doc/code/files/config/initializers/4_resque_rb.html
new file mode 100644
index 00000000..a96dd91f
--- /dev/null
+++ b/doc/code/files/config/initializers/4_resque_rb.html
@@ -0,0 +1,93 @@
+
+
+
+
+ 4_resque.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4_resque.rb
+
+
+ config/initializers/4_resque.rb
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
Custom Redis configuration
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/5_backend_rb.html b/doc/code/files/config/initializers/5_backend_rb.html
new file mode 100644
index 00000000..caaaf0db
--- /dev/null
+++ b/doc/code/files/config/initializers/5_backend_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ 5_backend.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5_backend.rb
+
+
+ config/initializers/5_backend.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/backtrace_silencers_rb.html b/doc/code/files/config/initializers/backtrace_silencers_rb.html
new file mode 100644
index 00000000..65215d38
--- /dev/null
+++ b/doc/code/files/config/initializers/backtrace_silencers_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ backtrace_silencers.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ backtrace_silencers.rb
+
+
+ config/initializers/backtrace_silencers.rb
+ Last modified: 2011-12-02 02:40:22 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/carrierwave_rb.html b/doc/code/files/config/initializers/carrierwave_rb.html
new file mode 100644
index 00000000..88aa2eec
--- /dev/null
+++ b/doc/code/files/config/initializers/carrierwave_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ carrierwave.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ carrierwave.rb
+
+
+ config/initializers/carrierwave.rb
+ Last modified: 2012-02-29 23:28:39 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/connection_fix_rb.html b/doc/code/files/config/initializers/connection_fix_rb.html
new file mode 100644
index 00000000..936db6d6
--- /dev/null
+++ b/doc/code/files/config/initializers/connection_fix_rb.html
@@ -0,0 +1,103 @@
+
+
+
+
+ connection_fix.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ connection_fix.rb
+
+
+ config/initializers/connection_fix.rb
+ Last modified: 2012-07-02 23:07:19 +0300
+
+
+
+
+
+
+
+
+
from gist.github.com/238999
+
+
If your workers are inactive for a long period of time, they’ll lose their
+MySQL connection.
+
+
This hack ensures we re-connect whenever a connection is lost. Because,
+really. why not?
+
+
Stick this in RAILS_ROOT/config/initializers/connection_fix.rb (or
+somewhere similar)
+
+
From:
+
+
http://coderrr.wordpress.com/2009/01/08/activerecord-threading-issues-and-resolutions/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/devise_rb.html b/doc/code/files/config/initializers/devise_rb.html
new file mode 100644
index 00000000..596c954e
--- /dev/null
+++ b/doc/code/files/config/initializers/devise_rb.html
@@ -0,0 +1,83 @@
+
+
+
+
+ devise.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ devise.rb
+
+
+ config/initializers/devise.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
Use this hook to configure devise mailer, warden hooks and so forth. The
+first four configuration values can also be set straight in your models.
+
+
+
+
+
+
+
+
Required Files
+
+
+ devise/orm/active_record
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/gemoji_rb.html b/doc/code/files/config/initializers/gemoji_rb.html
new file mode 100644
index 00000000..0a015fb7
--- /dev/null
+++ b/doc/code/files/config/initializers/gemoji_rb.html
@@ -0,0 +1,75 @@
+
+
+
+
+ gemoji.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gemoji.rb
+
+
+ config/initializers/gemoji.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/inflections_rb.html b/doc/code/files/config/initializers/inflections_rb.html
new file mode 100644
index 00000000..7e3e29a5
--- /dev/null
+++ b/doc/code/files/config/initializers/inflections_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ inflections.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ inflections.rb
+
+
+ config/initializers/inflections.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/kaminari_config_rb.html b/doc/code/files/config/initializers/kaminari_config_rb.html
new file mode 100644
index 00000000..6160d25e
--- /dev/null
+++ b/doc/code/files/config/initializers/kaminari_config_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ kaminari_config.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kaminari_config.rb
+
+
+ config/initializers/kaminari_config.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/mime_types_rb.html b/doc/code/files/config/initializers/mime_types_rb.html
new file mode 100644
index 00000000..5853380f
--- /dev/null
+++ b/doc/code/files/config/initializers/mime_types_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ mime_types.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mime_types.rb
+
+
+ config/initializers/mime_types.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/passenger_fix_rb.html b/doc/code/files/config/initializers/passenger_fix_rb.html
new file mode 100644
index 00000000..de812d93
--- /dev/null
+++ b/doc/code/files/config/initializers/passenger_fix_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ passenger_fix.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ passenger_fix.rb
+
+
+ config/initializers/passenger_fix.rb
+ Last modified: 2012-12-27 12:08:52 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/postgresql_limit_fix_rb.html b/doc/code/files/config/initializers/postgresql_limit_fix_rb.html
new file mode 100644
index 00000000..e205ecf0
--- /dev/null
+++ b/doc/code/files/config/initializers/postgresql_limit_fix_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ postgresql_limit_fix.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ postgresql_limit_fix.rb
+
+
+ config/initializers/postgresql_limit_fix.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/secret_token_rb.html b/doc/code/files/config/initializers/secret_token_rb.html
new file mode 100644
index 00000000..8e4ed070
--- /dev/null
+++ b/doc/code/files/config/initializers/secret_token_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ secret_token.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ secret_token.rb
+
+
+ config/initializers/secret_token.rb
+ Last modified: 2011-12-02 02:40:22 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/session_store_rb.html b/doc/code/files/config/initializers/session_store_rb.html
new file mode 100644
index 00000000..7105222d
--- /dev/null
+++ b/doc/code/files/config/initializers/session_store_rb.html
@@ -0,0 +1,74 @@
+
+
+
+
+ session_store.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ session_store.rb
+
+
+ config/initializers/session_store.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/initializers/wrap_parameters_rb.html b/doc/code/files/config/initializers/wrap_parameters_rb.html
new file mode 100644
index 00000000..704f6f02
--- /dev/null
+++ b/doc/code/files/config/initializers/wrap_parameters_rb.html
@@ -0,0 +1,77 @@
+
+
+
+
+ wrap_parameters.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ wrap_parameters.rb
+
+
+ config/initializers/wrap_parameters.rb
+ Last modified: 2011-12-02 02:40:22 +0200
+
+
+
+
+
+
+
+
+
Be sure to restart your server when you modify this file.
+
+
This file contains settings for ActionController::ParamsWrapper which is
+enabled by default.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/routes_rb.html b/doc/code/files/config/routes_rb.html
new file mode 100644
index 00000000..df59e4d7
--- /dev/null
+++ b/doc/code/files/config/routes_rb.html
@@ -0,0 +1,78 @@
+
+
+
+
+ routes.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ routes.rb
+
+
+ config/routes.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+ api
+
+ resque/server
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/config/unicorn_rb.html b/doc/code/files/config/unicorn_rb.html
new file mode 100644
index 00000000..14da5f0e
--- /dev/null
+++ b/doc/code/files/config/unicorn_rb.html
@@ -0,0 +1,68 @@
+
+
+
+
+ unicorn.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ unicorn.rb
+
+
+ config/unicorn.rb
+ Last modified: 2012-03-31 15:35:21 +0300
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/entities_rb.html b/doc/code/files/lib/api/entities_rb.html
new file mode 100644
index 00000000..da20f2d3
--- /dev/null
+++ b/doc/code/files/lib/api/entities_rb.html
@@ -0,0 +1,159 @@
+
+
+
+
+ entities.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ entities.rb
+
+
+ lib/api/entities.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/helpers_rb.html b/doc/code/files/lib/api/helpers_rb.html
new file mode 100644
index 00000000..e8d05b92
--- /dev/null
+++ b/doc/code/files/lib/api/helpers_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ helpers.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ helpers.rb
+
+
+ lib/api/helpers.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/issues_rb.html b/doc/code/files/lib/api/issues_rb.html
new file mode 100644
index 00000000..5aac1d3f
--- /dev/null
+++ b/doc/code/files/lib/api/issues_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ issues.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ issues.rb
+
+
+ lib/api/issues.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/merge_requests_rb.html b/doc/code/files/lib/api/merge_requests_rb.html
new file mode 100644
index 00000000..3fdcf008
--- /dev/null
+++ b/doc/code/files/lib/api/merge_requests_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ merge_requests.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_requests.rb
+
+
+ lib/api/merge_requests.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/milestones_rb.html b/doc/code/files/lib/api/milestones_rb.html
new file mode 100644
index 00000000..a37be49c
--- /dev/null
+++ b/doc/code/files/lib/api/milestones_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ milestones.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ milestones.rb
+
+
+ lib/api/milestones.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/notes_rb.html b/doc/code/files/lib/api/notes_rb.html
new file mode 100644
index 00000000..3c540290
--- /dev/null
+++ b/doc/code/files/lib/api/notes_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ notes.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ notes.rb
+
+
+ lib/api/notes.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/projects_rb.html b/doc/code/files/lib/api/projects_rb.html
new file mode 100644
index 00000000..70af8a34
--- /dev/null
+++ b/doc/code/files/lib/api/projects_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ projects.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ projects.rb
+
+
+ lib/api/projects.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/session_rb.html b/doc/code/files/lib/api/session_rb.html
new file mode 100644
index 00000000..8faa1a53
--- /dev/null
+++ b/doc/code/files/lib/api/session_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ session.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ session.rb
+
+
+ lib/api/session.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api/users_rb.html b/doc/code/files/lib/api/users_rb.html
new file mode 100644
index 00000000..7bf16c73
--- /dev/null
+++ b/doc/code/files/lib/api/users_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ users.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ users.rb
+
+
+ lib/api/users.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/api_rb.html b/doc/code/files/lib/api_rb.html
new file mode 100644
index 00000000..48b1b65c
--- /dev/null
+++ b/doc/code/files/lib/api_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ api.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ api.rb
+
+
+ lib/api.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/event_filter_rb.html b/doc/code/files/lib/event_filter_rb.html
new file mode 100644
index 00000000..7f54400a
--- /dev/null
+++ b/doc/code/files/lib/event_filter_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ event_filter.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ event_filter.rb
+
+
+ lib/event_filter.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/extracts_path_rb.html b/doc/code/files/lib/extracts_path_rb.html
new file mode 100644
index 00000000..11a0dd2d
--- /dev/null
+++ b/doc/code/files/lib/extracts_path_rb.html
@@ -0,0 +1,91 @@
+
+
+
+
+ extracts_path.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extracts_path.rb
+
+
+ lib/extracts_path.rb
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
Module providing methods for dealing with separating a tree-ish string and
+a file path string when combined in a request parameter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/file_size_validator_rb.html b/doc/code/files/lib/file_size_validator_rb.html
new file mode 100644
index 00000000..985c23a5
--- /dev/null
+++ b/doc/code/files/lib/file_size_validator_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ file_size_validator.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ file_size_validator.rb
+
+
+ lib/file_size_validator.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/app_logger_rb.html b/doc/code/files/lib/gitlab/app_logger_rb.html
new file mode 100644
index 00000000..c53c4e86
--- /dev/null
+++ b/doc/code/files/lib/gitlab/app_logger_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ app_logger.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app_logger.rb
+
+
+ lib/gitlab/app_logger.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/auth_rb.html b/doc/code/files/lib/gitlab/auth_rb.html
new file mode 100644
index 00000000..651a1268
--- /dev/null
+++ b/doc/code/files/lib/gitlab/auth_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ auth.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auth.rb
+
+
+ lib/gitlab/auth.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/backend/gitolite_config_rb.html b/doc/code/files/lib/gitlab/backend/gitolite_config_rb.html
new file mode 100644
index 00000000..b66613c3
--- /dev/null
+++ b/doc/code/files/lib/gitlab/backend/gitolite_config_rb.html
@@ -0,0 +1,106 @@
+
+
+
+
+ gitolite_config.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gitolite_config.rb
+
+
+ lib/gitlab/backend/gitolite_config.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+ gitolite
+
+ timeout
+
+ fileutils
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/backend/gitolite_rb.html b/doc/code/files/lib/gitlab/backend/gitolite_rb.html
new file mode 100644
index 00000000..d1743456
--- /dev/null
+++ b/doc/code/files/lib/gitlab/backend/gitolite_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ gitolite.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gitolite.rb
+
+
+ lib/gitlab/backend/gitolite.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/backend/grack_auth_rb.html b/doc/code/files/lib/gitlab/backend/grack_auth_rb.html
new file mode 100644
index 00000000..db7541dd
--- /dev/null
+++ b/doc/code/files/lib/gitlab/backend/grack_auth_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ grack_auth.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ grack_auth.rb
+
+
+ lib/gitlab/backend/grack_auth.rb
+ Last modified: 2012-12-30 12:06:28 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/git_logger_rb.html b/doc/code/files/lib/gitlab/git_logger_rb.html
new file mode 100644
index 00000000..0e8e013f
--- /dev/null
+++ b/doc/code/files/lib/gitlab/git_logger_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ git_logger.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ git_logger.rb
+
+
+ lib/gitlab/git_logger.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/git_stats_rb.html b/doc/code/files/lib/gitlab/git_stats_rb.html
new file mode 100644
index 00000000..405a2c75
--- /dev/null
+++ b/doc/code/files/lib/gitlab/git_stats_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ git_stats.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ git_stats.rb
+
+
+ lib/gitlab/git_stats.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/graph/commit_rb.html b/doc/code/files/lib/gitlab/graph/commit_rb.html
new file mode 100644
index 00000000..1df6b794
--- /dev/null
+++ b/doc/code/files/lib/gitlab/graph/commit_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ commit.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ commit.rb
+
+
+ lib/gitlab/graph/commit.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/graph/json_builder_rb.html b/doc/code/files/lib/gitlab/graph/json_builder_rb.html
new file mode 100644
index 00000000..848bb0a1
--- /dev/null
+++ b/doc/code/files/lib/gitlab/graph/json_builder_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ json_builder.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ json_builder.rb
+
+
+ lib/gitlab/graph/json_builder.rb
+ Last modified: 2012-12-27 11:32:29 +0200
+
+
+
+
+
+
+
+
+
+
+
Required Files
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/inline_diff_rb.html b/doc/code/files/lib/gitlab/inline_diff_rb.html
new file mode 100644
index 00000000..708dcefc
--- /dev/null
+++ b/doc/code/files/lib/gitlab/inline_diff_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ inline_diff.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ inline_diff.rb
+
+
+ lib/gitlab/inline_diff.rb
+ Last modified: 2012-10-29 21:33:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/logger_rb.html b/doc/code/files/lib/gitlab/logger_rb.html
new file mode 100644
index 00000000..8924ca8a
--- /dev/null
+++ b/doc/code/files/lib/gitlab/logger_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ logger.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ logger.rb
+
+
+ lib/gitlab/logger.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/markdown_rb.html b/doc/code/files/lib/gitlab/markdown_rb.html
new file mode 100644
index 00000000..bd5f5e2e
--- /dev/null
+++ b/doc/code/files/lib/gitlab/markdown_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ markdown.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ markdown.rb
+
+
+ lib/gitlab/markdown.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/project_mover_rb.html b/doc/code/files/lib/gitlab/project_mover_rb.html
new file mode 100644
index 00000000..6acee13f
--- /dev/null
+++ b/doc/code/files/lib/gitlab/project_mover_rb.html
@@ -0,0 +1,97 @@
+
+
+
+
+ project_mover.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ project_mover.rb
+
+
+ lib/gitlab/project_mover.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
ProjectMover class
+
+
Used for moving project repositories from one subdir to another
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/regex_rb.html b/doc/code/files/lib/gitlab/regex_rb.html
new file mode 100644
index 00000000..dfdab455
--- /dev/null
+++ b/doc/code/files/lib/gitlab/regex_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ regex.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ regex.rb
+
+
+ lib/gitlab/regex.rb
+ Last modified: 2012-12-28 09:30:09 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/satellite/action_rb.html b/doc/code/files/lib/gitlab/satellite/action_rb.html
new file mode 100644
index 00000000..3c1e8448
--- /dev/null
+++ b/doc/code/files/lib/gitlab/satellite/action_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ action.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action.rb
+
+
+ lib/gitlab/satellite/action.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/satellite/edit_file_action_rb.html b/doc/code/files/lib/gitlab/satellite/edit_file_action_rb.html
new file mode 100644
index 00000000..e4a473ec
--- /dev/null
+++ b/doc/code/files/lib/gitlab/satellite/edit_file_action_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ edit_file_action.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ edit_file_action.rb
+
+
+ lib/gitlab/satellite/edit_file_action.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/satellite/merge_action_rb.html b/doc/code/files/lib/gitlab/satellite/merge_action_rb.html
new file mode 100644
index 00000000..6bbc8483
--- /dev/null
+++ b/doc/code/files/lib/gitlab/satellite/merge_action_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ merge_action.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ merge_action.rb
+
+
+ lib/gitlab/satellite/merge_action.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/satellite/satellite_rb.html b/doc/code/files/lib/gitlab/satellite/satellite_rb.html
new file mode 100644
index 00000000..54c513f7
--- /dev/null
+++ b/doc/code/files/lib/gitlab/satellite/satellite_rb.html
@@ -0,0 +1,89 @@
+
+
+
+
+ satellite.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ satellite.rb
+
+
+ lib/gitlab/satellite/satellite.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/seeder_rb.html b/doc/code/files/lib/gitlab/seeder_rb.html
new file mode 100644
index 00000000..f02fde65
--- /dev/null
+++ b/doc/code/files/lib/gitlab/seeder_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ seeder.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ seeder.rb
+
+
+ lib/gitlab/seeder.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/gitlab/theme_rb.html b/doc/code/files/lib/gitlab/theme_rb.html
new file mode 100644
index 00000000..97dccfd7
--- /dev/null
+++ b/doc/code/files/lib/gitlab/theme_rb.html
@@ -0,0 +1,84 @@
+
+
+
+
+ theme.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ theme.rb
+
+
+ lib/gitlab/theme.rb
+ Last modified: 2012-12-23 12:16:43 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/hooks/post-receive.html b/doc/code/files/lib/hooks/post-receive.html
new file mode 100644
index 00000000..a99c19fa
--- /dev/null
+++ b/doc/code/files/lib/hooks/post-receive.html
@@ -0,0 +1,86 @@
+
+
+
+
+ post-receive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ post-receive
+
+
+ lib/hooks/post-receive
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
#!/usr/bin/env bash
+
+
# This file was placed here by GitLab. It makes sure that your pushed
+commits # will be processed properly.
+
+
while read oldrev newrev ref do
+
+
+repo_path =%xpwd`
+env - i redis - cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > %rdev/ ull 2 > &1
+
+
+
done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/files/lib/redcarpet/render/gitlab_html_rb.html b/doc/code/files/lib/redcarpet/render/gitlab_html_rb.html
new file mode 100644
index 00000000..33bb541b
--- /dev/null
+++ b/doc/code/files/lib/redcarpet/render/gitlab_html_rb.html
@@ -0,0 +1,79 @@
+
+
+
+
+ gitlab_html.rb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gitlab_html.rb
+
+
+ lib/redcarpet/render/gitlab_html.rb
+ Last modified: 2012-12-23 14:02:47 +0200
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/code/i/arrows.png b/doc/code/i/arrows.png
new file mode 100755
index 00000000..e54060f4
Binary files /dev/null and b/doc/code/i/arrows.png differ
diff --git a/doc/code/i/results_bg.png b/doc/code/i/results_bg.png
new file mode 100755
index 00000000..199ba692
Binary files /dev/null and b/doc/code/i/results_bg.png differ
diff --git a/doc/code/i/tree_bg.png b/doc/code/i/tree_bg.png
new file mode 100755
index 00000000..7d236633
Binary files /dev/null and b/doc/code/i/tree_bg.png differ
diff --git a/doc/code/index.html b/doc/code/index.html
new file mode 100644
index 00000000..c7011386
--- /dev/null
+++ b/doc/code/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+ RDoc Documentation
+
+
+
+
+
+
diff --git a/doc/code/js/highlight.pack.js b/doc/code/js/highlight.pack.js
new file mode 100755
index 00000000..01b59273
--- /dev/null
+++ b/doc/code/js/highlight.pack.js
@@ -0,0 +1 @@
+var hljs=new function(){function l(o){return o.replace(/&/gm,"&").replace(/"}while(x.length||y.length){var u=t().splice(0,1)[0];v+=l(w.substr(q,u.offset-q));q=u.offset;if(u.event=="start"){v+=r(u.node);s.push(u.node)}else{if(u.event=="stop"){var p=s.length;do{p--;var o=s[p];v+=(""+o.nodeName.toLowerCase()+">")}while(o!=u.node);s.splice(p,1);while(p'+l(K[0])+""}else{M+=l(K[0])}O=N.lR.lastIndex;K=N.lR.exec(L)}M+=l(L.substr(O,L.length-O));return M}function J(r,L){if(L.sL&&d[L.sL]){var K=f(L.sL,r);s+=K.keyword_count;return K.value}else{return E(r,L)}}function H(L,r){var K=L.cN?'':"";if(L.rB){p+=K;L.buffer=""}else{if(L.eB){p+=l(r)+K;L.buffer=""}else{p+=K;L.buffer=r}}B.push(L);A+=L.r}function D(N,K,P){var Q=B[B.length-1];if(P){p+=J(Q.buffer+N,Q);return false}var L=y(K,Q);if(L){p+=J(Q.buffer+N,Q);H(L,K);return L.rB}var r=v(B.length-1,K);if(r){var M=Q.cN?" ":"";if(Q.rE){p+=J(Q.buffer+N,Q)+M}else{if(Q.eE){p+=J(Q.buffer+N,Q)+M+l(K)}else{p+=J(Q.buffer+N+K,Q)+M}}while(r>1){M=B[B.length-2].cN?"":"";p+=M;r--;B.length--}var O=B[B.length-1];B.length--;B[B.length-1].buffer="";if(O.starts){H(O.starts,"")}return Q.rE}if(w(K,Q)){throw"Illegal"}}var G=d[I];var B=[G.dM];var A=0;var s=0;var p="";try{var u=0;G.dM.buffer="";do{var x=q(C,u);var t=D(x[0],x[1],x[2]);u+=x[0].length;if(!t){u+=x[1].length}}while(!x[2]);if(B.length>1){throw"Illegal"}return{language:I,r:A,keyword_count:s,value:p}}catch(F){if(F=="Illegal"){return{language:null,r:0,keyword_count:0,value:l(C)}}else{throw F}}}function h(){function o(t,s,u){if(t.compiled){return}if(!u){t.bR=c(s,t.b?t.b:"\\B|\\b");if(!t.e&&!t.eW){t.e="\\B|\\b"}if(t.e){t.eR=c(s,t.e)}}if(t.i){t.iR=c(s,t.i)}if(t.r==undefined){t.r=1}if(t.k){t.lR=c(s,t.l||hljs.IR,true)}for(var r in t.k){if(!t.k.hasOwnProperty(r)){continue}if(t.k[r] instanceof Object){t.kG=t.k}else{t.kG={keyword:t.k}}break}if(!t.c){t.c=[]}t.compiled=true;for(var q=0;qx.keyword_count+x.r){x=u}if(u.keyword_count+u.r>w.keyword_count+w.r){x=w;w=u}}}var s=t.className;if(!s.match(w.language)){s=s?(s+" "+w.language):w.language}var o=b(t);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=k(o,b(q),A)}if(y){w.value=w.value.replace(/^((<[^>]+>|\t)+)/gm,function(B,E,D,C){return E.replace(/\t/g,y)})}if(p){w.value=w.value.replace(/\n/g," ")}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){var q=t.parentNode;var v=document.createElement("div");v.innerHTML=""+w.value+"
";t=v.firstChild.firstChild;v.firstChild.cN=q.cN;q.parentNode.replaceChild(v.firstChild,q)}else{t.innerHTML=w.value}t.className=s;t.dataset={};t.dataset.result={language:w.language,kw:w.keyword_count,re:w.r};if(x&&x.language){t.dataset.second_best={language:x.language,kw:x.keyword_count,re:x.r}}}function j(){if(j.called){return}j.called=true;e();var q=document.getElementsByTagName("pre");for(var o=0;o|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(o,r){var q={};for(var p in o){q[p]=o[p]}if(r){for(var p in r){q[p]=r[p]}}return q}}();hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.javascript={dM:{k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/.*?[^\\\\/]/[gim]*"}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@font-face",l:"[a-z-]+",k:{"font-face":1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"",r:10},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",rE:true,sL:"css"}},{cN:"tag",b:"
+
+
+
+
+
+
+
+
+ index
+
+
diff --git a/doc/code/panel/links.html b/doc/code/panel/links.html
new file mode 100644
index 00000000..5c356c74
--- /dev/null
+++ b/doc/code/panel/links.html
@@ -0,0 +1,314 @@
+
+ File index
+
+
+ app/assets/fonts/OFL.txt
+
+ app/contexts/base_context.rb
+
+ app/contexts/commit_load_context.rb
+
+ app/contexts/issues_bulk_update_context.rb
+
+ app/contexts/issues_list_context.rb
+
+ app/contexts/merge_requests_load_context.rb
+
+ app/contexts/notes/create_context.rb
+
+ app/contexts/notes/load_context.rb
+
+ app/contexts/project_update_context.rb
+
+ app/contexts/search_context.rb
+
+ app/contexts/test_hook_context.rb
+
+ app/controllers/admin/dashboard_controller.rb
+
+ app/controllers/admin/groups_controller.rb
+
+ app/controllers/admin/hooks_controller.rb
+
+ app/controllers/admin/logs_controller.rb
+
+ app/controllers/admin/projects_controller.rb
+
+ app/controllers/admin/resque_controller.rb
+
+ app/controllers/admin/team_members_controller.rb
+
+ app/controllers/admin/users_controller.rb
+
+ app/controllers/admin_controller.rb
+
+ app/controllers/application_controller.rb
+
+ app/controllers/blame_controller.rb
+
+ app/controllers/blob_controller.rb
+
+ app/controllers/commit_controller.rb
+
+ app/controllers/commits_controller.rb
+
+ app/controllers/compare_controller.rb
+
+ app/controllers/dashboard_controller.rb
+
+ app/controllers/deploy_keys_controller.rb
+
+ app/controllers/errors_controller.rb
+
+ app/controllers/groups_controller.rb
+
+ app/controllers/help_controller.rb
+
+ app/controllers/hooks_controller.rb
+
+ app/controllers/issues_controller.rb
+
+ app/controllers/keys_controller.rb
+
+ app/controllers/labels_controller.rb
+
+ app/controllers/merge_requests_controller.rb
+
+ app/controllers/milestones_controller.rb
+
+ app/controllers/notes_controller.rb
+
+ app/controllers/omniauth_callbacks_controller.rb
+
+ app/controllers/profiles_controller.rb
+
+ app/controllers/project_resource_controller.rb
+
+ app/controllers/projects_controller.rb
+
+ app/controllers/protected_branches_controller.rb
+
+ app/controllers/refs_controller.rb
+
+ app/controllers/repositories_controller.rb
+
+ app/controllers/search_controller.rb
+
+ app/controllers/services_controller.rb
+
+ app/controllers/snippets_controller.rb
+
+ app/controllers/team_members_controller.rb
+
+ app/controllers/tree_controller.rb
+
+ app/controllers/wikis_controller.rb
+
+ app/decorators/application_decorator.rb
+
+ app/decorators/commit_decorator.rb
+
+ app/decorators/event_decorator.rb
+
+ app/decorators/tree_decorator.rb
+
+ app/decorators/user_decorator.rb
+
+ app/helpers/application_helper.rb
+
+ app/helpers/commits_helper.rb
+
+ app/helpers/dashboard_helper.rb
+
+ app/helpers/events_helper.rb
+
+ app/helpers/gitlab_markdown_helper.rb
+
+ app/helpers/issues_helper.rb
+
+ app/helpers/merge_requests_helper.rb
+
+ app/helpers/namespaces_helper.rb
+
+ app/helpers/notes_helper.rb
+
+ app/helpers/profile_helper.rb
+
+ app/helpers/projects_helper.rb
+
+ app/helpers/snippets_helper.rb
+
+ app/helpers/tab_helper.rb
+
+ app/helpers/tags_helper.rb
+
+ app/helpers/tree_helper.rb
+
+ app/mailers/notify.rb
+
+ app/models/ability.rb
+
+ app/models/commit.rb
+
+ app/models/event.rb
+
+ app/models/gitlab_ci_service.rb
+
+ app/models/group.rb
+
+ app/models/issue.rb
+
+ app/models/key.rb
+
+ app/models/merge_request.rb
+
+ app/models/milestone.rb
+
+ app/models/namespace.rb
+
+ app/models/note.rb
+
+ app/models/project.rb
+
+ app/models/project_hook.rb
+
+ app/models/protected_branch.rb
+
+ app/models/service.rb
+
+ app/models/service_hook.rb
+
+ app/models/snippet.rb
+
+ app/models/system_hook.rb
+
+ app/models/tree.rb
+
+ app/models/user.rb
+
+ app/models/users_project.rb
+
+ app/models/web_hook.rb
+
+ app/models/wiki.rb
+
+ app/observers/activity_observer.rb
+
+ app/observers/issue_observer.rb
+
+ app/observers/key_observer.rb
+
+ app/observers/merge_request_observer.rb
+
+ app/observers/note_observer.rb
+
+ app/observers/project_observer.rb
+
+ app/observers/system_hook_observer.rb
+
+ app/observers/user_observer.rb
+
+ app/observers/users_project_observer.rb
+
+ app/roles/account.rb
+
+ app/roles/authority.rb
+
+ app/roles/git_host.rb
+
+ app/roles/issue_commonality.rb
+
+ app/roles/namespaced_project.rb
+
+ app/roles/note_event.rb
+
+ app/roles/push_event.rb
+
+ app/roles/push_observer.rb
+
+ app/roles/repository.rb
+
+ app/roles/static_model.rb
+
+ app/roles/team.rb
+
+ app/roles/votes.rb
+
+ app/uploaders/attachment_uploader.rb
+
+ app/workers/post_receive.rb
+
+ app/workers/system_hook_worker.rb
+
+ lib/api.rb
+
+ lib/api/entities.rb
+
+ lib/api/helpers.rb
+
+ lib/api/issues.rb
+
+ lib/api/merge_requests.rb
+
+ lib/api/milestones.rb
+
+ lib/api/notes.rb
+
+ lib/api/projects.rb
+
+ lib/api/session.rb
+
+ lib/api/users.rb
+
+ lib/event_filter.rb
+
+ lib/extracts_path.rb
+
+ lib/file_size_validator.rb
+
+ lib/gitlab/app_logger.rb
+
+ lib/gitlab/auth.rb
+
+ lib/gitlab/backend/gitolite.rb
+
+ lib/gitlab/backend/gitolite_config.rb
+
+ lib/gitlab/backend/grack_auth.rb
+
+ lib/gitlab/git_logger.rb
+
+ lib/gitlab/git_stats.rb
+
+ lib/gitlab/graph/commit.rb
+
+ lib/gitlab/graph/json_builder.rb
+
+ lib/gitlab/inline_diff.rb
+
+ lib/gitlab/logger.rb
+
+ lib/gitlab/markdown.rb
+
+ lib/gitlab/project_mover.rb
+
+ lib/gitlab/regex.rb
+
+ lib/gitlab/satellite/action.rb
+
+ lib/gitlab/satellite/edit_file_action.rb
+
+ lib/gitlab/satellite/merge_action.rb
+
+ lib/gitlab/satellite/satellite.rb
+
+ lib/gitlab/seeder.rb
+
+ lib/gitlab/theme.rb
+
+ lib/hooks/post-receive
+
+ lib/redcarpet/render/gitlab_html.rb
+
+
+
\ No newline at end of file
diff --git a/doc/code/panel/tree.js b/doc/code/panel/tree.js
new file mode 100644
index 00000000..eeb04922
--- /dev/null
+++ b/doc/code/panel/tree.js
@@ -0,0 +1 @@
+var tree = [["","","files",[["","","app",[["","","assets",[["","","fonts",[["OFL.txt","files/app/assets/fonts/OFL_txt.html","",[]]]]]],["","","contexts",[["base_context.rb","files/app/contexts/base_context_rb.html","",[]],["commit_load_context.rb","files/app/contexts/commit_load_context_rb.html","",[]],["issues_bulk_update_context.rb","files/app/contexts/issues_bulk_update_context_rb.html","",[]],["issues_list_context.rb","files/app/contexts/issues_list_context_rb.html","",[]],["merge_requests_load_context.rb","files/app/contexts/merge_requests_load_context_rb.html","",[]],["","","notes",[["create_context.rb","files/app/contexts/notes/create_context_rb.html","",[]],["load_context.rb","files/app/contexts/notes/load_context_rb.html","",[]]]],["project_update_context.rb","files/app/contexts/project_update_context_rb.html","",[]],["search_context.rb","files/app/contexts/search_context_rb.html","",[]],["test_hook_context.rb","files/app/contexts/test_hook_context_rb.html","",[]]]],["","","controllers",[["","","admin",[["dashboard_controller.rb","files/app/controllers/admin/dashboard_controller_rb.html","",[]],["groups_controller.rb","files/app/controllers/admin/groups_controller_rb.html","",[]],["hooks_controller.rb","files/app/controllers/admin/hooks_controller_rb.html","",[]],["logs_controller.rb","files/app/controllers/admin/logs_controller_rb.html","",[]],["projects_controller.rb","files/app/controllers/admin/projects_controller_rb.html","",[]],["resque_controller.rb","files/app/controllers/admin/resque_controller_rb.html","",[]],["team_members_controller.rb","files/app/controllers/admin/team_members_controller_rb.html","",[]],["users_controller.rb","files/app/controllers/admin/users_controller_rb.html","",[]]]],["admin_controller.rb","files/app/controllers/admin_controller_rb.html","",[]],["application_controller.rb","files/app/controllers/application_controller_rb.html","",[]],["blame_controller.rb","files/app/controllers/blame_controller_rb.html","",[]],["blob_controller.rb","files/app/controllers/blob_controller_rb.html","",[]],["commit_controller.rb","files/app/controllers/commit_controller_rb.html","",[]],["commits_controller.rb","files/app/controllers/commits_controller_rb.html","",[]],["compare_controller.rb","files/app/controllers/compare_controller_rb.html","",[]],["dashboard_controller.rb","files/app/controllers/dashboard_controller_rb.html","",[]],["deploy_keys_controller.rb","files/app/controllers/deploy_keys_controller_rb.html","",[]],["errors_controller.rb","files/app/controllers/errors_controller_rb.html","",[]],["groups_controller.rb","files/app/controllers/groups_controller_rb.html","",[]],["help_controller.rb","files/app/controllers/help_controller_rb.html","",[]],["hooks_controller.rb","files/app/controllers/hooks_controller_rb.html","",[]],["issues_controller.rb","files/app/controllers/issues_controller_rb.html","",[]],["keys_controller.rb","files/app/controllers/keys_controller_rb.html","",[]],["labels_controller.rb","files/app/controllers/labels_controller_rb.html","",[]],["merge_requests_controller.rb","files/app/controllers/merge_requests_controller_rb.html","",[]],["milestones_controller.rb","files/app/controllers/milestones_controller_rb.html","",[]],["notes_controller.rb","files/app/controllers/notes_controller_rb.html","",[]],["omniauth_callbacks_controller.rb","files/app/controllers/omniauth_callbacks_controller_rb.html","",[]],["profiles_controller.rb","files/app/controllers/profiles_controller_rb.html","",[]],["project_resource_controller.rb","files/app/controllers/project_resource_controller_rb.html","",[]],["projects_controller.rb","files/app/controllers/projects_controller_rb.html","",[]],["protected_branches_controller.rb","files/app/controllers/protected_branches_controller_rb.html","",[]],["refs_controller.rb","files/app/controllers/refs_controller_rb.html","",[]],["repositories_controller.rb","files/app/controllers/repositories_controller_rb.html","",[]],["search_controller.rb","files/app/controllers/search_controller_rb.html","",[]],["services_controller.rb","files/app/controllers/services_controller_rb.html","",[]],["snippets_controller.rb","files/app/controllers/snippets_controller_rb.html","",[]],["team_members_controller.rb","files/app/controllers/team_members_controller_rb.html","",[]],["tree_controller.rb","files/app/controllers/tree_controller_rb.html","",[]],["wikis_controller.rb","files/app/controllers/wikis_controller_rb.html","",[]]]],["","","decorators",[["application_decorator.rb","files/app/decorators/application_decorator_rb.html","",[]],["commit_decorator.rb","files/app/decorators/commit_decorator_rb.html","",[]],["event_decorator.rb","files/app/decorators/event_decorator_rb.html","",[]],["tree_decorator.rb","files/app/decorators/tree_decorator_rb.html","",[]],["user_decorator.rb","files/app/decorators/user_decorator_rb.html","",[]]]],["","","helpers",[["application_helper.rb","files/app/helpers/application_helper_rb.html","",[]],["commits_helper.rb","files/app/helpers/commits_helper_rb.html","",[]],["dashboard_helper.rb","files/app/helpers/dashboard_helper_rb.html","",[]],["events_helper.rb","files/app/helpers/events_helper_rb.html","",[]],["gitlab_markdown_helper.rb","files/app/helpers/gitlab_markdown_helper_rb.html","",[]],["issues_helper.rb","files/app/helpers/issues_helper_rb.html","",[]],["merge_requests_helper.rb","files/app/helpers/merge_requests_helper_rb.html","",[]],["namespaces_helper.rb","files/app/helpers/namespaces_helper_rb.html","",[]],["notes_helper.rb","files/app/helpers/notes_helper_rb.html","",[]],["profile_helper.rb","files/app/helpers/profile_helper_rb.html","",[]],["projects_helper.rb","files/app/helpers/projects_helper_rb.html","",[]],["snippets_helper.rb","files/app/helpers/snippets_helper_rb.html","",[]],["tab_helper.rb","files/app/helpers/tab_helper_rb.html","",[]],["tags_helper.rb","files/app/helpers/tags_helper_rb.html","",[]],["tree_helper.rb","files/app/helpers/tree_helper_rb.html","",[]]]],["","","mailers",[["notify.rb","files/app/mailers/notify_rb.html","",[]]]],["","","models",[["ability.rb","files/app/models/ability_rb.html","",[]],["commit.rb","files/app/models/commit_rb.html","",[]],["event.rb","files/app/models/event_rb.html","",[]],["gitlab_ci_service.rb","files/app/models/gitlab_ci_service_rb.html","",[]],["group.rb","files/app/models/group_rb.html","",[]],["issue.rb","files/app/models/issue_rb.html","",[]],["key.rb","files/app/models/key_rb.html","",[]],["merge_request.rb","files/app/models/merge_request_rb.html","",[]],["milestone.rb","files/app/models/milestone_rb.html","",[]],["namespace.rb","files/app/models/namespace_rb.html","",[]],["note.rb","files/app/models/note_rb.html","",[]],["project.rb","files/app/models/project_rb.html","",[]],["project_hook.rb","files/app/models/project_hook_rb.html","",[]],["protected_branch.rb","files/app/models/protected_branch_rb.html","",[]],["service.rb","files/app/models/service_rb.html","",[]],["service_hook.rb","files/app/models/service_hook_rb.html","",[]],["snippet.rb","files/app/models/snippet_rb.html","",[]],["system_hook.rb","files/app/models/system_hook_rb.html","",[]],["tree.rb","files/app/models/tree_rb.html","",[]],["user.rb","files/app/models/user_rb.html","",[]],["users_project.rb","files/app/models/users_project_rb.html","",[]],["web_hook.rb","files/app/models/web_hook_rb.html","",[]],["wiki.rb","files/app/models/wiki_rb.html","",[]]]],["","","observers",[["activity_observer.rb","files/app/observers/activity_observer_rb.html","",[]],["issue_observer.rb","files/app/observers/issue_observer_rb.html","",[]],["key_observer.rb","files/app/observers/key_observer_rb.html","",[]],["merge_request_observer.rb","files/app/observers/merge_request_observer_rb.html","",[]],["note_observer.rb","files/app/observers/note_observer_rb.html","",[]],["project_observer.rb","files/app/observers/project_observer_rb.html","",[]],["system_hook_observer.rb","files/app/observers/system_hook_observer_rb.html","",[]],["user_observer.rb","files/app/observers/user_observer_rb.html","",[]],["users_project_observer.rb","files/app/observers/users_project_observer_rb.html","",[]]]],["","","roles",[["account.rb","files/app/roles/account_rb.html","",[]],["authority.rb","files/app/roles/authority_rb.html","",[]],["git_host.rb","files/app/roles/git_host_rb.html","",[]],["issue_commonality.rb","files/app/roles/issue_commonality_rb.html","",[]],["namespaced_project.rb","files/app/roles/namespaced_project_rb.html","",[]],["note_event.rb","files/app/roles/note_event_rb.html","",[]],["push_event.rb","files/app/roles/push_event_rb.html","",[]],["push_observer.rb","files/app/roles/push_observer_rb.html","",[]],["repository.rb","files/app/roles/repository_rb.html","",[]],["static_model.rb","files/app/roles/static_model_rb.html","",[]],["team.rb","files/app/roles/team_rb.html","",[]],["votes.rb","files/app/roles/votes_rb.html","",[]]]],["","","uploaders",[["attachment_uploader.rb","files/app/uploaders/attachment_uploader_rb.html","",[]]]],["","","workers",[["post_receive.rb","files/app/workers/post_receive_rb.html","",[]],["system_hook_worker.rb","files/app/workers/system_hook_worker_rb.html","",[]]]]]],["","","lib",[["","","api",[["entities.rb","files/lib/api/entities_rb.html","",[]],["helpers.rb","files/lib/api/helpers_rb.html","",[]],["issues.rb","files/lib/api/issues_rb.html","",[]],["merge_requests.rb","files/lib/api/merge_requests_rb.html","",[]],["milestones.rb","files/lib/api/milestones_rb.html","",[]],["notes.rb","files/lib/api/notes_rb.html","",[]],["projects.rb","files/lib/api/projects_rb.html","",[]],["session.rb","files/lib/api/session_rb.html","",[]],["users.rb","files/lib/api/users_rb.html","",[]]]],["api.rb","files/lib/api_rb.html","",[]],["event_filter.rb","files/lib/event_filter_rb.html","",[]],["extracts_path.rb","files/lib/extracts_path_rb.html","",[]],["file_size_validator.rb","files/lib/file_size_validator_rb.html","",[]],["","","gitlab",[["app_logger.rb","files/lib/gitlab/app_logger_rb.html","",[]],["auth.rb","files/lib/gitlab/auth_rb.html","",[]],["","","backend",[["gitolite.rb","files/lib/gitlab/backend/gitolite_rb.html","",[]],["gitolite_config.rb","files/lib/gitlab/backend/gitolite_config_rb.html","",[]],["grack_auth.rb","files/lib/gitlab/backend/grack_auth_rb.html","",[]]]],["git_logger.rb","files/lib/gitlab/git_logger_rb.html","",[]],["git_stats.rb","files/lib/gitlab/git_stats_rb.html","",[]],["","","graph",[["commit.rb","files/lib/gitlab/graph/commit_rb.html","",[]],["json_builder.rb","files/lib/gitlab/graph/json_builder_rb.html","",[]]]],["inline_diff.rb","files/lib/gitlab/inline_diff_rb.html","",[]],["logger.rb","files/lib/gitlab/logger_rb.html","",[]],["markdown.rb","files/lib/gitlab/markdown_rb.html","",[]],["project_mover.rb","files/lib/gitlab/project_mover_rb.html","",[]],["regex.rb","files/lib/gitlab/regex_rb.html","",[]],["","","satellite",[["action.rb","files/lib/gitlab/satellite/action_rb.html","",[]],["edit_file_action.rb","files/lib/gitlab/satellite/edit_file_action_rb.html","",[]],["merge_action.rb","files/lib/gitlab/satellite/merge_action_rb.html","",[]],["satellite.rb","files/lib/gitlab/satellite/satellite_rb.html","",[]]]],["seeder.rb","files/lib/gitlab/seeder_rb.html","",[]],["theme.rb","files/lib/gitlab/theme_rb.html","",[]]]],["","","hooks",[["post-receive","files/lib/hooks/post-receive.html","",[]]]],["","","redcarpet",[["","","render",[["gitlab_html.rb","files/lib/redcarpet/render/gitlab_html_rb.html","",[]]]]]]]]]],["Ability","classes/Ability.html"," < Object",[]],["Account","classes/Account.html","",[]],["ActivityObserver","classes/ActivityObserver.html"," < ActiveRecord::Observer",[]],["Admin","classes/Admin.html","",[["DashboardController","classes/Admin/DashboardController.html"," < AdminController",[]],["GroupsController","classes/Admin/GroupsController.html"," < AdminController",[]],["HooksController","classes/Admin/HooksController.html"," < AdminController",[]],["LogsController","classes/Admin/LogsController.html"," < AdminController",[]],["ProjectsController","classes/Admin/ProjectsController.html"," < AdminController",[]],["ResqueController","classes/Admin/ResqueController.html"," < AdminController",[]],["TeamMembersController","classes/Admin/TeamMembersController.html"," < AdminController",[]],["UsersController","classes/Admin/UsersController.html"," < AdminController",[]]]],["AdminController","classes/AdminController.html"," < ApplicationController",[]],["ApplicationController","classes/ApplicationController.html"," < ActionController::Base",[]],["ApplicationDecorator","classes/ApplicationDecorator.html"," < Draper::Base",[]],["ApplicationHelper","classes/ApplicationHelper.html","",[]],["AttachmentUploader","classes/AttachmentUploader.html"," < CarrierWave::Uploader::Base",[]],["Authority","classes/Authority.html","",[]],["BaseContext","classes/BaseContext.html"," < Object",[]],["BlameController","classes/BlameController.html"," < ProjectResourceController",[]],["BlobController","classes/BlobController.html"," < ProjectResourceController",[]],["Commit","classes/Commit.html"," < Object",[]],["CommitController","classes/CommitController.html"," < ProjectResourceController",[]],["CommitDecorator","classes/CommitDecorator.html"," < ApplicationDecorator",[]],["CommitLoadContext","classes/CommitLoadContext.html"," < BaseContext",[]],["CommitsController","classes/CommitsController.html"," < ProjectResourceController",[]],["CommitsHelper","classes/CommitsHelper.html","",[]],["CompareController","classes/CompareController.html"," < ProjectResourceController",[]],["DashboardController","classes/DashboardController.html"," < ApplicationController",[]],["DashboardHelper","classes/DashboardHelper.html","",[]],["DeployKeysController","classes/DeployKeysController.html"," < ProjectResourceController",[]],["ErrorsController","classes/ErrorsController.html"," < ApplicationController",[]],["Event","classes/Event.html"," < ActiveRecord::Base",[]],["EventDecorator","classes/EventDecorator.html"," < ApplicationDecorator",[]],["EventFilter","classes/EventFilter.html"," < Object",[]],["EventsHelper","classes/EventsHelper.html","",[]],["ExtractsPath","classes/ExtractsPath.html","",[["InvalidPathError","classes/ExtractsPath/InvalidPathError.html"," < StandardError",[]]]],["FileSizeValidator","classes/FileSizeValidator.html"," < ActiveModel::EachValidator",[["Helper","classes/FileSizeValidator/Helper.html"," < Object",[]]]],["GitHost","classes/GitHost.html","",[]],["Gitlab","classes/Gitlab.html","",[["API","classes/Gitlab/API.html"," < Grape::API",[]],["APIHelpers","classes/Gitlab/APIHelpers.html","",[]],["AppLogger","classes/Gitlab/AppLogger.html"," < Gitlab::Logger",[]],["Auth","classes/Gitlab/Auth.html"," < Object",[]],["Entities","classes/Gitlab/Entities.html","",[["Hook","classes/Gitlab/Entities/Hook.html"," < Grape::Entity",[]],["Issue","classes/Gitlab/Entities/Issue.html"," < Grape::Entity",[]],["MRNote","classes/Gitlab/Entities/MRNote.html"," < Grape::Entity",[]],["MergeRequest","classes/Gitlab/Entities/MergeRequest.html"," < Grape::Entity",[]],["Milestone","classes/Gitlab/Entities/Milestone.html"," < Grape::Entity",[]],["Note","classes/Gitlab/Entities/Note.html"," < Grape::Entity",[]],["Project","classes/Gitlab/Entities/Project.html"," < Grape::Entity",[]],["ProjectMember","classes/Gitlab/Entities/ProjectMember.html"," < Gitlab::Entities::UserBasic",[]],["ProjectSnippet","classes/Gitlab/Entities/ProjectSnippet.html"," < Grape::Entity",[]],["RepoCommit","classes/Gitlab/Entities/RepoCommit.html"," < Grape::Entity",[]],["RepoObject","classes/Gitlab/Entities/RepoObject.html"," < Grape::Entity",[]],["SSHKey","classes/Gitlab/Entities/SSHKey.html"," < Grape::Entity",[]],["User","classes/Gitlab/Entities/User.html"," < Grape::Entity",[]],["UserBasic","classes/Gitlab/Entities/UserBasic.html"," < Grape::Entity",[]],["UserLogin","classes/Gitlab/Entities/UserLogin.html"," < Gitlab::Entities::UserBasic",[]]]],["GitLogger","classes/Gitlab/GitLogger.html"," < Gitlab::Logger",[]],["GitStats","classes/Gitlab/GitStats.html"," < Object",[]],["Gitolite","classes/Gitlab/Gitolite.html"," < Object",[["AccessDenied","classes/Gitlab/Gitolite/AccessDenied.html"," < StandardError",[]]]],["GitoliteConfig","classes/Gitlab/GitoliteConfig.html"," < Object",[["PullError","classes/Gitlab/GitoliteConfig/PullError.html"," < StandardError",[]],["PushError","classes/Gitlab/GitoliteConfig/PushError.html"," < StandardError",[]]]],["Graph","classes/Gitlab/Graph.html","",[["Commit","classes/Gitlab/Graph/Commit.html"," < Object",[]],["JsonBuilder","classes/Gitlab/Graph/JsonBuilder.html"," < Object",[]]]],["InlineDiff","classes/Gitlab/InlineDiff.html"," < Object",[]],["Issues","classes/Gitlab/Issues.html"," < Grape::API",[]],["Logger","classes/Gitlab/Logger.html"," < Logger",[]],["Markdown","classes/Gitlab/Markdown.html","",[]],["MergeRequests","classes/Gitlab/MergeRequests.html"," < Grape::API",[]],["Milestones","classes/Gitlab/Milestones.html"," < Grape::API",[]],["Notes","classes/Gitlab/Notes.html"," < Grape::API",[]],["ProjectMover","classes/Gitlab/ProjectMover.html"," < Object",[["ProjectMoveError","classes/Gitlab/ProjectMover/ProjectMoveError.html"," < StandardError",[]]]],["Projects","classes/Gitlab/Projects.html"," < Grape::API",[]],["Regex","classes/Gitlab/Regex.html","",[]],["Satellite","classes/Gitlab/Satellite.html","",[["Action","classes/Gitlab/Satellite/Action.html"," < Object",[]],["EditFileAction","classes/Gitlab/Satellite/EditFileAction.html"," < Action",[]],["MergeAction","classes/Gitlab/Satellite/MergeAction.html"," < Action",[]],["Satellite","classes/Gitlab/Satellite/Satellite.html"," < Object",[]]]],["Seeder","classes/Gitlab/Seeder.html"," < Object",[]],["Session","classes/Gitlab/Session.html"," < Grape::API",[]],["Theme","classes/Gitlab/Theme.html"," < Object",[]],["Users","classes/Gitlab/Users.html"," < Grape::API",[]]]],["GitlabCiService","classes/GitlabCiService.html"," < Service",[]],["GitlabMarkdownHelper","classes/GitlabMarkdownHelper.html","",[]],["Grack","classes/Grack.html","",[["Auth","classes/Grack/Auth.html"," < Rack::Auth::Basic",[]]]],["Group","classes/Group.html"," < Namespace",[]],["GroupsController","classes/GroupsController.html"," < ApplicationController",[]],["HelpController","classes/HelpController.html"," < ApplicationController",[]],["HooksController","classes/HooksController.html"," < ProjectResourceController",[]],["Issue","classes/Issue.html"," < ActiveRecord::Base",[]],["IssueCommonality","classes/IssueCommonality.html","",[["ClassMethods","classes/IssueCommonality/ClassMethods.html","",[]]]],["IssueObserver","classes/IssueObserver.html"," < ActiveRecord::Observer",[]],["IssuesBulkUpdateContext","classes/IssuesBulkUpdateContext.html"," < BaseContext",[]],["IssuesController","classes/IssuesController.html"," < ProjectResourceController",[]],["IssuesHelper","classes/IssuesHelper.html","",[]],["IssuesListContext","classes/IssuesListContext.html"," < BaseContext",[]],["Key","classes/Key.html"," < ActiveRecord::Base",[]],["KeyObserver","classes/KeyObserver.html"," < ActiveRecord::Observer",[]],["KeysController","classes/KeysController.html"," < ApplicationController",[]],["LabelsController","classes/LabelsController.html"," < ProjectResourceController",[]],["MergeRequest","classes/MergeRequest.html"," < ActiveRecord::Base",[]],["MergeRequestObserver","classes/MergeRequestObserver.html"," < ActiveRecord::Observer",[]],["MergeRequestsController","classes/MergeRequestsController.html"," < ProjectResourceController",[]],["MergeRequestsHelper","classes/MergeRequestsHelper.html","",[]],["MergeRequestsLoadContext","classes/MergeRequestsLoadContext.html"," < BaseContext",[]],["Milestone","classes/Milestone.html"," < ActiveRecord::Base",[]],["MilestonesController","classes/MilestonesController.html"," < ProjectResourceController",[]],["Namespace","classes/Namespace.html"," < ActiveRecord::Base",[]],["NamespacedProject","classes/NamespacedProject.html","",[]],["NamespacesHelper","classes/NamespacesHelper.html","",[]],["Note","classes/Note.html"," < ActiveRecord::Base",[]],["NoteEvent","classes/NoteEvent.html","",[]],["NoteObserver","classes/NoteObserver.html"," < ActiveRecord::Observer",[]],["Notes","classes/Notes.html","",[["CreateContext","classes/Notes/CreateContext.html"," < BaseContext",[]],["LoadContext","classes/Notes/LoadContext.html"," < BaseContext",[]]]],["NotesController","classes/NotesController.html"," < ProjectResourceController",[]],["NotesHelper","classes/NotesHelper.html","",[]],["Notify","classes/Notify.html"," < ActionMailer::Base",[]],["OmniauthCallbacksController","classes/OmniauthCallbacksController.html"," < Devise::OmniauthCallbacksController",[]],["PostReceive","classes/PostReceive.html"," < Object",[]],["ProfileHelper","classes/ProfileHelper.html","",[]],["ProfilesController","classes/ProfilesController.html"," < ApplicationController",[]],["Project","classes/Project.html"," < ActiveRecord::Base",[["TransferError","classes/Project/TransferError.html"," < StandardError",[]]]],["ProjectHook","classes/ProjectHook.html"," < WebHook",[]],["ProjectObserver","classes/ProjectObserver.html"," < ActiveRecord::Observer",[]],["ProjectResourceController","classes/ProjectResourceController.html"," < ApplicationController",[]],["ProjectUpdateContext","classes/ProjectUpdateContext.html"," < BaseContext",[]],["ProjectsController","classes/ProjectsController.html"," < ProjectResourceController",[]],["ProjectsHelper","classes/ProjectsHelper.html","",[]],["ProtectedBranch","classes/ProtectedBranch.html"," < ActiveRecord::Base",[]],["ProtectedBranchesController","classes/ProtectedBranchesController.html"," < ProjectResourceController",[]],["PushEvent","classes/PushEvent.html","",[]],["PushObserver","classes/PushObserver.html","",[]],["Redcarpet","classes/Redcarpet.html","",[["Render","classes/Redcarpet/Render.html","",[["GitlabHTML","classes/Redcarpet/Render/GitlabHTML.html"," < Redcarpet::Render::HTML",[]]]]]],["RefsController","classes/RefsController.html"," < ProjectResourceController",[]],["RepositoriesController","classes/RepositoriesController.html"," < ProjectResourceController",[]],["Repository","classes/Repository.html","",[]],["SearchContext","classes/SearchContext.html"," < Object",[]],["SearchController","classes/SearchController.html"," < ApplicationController",[]],["Service","classes/Service.html"," < ActiveRecord::Base",[]],["ServiceHook","classes/ServiceHook.html"," < WebHook",[]],["ServicesController","classes/ServicesController.html"," < ProjectResourceController",[]],["Snippet","classes/Snippet.html"," < ActiveRecord::Base",[]],["SnippetsController","classes/SnippetsController.html"," < ProjectResourceController",[]],["SnippetsHelper","classes/SnippetsHelper.html","",[]],["StaticModel","classes/StaticModel.html","",[["ClassMethods","classes/StaticModel/ClassMethods.html","",[]]]],["SystemHook","classes/SystemHook.html"," < WebHook",[]],["SystemHookObserver","classes/SystemHookObserver.html"," < ActiveRecord::Observer",[]],["SystemHookWorker","classes/SystemHookWorker.html"," < Object",[]],["TabHelper","classes/TabHelper.html","",[]],["TagsHelper","classes/TagsHelper.html","",[]],["Team","classes/Team.html","",[]],["TeamMembersController","classes/TeamMembersController.html"," < ProjectResourceController",[]],["TestHookContext","classes/TestHookContext.html"," < BaseContext",[]],["Tree","classes/Tree.html"," < Object",[]],["TreeController","classes/TreeController.html"," < ProjectResourceController",[]],["TreeDecorator","classes/TreeDecorator.html"," < ApplicationDecorator",[]],["TreeHelper","classes/TreeHelper.html","",[]],["User","classes/User.html"," < ActiveRecord::Base",[]],["UserDecorator","classes/UserDecorator.html"," < ApplicationDecorator",[]],["UserObserver","classes/UserObserver.html"," < ActiveRecord::Observer",[]],["UsersProject","classes/UsersProject.html"," < ActiveRecord::Base",[]],["UsersProjectObserver","classes/UsersProjectObserver.html"," < ActiveRecord::Observer",[]],["Votes","classes/Votes.html","",[]],["WebHook","classes/WebHook.html"," < ActiveRecord::Base",[]],["Wiki","classes/Wiki.html"," < ActiveRecord::Base",[]],["WikisController","classes/WikisController.html"," < ProjectResourceController",[]]]
\ No newline at end of file
diff --git a/lib/tasks/gitlab/generate_docs.rake b/lib/tasks/gitlab/generate_docs.rake
new file mode 100644
index 00000000..58795fac
--- /dev/null
+++ b/lib/tasks/gitlab/generate_docs.rake
@@ -0,0 +1,7 @@
+namespace :gitlab do
+ desc "GITLAB | Generate sdocs for project"
+ task generate_docs: :environment do
+ system("bundle exec sdoc -o doc/code app lib")
+ end
+end
+