Class: Webhookdb::Replicator::GithubIssueCommentV1

Inherits:
Base
  • Object
show all
Includes:
Appydays::Loggable, GithubRepoV1Mixin
Defined in:
lib/webhookdb/replicator/github_issue_comment_v1.rb

Constant Summary

Constants included from GithubRepoV1Mixin

Webhookdb::Replicator::GithubRepoV1Mixin::API_VERSION, Webhookdb::Replicator::GithubRepoV1Mixin::JSON_CONTENT_TYPE

Constants inherited from Base

Base::MAX_INDEX_NAME_LENGTH

Constants included from DBAdapter::ColumnTypes

DBAdapter::ColumnTypes::BIGINT, DBAdapter::ColumnTypes::BIGINT_ARRAY, DBAdapter::ColumnTypes::BOOLEAN, DBAdapter::ColumnTypes::COLUMN_TYPES, DBAdapter::ColumnTypes::DATE, DBAdapter::ColumnTypes::DECIMAL, DBAdapter::ColumnTypes::DOUBLE, DBAdapter::ColumnTypes::FLOAT, DBAdapter::ColumnTypes::INTEGER, DBAdapter::ColumnTypes::INTEGER_ARRAY, DBAdapter::ColumnTypes::OBJECT, DBAdapter::ColumnTypes::TEXT, DBAdapter::ColumnTypes::TEXT_ARRAY, DBAdapter::ColumnTypes::TIMESTAMP, DBAdapter::ColumnTypes::UUID

Instance Attribute Summary

Attributes included from GithubRepoV1Mixin

#service_integration

Attributes inherited from Base

#service_integration

Class Method Summary collapse

Instance Method Summary collapse

Methods included from GithubRepoV1Mixin

_api_docs_url, #_fetch_backfill_page, #_fetch_enrichment, #_fullreponame, #_handle_repo_name_state_machine, #_http_get, #_is_repo_public?, #_mixin_fetch_resource_if_field_missing, #_prepare_for_insert, #_reponame, #_repoowner, #_resource_and_event, #_resource_to_data, #_update_where_expr, #_valid_repo_name?, #_verify_backfill_err_msg, #_webhook_response, #_webhook_state_change_fields, #calculate_backfill_state_machine, #calculate_webhook_state_machine, #process_state_change

Methods inherited from Base

#_any_subscriptions_to_notify?, #_backfill_state_change_fields, #_backfillers, #_clear_backfill_information, #_clear_webook_information, #_coalesce_excluded_on_update, #_enqueue_backfill_jobs, #_extra_index_specs, #_fetch_enrichment, #_find_dependency_candidate, #_notify_dependents, #_parallel_backfill, #_prepare_for_insert, #_publish_rowupsert, #_resource_and_event, #_resource_to_data, #_store_enrichment_body?, #_to_json, #_update_where_expr, #_upsert_update_expr, #_upsert_webhook, #_verify_backfill_err_msg, #_webhook_response, #_webhook_state_change_fields, #admin_dataset, #backfill, #backfill_not_supported_message, #calculate_and_backfill_state_machine, #calculate_backfill_state_machine, #calculate_dependency_state_machine_step, #calculate_preferred_create_state_machine, #calculate_webhook_state_machine, chunked_row_update_bounds, #clear_backfill_information, #clear_webhook_information, #create_table, #create_table_modification, #data_column, #dbadapter_table, #denormalized_columns, #descriptor, #dispatch_request_to, #documentation_url, #enqueue_sync_targets, #enrichment_column, #ensure_all_columns, #ensure_all_columns_modification, #find_dependent, #find_dependent!, #indices, #initialize, #on_dependency_webhook_upsert, #preferred_create_state_machine_method, #preprocess_headers_for_logging, #primary_key_column, #process_state_change, #process_webhooks_synchronously?, #qualified_table_sequel_identifier, #readonly_dataset, #remote_key_column, #requires_sequence?, #resource_name_plural, #resource_name_singular, #schema_and_table_symbols, #storable_columns, #synchronous_processing_response_body, #timestamp_column, #upsert_has_deps?, #upsert_webhook, #upsert_webhook_body, #verify_backfill_credentials, #webhook_endpoint, #webhook_response

Constructor Details

This class inherits a constructor from Webhookdb::Replicator::Base

Class Method Details

.descriptorWebhookdb::Replicator::Descriptor



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 25

def self.descriptor
  return Webhookdb::Replicator::Descriptor.new(
    name: "github_issue_comment_v1",
    ctor: ->(sint) { Webhookdb::Replicator::GithubIssueCommentV1.new(sint) },
    feature_roles: [],
    resource_name_singular: "GitHub Issue Comment",
    supports_webhooks: true,
    supports_backfill: true,
    api_docs_url: Webhookdb::Replicator::GithubRepoV1Mixin._api_docs_url("/issues/comments"),
  )
end

Instance Method Details

#_denormalized_columnsObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 41

def _denormalized_columns
  return [
    Webhookdb::Replicator::Column.new(
      :issue_id,
      BIGINT,
      index: true,
      data_key: "issue_url",
      converter: Webhookdb::Replicator::Column.converter_from_regex('/issues/(\d+)$', dbtype: BIGINT),
    ),
    Webhookdb::Replicator::Column.new(:created_at, TIMESTAMP, index: true),
    Webhookdb::Replicator::Column.new(:updated_at, TIMESTAMP, index: true),
    Webhookdb::Replicator::Column.new(:user_id, BIGINT, index: true, data_key: ["user", "id"], optional: true),
    Webhookdb::Replicator::Column.new(:node_id, TEXT, index: true),
  ]
end

#_mixin_backfill_urlObject



10
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 10

def _mixin_backfill_url = "/issues/comments"

#_mixin_fine_grained_permissionObject



13
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 13

def _mixin_fine_grained_permission = "Issues"

#_mixin_query_params(last_backfilled:) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 15

def _mixin_query_params(last_backfilled:)
  q = {}
  if last_backfilled
    q[:sort] = "updated"
    q[:since] = last_backfilled.utc.iso8601
  end
  return q
end

#_mixin_webhook_eventsObject



11
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 11

def _mixin_webhook_events = ["Issue comments"]

#_mixin_webhook_keyObject



12
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 12

def _mixin_webhook_key = "comment"

#_remote_key_columnObject



37
38
39
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 37

def _remote_key_column
  return Webhookdb::Replicator::Column.new(:github_id, BIGINT, data_key: "id")
end

#_timestamp_column_nameObject



57
# File 'lib/webhookdb/replicator/github_issue_comment_v1.rb', line 57

def _timestamp_column_name = :updated_at