diff --git a/plugins/community_track/public/public b/plugins/community_track/public/public new file mode 120000 index 0000000..100628c --- /dev/null +++ b/plugins/community_track/public/public @@ -0,0 +1 @@ +/root/noosfero/config/plugins/community_track/public \ No newline at end of file diff --git a/plugins/serpro_integration/lib/ext/community.rb b/plugins/serpro_integration/lib/ext/community.rb index 33280d3..5c46b11 100644 --- a/plugins/serpro_integration/lib/ext/community.rb +++ b/plugins/serpro_integration/lib/ext/community.rb @@ -12,7 +12,7 @@ class Community attr_accessible :allow_unauthenticated_comments, :allow_gitlab_integration, :allow_sonar_integration, :allow_jenkins_integration, :serpro_integration_plugin_gitlab, :serpro_integration_plugin_jenkins, :serpro_integration_plugin_sonar - after_update :create_integration_projects + before_update :create_integration_projects def create_integration_projects return unless setting_changed?(:serpro_integration_plugin_gitlab) @@ -20,6 +20,7 @@ class Community if allow_gitlab_integration gitlab_integration = SerproIntegrationPlugin::GitlabIntegration.new(gitlab_host, gitlab_private_token) gitlab_project = gitlab_integration.create_gitlab_project(self) + serpro_integration_plugin_gitlab[:project_id] = gitlab_project.id if allow_jenkins_integration jenkins_integration = SerproIntegrationPlugin::JenkinsIntegration.new(jenkins_host, jenkins_private_token, jenkins_user) diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin.rb b/plugins/serpro_integration/lib/serpro_integration_plugin.rb index 455deff..96ed1ce 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin.rb @@ -11,8 +11,8 @@ class SerproIntegrationPlugin < Noosfero::Plugin #FIXME make this test # User could not have this block def self.extra_blocks - { SonarPlugin::SonarWidgetBlock => {:type => [Community] }, - SonarPlugin::SmileBlock => {:type => [Community] } + { SerproIntegrationPlugin::SonarWidgetBlock => {:type => [Community] }, + SerproIntegrationPlugin::SmileBlock => {:type => [Community] }, } end diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb index 2fb0d14..a5e4d06 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb @@ -15,7 +15,7 @@ class SerproIntegrationPlugin::GitlabIntegration def create_project(project_name, group) path_with_namespace = "#{group.name}/#{project_name}" #FIXME find project by namespace - project = @client.projects(:scope => :all).select do |project| + project = @client.get("/projects/search/#{project_name}").select do |project| project.path_with_namespace == path_with_namespace end.first diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_issues_block.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_issues_block.rb new file mode 100644 index 0000000..8a2d830 --- /dev/null +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_issues_block.rb @@ -0,0 +1,33 @@ +require 'open-uri' +require 'json' + +class SerproIntegrationPlugin::GitlabIssuesBlock < Block + + def self.description + _('Gitlab Issues') + end + + def help + _('This block list gitlab issues') + end + + #FIXME make this test + def content(args={}) + gitlab_integration = SerproIntegrationPlugin::GitlabIntegration.new(owner.gitlab_host, owner.gitlab_private_token) + issues = gitlab_integration.issues(owner) + block = self + proc do + render :file => 'blocks/gitlab_issues', :locals => {:issues => issues, :block => block} + end + #content_tag(:div, + # content_tag(:canvas, '', :id => smile_face_id, :width => '95%', :height => '95%' ) + + # "", + # :class => 'smile' + #) + end + + def cacheable? + false + end + +end diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/smile_block.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/smile_block.rb index c1cff00..5ec629f 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin/smile_block.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/smile_block.rb @@ -1,7 +1,7 @@ require 'open-uri' require 'json' -class SonarPlugin::SmileBlock < Block +class SerproIntegrationPlugin::SmileBlock < Block METRIC_SUCCESS_DENSITY = 'test_success_density' diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/sonar_widget_block.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/sonar_widget_block.rb index 3ba1e2b..91fb033 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin/sonar_widget_block.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/sonar_widget_block.rb @@ -1,4 +1,4 @@ -class SerproIntegrationrPlugin::SonarWidgetBlock < Block +class SerproIntegrationPlugin::SonarWidgetBlock < Block #FIXME make this test AVAILABLE_WIDGETS = { diff --git a/plugins/serpro_integration/views/blocks/_gitlab_issue.html.erb b/plugins/serpro_integration/views/blocks/_gitlab_issue.html.erb new file mode 100644 index 0000000..d198e8a --- /dev/null +++ b/plugins/serpro_integration/views/blocks/_gitlab_issue.html.erb @@ -0,0 +1,6 @@ +