Add Slack and JIRA services counts to Usage Data
This commit is contained in:
parent
b92d5135d8
commit
124ef7dd60
3 changed files with 42 additions and 6 deletions
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Add Slack and JIRA services counts to Usage Data
|
||||
merge_request:
|
||||
author:
|
|
@ -40,14 +40,13 @@ module Gitlab
|
|||
pages_domains: PagesDomain.count,
|
||||
projects: Project.count,
|
||||
projects_imported_from_github: Project.where(import_type: 'github').count,
|
||||
projects_prometheus_active: PrometheusService.active.count,
|
||||
protected_branches: ProtectedBranch.count,
|
||||
releases: Release.count,
|
||||
snippets: Snippet.count,
|
||||
todos: Todo.count,
|
||||
uploads: Upload.count,
|
||||
web_hooks: WebHook.count
|
||||
}
|
||||
}.merge(services_usage)
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -64,6 +63,18 @@ module Gitlab
|
|||
|
||||
usage_data
|
||||
end
|
||||
|
||||
def services_usage
|
||||
types = {
|
||||
JiraService: :projects_jira_active,
|
||||
SlackService: :projects_slack_notifications_active,
|
||||
SlackSlashCommandsService: :projects_slack_slash_active,
|
||||
PrometheusService: :projects_prometheus_active
|
||||
}
|
||||
|
||||
results = Service.unscoped.where(type: types.keys, active: true).group(:type).count
|
||||
results.each_with_object({}) { |(key, value), response| response[types[key.to_sym]] = value }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::UsageData do
|
||||
let!(:project) { create(:empty_project) }
|
||||
let!(:project2) { create(:empty_project) }
|
||||
let!(:board) { create(:board, project: project) }
|
||||
let(:projects) { create_list(:project, 3) }
|
||||
let!(:board) { create(:board, project: projects[0]) }
|
||||
|
||||
describe '#data' do
|
||||
before do
|
||||
create(:jira_service, project: projects[0])
|
||||
create(:jira_service, project: projects[1])
|
||||
create(:prometheus_service, project: projects[1])
|
||||
create(:service, project: projects[0], type: 'SlackSlashCommandsService', active: true)
|
||||
create(:service, project: projects[1], type: 'SlackService', active: true)
|
||||
create(:service, project: projects[2], type: 'SlackService', active: true)
|
||||
end
|
||||
|
||||
subject { described_class.data }
|
||||
|
||||
it "gathers usage data" do
|
||||
|
@ -25,7 +33,7 @@ describe Gitlab::UsageData do
|
|||
count_data = subject[:counts]
|
||||
|
||||
expect(count_data[:boards]).to eq(1)
|
||||
expect(count_data[:projects]).to eq(2)
|
||||
expect(count_data[:projects]).to eq(3)
|
||||
|
||||
expect(count_data.keys).to match_array(%i(
|
||||
boards
|
||||
|
@ -49,6 +57,9 @@ describe Gitlab::UsageData do
|
|||
notes
|
||||
projects
|
||||
projects_imported_from_github
|
||||
projects_jira_active
|
||||
projects_slack_notifications_active
|
||||
projects_slack_slash_active
|
||||
projects_prometheus_active
|
||||
pages_domains
|
||||
protected_branches
|
||||
|
@ -59,6 +70,16 @@ describe Gitlab::UsageData do
|
|||
web_hooks
|
||||
))
|
||||
end
|
||||
|
||||
it 'gathers projects data correctly' do
|
||||
count_data = subject[:counts]
|
||||
|
||||
expect(count_data[:projects]).to eq(3)
|
||||
expect(count_data[:projects_prometheus_active]).to eq(1)
|
||||
expect(count_data[:projects_jira_active]).to eq(2)
|
||||
expect(count_data[:projects_slack_notifications_active]).to eq(2)
|
||||
expect(count_data[:projects_slack_slash_active]).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#license_usage_data' do
|
||||
|
|
Loading…
Reference in a new issue