gitlab-org--gitlab-foss/app/observers/project_observer.rb

55 lines
1.3 KiB
Ruby
Raw Normal View History

class ProjectObserver < BaseObserver
def after_create(project)
project.update_column(:last_activity_at, project.created_at)
return true if project.forked?
if project.import?
RepositoryImportWorker.perform_in(5.seconds, project.id)
else
GitlabShellWorker.perform_async(
:add_repository,
project.path_with_namespace
)
log_info("#{project.owner.name} created a new project \"#{project.name_with_namespace}\"")
end
if project.wiki_enabled?
begin
# force the creation of a wiki,
GollumWiki.new(project, project.owner).wiki
rescue GollumWiki::CouldNotCreateWikiError => ex
# Prevent project observer crash
# if failed to create wiki
nil
end
end
end
def after_update(project)
project.send_move_instructions if project.namespace_id_changed?
2013-05-24 17:07:19 -04:00
project.rename_repo if project.path_changed?
end
def before_destroy(project)
project.repository.expire_cache unless project.empty_repo?
end
def after_destroy(project)
2013-02-11 12:27:26 -05:00
GitlabShellWorker.perform_async(
2013-02-04 08:07:56 -05:00
:remove_repository,
project.path_with_namespace
2013-02-04 08:07:56 -05:00
)
2012-09-11 16:24:53 -04:00
GitlabShellWorker.perform_async(
:remove_repository,
project.path_with_namespace + ".wiki"
)
project.satellite.destroy
2012-09-11 16:24:53 -04:00
2013-02-04 08:07:56 -05:00
log_info("Project \"#{project.name}\" was removed")
2012-09-11 16:24:53 -04:00
end
end