From 63a7fb081dfdb8ee71ba7f0d663acd0df063102f Mon Sep 17 00:00:00 2001 From: Dave Troiano Date: Fri, 8 Jul 2022 12:08:51 -0400 Subject: [PATCH 1/3] update README to reflect latest CLI --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cb0dde66..2b07e666 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Here we use `v0.4.0` to reference the git tag for the `0.4.0` version, but the s ```bash git checkout v0.4.0 mvn clean package -confluent-hub install target/components/packages/confluentinc-kafka-connect-datagen-0.4.0.zip +confluent-hub install ./target/components/packages/confluentinc-kafka-connect-datagen-0.4.0.zip ``` ### Run connector in local install @@ -53,10 +53,10 @@ confluent-hub install target/components/packages/confluentinc-kafka-connect-data Here is an example of how to run the `kafka-connect-datagen` on a local Confluent Platform after it's been installed. [Configuration](#configuration) details are provided below. ```bash -confluent local start connect -confluent local config datagen-pageviews -- -d config/connector_pageviews.config -confluent local status connectors -confluent local consume test1 --value-format avro --max-messages 5 --property print.key=true --property key.deserializer=org.apache.kafka.common.serialization.StringDeserializer --from-beginning +confluent local services connect start +confluent local services connect connector config datagen-pageviews -c config/connector_pageviews.config +confluent local services connect status +confluent local services kafka consume pageviews --max-messages 5 --property print.key=true --property key.deserializer=org.apache.kafka.common.serialization.StringDeserializer --from-beginning ``` ## Install the connector from Confluent Hub into a [Kafka Connect](https://docs.confluent.io/current/connect/index.html) based Docker image From a4e775c012cde5d4d29f359ffcfcca229edcad7f Mon Sep 17 00:00:00 2001 From: Dave Troiano Date: Fri, 8 Jul 2022 12:11:20 -0400 Subject: [PATCH 2/3] rename Avro schema files to have .avsc extension This is standard, and editing in IDEs is friendlier with .avsc extension. --- config/connector_custom.config | 2 +- ...des_schema.avro => clickstream_codes_schema.avsc} | 0 ...ickstream_schema.avro => clickstream_schema.avsc} | 0 ...ers_schema.avro => clickstream_users_schema.avsc} | 0 .../{credit_cards.avro => credit_cards.avsc} | 0 .../resources/{inventory.avro => inventory.avsc} | 0 .../{orders_schema.avro => orders_schema.avsc} | 0 .../{pageviews_schema.avro => pageviews_schema.avsc} | 0 src/main/resources/{product.avro => product.avsc} | 0 src/main/resources/{purchase.avro => purchase.avsc} | 0 .../{ratings_schema.avro => ratings_schema.avsc} | 0 ...k_trades_schema.avro => stock_trades_schema.avsc} | 0 src/main/resources/{stores.avro => stores.avsc} | 0 .../{transactions.avro => transactions.avsc} | 0 ...y_map_schema.avro => users_array_map_schema.avsc} | 0 .../{users_schema.avro => users_schema.avsc} | 0 .../kafka/connect/datagen/DatagenConnectorTest.java | 12 ++++++------ 17 files changed, 7 insertions(+), 7 deletions(-) rename src/main/resources/{clickstream_codes_schema.avro => clickstream_codes_schema.avsc} (100%) rename src/main/resources/{clickstream_schema.avro => clickstream_schema.avsc} (100%) rename src/main/resources/{clickstream_users_schema.avro => clickstream_users_schema.avsc} (100%) rename src/main/resources/{credit_cards.avro => credit_cards.avsc} (100%) rename src/main/resources/{inventory.avro => inventory.avsc} (100%) rename src/main/resources/{orders_schema.avro => orders_schema.avsc} (100%) rename src/main/resources/{pageviews_schema.avro => pageviews_schema.avsc} (100%) rename src/main/resources/{product.avro => product.avsc} (100%) rename src/main/resources/{purchase.avro => purchase.avsc} (100%) rename src/main/resources/{ratings_schema.avro => ratings_schema.avsc} (100%) rename src/main/resources/{stock_trades_schema.avro => stock_trades_schema.avsc} (100%) rename src/main/resources/{stores.avro => stores.avsc} (100%) rename src/main/resources/{transactions.avro => transactions.avsc} (100%) rename src/main/resources/{users_array_map_schema.avro => users_array_map_schema.avsc} (100%) rename src/main/resources/{users_schema.avro => users_schema.avsc} (100%) diff --git a/config/connector_custom.config b/config/connector_custom.config index b46eb8b8..92ef31d3 100644 --- a/config/connector_custom.config +++ b/config/connector_custom.config @@ -3,7 +3,7 @@ "config": { "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", "kafka.topic": "test1", - "schema.filename": "users_schema.avro", + "schema.filename": "users_schema.avsc", "schema.keyfield": "userid", "key.converter": "org.apache.kafka.connect.storage.StringConverter", "value.converter": "org.apache.kafka.connect.json.JsonConverter", diff --git a/src/main/resources/clickstream_codes_schema.avro b/src/main/resources/clickstream_codes_schema.avsc similarity index 100% rename from src/main/resources/clickstream_codes_schema.avro rename to src/main/resources/clickstream_codes_schema.avsc diff --git a/src/main/resources/clickstream_schema.avro b/src/main/resources/clickstream_schema.avsc similarity index 100% rename from src/main/resources/clickstream_schema.avro rename to src/main/resources/clickstream_schema.avsc diff --git a/src/main/resources/clickstream_users_schema.avro b/src/main/resources/clickstream_users_schema.avsc similarity index 100% rename from src/main/resources/clickstream_users_schema.avro rename to src/main/resources/clickstream_users_schema.avsc diff --git a/src/main/resources/credit_cards.avro b/src/main/resources/credit_cards.avsc similarity index 100% rename from src/main/resources/credit_cards.avro rename to src/main/resources/credit_cards.avsc diff --git a/src/main/resources/inventory.avro b/src/main/resources/inventory.avsc similarity index 100% rename from src/main/resources/inventory.avro rename to src/main/resources/inventory.avsc diff --git a/src/main/resources/orders_schema.avro b/src/main/resources/orders_schema.avsc similarity index 100% rename from src/main/resources/orders_schema.avro rename to src/main/resources/orders_schema.avsc diff --git a/src/main/resources/pageviews_schema.avro b/src/main/resources/pageviews_schema.avsc similarity index 100% rename from src/main/resources/pageviews_schema.avro rename to src/main/resources/pageviews_schema.avsc diff --git a/src/main/resources/product.avro b/src/main/resources/product.avsc similarity index 100% rename from src/main/resources/product.avro rename to src/main/resources/product.avsc diff --git a/src/main/resources/purchase.avro b/src/main/resources/purchase.avsc similarity index 100% rename from src/main/resources/purchase.avro rename to src/main/resources/purchase.avsc diff --git a/src/main/resources/ratings_schema.avro b/src/main/resources/ratings_schema.avsc similarity index 100% rename from src/main/resources/ratings_schema.avro rename to src/main/resources/ratings_schema.avsc diff --git a/src/main/resources/stock_trades_schema.avro b/src/main/resources/stock_trades_schema.avsc similarity index 100% rename from src/main/resources/stock_trades_schema.avro rename to src/main/resources/stock_trades_schema.avsc diff --git a/src/main/resources/stores.avro b/src/main/resources/stores.avsc similarity index 100% rename from src/main/resources/stores.avro rename to src/main/resources/stores.avsc diff --git a/src/main/resources/transactions.avro b/src/main/resources/transactions.avsc similarity index 100% rename from src/main/resources/transactions.avro rename to src/main/resources/transactions.avsc diff --git a/src/main/resources/users_array_map_schema.avro b/src/main/resources/users_array_map_schema.avsc similarity index 100% rename from src/main/resources/users_array_map_schema.avro rename to src/main/resources/users_array_map_schema.avsc diff --git a/src/main/resources/users_schema.avro b/src/main/resources/users_schema.avsc similarity index 100% rename from src/main/resources/users_schema.avro rename to src/main/resources/users_schema.avsc diff --git a/src/test/java/io/confluent/kafka/connect/datagen/DatagenConnectorTest.java b/src/test/java/io/confluent/kafka/connect/datagen/DatagenConnectorTest.java index 196c5f00..52862915 100644 --- a/src/test/java/io/confluent/kafka/connect/datagen/DatagenConnectorTest.java +++ b/src/test/java/io/confluent/kafka/connect/datagen/DatagenConnectorTest.java @@ -100,7 +100,7 @@ public void shouldAllowSettingSchema() { @Test public void shouldAllowSettingSchemaFile() { clearSchemaSources(); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avsc"); Config validated = connector.validate(config); for (String k : DatagenConnectorConfig.schemaSourceKeys()) { @@ -115,7 +115,7 @@ public void shouldFailValidationWithMultipleSchemaSources() { "{\"namespace\":\"ksql\",\"name\":\"test_schema\",\"type\":\"record\",\"fields\":" + "[{\"name\":\"id\",\"type\":{\"type\":\"long\",\"arg.properties\"" + ":{\"iteration\":{\"start\":0}}}}]}"); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avsc"); Config validated = connector.validate(config); assertThat( @@ -163,7 +163,7 @@ public void shouldFailValidationWithInvalidFileName() { @Test public void shouldFailValidationWithInvalidSchemaFile() { clearSchemaSources(); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "invalid_users_schema.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "invalid_users_schema.avsc"); Config validated = connector.validate(config); assertThat( validated, @@ -174,7 +174,7 @@ public void shouldFailValidationWithInvalidSchemaFile() { @Test public void shouldFailValidationWithInvalidSchemaKeyField() { clearSchemaSources(); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avsc"); config.put(DatagenConnectorConfig.SCHEMA_KEYFIELD_CONF, "key_does_not_exist"); Config validated = connector.validate(config); assertThat( @@ -186,7 +186,7 @@ public void shouldFailValidationWithInvalidSchemaKeyField() { @Test public void shouldNotValidateSchemaKeyFieldWhenSchemaSourceFailsValidation() { clearSchemaSources(); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "invalid_users_schema.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "invalid_users_schema.avsc"); config.put(DatagenConnectorConfig.SCHEMA_KEYFIELD_CONF, "key_does_not_exist"); Config validated = connector.validate(config); assertThat( @@ -202,7 +202,7 @@ public void shouldNotValidateSchemaKeyFieldWhenSchemaSourceFailsValidation() { @Test public void shouldNotValidateSchemaKeyFieldWhenMultipleSchemaSourcesAreSet() { clearSchemaSources(); - config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avro"); + config.put(DatagenConnectorConfig.SCHEMA_FILENAME_CONF, "product.avsc"); config.put(DatagenConnectorConfig.QUICKSTART_CONF, "clickstream"); config.put(DatagenConnectorConfig.SCHEMA_KEYFIELD_CONF, "key_does_not_exist"); Config validated = connector.validate(config); From d4568bc4e45cdd6535ef9737bb1b1326d33bd035 Mon Sep 17 00:00:00 2001 From: Dave Troiano Date: Fri, 8 Jul 2022 12:15:22 -0400 Subject: [PATCH 3/3] GitHub datagen --- config/connector_github_assignees.config | 14 + config/connector_github_collaborators.config | 14 + config/connector_github_comments.config | 14 + config/connector_github_commits.config | 14 + config/connector_github_issues.config | 14 + config/connector_github_pull_requests.config | 14 + config/connector_github_releases.config | 14 + .../connector_github_review_comments.config | 14 + config/connector_github_reviews.config | 14 + config/connector_github_stargazers.config | 14 + .../kafka/connect/datagen/DatagenTask.java | 40 +- src/main/resources/github/assignees.avsc | 215 + src/main/resources/github/collaborators.avsc | 293 ++ src/main/resources/github/comments.avsc | 468 +++ src/main/resources/github/commits.avsc | 691 ++++ src/main/resources/github/issues.avsc | 1057 +++++ src/main/resources/github/pull_requests.avsc | 3657 +++++++++++++++++ src/main/resources/github/releases.avsc | 396 ++ .../resources/github/review_comments.avsc | 697 ++++ src/main/resources/github/reviews.avsc | 361 ++ src/main/resources/github/stargazers.avsc | 215 + .../connect/datagen/DatagenTaskTest.java | 5 + 22 files changed, 8220 insertions(+), 15 deletions(-) create mode 100644 config/connector_github_assignees.config create mode 100644 config/connector_github_collaborators.config create mode 100644 config/connector_github_comments.config create mode 100644 config/connector_github_commits.config create mode 100644 config/connector_github_issues.config create mode 100644 config/connector_github_pull_requests.config create mode 100644 config/connector_github_releases.config create mode 100644 config/connector_github_review_comments.config create mode 100644 config/connector_github_reviews.config create mode 100644 config/connector_github_stargazers.config create mode 100644 src/main/resources/github/assignees.avsc create mode 100644 src/main/resources/github/collaborators.avsc create mode 100644 src/main/resources/github/comments.avsc create mode 100644 src/main/resources/github/commits.avsc create mode 100644 src/main/resources/github/issues.avsc create mode 100644 src/main/resources/github/pull_requests.avsc create mode 100644 src/main/resources/github/releases.avsc create mode 100644 src/main/resources/github/review_comments.avsc create mode 100644 src/main/resources/github/reviews.avsc create mode 100644 src/main/resources/github/stargazers.avsc diff --git a/config/connector_github_assignees.config b/config/connector_github_assignees.config new file mode 100644 index 00000000..e98bec17 --- /dev/null +++ b/config/connector_github_assignees.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-assignees", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_assignees", + "quickstart": "github_assignees", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_collaborators.config b/config/connector_github_collaborators.config new file mode 100644 index 00000000..fa0ab426 --- /dev/null +++ b/config/connector_github_collaborators.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-collaborators", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_collaborators", + "quickstart": "github_collaborators", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_comments.config b/config/connector_github_comments.config new file mode 100644 index 00000000..951a72b0 --- /dev/null +++ b/config/connector_github_comments.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-comments", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_comments", + "quickstart": "github_comments", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_commits.config b/config/connector_github_commits.config new file mode 100644 index 00000000..f229f41f --- /dev/null +++ b/config/connector_github_commits.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-commits", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_commits", + "quickstart": "github_commits", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_issues.config b/config/connector_github_issues.config new file mode 100644 index 00000000..d37f6a5d --- /dev/null +++ b/config/connector_github_issues.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-issues", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_issues", + "quickstart": "github_issues", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_pull_requests.config b/config/connector_github_pull_requests.config new file mode 100644 index 00000000..84341977 --- /dev/null +++ b/config/connector_github_pull_requests.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-pull-requests", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_pull_requests", + "quickstart": "github_pull_requests", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_releases.config b/config/connector_github_releases.config new file mode 100644 index 00000000..16b56371 --- /dev/null +++ b/config/connector_github_releases.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-releases", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_releases", + "quickstart": "github_releases", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_review_comments.config b/config/connector_github_review_comments.config new file mode 100644 index 00000000..3a7c458b --- /dev/null +++ b/config/connector_github_review_comments.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-review-comments", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_review_comments", + "quickstart": "github_review_comments", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_reviews.config b/config/connector_github_reviews.config new file mode 100644 index 00000000..7156d0b1 --- /dev/null +++ b/config/connector_github_reviews.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-reviews", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_reviews", + "quickstart": "github_reviews", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/config/connector_github_stargazers.config b/config/connector_github_stargazers.config new file mode 100644 index 00000000..851a2eef --- /dev/null +++ b/config/connector_github_stargazers.config @@ -0,0 +1,14 @@ +{ + "name": "datagen-github-stargazers", + "config": { + "connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector", + "kafka.topic": "github_stargazers", + "quickstart": "github_stargazers", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "value.converter.schemas.enable": "false", + "max.interval": 100, + "iterations": 100, + "tasks.max": "1" + } +} diff --git a/src/main/java/io/confluent/kafka/connect/datagen/DatagenTask.java b/src/main/java/io/confluent/kafka/connect/datagen/DatagenTask.java index 83699098..369bc31f 100644 --- a/src/main/java/io/confluent/kafka/connect/datagen/DatagenTask.java +++ b/src/main/java/io/confluent/kafka/connect/datagen/DatagenTask.java @@ -68,21 +68,31 @@ public class DatagenTask extends SourceTask { private Random random; protected enum Quickstart { - CLICKSTREAM_CODES("clickstream_codes_schema.avro", "code"), - CLICKSTREAM("clickstream_schema.avro", "ip"), - CLICKSTREAM_USERS("clickstream_users_schema.avro", "user_id"), - ORDERS("orders_schema.avro", "orderid"), - RATINGS("ratings_schema.avro", "rating_id"), - USERS("users_schema.avro", "userid"), - USERS_("users_array_map_schema.avro", "userid"), - PAGEVIEWS("pageviews_schema.avro", "viewtime"), - STOCK_TRADES("stock_trades_schema.avro", "symbol"), - INVENTORY("inventory.avro", "id"), - PRODUCT("product.avro", "id"), - PURCHASES("purchase.avro", "id"), - TRANSACTIONS("transactions.avro", "transaction_id"), - STORES("stores.avro", "store_id"), - CREDIT_CARDS("credit_cards.avro", "card_id"); + CLICKSTREAM_CODES("clickstream_codes_schema.avsc", "code"), + CLICKSTREAM("clickstream_schema.avsc", "ip"), + CLICKSTREAM_USERS("clickstream_users_schema.avsc", "user_id"), + ORDERS("orders_schema.avsc", "orderid"), + RATINGS("ratings_schema.avsc", "rating_id"), + USERS("users_schema.avsc", "userid"), + USERS_("users_array_map_schema.avsc", "userid"), + PAGEVIEWS("pageviews_schema.avsc", "viewtime"), + STOCK_TRADES("stock_trades_schema.avsc", "symbol"), + INVENTORY("inventory.avsc", "id"), + PRODUCT("product.avsc", "id"), + PURCHASES("purchase.avsc", "id"), + TRANSACTIONS("transactions.avsc", "transaction_id"), + STORES("stores.avsc", "store_id"), + CREDIT_CARDS("credit_cards.avsc", "card_id"), + GITHUB_ASSIGNEES("github/assignees.avsc", "id"), + GITHUB_COLLABORATORS("github/collaborators.avsc", "id"), + GITHUB_COMMENTS("github/comments.avsc", "id"), + GITHUB_COMMITS("github/commits.avsc", "id"), + GITHUB_ISSUES("github/issues.avsc", "id"), + GITHUB_PULL_REQUESTS("github/pull_requests.avsc", "id"), + GITHUB_RELEASES("github/releases.avsc", "id"), + GITHUB_REVIEW_COMMENTS("github/review_comments.avsc", "id"), + GITHUB_REVIEWS("github/reviews.avsc", "id"), + GITHUB_STARGAZERS("github/stargazers.avsc", "id"); static final Set configValues = new HashSet<>(); diff --git a/src/main/resources/github/assignees.avsc b/src/main/resources/github/assignees.avsc new file mode 100644 index 00000000..935af097 --- /dev/null +++ b/src/main/resources/github/assignees.avsc @@ -0,0 +1,215 @@ +{ + "namespace": "datagen.github", + "name": "github_assignees", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "ASSIGNEES" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9]{20}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/collaborators.avsc b/src/main/resources/github/collaborators.avsc new file mode 100644 index 00000000..b379482e --- /dev/null +++ b/src/main/resources/github/collaborators.avsc @@ -0,0 +1,293 @@ +{ + "namespace": "datagen.github", + "name": "github_collaborators", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "COLLABORATORS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + }, + { + "name": "permissions", + "type": { + "type": "record", + "name": "permissions_object", + "fields": [ + { + "name": "admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "maintain", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "push", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "triage", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "pull", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + } + ] + } + }, + { + "name": "role_name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "write" + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9]{20}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/comments.avsc b/src/main/resources/github/comments.avsc new file mode 100644 index 00000000..4e25ab61 --- /dev/null +++ b/src/main/resources/github/comments.avsc @@ -0,0 +1,468 @@ +{ + "namespace": "datagen.github", + "name": "github_comments", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "COMMENTS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/comments/[1-9]{10}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/[1-9]\\#issuecomment-[1-9]{10}" + } + } + }, + { + "name": "issue_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1175477000, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "author_association", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "OWNER", + "COLLABORATOR" + ] + } + } + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body" + } + } + }, + { + "name": "reactions", + "type": { + "type": "record", + "name": "reactions_object", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/comments/[1-9]{10}/reactions" + } + } + }, + { + "name": "total_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "plus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "minus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "laugh", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "hooray", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "confused", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "heart", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "rocket", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "eyes", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + } + ] + } + }, + { + "name": "performed_via_github_app", + "type": [ + "null", + { + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + ] + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9]{20}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/commits.avsc b/src/main/resources/github/commits.avsc new file mode 100644 index 00000000..6b07eb6b --- /dev/null +++ b/src/main/resources/github/commits.avsc @@ -0,0 +1,691 @@ +{ + "namespace": "datagen.github", + "name": "github_commits", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "COMMITS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9_]{40}" + } + } + }, + { + "name": "commit", + "type": { + "type": "record", + "name": "commit_object", + "fields": [ + { + "name": "author", + "type": { + "type": "record", + "name": "commit_author_object", + "fields": [ + { + "name": "name", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "Jessica Smith", + "Michael Johnson", + "Ashley Williams", + "Chris Brown", + "Emily Jones", + "Matthew Miller", + "Sarah Davis", + "Joshua Garcia" + ] + } + } + }, + { + "name": "email", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[0-20]\\@domain\\.com" + } + } + }, + { + "name": "date", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + } + ] + } + }, + { + "name": "committer", + "type": { + "type": "record", + "name": "commit_committer_object", + "fields": [ + { + "name": "name", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "GitHub" + ] + } + } + }, + { + "name": "email", + "type":{ + "type": "string", + "regex": "noreply\\@github\\.com" + } + }, + { + "name": "date", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + } + ] + } + }, + { + "name": "message", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Merge pull request \\#[1-9]{2} from org[1-9]{2}/branch-patch-[1-9]{2}\\\\n\\\\nUpdate" + } + } + }, + { + "name": "tree", + "type": { + "type": "record", + "name": "tree_object", + "fields": [ + { + "name": "sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/trees/[a-z0-9]{40}" + } + } + } + ] + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/trees/[a-z0-9]{40}" + } + } + }, + { + "name": "comment_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 3 + ] + } + } + }, + { + "name": "verification", + "type": { + "type": "record", + "name": "verification_object", + "fields": [ + { + "name": "verified", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true + ] + } + } + }, + { + "name": "reason", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "valid" + ] + } + } + }, + { + "name": "signature", + "type":{ + "type": "string", + "arg.properties": { + "regex": "-----BEGIN PGP SIGNATURE-----\\\\n[a-z0-9]{512}\\\\n-----END PGP SIGNATURE-----" + } + } + }, + { + "name": "payload", + "type":{ + "type": "string", + "arg.properties": { + "regex": "tree [a-z0-9]{40}\\\\nparent [a-z0-9]{40}\\\\nparent [a-z0-9]{40}\\\\nauthor First Last \\<\\> 1657053439 -0400\\\\ncommitter GitHub \\ 1657053439 -0400\\\\n\\\\nMerge pull request \\#[1-9]{2} from org[1-9]{2}/patch-[1-9]{2}\\\\n\\\\nUpdate" + } + } + } + ] + } + } + ] + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/commits/[a-z0-9]{40}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/commit/[a-z0-9]{40}" + } + } + }, + { + "name": "comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/commits/[a-z0-9]{40}/comments" + } + } + }, + { + "name": "author", + "type": { + "type": "record", + "name": "author_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "committer", + "type": { + "type": "record", + "name": "committer_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "parents", + "type": { + "type": "array", + "items": { + "name": "parents_object", + "type": "record", + "fields": [ + { + "name": "sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/commits/[a-z0-9]{40}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github.com/org[1-9]{2}/repo[1-9]{2}/commit/[a-z0-9]{40}" + } + } + } + ] + }, + "arg.properties": { + "length": 2 + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/issues.avsc b/src/main/resources/github/issues.avsc new file mode 100644 index 00000000..a8d844af --- /dev/null +++ b/src/main/resources/github/issues.avsc @@ -0,0 +1,1057 @@ +{ + "namespace": "datagen.github", + "name": "github_issues", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "ISSUES" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}" + } + } + }, + { + "name": "repository_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "labels_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/labels\\{/name\\}" + } + } + }, + { + "name": "comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/comments" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/events" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 9878922932, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9_]{40}" + } + } + }, + { + "name": "number", + "type": { + "type": "int", + "arg.properties": { + "iteration": { + "start": 1 + } + } + } + }, + { + "name": "title", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Title [1-9]{20}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "labels", + "type": { + "type": "array", + "items": { + "name": "labels_object", + "type": "record", + "fields": [ + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 4300024000, + "step": 1000 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/labels/enhancement" + } + } + }, + { + "name": "name", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "enhancement", + "bug", + "documentation" + ] + } + } + }, + { + "name": "default", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "description", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Description [1-9]{2}" + } + } + } + ] + }, + "arg.properties": { + "length": 2 + } + } + }, + { + "name": "state", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "open", + "closed" + ] + } + } + }, + { + "name": "locked", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "assignee", + "type": { + "type": "record", + "name": "assignee_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "assignees", + "type": { + "type": "array", + "items": { + "name": "assignees_object", + "type": "record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + }, + "arg.properties": { + "length": 2 + } + } + }, + { + "name": "milestone", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "comments", + "type":{ + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8 + ] + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "closed_at", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + ] + }, + { + "name": "author_association", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "OWNER", + "COLLABORATOR" + ] + } + } + }, + { + "name": "active_lock_reason", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body [0-9]{3}" + } + } + }, + { + "name": "reactions", + "type": { + "type": "record", + "name": "reactions_object", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/reactions" + } + } + }, + { + "name": "total_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "plus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "minus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "laugh", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "hooray", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "confused", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "heart", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "rocket", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "eyes", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + } + ] + } + }, + { + "name": "timeline_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/timeline" + } + } + }, + { + "name": "performed_via_github_app", + "type": [ + "null", + { + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + ] + }, + { + "name": "state_reason", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[1-9][0-9]{8}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/pull_requests.avsc b/src/main/resources/github/pull_requests.avsc new file mode 100644 index 00000000..96d702e2 --- /dev/null +++ b/src/main/resources/github/pull_requests.avsc @@ -0,0 +1,3657 @@ +{ + "namespace": "datagen.github", + "name": "github_pull_requests", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "PULL_REQUESTS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 9878922932, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9_]{40}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/[1-9]{2}" + } + } + }, + { + "name": "diff_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/[1-9]{2}\\.diff" + } + } + }, + { + "name": "patch_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/[1-9]{2}\\.patch" + } + } + }, + { + "name": "issue_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}" + } + } + }, + { + "name": "number", + "type": { + "type": "int", + "arg.properties": { + "iteration": { + "start": 1 } + } + } + }, + { + "name": "state", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "open", + "closed" + ] + } + } + }, + { + "name": "locked", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "title", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Title [0-9]{5}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body" + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "closed_at", + "type": { + "type": "long", + "arg.properties": { + "options": [ + 1 + ] + } + } + }, + { + "name": "merged_at", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "options": [ + 1 + ] + } + } + ] + }, + { + "name": "merge_commit_sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "assignee", + "type": { + "type": "record", + "name": "assignee_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "assignees", + "type": { + "type": "array", + "items": { + "name": "assignees_object", + "type": "record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + }, + "arg.properties": { + "length": 2 + } + } + }, + { + "name": "requested_reviewers", + "type": { + "type": "array", + "items": { + "name": "requested_reviewers_object", + "type": "record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + }, + "arg.properties": { + "length": 2 + } + } + }, + { + "name": "requested_teams", + "type": { + "type": "string", + "arg.properties": { + "options": [ + ": " + ] + } + } + }, + { + "name": "labels", + "type": { + "type": "string", + "arg.properties": { + "options": [ + ": " + ] + } + } + }, + { + "name": "milestone", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "draft", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + }, + { + "name": "commits_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}/commits" + } + } + }, + { + "name": "review_comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}/comments" + } + } + }, + { + "name": "review_comment_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/comments\\{/number\\}" + } + } + }, + { + "name": "comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/comments" + } + } + }, + { + "name": "statuses_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/statuses/10677596daf4a26909dbd5f92054a6d34bcb9314" + } + } + }, + { + "name": "head", + "type": { + "type": "record", + "name": "head_object", + "fields": [ + { + "name": "label", + "type":{ + "type": "string", + "arg.properties": { + "regex": "org[1-9]{2}:org[1-9]{2}-patch-[1-9]" + } + } + }, + { + "name": "ref", + "type":{ + "type": "string", + "arg.properties": { + "regex": "org[1-9]{2}-patch-[1-9]" + } + } + }, + { + "name": "sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "head_user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "repo", + "type": { + "type": "record", + "name": "head_repo_object", + "fields": [ + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 510885455, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{20}" + } + } + }, + { + "name": "name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "repo[1-9]{2}" + } + } + }, + { + "name": "full_name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "private", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "owner", + "type": { + "type": "record", + "name": "head_repo_owner_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "description", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Description" + } + } + }, + { + "name": "fork", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "forks_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/forks" + } + } + }, + { + "name": "keys_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/keys\\{/key_id\\}" + } + } + }, + { + "name": "collaborators_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/collaborators\\{/collaborator\\}" + } + } + }, + { + "name": "teams_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/teams" + } + } + }, + { + "name": "hooks_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/hooks" + } + } + }, + { + "name": "issue_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/events\\{/number\\}" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/events" + } + } + }, + { + "name": "assignees_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/assignees\\{/user\\}" + } + } + }, + { + "name": "branches_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/branches\\{/branch\\}" + } + } + }, + { + "name": "tags_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/tags" + } + } + }, + { + "name": "blobs_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/blobs\\{/sha\\}" + } + } + }, + { + "name": "git_tags_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/tags\\{/sha\\}" + } + } + }, + { + "name": "git_refs_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/refs\\{/sha\\}" + } + } + }, + { + "name": "trees_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/trees\\{/sha\\}" + } + } + }, + { + "name": "statuses_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/statuses/\\{sha\\}" + } + } + }, + { + "name": "languages_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/languages" + } + } + }, + { + "name": "stargazers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/stargazers" + } + } + }, + { + "name": "contributors_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/contributors" + } + } + }, + { + "name": "subscribers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/subscribers" + } + } + }, + { + "name": "subscription_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/subscription" + } + } + }, + { + "name": "commits_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/commits\\{/sha\\}" + } + } + }, + { + "name": "git_commits_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/commits\\{/sha\\}" + } + } + }, + { + "name": "comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/comments\\{/number\\}" + } + } + }, + { + "name": "issue_comment_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/comments\\{/number\\}" + } + } + }, + { + "name": "contents_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/contents/\\{\\+path\\}" + } + } + }, + { + "name": "compare_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/compare/\\{base\\}\\.\\.\\.\\{head\\}" + } + } + }, + { + "name": "merges_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/merges" + } + } + }, + { + "name": "archive_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/\\{archive_format\\}\\{/ref\\}" + } + } + }, + { + "name": "downloads_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/downloads" + } + } + }, + { + "name": "issues_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues\\{/number\\}" + } + } + }, + { + "name": "pulls_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls\\{/number\\}" + } + } + }, + { + "name": "milestones_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/milestones\\{/number\\}" + } + } + }, + { + "name": "notifications_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/notifications\\{\\?since\\,all\\,participating\\}" + } + } + }, + { + "name": "labels_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/labels\\{/name\\}" + } + } + }, + { + "name": "releases_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/releases\\{/id\\}" + } + } + }, + { + "name": "deployments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/deployments" + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "pushed_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "git_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "git://github\\.com/org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "ssh_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "git\\@github\\.com:org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "clone_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "svn_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "homepage", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://homepage\\.com" + } + } + }, + { + "name": "size", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0 + ] + } + } + }, + { + "name": "stargazers_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128, + 512 + ] + } + } + }, + { + "name": "watchers_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128, + 512 + ] + } + } + }, + { + "name": "language", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "has_issues", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_projects", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_downloads", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_wiki", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_pages", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "forks_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128 + ] + } + } + }, + { + "name": "mirror_url", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "archived", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "disabled", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "open_issues_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "license", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "allow_forking", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "is_template", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "web_commit_signoff_required", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "topics", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + }, + { + "name": "visibility", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "public", + "private" + ] + } + } + }, + { + "name": "forks", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "open_issues", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "watchers", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "default_branch", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "main" + ] + } + } + } + ] + } + } + ] + } + }, + { + "name": "base", + "type": { + "type": "record", + "name": "base_object", + "fields": [ + { + "name": "label", + "type":{ + "type": "string", + "arg.properties": { + "regex": "org[1-9]{2}:org[1-9]{2}-patch-[1-9]" + } + } + }, + { + "name": "ref", + "type":{ + "type": "string", + "arg.properties": { + "regex": "repo[1-9]{2}" + } + } + }, + { + "name": "sha", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z0-9]{40}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "base_user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "repo", + "type": { + "type": "record", + "name": "base_repo_object", + "fields": [ + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 510885455, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{20}" + } + } + }, + { + "name": "name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "repo[1-9]{2}" + } + } + }, + { + "name": "full_name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "private", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "owner", + "type": { + "type": "record", + "name": "base_repo_owner_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "description", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Description" + } + } + }, + { + "name": "fork", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "forks_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/forks" + } + } + }, + { + "name": "keys_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/keys\\{/key_id\\}" + } + } + }, + { + "name": "collaborators_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/collaborators\\{/collaborator\\}" + } + } + }, + { + "name": "teams_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/teams" + } + } + }, + { + "name": "hooks_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/hooks" + } + } + }, + { + "name": "issue_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/events\\{/number\\}" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/events" + } + } + }, + { + "name": "assignees_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/assignees\\{/user\\}" + } + } + }, + { + "name": "branches_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/branches\\{/branch\\}" + } + } + }, + { + "name": "tags_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/tags" + } + } + }, + { + "name": "blobs_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/blobs\\{/sha\\}" + } + } + }, + { + "name": "git_tags_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/tags\\{/sha\\}" + } + } + }, + { + "name": "git_refs_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/refs\\{/sha\\}" + } + } + }, + { + "name": "trees_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/trees\\{/sha\\}" + } + } + }, + { + "name": "statuses_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/statuses/\\{sha\\}" + } + } + }, + { + "name": "languages_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/languages" + } + } + }, + { + "name": "stargazers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/stargazers" + } + } + }, + { + "name": "contributors_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/contributors" + } + } + }, + { + "name": "subscribers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/subscribers" + } + } + }, + { + "name": "subscription_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/subscription" + } + } + }, + { + "name": "commits_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/commits\\{/sha\\}" + } + } + }, + { + "name": "git_commits_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/git/commits\\{/sha\\}" + } + } + }, + { + "name": "comments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/comments\\{/number\\}" + } + } + }, + { + "name": "issue_comment_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/comments\\{/number\\}" + } + } + }, + { + "name": "contents_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/contents/\\{\\+path\\}" + } + } + }, + { + "name": "compare_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/compare/\\{base\\}\\.\\.\\.\\{head\\}" + } + } + }, + { + "name": "merges_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/merges" + } + } + }, + { + "name": "archive_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/\\{archive_format\\}\\{/ref\\}" + } + } + }, + { + "name": "downloads_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/downloads" + } + } + }, + { + "name": "issues_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues\\{/number\\}" + } + } + }, + { + "name": "pulls_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls\\{/number\\}" + } + } + }, + { + "name": "milestones_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/milestones\\{/number\\}" + } + } + }, + { + "name": "notifications_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/notifications\\{\\?since\\,all\\,participating\\}" + } + } + }, + { + "name": "labels_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/labels\\{/name\\}" + } + } + }, + { + "name": "releases_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/releases\\{/id\\}" + } + } + }, + { + "name": "deployments_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/deployments" + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "pushed_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "git_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "git://github\\.com/org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "ssh_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "git\\@github\\.com:org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "clone_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}\\.git" + } + } + }, + { + "name": "svn_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}" + } + } + }, + { + "name": "homepage", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://homepage\\.com" + } + } + }, + { + "name": "size", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0 + ] + } + } + }, + { + "name": "stargazers_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128, + 512 + ] + } + } + }, + { + "name": "watchers_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128, + 512 + ] + } + } + }, + { + "name": "language", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "has_issues", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_projects", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_downloads", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_wiki", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "has_pages", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "forks_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16, + 128 + ] + } + } + }, + { + "name": "mirror_url", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "archived", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "disabled", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "open_issues_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "license", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "allow_forking", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "is_template", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "web_commit_signoff_required", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "topics", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + }, + { + "name": "visibility", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "public", + "private" + ] + } + } + }, + { + "name": "forks", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "open_issues", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "watchers", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "default_branch", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "main" + ] + } + } + } + ] + } + } + ] + } + }, + { + "name": "_links", + "type": { + "type": "record", + "name": "_links_object", + "fields": [ + { + "name": "self", + "type": { + "type": "record", + "name": "self_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}" + } + } + } + ] + } + }, + { + "name": "html", + "type": { + "type": "record", + "name": "html_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/[1-9]{2}" + } + } + } + ] + } + }, + { + "name": "issue", + "type": { + "type": "record", + "name": "issue_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}" + } + } + } + ] + } + }, + { + "name": "comments", + "type": { + "type": "record", + "name": "comments_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/issues/[1-9]{2}/comments" + } + } + } + ] + } + }, + { + "name": "review_comments", + "type": { + "type": "record", + "name": "review_comments_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}/comments" + } + } + } + ] + } + }, + { + "name": "review_comment", + "type": { + "type": "record", + "name": "review_comment_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/comments\\{/number\\}" + } + } + } + ] + } + }, + { + "name": "commits", + "type": { + "type": "record", + "name": "commits_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/[1-9]{2}/commits" + } + } + } + ] + } + }, + { + "name": "statuses", + "type": { + "type": "record", + "name": "statuses_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/statuses/10677596daf4a26909dbd5f92054a6d34bcb9314" + } + } + } + ] + } + } + ] + } + }, + { + "name": "author_association", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "OWNER", + "COLLABORATOR" + ] + } + } + }, + { + "name": "auto_merge", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + }, + { + "name": "active_lock_reason", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + ] + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[1-9][0-9]{8}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/releases.avsc b/src/main/resources/github/releases.avsc new file mode 100644 index 00000000..9b8ed8fe --- /dev/null +++ b/src/main/resources/github/releases.avsc @@ -0,0 +1,396 @@ +{ + "namespace": "datagen.github", + "name": "github_releases", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "RELEASES" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/releases/[1-9]{8}" + } + } + }, + { + "name": "assets_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/releases/[1-9]{8}/assets" + } + } + }, + { + "name": "upload_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://uploads\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/releases/[1-9]{8}/assets\\{\\?name,label\\}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/releases/tag/tag[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 9878922932, + "step": 20 + } + } + } + }, + { + "name": "author", + "type": { + "type": "record", + "name": "author_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}" + } + } + }, + { + "name": "tag_name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "tag[0-9]{2}" + } + } + }, + { + "name": "target_commitish", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "main" + ] + } + } + }, + { + "name": "name", + "type":{ + "type": "string", + "arg.properties": { + "regex": "release [0-9]{2}" + } + } + }, + { + "name": "draft", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "prerelease", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + true, + false + ] + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "published_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "assets", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "" + ] + } + } + }, + { + "name": "tarball_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/tarball/tag[1-9]{2}" + } + } + }, + { + "name": "zipball_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/zipball/tag[1-9]{2}" + } + } + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body [0-9]{8}" + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[1-9][0-9]{8}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/review_comments.avsc b/src/main/resources/github/review_comments.avsc new file mode 100644 index 00000000..216fe742 --- /dev/null +++ b/src/main/resources/github/review_comments.avsc @@ -0,0 +1,697 @@ +{ + "namespace": "datagen.github", + "name": "github_review_comments", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "REVIEW_COMMENTS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/comments/[1-9]{8}" + } + } + }, + { + "name": "pull_request_review_id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1039182000, + "step": 1000 + } + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 918185966, + "step": 1 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9_]{40}" + } + } + }, + { + "name": "diff_hunk", + "type":{ + "type": "string", + "arg.properties": { + "regex": "\\@\\@ \\-1,2 \\+1,2 \\@\\@\\\\n \\# repo[1-9]{2}\\\\n\\-first\\n\\+next" + } + } + }, + { + "name": "path", + "type":{ + "type": "string", + "arg.properties": { + "regex": "File[1-9]{2}" + } + } + }, + { + "name": "position", + "type": { + "type": "int", + "arg.properties": { + "iteration": { + "start": 1 } + } + } + }, + { + "name": "original_position", + "type": { + "type": "int", + "arg.properties": { + "iteration": { + "start": 1 } + } + } + }, + { + "name": "commit_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9a-f]{40}" + } + } + }, + { + "name": "original_commit_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9a-f]{40}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body [0-9]{3}" + } + } + }, + { + "name": "created_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "updated_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/3\\#discussion_r[1-9]{8}" + } + } + }, + { + "name": "pull_request_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls[1-9]{2}" + } + } + }, + { + "name": "author_association", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "OWNER", + "COLLABORATOR" + ] + } + } + }, + { + "name": "_links", + "type": { + "type": "record", + "name": "_links_object", + "fields": [ + { + "name": "self", + "type": { + "type": "record", + "name": "self_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/comments/[1-9]{8}" + } + } + } + ] + } + }, + { + "name": "html", + "type": { + "type": "record", + "name": "html_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull/3\\#discussion_r[1-9]{8}" + } + } + } + ] + } + }, + { + "name": "pull_request", + "type": { + "type": "record", + "name": "pull_request_object", + "fields": [ + { + "name": "href", + "type": { + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls[1-9]{2}" + } + } + } + ] + } + } + ] + } + }, + { + "name": "reactions", + "type": { + "type": "record", + "name": "reactions_object", + "fields": [ + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls/comments/[1-9]{8}/reactions" + } + } + }, + { + "name": "total_count", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 2, + 4, + 8, + 16 + ] + } + } + }, + { + "name": "plus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "minus1", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "laugh", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "hooray", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "confused", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "heart", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "rocket", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + }, + { + "name": "eyes", + "type": { + "type": "int", + "arg.properties": { + "options": [ + 0, + 1, + 2 + ] + } + } + } + ] + } + }, + { + "name": "start_line", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "options": [ + 1, + 4, + 8, + 32, + 128, + 256 + ] + } + } + ] + }, + { + "name": "original_start_line", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "options": [ + 1 + ] + } + } + ] + }, + { + "name": "start_side", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "LEFT", + "RIGHT" + ] + } + } + ] + }, + { + "name": "line", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "options": [ + 1, + 4, + 8, + 32, + 128, + 256 + ] + } + } + ] + }, + { + "name": "original_line", + "type": [ + "null", + { + "type": "long", + "arg.properties": { + "options": [ + 1, + 4, + 8, + 32, + 128, + 256 + ] + } + } + ] + }, + { + "name": "side", + "type": [ + "null", + { + "type": "string", + "arg.properties": { + "options": [ + "LEFT", + "RIGHT" + ] + } + } + ] + }, + { + "name": "in_reply_to_id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 914285700, + "step": 100 + } + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[1-9][0-9]{8}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/reviews.avsc b/src/main/resources/github/reviews.avsc new file mode 100644 index 00000000..119c029d --- /dev/null +++ b/src/main/resources/github/reviews.avsc @@ -0,0 +1,361 @@ +{ + "namespace": "datagen.github", + "name": "github_reviews", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "REVIEWS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1029182000, + "step": 1000 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9_]{40}" + } + } + }, + { + "name": "user", + "type": { + "type": "record", + "name": "user_object", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "body", + "type":{ + "type": "string", + "arg.properties": { + "regex": "Body [0-9]{3}" + } + } + }, + { + "name": "state", + "type":{ + "type": "string", + "arg.properties": { + "options": [ + "COMMENTED" + ] + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull[1-9]{2}\\#pullrequestreview-[1-9][0-9]{8}" + } + } + }, + { + "name": "pull_request_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls[1-9]{2}" + } + } + }, + { + "name": "author_association", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "OWNER", + "COLLABORATOR" + ] + } + } + }, + { + "name": "_links", + "type": { + "type": "record", + "name": "_links_object", + "fields": [ + { + "name": "html", + "type": { + "type": "record", + "name": "html_object", + "fields": [ + { + "name": "href", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}/repo[1-9]{2}/pull[1-9]{2}\\#pullrequestreview-[1-9][0-9]{8}" + } + } + } + ] + } + }, + { + "name": "pull_request", + "type": { + "type": "record", + "name": "pull_request_object", + "fields": [ + { + "name": "href", + "type": { + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/repos/org[1-9]{2}/repo[1-9]{2}/pulls[1-9]{2}" + } + } + } + ] + } + } + ] + } + }, + { + "name": "submitted_at", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "commit_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9a-f]{40}" + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[1-9][0-9]{8}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/github/stargazers.avsc b/src/main/resources/github/stargazers.avsc new file mode 100644 index 00000000..31787c37 --- /dev/null +++ b/src/main/resources/github/stargazers.avsc @@ -0,0 +1,215 @@ +{ + "namespace": "datagen.github", + "name": "github_stargazers", + "type": "record", + "fields": [ + { + "name": "type", + "type": { + "type": "string", + "arg.properties": { + "options": [ + "STARGAZERS" + ] + } + } + }, + { + "name": "createdAt", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 1657053439000, + "step": 30000 + } + } + } + }, + { + "name": "data", + "type": { + "type": "record", + "name": "data_record", + "fields": [ + { + "name": "login", + "type":{ + "type": "string", + "arg.properties": { + "regex": "user[1-9]{2}" + } + } + }, + { + "name": "id", + "type": { + "type": "long", + "arg.properties": { + "iteration": { + "start": 829002, + "step": 20 + } + } + } + }, + { + "name": "node_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-zA-Z0-9]{40}=" + } + } + }, + { + "name": "avatar_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://avatars\\.githubusercontent\\.com/u/[a-z]{8}" + } + } + }, + { + "name": "gravatar_id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[a-z]{8}" + } + } + }, + { + "name": "url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}" + } + } + }, + { + "name": "html_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://github\\.com/org[1-9]{2}" + } + } + }, + { + "name": "followers_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/followers" + } + } + }, + { + "name": "following_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/following\\{/other_user\\}" + } + } + }, + { + "name": "gists_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/gists\\{/gist_id\\}" + } + } + }, + { + "name": "starred_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/starred\\{/owner\\}\\{/repo\\}" + } + } + }, + { + "name": "subscriptions_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/subscriptions" + } + } + }, + { + "name": "organizations_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/orgs" + } + } + }, + { + "name": "repos_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/repos" + } + } + }, + { + "name": "events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/events\\{/privacy\\}" + } + } + }, + { + "name": "received_events_url", + "type":{ + "type": "string", + "arg.properties": { + "regex": "https://api\\.github\\.com/users/org[1-9]{2}/received_events" + } + } + }, + { + "name": "type", + "type":{ + "type": "string", + "arg.properties": { + "regex": "User" + } + } + }, + { + "name": "site_admin", + "type":{ + "type": "boolean", + "arg.properties": { + "options": [ + false + ] + } + } + } + ] + } + }, + { + "name": "id", + "type":{ + "type": "string", + "arg.properties": { + "regex": "[0-9]{20}" + } + } + } + ] +} \ No newline at end of file diff --git a/src/test/java/io/confluent/kafka/connect/datagen/DatagenTaskTest.java b/src/test/java/io/confluent/kafka/connect/datagen/DatagenTaskTest.java index 39561fc6..112df2d8 100644 --- a/src/test/java/io/confluent/kafka/connect/datagen/DatagenTaskTest.java +++ b/src/test/java/io/confluent/kafka/connect/datagen/DatagenTaskTest.java @@ -156,6 +156,11 @@ public void shouldGenerateFilesForStoresQuickstart() throws Exception { generateAndValidateRecordsFor(Quickstart.STORES); } + @Test + public void shouldGenerateFilesForGitHubCommitsQuickstart() throws Exception { + generateAndValidateRecordsFor(Quickstart.GITHUB_COMMITS); + } + @Test public void shouldUseConfiguredKeyFieldForQuickstartIfProvided() throws Exception { // Do the same thing with schema text