Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/fixtures')
-rw-r--r--spec/fixtures/achievements.yml10
-rw-r--r--spec/fixtures/api/schemas/entities/diff_viewer.json6
-rw-r--r--spec/fixtures/api/schemas/graphql/container_repository.json46
-rw-r--r--spec/fixtures/api/schemas/graphql/container_repository_details.json31
-rw-r--r--spec/fixtures/api/schemas/group_link/group_group_link.json36
-rw-r--r--spec/fixtures/api/schemas/group_link/group_link.json12
-rw-r--r--spec/fixtures/api/schemas/group_link/project_group_link.json31
-rw-r--r--spec/fixtures/api/schemas/ml/get_model.json6
-rw-r--r--spec/fixtures/api/schemas/ml/get_model_version.json75
-rw-r--r--spec/fixtures/api/schemas/ml/list_models.json53
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/project_hook.json4
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/project_repository_storage_move.json33
-rw-r--r--spec/fixtures/api/schemas/public_api/v4/snippet_repository_storage_move.json33
-rw-r--r--spec/fixtures/click_house/migrations/migrations_over_multiple_databases/1_create_some_table_on_main_db.rb15
-rw-r--r--spec/fixtures/click_house/migrations/migrations_over_multiple_databases/2_create_some_table_on_another_db.rb16
-rw-r--r--spec/fixtures/click_house/migrations/migrations_over_multiple_databases/3_change_some_table_on_main_db.rb11
-rw-r--r--spec/fixtures/click_house/migrations/table_creation_with_down_method/2_create_another_table.rb (renamed from spec/fixtures/click_house/migrations/plain_table_creation_on_invalid_database/1_create_some_table.rb)12
-rw-r--r--spec/fixtures/csv_complex.csv4
-rw-r--r--spec/fixtures/csv_gitlab_export.csv2
-rw-r--r--spec/fixtures/importers/bitbucket_server/activities.json2246
-rw-r--r--spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml14
-rw-r--r--spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml20
-rw-r--r--spec/fixtures/scripts/internal_events/events/keyboard_smashed_event.yml20
-rw-r--r--spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml20
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml25
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml25
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml25
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml28
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml28
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml31
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml31
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/total_single_event.yml27
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml28
-rw-r--r--spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml28
-rw-r--r--spec/fixtures/scripts/internal_events/new_events.yml183
-rw-r--r--spec/fixtures/scripts/internal_events/new_metrics.yml196
-rw-r--r--spec/fixtures/scripts/internal_events/stages.yml78
37 files changed, 2288 insertions, 1201 deletions
diff --git a/spec/fixtures/achievements.yml b/spec/fixtures/achievements.yml
deleted file mode 100644
index a24cf42413b..00000000000
--- a/spec/fixtures/achievements.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-table_name: achievements
-classes:
-- Achievements::Achievement
-feature_categories:
-- feature_category_example
-description: Achievements which can be created by namespaces to award them to users
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105871
-milestone: '15.7'
-gitlab_schema: gitlab_main
diff --git a/spec/fixtures/api/schemas/entities/diff_viewer.json b/spec/fixtures/api/schemas/entities/diff_viewer.json
index b16f8d8b1a2..6fa1604e505 100644
--- a/spec/fixtures/api/schemas/entities/diff_viewer.json
+++ b/spec/fixtures/api/schemas/entities/diff_viewer.json
@@ -26,6 +26,12 @@
"boolean"
]
},
+ "generated": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
"whitespace_only": {
"type": [
"boolean",
diff --git a/spec/fixtures/api/schemas/graphql/container_repository.json b/spec/fixtures/api/schemas/graphql/container_repository.json
index 2bb598a14cb..95cc5e28b34 100644
--- a/spec/fixtures/api/schemas/graphql/container_repository.json
+++ b/spec/fixtures/api/schemas/graphql/container_repository.json
@@ -1,6 +1,19 @@
{
"type": "object",
- "required": ["id", "name", "path", "location", "createdAt", "updatedAt", "tagsCount", "canDelete", "expirationPolicyCleanupStatus", "project", "lastCleanupDeletedTagsCount"],
+ "required": [
+ "id",
+ "name",
+ "path",
+ "location",
+ "createdAt",
+ "updatedAt",
+ "tagsCount",
+ "canDelete",
+ "expirationPolicyCleanupStatus",
+ "project",
+ "lastCleanupDeletedTagsCount",
+ "userPermissions"
+ ],
"properties": {
"id": {
"type": "string"
@@ -21,10 +34,16 @@
"type": "string"
},
"expirationPolicyStartedAt": {
- "type": ["string", "null"]
+ "type": [
+ "string",
+ "null"
+ ]
},
"status": {
- "type": ["string", "null"]
+ "type": [
+ "string",
+ "null"
+ ]
},
"tagsCount": {
"type": "integer"
@@ -34,13 +53,30 @@
},
"expirationPolicyCleanupStatus": {
"type": "string",
- "enum": ["UNSCHEDULED", "SCHEDULED", "UNFINISHED", "ONGOING"]
+ "enum": [
+ "UNSCHEDULED",
+ "SCHEDULED",
+ "UNFINISHED",
+ "ONGOING"
+ ]
},
"project": {
"type": "object"
},
"lastCleanupDeletedTagsCount": {
- "type": ["string", "null"]
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "userPermissions": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "destroyContainerRepository": {
+ "type": "boolean"
+ }
+ }
}
}
}
diff --git a/spec/fixtures/api/schemas/graphql/container_repository_details.json b/spec/fixtures/api/schemas/graphql/container_repository_details.json
index 3156b6d58d5..dccdd85274d 100644
--- a/spec/fixtures/api/schemas/graphql/container_repository_details.json
+++ b/spec/fixtures/api/schemas/graphql/container_repository_details.json
@@ -1,17 +1,31 @@
{
"type": "object",
- "required": ["tags"],
- "allOf": [{ "$ref": "./container_repository.json" }],
+ "required": [
+ "tags"
+ ],
+ "allOf": [
+ {
+ "$ref": "./container_repository.json"
+ }
+ ],
"properties": {
"tags": {
"type": "object",
- "required": ["nodes"],
+ "required": [
+ "nodes"
+ ],
"properties": {
"nodes": {
"type": "array",
"items": {
"type": "object",
- "required": ["name", "path", "location", "canDelete"],
+ "required": [
+ "name",
+ "path",
+ "location",
+ "canDelete",
+ "userPermissions"
+ ],
"properties": {
"name": {
"type": "string"
@@ -39,6 +53,15 @@
},
"canDelete": {
"type": "boolean"
+ },
+ "userPermissions": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "destroyContainerRepositoryTag": {
+ "type": "boolean"
+ }
+ }
}
}
}
diff --git a/spec/fixtures/api/schemas/group_link/group_group_link.json b/spec/fixtures/api/schemas/group_link/group_group_link.json
index 689679cbc0f..d67fdaaf762 100644
--- a/spec/fixtures/api/schemas/group_link/group_group_link.json
+++ b/spec/fixtures/api/schemas/group_link/group_group_link.json
@@ -1,21 +1,45 @@
{
"type": "object",
"allOf": [
- { "$ref": "group_link.json" },
+ {
+ "$ref": "group_link.json"
+ },
{
"required": [
- "source"
+ "source",
+ "valid_roles",
+ "can_update",
+ "can_remove"
],
"properties": {
"source": {
"type": "object",
- "required": ["id", "full_name", "web_url"],
+ "required": [
+ "id",
+ "full_name",
+ "web_url"
+ ],
"properties": {
- "id": { "type": "integer" },
- "full_name": { "type": "string" },
- "web_url": { "type": "string" }
+ "id": {
+ "type": "integer"
+ },
+ "full_name": {
+ "type": "string"
+ },
+ "web_url": {
+ "type": "string"
+ }
},
"additionalProperties": false
+ },
+ "valid_roles": {
+ "type": "object"
+ },
+ "can_update": {
+ "type": "boolean"
+ },
+ "can_remove": {
+ "type": "boolean"
}
}
}
diff --git a/spec/fixtures/api/schemas/group_link/group_link.json b/spec/fixtures/api/schemas/group_link/group_link.json
index 4db38952ecc..421864b2bd7 100644
--- a/spec/fixtures/api/schemas/group_link/group_link.json
+++ b/spec/fixtures/api/schemas/group_link/group_link.json
@@ -5,9 +5,6 @@
"created_at",
"expires_at",
"access_level",
- "valid_roles",
- "can_update",
- "can_remove",
"is_direct_member"
],
"properties": {
@@ -41,9 +38,6 @@
},
"additionalProperties": false
},
- "valid_roles": {
- "type": "object"
- },
"is_shared_with_group_private": {
"type": "boolean"
},
@@ -82,12 +76,6 @@
},
"additionalProperties": false
},
- "can_update": {
- "type": "boolean"
- },
- "can_remove": {
- "type": "boolean"
- },
"is_direct_member": {
"type": "boolean"
}
diff --git a/spec/fixtures/api/schemas/group_link/project_group_link.json b/spec/fixtures/api/schemas/group_link/project_group_link.json
index 615c808e5aa..854ae3c8693 100644
--- a/spec/fixtures/api/schemas/group_link/project_group_link.json
+++ b/spec/fixtures/api/schemas/group_link/project_group_link.json
@@ -1,20 +1,41 @@
{
"type": "object",
"allOf": [
- { "$ref": "group_link.json" },
+ {
+ "$ref": "group_link.json"
+ },
{
"required": [
- "source"
+ "source",
+ "valid_roles",
+ "can_update",
+ "can_remove"
],
"properties": {
"source": {
"type": "object",
- "required": ["id", "full_name"],
+ "required": [
+ "id",
+ "full_name"
+ ],
"properties": {
- "id": { "type": "integer" },
- "full_name": { "type": "string" }
+ "id": {
+ "type": "integer"
+ },
+ "full_name": {
+ "type": "string"
+ }
},
"additionalProperties": false
+ },
+ "valid_roles": {
+ "type": "object"
+ },
+ "can_update": {
+ "type": "boolean"
+ },
+ "can_remove": {
+ "type": "boolean"
}
}
}
diff --git a/spec/fixtures/api/schemas/ml/get_model.json b/spec/fixtures/api/schemas/ml/get_model.json
index 6b7ced6845b..2e97fab5134 100644
--- a/spec/fixtures/api/schemas/ml/get_model.json
+++ b/spec/fixtures/api/schemas/ml/get_model.json
@@ -19,13 +19,13 @@
"type": "string"
},
"user_id": {
- "type": "integer"
+ "type": "string"
},
"creation_timestamp": {
- "type": "string"
+ "type": "integer"
},
"last_updated_timestamp": {
- "type": "string"
+ "type": "integer"
},
"tags": {
"type": "array",
diff --git a/spec/fixtures/api/schemas/ml/get_model_version.json b/spec/fixtures/api/schemas/ml/get_model_version.json
new file mode 100644
index 00000000000..214c993ed73
--- /dev/null
+++ b/spec/fixtures/api/schemas/ml/get_model_version.json
@@ -0,0 +1,75 @@
+{
+ "type": "object",
+ "required": [
+ "model_version"
+ ],
+ "properties": {
+ "model_version": {
+ "type": "object",
+ "required": [
+ "name",
+ "version",
+ "creation_timestamp",
+ "last_updated_timestamp",
+ "user_id",
+ "current_stage",
+ "description",
+ "source",
+ "run_id",
+ "status",
+ "status_message",
+ "metadata",
+ "run_link",
+ "aliases"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "creation_timestamp": {
+ "type": "integer"
+ },
+ "last_updated_timestamp": {
+ "type": "integer"
+ },
+ "user_id": {
+ "type": "null"
+ },
+ "current_stage": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "run_id": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "status_message": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ }
+ },
+ "run_link": {
+ "type": "string"
+ },
+ "aliases": {
+ "type": "array",
+ "items": {
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/spec/fixtures/api/schemas/ml/list_models.json b/spec/fixtures/api/schemas/ml/list_models.json
new file mode 100644
index 00000000000..eaeaa268dde
--- /dev/null
+++ b/spec/fixtures/api/schemas/ml/list_models.json
@@ -0,0 +1,53 @@
+{
+ "type": "object",
+ "required": [
+ "registered_models",
+ "next_page_token"
+ ],
+ "properties": {
+ "registered_models": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "user_id": {
+ "type": "string"
+ },
+ "creation_timestamp": {
+ "type": "integer"
+ },
+ "last_updated_timestamp": {
+ "type": "integer"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/spec/fixtures/api/schemas/public_api/v4/project_hook.json b/spec/fixtures/api/schemas/public_api/v4/project_hook.json
index b89f5af8078..c42a4cad712 100644
--- a/spec/fixtures/api/schemas/public_api/v4/project_hook.json
+++ b/spec/fixtures/api/schemas/public_api/v4/project_hook.json
@@ -22,9 +22,11 @@
"releases_events",
"alert_status",
"disabled_until",
- "url_variables",
"emoji_events"
],
+ "optional": [
+ "url_variables"
+ ],
"properties": {
"id": {
"type": "integer"
diff --git a/spec/fixtures/api/schemas/public_api/v4/project_repository_storage_move.json b/spec/fixtures/api/schemas/public_api/v4/project_repository_storage_move.json
index cfaa1c28bb7..21f466bc418 100644
--- a/spec/fixtures/api/schemas/public_api/v4/project_repository_storage_move.json
+++ b/spec/fixtures/api/schemas/public_api/v4/project_repository_storage_move.json
@@ -8,13 +8,32 @@
"destination_storage_name",
"project"
],
- "properties" : {
- "id": { "type": "integer" },
- "created_at": { "type": "string", "format": "date-time" },
- "state": { "type": "string" },
- "source_storage_name": { "type": "string" },
- "destination_storage_name": { "type": "string" },
- "project": { "type": "object" }
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "state": {
+ "type": "string"
+ },
+ "source_storage_name": {
+ "type": "string"
+ },
+ "destination_storage_name": {
+ "type": "string"
+ },
+ "error_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "project": {
+ "type": "object"
+ }
},
"additionalProperties": false
}
diff --git a/spec/fixtures/api/schemas/public_api/v4/snippet_repository_storage_move.json b/spec/fixtures/api/schemas/public_api/v4/snippet_repository_storage_move.json
index b0633a6ff2d..65494e27f5c 100644
--- a/spec/fixtures/api/schemas/public_api/v4/snippet_repository_storage_move.json
+++ b/spec/fixtures/api/schemas/public_api/v4/snippet_repository_storage_move.json
@@ -8,13 +8,32 @@
"destination_storage_name",
"snippet"
],
- "properties" : {
- "id": { "type": "integer" },
- "created_at": { "type": "string", "format": "date-time" },
- "state": { "type": "string" },
- "source_storage_name": { "type": "string" },
- "destination_storage_name": { "type": "string" },
- "snippet": { "type": "object" }
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "state": {
+ "type": "string"
+ },
+ "source_storage_name": {
+ "type": "string"
+ },
+ "destination_storage_name": {
+ "type": "string"
+ },
+ "error_message": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "snippet": {
+ "type": "object"
+ }
},
"additionalProperties": false
}
diff --git a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/1_create_some_table_on_main_db.rb b/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/1_create_some_table_on_main_db.rb
deleted file mode 100644
index 98d71d9507b..00000000000
--- a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/1_create_some_table_on_main_db.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-# frozen_string_literal: true
-
-# rubocop: disable Gitlab/NamespacedClass -- Fixtures do not need to be namespaced
-class CreateSomeTableOnMainDb < ClickHouse::Migration
- def up
- execute <<~SQL
- CREATE TABLE some (
- id UInt64,
- date Date
- ) ENGINE = MergeTree
- PRIMARY KEY(id)
- SQL
- end
-end
-# rubocop: enable Gitlab/NamespacedClass
diff --git a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/2_create_some_table_on_another_db.rb b/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/2_create_some_table_on_another_db.rb
deleted file mode 100644
index b8cd86a67f5..00000000000
--- a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/2_create_some_table_on_another_db.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-# frozen_string_literal: true
-
-# rubocop: disable Gitlab/NamespacedClass -- Fixtures do not need to be namespaced
-class CreateSomeTableOnAnotherDb < ClickHouse::Migration
- SCHEMA = :another_db
-
- def up
- execute <<~SQL
- CREATE TABLE some_on_another_db (
- id UInt64,
- date Date
- ) ENGINE = Memory
- SQL
- end
-end
-# rubocop: enable Gitlab/NamespacedClass
diff --git a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/3_change_some_table_on_main_db.rb b/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/3_change_some_table_on_main_db.rb
deleted file mode 100644
index 9112ab79fc5..00000000000
--- a/spec/fixtures/click_house/migrations/migrations_over_multiple_databases/3_change_some_table_on_main_db.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-# rubocop: disable Gitlab/NamespacedClass -- Fixtures do not need to be namespaced
-class ChangeSomeTableOnMainDb < ClickHouse::Migration
- def up
- execute <<~SQL
- ALTER TABLE some RENAME COLUMN date to timestamp
- SQL
- end
-end
-# rubocop: enable Gitlab/NamespacedClass
diff --git a/spec/fixtures/click_house/migrations/plain_table_creation_on_invalid_database/1_create_some_table.rb b/spec/fixtures/click_house/migrations/table_creation_with_down_method/2_create_another_table.rb
index ee900ef24c5..4a6f841a727 100644
--- a/spec/fixtures/click_house/migrations/plain_table_creation_on_invalid_database/1_create_some_table.rb
+++ b/spec/fixtures/click_house/migrations/table_creation_with_down_method/2_create_another_table.rb
@@ -1,16 +1,20 @@
# frozen_string_literal: true
# rubocop: disable Gitlab/NamespacedClass -- Fixtures do not need to be namespaced
-class CreateSomeTable < ClickHouse::Migration
- SCHEMA = :unknown_database
-
+class CreateAnotherTable < ClickHouse::Migration
def up
execute <<~SQL
- CREATE TABLE some (
+ CREATE TABLE another (
id UInt64,
date Date
) ENGINE = Memory
SQL
end
+
+ def down
+ execute <<~SQL
+ DROP TABLE another
+ SQL
+ end
end
# rubocop: enable Gitlab/NamespacedClass
diff --git a/spec/fixtures/csv_complex.csv b/spec/fixtures/csv_complex.csv
index 60d8aa5d6f7..b42a5e99d88 100644
--- a/spec/fixtures/csv_complex.csv
+++ b/spec/fixtures/csv_complex.csv
@@ -1,6 +1,6 @@
-title,description,due date
+title,description,due date,milestone
Issue in 中文,Test description,
"Hello","World",
"Title with quote""","Description
/assign @csv_assignee
-/estimate 1h",2022-06-28
+/estimate 1h",2022-06-28,15.10
diff --git a/spec/fixtures/csv_gitlab_export.csv b/spec/fixtures/csv_gitlab_export.csv
index 65422509eef..a39260f9dff 100644
--- a/spec/fixtures/csv_gitlab_export.csv
+++ b/spec/fixtures/csv_gitlab_export.csv
@@ -2,4 +2,4 @@ Issue ID,URL,Title,State,Description,Author,Author Username,Assignee,Assignee Us
1,http://localhost:3000/jashkenas/underscore/issues/1,Title,Open,,Elva Jerde,jamel,Tierra Effertz,aurora_hahn,No,No,,2020-01-17 10:36:26,2020-02-19 10:36:26,,v1.0,,"Brene,Cutlass,Escort,GVM",0,0,,
3,http://localhost:3000/jashkenas/underscore/issues/3,Nihil impedit neque quos totam ut aut enim cupiditate doloribus molestiae.,Open,Omnis aliquid sint laudantium quam.,Marybeth Goodwin,rocio.blanda,Annemarie Von,reynalda_howe,No,No,,2020-01-23 10:36:26,2020-02-19 10:36:27,,v1.0,,"Brene,Cutlass,Escort,GVM",0,0,,
34,http://localhost:3000/jashkenas/underscore/issues/34,Dismiss Cipher with no integrity,Open,,Marybeth Goodwin,rocio.blanda,"","",No,No,,2020-02-19 10:38:49,2020-02-19 10:38:49,,,,,0,0,,
-35,http://localhost:3000/jashkenas/underscore/issues/35,Test Title,Open,Test Description,Marybeth Goodwin,rocio.blanda,"","",No,No,,2020-02-19 10:38:49,2020-02-19 10:38:49,,,,,0,0,,
+35,http://localhost:3000/jashkenas/underscore/issues/35,Test Title,Open,Test Description,Marybeth Goodwin,rocio.blanda,"","",No,No,,2020-02-19 10:38:49,2020-02-19 10:38:49,,v1.0,,,0,0,,
diff --git a/spec/fixtures/importers/bitbucket_server/activities.json b/spec/fixtures/importers/bitbucket_server/activities.json
index ddcb94b8f58..e8873702a61 100644
--- a/spec/fixtures/importers/bitbucket_server/activities.json
+++ b/spec/fixtures/importers/bitbucket_server/activities.json
@@ -1,1146 +1,1208 @@
{
- "isLastPage": true,
- "limit": 25,
- "size": 8,
- "start": 0,
- "values": [
- {
- "action": "COMMENTED",
- "comment": {
+ "isLastPage": true,
+ "limit": 25,
+ "size": 8,
+ "start": 0,
+ "values": [
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+ {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+ {
"author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
},
"comments": [
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1530164016725,
- "id": 11,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [
- {
- "anchor": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "createdDate": 1530164016725,
- "id": 11,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "text": "Ok",
- "type": "COMMENT",
- "updatedDate": 1530164016725,
- "version": 0
- },
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "createdDate": 1530164026000,
- "id": 1,
- "permittedOperations": {
- "deletable": true,
- "editable": true,
- "transitionable": true
- },
- "state": "OPEN",
- "text": "here's a task"
- }
- ],
- "text": "Ok",
- "updatedDate": 1530164016725,
- "version": 0
- },
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1530165543990,
- "id": 12,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "hi",
- "updatedDate": 1530165543990,
- "version": 0
- }
- ],
- "createdDate": 1530164013718,
- "id": 10,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "Hello world",
- "updatedDate": 1530164013718,
- "version": 0
- },
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1530165549932,
- "id": 13,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "hello",
- "updatedDate": 1530165549932,
- "version": 0
- }
+
],
- "createdDate": 1530161499144,
- "id": 9,
+ "createdDate": 1530164016725,
+ "id": 11,
"permittedOperations": {
- "deletable": true,
- "editable": true
+ "deletable": true,
+ "editable": true
},
"properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "is this a new line?",
- "updatedDate": 1530161499144,
- "version": 0
- },
- "commentAction": "ADDED",
- "commentAnchor": {
- "diffType": "EFFECTIVE",
- "fileType": "TO",
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "line": 1,
- "lineType": "ADDED",
- "orphaned": false,
- "path": "CHANGELOG.md",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
- },
- "createdDate": 1530161499144,
- "diff": {
- "destination": {
- "components": [
- "CHANGELOG.md"
- ],
- "extension": "md",
- "name": "CHANGELOG.md",
- "parent": "",
- "toString": "CHANGELOG.md"
+ "repositoryId": 1
},
- "hunks": [
- {
- "destinationLine": 1,
- "destinationSpan": 11,
- "segments": [
+ "tasks": [
+ {
+ "anchor": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
{
- "lines": [
- {
- "commentIds": [
- 9
- ],
- "destination": 1,
- "line": "# Edit 1",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 2,
- "line": "",
- "source": 1,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "ADDED"
- },
- {
- "lines": [
- {
- "destination": 3,
- "line": "# ChangeLog",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 4,
- "line": "",
- "source": 2,
- "truncated": false
- },
- {
- "destination": 5,
- "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
- "source": 3,
- "truncated": false
- },
- {
- "destination": 6,
- "line": "we use is semver, although we will often release new lexers in minor versions, as a",
- "source": 4,
- "truncated": false
- },
- {
- "destination": 7,
- "line": "practical matter.",
- "source": 5,
- "truncated": false
- },
- {
- "destination": 8,
- "line": "",
- "source": 6,
- "truncated": false
- },
- {
- "destination": 9,
- "line": "## version TBD: (unreleased)",
- "source": 7,
- "truncated": false
- },
- {
- "destination": 10,
- "line": "",
- "source": 8,
- "truncated": false
- },
- {
- "destination": 11,
- "line": "* General",
- "source": 9,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "CONTEXT"
+ "href": "http://localhost:7990/users/root"
}
- ],
- "sourceLine": 1,
- "sourceSpan": 9,
- "truncated": false
- }
- ],
- "properties": {
- "current": true,
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
- },
- "source": null,
- "truncated": false
- },
- "id": 19,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- }
- },
- {
- "action": "COMMENTED",
- "comment": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "createdDate": 1530164016725,
+ "id": 11,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "text": "Ok",
+ "type": "COMMENT",
+ "updatedDate": 1530164016725,
+ "version": 0
+ },
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
"self": [
- {
- "href": "http://localhost:7990/users/root"
- }
+ {
+ "href": "http://localhost:7990/users/root"
+ }
]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
},
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "createdDate": 1530164026000,
+ "id": 1,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true,
+ "transitionable": true
+ },
+ "state": "OPEN",
+ "text": "here's a task"
+ }
+ ],
+ "text": "Ok",
+ "updatedDate": 1530164016725,
+ "version": 0
+ },
+ {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
},
- "comments": [],
- "createdDate": 1530053198463,
- "id": 7,
+ "comments": [
+
+ ],
+ "createdDate": 1530165543990,
+ "id": 12,
"permittedOperations": {
- "deletable": true,
- "editable": true
+ "deletable": true,
+ "editable": true
},
"properties": {
- "repositoryId": 1
+ "repositoryId": 1
},
- "tasks": [],
- "text": "What about this line?",
- "updatedDate": 1530053198463,
+ "tasks": [
+
+ ],
+ "text": "hi",
+ "updatedDate": 1530165543990,
"version": 0
+ }
+ ],
+ "createdDate": 1530164013718,
+ "id": 10,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "Hello world",
+ "updatedDate": 1530164013718,
+ "version": 0
+ },
+ {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+
+ ],
+ "createdDate": 1530165549932,
+ "id": 13,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
},
- "commentAction": "ADDED",
- "commentAnchor": {
- "diffType": "EFFECTIVE",
- "fileType": "FROM",
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "line": 9,
- "lineType": "CONTEXT",
- "orphaned": false,
- "path": "CHANGELOG.md",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ "properties": {
+ "repositoryId": 1
},
- "createdDate": 1530053198463,
- "diff": {
- "destination": {
- "components": [
- "CHANGELOG.md"
+ "tasks": [
+
+ ],
+ "text": "hello",
+ "updatedDate": 1530165549932,
+ "version": 0
+ }
+ ],
+ "createdDate": 1530161499144,
+ "id": 9,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "is this a new line?",
+ "updatedDate": 1530161499144,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "commentAnchor": {
+ "diffType": "EFFECTIVE",
+ "fileType": "TO",
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "line": 1,
+ "lineType": "ADDED",
+ "orphaned": false,
+ "path": "CHANGELOG.md",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "createdDate": 1530161499144,
+ "diff": {
+ "destination": {
+ "components": [
+ "CHANGELOG.md"
+ ],
+ "extension": "md",
+ "name": "CHANGELOG.md",
+ "parent": "",
+ "toString": "CHANGELOG.md"
+ },
+ "hunks": [
+ {
+ "destinationLine": 1,
+ "destinationSpan": 11,
+ "segments": [
+ {
+ "lines": [
+ {
+ "commentIds": [
+ 9
],
- "extension": "md",
- "name": "CHANGELOG.md",
- "parent": "",
- "toString": "CHANGELOG.md"
- },
- "hunks": [
- {
- "destinationLine": 1,
- "destinationSpan": 12,
- "segments": [
- {
- "lines": [
- {
- "destination": 1,
- "line": "# Edit 1",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 2,
- "line": "",
- "source": 1,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "ADDED"
- },
- {
- "lines": [
- {
- "destination": 3,
- "line": "# ChangeLog",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 4,
- "line": "",
- "source": 2,
- "truncated": false
- },
- {
- "destination": 5,
- "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
- "source": 3,
- "truncated": false
- },
- {
- "destination": 6,
- "line": "we use is semver, although we will often release new lexers in minor versions, as a",
- "source": 4,
- "truncated": false
- },
- {
- "destination": 7,
- "line": "practical matter.",
- "source": 5,
- "truncated": false
- },
- {
- "destination": 8,
- "line": "",
- "source": 6,
- "truncated": false
- },
- {
- "destination": 9,
- "line": "## version TBD: (unreleased)",
- "source": 7,
- "truncated": false
- },
- {
- "destination": 10,
- "line": "",
- "source": 8,
- "truncated": false
- },
- {
- "commentIds": [
- 7
- ],
- "destination": 11,
- "line": "* General",
- "source": 9,
- "truncated": false
- },
- {
- "destination": 12,
- "line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
- "source": 10,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "CONTEXT"
- }
- ],
- "sourceLine": 1,
- "sourceSpan": 10,
- "truncated": false
- }
+ "destination": 1,
+ "line": "# Edit 1",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 2,
+ "line": "",
+ "source": 1,
+ "truncated": false
+ }
],
- "properties": {
- "current": true,
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
- },
- "source": null,
- "truncated": false
- },
- "id": 14,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "truncated": false,
+ "type": "ADDED"
+ },
+ {
+ "lines": [
+ {
+ "destination": 3,
+ "line": "# ChangeLog",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 4,
+ "line": "",
+ "source": 2,
+ "truncated": false
+ },
+ {
+ "destination": 5,
+ "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
+ "source": 3,
+ "truncated": false
+ },
+ {
+ "destination": 6,
+ "line": "we use is semver, although we will often release new lexers in minor versions, as a",
+ "source": 4,
+ "truncated": false
+ },
+ {
+ "destination": 7,
+ "line": "practical matter.",
+ "source": 5,
+ "truncated": false
+ },
+ {
+ "destination": 8,
+ "line": "",
+ "source": 6,
+ "truncated": false
+ },
+ {
+ "destination": 9,
+ "line": "## version TBD: (unreleased)",
+ "source": 7,
+ "truncated": false
+ },
+ {
+ "destination": 10,
+ "line": "",
+ "source": 8,
+ "truncated": false
+ },
+ {
+ "destination": 11,
+ "line": "* General",
+ "source": 9,
+ "truncated": false
+ }
+ ],
+ "truncated": false,
+ "type": "CONTEXT"
+ }
+ ],
+ "sourceLine": 1,
+ "sourceSpan": 9,
+ "truncated": false
+ }
+ ],
+ "properties": {
+ "current": true,
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "source": null,
+ "truncated": false
+ },
+ "id": 19,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+
+ ],
+ "createdDate": 1530053198463,
+ "id": 7,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "What about this line?",
+ "updatedDate": 1530053198463,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "commentAnchor": {
+ "diffType": "EFFECTIVE",
+ "fileType": "FROM",
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "line": 9,
+ "lineType": "CONTEXT",
+ "orphaned": false,
+ "path": "CHANGELOG.md",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "createdDate": 1530053198463,
+ "diff": {
+ "destination": {
+ "components": [
+ "CHANGELOG.md"
+ ],
+ "extension": "md",
+ "name": "CHANGELOG.md",
+ "parent": "",
+ "toString": "CHANGELOG.md"
+ },
+ "hunks": [
+ {
+ "destinationLine": 1,
+ "destinationSpan": 12,
+ "segments": [
+ {
+ "lines": [
+ {
+ "destination": 1,
+ "line": "# Edit 1",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 2,
+ "line": "",
+ "source": 1,
+ "truncated": false
+ }
+ ],
+ "truncated": false,
+ "type": "ADDED"
+ },
+ {
+ "lines": [
+ {
+ "destination": 3,
+ "line": "# ChangeLog",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 4,
+ "line": "",
+ "source": 2,
+ "truncated": false
+ },
+ {
+ "destination": 5,
+ "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
+ "source": 3,
+ "truncated": false
+ },
+ {
+ "destination": 6,
+ "line": "we use is semver, although we will often release new lexers in minor versions, as a",
+ "source": 4,
+ "truncated": false
+ },
+ {
+ "destination": 7,
+ "line": "practical matter.",
+ "source": 5,
+ "truncated": false
+ },
+ {
+ "destination": 8,
+ "line": "",
+ "source": 6,
+ "truncated": false
+ },
+ {
+ "destination": 9,
+ "line": "## version TBD: (unreleased)",
+ "source": 7,
+ "truncated": false
+ },
+ {
+ "destination": 10,
+ "line": "",
+ "source": 8,
+ "truncated": false
+ },
+ {
+ "commentIds": [
+ 7
+ ],
+ "destination": 11,
+ "line": "* General",
+ "source": 9,
+ "truncated": false
+ },
+ {
+ "destination": 12,
+ "line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
+ "source": 10,
+ "truncated": false
+ }
+ ],
+ "truncated": false,
+ "type": "CONTEXT"
+ }
+ ],
+ "sourceLine": 1,
+ "sourceSpan": 10,
+ "truncated": false
+ }
+ ],
+ "properties": {
+ "current": true,
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "source": null,
+ "truncated": false
+ },
+ "id": 14,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "COMMENTED",
- "comment": {
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+ {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+ {
"author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
},
"comments": [
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1530143330513,
- "id": 8,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "How about this?",
- "updatedDate": 1530143330513,
- "version": 0
- }
- ],
- "createdDate": 1530053193795,
- "id": 6,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "It does.",
- "updatedDate": 1530053193795,
- "version": 0
- }
+
],
- "createdDate": 1530053187904,
- "id": 5,
+ "createdDate": 1530143330513,
+ "id": 8,
"permittedOperations": {
- "deletable": true,
- "editable": true
+ "deletable": true,
+ "editable": true
},
"properties": {
- "repositoryId": 1
+ "repositoryId": 1
},
- "tasks": [],
- "text": "Does this line make sense?",
- "updatedDate": 1530053187904,
+ "tasks": [
+
+ ],
+ "text": "How about this?",
+ "updatedDate": 1530143330513,
"version": 0
+ }
+ ],
+ "createdDate": 1530053193795,
+ "id": 6,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
},
- "commentAction": "ADDED",
- "commentAnchor": {
- "diffType": "EFFECTIVE",
- "fileType": "FROM",
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "line": 3,
- "lineType": "CONTEXT",
- "orphaned": false,
- "path": "CHANGELOG.md",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ "properties": {
+ "repositoryId": 1
},
- "createdDate": 1530053187904,
- "diff": {
- "destination": {
- "components": [
- "CHANGELOG.md"
+ "tasks": [
+
+ ],
+ "text": "It does.",
+ "updatedDate": 1530053193795,
+ "version": 0
+ }
+ ],
+ "createdDate": 1530053187904,
+ "id": 5,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "Does this line make sense?",
+ "updatedDate": 1530053187904,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "commentAnchor": {
+ "diffType": "EFFECTIVE",
+ "fileType": "FROM",
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "line": 3,
+ "lineType": "CONTEXT",
+ "orphaned": false,
+ "path": "CHANGELOG.md",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "createdDate": 1530053187904,
+ "diff": {
+ "destination": {
+ "components": [
+ "CHANGELOG.md"
+ ],
+ "extension": "md",
+ "name": "CHANGELOG.md",
+ "parent": "",
+ "toString": "CHANGELOG.md"
+ },
+ "hunks": [
+ {
+ "destinationLine": 1,
+ "destinationSpan": 12,
+ "segments": [
+ {
+ "lines": [
+ {
+ "destination": 1,
+ "line": "# Edit 1",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 2,
+ "line": "",
+ "source": 1,
+ "truncated": false
+ }
+ ],
+ "truncated": false,
+ "type": "ADDED"
+ },
+ {
+ "lines": [
+ {
+ "destination": 3,
+ "line": "# ChangeLog",
+ "source": 1,
+ "truncated": false
+ },
+ {
+ "destination": 4,
+ "line": "",
+ "source": 2,
+ "truncated": false
+ },
+ {
+ "commentIds": [
+ 5
],
- "extension": "md",
- "name": "CHANGELOG.md",
- "parent": "",
- "toString": "CHANGELOG.md"
- },
- "hunks": [
- {
- "destinationLine": 1,
- "destinationSpan": 12,
- "segments": [
- {
- "lines": [
- {
- "destination": 1,
- "line": "# Edit 1",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 2,
- "line": "",
- "source": 1,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "ADDED"
- },
- {
- "lines": [
- {
- "destination": 3,
- "line": "# ChangeLog",
- "source": 1,
- "truncated": false
- },
- {
- "destination": 4,
- "line": "",
- "source": 2,
- "truncated": false
- },
- {
- "commentIds": [
- 5
- ],
- "destination": 5,
- "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
- "source": 3,
- "truncated": false
- },
- {
- "destination": 6,
- "line": "we use is semver, although we will often release new lexers in minor versions, as a",
- "source": 4,
- "truncated": false
- },
- {
- "destination": 7,
- "line": "practical matter.",
- "source": 5,
- "truncated": false
- },
- {
- "destination": 8,
- "line": "",
- "source": 6,
- "truncated": false
- },
- {
- "destination": 9,
- "line": "## version TBD: (unreleased)",
- "source": 7,
- "truncated": false
- },
- {
- "destination": 10,
- "line": "",
- "source": 8,
- "truncated": false
- },
- {
- "destination": 11,
- "line": "* General",
- "source": 9,
- "truncated": false
- },
- {
- "destination": 12,
- "line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
- "source": 10,
- "truncated": false
- }
- ],
- "truncated": false,
- "type": "CONTEXT"
- }
- ],
- "sourceLine": 1,
- "sourceSpan": 10,
- "truncated": false
- }
+ "destination": 5,
+ "line": "This log summarizes the changes in each released version of rouge. The versioning scheme",
+ "source": 3,
+ "truncated": false
+ },
+ {
+ "destination": 6,
+ "line": "we use is semver, although we will often release new lexers in minor versions, as a",
+ "source": 4,
+ "truncated": false
+ },
+ {
+ "destination": 7,
+ "line": "practical matter.",
+ "source": 5,
+ "truncated": false
+ },
+ {
+ "destination": 8,
+ "line": "",
+ "source": 6,
+ "truncated": false
+ },
+ {
+ "destination": 9,
+ "line": "## version TBD: (unreleased)",
+ "source": 7,
+ "truncated": false
+ },
+ {
+ "destination": 10,
+ "line": "",
+ "source": 8,
+ "truncated": false
+ },
+ {
+ "destination": 11,
+ "line": "* General",
+ "source": 9,
+ "truncated": false
+ },
+ {
+ "destination": 12,
+ "line": " * Load pastie theme ([#809](https://github.com/jneen/rouge/pull/809) by rramsden)",
+ "source": 10,
+ "truncated": false
+ }
],
- "properties": {
- "current": true,
- "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
- },
- "source": null,
- "truncated": false
- },
- "id": 12,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "truncated": false,
+ "type": "CONTEXT"
+ }
+ ],
+ "sourceLine": 1,
+ "sourceSpan": 10,
+ "truncated": false
+ }
+ ],
+ "properties": {
+ "current": true,
+ "fromHash": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "toHash": "a4c2164330f2549f67c13f36a93884cf66e976be"
+ },
+ "source": null,
+ "truncated": false
+ },
+ "id": 12,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "COMMENTED",
- "comment": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1529813304164,
- "id": 4,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "Hello world",
- "updatedDate": 1529813304164,
- "version": 0
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+
+ ],
+ "createdDate": 1529813304164,
+ "id": 4,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "Hello world",
+ "updatedDate": 1529813304164,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "createdDate": 1529813304164,
+ "id": 11,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "MERGED",
+ "commit": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "authorTimestamp": 1529727872000,
+ "committer": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "committerTimestamp": 1529727872000,
+ "displayId": "839fa9a2d43",
+ "id": "839fa9a2d434eb697815b8fcafaecc51accfdbbc",
+ "message": "Merge pull request #1 in TEST/rouge from root/CHANGELOGmd-1529725646923 to master\n\n* commit '66fbe6a097803f0acb7342b19563f710657ce5a2':\n CHANGELOG.md edited online with Bitbucket",
+ "parents": [
+ {
+ "author": {
+ "emailAddress": "dblessing@users.noreply.github.com",
+ "name": "Drew Blessing"
},
- "commentAction": "ADDED",
- "createdDate": 1529813304164,
- "id": 11,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "authorTimestamp": 1529604583000,
+ "committer": {
+ "emailAddress": "noreply@github.com",
+ "name": "GitHub"
+ },
+ "committerTimestamp": 1529604583000,
+ "displayId": "c5f4288162e",
+ "id": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
+ "message": "Merge pull request #949 from jneen/dblessing-patch-1\n\nAdd 'obj-c', 'obj_c' as ObjectiveC aliases",
+ "parents": [
+ {
+ "displayId": "ea7675f741e",
+ "id": "ea7675f741ee28f3f177ff32a9bde192742ffc59"
+ },
+ {
+ "displayId": "386b95a977b",
+ "id": "386b95a977b331e267497aa5206861774656f0c5"
+ }
+ ]
+ },
+ {
+ "author": {
+ "emailAddress": "test.user@example.com",
+ "name": "root"
+ },
+ "authorTimestamp": 1529725651000,
+ "committer": {
+ "emailAddress": "test.user@example.com",
+ "name": "root"
+ },
+ "committerTimestamp": 1529725651000,
+ "displayId": "66fbe6a0978",
+ "id": "66fbe6a097803f0acb7342b19563f710657ce5a2",
+ "message": "CHANGELOG.md edited online with Bitbucket",
+ "parents": [
+ {
+ "displayId": "c5f4288162e",
+ "id": "c5f4288162e2e6218180779c7f6ac1735bb56eab"
+ }
+ ]
+ }
+ ]
+ },
+ "createdDate": 1529727872302,
+ "id": 7,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "MERGED",
- "commit": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "authorTimestamp": 1529727872000,
- "committer": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "committerTimestamp": 1529727872000,
- "displayId": "839fa9a2d43",
- "id": "839fa9a2d434eb697815b8fcafaecc51accfdbbc",
- "message": "Merge pull request #1 in TEST/rouge from root/CHANGELOGmd-1529725646923 to master\n\n* commit '66fbe6a097803f0acb7342b19563f710657ce5a2':\n CHANGELOG.md edited online with Bitbucket",
- "parents": [
- {
- "author": {
- "emailAddress": "dblessing@users.noreply.github.com",
- "name": "Drew Blessing"
- },
- "authorTimestamp": 1529604583000,
- "committer": {
- "emailAddress": "noreply@github.com",
- "name": "GitHub"
- },
- "committerTimestamp": 1529604583000,
- "displayId": "c5f4288162e",
- "id": "c5f4288162e2e6218180779c7f6ac1735bb56eab",
- "message": "Merge pull request #949 from jneen/dblessing-patch-1\n\nAdd 'obj-c', 'obj_c' as ObjectiveC aliases",
- "parents": [
- {
- "displayId": "ea7675f741e",
- "id": "ea7675f741ee28f3f177ff32a9bde192742ffc59"
- },
- {
- "displayId": "386b95a977b",
- "id": "386b95a977b331e267497aa5206861774656f0c5"
- }
- ]
- },
- {
- "author": {
- "emailAddress": "test.user@example.com",
- "name": "root"
- },
- "authorTimestamp": 1529725651000,
- "committer": {
- "emailAddress": "test.user@example.com",
- "name": "root"
- },
- "committerTimestamp": 1529725651000,
- "displayId": "66fbe6a0978",
- "id": "66fbe6a097803f0acb7342b19563f710657ce5a2",
- "message": "CHANGELOG.md edited online with Bitbucket",
- "parents": [
- {
- "displayId": "c5f4288162e",
- "id": "c5f4288162e2e6218180779c7f6ac1735bb56eab"
- }
- ]
- }
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+ {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
},
- "createdDate": 1529727872302,
- "id": 7,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "comments": [
+
+ ],
+ "createdDate": 1529813297478,
+ "id": 3,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "This is a thread",
+ "updatedDate": 1529813297478,
+ "version": 0
+ }
+ ],
+ "createdDate": 1529725692591,
+ "id": 2,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "What about this?",
+ "updatedDate": 1529725692591,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "createdDate": 1529725692591,
+ "id": 6,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "COMMENTED",
- "comment": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [
- {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1529813297478,
- "id": 3,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "This is a thread",
- "updatedDate": 1529813297478,
- "version": 0
- }
- ],
- "createdDate": 1529725692591,
- "id": 2,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "What about this?",
- "updatedDate": 1529725692591,
- "version": 0
- },
- "commentAction": "ADDED",
- "createdDate": 1529725692591,
- "id": 6,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "COMMENTED",
+ "comment": {
+ "author": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
+ }
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ },
+ "comments": [
+
+ ],
+ "createdDate": 1529725685910,
+ "id": 1,
+ "permittedOperations": {
+ "deletable": true,
+ "editable": true
+ },
+ "properties": {
+ "repositoryId": 1
+ },
+ "tasks": [
+
+ ],
+ "text": "This is a test.\n\n[analyze.json](attachment:1/1f32f09d97%2Fanalyze.json)\n",
+ "updatedDate": 1529725685910,
+ "version": 0
+ },
+ "commentAction": "ADDED",
+ "createdDate": 1529725685910,
+ "id": 5,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "COMMENTED",
- "comment": {
- "author": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
- },
- "comments": [],
- "createdDate": 1529725685910,
- "id": 1,
- "permittedOperations": {
- "deletable": true,
- "editable": true
- },
- "properties": {
- "repositoryId": 1
- },
- "tasks": [],
- "text": "This is a test.\n\n[analyze.json](attachment:1/1f32f09d97%2Fanalyze.json)\n",
- "updatedDate": 1529725685910,
- "version": 0
- },
- "commentAction": "ADDED",
- "createdDate": 1529725685910,
- "id": 5,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "OPENED",
+ "createdDate": 1529725657542,
+ "id": 4,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
+ ]
},
- {
- "action": "OPENED",
- "createdDate": 1529725657542,
- "id": 4,
- "user": {
- "active": true,
- "displayName": "root",
- "emailAddress": "test.user@example.com",
- "id": 1,
- "links": {
- "self": [
- {
- "href": "http://localhost:7990/users/root"
- }
- ]
- },
- "name": "root",
- "slug": "slug",
- "username": "username",
- "type": "NORMAL"
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ },
+ {
+ "action": "APPROVED",
+ "createdDate": 1529725657542,
+ "id": 15,
+ "user": {
+ "active": true,
+ "displayName": "root",
+ "emailAddress": "test.user@example.com",
+ "id": 1,
+ "links": {
+ "self": [
+ {
+ "href": "http://localhost:7990/users/root"
}
- }
- ]
+ ]
+ },
+ "name": "root",
+ "slug": "slug",
+ "username": "username",
+ "type": "NORMAL"
+ }
+ }
+ ]
}
diff --git a/spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml b/spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml
new file mode 100644
index 00000000000..07f606fbe33
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml
@@ -0,0 +1,14 @@
+---
+description: Internal Event CLI is opened
+category: InternalEventTracking
+action: internal_events_cli_opened
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+milestone: '16.6'
+introduced_by_url: TODO
+distributions:
+- ee
+tiers:
+- premium
+- ultimate
diff --git a/spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml b/spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
new file mode 100644
index 00000000000..5050953920d
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
@@ -0,0 +1,20 @@
+---
+description: Engineer uses Internal Event CLI to define a new event
+category: InternalEventTracking
+action: internal_events_cli_used
+identifiers:
+- project
+- namespace
+- user
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+milestone: '16.6'
+introduced_by_url: TODO
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/spec/fixtures/scripts/internal_events/events/keyboard_smashed_event.yml b/spec/fixtures/scripts/internal_events/events/keyboard_smashed_event.yml
new file mode 100644
index 00000000000..c0ccbc03af7
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/events/keyboard_smashed_event.yml
@@ -0,0 +1,20 @@
+---
+description: random event string
+category: InternalEventTracking
+action: random_name
+identifiers:
+- project
+- namespace
+- user
+product_section: core_platform
+product_stage: manage
+product_group: import_and_integrate
+milestone: '16.6'
+introduced_by_url: TODO
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml b/spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml
new file mode 100644
index 00000000000..4e2e77e0c5c
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml
@@ -0,0 +1,20 @@
+---
+description: Engineer closes Internal Event CLI
+category: InternalEventTracking
+action: internal_events_cli_closed
+identifiers:
+- project
+- namespace
+- user
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+milestone: '16.6'
+introduced_by_url: TODO
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml
new file mode 100644
index 00000000000..ba56d782871
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_28d_single_event.yml
@@ -0,0 +1,25 @@
+---
+key_path: counts.count_total_internal_events_cli_used_monthly
+description: Monthly count of when an event was defined using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ee
+tier:
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml
new file mode 100644
index 00000000000..e6bdcb9d2ae
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml
@@ -0,0 +1,25 @@
+---
+key_path: counts.count_total_internal_events_cli_used_weekly
+description: Weekly count of when an event was defined using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ee
+tier:
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
diff --git a/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
new file mode 100644
index 00000000000..b1bf89dc095
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
@@ -0,0 +1,25 @@
+---
+key_path: counts.count_total_internal_events_cli_used
+description: Total count of when an event was defined using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: all
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ee
+tier:
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
diff --git a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
new file mode 100644
index 00000000000..8476cb8561b
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
@@ -0,0 +1,28 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_random_name_monthly
+description: Monthly count of unique users random metric string
+product_section: core_platform
+product_stage: manage
+product_group: import_and_integrate
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - random_name
+events:
+- name: random_name
+ unique: user.id
diff --git a/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
new file mode 100644
index 00000000000..b4cc2fc8b55
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
@@ -0,0 +1,28 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_random_name_weekly
+description: Weekly count of unique users random metric string
+product_section: core_platform
+product_stage: manage
+product_group: import_and_integrate
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - random_name
+events:
+- name: random_name
+ unique: user.id
diff --git a/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml b/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
new file mode 100644
index 00000000000..754702c8c74
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
@@ -0,0 +1,31 @@
+---
+key_path: redis_hll_counters.count_distinct_project_id_from_internal_events_cli_closed_and_internal_events_cli_used_monthly
+description: Monthly count of unique projects where a defition file was created with the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_closed
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_closed
+ unique: project.id
+- name: internal_events_cli_used
+ unique: project.id
diff --git a/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml b/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
new file mode 100644
index 00000000000..95f429e9b40
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
@@ -0,0 +1,31 @@
+---
+key_path: redis_hll_counters.count_distinct_project_id_from_internal_events_cli_closed_and_internal_events_cli_used_weekly
+description: Weekly count of unique projects where a defition file was created with the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_closed
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_closed
+ unique: project.id
+- name: internal_events_cli_used
+ unique: project.id
diff --git a/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
new file mode 100644
index 00000000000..5bdb4c45a52
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
@@ -0,0 +1,27 @@
+---
+key_path: counts.count_total_internal_events_cli_used
+description: Total count of when an event was defined using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: all
+data_source: internal_events
+data_category: optional
+instrumentation_class: TotalCountMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
diff --git a/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
new file mode 100644
index 00000000000..b176b23b46a
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
@@ -0,0 +1,28 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_internal_events_cli_used_monthly
+description: Monthly count of unique users who defined an internal event using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
+ unique: user.id
diff --git a/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml b/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
new file mode 100644
index 00000000000..8a0fca2cbdc
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
@@ -0,0 +1,28 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_internal_events_cli_used_weekly
+description: Weekly count of unique users who defined an internal event using the CLI
+product_section: analytics
+product_stage: monitor
+product_group: analytics_instrumentation
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '16.6'
+introduced_by_url: TODO
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+instrumentation_class: RedisHLLMetric
+distribution:
+- ce
+- ee
+tier:
+- free
+- premium
+- ultimate
+options:
+ events:
+ - internal_events_cli_used
+events:
+- name: internal_events_cli_used
+ unique: user.id
diff --git a/spec/fixtures/scripts/internal_events/new_events.yml b/spec/fixtures/scripts/internal_events/new_events.yml
new file mode 100644
index 00000000000..6f39fc5e93c
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/new_events.yml
@@ -0,0 +1,183 @@
+- description: Creates a new event and flows directly into metric creation
+ inputs:
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "Engineer uses Internal Event CLI to define a new event\n" # Submit description
+ - "internal_events_cli_used\n" # Submit action name
+ - "1\n" # Select: [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "1\n" # Select: [free, premium, ultimate]
+ - "y\n" # Create file
+ - "1\n" # Select: Create Metric --- define a new metric
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
+
+- description: Requires description & action before continuing
+ inputs:
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "\n" # Attempt to skip writing description --> should get help message
+ - "Engineer uses Internal Event CLI to define a new event\n" # Submit description
+ - "\n" # Attempt to skip naming action --> should get help message
+ - "internal_events_cli_used\n" # Submit action name
+ - "1\n" # Select [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "1\n" # Select [free, premium, ultimate]
+ - "y\n" # Create file
+ - "3\n" # Exit
+ outputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+
+- description: Does not allow existing events for action
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "Engineer closes Internal Event CLI\n" # Submit description
+ - "internal_events_cli_used\n" # Submit already-existing action name
+ - "internal_events_cli_closed\n" # Submit alterred action name
+ - "1\n" # Select [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "1\n" # Select [free, premium, ultimate]
+ - "y\n" # Create file
+ - "3\n" # Exit
+ outputs:
+ files:
+ - path: config/events/internal_events_cli_closed.yml
+ content: spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml
+
+- description: Creates a new event without identifiers
+ inputs:
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "Internal Event CLI is opened\n" # Submit description
+ - "internal_events_cli_opened\n" # Submit action name
+ - "6\n" # Select: None
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "2\n" # Select [premium, ultimate]
+ - "y\n" # Create file
+ - "3\n" # Exit
+ outputs:
+ files:
+ - path: ee/config/events/internal_events_cli_opened.yml
+ content: spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml
+
+- description: Smashing the keyboard/return creates an event & metrics with the most common attributes, then shows usage
+ inputs:
+ keystrokes:
+ - "\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "random event string\n" # Submit keyboard-smashing description
+ - "random_name\n" # Submit keyboard-smashing action name
+ - "\n" # Select: [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "\n" # Select core_platform:manage:import_and_integrate
+ - "\n" # Select [free, premium, ultimate]
+ - "\n" # Create file
+ - "\n" # Select: Create Metric --- define a new metric
+ - "\n" # Select: Weekly/Monthly count of unique users
+ - "random metric string\n" # Submit keyboard-smashing description
+ - "\n" # Accept weekly description for monthly
+ - "\n" # Select: Copy & continue
+ - "\n" # Skip URL
+ - "\n" # Create file
+ - "\n" # Create file
+ - "\n" # Select: View Usage -- look at code examples
+ - "\n" # Select: Ruby/Rails
+ - "8\n" # Exit
+ outputs:
+ files:
+ - path: config/events/random_name.yml
+ content: spec/fixtures/scripts/internal_events/events/keyboard_smashed_event.yml
+ - path: config/metrics/counts_28d/count_distinct_user_id_from_random_name_monthly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_28d.yml
+ - path: config/metrics/counts_7d/count_distinct_user_id_from_random_name_weekly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/keyboard_smashed_metric_7d.yml
+
+- description: Creates an event after helping the user figure out next steps
+ inputs:
+ keystrokes:
+ - "4\n" # Enum-select: ...am I in the right place?
+ - "y\n" # Yes --> Are you trying to track customer usage of a GitLab feature?
+ - "y\n" # Yes --> Can usage for the feature be measured by tracking a specific user action?
+ - "n\n" # No --> Is the event already tracked?
+ - "y\n" # Yes --> Ready to start?
+ - "Internal Event CLI is opened\n" # Submit description
+ - "internal_events_cli_opened\n" # Submit action name
+ - "6\n" # Select: None
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "2\n" # Select [premium, ultimate]
+ - "y\n" # Create file
+ - "3\n" # Exit
+ outputs:
+ files:
+ - path: ee/config/events/internal_events_cli_opened.yml
+ content: spec/fixtures/scripts/internal_events/events/ee_event_without_identifiers.yml
+
+- description: Creates a new event and flows directly into usage examples
+ inputs:
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "Engineer uses Internal Event CLI to define a new event\n" # Submit description
+ - "internal_events_cli_used\n" # Submit action name
+ - "1\n" # Select: [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "1\n" # Select: [free, premium, ultimate]
+ - "y\n" # Create file
+ - "2\n" # Select: View Usage
+ - "8\n" # Exit
+ outputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+
+- description: Skips event creation, then saves event & flows directly into metric creation
+ inputs:
+ keystrokes:
+ - "1\n" # Enum-select: New Event -- start tracking when an action or scenario occurs on gitlab instances
+ - "Engineer uses Internal Event CLI to define a new event\n" # Submit description
+ - "internal_events_cli_used\n" # Submit action name
+ - "1\n" # Select: [namespace, project, user]
+ - "\n" # Skip MR URL
+ - "instrumentation" # Filters to the analytics instrumentation group
+ - "\n" # Accept analytics:monitor:analytics_instrumentation
+ - "1\n" # Select: [free, premium, ultimate]
+ - "n\n" # Create file
+ - "1\n" # Select: Save event & create Metric --- define a new metric
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
diff --git a/spec/fixtures/scripts/internal_events/new_metrics.yml b/spec/fixtures/scripts/internal_events/new_metrics.yml
new file mode 100644
index 00000000000..2a207ee84f4
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/new_metrics.yml
@@ -0,0 +1,196 @@
+- description: Create a weekly/monthly metric for a single event
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\n" # Select: Weekly count of unique users
+ - "who defined an internal event using the CLI\n" # Input description
+ - "\n" # Submit weekly description for monthly
+ - "1\n" # Enum-select: Copy & continue
+ - "y\n" # Create file
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_28d/count_distinct_user_id_from_internal_events_cli_used_monthly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
+ - path: config/metrics/counts_7d/count_distinct_user_id_from_internal_events_cli_used_weekly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
+
+- description: Create a weekly/monthly metric for a multiple events, but select only one event
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "2\n" # Enum-select: Multiple events -- count occurrences of several separate events or interactions
+ - 'internal_events_cli_used' # Filters to this event
+ - " " # Multi-select: config/events/internal_events_cli_used.yml
+ - "\n" # Submit selections
+ - "\n" # Select: Weekly count of unique projects
+ - "who defined an internal event using the CLI\n" # Input description
+ - "\n" # Submit weekly description for monthly
+ - "1\n" # Enum-select: Copy & continue
+ - "y\n" # Create file
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_28d/count_distinct_user_id_from_internal_events_cli_used_monthly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/user_id_28d_single_event.yml
+ - path: config/metrics/counts_7d/count_distinct_user_id_from_internal_events_cli_used_weekly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/user_id_7d_single_event.yml
+
+- description: Create a weekly/monthly metric for multiple events
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ - path: config/events/internal_events_cli_closed.yml
+ content: spec/fixtures/scripts/internal_events/events/secondary_event_with_identifiers.yml
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "2\n" # Enum-select: Multiple events -- count occurrences of several separate events or interactions
+ - 'internal_events_cli' # Filters to the relevant events
+ - ' ' # Multi-select: internal_events_cli_closed
+ - "\e[B" # Arrow down to: internal_events_cli_used
+ - ' ' # Multi-select: internal_events_cli_used
+ - "\n" # Submit selections
+ - "\e[B" # Arrow down to: Weekly count of unique projects
+ - "\n" # Select: Weekly count of unique projects
+ - "where a defition file was created with the CLI\n" # Input description
+ - "\n" # Submit weekly description for monthly
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Create file
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_28d/count_distinct_project_id_from_internal_events_cli_closed_and_internal_events_cli_used_monthly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/project_id_28d_multiple_events.yml
+ - path: config/metrics/counts_7d/count_distinct_project_id_from_internal_events_cli_closed_and_internal_events_cli_used_weekly.yml
+ content: spec/fixtures/scripts/internal_events/metrics/project_id_7d_multiple_events.yml
+
+- description: Create an all time total metric for a single event
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
+
+- description: Try to create a database metric
+ inputs:
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "3\n" # Enum-select: Database -- record value of a particular field or count of database rows
+
+- description: Create an all time total metric for a single event, and confirm each attribute copied from event
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "2\n" # Enum-select: Modify attributes
+ - "\n" # Accept group/section/stage from event definition
+ - "\n" # Accept URL from event definition
+ - "2\n" # Override tier -> Select: [premium, ultimate]
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: ee/config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/ee_total_single_event.yml
+
+- description: Create a metric after helping the user figure out next steps
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ keystrokes:
+ - "4\n" # Enum-select: ...am I in the right place?
+ - "y\n" # Yes --> Are you trying to track customer usage of a GitLab feature?
+ - "y\n" # Yes --> Can usage for the feature be measured by tracking a specific user action?
+ - "y\n" # Yes --> Is the event already tracked?
+ - "y\n" # Yes --> Ready to start?
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Create file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
+
+- description: User overwrites metric that already exists
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml # wrong content
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "y\n" # Overwrite file
+ - "2\n" # Exit
+ outputs:
+ files:
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/total_single_event.yml
+
+- description: User opts not to overwrite metric that already exists
+ inputs:
+ files:
+ - path: config/events/internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/events/event_with_identifiers.yml
+ - path: config/metrics/counts_all/count_total_internal_events_cli_used.yml
+ content: spec/fixtures/scripts/internal_events/metrics/ee_total_7d_single_event.yml # wrong content
+ keystrokes:
+ - "2\n" # Enum-select: New Metric -- calculate how often one or more existing events occur over time
+ - "1\n" # Enum-select: Single event -- count occurrences of a specific event or user interaction
+ - 'internal_events_cli_used' # Filters to this event
+ - "\n" # Select: config/events/internal_events_cli_used.yml
+ - "\e[A" # Arrow up to: Total count of events
+ - "\n" # Select: Total count of events
+ - "when an event was defined using the CLI\n" # Input description
+ - "1\n" # Select: Copy & continue
+ - "n\n" # Don't overwrite file
+ - "2\n" # Exit
diff --git a/spec/fixtures/scripts/internal_events/stages.yml b/spec/fixtures/scripts/internal_events/stages.yml
new file mode 100644
index 00000000000..d5db9dcbe6d
--- /dev/null
+++ b/spec/fixtures/scripts/internal_events/stages.yml
@@ -0,0 +1,78 @@
+stages:
+ manage:
+ display_name: "Manage"
+ section: core_platform
+ groups:
+ import_and_integrate:
+ name: Import and Integrate
+ foundations:
+ name: Foundations
+
+ plan:
+ display_name: "Plan"
+ section: dev
+ groups:
+ project_management:
+ name: Project Management
+ product_planning:
+ name: Product Planning
+ knowledge:
+ name: Knowledge
+ optimize:
+ name: Optimize
+
+ create:
+ display_name: "Create"
+ section: dev
+ slack:
+ channel: s_create
+ groups:
+ source_code:
+ name: Source Code
+ code_review:
+ name: Code Review
+ ide:
+ name: IDE
+ editor_extensions:
+ name: Editor Extensions
+ code_creation:
+ name: Code Creation
+
+ verify:
+ display_name: "Verify"
+ section: ci
+ slack:
+ channel: s_verify
+ groups:
+ pipeline_execution:
+ name: "Pipeline Execution"
+ pipeline_authoring:
+ name: "Pipeline Authoring"
+ runner:
+ name: "Runner"
+ runner_saas:
+ name: "Runner SaaS"
+ pipeline_security:
+ name: "Pipeline Security"
+
+ package:
+ display_name: "Package"
+ section: ci
+ slack:
+ channel: s_package
+ groups:
+ package_registry:
+ name: Package Registry
+ container_registry:
+ name: Container Registry
+
+ monitor:
+ display_name: Monitor
+ section: analytics
+ groups:
+ analytics_instrumentation:
+ name: Analytics Instrumentation
+ product_analytics:
+ name: Product Analytics
+ observability:
+ name: "Observability"