From 4373c11c076d2dd6f21ba03e6e43a6d40cf9d8d6 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 04:54:09 -0700 Subject: [PATCH 01/12] GitHub AzStorage connector: add repository, repository_id, token_scopes, request_method, query_string, request_body, status_code, url_path, route, rate_limit_remaining fields to DCR and table --- .../GitHubAuditLogs_AzStorage/DCR.json | 42 +++++++++++++++- .../table_GitHubAuditLogsV2.json | 50 +++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json index b31d21b2736..eaf07ba4bb9 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json @@ -932,6 +932,46 @@ "name": "audit_log_stream_sink", "type": "string" }, + { + "name": "repository", + "type": "string" + }, + { + "name": "repository_id", + "type": "real" + }, + { + "name": "token_scopes", + "type": "string" + }, + { + "name": "request_method", + "type": "string" + }, + { + "name": "query_string", + "type": "string" + }, + { + "name": "request_body", + "type": "string" + }, + { + "name": "status_code", + "type": "real" + }, + { + "name": "url_path", + "type": "string" + }, + { + "name": "route", + "type": "string" + }, + { + "name": "rate_limit_remaining", + "type": "real" + }, { "name": "actor_location", "type": "dynamic" @@ -956,7 +996,7 @@ "clv2ws1" ], "outputStream": "Custom-GitHubAuditLogsV2_CL", - "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink" + "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink, Repository = repository, RepositoryId = repository_id, TokenScopes = token_scopes, RequestMethod = request_method, QueryString = query_string, RequestBody = request_body, StatusCode = status_code, UrlPath = url_path, Route = route, RateLimitRemaining = rate_limit_remaining" } ] } diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json index 263217521ba..a938e0a8ef4 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json @@ -1168,6 +1168,56 @@ "name": "AuditLogStreamSink", "type": "string", "description": "The sink type of the audit log stream." + }, + { + "name": "Repository", + "type": "string", + "description": "The name of the repository associated with the event." + }, + { + "name": "RepositoryId", + "type": "real", + "description": "The numeric identifier of the repository." + }, + { + "name": "TokenScopes", + "type": "string", + "description": "The scopes associated with the token used for authentication." + }, + { + "name": "RequestMethod", + "type": "string", + "description": "The HTTP request method, for example GET or POST." + }, + { + "name": "QueryString", + "type": "string", + "description": "The query string from the HTTP request URL." + }, + { + "name": "RequestBody", + "type": "string", + "description": "The body of the HTTP request." + }, + { + "name": "StatusCode", + "type": "real", + "description": "The HTTP response status code." + }, + { + "name": "UrlPath", + "type": "string", + "description": "The URL path of the HTTP request." + }, + { + "name": "Route", + "type": "string", + "description": "The API route associated with the event." + }, + { + "name": "RateLimitRemaining", + "type": "real", + "description": "The number of API rate limit requests remaining." } ] } From a7ddfd0ffb45da871cc20cec7d1f32eee674135e Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 09:41:34 -0700 Subject: [PATCH 02/12] GitHub AzStorage connector: introduce GitHubAuditLogsV3_CL table with new fields - Add table_GitHubAuditLogsV3.json with 242 fields (all V2 fields + 10 new: repository, repository_id, token_scopes, request_method, query_string, request_body, status_code, url_path, route, rate_limit_remaining) - Revert table_GitHubAuditLogsV2.json to original (no new fields added) - Update DCR.json: outputStream -> Custom-GitHubAuditLogsV3_CL, add 10 new stream declaration columns and transformKql project mappings - Update ConnectorDefinition.json and PollingConfig.json: V2->V3 table refs - Update mainTemplate.json: AzStorage connector and GitHubAuditData function references updated to V3; CCF connector references left on V2 --- .../ConnectorDefinition.json | 8 +- .../GitHubAuditLogs_AzStorage/DCR.json | 2 +- .../PollingConfig.json | 2 +- .../table_GitHubAuditLogsV2.json | 52 +- .../table_GitHubAuditLogsV3.json | 1225 +++++++++++++++++ Solutions/GitHub/Package/mainTemplate.json | 36 +- 6 files changed, 1250 insertions(+), 75 deletions(-) create mode 100644 Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV3.json diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json index 56f06eb06fd..2df355919ee 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json @@ -14,19 +14,19 @@ { "metricName": "Total events received", "legend": "GitHubAuditLogEvents", - "baseQuery": "GitHubAuditLogsV2_CL" + "baseQuery": "GitHubAuditLogsV3_CL" } ], "sampleQueries": [ { "description": "GitHub Audit Logs", - "query": "GitHubAuditLogsV2_CL | take 10" + "query": "GitHubAuditLogsV3_CL | take 10" } ], "dataTypes": [ { - "name": "GitHubAuditLogsV2_CL", - "lastDataReceivedQuery": "GitHubAuditLogsV2_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" + "name": "GitHubAuditLogsV3_CL", + "lastDataReceivedQuery": "GitHubAuditLogsV3_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" } ], "connectivityCriteria": [ diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json index eaf07ba4bb9..8e96fc649a0 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/DCR.json @@ -995,7 +995,7 @@ "destinations": [ "clv2ws1" ], - "outputStream": "Custom-GitHubAuditLogsV2_CL", + "outputStream": "Custom-GitHubAuditLogsV3_CL", "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink, Repository = repository, RepositoryId = repository_id, TokenScopes = token_scopes, RequestMethod = request_method, QueryString = query_string, RequestBody = request_body, StatusCode = status_code, UrlPath = url_path, Route = route, RateLimitRemaining = rate_limit_remaining" } ] diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/PollingConfig.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/PollingConfig.json index 1f6b77b0580..82e2dc8360d 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/PollingConfig.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/PollingConfig.json @@ -29,7 +29,7 @@ "isGzipCompressed": true }, "connectorDefinitionName": "GitHubAuditBlobConnector", - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "dcrConfig": { "streamName": "Custom-GitHubAuditLogs", "dataCollectionEndpoint": "{{dataCollectionEndpoint}}", diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json index a938e0a8ef4..2f7d5b5032a 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV2.json @@ -1168,58 +1168,8 @@ "name": "AuditLogStreamSink", "type": "string", "description": "The sink type of the audit log stream." - }, - { - "name": "Repository", - "type": "string", - "description": "The name of the repository associated with the event." - }, - { - "name": "RepositoryId", - "type": "real", - "description": "The numeric identifier of the repository." - }, - { - "name": "TokenScopes", - "type": "string", - "description": "The scopes associated with the token used for authentication." - }, - { - "name": "RequestMethod", - "type": "string", - "description": "The HTTP request method, for example GET or POST." - }, - { - "name": "QueryString", - "type": "string", - "description": "The query string from the HTTP request URL." - }, - { - "name": "RequestBody", - "type": "string", - "description": "The body of the HTTP request." - }, - { - "name": "StatusCode", - "type": "real", - "description": "The HTTP response status code." - }, - { - "name": "UrlPath", - "type": "string", - "description": "The URL path of the HTTP request." - }, - { - "name": "Route", - "type": "string", - "description": "The API route associated with the event." - }, - { - "name": "RateLimitRemaining", - "type": "real", - "description": "The number of API rate limit requests remaining." } ] } } -} \ No newline at end of file +} diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV3.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV3.json new file mode 100644 index 00000000000..b5472e63ec7 --- /dev/null +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/table_GitHubAuditLogsV3.json @@ -0,0 +1,1225 @@ +{ + "name": "GitHubAuditLogsV3_CL", + "type": "Microsoft.OperationalInsights/workspaces/tables", + "apiVersion": "2022-10-01", + "tags": { + "StreamName": "Custom-GitHubAuditLogsV3_CL" + }, + "properties": { + "schema": { + "name": "GitHubAuditLogsV3_CL", + "columns": [ + { + "name": "TimeGenerated", + "type": "datetime" + }, + { + "name": "Org", + "type": "string", + "description": "The GitHub organization associated with the audit log event." + }, + { + "name": "Action", + "type": "string", + "description": "The name of the action that was performed, for example user.login or repo.create." + }, + { + "name": "Repo", + "type": "string", + "description": "The name of the repository associated with the event." + }, + { + "name": "Actor", + "type": "string", + "description": "The actor who performed the action." + }, + { + "name": "CountryCode", + "type": "string", + "description": "The country code from the actor's location." + }, + { + "name": "User", + "type": "string", + "description": "The user that was affected by the action performed." + }, + { + "name": "Permission", + "type": "string", + "description": "The permission level granted or associated with the action." + }, + { + "name": "Visibility", + "type": "string", + "description": "The repository visibility, for example public or private." + }, + { + "name": "PreviousVisibility", + "type": "string", + "description": "The previous repository visibility before the change." + }, + { + "name": "OldPermission", + "type": "string", + "description": "The previous permission level before the change." + }, + { + "name": "Team", + "type": "string", + "description": "The team associated with the audit log event." + }, + { + "name": "BlockedUser", + "type": "string", + "description": "The username of the account being blocked." + }, + { + "name": "OperationType", + "type": "string", + "description": "The type of operation performed, for example create, modify, or delete." + }, + { + "name": "PublicRepo", + "type": "boolean", + "description": "Whether the repository is public." + }, + { + "name": "OrgId", + "type": "real", + "description": "The numeric identifier of the GitHub organization." + }, + { + "name": "CreatedAt", + "type": "real", + "description": "The time the audit log event was recorded, given as a Unix timestamp in milliseconds." + }, + { + "name": "InviteeEmail", + "type": "string", + "description": "The email address of the person invited." + }, + { + "name": "ActorIp", + "type": "string", + "description": "The IP address of the actor who performed the action.", + "dataTypeHint": "IP" + }, + { + "name": "ActorId", + "type": "real", + "description": "The numeric identifier of the actor who performed the action." + }, + { + "name": "ActorIsBot", + "type": "boolean", + "description": "Whether the actor is a bot account." + }, + { + "name": "BusinessId", + "type": "real", + "description": "The numeric identifier of the GitHub Enterprise business." + }, + { + "name": "RepoId", + "type": "real", + "description": "The numeric identifier of the repository." + }, + { + "name": "UserAgent", + "type": "string", + "description": "The user agent string of the client that initiated the action." + }, + { + "name": "UserId", + "type": "real", + "description": "The numeric identifier of the affected user." + }, + { + "name": "Email", + "type": "string", + "description": "The email address associated with the event." + }, + { + "name": "RepositorySecurityConfigurationFailureReason", + "type": "dynamic", + "description": "The reason a repository security configuration failed to apply." + }, + { + "name": "RepositorySecurityConfigurationState", + "type": "dynamic", + "description": "The state of the repository security configuration." + }, + { + "name": "SecurityConfigurationName", + "type": "string", + "description": "The name of the security configuration." + }, + { + "name": "OauthApplication", + "type": "string", + "description": "The name of the OAuth application involved in the event." + }, + { + "name": "OauthApplicationUrl", + "type": "string", + "description": "The URL of the OAuth application." + }, + { + "name": "OauthApplicationState", + "type": "string", + "description": "The state of the OAuth application." + }, + { + "name": "Reason", + "type": "string", + "description": "The reason for the action or event." + }, + { + "name": "MembershipType", + "type": "string", + "description": "The type of membership, for example admin or member." + }, + { + "name": "UserCanInviteCollaborators", + "type": "boolean", + "description": "Whether the user has permission to invite collaborators." + }, + { + "name": "CanCreateRepositories", + "type": "boolean", + "description": "Whether the user has permission to create repositories." + }, + { + "name": "SecurityConfigurationId", + "type": "real", + "description": "The numeric identifier of the security configuration." + }, + { + "name": "InvitationId", + "type": "real", + "description": "The numeric identifier of the invitation." + }, + { + "name": "Topic", + "type": "string", + "description": "The topic associated with the event." + }, + { + "name": "DocumentId", + "type": "string", + "description": "A unique identifier for the audit event." + }, + { + "name": "Business", + "type": "string", + "description": "The name of the GitHub Enterprise business." + }, + { + "name": "RequestCategory", + "type": "string", + "description": "The category of the request." + }, + { + "name": "OauthApplicationId", + "type": "real", + "description": "The numeric identifier of the OAuth application." + }, + { + "name": "OldRepoPermission", + "type": "string", + "description": "The previous repository permission before the change." + }, + { + "name": "NewRepoPermission", + "type": "string", + "description": "The new repository permission after the change." + }, + { + "name": "RepositoriesRemovedNames", + "type": "string", + "description": "The names of repositories that were removed." + }, + { + "name": "Active", + "type": "boolean", + "description": "Whether the resource is currently active." + }, + { + "name": "ActiveWas", + "type": "boolean", + "description": "Whether the resource was previously active." + }, + { + "name": "Data", + "type": "string", + "description": "Additional data associated with the event, serialized as a JSON string." + }, + { + "name": "Config", + "type": "string", + "description": "The current configuration associated with the event, serialized as a JSON string." + }, + { + "name": "ConfigWas", + "type": "string", + "description": "The previous configuration before the change, serialized as a JSON string." + }, + { + "name": "ContentType", + "type": "string", + "description": "The content type of the resource." + }, + { + "name": "DeployKeyFingerprint", + "type": "string", + "description": "The fingerprint of the deploy key." + }, + { + "name": "Emoji", + "type": "string", + "description": "The emoji associated with the event." + }, + { + "name": "Events", + "type": "string", + "description": "The current events configuration, serialized as a JSON string." + }, + { + "name": "EventsWere", + "type": "string", + "description": "The previous events configuration before the change, serialized as a JSON string." + }, + { + "name": "Explanation", + "type": "string", + "description": "An explanation or additional context for the event." + }, + { + "name": "Fingerprint", + "type": "string", + "description": "The fingerprint of the key or certificate." + }, + { + "name": "HookId", + "type": "real", + "description": "The numeric identifier of the webhook." + }, + { + "name": "LimitedAvailability", + "type": "boolean", + "description": "Whether the feature has limited availability." + }, + { + "name": "Message", + "type": "string", + "description": "A message associated with the event." + }, + { + "name": "Name", + "type": "string", + "description": "The name of the resource associated with the event." + }, + { + "name": "OldUser", + "type": "string", + "description": "The previous user before the change." + }, + { + "name": "OpensshPublicKey", + "type": "string", + "description": "The OpenSSH public key associated with the event." + }, + { + "name": "ReadOnly", + "type": "boolean", + "description": "Whether the resource is read-only." + }, + { + "name": "TargetLogin", + "type": "string", + "description": "The login of the target user." + }, + { + "name": "TransportProtocol", + "type": "real", + "description": "The type of protocol (for example, HTTP or SSH) used to transfer Git data." + }, + { + "name": "TransportProtocolName", + "type": "string", + "description": "A human readable name for the protocol used to transfer Git data." + }, + { + "name": "StartedAt", + "type": "datetime", + "description": "The time the workflow or job started." + }, + { + "name": "CompletedAt", + "type": "datetime", + "description": "The time the workflow or job completed." + }, + { + "name": "Conclusion", + "type": "string", + "description": "The conclusion status of the workflow run, for example success or failure." + }, + { + "name": "Event", + "type": "string", + "description": "The event that triggered the workflow." + }, + { + "name": "HeadBranch", + "type": "string", + "description": "The head branch of the workflow run." + }, + { + "name": "HeadSha", + "type": "string", + "description": "The HEAD SHA of the commit that triggered the workflow." + }, + { + "name": "RunAttempt", + "type": "real", + "description": "The attempt number of the workflow run." + }, + { + "name": "RunNumber", + "type": "real", + "description": "The run number of the workflow." + }, + { + "name": "TriggerId", + "type": "real", + "description": "The numeric identifier of the trigger." + }, + { + "name": "WorkflowId", + "type": "real", + "description": "The numeric identifier of the workflow." + }, + { + "name": "WorkflowRunId", + "type": "real", + "description": "The numeric identifier of the workflow run." + }, + { + "name": "EnvironmentName", + "type": "string", + "description": "The name of the deployment environment." + }, + { + "name": "IsHostedRunner", + "type": "boolean", + "description": "Whether the runner is a GitHub-hosted runner." + }, + { + "name": "JobName", + "type": "string", + "description": "The name of the workflow job." + }, + { + "name": "JobWorkflowRef", + "type": "string", + "description": "The reference to the reusable workflow used by the job." + }, + { + "name": "RunnerGroupId", + "type": "real", + "description": "The numeric identifier of the runner group." + }, + { + "name": "RunnerGroupName", + "type": "string", + "description": "The name of the runner group." + }, + { + "name": "RunnerId", + "type": "real", + "description": "The numeric identifier of the runner." + }, + { + "name": "RunnerLabels", + "type": "string", + "description": "The labels assigned to the runner." + }, + { + "name": "RunnerName", + "type": "string", + "description": "The name of the runner." + }, + { + "name": "SecretsPassed", + "type": "string", + "description": "The secrets passed to the workflow or job." + }, + { + "name": "HashedToken", + "type": "string", + "description": "The hashed token used for authentication." + }, + { + "name": "ProgrammaticAccessType", + "type": "string", + "description": "The type of programmatic access used." + }, + { + "name": "RequestAccessSecurityHeader", + "type": "string", + "description": "The security header of the access request." + }, + { + "name": "TokenId", + "type": "real", + "description": "The numeric identifier of the token." + }, + { + "name": "PullRequestId", + "type": "real", + "description": "The numeric identifier of the pull request." + }, + { + "name": "PullRequestTitle", + "type": "string", + "description": "The title of the pull request." + }, + { + "name": "PullRequestUrl", + "type": "string", + "description": "The URL of the pull request." + }, + { + "name": "OldRolePermissions", + "type": "string", + "description": "The previous role permissions before the change." + }, + { + "name": "RolePermissions", + "type": "string", + "description": "The current role permissions." + }, + { + "name": "RequestId", + "type": "string", + "description": "The unique identifier of the request." + }, + { + "name": "BaseRole", + "type": "string", + "description": "The base role for the organization or repository." + }, + { + "name": "CustomPattern", + "type": "string", + "description": "The custom secret scanning pattern." + }, + { + "name": "Source", + "type": "string", + "description": "The source of the event." + }, + { + "name": "ActivityType", + "type": "string", + "description": "The type of activity that was performed." + }, + { + "name": "GhsaId", + "type": "string", + "description": "The GitHub Security Advisory identifier." + }, + { + "name": "Recipient", + "type": "string", + "description": "The recipient of the action." + }, + { + "name": "RunnerOwnerType", + "type": "string", + "description": "The type of the runner owner, for example organization or enterprise." + }, + { + "name": "OrganizationRoleId", + "type": "real", + "description": "The numeric identifier of the organization role." + }, + { + "name": "OrganizationRoleName", + "type": "string", + "description": "The name of the organization role." + }, + { + "name": "Owner", + "type": "string", + "description": "The owner of the resource." + }, + { + "name": "OldTokenExpiration", + "type": "real", + "description": "The previous token expiration timestamp." + }, + { + "name": "ExemptAdministrators", + "type": "boolean", + "description": "Whether administrators are exempt from the rule." + }, + { + "name": "TokenExpiration", + "type": "real", + "description": "The token expiration timestamp." + }, + { + "name": "Policy", + "type": "string", + "description": "The policy associated with the event." + }, + { + "name": "ApplicationClientId", + "type": "string", + "description": "The client ID of the application." + }, + { + "name": "Integration", + "type": "string", + "description": "The integration associated with the event." + }, + { + "name": "RepositoriesRemoved", + "type": "string", + "description": "The repositories removed from the integration or configuration." + }, + { + "name": "RepositorySelection", + "type": "string", + "description": "The repository selection mode, for example all or selected." + }, + { + "name": "NewProjectBaseRole", + "type": "string", + "description": "The new base role for the project." + }, + { + "name": "OldProjectBaseRole", + "type": "string", + "description": "The previous base role for the project." + }, + { + "name": "ProjectId", + "type": "real", + "description": "The numeric identifier of the project." + }, + { + "name": "ProjectNumber", + "type": "real", + "description": "The project number." + }, + { + "name": "PublicProject", + "type": "boolean", + "description": "Whether the project is public." + }, + { + "name": "RulesetBypassActors", + "type": "string", + "description": "The actors that can bypass the ruleset." + }, + { + "name": "RulesetConditions", + "type": "string", + "description": "The conditions of the ruleset." + }, + { + "name": "RulesetEnforcement", + "type": "string", + "description": "The enforcement level of the ruleset." + }, + { + "name": "RulesetId", + "type": "real", + "description": "The numeric identifier of the ruleset." + }, + { + "name": "RulesetName", + "type": "string", + "description": "The name of the ruleset." + }, + { + "name": "RulesetRules", + "type": "string", + "description": "The rules defined in the ruleset." + }, + { + "name": "RulesetSourceType", + "type": "string", + "description": "The source type of the ruleset, for example organization or repository." + }, + { + "name": "RulesetRulesDeleted", + "type": "string", + "description": "The rules deleted from the ruleset." + }, + { + "name": "RulesetConditionsUpdated", + "type": "string", + "description": "The updated conditions of the ruleset." + }, + { + "name": "AdminEnforced", + "type": "boolean", + "description": "Whether the branch protection rule is enforced for administrators." + }, + { + "name": "AllowDeletionsEnforcementLevel", + "type": "real", + "description": "The enforcement level for allowing branch deletions." + }, + { + "name": "AllowForcePushesEnforcementLevel", + "type": "real", + "description": "The enforcement level for allowing force pushes." + }, + { + "name": "AuthorizedActorNames", + "type": "string", + "description": "The names of actors authorized to bypass branch protection." + }, + { + "name": "CreateProtected", + "type": "boolean", + "description": "Whether branch creation is protected." + }, + { + "name": "DismissStaleReviewsOnPush", + "type": "boolean", + "description": "Whether stale pull request reviews are dismissed on new pushes." + }, + { + "name": "EnforcementLevel", + "type": "string", + "description": "The enforcement level of the protection rule." + }, + { + "name": "IgnoreApprovalsFromContributors", + "type": "boolean", + "description": "Whether approvals from contributors are ignored." + }, + { + "name": "LinearHistoryRequirementEnforcementLevel", + "type": "real", + "description": "The enforcement level for requiring linear commit history." + }, + { + "name": "LockAllowsFetchAndMerge", + "type": "boolean", + "description": "Whether locked branches allow fetch and merge." + }, + { + "name": "LockBranchEnforcementLevel", + "type": "real", + "description": "The enforcement level for branch locking." + }, + { + "name": "MergeQueueEnforcementLevel", + "type": "real", + "description": "The enforcement level for merge queue." + }, + { + "name": "PullRequestReviewsEnforcementLevel", + "type": "real", + "description": "The enforcement level for pull request reviews." + }, + { + "name": "RequireCodeOwnerReview", + "type": "boolean", + "description": "Whether code owner review is required." + }, + { + "name": "RequireLastPushApproval", + "type": "boolean", + "description": "Whether approval from someone other than the last pusher is required." + }, + { + "name": "RequiredApprovingReviewCount", + "type": "real", + "description": "The number of required approving reviews." + }, + { + "name": "RequiredDeploymentsEnforcementLevel", + "type": "real", + "description": "The enforcement level for required deployments." + }, + { + "name": "RequiredReviewThreadResolutionEnforcementLevel", + "type": "real", + "description": "The enforcement level for required review thread resolution." + }, + { + "name": "RequiredStatusChecksEnforcementLevel", + "type": "real", + "description": "The enforcement level for required status checks." + }, + { + "name": "SignatureRequirementEnforcementLevel", + "type": "real", + "description": "The enforcement level for commit signature requirements." + }, + { + "name": "StrictRequiredStatusChecksPolicy", + "type": "boolean", + "description": "Whether strict required status checks policy is enabled." + }, + { + "name": "AllowedValues", + "type": "string", + "description": "The allowed values for a custom property." + }, + { + "name": "DefaultValue", + "type": "string", + "description": "The default value for a custom property." + }, + { + "name": "DefinitionId", + "type": "real", + "description": "The numeric identifier of the custom property definition." + }, + { + "name": "Description", + "type": "string", + "description": "The description of the resource or event." + }, + { + "name": "PropertyName", + "type": "string", + "description": "The name of the custom property." + }, + { + "name": "ValueType", + "type": "string", + "description": "The data type of the custom property value." + }, + { + "name": "ValuesEditableBy", + "type": "string", + "description": "Who can edit the custom property values." + }, + { + "name": "OldValuesEditableBy", + "type": "string", + "description": "Who could previously edit the custom property values." + }, + { + "name": "OldDefaultValue", + "type": "string", + "description": "The previous default value for a custom property." + }, + { + "name": "OldRequired", + "type": "boolean", + "description": "Whether the custom property was previously required." + }, + { + "name": "Required", + "type": "boolean", + "description": "Whether the custom property is required." + }, + { + "name": "Enablement", + "type": "string", + "description": "The enablement state of a feature or configuration." + }, + { + "name": "OwnerType", + "type": "string", + "description": "The type of the owner, for example user or organization." + }, + { + "name": "CommitId", + "type": "string", + "description": "The commit identifier associated with the event." + }, + { + "name": "RuleSuiteId", + "type": "real", + "description": "The numeric identifier of the rule suite evaluation." + }, + { + "name": "Referrer", + "type": "string", + "description": "The referrer URL or source." + }, + { + "name": "Reasons", + "type": "string", + "description": "The reasons for the action or decision." + }, + { + "name": "OverriddenCodes", + "type": "string", + "description": "The codes that were overridden." + }, + { + "name": "After", + "type": "string", + "description": "The state after the change." + }, + { + "name": "Before", + "type": "string", + "description": "The state before the change." + }, + { + "name": "Branch", + "type": "string", + "description": "The branch associated with the event." + }, + { + "name": "IssueTypeName", + "type": "string", + "description": "The name of the issue type." + }, + { + "name": "OldDescription", + "type": "string", + "description": "The previous description before the change." + }, + { + "name": "OldEnabled", + "type": "boolean", + "description": "Whether the feature was previously enabled." + }, + { + "name": "OldIssueTypeName", + "type": "string", + "description": "The previous issue type name before the change." + }, + { + "name": "NewAccess", + "type": "string", + "description": "The new access level after the change." + }, + { + "name": "OldAccess", + "type": "string", + "description": "The previous access level before the change." + }, + { + "name": "UpdatedAllowedTypes", + "type": "boolean", + "description": "Whether the allowed types were updated." + }, + { + "name": "NewPolicy", + "type": "string", + "description": "The new policy after the change." + }, + { + "name": "NewRepoRunnersPolicy", + "type": "string", + "description": "The new repository runners policy after the change." + }, + { + "name": "OldRepoRunnersPolicy", + "type": "string", + "description": "The previous repository runners policy." + }, + { + "name": "Limit", + "type": "real", + "description": "The limit value associated with the event." + }, + { + "name": "RunnerGroupRestrictedToWorkflows", + "type": "boolean", + "description": "Whether the runner group is restricted to specific workflows." + }, + { + "name": "RunnerGroupSelectedWorkflowRefs", + "type": "string", + "description": "The workflow references selected for the runner group." + }, + { + "name": "RunnerGroupAllowPublic", + "type": "boolean", + "description": "Whether the runner group allows public repositories." + }, + { + "name": "IpAllowListEntry", + "type": "string", + "description": "The IP allow list entry." + }, + { + "name": "TwoFactorMethod", + "type": "string", + "description": "The two-factor authentication method used." + }, + { + "name": "AlertNumbers", + "type": "string", + "description": "The alert numbers associated with the event." + }, + { + "name": "CommitOid", + "type": "string", + "description": "The commit object identifier (OID)." + }, + { + "name": "Ref", + "type": "string", + "description": "The Git reference associated with the event." + }, + { + "name": "DefaultForNewPrivateRepos", + "type": "boolean", + "description": "Whether the configuration is the default for new private repositories." + }, + { + "name": "DefaultForNewPublicRepos", + "type": "boolean", + "description": "Whether the configuration is the default for new public repositories." + }, + { + "name": "DomainName", + "type": "string", + "description": "The domain name associated with the event." + }, + { + "name": "Key", + "type": "string", + "description": "The key associated with the event." + }, + { + "name": "SecurityConfigurationCodeScanning", + "type": "string", + "description": "The code scanning setting of the security configuration." + }, + { + "name": "SecurityConfigurationCodeSecuritySkuEnabled", + "type": "boolean", + "description": "Whether the code security SKU is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationCreatedAt", + "type": "datetime", + "description": "The creation date of the security configuration." + }, + { + "name": "SecurityConfigurationDependabotAlerts", + "type": "string", + "description": "The Dependabot alerts setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependabotSecurityUpdates", + "type": "string", + "description": "The Dependabot security updates setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependencyGraph", + "type": "string", + "description": "The dependency graph setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependencyGraphAutosubmitAction", + "type": "string", + "description": "The dependency graph autosubmit action setting of the security configuration." + }, + { + "name": "SecurityConfigurationDescription", + "type": "string", + "description": "The description of the security configuration." + }, + { + "name": "SecurityConfigurationEnableGhas", + "type": "boolean", + "description": "Whether GitHub Advanced Security is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationPrivateVulnerabilityReporting", + "type": "string", + "description": "The private vulnerability reporting setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretProtectionSkuEnabled", + "type": "boolean", + "description": "Whether the secret protection SKU is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanning", + "type": "string", + "description": "The secret scanning setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningDelegatedBypass", + "type": "string", + "description": "The secret scanning delegated bypass setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningGenericSecrets", + "type": "string", + "description": "The secret scanning generic secrets setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningNonProviderPatterns", + "type": "string", + "description": "The secret scanning non-provider patterns setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningPushProtection", + "type": "string", + "description": "The secret scanning push protection setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningValidityChecks", + "type": "string", + "description": "The secret scanning validity checks setting of the security configuration." + }, + { + "name": "SecurityConfigurationUpdatedAt", + "type": "datetime", + "description": "The last update date of the security configuration." + }, + { + "name": "ThreatModel", + "type": "string", + "description": "The threat model associated with the event." + }, + { + "name": "QuerySuite", + "type": "string", + "description": "The code scanning query suite." + }, + { + "name": "VulnerabilityAlertRuleActionsAlertActionsAutoDismiss", + "type": "string", + "description": "The auto-dismiss setting for vulnerability alert rule actions." + }, + { + "name": "VulnerabilityAlertRuleActionsVersion", + "type": "real", + "description": "The version of the vulnerability alert rule actions." + }, + { + "name": "VulnerabilityAlertRuleConditionsCwe", + "type": "string", + "description": "The CWE conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleConditionsEcosystem", + "type": "string", + "description": "The ecosystem conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleConditionsScope", + "type": "string", + "description": "The scope conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleId", + "type": "real", + "description": "The numeric identifier of the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleName", + "type": "string", + "description": "The name of the vulnerability alert rule." + }, + { + "name": "DismissalApproverId", + "type": "real", + "description": "The numeric identifier of the user who approved the dismissal." + }, + { + "name": "SsoUrl", + "type": "string", + "description": "The single sign-on URL." + }, + { + "name": "Issuer", + "type": "string", + "description": "The issuer of the SSO or SAML identity." + }, + { + "name": "ExternalIdentityUsername", + "type": "string", + "description": "The username of the external identity." + }, + { + "name": "ExternalIdentityNameid", + "type": "string", + "description": "The NameID of the external identity." + }, + { + "name": "AuditLogStreamResult", + "type": "string", + "description": "The result of the audit log stream operation." + }, + { + "name": "AuditLogStreamSinkDetails", + "type": "string", + "description": "The details of the audit log stream sink." + }, + { + "name": "AuditLogStreamId", + "type": "real", + "description": "The numeric identifier of the audit log stream." + }, + { + "name": "AuditLogStreamSink", + "type": "string", + "description": "The sink type of the audit log stream." + }, + { + "name": "Repository", + "type": "string", + "description": "The name of the repository associated with the event." + }, + { + "name": "RepositoryId", + "type": "real", + "description": "The numeric identifier of the repository." + }, + { + "name": "TokenScopes", + "type": "string", + "description": "The scopes associated with the token used for authentication." + }, + { + "name": "RequestMethod", + "type": "string", + "description": "The HTTP request method, for example GET or POST." + }, + { + "name": "QueryString", + "type": "string", + "description": "The query string from the HTTP request URL." + }, + { + "name": "RequestBody", + "type": "string", + "description": "The body of the HTTP request." + }, + { + "name": "StatusCode", + "type": "real", + "description": "The HTTP response status code." + }, + { + "name": "UrlPath", + "type": "string", + "description": "The URL path of the HTTP request." + }, + { + "name": "Route", + "type": "string", + "description": "The API route associated with the event." + }, + { + "name": "RateLimitRemaining", + "type": "real", + "description": "The number of API rate limit requests remaining." + } + ] + } + } +} \ No newline at end of file diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index 674fc3207be..3256b479aaa 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -2644,7 +2644,7 @@ "displayName": "Parser for GitHubAuditData", "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV2_view = view () {\nGitHubAuditLogsV2_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV2_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", + "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV3_view = view () {\nGitHubAuditLogsV3_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV3_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", "functionParameters": "", "version": 2, "tags": [ @@ -2709,7 +2709,7 @@ "displayName": "Parser for GitHubAuditData", "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV2_view = view () {\nGitHubAuditLogsV2_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV2_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", + "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV3_view = view () {\nGitHubAuditLogsV3_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV3_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", "functionParameters": "", "version": 2, "tags": [ @@ -3312,19 +3312,19 @@ { "metricName": "Total events received", "legend": "GitHubAuditLogEvents", - "baseQuery": "GitHubAuditLogsV2_CL" + "baseQuery": "GitHubAuditLogsV3_CL" } ], "sampleQueries": [ { "description": "GitHub Audit Logs", - "query": "GitHubAuditLogsV2_CL | take 10" + "query": "GitHubAuditLogsV3_CL | take 10" } ], "dataTypes": [ { - "name": "GitHubAuditLogsV2_CL", - "lastDataReceivedQuery": "GitHubAuditLogsV2_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" + "name": "GitHubAuditLogsV3_CL", + "lastDataReceivedQuery": "GitHubAuditLogsV3_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" } ], "connectivityCriteria": [ @@ -4467,21 +4467,21 @@ "destinations": [ "clv2ws1" ], - "outputStream": "Custom-GitHubAuditLogsV2_CL", + "outputStream": "Custom-GitHubAuditLogsV3_CL", "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink" } ] } }, { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "columns": [ { "name": "TimeGenerated", @@ -9432,7 +9432,7 @@ }, "instructionSteps": [ { - "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key — authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key ΓÇö authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." }, { "description": ">**(Optional Step)** Securely store the GitHub Webhook Secret in Azure Key Vault. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." @@ -9458,7 +9458,7 @@ "instructionSteps": [ { "title": "Option 1 - Azure Resource Manager (ARM) Template", - "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** — deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** — the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." + "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** ΓÇö deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** ΓÇö the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." }, { "title": "Option 2 - Manual Deployment of Azure Functions", @@ -9513,8 +9513,8 @@ "description": "*Now we are done with the GitHub Webhook V2 configuration. Once GitHub events are triggered, after the delay of 5 to 10 mins, you should be able to see all the transactional events from GitHub in the LogAnalytics workspace table called `GitHubAdvancedSecurityAlerts_CL`. Use the `githubscanaudit` parser function for a unified view that includes data from both the legacy `githubscanaudit_CL` and new `GitHubAdvancedSecurityAlerts_CL` tables.*" }, { - "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings → Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5–10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required — historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **⚠️ Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", - "title": "⚠️ IMPORTANT: Migrating from GitHub Webhook V1 to V2" + "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings ΓåÆ Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5ΓÇô10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required ΓÇö historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **ΓÜá∩╕Å Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", + "title": "ΓÜá∩╕Å IMPORTANT: Migrating from GitHub Webhook V1 to V2" } ], "metadata": { @@ -9689,7 +9689,7 @@ }, "instructionSteps": [ { - "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key — authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key ΓÇö authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." }, { "description": ">**(Optional Step)** Securely store the GitHub Webhook Secret in Azure Key Vault. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." @@ -9715,7 +9715,7 @@ "instructionSteps": [ { "title": "Option 1 - Azure Resource Manager (ARM) Template", - "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** — deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** — the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." + "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** ΓÇö deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** ΓÇö the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." }, { "title": "Option 2 - Manual Deployment of Azure Functions", @@ -9770,8 +9770,8 @@ "description": "*Now we are done with the GitHub Webhook V2 configuration. Once GitHub events are triggered, after the delay of 5 to 10 mins, you should be able to see all the transactional events from GitHub in the LogAnalytics workspace table called `GitHubAdvancedSecurityAlerts_CL`. Use the `githubscanaudit` parser function for a unified view that includes data from both the legacy `githubscanaudit_CL` and new `GitHubAdvancedSecurityAlerts_CL` tables.*" }, { - "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings → Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5–10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required — historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **⚠️ Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", - "title": "⚠️ IMPORTANT: Migrating from GitHub Webhook V1 to V2" + "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings ΓåÆ Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5ΓÇô10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required ΓÇö historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **ΓÜá∩╕Å Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", + "title": "ΓÜá∩╕Å IMPORTANT: Migrating from GitHub Webhook V1 to V2" } ], "id": "[variables('_uiConfigId5')]" @@ -9788,7 +9788,7 @@ "contentSchemaVersion": "3.0.0", "displayName": "GitHub", "publisherDisplayName": "Microsoft Sentinel, Microsoft Corporation", - "descriptionHtml": "

Note: Please refer to the following before installing the solution:

\n

• Review the solution Release Notes

\n

• There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The GitHub Solution for Microsoft Sentinel enables you to easily ingest events and logs from GitHub to Microsoft Sentinel using GitHub audit log API and webhooks. This enables you to view and analyze this data in your workbooks, query it to create custom alerts, and incorporate it to improve your investigation process, giving you more insight into your platform security.

\n

Underlying Microsoft Technologies used:

\n

This solution takes a dependency on the following technologies, and some of these dependencies either may be in Preview state or might result in additional ingestion or operational costs:

\n
    \n
  1. Codeless Connector Framework (CCF) (used in GitHub Enterprise Audit Log data connector)

    \n
  2. \n
  3. Azure Functions

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of \"GitHubAuditDefinitionV2\" (via Codeless Connector Framework). This connector is build on the Codeless Connector Framework (CCF), which uses the Log Ingestion API, which replaces ingestion via the deprecated HTTP Data Collector API. CCF-based data connectors also support Data Collection Rules (DCRs) offering transformations and enrichment.

\n

Important: While the updated connector(s) can coexist with their legacy versions, running them together will result in duplicated data ingestion. You can disable the older versions of these connectors to avoid duplication of data..

\n

Data Connectors: 5, Parsers: 5, Workbooks: 2, Analytic Rules: 14, Hunting Queries: 8

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "descriptionHtml": "

Note: Please refer to the following before installing the solution:

\n

ΓÇó Review the solution Release Notes

\n

ΓÇó There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The GitHub Solution for Microsoft Sentinel enables you to easily ingest events and logs from GitHub to Microsoft Sentinel using GitHub audit log API and webhooks. This enables you to view and analyze this data in your workbooks, query it to create custom alerts, and incorporate it to improve your investigation process, giving you more insight into your platform security.

\n

Underlying Microsoft Technologies used:

\n

This solution takes a dependency on the following technologies, and some of these dependencies either may be in Preview state or might result in additional ingestion or operational costs:

\n
    \n
  1. Codeless Connector Framework (CCF) (used in GitHub Enterprise Audit Log data connector)

    \n
  2. \n
  3. Azure Functions

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of \"GitHubAuditDefinitionV2\" (via Codeless Connector Framework). This connector is build on the Codeless Connector Framework (CCF), which uses the Log Ingestion API, which replaces ingestion via the deprecated HTTP Data Collector API. CCF-based data connectors also support Data Collection Rules (DCRs) offering transformations and enrichment.

\n

Important: While the updated connector(s) can coexist with their legacy versions, running them together will result in duplicated data ingestion. You can disable the older versions of these connectors to avoid duplication of data..

\n

Data Connectors: 5, Parsers: 5, Workbooks: 2, Analytic Rules: 14, Hunting Queries: 8

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", "contentKind": "Solution", "contentProductId": "[variables('_solutioncontentProductId')]", "id": "[variables('_solutioncontentProductId')]", From 0c97ac74ba8307c6b57727b3061e6bc8217d62f4 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 09:57:39 -0700 Subject: [PATCH 03/12] GitHub solution: update all GitHubAuditLogsV2_CL references to V3 - Update mainTemplate.json: all remaining CCF connector sections V2->V3 - Update GitHubAuditLogs_CCF source files: V2->V3 across ConnectorDefinition, DCR, PollerConfig, and Table --- .../GitHubAuditLogs_ConnectorDefinition.json | 4 ++-- .../GitHubAuditLogs_DCR.json | 4 ++-- .../GitHubAuditLogs_PollerConfig.json | 4 ++-- .../GitHubAuditLogs_Table.json | 6 ++--- Solutions/GitHub/Package/mainTemplate.json | 22 +++++++++---------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json index dca7310fab8..83db6e8f003 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json @@ -10,7 +10,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV2_CL", + "graphQueriesTableName": "GitHubAuditLogsV3_CL", "graphQueries": [ { "metricName": "Total events received", @@ -126,4 +126,4 @@ ] } } -} \ No newline at end of file +} diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json index c93a0f82a8e..cd20d2dfe37 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json @@ -957,9 +957,9 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV2_CL" + "outputStream": "Custom-GitHubAuditLogsV3_CL" } ] } } -] \ No newline at end of file +] diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json index 4ca80fbcd03..9a99e9e1a6c 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json @@ -12,7 +12,7 @@ "dataCollectionRuleImmutableId": "{{dataCollectionRuleImmutableId}}", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, @@ -51,4 +51,4 @@ "isActive": true } } -] \ No newline at end of file +] diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json index 13e3683f5a0..6e940e93143 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json @@ -1,11 +1,11 @@ { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "apiVersion": "2021-03-01-privatepreview", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "{{location}}", "properties": { "schema": { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "columns": [ { "name": "TimeGenerated", @@ -938,4 +938,4 @@ ] } } -} \ No newline at end of file +} diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index 3256b479aaa..ad9e660ab98 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -5674,19 +5674,19 @@ { "metricName": "Total events received", "legend": "GitHubAuditLogEvents", - "baseQuery": "GitHubAuditLogsV2_CL" + "baseQuery": "GitHubAuditLogsV3_CL" } ], "sampleQueries": [ { "description": "GitHub Audit Logs", - "query": "GitHubAuditLogsV2_CL | take 10" + "query": "GitHubAuditLogsV3_CL | take 10" } ], "dataTypes": [ { - "name": "GitHubAuditLogsV2_CL", - "lastDataReceivedQuery": "GitHubAuditLogsV2_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" + "name": "GitHubAuditLogsV3_CL", + "lastDataReceivedQuery": "GitHubAuditLogsV3_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" } ], "connectivityCriteria": [ @@ -6120,7 +6120,7 @@ "isGzipCompressed": true }, "connectorDefinitionName": "GitHubAuditBlobConnector", - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "dcrConfig": { "streamName": "Custom-GitHubAuditLogs", "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]", @@ -6172,7 +6172,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV2_CL", + "graphQueriesTableName": "GitHubAuditLogsV3_CL", "graphQueries": [ { "metricName": "Total events received", @@ -7283,20 +7283,20 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV2_CL" + "outputStream": "Custom-GitHubAuditLogsV3_CL" } ] } }, { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "columns": [ { "name": "TimeGenerated", @@ -8253,7 +8253,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV2_CL", + "graphQueriesTableName": "GitHubAuditLogsV3_CL", "graphQueries": [ { "metricName": "Total events received", @@ -8499,7 +8499,7 @@ "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, From c6dd0e2fdf4efcf3e63ebb789b3bdcc23f70b538 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 09:59:13 -0700 Subject: [PATCH 04/12] Revert "GitHub solution: update all GitHubAuditLogsV2_CL references to V3" This reverts commit 0c97ac74ba8307c6b57727b3061e6bc8217d62f4. --- .../GitHubAuditLogs_ConnectorDefinition.json | 4 ++-- .../GitHubAuditLogs_DCR.json | 4 ++-- .../GitHubAuditLogs_PollerConfig.json | 4 ++-- .../GitHubAuditLogs_Table.json | 6 ++--- Solutions/GitHub/Package/mainTemplate.json | 22 +++++++++---------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json index 83db6e8f003..dca7310fab8 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_ConnectorDefinition.json @@ -10,7 +10,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV3_CL", + "graphQueriesTableName": "GitHubAuditLogsV2_CL", "graphQueries": [ { "metricName": "Total events received", @@ -126,4 +126,4 @@ ] } } -} +} \ No newline at end of file diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json index cd20d2dfe37..c93a0f82a8e 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_DCR.json @@ -957,9 +957,9 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV3_CL" + "outputStream": "Custom-GitHubAuditLogsV2_CL" } ] } } -] +] \ No newline at end of file diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json index 9a99e9e1a6c..4ca80fbcd03 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_PollerConfig.json @@ -12,7 +12,7 @@ "dataCollectionRuleImmutableId": "{{dataCollectionRuleImmutableId}}", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV3_CL", + "dataType": "GitHubAuditLogsV2_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, @@ -51,4 +51,4 @@ "isActive": true } } -] +] \ No newline at end of file diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json index 6e940e93143..13e3683f5a0 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_CCF/GitHubAuditLogs_Table.json @@ -1,11 +1,11 @@ { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "apiVersion": "2021-03-01-privatepreview", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "{{location}}", "properties": { "schema": { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "columns": [ { "name": "TimeGenerated", @@ -938,4 +938,4 @@ ] } } -} +} \ No newline at end of file diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index ad9e660ab98..3256b479aaa 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -5674,19 +5674,19 @@ { "metricName": "Total events received", "legend": "GitHubAuditLogEvents", - "baseQuery": "GitHubAuditLogsV3_CL" + "baseQuery": "GitHubAuditLogsV2_CL" } ], "sampleQueries": [ { "description": "GitHub Audit Logs", - "query": "GitHubAuditLogsV3_CL | take 10" + "query": "GitHubAuditLogsV2_CL | take 10" } ], "dataTypes": [ { - "name": "GitHubAuditLogsV3_CL", - "lastDataReceivedQuery": "GitHubAuditLogsV3_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" + "name": "GitHubAuditLogsV2_CL", + "lastDataReceivedQuery": "GitHubAuditLogsV2_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" } ], "connectivityCriteria": [ @@ -6120,7 +6120,7 @@ "isGzipCompressed": true }, "connectorDefinitionName": "GitHubAuditBlobConnector", - "dataType": "GitHubAuditLogsV3_CL", + "dataType": "GitHubAuditLogsV2_CL", "dcrConfig": { "streamName": "Custom-GitHubAuditLogs", "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]", @@ -6172,7 +6172,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV3_CL", + "graphQueriesTableName": "GitHubAuditLogsV2_CL", "graphQueries": [ { "metricName": "Total events received", @@ -7283,20 +7283,20 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV3_CL" + "outputStream": "Custom-GitHubAuditLogsV2_CL" } ] } }, { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "columns": [ { "name": "TimeGenerated", @@ -8253,7 +8253,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV3_CL", + "graphQueriesTableName": "GitHubAuditLogsV2_CL", "graphQueries": [ { "metricName": "Total events received", @@ -8499,7 +8499,7 @@ "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV3_CL", + "dataType": "GitHubAuditLogsV2_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, From ae965bea04ca1472b381994dbd3d7aba2ad34779 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 10:12:04 -0700 Subject: [PATCH 05/12] mainTemplate.json: update all remaining AzStorage V2->V3 references --- Solutions/GitHub/Package/mainTemplate.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index 3256b479aaa..ad9e660ab98 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -5674,19 +5674,19 @@ { "metricName": "Total events received", "legend": "GitHubAuditLogEvents", - "baseQuery": "GitHubAuditLogsV2_CL" + "baseQuery": "GitHubAuditLogsV3_CL" } ], "sampleQueries": [ { "description": "GitHub Audit Logs", - "query": "GitHubAuditLogsV2_CL | take 10" + "query": "GitHubAuditLogsV3_CL | take 10" } ], "dataTypes": [ { - "name": "GitHubAuditLogsV2_CL", - "lastDataReceivedQuery": "GitHubAuditLogsV2_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" + "name": "GitHubAuditLogsV3_CL", + "lastDataReceivedQuery": "GitHubAuditLogsV3_CL | summarize Time = max(TimeGenerated) | where isnotempty(Time)" } ], "connectivityCriteria": [ @@ -6120,7 +6120,7 @@ "isGzipCompressed": true }, "connectorDefinitionName": "GitHubAuditBlobConnector", - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "dcrConfig": { "streamName": "Custom-GitHubAuditLogs", "dataCollectionEndpoint": "[[parameters('dcrConfig').dataCollectionEndpoint]", @@ -6172,7 +6172,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV2_CL", + "graphQueriesTableName": "GitHubAuditLogsV3_CL", "graphQueries": [ { "metricName": "Total events received", @@ -7283,20 +7283,20 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV2_CL" + "outputStream": "Custom-GitHubAuditLogsV3_CL" } ] } }, { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV2_CL", + "name": "GitHubAuditLogsV3_CL", "columns": [ { "name": "TimeGenerated", @@ -8253,7 +8253,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV2_CL", + "graphQueriesTableName": "GitHubAuditLogsV3_CL", "graphQueries": [ { "metricName": "Total events received", @@ -8499,7 +8499,7 @@ "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV2_CL", + "dataType": "GitHubAuditLogsV3_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, From eda2b48d6e9b206c5b31fac33683b72c5f993db2 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 10:15:42 -0700 Subject: [PATCH 06/12] mainTemplate.json: revert CCF connector sections back to V2, keep AzStorage as V3 --- Solutions/GitHub/Package/mainTemplate.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index ad9e660ab98..c46c69cc3df 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -6172,7 +6172,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV3_CL", + "graphQueriesTableName": "GitHubAuditLogsV2_CL", "graphQueries": [ { "metricName": "Total events received", @@ -7283,20 +7283,20 @@ "clv2ws1" ], "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = public_repo, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = data, Config = config, ConfigWas = config_was, ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = events, EventsWere = events_were, Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink", - "outputStream": "Custom-GitHubAuditLogsV3_CL" + "outputStream": "Custom-GitHubAuditLogsV2_CL" } ] } }, { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "columns": [ { "name": "TimeGenerated", @@ -8253,7 +8253,7 @@ "title": "GitHub Enterprise Audit Log (via Codeless Connector Framework)", "publisher": "Microsoft", "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Microsoft Sentinel. By connecting GitHub audit logs into Microsoft Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process. \n\n **Note:** If you intended to ingest GitHub subscribed events into Microsoft Sentinel, please refer to GitHub (using Webhooks) Connector from \"**Data Connectors**\" gallery.", - "graphQueriesTableName": "GitHubAuditLogsV3_CL", + "graphQueriesTableName": "GitHubAuditLogsV2_CL", "graphQueries": [ { "metricName": "Total events received", @@ -8499,7 +8499,7 @@ "dataCollectionRuleImmutableId": "[[parameters('dcrConfig').dataCollectionRuleImmutableId]", "streamName": "Custom-GitHubAuditLogs" }, - "dataType": "GitHubAuditLogsV3_CL", + "dataType": "GitHubAuditLogsV2_CL", "addOnAttributes": { "ApiUrl": "[[replace(parameters('ApiUrl'), 'https://github.com/', 'https://api.github.com/')]" }, From 63f28f2570dc611adcaac37f3f9ab4715a6e7a5c Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 13:00:55 -0700 Subject: [PATCH 07/12] bump version --- Solutions/GitHub/Package/3.3.2.zip | Bin 0 -> 72927 bytes Solutions/GitHub/Package/mainTemplate.json | 1392 +++++++++++++++++++- Solutions/GitHub/data/Solution_GitHub.json | 2 +- 3 files changed, 1329 insertions(+), 65 deletions(-) create mode 100644 Solutions/GitHub/Package/3.3.2.zip diff --git a/Solutions/GitHub/Package/3.3.2.zip b/Solutions/GitHub/Package/3.3.2.zip new file mode 100644 index 0000000000000000000000000000000000000000..1bae66c2aabf26d2d360ed7b9a6beb65c214c4d6 GIT binary patch literal 72927 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 literal 0 HcmV?d00001 diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index c46c69cc3df..d7f5c57cb74 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -63,7 +63,7 @@ "email": "support@microsoft.com", "_email": "[variables('email')]", "_solutionName": "GitHub", - "_solutionVersion": "3.3.1", + "_solutionVersion": "3.3.2", "solutionId": "microsoftcorporation1622712991604.sentinel4github", "_solutionId": "[variables('solutionId')]", "workbookVersion1": "1.0.1", @@ -252,7 +252,7 @@ "parserVersion5": "1.0.0", "parserContentId5": "githubscanaudit-Parser" }, - "dataConnectorCCPVersion": "3.3.1", + "dataConnectorCCPVersion": "3.3.2", "_dataConnectorContentIdConnectorDefinition1": "GitHubAuditBlobConnector", "dataConnectorTemplateNameConnectorDefinition1": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentIdConnectorDefinition1')))]", "_dataConnectorContentIdConnections1": "GitHubAuditBlobConnectorConnections", @@ -303,7 +303,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubAdvancedSecurity Workbook with template version 3.3.1", + "description": "GitHubAdvancedSecurity Workbook with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('workbookVersion1')]", @@ -391,7 +391,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub Workbook with template version 3.3.1", + "description": "GitHub Workbook with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('workbookVersion2')]", @@ -479,7 +479,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - A payment method was removed_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - A payment method was removed_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject1').analyticRuleVersion1]", @@ -584,7 +584,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - Activities from Infrequent Country_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - Activities from Infrequent Country_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject2').analyticRuleVersion2]", @@ -689,7 +689,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - Oauth application - a client secret was removed_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - Oauth application - a client secret was removed_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject3').analyticRuleVersion3]", @@ -794,7 +794,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - Repository was created_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - Repository was created_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject4').analyticRuleVersion4]", @@ -899,7 +899,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - Repository was destroyed_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - Repository was destroyed_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject5').analyticRuleVersion5]", @@ -1004,7 +1004,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - Two Factor Authentication Disabled in GitHub_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - Two Factor Authentication Disabled in GitHub_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject6').analyticRuleVersion6]", @@ -1109,7 +1109,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - User visibility Was changed_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - User visibility Was changed_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject7').analyticRuleVersion7]", @@ -1214,7 +1214,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - User was added to the organization_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - User was added to the organization_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject8').analyticRuleVersion8]", @@ -1319,7 +1319,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - User was blocked_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - User was blocked_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject9').analyticRuleVersion9]", @@ -1424,7 +1424,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - User was invited to the repository_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - User was invited to the repository_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject10').analyticRuleVersion10]", @@ -1529,7 +1529,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - pull request was created_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - pull request was created_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject11').analyticRuleVersion11]", @@ -1634,7 +1634,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub - pull request was merged_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "GitHub - pull request was merged_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject12').analyticRuleVersion12]", @@ -1739,7 +1739,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "NRT Two Factor Authentication Disabled_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "NRT Two Factor Authentication Disabled_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject13').analyticRuleVersion13]", @@ -1840,7 +1840,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Security Vulnerability in Repo_AnalyticalRules Analytics Rule with template version 3.3.1", + "description": "Security Vulnerability in Repo_AnalyticalRules Analytics Rule with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('analyticRuleObject14').analyticRuleVersion14]", @@ -1947,7 +1947,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "First Time User Invite and Add Member to Org_HuntingQueries Hunting Query with template version 3.3.1", + "description": "First Time User Invite and Add Member to Org_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject1').huntingQueryVersion1]", @@ -2032,7 +2032,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Inactive or New Account Usage_HuntingQueries Hunting Query with template version 3.3.1", + "description": "Inactive or New Account Usage_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject2').huntingQueryVersion2]", @@ -2117,7 +2117,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Mass Deletion of Repositories _HuntingQueries Hunting Query with template version 3.3.1", + "description": "Mass Deletion of Repositories _HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject3').huntingQueryVersion3]", @@ -2202,7 +2202,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Oauth App Restrictions Disabled_HuntingQueries Hunting Query with template version 3.3.1", + "description": "Oauth App Restrictions Disabled_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject4').huntingQueryVersion4]", @@ -2287,7 +2287,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Org Repositories Default Permissions Change_HuntingQueries Hunting Query with template version 3.3.1", + "description": "Org Repositories Default Permissions Change_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject5').huntingQueryVersion5]", @@ -2372,7 +2372,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Repository Permission Switched to Public_HuntingQueries Hunting Query with template version 3.3.1", + "description": "Repository Permission Switched to Public_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject6').huntingQueryVersion6]", @@ -2457,7 +2457,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "User First Time Repository Delete Activity_HuntingQueries Hunting Query with template version 3.3.1", + "description": "User First Time Repository Delete Activity_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject7').huntingQueryVersion7]", @@ -2542,7 +2542,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "User Grant Access and Grants Other Access_HuntingQueries Hunting Query with template version 3.3.1", + "description": "User Grant Access and Grants Other Access_HuntingQueries Hunting Query with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('huntingQueryObject8').huntingQueryVersion8]", @@ -2627,7 +2627,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubAuditData Data Parser with template version 3.3.1", + "description": "GitHubAuditData Data Parser with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('parserObject1').parserVersion1]", @@ -2644,7 +2644,7 @@ "displayName": "Parser for GitHubAuditData", "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV3_view = view () {\nGitHubAuditLogsV3_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV3_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", + "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV2_view = view () {\nGitHubAuditLogsV2_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV2_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", "functionParameters": "", "version": 2, "tags": [ @@ -2709,7 +2709,7 @@ "displayName": "Parser for GitHubAuditData", "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV3_view = view () {\nGitHubAuditLogsV3_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV3_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", + "query": "let GitHubAuditLogPolling_view = view () {\nGitHubAuditLogPolling_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=column_ifexists('org_s', ''),\n Action=column_ifexists('action_s', ''),\n Repository=column_ifexists('repo_s', ''),\n Actor=column_ifexists('actor_s', ''),\n Country=column_ifexists('actor_location_country_code_s', ''),\n ImpactedUser=column_ifexists('user_s', ''),\n InvitedUserPermission=column_ifexists('permission_s', ''),\n Visibility=column_ifexists('visibility_s', ''),\n PreviousVisibility=column_ifexists('previous_visibility_s', ''),\n CurrentPermission=column_ifexists('permission_s', ''),\n PreviousPermission=column_ifexists('old_permission_s', ''),\n TeamName=column_ifexists('team_s', ''),\n BlockedUser=column_ifexists('blocked_user_s', '')\n};\nlet GitHubAuditLogsV2_view = view () {\nGitHubAuditLogsV2_CL\n | extend \n TimeGenerated=unixtime_milliseconds_todatetime(CreatedAt),\n Organization=column_ifexists('Org', ''),\n Action=column_ifexists('Action', ''),\n Repository=column_ifexists('Repo', ''),\n Actor=column_ifexists('Actor', ''),\n Country=column_ifexists('CountryCode', ''),\n ImpactedUser=column_ifexists('User', ''),\n InvitedUserPermission=column_ifexists('Permission', ''),\n Visibility=column_ifexists('Visibility', ''),\n PreviousVisibility=column_ifexists('PreviousVisibility', ''),\n CurrentPermission=column_ifexists('Permission', ''),\n PreviousPermission=column_ifexists('OldPermission', ''),\n TeamName=column_ifexists('Team', ''),\n BlockedUser=column_ifexists('BlockedUser', '')\n};\nunion isfuzzy=true (GitHubAuditLogPolling_view), (GitHubAuditLogsV2_view)\n | project\n TimeGenerated,\n Organization,\n Action,\n Repository,\n Actor,\n Country,\n ImpactedUser,\n InvitedUserPermission,\n Visibility,\n PreviousVisibility,\n CurrentPermission,\n PreviousPermission,\n TeamName,\n BlockedUser\n | project-reorder TimeGenerated, Organization, Action, Repository, Actor, Country, ImpactedUser, InvitedUserPermission, Visibility, PreviousVisibility, CurrentPermission, PreviousPermission, TeamName, BlockedUser\n", "functionParameters": "", "version": 2, "tags": [ @@ -2759,7 +2759,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubCodeScanningData Data Parser with template version 3.3.1", + "description": "GitHubCodeScanningData Data Parser with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('parserObject2').parserVersion2]", @@ -2891,7 +2891,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubDependabotData Data Parser with template version 3.3.1", + "description": "GitHubDependabotData Data Parser with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('parserObject3').parserVersion3]", @@ -3023,7 +3023,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubSecretScanningData Data Parser with template version 3.3.1", + "description": "GitHubSecretScanningData Data Parser with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('parserObject4').parserVersion4]", @@ -3155,7 +3155,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHubScanAudit Data Parser with template version 3.3.1", + "description": "GitHubScanAudit Data Parser with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('parserObject5').parserVersion5]", @@ -4444,6 +4444,46 @@ "name": "audit_log_stream_sink", "type": "string" }, + { + "name": "repository", + "type": "string" + }, + { + "name": "repository_id", + "type": "real" + }, + { + "name": "token_scopes", + "type": "string" + }, + { + "name": "request_method", + "type": "string" + }, + { + "name": "query_string", + "type": "string" + }, + { + "name": "request_body", + "type": "string" + }, + { + "name": "status_code", + "type": "real" + }, + { + "name": "url_path", + "type": "string" + }, + { + "name": "route", + "type": "string" + }, + { + "name": "rate_limit_remaining", + "type": "real" + }, { "name": "actor_location", "type": "dynamic" @@ -4454,34 +4494,1258 @@ "destinations": { "logAnalytics": [ { - "workspaceResourceId": "[variables('workspaceResourceId')]", - "name": "clv2ws1" + "workspaceResourceId": "[variables('workspaceResourceId')]", + "name": "clv2ws1" + } + ] + }, + "dataFlows": [ + { + "streams": [ + "Custom-GitHubAuditLogs" + ], + "destinations": [ + "clv2ws1" + ], + "outputStream": "Custom-GitHubAuditLogsV3_CL", + "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink, Repository = repository, RepositoryId = repository_id, TokenScopes = token_scopes, RequestMethod = request_method, QueryString = query_string, RequestBody = request_body, StatusCode = status_code, UrlPath = url_path, Route = route, RateLimitRemaining = rate_limit_remaining" + } + ] + } + }, + { + "name": "GitHubAuditLogsV3_CL", + "apiVersion": "2022-10-01", + "type": "Microsoft.OperationalInsights/workspaces/tables", + "location": "[parameters('workspace-location')]", + "kind": null, + "properties": { + "schema": { + "name": "GitHubAuditLogsV3_CL", + "columns": [ + { + "name": "TimeGenerated", + "type": "datetime" + }, + { + "name": "Org", + "type": "string", + "description": "The GitHub organization associated with the audit log event." + }, + { + "name": "Action", + "type": "string", + "description": "The name of the action that was performed, for example user.login or repo.create." + }, + { + "name": "Repo", + "type": "string", + "description": "The name of the repository associated with the event." + }, + { + "name": "Actor", + "type": "string", + "description": "The actor who performed the action." + }, + { + "name": "CountryCode", + "type": "string", + "description": "The country code from the actor's location." + }, + { + "name": "User", + "type": "string", + "description": "The user that was affected by the action performed." + }, + { + "name": "Permission", + "type": "string", + "description": "The permission level granted or associated with the action." + }, + { + "name": "Visibility", + "type": "string", + "description": "The repository visibility, for example public or private." + }, + { + "name": "PreviousVisibility", + "type": "string", + "description": "The previous repository visibility before the change." + }, + { + "name": "OldPermission", + "type": "string", + "description": "The previous permission level before the change." + }, + { + "name": "Team", + "type": "string", + "description": "The team associated with the audit log event." + }, + { + "name": "BlockedUser", + "type": "string", + "description": "The username of the account being blocked." + }, + { + "name": "OperationType", + "type": "string", + "description": "The type of operation performed, for example create, modify, or delete." + }, + { + "name": "PublicRepo", + "type": "boolean", + "description": "Whether the repository is public." + }, + { + "name": "OrgId", + "type": "real", + "description": "The numeric identifier of the GitHub organization." + }, + { + "name": "CreatedAt", + "type": "real", + "description": "The time the audit log event was recorded, given as a Unix timestamp in milliseconds." + }, + { + "name": "InviteeEmail", + "type": "string", + "description": "The email address of the person invited." + }, + { + "name": "ActorIp", + "type": "string", + "description": "The IP address of the actor who performed the action.", + "dataTypeHint": "IP" + }, + { + "name": "ActorId", + "type": "real", + "description": "The numeric identifier of the actor who performed the action." + }, + { + "name": "ActorIsBot", + "type": "boolean", + "description": "Whether the actor is a bot account." + }, + { + "name": "BusinessId", + "type": "real", + "description": "The numeric identifier of the GitHub Enterprise business." + }, + { + "name": "RepoId", + "type": "real", + "description": "The numeric identifier of the repository." + }, + { + "name": "UserAgent", + "type": "string", + "description": "The user agent string of the client that initiated the action." + }, + { + "name": "UserId", + "type": "real", + "description": "The numeric identifier of the affected user." + }, + { + "name": "Email", + "type": "string", + "description": "The email address associated with the event." + }, + { + "name": "RepositorySecurityConfigurationFailureReason", + "type": "dynamic", + "description": "The reason a repository security configuration failed to apply." + }, + { + "name": "RepositorySecurityConfigurationState", + "type": "dynamic", + "description": "The state of the repository security configuration." + }, + { + "name": "SecurityConfigurationName", + "type": "string", + "description": "The name of the security configuration." + }, + { + "name": "OauthApplication", + "type": "string", + "description": "The name of the OAuth application involved in the event." + }, + { + "name": "OauthApplicationUrl", + "type": "string", + "description": "The URL of the OAuth application." + }, + { + "name": "OauthApplicationState", + "type": "string", + "description": "The state of the OAuth application." + }, + { + "name": "Reason", + "type": "string", + "description": "The reason for the action or event." + }, + { + "name": "MembershipType", + "type": "string", + "description": "The type of membership, for example admin or member." + }, + { + "name": "UserCanInviteCollaborators", + "type": "boolean", + "description": "Whether the user has permission to invite collaborators." + }, + { + "name": "CanCreateRepositories", + "type": "boolean", + "description": "Whether the user has permission to create repositories." + }, + { + "name": "SecurityConfigurationId", + "type": "real", + "description": "The numeric identifier of the security configuration." + }, + { + "name": "InvitationId", + "type": "real", + "description": "The numeric identifier of the invitation." + }, + { + "name": "Topic", + "type": "string", + "description": "The topic associated with the event." + }, + { + "name": "DocumentId", + "type": "string", + "description": "A unique identifier for the audit event." + }, + { + "name": "Business", + "type": "string", + "description": "The name of the GitHub Enterprise business." + }, + { + "name": "RequestCategory", + "type": "string", + "description": "The category of the request." + }, + { + "name": "OauthApplicationId", + "type": "real", + "description": "The numeric identifier of the OAuth application." + }, + { + "name": "OldRepoPermission", + "type": "string", + "description": "The previous repository permission before the change." + }, + { + "name": "NewRepoPermission", + "type": "string", + "description": "The new repository permission after the change." + }, + { + "name": "RepositoriesRemovedNames", + "type": "string", + "description": "The names of repositories that were removed." + }, + { + "name": "Active", + "type": "boolean", + "description": "Whether the resource is currently active." + }, + { + "name": "ActiveWas", + "type": "boolean", + "description": "Whether the resource was previously active." + }, + { + "name": "Data", + "type": "string", + "description": "Additional data associated with the event, serialized as a JSON string." + }, + { + "name": "Config", + "type": "string", + "description": "The current configuration associated with the event, serialized as a JSON string." + }, + { + "name": "ConfigWas", + "type": "string", + "description": "The previous configuration before the change, serialized as a JSON string." + }, + { + "name": "ContentType", + "type": "string", + "description": "The content type of the resource." + }, + { + "name": "DeployKeyFingerprint", + "type": "string", + "description": "The fingerprint of the deploy key." + }, + { + "name": "Emoji", + "type": "string", + "description": "The emoji associated with the event." + }, + { + "name": "Events", + "type": "string", + "description": "The current events configuration, serialized as a JSON string." + }, + { + "name": "EventsWere", + "type": "string", + "description": "The previous events configuration before the change, serialized as a JSON string." + }, + { + "name": "Explanation", + "type": "string", + "description": "An explanation or additional context for the event." + }, + { + "name": "Fingerprint", + "type": "string", + "description": "The fingerprint of the key or certificate." + }, + { + "name": "HookId", + "type": "real", + "description": "The numeric identifier of the webhook." + }, + { + "name": "LimitedAvailability", + "type": "boolean", + "description": "Whether the feature has limited availability." + }, + { + "name": "Message", + "type": "string", + "description": "A message associated with the event." + }, + { + "name": "Name", + "type": "string", + "description": "The name of the resource associated with the event." + }, + { + "name": "OldUser", + "type": "string", + "description": "The previous user before the change." + }, + { + "name": "OpensshPublicKey", + "type": "string", + "description": "The OpenSSH public key associated with the event." + }, + { + "name": "ReadOnly", + "type": "boolean", + "description": "Whether the resource is read-only." + }, + { + "name": "TargetLogin", + "type": "string", + "description": "The login of the target user." + }, + { + "name": "TransportProtocol", + "type": "real", + "description": "The type of protocol (for example, HTTP or SSH) used to transfer Git data." + }, + { + "name": "TransportProtocolName", + "type": "string", + "description": "A human readable name for the protocol used to transfer Git data." + }, + { + "name": "StartedAt", + "type": "datetime", + "description": "The time the workflow or job started." + }, + { + "name": "CompletedAt", + "type": "datetime", + "description": "The time the workflow or job completed." + }, + { + "name": "Conclusion", + "type": "string", + "description": "The conclusion status of the workflow run, for example success or failure." + }, + { + "name": "Event", + "type": "string", + "description": "The event that triggered the workflow." + }, + { + "name": "HeadBranch", + "type": "string", + "description": "The head branch of the workflow run." + }, + { + "name": "HeadSha", + "type": "string", + "description": "The HEAD SHA of the commit that triggered the workflow." + }, + { + "name": "RunAttempt", + "type": "real", + "description": "The attempt number of the workflow run." + }, + { + "name": "RunNumber", + "type": "real", + "description": "The run number of the workflow." + }, + { + "name": "TriggerId", + "type": "real", + "description": "The numeric identifier of the trigger." + }, + { + "name": "WorkflowId", + "type": "real", + "description": "The numeric identifier of the workflow." + }, + { + "name": "WorkflowRunId", + "type": "real", + "description": "The numeric identifier of the workflow run." + }, + { + "name": "EnvironmentName", + "type": "string", + "description": "The name of the deployment environment." + }, + { + "name": "IsHostedRunner", + "type": "boolean", + "description": "Whether the runner is a GitHub-hosted runner." + }, + { + "name": "JobName", + "type": "string", + "description": "The name of the workflow job." + }, + { + "name": "JobWorkflowRef", + "type": "string", + "description": "The reference to the reusable workflow used by the job." + }, + { + "name": "RunnerGroupId", + "type": "real", + "description": "The numeric identifier of the runner group." + }, + { + "name": "RunnerGroupName", + "type": "string", + "description": "The name of the runner group." + }, + { + "name": "RunnerId", + "type": "real", + "description": "The numeric identifier of the runner." + }, + { + "name": "RunnerLabels", + "type": "string", + "description": "The labels assigned to the runner." + }, + { + "name": "RunnerName", + "type": "string", + "description": "The name of the runner." + }, + { + "name": "SecretsPassed", + "type": "string", + "description": "The secrets passed to the workflow or job." + }, + { + "name": "HashedToken", + "type": "string", + "description": "The hashed token used for authentication." + }, + { + "name": "ProgrammaticAccessType", + "type": "string", + "description": "The type of programmatic access used." + }, + { + "name": "RequestAccessSecurityHeader", + "type": "string", + "description": "The security header of the access request." + }, + { + "name": "TokenId", + "type": "real", + "description": "The numeric identifier of the token." + }, + { + "name": "PullRequestId", + "type": "real", + "description": "The numeric identifier of the pull request." + }, + { + "name": "PullRequestTitle", + "type": "string", + "description": "The title of the pull request." + }, + { + "name": "PullRequestUrl", + "type": "string", + "description": "The URL of the pull request." + }, + { + "name": "OldRolePermissions", + "type": "string", + "description": "The previous role permissions before the change." + }, + { + "name": "RolePermissions", + "type": "string", + "description": "The current role permissions." + }, + { + "name": "RequestId", + "type": "string", + "description": "The unique identifier of the request." + }, + { + "name": "BaseRole", + "type": "string", + "description": "The base role for the organization or repository." + }, + { + "name": "CustomPattern", + "type": "string", + "description": "The custom secret scanning pattern." + }, + { + "name": "Source", + "type": "string", + "description": "The source of the event." + }, + { + "name": "ActivityType", + "type": "string", + "description": "The type of activity that was performed." + }, + { + "name": "GhsaId", + "type": "string", + "description": "The GitHub Security Advisory identifier." + }, + { + "name": "Recipient", + "type": "string", + "description": "The recipient of the action." + }, + { + "name": "RunnerOwnerType", + "type": "string", + "description": "The type of the runner owner, for example organization or enterprise." + }, + { + "name": "OrganizationRoleId", + "type": "real", + "description": "The numeric identifier of the organization role." + }, + { + "name": "OrganizationRoleName", + "type": "string", + "description": "The name of the organization role." + }, + { + "name": "Owner", + "type": "string", + "description": "The owner of the resource." + }, + { + "name": "OldTokenExpiration", + "type": "real", + "description": "The previous token expiration timestamp." + }, + { + "name": "ExemptAdministrators", + "type": "boolean", + "description": "Whether administrators are exempt from the rule." + }, + { + "name": "TokenExpiration", + "type": "real", + "description": "The token expiration timestamp." + }, + { + "name": "Policy", + "type": "string", + "description": "The policy associated with the event." + }, + { + "name": "ApplicationClientId", + "type": "string", + "description": "The client ID of the application." + }, + { + "name": "Integration", + "type": "string", + "description": "The integration associated with the event." + }, + { + "name": "RepositoriesRemoved", + "type": "string", + "description": "The repositories removed from the integration or configuration." + }, + { + "name": "RepositorySelection", + "type": "string", + "description": "The repository selection mode, for example all or selected." + }, + { + "name": "NewProjectBaseRole", + "type": "string", + "description": "The new base role for the project." + }, + { + "name": "OldProjectBaseRole", + "type": "string", + "description": "The previous base role for the project." + }, + { + "name": "ProjectId", + "type": "real", + "description": "The numeric identifier of the project." + }, + { + "name": "ProjectNumber", + "type": "real", + "description": "The project number." + }, + { + "name": "PublicProject", + "type": "boolean", + "description": "Whether the project is public." + }, + { + "name": "RulesetBypassActors", + "type": "string", + "description": "The actors that can bypass the ruleset." + }, + { + "name": "RulesetConditions", + "type": "string", + "description": "The conditions of the ruleset." + }, + { + "name": "RulesetEnforcement", + "type": "string", + "description": "The enforcement level of the ruleset." + }, + { + "name": "RulesetId", + "type": "real", + "description": "The numeric identifier of the ruleset." + }, + { + "name": "RulesetName", + "type": "string", + "description": "The name of the ruleset." + }, + { + "name": "RulesetRules", + "type": "string", + "description": "The rules defined in the ruleset." + }, + { + "name": "RulesetSourceType", + "type": "string", + "description": "The source type of the ruleset, for example organization or repository." + }, + { + "name": "RulesetRulesDeleted", + "type": "string", + "description": "The rules deleted from the ruleset." + }, + { + "name": "RulesetConditionsUpdated", + "type": "string", + "description": "The updated conditions of the ruleset." + }, + { + "name": "AdminEnforced", + "type": "boolean", + "description": "Whether the branch protection rule is enforced for administrators." + }, + { + "name": "AllowDeletionsEnforcementLevel", + "type": "real", + "description": "The enforcement level for allowing branch deletions." + }, + { + "name": "AllowForcePushesEnforcementLevel", + "type": "real", + "description": "The enforcement level for allowing force pushes." + }, + { + "name": "AuthorizedActorNames", + "type": "string", + "description": "The names of actors authorized to bypass branch protection." + }, + { + "name": "CreateProtected", + "type": "boolean", + "description": "Whether branch creation is protected." + }, + { + "name": "DismissStaleReviewsOnPush", + "type": "boolean", + "description": "Whether stale pull request reviews are dismissed on new pushes." + }, + { + "name": "EnforcementLevel", + "type": "string", + "description": "The enforcement level of the protection rule." + }, + { + "name": "IgnoreApprovalsFromContributors", + "type": "boolean", + "description": "Whether approvals from contributors are ignored." + }, + { + "name": "LinearHistoryRequirementEnforcementLevel", + "type": "real", + "description": "The enforcement level for requiring linear commit history." + }, + { + "name": "LockAllowsFetchAndMerge", + "type": "boolean", + "description": "Whether locked branches allow fetch and merge." + }, + { + "name": "LockBranchEnforcementLevel", + "type": "real", + "description": "The enforcement level for branch locking." + }, + { + "name": "MergeQueueEnforcementLevel", + "type": "real", + "description": "The enforcement level for merge queue." + }, + { + "name": "PullRequestReviewsEnforcementLevel", + "type": "real", + "description": "The enforcement level for pull request reviews." + }, + { + "name": "RequireCodeOwnerReview", + "type": "boolean", + "description": "Whether code owner review is required." + }, + { + "name": "RequireLastPushApproval", + "type": "boolean", + "description": "Whether approval from someone other than the last pusher is required." + }, + { + "name": "RequiredApprovingReviewCount", + "type": "real", + "description": "The number of required approving reviews." + }, + { + "name": "RequiredDeploymentsEnforcementLevel", + "type": "real", + "description": "The enforcement level for required deployments." + }, + { + "name": "RequiredReviewThreadResolutionEnforcementLevel", + "type": "real", + "description": "The enforcement level for required review thread resolution." + }, + { + "name": "RequiredStatusChecksEnforcementLevel", + "type": "real", + "description": "The enforcement level for required status checks." + }, + { + "name": "SignatureRequirementEnforcementLevel", + "type": "real", + "description": "The enforcement level for commit signature requirements." + }, + { + "name": "StrictRequiredStatusChecksPolicy", + "type": "boolean", + "description": "Whether strict required status checks policy is enabled." + }, + { + "name": "AllowedValues", + "type": "string", + "description": "The allowed values for a custom property." + }, + { + "name": "DefaultValue", + "type": "string", + "description": "The default value for a custom property." + }, + { + "name": "DefinitionId", + "type": "real", + "description": "The numeric identifier of the custom property definition." + }, + { + "name": "Description", + "type": "string", + "description": "The description of the resource or event." + }, + { + "name": "PropertyName", + "type": "string", + "description": "The name of the custom property." + }, + { + "name": "ValueType", + "type": "string", + "description": "The data type of the custom property value." + }, + { + "name": "ValuesEditableBy", + "type": "string", + "description": "Who can edit the custom property values." + }, + { + "name": "OldValuesEditableBy", + "type": "string", + "description": "Who could previously edit the custom property values." + }, + { + "name": "OldDefaultValue", + "type": "string", + "description": "The previous default value for a custom property." + }, + { + "name": "OldRequired", + "type": "boolean", + "description": "Whether the custom property was previously required." + }, + { + "name": "Required", + "type": "boolean", + "description": "Whether the custom property is required." + }, + { + "name": "Enablement", + "type": "string", + "description": "The enablement state of a feature or configuration." + }, + { + "name": "OwnerType", + "type": "string", + "description": "The type of the owner, for example user or organization." + }, + { + "name": "CommitId", + "type": "string", + "description": "The commit identifier associated with the event." + }, + { + "name": "RuleSuiteId", + "type": "real", + "description": "The numeric identifier of the rule suite evaluation." + }, + { + "name": "Referrer", + "type": "string", + "description": "The referrer URL or source." + }, + { + "name": "Reasons", + "type": "string", + "description": "The reasons for the action or decision." + }, + { + "name": "OverriddenCodes", + "type": "string", + "description": "The codes that were overridden." + }, + { + "name": "After", + "type": "string", + "description": "The state after the change." + }, + { + "name": "Before", + "type": "string", + "description": "The state before the change." + }, + { + "name": "Branch", + "type": "string", + "description": "The branch associated with the event." + }, + { + "name": "IssueTypeName", + "type": "string", + "description": "The name of the issue type." + }, + { + "name": "OldDescription", + "type": "string", + "description": "The previous description before the change." + }, + { + "name": "OldEnabled", + "type": "boolean", + "description": "Whether the feature was previously enabled." + }, + { + "name": "OldIssueTypeName", + "type": "string", + "description": "The previous issue type name before the change." + }, + { + "name": "NewAccess", + "type": "string", + "description": "The new access level after the change." + }, + { + "name": "OldAccess", + "type": "string", + "description": "The previous access level before the change." + }, + { + "name": "UpdatedAllowedTypes", + "type": "boolean", + "description": "Whether the allowed types were updated." + }, + { + "name": "NewPolicy", + "type": "string", + "description": "The new policy after the change." + }, + { + "name": "NewRepoRunnersPolicy", + "type": "string", + "description": "The new repository runners policy after the change." + }, + { + "name": "OldRepoRunnersPolicy", + "type": "string", + "description": "The previous repository runners policy." + }, + { + "name": "Limit", + "type": "real", + "description": "The limit value associated with the event." + }, + { + "name": "RunnerGroupRestrictedToWorkflows", + "type": "boolean", + "description": "Whether the runner group is restricted to specific workflows." + }, + { + "name": "RunnerGroupSelectedWorkflowRefs", + "type": "string", + "description": "The workflow references selected for the runner group." + }, + { + "name": "RunnerGroupAllowPublic", + "type": "boolean", + "description": "Whether the runner group allows public repositories." + }, + { + "name": "IpAllowListEntry", + "type": "string", + "description": "The IP allow list entry." + }, + { + "name": "TwoFactorMethod", + "type": "string", + "description": "The two-factor authentication method used." + }, + { + "name": "AlertNumbers", + "type": "string", + "description": "The alert numbers associated with the event." + }, + { + "name": "CommitOid", + "type": "string", + "description": "The commit object identifier (OID)." + }, + { + "name": "Ref", + "type": "string", + "description": "The Git reference associated with the event." + }, + { + "name": "DefaultForNewPrivateRepos", + "type": "boolean", + "description": "Whether the configuration is the default for new private repositories." + }, + { + "name": "DefaultForNewPublicRepos", + "type": "boolean", + "description": "Whether the configuration is the default for new public repositories." + }, + { + "name": "DomainName", + "type": "string", + "description": "The domain name associated with the event." + }, + { + "name": "Key", + "type": "string", + "description": "The key associated with the event." + }, + { + "name": "SecurityConfigurationCodeScanning", + "type": "string", + "description": "The code scanning setting of the security configuration." + }, + { + "name": "SecurityConfigurationCodeSecuritySkuEnabled", + "type": "boolean", + "description": "Whether the code security SKU is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationCreatedAt", + "type": "datetime", + "description": "The creation date of the security configuration." + }, + { + "name": "SecurityConfigurationDependabotAlerts", + "type": "string", + "description": "The Dependabot alerts setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependabotSecurityUpdates", + "type": "string", + "description": "The Dependabot security updates setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependencyGraph", + "type": "string", + "description": "The dependency graph setting of the security configuration." + }, + { + "name": "SecurityConfigurationDependencyGraphAutosubmitAction", + "type": "string", + "description": "The dependency graph autosubmit action setting of the security configuration." + }, + { + "name": "SecurityConfigurationDescription", + "type": "string", + "description": "The description of the security configuration." + }, + { + "name": "SecurityConfigurationEnableGhas", + "type": "boolean", + "description": "Whether GitHub Advanced Security is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationPrivateVulnerabilityReporting", + "type": "string", + "description": "The private vulnerability reporting setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretProtectionSkuEnabled", + "type": "boolean", + "description": "Whether the secret protection SKU is enabled in the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanning", + "type": "string", + "description": "The secret scanning setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningDelegatedBypass", + "type": "string", + "description": "The secret scanning delegated bypass setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningGenericSecrets", + "type": "string", + "description": "The secret scanning generic secrets setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningNonProviderPatterns", + "type": "string", + "description": "The secret scanning non-provider patterns setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningPushProtection", + "type": "string", + "description": "The secret scanning push protection setting of the security configuration." + }, + { + "name": "SecurityConfigurationSecretScanningValidityChecks", + "type": "string", + "description": "The secret scanning validity checks setting of the security configuration." + }, + { + "name": "SecurityConfigurationUpdatedAt", + "type": "datetime", + "description": "The last update date of the security configuration." + }, + { + "name": "ThreatModel", + "type": "string", + "description": "The threat model associated with the event." + }, + { + "name": "QuerySuite", + "type": "string", + "description": "The code scanning query suite." + }, + { + "name": "VulnerabilityAlertRuleActionsAlertActionsAutoDismiss", + "type": "string", + "description": "The auto-dismiss setting for vulnerability alert rule actions." + }, + { + "name": "VulnerabilityAlertRuleActionsVersion", + "type": "real", + "description": "The version of the vulnerability alert rule actions." + }, + { + "name": "VulnerabilityAlertRuleConditionsCwe", + "type": "string", + "description": "The CWE conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleConditionsEcosystem", + "type": "string", + "description": "The ecosystem conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleConditionsScope", + "type": "string", + "description": "The scope conditions for the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleId", + "type": "real", + "description": "The numeric identifier of the vulnerability alert rule." + }, + { + "name": "VulnerabilityAlertRuleName", + "type": "string", + "description": "The name of the vulnerability alert rule." + }, + { + "name": "DismissalApproverId", + "type": "real", + "description": "The numeric identifier of the user who approved the dismissal." + }, + { + "name": "SsoUrl", + "type": "string", + "description": "The single sign-on URL." + }, + { + "name": "Issuer", + "type": "string", + "description": "The issuer of the SSO or SAML identity." + }, + { + "name": "ExternalIdentityUsername", + "type": "string", + "description": "The username of the external identity." + }, + { + "name": "ExternalIdentityNameid", + "type": "string", + "description": "The NameID of the external identity." + }, + { + "name": "AuditLogStreamResult", + "type": "string", + "description": "The result of the audit log stream operation." + }, + { + "name": "AuditLogStreamSinkDetails", + "type": "string", + "description": "The details of the audit log stream sink." + }, + { + "name": "AuditLogStreamId", + "type": "real", + "description": "The numeric identifier of the audit log stream." + }, + { + "name": "AuditLogStreamSink", + "type": "string", + "description": "The sink type of the audit log stream." + }, + { + "name": "Repository", + "type": "string", + "description": "The name of the repository associated with the event." + }, + { + "name": "RepositoryId", + "type": "real", + "description": "The numeric identifier of the repository." + }, + { + "name": "TokenScopes", + "type": "string", + "description": "The scopes associated with the token used for authentication." + }, + { + "name": "RequestMethod", + "type": "string", + "description": "The HTTP request method, for example GET or POST." + }, + { + "name": "QueryString", + "type": "string", + "description": "The query string from the HTTP request URL." + }, + { + "name": "RequestBody", + "type": "string", + "description": "The body of the HTTP request." + }, + { + "name": "StatusCode", + "type": "real", + "description": "The HTTP response status code." + }, + { + "name": "UrlPath", + "type": "string", + "description": "The URL path of the HTTP request." + }, + { + "name": "Route", + "type": "string", + "description": "The API route associated with the event." + }, + { + "name": "RateLimitRemaining", + "type": "real", + "description": "The number of API rate limit requests remaining." } ] - }, - "dataFlows": [ - { - "streams": [ - "Custom-GitHubAuditLogs" - ], - "destinations": [ - "clv2ws1" - ], - "outputStream": "Custom-GitHubAuditLogsV3_CL", - "transformKql": "source | extend actor_locationDynamic = parse_json(actor_location) | extend CountryCode = tostring(actor_locationDynamic['country_code']) | extend TimestampLong = tolong(['@timestamp']) | extend TimeGenerated = datetime(1970-01-01) + (TimestampLong * 1ms) | project TimeGenerated, CreatedAt = created_at, Org = org, Action = action, Repo = repo, Actor = actor, CountryCode, User = user, Permission = permission, Visibility = visibility, PreviousVisibility = previous_visibility, OldPermission = old_permission, Team = team, BlockedUser = blocked_user, OperationType = operation_type, PublicRepo = repository_public, OrgId = org_id, InviteeEmail = invitee_email, ActorIp = actor_ip, ActorId = actor_id, ActorIsBot = actor_is_bot, BusinessId = business_id, RepoId = repo_id, UserAgent = user_agent, UserId = user_id, Email = email, RepositorySecurityConfigurationFailureReason = repository_security_configuration_failure_reason, RepositorySecurityConfigurationState = repository_security_configuration_state, OauthApplication = oauth_application, OauthApplicationUrl = oauth_application_url, OauthApplicationState = oauth_application_state, Reason = reason, MembershipType = membership_type, UserCanInviteCollaborators = user_can_invite_collaborators, CanCreateRepositories = can_create_repositories, SecurityConfigurationId = security_configuration_id, InvitationId = invitation_id, Topic = topic, DocumentId = _document_id, Business = business, RequestCategory = request_category, OauthApplicationId = oauth_application_id, OldRepoPermission = old_repo_permission, NewRepoPermission = new_repo_permission, RepositoriesRemovedNames = repositories_removed_names, Active = active, ActiveWas = active_was, Data = tostring(data), Config = tostring(config), ConfigWas = tostring(config_was), ContentType = content_type, DeployKeyFingerprint = deploy_key_fingerprint, Emoji = emoji, Events = tostring(events), EventsWere = tostring(events_were), Explanation = explanation, Fingerprint = fingerprint, HookId = hook_id, LimitedAvailability = limited_availability, Message = message, Name = name, OldUser = old_user, OpensshPublicKey = openssh_public_key, ReadOnly = read_only, TargetLogin = target_login, TransportProtocol = transport_protocol, TransportProtocolName = transport_protocol_name, StartedAt = started_at, CompletedAt = completed_at, Conclusion = conclusion, Event = event, HeadBranch = head_branch, HeadSha = head_sha, RunAttempt = run_attempt, RunNumber = run_number, TriggerId = trigger_id, WorkflowId = workflow_id, WorkflowRunId = workflow_run_id, EnvironmentName = environment_name, IsHostedRunner = is_hosted_runner, JobName = job_name, JobWorkflowRef = job_workflow_ref, RunnerGroupId = runner_group_id, RunnerGroupName = runner_group_name, RunnerId = runner_id, RunnerLabels = runner_labels, RunnerName = runner_name, SecretsPassed = secrets_passed, HashedToken = hashed_token, ProgrammaticAccessType = programmatic_access_type, RequestAccessSecurityHeader = request_access_security_header, TokenId = token_id, PullRequestId = pull_request_id, PullRequestTitle = pull_request_title, PullRequestUrl = pull_request_url, OldRolePermissions = old_role_permissions, RolePermissions = role_permissions, RequestId = request_id, BaseRole = base_role, CustomPattern = custom_pattern, Source = source, ActivityType = type, GhsaId = ghsa_id, Recipient = recipient, RunnerOwnerType = runner_owner_type, OrganizationRoleId = organization_role_id, OrganizationRoleName = organization_role_name, Owner = owner, OldTokenExpiration = old_token_expiration, ExemptAdministrators = exempt_administrators, TokenExpiration = token_expiration, Policy = policy, ApplicationClientId = application_client_id, Integration = integration, RepositoriesRemoved = repositories_removed, RepositorySelection = repository_selection, NewProjectBaseRole = new_project_base_role, OldProjectBaseRole = old_project_base_role, ProjectId = project_id, ProjectNumber = project_number, PublicProject = public_project, RulesetBypassActors = ruleset_bypass_actors, RulesetConditions = ruleset_conditions, RulesetEnforcement = ruleset_enforcement, RulesetId = ruleset_id, RulesetName = ruleset_name, RulesetRules = ruleset_rules, RulesetSourceType = ruleset_source_type, RulesetRulesDeleted = ruleset_rules_deleted, RulesetConditionsUpdated = ruleset_conditions_updated, AdminEnforced = admin_enforced, AllowDeletionsEnforcementLevel = allow_deletions_enforcement_level, AllowForcePushesEnforcementLevel = allow_force_pushes_enforcement_level, AuthorizedActorNames = authorized_actor_names, CreateProtected = create_protected, DismissStaleReviewsOnPush = dismiss_stale_reviews_on_push, EnforcementLevel = enforcement_level, IgnoreApprovalsFromContributors = ignore_approvals_from_contributors, LinearHistoryRequirementEnforcementLevel = linear_history_requirement_enforcement_level, LockAllowsFetchAndMerge = lock_allows_fetch_and_merge, LockBranchEnforcementLevel = lock_branch_enforcement_level, MergeQueueEnforcementLevel = merge_queue_enforcement_level, PullRequestReviewsEnforcementLevel = pull_request_reviews_enforcement_level, RequireCodeOwnerReview = require_code_owner_review, RequireLastPushApproval = require_last_push_approval, RequiredApprovingReviewCount = required_approving_review_count, RequiredDeploymentsEnforcementLevel = required_deployments_enforcement_level, RequiredReviewThreadResolutionEnforcementLevel = required_review_thread_resolution_enforcement_level, RequiredStatusChecksEnforcementLevel = required_status_checks_enforcement_level, SignatureRequirementEnforcementLevel = signature_requirement_enforcement_level, StrictRequiredStatusChecksPolicy = strict_required_status_checks_policy, AllowedValues = allowed_values, DefaultValue = default_value, DefinitionId = definition_id, Description = description, PropertyName = property_name, ValueType = value_type, ValuesEditableBy = values_editable_by, OldValuesEditableBy = old_values_editable_by, OldDefaultValue = old_default_value, OldRequired = old_required, Required = required, Enablement = enablement, OwnerType = owner_type, CommitId = commit_id, RuleSuiteId = rule_suite_id, Referrer = referrer, Reasons = reasons, OverriddenCodes = overridden_codes, After = after, Before = before, Branch = branch, IssueTypeName = issue_type_name, OldDescription = old_description, OldEnabled = old_enabled, OldIssueTypeName = old_issue_type_name, NewAccess = new_access, OldAccess = old_access, UpdatedAllowedTypes = updated_allowed_types, NewPolicy = new_policy, NewRepoRunnersPolicy = new_repo_runners_policy, OldRepoRunnersPolicy = old_repo_runners_policy, Limit = ['limit'], RunnerGroupRestrictedToWorkflows = runner_group_restricted_to_workflows, RunnerGroupSelectedWorkflowRefs = runner_group_selected_workflow_refs, RunnerGroupAllowPublic = runner_group_allow_public, IpAllowListEntry = ip_allow_list_entry, TwoFactorMethod = two_factor_method, AlertNumbers = alert_numbers, CommitOid = commit_oid, Ref = ref, DefaultForNewPrivateRepos = default_for_new_private_repos, DefaultForNewPublicRepos = default_for_new_public_repos, DomainName = domain_name, Key = key, SecurityConfigurationCodeScanning = security_configuration_code_scanning, SecurityConfigurationCodeSecuritySkuEnabled = security_configuration_code_security_sku_enabled, SecurityConfigurationCreatedAt = security_configuration_created_at, SecurityConfigurationDependabotAlerts = security_configuration_dependabot_alerts, SecurityConfigurationDependabotSecurityUpdates = security_configuration_dependabot_security_updates, SecurityConfigurationDependencyGraph = security_configuration_dependency_graph, SecurityConfigurationDependencyGraphAutosubmitAction = security_configuration_dependency_graph_autosubmit_action, SecurityConfigurationDescription = security_configuration_description, SecurityConfigurationEnableGhas = security_configuration_enable_ghas, SecurityConfigurationName = security_configuration_name, SecurityConfigurationPrivateVulnerabilityReporting = security_configuration_private_vulnerability_reporting, SecurityConfigurationSecretProtectionSkuEnabled = security_configuration_secret_protection_sku_enabled, SecurityConfigurationSecretScanning = security_configuration_secret_scanning, SecurityConfigurationSecretScanningDelegatedBypass = security_configuration_secret_scanning_delegated_bypass, SecurityConfigurationSecretScanningGenericSecrets = security_configuration_secret_scanning_generic_secrets, SecurityConfigurationSecretScanningNonProviderPatterns = security_configuration_secret_scanning_non_provider_patterns, SecurityConfigurationSecretScanningPushProtection = security_configuration_secret_scanning_push_protection, SecurityConfigurationSecretScanningValidityChecks = security_configuration_secret_scanning_validity_checks, SecurityConfigurationUpdatedAt = security_configuration_updated_at, ThreatModel = threat_model, QuerySuite = query_suite, VulnerabilityAlertRuleActionsAlertActionsAutoDismiss = vulnerability_alert_rule_actions_alert_actions_auto_dismiss, VulnerabilityAlertRuleActionsVersion = vulnerability_alert_rule_actions_version, VulnerabilityAlertRuleConditionsCwe = vulnerability_alert_rule_conditions_cwe, VulnerabilityAlertRuleConditionsEcosystem = vulnerability_alert_rule_conditions_ecosystem, VulnerabilityAlertRuleConditionsScope = vulnerability_alert_rule_conditions_scope, VulnerabilityAlertRuleId = vulnerability_alert_rule_id, VulnerabilityAlertRuleName = vulnerability_alert_rule_name, DismissalApproverId = dismissal_approver_id, SsoUrl = sso_url, Issuer = issuer, ExternalIdentityUsername = external_identity_username, ExternalIdentityNameid = external_identity_nameid, AuditLogStreamResult = audit_log_stream_result, AuditLogStreamSinkDetails = audit_log_stream_sink_details, AuditLogStreamId = audit_log_stream_id, AuditLogStreamSink = audit_log_stream_sink" - } - ] + } } }, { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "apiVersion": "2022-10-01", "type": "Microsoft.OperationalInsights/workspaces/tables", "location": "[parameters('workspace-location')]", "kind": null, "properties": { "schema": { - "name": "GitHubAuditLogsV3_CL", + "name": "GitHubAuditLogsV2_CL", "columns": [ { "name": "TimeGenerated", @@ -8558,7 +9822,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub data connector with template version 3.3.1", + "description": "GitHub data connector with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('dataConnectorVersion3')]", @@ -8903,7 +10167,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub data connector with template version 3.3.1", + "description": "GitHub data connector with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('dataConnectorVersion4')]", @@ -9342,7 +10606,7 @@ "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "GitHub data connector with template version 3.3.1", + "description": "GitHub data connector with template version 3.3.2", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('dataConnectorVersion5')]", @@ -9432,7 +10696,7 @@ }, "instructionSteps": [ { - "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key ΓÇö authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key — authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." }, { "description": ">**(Optional Step)** Securely store the GitHub Webhook Secret in Azure Key Vault. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." @@ -9458,7 +10722,7 @@ "instructionSteps": [ { "title": "Option 1 - Azure Resource Manager (ARM) Template", - "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** ΓÇö deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** ΓÇö the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." + "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** — deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** — the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." }, { "title": "Option 2 - Manual Deployment of Azure Functions", @@ -9513,8 +10777,8 @@ "description": "*Now we are done with the GitHub Webhook V2 configuration. Once GitHub events are triggered, after the delay of 5 to 10 mins, you should be able to see all the transactional events from GitHub in the LogAnalytics workspace table called `GitHubAdvancedSecurityAlerts_CL`. Use the `githubscanaudit` parser function for a unified view that includes data from both the legacy `githubscanaudit_CL` and new `GitHubAdvancedSecurityAlerts_CL` tables.*" }, { - "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings ΓåÆ Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5ΓÇô10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required ΓÇö historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **ΓÜá∩╕Å Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", - "title": "ΓÜá∩╕Å IMPORTANT: Migrating from GitHub Webhook V1 to V2" + "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings → Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5–10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required — historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **⚠️ Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", + "title": "⚠️ IMPORTANT: Migrating from GitHub Webhook V1 to V2" } ], "metadata": { @@ -9651,7 +10915,7 @@ ], "availability": { "status": 1, - "isPreview": true + "isPreview": false }, "permissions": { "resourceProvider": [ @@ -9689,7 +10953,7 @@ }, "instructionSteps": [ { - "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key ΓÇö authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + "description": ">**NOTE:** This connector is built on an HTTP trigger based Azure Function using the **Logs Ingestion API (CLv2)** with **Managed Identity** authentication. There is no need to configure a Workspace Key — authentication is handled automatically by the Function App's system-assigned managed identity. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." }, { "description": ">**(Optional Step)** Securely store the GitHub Webhook Secret in Azure Key Vault. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." @@ -9715,7 +10979,7 @@ "instructionSteps": [ { "title": "Option 1 - Azure Resource Manager (ARM) Template", - "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** ΓÇö deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** ΓÇö the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." + "description": "Use this method for automated deployment of the GitHub V2 data connector using an ARM Template.\n\n1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2FAzure-Sentinel%2Fmaster%2FSolutions%2FGitHub%2FData%2520Connectors%2FGithubWebhookV2%2Fazuredeploy_GithubWebhookV2_API_FunctionApp.json)\n2. Select the **Subscription** and **Resource Group** — deploy to the **same resource group** as your Log Analytics workspace.\n> **NOTE:** You can't mix Windows and Linux apps in the same region and resource group.\n3. Enter the **WorkspaceName** — the name of your Log Analytics workspace (not the full resource ID).\n4. Optionally enter a **GithubWebhookSecret** to enable payload signature validation.\n5. Mark the checkbox labeled **I agree to the terms and conditions stated above**.\n6. Click **Purchase** to deploy." }, { "title": "Option 2 - Manual Deployment of Azure Functions", @@ -9770,8 +11034,8 @@ "description": "*Now we are done with the GitHub Webhook V2 configuration. Once GitHub events are triggered, after the delay of 5 to 10 mins, you should be able to see all the transactional events from GitHub in the LogAnalytics workspace table called `GitHubAdvancedSecurityAlerts_CL`. Use the `githubscanaudit` parser function for a unified view that includes data from both the legacy `githubscanaudit_CL` and new `GitHubAdvancedSecurityAlerts_CL` tables.*" }, { - "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings ΓåÆ Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5ΓÇô10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required ΓÇö historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **ΓÜá∩╕Å Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", - "title": "ΓÜá∩╕Å IMPORTANT: Migrating from GitHub Webhook V1 to V2" + "description": "If you are currently using the original **GitHub (using Webhooks)** connector (`githubscanaudit_CL` table), follow these steps to migrate to V2 without disrupting existing data or breaking workbooks and analytic rules.\n\n**Before you begin:** Both connectors can run side-by-side. V1 data lands in `githubscanaudit_CL` and V2 data lands in `GitHubAdvancedSecurityAlerts_CL`. The `githubscanaudit()` parser function unions both tables so all workbooks, analytic rules, and hunting queries continue to work unchanged during and after migration.\n\n**Migration Steps:**\n\n1. **Deploy V2 alongside V1.** Complete all steps above to deploy the GitHub Webhook V2 Function App. Do not remove V1 yet.\n\n2. **Verify V2 is receiving events.** Update the GitHub webhook payload URL in your GitHub Organization settings (**Settings → Webhooks**) to point to the new V2 Function App URL. Trigger some GitHub events and confirm data appears in `GitHubAdvancedSecurityAlerts_CL` within 5–10 minutes.\n\n3. **Validate the unified parser.** Run `githubscanaudit() | sort by TimeGenerated desc | take 50` in Log Analytics to confirm both V1 and V2 data appears under the same schema.\n\n4. **Disable the V1 Function App.** Once V2 is confirmed working, stop the original V1 Function App to prevent duplicate event ingestion:\n - In the Azure Portal, navigate to your original GitHub Webhook V1 Function App.\n - Under **Overview**, click **Stop** to halt execution.\n - Optionally, update the GitHub webhook payload URL to point exclusively to the V2 endpoint.\n\n5. **Retain V1 data.** The `githubscanaudit_CL` table data is subject to your Log Analytics workspace retention policy. No action is required — historical V1 data continues to be queryable via `githubscanaudit()` until it ages out per your retention settings.\n\n> **⚠️ Warning:** Do **not** delete the V1 Function App resources until you have verified V2 is fully operational and you no longer need to roll back. Running both simultaneously does **not** cause duplicate ingestion as long as only one webhook URL is active in GitHub at a time.", + "title": "⚠️ IMPORTANT: Migrating from GitHub Webhook V1 to V2" } ], "id": "[variables('_uiConfigId5')]" @@ -9783,12 +11047,12 @@ "apiVersion": "2023-04-01-preview", "location": "[parameters('workspace-location')]", "properties": { - "version": "3.3.1", + "version": "3.3.2", "kind": "Solution", "contentSchemaVersion": "3.0.0", "displayName": "GitHub", "publisherDisplayName": "Microsoft Sentinel, Microsoft Corporation", - "descriptionHtml": "

Note: Please refer to the following before installing the solution:

\n

ΓÇó Review the solution Release Notes

\n

ΓÇó There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The GitHub Solution for Microsoft Sentinel enables you to easily ingest events and logs from GitHub to Microsoft Sentinel using GitHub audit log API and webhooks. This enables you to view and analyze this data in your workbooks, query it to create custom alerts, and incorporate it to improve your investigation process, giving you more insight into your platform security.

\n

Underlying Microsoft Technologies used:

\n

This solution takes a dependency on the following technologies, and some of these dependencies either may be in Preview state or might result in additional ingestion or operational costs:

\n
    \n
  1. Codeless Connector Framework (CCF) (used in GitHub Enterprise Audit Log data connector)

    \n
  2. \n
  3. Azure Functions

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of \"GitHubAuditDefinitionV2\" (via Codeless Connector Framework). This connector is build on the Codeless Connector Framework (CCF), which uses the Log Ingestion API, which replaces ingestion via the deprecated HTTP Data Collector API. CCF-based data connectors also support Data Collection Rules (DCRs) offering transformations and enrichment.

\n

Important: While the updated connector(s) can coexist with their legacy versions, running them together will result in duplicated data ingestion. You can disable the older versions of these connectors to avoid duplication of data..

\n

Data Connectors: 5, Parsers: 5, Workbooks: 2, Analytic Rules: 14, Hunting Queries: 8

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "descriptionHtml": "

Note: Please refer to the following before installing the solution:

\n

• Review the solution Release Notes

\n

• There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The GitHub Solution for Microsoft Sentinel enables you to easily ingest events and logs from GitHub to Microsoft Sentinel using GitHub audit log API and webhooks. This enables you to view and analyze this data in your workbooks, query it to create custom alerts, and incorporate it to improve your investigation process, giving you more insight into your platform security.

\n

Underlying Microsoft Technologies used:

\n

This solution takes a dependency on the following technologies, and some of these dependencies either may be in Preview state or might result in additional ingestion or operational costs:

\n
    \n
  1. Codeless Connector Framework (CCF) (used in GitHub Enterprise Audit Log data connector)

    \n
  2. \n
  3. Azure Functions

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of \"GitHubAuditDefinitionV2\" (via Codeless Connector Framework). This connector is build on the Codeless Connector Framework (CCF), which uses the Log Ingestion API, which replaces ingestion via the deprecated HTTP Data Collector API. CCF-based data connectors also support Data Collection Rules (DCRs) offering transformations and enrichment.

\n

Important: While the updated connector(s) can coexist with their legacy versions, running them together will result in duplicated data ingestion. You can disable the older versions of these connectors to avoid duplication of data..

\n

Data Connectors: 5, Parsers: 5, Workbooks: 2, Analytic Rules: 14, Hunting Queries: 8

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", "contentKind": "Solution", "contentProductId": "[variables('_solutioncontentProductId')]", "id": "[variables('_solutioncontentProductId')]", diff --git a/Solutions/GitHub/data/Solution_GitHub.json b/Solutions/GitHub/data/Solution_GitHub.json index 0b265ff67a3..e86fa5a352e 100644 --- a/Solutions/GitHub/data/Solution_GitHub.json +++ b/Solutions/GitHub/data/Solution_GitHub.json @@ -49,7 +49,7 @@ ], "Metadata": "SolutionMetadata.json", "BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\GitHub", - "Version": "3.3.1", + "Version": "3.3.2", "TemplateSpec": true, "Is1PConnector": false } From 171c3aea69d28d3bd8f56f6968e575facf5e80a0 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Thu, 25 Jun 2026 14:11:44 -0700 Subject: [PATCH 08/12] bump version --- Solutions/GitHub/ReleaseNotes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Solutions/GitHub/ReleaseNotes.md b/Solutions/GitHub/ReleaseNotes.md index 285daaedcb3..b1f69e97d79 100644 --- a/Solutions/GitHub/ReleaseNotes.md +++ b/Solutions/GitHub/ReleaseNotes.md @@ -1,5 +1,6 @@ | **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** | |-------------|--------------------------------|--------------------------------------------------------------------------| +| 3.3.2 | 25-06-2026 | Added all api.request fields and created V3 table for AzStorage connector | | 3.3.1 | 17-06-2026 | Added SAS related instruction. | | 3.3.0 | 04-06-2026 | Introducing a new Azure Storage CCF GitHub Audit Log Connector for Public Preview. | | 3.2.1 | 04-05-2026 | Migrated Parsers and Workbooks to `githubscanaudit` CLv1 & CLv2 union alias. | From b5195cb1ae2f7da6f296ccee100ce538a8717949 Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Fri, 26 Jun 2026 09:09:34 -0700 Subject: [PATCH 09/12] fix empty property warning --- ...GitHub - A payment method was removed.yaml | 1 - ... - Activities from Infrequent Country.yaml | 1 - ...ication - a client secret was removed.yaml | 1 - .../GitHub - Repository was created.yaml | 1 - .../GitHub - Repository was destroyed.yaml | 1 - ...tor Authentication Disabled in GitHub.yaml | 1 - .../GitHub - User visibility Was changed.yaml | 1 - ... - User was added to the organization.yaml | 1 - .../GitHub - User was blocked.yaml | 1 - ... - User was invited to the repository.yaml | 1 - .../GitHub - pull request was created.yaml | 1 - .../GitHub - pull request was merged.yaml | 1 - ...RT Two Factor Authentication Disabled.yaml | 1 - .../Security Vulnerability in Repo.yaml | 1 - .../ConnectorDefinition.json | 17 +- Solutions/GitHub/Package/3.3.2.zip | Bin 72927 -> 72985 bytes Solutions/GitHub/Package/mainTemplate.json | 276 ++++++++---------- 17 files changed, 135 insertions(+), 172 deletions(-) diff --git a/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml index ace2a442c96..21d6d022f29 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a payment method was removed. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml index 3a0d63d634f..90247b78d94 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities from a location that was not recently or was never visited by the user or by any user in your organization.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml index 521f3c350f1..7bc6a543f92 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a client secret was removed. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml index 65daa77d345..a0a4216d42a 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a repository was created. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml index a3b07a676aa..537d6c4772b 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a repository was destroyed. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml index fe1aff00dc7..d0dfff79b2c 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml @@ -4,7 +4,6 @@ description: | 'Two-factor authentication is a process where a user is prompted during the sign-in process for an additional form of identification, such as to enter a code on their cellphone or to provide a fingerprint scan. Two factor authentication reduces the risk of account takeover. Attacker will want to disable such security tools in order to go undetected. ' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 1d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml index 23575dc8548..6475f8d73fe 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a user visibility Was changed. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml index 5c4a9f2777e..888579b3867 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a user was added to the organization. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml index 3a5071d1618..ce2c1a40619 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a user was blocked on the repository. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml index 7e3b66556f6..e28e4a4639a 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a user was invited to the repository. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml b/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml index 746c01dec76..5731ec0c4e6 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a pull request was created. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml b/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml index 48930bf6ac9..e6278f90ab2 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml @@ -4,7 +4,6 @@ description: | 'Detect activities when a pull request was merged. This query runs every day and its severity is Medium.' severity: Medium status: Available -requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml b/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml index 2b53fffb971..bca9b374702 100644 --- a/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml +++ b/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml @@ -3,7 +3,6 @@ name: NRT GitHub Two Factor Auth Disable description: | 'Two-factor authentication is a process where a user is prompted during the sign-in process for an additional form of identification, such as to enter a code on their cellphone or to provide a fingerprint scan. Two factor authentication reduces the risk of account takeover. Attacker will want to disable such security tools in order to go undetected. ' severity: Medium -requiredDataConnectors: [] tactics: - DefenseEvasion relevantTechniques: diff --git a/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml b/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml index 31a15efc758..bd7500ac5df 100644 --- a/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml +++ b/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml @@ -3,7 +3,6 @@ name: GitHub Security Vulnerability in Repository description: | 'This alerts when there is a new security vulnerability in a GitHub repository.' severity: Informational -requiredDataConnectors: [] queryFrequency: 1h queryPeriod: 1h triggerOperator: gt diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json index 2df355919ee..00a63a9258e 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json @@ -96,7 +96,7 @@ "type": "Textbox", "parameters": { "label": "The blob container URL you want to collect data from", - "placeholder": "", + "placeholder": "Enter blob container URL", "type": "text", "name": "blobContainerUri" } @@ -105,7 +105,7 @@ "type": "Textbox", "parameters": { "label": "The blob folder name in the container. Optional.", - "placeholder": "", + "placeholder": "optional-folder-name", "type": "text", "name": "blobFolderName" } @@ -132,7 +132,7 @@ "type": "Textbox", "parameters": { "label": "The blob container's storage account subscription id", - "placeholder": "", + "placeholder": "00000000-0000-0000-0000-000000000000", "type": "text", "name": "StorageAccountSubscription" } @@ -141,7 +141,7 @@ "type": "Textbox", "parameters": { "label": "The Event Grid system topic name for the storage account, if one exists; otherwise, leave empty.", - "placeholder": "", + "placeholder": "eg-system-topic-name", "type": "text", "name": "EGSystemTopicName", "description": "The data flow uses Event Grid to send blob-created event notifications. There can be only one Event Grid system topic per storage account.\nNavigate to your storage account and check the **Events** section. If a topic already exists, provide its name. Otherwise, leave this field empty." @@ -159,18 +159,15 @@ }, { "title": "Blob Lifecycle Policy (Recommended)", - "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one.", - "instructions": [] + "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one." }, { "title": "Reference", - "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector).", - "instructions": [] + "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector)." }, { "title": "Troubleshooting", - "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main).", - "instructions": [] + "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main)." } ] } diff --git a/Solutions/GitHub/Package/3.3.2.zip b/Solutions/GitHub/Package/3.3.2.zip index 1bae66c2aabf26d2d360ed7b9a6beb65c214c4d6..1049f1e72c5a5ae19de12ba0d66c9ea13341a55f 100644 GIT binary patch delta 65486 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�#O7pkCcoq`20XR?hQ5@&A^j2t*p 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 delta 65141 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 diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index d7f5c57cb74..41dd3611482 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -505,7 +505,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -514,21 +513,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -610,7 +609,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -619,21 +617,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -715,7 +713,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -724,21 +721,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -820,7 +817,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -829,21 +825,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -925,7 +921,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -934,21 +929,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1030,7 +1025,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "DefenseEvasion" ], @@ -1039,21 +1033,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1135,7 +1129,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1144,21 +1137,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1240,7 +1233,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1249,21 +1241,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1345,7 +1337,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1354,21 +1345,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1450,7 +1441,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1459,21 +1449,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1555,7 +1545,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1564,21 +1553,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1660,7 +1649,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess" ], @@ -1669,21 +1657,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "AccountName" + "columnName": "AccountName", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "AccountUPNSuffix" + "columnName": "AccountUPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1761,7 +1749,6 @@ "suppressionDuration": "PT1H", "suppressionEnabled": false, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "DefenseEvasion" ], @@ -1770,21 +1757,21 @@ ], "entityMappings": [ { + "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "Actor" + "columnName": "Actor", + "identifier": "FullName" }, { - "identifier": "Name", - "columnName": "Name" + "columnName": "Name", + "identifier": "Name" }, { - "identifier": "UPNSuffix", - "columnName": "UPNSuffix" + "columnName": "UPNSuffix", + "identifier": "UPNSuffix" } - ], - "entityType": "Account" + ] } ] } @@ -1866,7 +1853,6 @@ "triggerOperator": "GreaterThan", "triggerThreshold": 0, "status": "Available", - "requiredDataConnectors": [], "tactics": [ "InitialAccess", "Execution", @@ -1885,13 +1871,13 @@ ], "entityMappings": [ { + "entityType": "URL", "fieldMappings": [ { - "identifier": "Url", - "columnName": "Link" + "columnName": "Link", + "identifier": "Url" } - ], - "entityType": "URL" + ] } ] } @@ -3394,7 +3380,7 @@ "type": "Textbox", "parameters": { "label": "The blob container URL you want to collect data from", - "placeholder": "", + "placeholder": "Enter blob container URL", "type": "text", "name": "blobContainerUri" } @@ -3403,7 +3389,7 @@ "type": "Textbox", "parameters": { "label": "The blob folder name in the container. Optional.", - "placeholder": "", + "placeholder": "optional-folder-name", "type": "text", "name": "blobFolderName" } @@ -3430,7 +3416,7 @@ "type": "Textbox", "parameters": { "label": "The blob container's storage account subscription id", - "placeholder": "", + "placeholder": "00000000-0000-0000-0000-000000000000", "type": "text", "name": "StorageAccountSubscription" } @@ -3439,7 +3425,7 @@ "type": "Textbox", "parameters": { "label": "The Event Grid system topic name for the storage account, if one exists; otherwise, leave empty.", - "placeholder": "", + "placeholder": "eg-system-topic-name", "type": "text", "name": "EGSystemTopicName", "description": "The data flow uses Event Grid to send blob-created event notifications. There can be only one Event Grid system topic per storage account.\nNavigate to your storage account and check the **Events** section. If a topic already exists, provide its name. Otherwise, leave this field empty." @@ -3457,18 +3443,15 @@ }, { "title": "Blob Lifecycle Policy (Recommended)", - "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one.", - "instructions": [] + "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one." }, { "title": "Reference", - "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector).", - "instructions": [] + "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector)." }, { "title": "Troubleshooting", - "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main).", - "instructions": [] + "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main)." } ] } @@ -7020,7 +7003,7 @@ "type": "Textbox", "parameters": { "label": "The blob container URL you want to collect data from", - "placeholder": "", + "placeholder": "Enter blob container URL", "type": "text", "name": "blobContainerUri" } @@ -7029,7 +7012,7 @@ "type": "Textbox", "parameters": { "label": "The blob folder name in the container. Optional.", - "placeholder": "", + "placeholder": "optional-folder-name", "type": "text", "name": "blobFolderName" } @@ -7056,7 +7039,7 @@ "type": "Textbox", "parameters": { "label": "The blob container's storage account subscription id", - "placeholder": "", + "placeholder": "00000000-0000-0000-0000-000000000000", "type": "text", "name": "StorageAccountSubscription" } @@ -7065,7 +7048,7 @@ "type": "Textbox", "parameters": { "label": "The Event Grid system topic name for the storage account, if one exists; otherwise, leave empty.", - "placeholder": "", + "placeholder": "eg-system-topic-name", "type": "text", "name": "EGSystemTopicName", "description": "The data flow uses Event Grid to send blob-created event notifications. There can be only one Event Grid system topic per storage account.\nNavigate to your storage account and check the **Events** section. If a topic already exists, provide its name. Otherwise, leave this field empty." @@ -7083,18 +7066,15 @@ }, { "title": "Blob Lifecycle Policy (Recommended)", - "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one.", - "instructions": [] + "description": "To prevent unbounded storage growth, configure a [lifecycle management policy](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview) on your storage account to automatically delete blobs after a retention period (for example, 7 days). Once the connector ingests the audit logs into Microsoft Sentinel, the source blobs are no longer needed.\n\nTo create a lifecycle rule scoped to your container:\n1. Navigate to your **Storage Account** -> **Data management** -> **Lifecycle management**.\n2. Click **Add a rule** and configure:\n - **Rule name:** for example, `github-audit-cleanup`\n - **Rule scope:** Select **Limit blobs with filters** and set the **Prefix match** to your container name (for example, `my-container/`). This ensures the rule applies only to blobs in that container.\n - **Blob type:** Block blobs.\n - **Base blobs:** Delete blobs that were last modified more than **7 days** ago (adjust as needed).\n3. Save the rule.\n\n> **Note:** Each storage account has a single management policy that can contain multiple rules. Each rule can target a specific container via prefix filters. If you already have a lifecycle policy, add a new rule to the existing policy rather than creating a new one." }, { "title": "Reference", - "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector).", - "instructions": [] + "description": "For detailed instructions on setting up the Azure Storage connector to stream logs to Microsoft Sentinel, see [Set up Azure Storage connector](https://learn.microsoft.com/en-us/azure/sentinel/setup-azure-storage-connector)." }, { "title": "Troubleshooting", - "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main).", - "instructions": [] + "description": "If you encounter issues with data ingestion:\n- **Enable the health feature** - If the connector health feature isn't enabled, enable it to monitor connector status and detect issues early.\n- **Enable diagnostic logs** - Consider enabling diagnostic logs for both the **Storage Account** and **Event Grid** resources to help identify and troubleshoot health issues.\n- For more details, see [Troubleshoot Azure Storage Blob connector issues](https://review.learn.microsoft.com/en-us/azure/sentinel/azure-storage-blob-connector-troubleshoot?branch=main)." } ] } @@ -7308,18 +7288,18 @@ "[[format('Microsoft.EventGrid/systemTopics/{0}', variables('EGSystemTopicName'))]" ], "properties": { + "filter": { + "includedEventTypes": [ + "Microsoft.Storage.BlobCreated" + ], + "subjectBeginsWith": "[[format('{0}/{1}', '/blobServices/default/containers', variables('blobContainerName'))]" + }, "destination": { "endpointType": "StorageQueue", "properties": { "queueName": "[[variables('queueName')]", "resourceId": "[[variables('storageAccountId')]" } - }, - "filter": { - "includedEventTypes": [ - "Microsoft.Storage.BlobCreated" - ], - "subjectBeginsWith": "[[format('{0}/{1}', '/blobServices/default/containers', variables('blobContainerName'))]" } } }, From 24d94a20863aec5f4b0eb96adeb2c8066437eb8e Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Fri, 26 Jun 2026 10:31:45 -0700 Subject: [PATCH 10/12] bump minor, update parser --- Solutions/GitHub/Package/3.3.2.zip | Bin 72985 -> 0 bytes Solutions/GitHub/Package/3.4.0.zip | Bin 0 -> 73027 bytes Solutions/GitHub/Package/mainTemplate.json | 80 +++++++++--------- Solutions/GitHub/Parsers/GitHubAuditData.yaml | 24 +++++- Solutions/GitHub/ReleaseNotes.md | 2 +- Solutions/GitHub/data/Solution_GitHub.json | 2 +- 6 files changed, 63 insertions(+), 45 deletions(-) delete mode 100644 Solutions/GitHub/Package/3.3.2.zip create mode 100644 Solutions/GitHub/Package/3.4.0.zip diff --git a/Solutions/GitHub/Package/3.3.2.zip b/Solutions/GitHub/Package/3.3.2.zip deleted file mode 100644 index 1049f1e72c5a5ae19de12ba0d66c9ea13341a55f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72985 zcmaf(Q?MXGx25~owr$(CZQHhO+dh44+qP}n=JfsV+=rQmnYSGoD+{p z0VDtU^9TITr}&2Ul-U074&0wVtww+Tp#2*)ax^h;Hc_zuM6_uz`1TXNz_WDQaJ}{Giw*? zB;$Y{*SXegKq^h7X?-89b8RO!d&`o8eg90;`_uGeT8PZFvJs+cX=CdO2J~B;$1sjK zCBMPzrDlF5MhSI0rC-^*y?cI)If_jdFgXZ>?J!QG*6`Z|pV~X|(Th&fYw5DB zPLWj4FJr`WoS-TiW9>KltaC}gj9bL2En&HZPTe(=VTz%-RMHI9yGZ1(T6`2v)(G~8 z##Z;yO?tFi2c5y7POBS(aj~Cf)uK$48F^`D2NW;yFcEI&~$2)P`>GjN}Jsf!wMIUlbQJKt2X`X&C|| zYY4%>c!n|(#8!GCFC&-H_Y|}=dU`@ub;ljM+)gI`ChBHClsVeJiG4J#R zy9oPzqprAD=>@8&q)><^IR*gvx_o{>Ii)$ZacC5UeMWx0zftnapCktG6m)cplmNU~ zOuDlgdSNB=fyi{N55$*PSRFe0euIjojPpST1Rq=H)}EzU3DT0=IVV!nRDiT4@j>D9 zMuO+L5Iv|RrM=Xi=phk&MzafXhA?A}abAN)+ostnb94y3TYK4 zNwTp$WRwT177aB1E@qcdKWJNU!Kc$RfKOD4$%QCYNIy|uOhI$%Q!}VpjA6$yX9~hs z`VZGHmPi8&BLqkWO(<}MG65tou3UM_TEFfa>kX67p|7ba8XBjBiWO5@>=$(R{+0pR z9N<0U*}oJul{rnr4CDrFA*Hx437g>MVAR(~PH|}Be5Z`Ta;JMLq)XIZ9D_}Uo(M#@ z%P;PvH{vd8%o>WS_x0Xhg@xXv$kd;HTq9s*oCPoMoDW7QiQbjPCn&+(1*GuvoFHWO zmwoBqrC=@!WwUQP^ZB{&9!Uq*D+R!@5|SkEETj9u5s}!~9V9>A$Va?=#)R?lasAx? z_;2uSRRbs+6*oYeSWA)|iU`K+H63GIr*kzX)Vj)Q&EYzMrd4Z@g?kPQ?}3JbpgBZb z!qvK?ky6AdCSo1(7J%?p!8f}(tGCRhL!lDP%lG_+SYUg_D8>|nW1X?MP;`6FEgR~Z zc0VX+pFcWL+kEZW^lbY69vMV;ia}^ZACwy%6|?8(-&7NPE5F6T*}#c~uhGSku!;IE;z`n))sW*^ot&VztZOF8!|5@t5|G!|})v z<%K&Mt9y0{`ijm>CKKe`g1K@55%+@Sl+o=~?vfV&c8afRCdgyc!#3FR*s}uNM|^~k zUD>pMQ`oo!8uWwXQ-BjR_9)$X^?Zm{vlJ$u0z{nlWP&`>Vg;Kw)8~E93}XRz;mKM` zfeCQ^BOUq6o2Jg+aC}1&tu#Dh)6o|DZ#2FvZ`xx4bsV&EmHAW+FG-|Y+rChM zNw!1((jkvnztQqR74e z<$c_!jB$&jsS=xEvGI^~CvEn%Y~JX0OeV8;)t~P^#~rAThyIzB8CAPWT{|nUqQ{bE zbC=Gv>VqR9GIWc}gqW2;7zO#qVRL(2{);AV7SH_^Fm)MdS|Ncd6 zFkEh8EYX0!7Fy53GV)<=KDcfj^1NE%y|SfHHnt2--$%xM8vr6$y?LIwc`dGTT39;y zrZ<(e*4Zr`r8I0w!*;uN&YUvFVAf7C_g%4NPSz!f7cqcyJINb^>Qj7W+~SopSD%K= zIZP)pqC)+K+$Ss3Ckv@(gGC%tZn_0@x$Ca82X?MAJKE%UqiCE34`@&yWwe(OX7`6;4kUO@OHg*8#Y^v-FWHNZL}J4qk5iL z=&)($VyD0YH%7ZuF4ih#@=S9`bkJ_WB_&y)eqfCht1udy@cbX+D!cm#G!;`47BJ1c z;2BDRStX%{{-ia#40a^1UYTt3{iU|8dPfH^*=no^V+2)M6E`vM!=D^`bm+`kCdDv)=629W5dg9 z%$x*bYm|Sim0|Ek)MR$zX&+IOzH5^PXnmoo7FKi-SZGh7GRoS;A=j8a>*;0Jt9K7o zn^sn4>hz5=JYiPiz}S#(fK)_o->jBHcdOQhU8Ev8sBjt5o65z7gm_n|mpk@i}z-3lEI>@Y+Touc|W4lW=TgTRt$v0jA;;AtJ-7NJ<-D zQDJm~>S#-Gire-6)V!^6vr#f!w^Sgdw=vva*1NQzyH2R)l@&$f*xufQ9o1!D$7h~^ zHhWir+Mc=2seWV{p~=BA2QsW)AUfgAj&K0=Zh5a!MAj(C#C3R*w=*?jPH}3hbkK7C zp1cBA8~3U4lsXC*t39k)TliGHneCxP=cwDGLA%}y*tiwMGq#>=4E6QGA)O8olYz5aYYI(p=L=Mj?qdq9^P_KKnS_)Da(A;roni$ol-;m}+>;&~cWInXN+RZ#8W+JcO9ZVl4edJuaaAd(+0Ff0o%xGNKp3yJ0_TAw=N~_z5>VJ=D5=tM zgHg>rC(11%Jy>3QRummSo5;ZN%r{Bhwg8dzm2>%#De&-2i9E`rx`wRIO9gZV5F~D& zNE(zN+Nr41;GT3O>M|ZOv7Fik1{fbC>LZlA;H>rQ6+uCLzp?O3Eg2Sw3~BHrc% zBOX4lUR^@fH*nyS<1!#9@>$J4*g7dTcrV;fbRq{5kHT>$awZiv(8>lHau{(D!yRHw zMll1fn%Fr_G& z4m%Y##>)yaMylPO3jSeR5`mHUrF(!P^TbsXHD1kL#YnspegLfo{lVd$$wR-kwD- zj=8!i;p^$?sQvW*+spK^HQ(r=U!lAAXVx+bd4Hv#_!4#SU+opdv`Mt^tVt~{m(yCH zhl+%oIR3nxMD~p8?>BBf^>S9rp5j$lM%#kDSv1KXCS)0*hEqpb@Qnp#b-h3xeY zl>Fd#4y{qX!aHF!SZvT)zw-$xiE?>SMrCPj^$kC7)sX>)S$J3-WKcNwfZwYdID*>RHAup2q4O`_)=Gh4DzAV$9=W!KyM;Pqj~|<$Y!(pxJppoU z6U>~HQmIi%(}d)b=pP5`LhdYAvHrKjcce270gFi`Q)uk` zzK7tHN2hR%cGX^e<7r9%$LCDIQjL!*APc=;DXuizS4H|9{ILNGMovG}bh8yiMk;XJ z-1a&Ty4mv{tV)lzZu+75NvSI4F?G8xWoig~`%ID5b|k^+HzNLqCG}@e{MNw0%(R;a zes;kehr^poEr^MmE!yhj*|mLVC6D0)&Wi$+rR8`n7}EipE1Shne2~w%~bA zLt~I*3ft26dQ)WKVDU)7P_vtZ_4hO?fZ1-BxEfP8yV z^0FB=*5($aCa3FK0EZ~VhSM7~<&f#9lbo1FEo!gkPHinR+0czVcNd~02A#II@>Mq1 z`_(`QCExuUJ?gO95-B$Z)*BCJHDTdq4UA0|^M3B~|f21N;dhg8GB-4++>9SlB9?*w|bD0|Wno0ax8#PKPatykEbn z*KU2Daw*pu3M8IT=$|?uklvF{RG3MV36K)&4h@gnyOw{51rWQ= z4W(GKl?{{l4+m~U4+Y!~XZ?QJf@6OUvYZ9j+epzxO}Y>D0J8RYu9w^J@a@DI;m!f`8;kcJsdZnwcZIAC#Hh) zkF#)fB6)GXuRzU@ktzd7EB|l=s}BhVM5V61BD|oA!h4GV+ygz;wiY5Bn%>k{Prj|g zMBhf-yIpCNSRq{M$prsMz`K0;>qC_l>dVgc-ss#`_70IU4A}laZO@i-h%Jes-k;&r z&n-EjRlRLWA*<*&Lhn<2+>0H z#>7Dby#u!as)LT8xuU)gk&=G7ZiTm>9I<=*d3%2R^}dQAK#Qi%+oXhf&ol5E>xY{8 zwA;q$aIX7?mtPcnbvi&mo?L-(0K9<5;;oenTyC%@M_T>fVD*3U%!{8S=pZ1ZAkP?yF zVW)iMD0Fn3!o?jOQd?Bj!q`W%HJjv?B_%NQ;c6_h$R zm5_d;w(%%WL`yfnX6LoR&Kv#)Z#G-XI~3KhIrKHeW>bazwh?JN$`;4Lqw=DC)lne) zMp0o-3^MC}N0+fNEisby>m|-^t;2y~)LhqJaRRNlsIL>?bFXP;EQ*bSfVxvlOozxo z!}>;*-gY>A^L3o^74QbNdxM6=Y+u$`{`ZX#&>(SIO>WAP9Ju5r(S4%~pD0@eDkv&R zXOzh8+(H4DBl$45F642RJOOm;GJZx?XJ%%%-l#N_du}l>aP`&JF#b9Ii^yb7hU)b0 zQciKdvKdz-G&j{ z^)9(d%akuIq%*70KINsd(f&0;y={Zsvd;eXT%&CveMNs?7X#|GqLH3Tv!EzP8})_< z63VTj(caEaqfIF)#0#u{Ajd_$O>bo2`+|BZQuWN7EiL3TZeU>hf_iIL5A|lnaQ{c3 z&fX0Nm6y(F|1my<>+e6EYw6;OGiMI^%2}7ylcwopx^st5(WcdNNs%j_mgIO19Rjx8{I4fctDIDh36uT)n`ZhZy_^s*uZocO zf9>Dt|2ETOEn;fAtB(u}{--l_TF-WBZf|6vLbaTbFt3RLZ)6sA_qJc^sgWj7sJIDr zcjcTAjd@5MoRfyTGX-^b^_&o~&&h#7O=@mVa8%ry!GUYl^L5e6k$q4qt(8^X1e$({ ztJIhRAeLA*O|OYjZ*-R#HqFo3F>CotddGJHog5`j)t10H6zoNt{p=b^FiZLeC7dM{ zEKwZMouH%+$so&!)6!?b|k5j>K-0qvn~* zjlW>7Rlr6^wj4x_4c`j0+_!EtMsv6ZMP{xYBgM-YnA=VZ*Ug9b z{bO=2=4v+RF6bU`ve%R_l7>gNDx$PJEk-02jEq#9w=T1#-2$8GO&zK8R#`|!3)ikO zk3aTHxv*hCjcI-t{Sww=VRK?!*mXEhu27xWLf+1o0Z$`nMiYI{rEpLr_!m)hBTF|-DyNg z>jXTdtX-?MXXkQh8VV1ddYj!#_&k;jm#Ce+Ek@Df`O=v>(n1#Wr_UCaYWB_zl8jvn zfpYea?)uY9g&ZA~r!O!5srwvbok?u;jyWT}=t+~6G}pC)nf||3e##D>UUDrxsh|t~ z6_X{cdOn^S3Wl+vr;Fo#XD{Igkhc@ho9~uJ5#{W*#Tw`uts=op90hpU|)HyqYmMa*>NXYe(Su z+(cyBwv?+bRLICOgQv(0!4R6PD0SWzj>gbs%GXN&pO60k@nNw31Y7yf2d53(bS_H{ zdN&1ir@JvmQN%J!Nzl*xn5EX~Aa4zO_h2dG6eY9(N4M0~`;d}Gm(fo}XuHQ2`-y^B z8dVgioxOjO7ok8sJGl@FIx5Ry-uqjuIvcRpNf)_vRX}9tfY$@D=`&*|os`S+Tc2mz zPQ*Pgnhmdegz=xeOjiUf=ZCd?r6iad?WnEvHHR`Ls=d&eLkA&;xFzX%55*Gk*EUEy za)euCJ8_0U4jJTnake;-4i=3g7!AbH0i;%O9cR2afyj>{)3}?Y2C;@-mGmO501owx zK+s6_qO?)W?#wC&A?Y|^lqa#<`?aDfIZM=Y9*QXAPwfyHPn5Ob6bg&taFq{_Dn*AV zmw&GIe|jQtpsBQB!=CVhgdjT$O{0I17(^>7Ro(>J_hs*asESH*Oo7A)9gaC+8Gu$h zJ3ivGvJJDTF<4P}JcLS?3aBMSCN|!8T*(yb!*v6--+1=4jufcBxkF7*K{C~D{S1Gk zKxK7C>9FgRYaZ5!3b}BYtVlRi=g`z@XdLOk_td4*Mli?+kmbxAO;PoI+PxmQNSPy& z+0GX-x;U#Q7MyO&M7Z@5+r$^BP4E_jmoq3ySzUV?woLMP8k*`QWMj$far=Lg#4+VF zbT};zc|9Mk%xG+HxhY%SE*!n)-B(Rsw&60G6R|5Y6BPT$z^1OKJdZh*IHl4P_|mV6 zx?Rlhv^P^1IB{Z>j*o${7N|7DmzZ>`n*%!>Cpm^4y$}-dd%=bRQmADEof=}d72^Mt z21L%(B6UleSdC+OGgihrYI`UtF_XzPC~1nRu1DDKkUPdrDl#?4^jS}8e;R+qY^7OO zq-_P5J#>?Uvrs?wJgdPZD&7i#YtorcDO-_bh=+c zo*qxSvRp+t)dg{wv9*&LYIpl{uvJMua}E*tw>}SnWjs9@xFe5l?%Oed*7k3{Y`ger zEAGGf2{&kw&i_4s58*Q0xi?VU3?ULR;RerN{FN%w*)y>4Wid$CXsW0CC4EqNdwt(@ zf^-N!rBNALcA^rK#D&*0hWC-d3~5Xi^!=baKD}n_UFqdaTM^>#MH8n^F2T0C=TU5; zS9zH@XO%Q+I){@qV2I++Rne>@L8PKJ8I>k<+3POXeRSQaTd=WAw~_M$y1+!k zw}>DHkDEl7|Ad6IN`w~(yZ*MpDDYIO8&JqQ+&mA=iNnkr*AI;XpslenS~};xnqNXhXy^9~vo4iaWuO>EEl@-9$PhiwLD#VxZOWrr!+=6n?8ZH!!zx!? zXK(uS>~{5ec7azg5PMF8lYDk@Z_U8?c+{sJ>?^=AHD!6eyb~TfxF=m_xu?r#&yG7! z9XZ)-gO6RD*8*gcjVU(#c6 zEH#mnOEL2MP_$y&o+zmLlRlMp9s23PaTP)Kc8MhX`J(jndPiD(yq-iTn%5fE+JRey zqAq#F?w5hT+P!{5cdhNco;)LMdI79yTSST$!0LBM{JCN z!^K+foBznLwIEuoNOtigdU$%;wsZ_qu$G)A1ez9b%W<}u zWV=x>o@sOkFkHZdfu5@``qtXTh$gvI`C~bX_5CDb)Hd3TY%a5f@qngVRF%)Rw!)^{ zx3;#5m52dZ8e;j{iO-%ov&!*l!AI4gW|Y=|PzDs|ZQl5NAl!4WO7V4#;=059#S0Sd z`?a&np-V|tr?slHfWWoZwUV&e-0fLOLMLgFO$hi9B!LXIXpMs2X^ZfF{k?t=hE4{OE(v z=bYjgiEHW<*}!t0AiIHmznFIt0lBFodo~cD!d+2~Bl;3WsZO3f%PgYDPSwnh6z!YS z+ccAH{_xg|S^nrdP85&cgA}hAw|w%IqfE8q>`0dTklJa-3lU0ybob#>KVJdS`JsI( zO#-H%@_eSw0pt+kz~5wM^okaPujObZ7!snId=7N!xQLGXf0(iSdhLi>L!;$u^}90H z$(YSpCH>jD!$H*X+Ya#E-NF54(ewQMwBGr#l6(aaG0qoIymXOreTT?F+tg)+knf^+ zcQN4_8bq>O+zaqia}HqLW-6N;6b;m|cO~GFwxMe~FDVnkaegT6y8m#Eq-R4bzl`=# z-CKJChXr@{zu&Do6xQ=?0}8)0kf4oSyz^L+AL#8l&N#VvKlq!L3ne>!?`9>u)Z5wZ;-7LX z9(6jttzs5Ix=rY`)nXo;H9_19)+8{ASNT3vL<0y9Z z%t7Ss7g_NjxM1{y;UF~Qrm}%%<*o4&jRZ7sMwsdu2W-@`Q-&e1vt(TYcyK}$@iP$+ zM9S`aunE=jpu53Jbu)-J9HlK(z>X;i8o2XTISlCa1Q$4$(&?x#D)aU`PLatyv;glw z-D-J;w@*r*A5fRLLl;4GMfUV9#7x{HQyt4=_@&f9mw_L2BmRJ0s${hj0 z4bMNGF=G_QWQf|ql*67OCQuVq*8mm=hjv|L!tb5a}gFVM= z32`dC+nGE3F%lawU;qh6tvls>y*%I%29&gExeh~E#OKlt0{h0lseia`jERhBh)1Z^ zio_Ex*Zu>{zf2my&OKP!hf+qQ)$3|WNAp| zE@XxrZvZMAxyt9c)fKtp(&J-9dO0;X>EQ?n(lp*SsAFrgzz*6u)5No5yu`Sd5Kyyq z9Mp1{w-d`pOz(b*+7#-qhX|}auUO*`W~uKc7oZb5W}&~Dkt3W}(g8C`Gvm{&+uUCt z^@thu0d>)M^>UzQ*pGLIbInEgJ%KBCev7HKw06)qf@-r$w&MOkuPeY>m45y@*S4-y zb#DR~l90RgyxuAb=@yIZs4d@;?Flh?Ui7x|h2_ZXuq#c5ggirdLAdlqds zkYQ)&BTgphy2P8%0A$Q}3D7R&*SD#4ic!E{@1Z)YXau)S;=r8PgeShxf@a%}-Q19_ z5!{u+?^IgO!q?XiIYe$eW$agX%bCF8U#fI6#H0H#_oEIi{7yA9WP~m30<0J3fRFZ- zVNqBXFE6baFo_YKbGVb2O$cNP2L{Z1Be4~Hr(EU|i8sJ;FU&TCj|F}r>v%T7Da$fs z%u?*YIwX$?U)SB&kIs2cSMTJ=L4@D8a{2!CYizE}DD8G`{q|9hT&|SJRW3Wg$VFEQ#I7QPM%D9eq z9p9+s$qGr>qAdxN`n@4$Ge50P(~bC$qjU49I?+M@5i8PAGPdm8=F2(mE&Q9JjhtsE zup9qJ31Lpt2nq5AkMFC;xqC0^bMThbX**^hxwV}y$74zI28L)fWNx4H`VfBBXk)fu zmNnu00iyRNSZhfBS_W~7=U`T6^WkuGKu<&3Sb2{uPJ~mC?Oi`ais?$1!9{WS5PWpZ zYKurJ?rjL-0H))Jiq`e~>OQa9&ab5xLN7uyhGeUK8AcLzt67{3dv&>Zl@N=oiYlD+ zYu9QXrh6Vmn278NdY)WcSI6OGKP;Q>`4|g|_I2yC6@DBJd&4qdO1gYnLw+o|I-F_G z+It$vf-XdR#P%tT$&v6pXK~DjH)#B+NL_Um!U^O{(q{ri7JLj`2cF}m)W}}Ot$qj> z21um*chHW?+RqWG{&~26D`H0_;)B*+!l>LCmd#QX1y2{AZgV3tN_m2i8#~C}O^j}t zdLYHDXv|x~gN4thO*pnVkr{qASX7*aFG?R zCo4xCo%(O_eiB?%FVUKSzCOPyS7<_GaV+`Yz87S&*-Y}DOORc@U

hhBvT%#Fv}J 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⩔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

W8}&cem_uZ|e=7i0@S|n$xRgrf;>maJ~H$ z(=W%9{IOURT>_ZehT5ZyPH2{#9oiB&h|Th$Ko$YvtXar9bpWXO6)9bJzaRWE5UGTa z^vxtI8xqc;BL?A9S~Xr^fH364w(3~&rMvpjd~A%FbetetaYa895vP;&mQpCZJWZU& zH1L)YaQsRiv|>)Y>?PFKcy0Ap;D1<*;7Ex9Js9H5zQy*@6dyA0W!0)E=@7d7FbFeE z35{{mSb33ds*!t~kbf--zBQ0Nq<|iJ`KYWyeS7bu424bE;mD=pJtv`*ZqGK^XrxL5 z8YM0=;FsPLkHL20Ca=kFn{i{E-wB#BLW`B^Z}~2xZ>Hm@tqC2T01rJ0WwOg?9HC8M zm#boz9XKUi_I_0Z9(N;isKUvDGwxBI`Uo_&vPtWFGe@>Z0do~uZ8EI3RI>g#@Y$sr zJY|$wlN@pmHpY8mmGQAXrcNK< z^ze73qe;1w|HRb`Dl+DFPNqPW{@jhOa-A7X(X^%WHUA&faL@-$+pnA5@$m|`RJy*j zfSNleW1dfUxEFP9iBsIg%Ba8zQsZs4j0qv&F)O-UgGfF%&sRWI{PPe$8fI#Y2vU1T zz1-&Y^!WO!48xoHUt)8AbyPj>thk3wPyQ-gdWZ0vC42<~RAnzjQ7fV@pV0S3Q@M$E zWVT&-x`TPmwRa|rd<>n({#Ah!^f9*Hk#Ts;(Wdr$n(N%9h6`FfOv~Uz=b{;CfiZ!Y6PDP{Eb&`xnqBsa_;ypk}M?Nq3onoj?geO7HxpB zIdc7AMr>*LMFWetC_XJ>>z5MIdJBGU13kUt_61b5hT1Li2c8Mm2=yhqu;980d zi8(I(`gL}ZT+-*J6X@OwHHxUhpNH9Y5#Vc$IsN~O;rv|BLCnUGg@u2z_UI>9RU{R7 zqjDOBs3Ms%D=Vu8Zf&305u*mh^TojP=r3D!Zg8#{+ej>Ts1^?99QXWhLld4;iD=3e z#F>?<$m40!;IZRz*g1kQ4keN=O?n!gh)#iNAibds%dsZ?A%L6f8DD3t=zL!#jix4= zi>7P#GI;)v6f~P~^~g6c`9|meU^xyLiBt!N7cxp3&A-9ZY1&N|kv#3eEAyjYZ5+1n zLBN6+E4)>}^v)vhz@pj;UN|9p-IU?}L}On%?N6(cf|^^5u6mS>-ic=3A_o<4DGR|Z zYblD%T87<-DOYrOP87lM5&=wqMknKCLOE1F5KTe3q0((&>4otQ$^tnlmizu99P-qfcBB(v$V#DTkrQ)bC zM|37aBYZ*}G1EFlHj5LJPLq?$MMyvz=LcEyraek0Li`@!^r1;=W|X?-+fhNCkzgn| zqctKq&AsC^Q6}t#FH6Sh?0aJ)#trL*&PSEo-eFFRglCRK9rc5x&K|bNRJI7tX2+AU z69O?M&R=GFzlgL?(?+w#|NWiYMqH0dI-qFMDKq%fOHiP^q*@#*5H^ofQ!X&-OKvB3 z{G%eGQ&y}*ngb^wkv-udqZ}hztE)LB^WJ1S9s>p7tHpGZAWW!FV{i9#o{r8|59eKo z(US$rJrc4&Hx(#Ayv)MOCAP#W7jA0Dg)Qg&eO43+Rokrr1d%{05Cj-p74k#+`E{ zNfHSwi0G@mqz_`QR=HC0tV6h7R{)t(9mSM#e-T~QBQyw7Cg<)oaflMI*0I2YIa97V zLs*_GQ4;d^c;=p8(bfNyKKC*NJuRFTL`xb!(TQ!Q)|36^ZYItf-A}J($nQ9WQk=3T z3ojeg;*{QJl2A2@ajln`Ct9GKdVf}VyVR$Xfuv)+6()Mt^{2SmN!U0u85*_ng1l+Ub`x#YYW|T9y@p`kSi?>BJZt@`XNjkycsj z4j|)MD4`C)fr@Uo{==%7EL-c3h$bd`oD+IHm^RA@a&MKV|A&{Fv86nk(+?}2ZDNQ=lpNHmCPorNbw^wP`5{E(CM?; zY(1a=tHjbJFk1P_inB7jMKGN0pdakS&^ zdM1~H2PA-5#r&EBwXy)68&;eqE=ul;_2-ly{5-_IGRHU*UPc}HW<{a3KrZ3{Ewe{0Il^PWMX#7`dNu_;4&V4t`^Gl_koE zr9|7E8^boZWS$UJiw*H-9{Ghe)&acGF87gAu1*gT4IW%d(l|}$R#a0YcfwV;$;4E8 z$fz>4>+uXL?0BNzGI0kzQACIniXdTCi}-M^GZZKH_i*>M^oTn>Ov)$3MX!f6o5r3l zR$d-;d-CQy@M=1qt;`oR5f~yp3L6vm@s2^~CNE2X?}d8;wi#$m}>6WcBApkdqB5dPSurq zYnf=x$f>}Ve^n_ap5xg-GOzoAH;kl^_NEDxHDYHy&0x91T5%K={B7R~Y2ilEGbWLr z6!E#dXTRRtzfT&0udNt+>#{~q(8b*Wq<4t(3dsl1^|eVL%&yNwL(<0Tt6M5BE(VH91p#g4qa6XOCa)a#JA&#S*(vI zvLiNW2x|PD8VgZm$80XYrZS8z!gaN(plg9G6QjQtKKIa_eM(3nNMrc7%50J_{$a8arD7P_EymRZM7T*Vl%{ z$^bPp)!NIeJlW{i{L6-(P-h~aNt1FP5wn#rfd;jv@$5*0VvM}fI)KZ@-^YNUKU;nB=`O;E>Fk;G*Z&!gHBhdp4(Zh+j&Utf&ogCck#na|G!veIyyYRVNp z>MC)TQwe^d&lM*8CN!g=gkJW58C$h~V@E5(F$Ee&;OkMPdFu!&KP;PWJaNjpCWG?I@DJPyfs)!(WX5x`X?+z3O+h*$9P6x z&|$gN&5`8DjPT3YY78y8gq%Ihv`+U2*OzVVZ0f z4dw};w-NKlKjYg#y$2tcXxENP0~|K}Y=B-HN)er~E~p3=sf-k+W|5dDERJEhSsEn$ z9QrU4(+NbuKGmtx47q}PXNRfh=N5f3UO8FRPi<@%YB5vq_3e#dD+V@OkW=v{>4K0iK29VBtjfd(0@EIY9$;Cf(}U{JnLBZt zm>>BTNEW`Hj=iHTb>Z9=kx$9SZjI{Z_aui%UEnfo=j$1{BVQQJAyVb0kIx zaENVUeK%h{8A}kJrpAdWb4|amL}$+FJ`UX5<^IrK;#yWke=DvXGVDcRWM+`?GQUx5 zF;;iSV!&NgsTDbBtZ;CLooTP3#CfM&{Z5oH&PMRD9}PJ9H*-iRRq zk*wQ8+uHp-@B%~{)>q(+70SDItE%m$^y{OwEgjZ+n00YMoR~AUh!*C1iQS}Kp_+ic ziM;?T`7Evl1^cdtyM6o<@Fp#SCkWOJI<pQ+&-*1>LPYB$2ERd?Hq^<)P)GS6?LV-wuTj)EB-YB=y6%eKX*_8A*rNoHuS>ly0B=zmIUdY9ta z+wN&6GQ+|tfo?z#&pWqI^5yobV0ZvO3vdHoGirPqjeR3lB}pw2aUp9e&Q+j?F#f4D z@$r!kNF6X#r8lt47OYf!pC~W%)PMU-)wK)GY5;dPu6X8vah8iC7nrLD&d{PatYdby zdM>95?F|XiVHF$j+cPd{AYQ2xh%p6dqYXf%0}338VpoQ}j|;UQX^Hk zgW)Saq?9RDCP7xc>EF9aaK2NdrCOex&LKxB=KSJ6nsi~wTYI_la{uYdPN!GAl%n*We}4lo3Bi)FLH50KLm19MzGU z!bvQSqyihMah2*+<1#C~h7=p+T(ifJ?tc|vPYMaS7`u6Tj48R&?c?_{7|LM!2nI;IkRF*&uxJgn71s>`9pvb0r zb#1G4hQHNs%ADo>ab&KjEYRa!`TL}7An*Ox*W;_?_sQ+aua~!Y`QTrWeTcte{P5X^ zVcA4r*}%o=2&Ayu3f|x8j4|#CBC6Td8p#CMKvvINEyf@;2jD7^7sXOMjH%uZ;OwUC>s`2( zhdsF&E@xkxqlx}9@)1T{5ZD;1$J|~yUOYMan|!U z`7`eHoFNts>ulFgB{GKOmj)UC^!gW}pDk2wi$&bQGW+RnkRGe;Um9$dOd~Lf&(J0> z=f)zeKizy14B`hYuZ`_zMdy9=DmHB}ef3w3jqf&v2Zp4gXzP)#EnTtq^r}83!v_*w zqw`Hy7TWgBxZz{Cou{&hSFnQT?-V0%@-&z_Q7UzO{7-pSz%NgC+D@JW-U~lHqCVb; zkoJuK$JIRsXBIV$!j5g*wry)-+qOBeZQIGj_9VGu+qUgY^5uEn_nfNp{oMc7uDz;u zukKz~H|4_mq+{+~Yh!XmNCymMCR*WMurFBS{;!CG{2vjAZY}4m$j5^c)t2&qMI6y2 zqKx3#!?kwk-K_jlnCnpBc#?`uSYg?A$(Bl=zdu=(gbgt!DfGr%W%?e14^-GU-J9zs zR<=pi0Ug_B2lDD7_TH5cyM%i~OCdt49}Wj1HZzDN26=&NotqXSC2CNZ4+{p*w9~fR zuX_fAOf;Do>nhVSh<Lv#={W<*`|v}qLhWBM$CGl@1oDmwZIGxuQ4_d<6{mp)aZXhZAbQvf0(mA_a?O_d zv|0>%tmurMao0pfjC2@p*4!`>>fir?hknHNLL&t^U1oE4+ECBX z-5qOxYD#@P)mo&QG8-awR;;(TuQ_A()QVW@)8tdEhmmxliV9kYjdd$X3gwJQ(d0-1 z8c1;bF*+)pEGdH|iFhmIvAlET3=Nnkmpq8neQ={V3aYy-rqUH>w3rXtsQloDJ`3(q z-z$M$$C4;LQKnvK!9tVbO-fa;cSA_nkrJbr6;=@kTGVz#w4&mQIXDTiKVd^riaKpg zagg|t=O)Yek`j68rvlCLMr^=c4)|NdkDc@hGnYFS^UET$kXZ{i&4;*%z?=#2S zCyV)obKhrDFpWbcKZxJOpfH$w*-bJcJ~jyju0^g@q1n{l_AK<*eLHzdZ9ocazNSVk3Kb1l?Ear$vDpHC166I2nrdt^Hs;Zq_V> z@}(_LTH|KkU0Lm8B1w~3SqAjC$YNpDfX3OLxWUPb#Te{tZ)PeBXrB0NKX zwV>YgCPC!!7wpwWE7aw}`*KAM5v_XF*)K$Q2;bmQHa>&MGq_@cw6ROV_xRtoX={kC zP%X#)I`@Y8>XLp_Id?ONiB@vaYWYJ;;Aj1JMovIfsJ*|fQ-+MC>wWbZrQZu%!7{4G zGtG7qDDB4H&EB4A{DHO8^~7O=j=wDdz!g%=pJsjSde_B8;oe023y=x~{9l=^0N|m6 z0iV|7e~j8g-)hOJVb_Q|6o1mRQQC+UPe4=5Y#UkZGh-}12A0be8ruC*#~jO*0*-bG z>i3!CISA_773`#`GBn7*YQ@DT8vUt~g2c^+=?0gY{Zs_}d55Cwewlqr01jLmpJMp+ z`)6x325}*zSwlon*?$!VHQ!UqA&uiG25=_?rkkU}0=v(CYB`v(LiKXynqzIqqWsy$ z(Ka_d%k?h)wk9O1(rUA|9N%NUkXxE}#KEMsA}%n&r@<6Bk6Bcf19XO@37myYrcnjE zjoQ7rf|@dVpWn!T8{^^{mh7MO@*<|r@DlsaL3bl8*|f(I2Cb6!=X8)P6eRyCq!*aX zt>!wb$+CiX3stk<%kE_3J@M?Dc3|E3xE=mofYPvKvhmTzf>7A(LN`x=;%Wwbl%b#h zNSAbm@X!BEsMZ59Jx z^`1fOqoItL@QCq7>e-;g#}QI!*&agi&dsVZ*1ulw?a9;=l`{ejf-3YR`!07QR)zy> z%od;Z{mx3dHcj`P+_U_Jos1!dWB}g_bq_mr4uG*_qKQ}HWNGX+$ zhb0p=zg{Mp*kCJ;4B+)9Y|n&S%S^g(E&V@(jvYHVb>Wun>Hd;h-aupaYAX}Z3E!Wl zkFKvK-_ozIPTwQtf+2oi2gQW%`zQHf@dW&D+^=4XuCcAQ1)k4=@%i76Cbz1eUaQ}C zXSXL`@q+yS3Iz`p@}KkLzCItVumo`6zduhX1Pqn*9hnf3=L~h$wWtv{Ttj*Btaj#4 z&P9)Ov<)bho!V8&qBb|>XBbZf1bgp^(i&R`(!UcbV12D@A9Mu!xvAeMDuvvFrB zLjMj~rm0_c7Oys%X{Ub@`XfEWc3dMJClz?%!{kQYa+sQ?P&U@y*S$u) zajt7mcRMh+#)nLH>DzVDwkNU=pV4y?_(O_Mm@L?}x8%$JTia{Yw>SPZSUCnu1Q#;o zVOf{Sgx1b!-{X4HV1LmcP7SQe4Q!d$Oe6hNGv}h~RL>4t*h3ozUeZQOCGer+U(dPq$BO8Z&)GR>O*3RQkTS%w3p z=0Ynsdl9M)wz?n0JH6#u^!qOP>!AEBAOOW<&c6W%v)c5=ImfwpHbN{q5WUbA7zK4aN*&Z9_- z*&jifM*wGS_*K=^%=pW|bKAUio9S!%m9~tZ3^GUycWu#qZ75tz5FiEh*=ED&0L*w!>~D{I;{Y zZ_VI6|L7Z^?z{2D>=$*{;`e<`bq@;fWB$_?#rBP!gxlPJ27;v}PehtHE1MQvawDRx znhQKaQ>T=Uouu9>{DerQ`f;P(igiQ(oW9G*VI|KLZvivtO(g4y+S1X&?6V*02?joD zYDW`~0_^>R^#b!Nz4lbUom9oeJF(nY`114JWKnlyjY58-*!p~jIMfXf!C5yP%?8Q}fgyh|i(U<>+@7QV5{mk>}s` z9hNZVzW1&i{K_*p8@km_7n{cAJoi>}wKZ+(u_s!wTAA?yPN;fvMBBeG?*Ftu=nv-e z>eW)`xsf-zKBjh>YqnE6bT8ahKboENYMr`kW<}CIhO*QWczm_rerN&h!!b@YQitcS zod%kYDVlH2Dv7TfC<4W_QH3v1l3mIOA-kkrc)49E;J+kG3e2Mlj7FLLAUaX>w+_(M z^>i&W!5RG@423PEVE)&~NorB^9$s4{Q}SQW`k1aW8TENsf&c5$`3b-JnyWOB)}iaEgfnIwm*n^?17mm?EE znlEdxe@L<0)Mc#2?T0{^`ONDzp+8rN;90OT3YAwn!_k4DF=q|il>4oRNfUu;S%j{} zsOw3fl2wN}cXwIIz3PP;msK0fLT0Rh5Xo(Mg?99I*EB=JFr2)h37e#Vwk<*arp_i< z8HGoo`lAg(*Ei~9`OyLHFVgy>>1{E6eERGgnBz$joBO>TVo?RMKj~2;(cWR)B?hP9 z7&R5N88llsu2Co1(G@*s-F-`y3D%TY#Km-s4uu6G8Vca`$un=8(|w`9?*q=ceLv#; z+2R0wUrQK9PT{nz5>OisSOqxU$0C*aL?+;Y z>1TL5t9}7{jg1KBmG~_nJv9W}K0kixQgr@rAe=Y&^hD$nS*DFr0nVxcR*wBddnUvd zFXguJ)UgepdYR>pInp#Qku>i8KLpO0M`j%t9Yo(5Y|a(0LjA8f)?NM~V>OHNkfu&L z1l29)BBA;Vt*I&C?Td}^$mKr&R_Mh~E+!-1jxju0Ir@)`=zuVKmZL*JcdRYC9d4zv zaXq3Rf&6yR&A`*qr%uY5mT;Dpm3m&ao6|nD^ds!bNC4Qasr*^iRxfa9ox+{rAie>W zi0lk3RCH3Qwi5;-T9Ue1U}W}E4rJL^V900yIQQuNw!VH{fx$1xM4WGlfZHiG3P%ZV zM5cQ3ccuL;Gp_2;_67>ZAV7R$hGBg|%TQcg0oJj9@Os2f$~hQkH{2I`A{};UnwuA- zR!67q?s%Xc9ie8`lZN9$JRmkg<|Uq87N+%AAn=mD;<<3Xd0E04rRr8cIaQiEEj_){ zZKVM$b8uCGCeI>Z@7W9QS(vbJe188g#-Gx*OPRJOTBp*B@5b8)zwJ*6!5x?(dXN-H z>~L2z%S~Zfuuq&Ncnx_=amWf9Af)(Cns&$7B)Yc=6@lPHeSECWAl(Jsf+Ab(XUJdH z={pY#W@aBa>okF*Yq+0Z9uQa|mg z=;p$ryJp|~4(NS$I(uikAKCd&8azis!QYE>oK@E~XrPXwG!-vOG?{4!wO!UcMs9+F zuBwM~Tc6uEr6YFicxxDCuNSX#EnMcDBBPa6Z0-?M8>s)j$3?w2P?ntzY7{hw{CsW4R=JDroRCv5`{ z`;{uy7e^bCovt0S+ici{e|@DB7YJ9iD$VwhAUo72~f0m(KUnQp$fgcAGjXmOhVfg@aT#_(knjv$35PSAx5^1RB9s zPJW$EQ*{RT6#fr_mU!^N_k?V5u?0?SVag1Z$||;{4vxlrqY$s|A-R+jI=w3F*;Bc( z?2y-Yb3<85go5m(`E(LKi(qct^NUtQl3pC)$nkaALLw`Xrikyq_PR-L5*!zBf`R6`q&sagHjF(_DiSXF ztK%~%fZTrs&az_LfEZy0&gDYNoDp9dP)V>rO1pDl@yD_A8bWT;>ytUBlGyV__#y5hMUB`~Mx;McaHW z64&MsB+G+B)g;m`qsc^MGM6ZO5Dpka$mAxL)RoX8fr#9#c^k+*KdhEsrY@nd%bUlz zzr7o_&<`wh`}@-o9ir+bHBTfZ_N|i9G%}zFdLB#ViJl)2VdD|65^I)J*T*}^n zX`&P!h3-%V?K3KNZS!KFrE-l14h;99nZ5V>`5DIcffbOU%oiFVq#{|F+8nZy*b)yK zFl$wzC<(;RmnoGE^EedZA{JuXV2k8V!FvKd9*nF5?%4W1a9oq#WAA&(Co>CD@ zX2TNo0!CbR3B?mUo=iBLS~Xm*fuz6{jU!Ah5l@IvMI=J@#BMdTsDfWXMMh936>~$A zs2PUNm-nIx1~yvtG|p>@;}ccA&Vg8(g`5DEFM#y%PZOW}i;!k#vqb)xqPJu<@nj+U9n}F&tU%p!P`GhXObYCKro?Fbd#9y-Fu)U z4M`cvhh!SL)q`YBDF87(DpHV1%*)Z24Cs<%zTXictO>YG>)nx<%@mvlVWSGl?q^JQ zyef)eCar(O`lm!w%4^}6w)Jh_SAr;~rGmXgDl?9vTiEPKkKm{|64gHN|DigQ5P?3} zJh+s}_t=C=zJEo7lORRnOtSDJ3(RMfqJpCbi|_#XNq;iE1tU3A1i7vB9sGfq_2aZhWV_AtSagrz%#X!8@VF-{`0iielNNe}|nu>;a zX{MI3z-Z8hXSdXUwfxuVJU=e{f1S?y#(2sH9E7NIz*lYWEP@_SKO0Czk)-$^ehO?N zb{2jp3X=9`N6Qwx5k7J}ym$q{Sv8P^_}F4^$Oj)t%%5FkU*Mb!+389p!56JuGy>}k zH`)zZmhCLv78@TU?3w3dEH&`7AK4%FJTDZ&0*-dk?|2;!I-t?XxA71%ENr|13Vnr4 zt%|yY7~QGRKpU7PUrHEfQ$LR23ZbZzEm)7j{L|hiS^=}yB=m zoT$WmV3mRN9NEeiB}=}!`qPqUDNyjBQ?dI!TQKYHY}Sad!kE~p1rX3fSo&cl>18Xa z@64I*zrKJ|as`qH=TA-;jNas_BG7-Eq60`*!_|OEu>@=w*3J76bwYLTP`M~VG$Zn( zWl&}%;v~L9H0$Y(GC6HzU`@8NbBu$%3|5xg?{~xIntMfTq=0ncFf?&&WU8+~d zjc7zsnO;o!pQ?cB84w~EqI}R&%CW<&+mJ_=INl`WLC6fn4tybKUa5?QC|8mnwdk5m zr({_=29C5k{4gqGLb*;vGtBTWj3E-{f)dX>%E}o@P~!4cDwWS8A1(s8we9?Fb{=MR zpBPBoqfKAVka%%A6zq(hKEh6u&FpiDFp>sMm>t9?tRaodshhBCT!JwqgTcRK4rkN! zt@@UkSkvhUWi*e(&i`KIgisi`{5Tclo;1lXV0lWV`{s|!KkMk!K$B~3@sa#VlUj_d z@o~I#&gjTZz}p1s!cYoH{(GoxvBM`(rPyeAc6@$L4pf3MQYtlyiUs|&Q{ddRd@mS68O%}^o(Pyu%hCOQkNc$Iz zJRPnuFErmy(+aE&9+AubFWSuB>9Fv6)9s1|d!qxF39iNRx}L71!NqlfoZj2e9~JY47kstC|g`E=diFmm*c^ky@eJx!Snw^X&!}K z0ux<$U*hF9m;=e=Y2nqYWMHJmK(bsmsL%=0$rmj1`b<~gG+-HCd9YfSv+~-5ayRvb z4mlM5`_-ptb=O1yr?zgwC^x0{Ie=j}6d%C%i5{G`i@E#cNM~#b4ol|p8vJ{N^G?!p zVczDndz872AvW`{!j{}i8hoFTX?4xjGd<~^mbX2`dc%f2#;wEW5{?NM0XBv+Bhedp zd8loh@~?{t{QXcm{V)2K{=jlyu86TVuSDCXKh|nZRwQwra?!^Xx{d4d@;cHN1ibsq zSNpznr2#YAG{0W{2g{@fwp(_&GcToZiPsZWGet9I#eQ6Epq7uROOr*%oM>&fGy*Vn ze2k)94HZ@|-|6K*tlPm4xhdiO)uf9E(RN!S@S(KF)VHM))zL0fK7|DV_&{p@lzTfA ziPOYR;N`f~q*?@h4{wc>*jq;8yvC)=ToMYIUYUYl5kElv)X*LQJB0;hTB=9)S^VxX zYvX+pZxcmwM31wYPbkkl?<7t;)r^fJ^7ZE=pRwQdg1%_bkE&H;t0t7?yYQ)dKDg9bU5PTM}cA$~~l8AoOx`-F$ zPW2>#@`(u?%c$-@IE9-x^fQc3C8B1ewjN;}mns;dx?2_f=gAhn-bDojZdoGhR;_o{=v*+FPILsw@j5cfE97yPZtVj8+@@7?Cy5{o4DoWp@vDk}rUp%35$P zc>?;6gidJX2t(s*LKIPdJsNr9?HDhd8!IB!HGIYpiZIuZct-)jhb0KZop7bM!rdWB zagAPe`NGc&isQ06KjColyH^>QL}tRmm4I=p(ef;q_^XLNbkuwW^&M?RCwi&I!HY|n zBz6al%JJw_A1To=W;|ocq^+ip!=vT*_TS?Vq0*cf<*RS7!G`eJpJ=WJ0X!;~#p8R1 zwNW(!z+e}&s`!A%)s)`$kctmuv8-sJ6J@QuHwZ}TbuFLMF>C`!_qAsy*XN-NcQJKgUkTzk zVY}8$T&;L02}x}yVFG;O_2!=rxr=?GxG7C}I9)^zzO9S6-7S%Z17U)1V^uT!H_%-m zprgwI!9VR(HC_H#6|7pfelLD4I$l$eO6>uL*0}9Go|K%!kL1D z-zfz9{txBN-~K*3%bTOIf8KtR919wr9V7sD#f!*1bnGwiViy}* zuA?QAjxy}re(t74{3$jLRH2fYYQSe!_~=CL`e;_b{h)n*nIv58t51Y3s1?$as*0{D zBitm>0w)U)BS}nWl&)e2&#Slk&cZ+AR?evYQ^P4E)G!? zj~Kx27jzIu!PGbqoe>s8Cz;sT@`<4~5(f-Z^&*wQyJ`qYe<%f%=!sD= zQRke)LaL3l6% z5LO#rRn}HQuE4*o6WfT#fg@m5uTad`_}y86Cv8yzUL5kLlqLz|$Lv97&Jy zxi&!;=81V01rEwOM~jKahaB&_>Z}+mSGowId>{VIoNXfO-6?H2Bx64;2w(D4mTh7+ zqR)&boqMwT_sp?KUL`?Tsu>4m0 z70A*;=#q(EMuol31)Xf~m}z7@L4ktaTJakrsX%w(Y%+gSo+$SSa@3sKnrGaHdSzQF z0}u5b?_|1~`57yHWvG%d%p6SRACpM3uak3BA$o@b+)X$~?`57)olkLZ+r@W?5bQ7qJ(5zw#B_Di8ds+$n_xePmFR;q5l@P)PwEYv~ng| z>AN@RCQ%YriC=?A_&QpI^47o=jdA2Xf7v{S%#$0v3Pi}WL2sRERbU}wDbrEJ0~Kb0 z_^kj&cbJebSDT5`8~r_IM6{${ny-Sf@I8IfY9-aZ@D;jp+=0c@3!CBmDR9;IXTue^ zpMG@vJ&WHclB-H^qV&ZpumkIn$WU~)Pvt{=p*O|hXkfl*$+aLrL?hELl6N;2SS*c`~G&FA(U?25+ zsuu!Kyl({~3$9WC1=j_LXoQV{7FQ|Y&}RGhS$eRQ8zJ>;OZHA``muT-D<8gg(ap$u z1FdJpaKVrTUJMjTtt>vY>)Ma&cPYH)g4mOp@w@U&3Fs$Fp^uSJVOrFr6wWdr(T7m~ z-0sEu3LlDafv;+S*MJu^-^m@Nn2g8!kN6%V`{S3>BXK^u>)zeVvwD1{^BbS&~n z#{@@FkU(HfJ>IgI64xURvM_yn(XB~PW+6%xKCu8^0Bf$n3=Xx1BlvYZpktwdQ$w-x zoE|wM{b!0B%itv1hmM?-XFj#CnEdPACs_BBOQY)qIQGm=2N&YS1>xeew&cv`duKRk zMejB#p}!xSSVIl_v?#@NtAI92V)s)bF!12h6G60MtrPiv;Ve6gg{2>zu&BT;K!kEJ zQ*Y%CE1s0|M3V&)ku1y?I@F?7S~XR!Q*4G+x_-1MrN>L2eW}*Axj$(g$95h{IX~Y_>8w8v$}Coy zv;}u%D1sO4nmY?Ph-pmWEfP3H2Ccp1Nab2v|I&2=M@WTB306GQtekT$iXl`gY%U3s z8!xU2SpYUA#Nz^W@e!$p5{U)|=?sNqM|F4g36{X@=d4fb?wjxY($I&Y+VE6R*NUX9 z!wF>8t`22|RMuT^7fj67Y#LO6SnUHR63=+=F~wbC_6sz2f+AumnI1OXIP309u~o*F zH$3!VIX`8YptVJDp^z*UPVk6nmFySRNFddnJgEV=rHWrtOvUf!B#}9))hSWCnbv5k zPEZw{7RA?*NCE0@Ga^$sW_U%_67(b@Al0nXs*v33U8qvw7U~B}a(_#fT3k>gY-xqS zih7r@{cs@Ds+Yo&MM|rkHvYg7qrW~j@U5YE)JRCm;c3?oyC5XaSwBa~`~|#MAVI~t zT|-3zYqiazivTTAv9P|Tu^+dY?XueBU}|P*D>S0nTi7jw!LM58#sw~ApaXBK78A|v zH!WM9L?Rhz(12NiM?@Cb+Qg#D?(HmRx3|+YhiLY-KqqolIQq4XVmUj-2I&PS=$3n@ z4G`DnreH}}UNtXTF~i?g+2n(Nmb=rC09~(3M~eEc$jd>9bW7;b$I0tkh&eOBc-vtQ zg14Wy%#{XO)y@4*6$`9mE!zxXHz57xayx0F7kVFfZ1^q_FcJFr+4#P4Lt6=1$o?9=Bd)ENM5Bz>$f6$m4v#SdU4g95Nv6! zbxhpgxHkKMW$O_L&pMkv!*8RI{*rduB6 zZSpk@vFsG}IMr^;XULo>z%|Jw^?xn>WYuUxei_{@s*%yF#I{HvjMtrMQ|`-D$~4fn zb`Li;(MnrrTDiAW%C7Y5aa(Kr%}`WK^H>6tvme?<&lY#--%-n6GR<90&5;lV-%l-L z*Xr{um0n5_)VK0Zc1zaCS~OidLMLVav#wh{fKd&uxAQ0_UTy=Yno->S6s24pb+Bw| zN~dJvvqT}U(%|DJ4H)04meBW`_I7c*$Dub`t2${3l{fzNl!ZUa&U5<<{6Hg|L@Byg z;-I5!_Ft7EDEqa7r6IRl&@H)iRl{!!b8Cz|)UB19CIj<4S--?rEFVFEVoGvCviV^vfzU8^!TcbQxG4_;%eA?Y4z!Oer~(E%6$eXlyZdPvXaoysn~T8>+Jz~ zVm|oWo)^8E!?2cFwiff9!xiM1r;{Y3zhs7tS>j$_=ago2$cnyV_K5REY zahd6kb3;>x*wZQ|`VTke*W>^FJlvXNDN)eC19NIHJ@^q)7eTkp62Xih__e zI9gvs+zq4k!cWi5vyO%+x%MvqGL|ie#1eg^u$Wd9bBI zz$JQ!ibV>h={6ecagb>K01taA+$241-{1q;8u{z$GUKfo(Ph1yqfk?OgfA{qmR>#* zF|lnn!PW?M{1SeQu~{&v&~`}uW7)#QdBKuH*jHlb!Th02I4tc#*?(EO<_<|0)zHq7 zst*J~LsC43*Pwy8?>~`2>Vy43K(}mOK;}Z%&j3GzVxD&6z@sXy+p_>3ZMc#!*>F`` z0GV{zyi{!O5b?!gem`&DzcTziLVvdV>5D_I4)7LS8aTFACu3gD&03zKZ*{5LSjpd% zj?YQCS1pm_ZE|FhjC_rHBT(LHLw6 zfIZZeEWNq-K&ZY3+my1tzlX`I!GL?=&PcZO6it~q$_>?|15ELlXY#n=f`Jj$nG-Ko z+I&BtbzDfY+j3Q(zJQI`+z%kUDI?saI#lUtklx{ksB}H6mWEU+9>L(!-TGm`fT0me zh9h8M|1t_WDo>Qfs1`PSj{f1UIsS}dPkM`F@jxYiA5;+&9ibig(t#_)Z{N|_E0Pn~ zA41FA)XBKgMM0Kf4X+*JWZE#AkEI`e zWdWQ!QS_pjh<~HMVWRBWqo8b;mjD(jU;b~`AFtP>_m{<$7?vSP zZkFLY&s~L37p{V2Wk`vNTp8d<+JwT|E0HQ!IfJDtzN{v4_S6BRTr~(`MAC9NW1%r# z)weK}k+K_3Nnxfv$gSEbh;CNbpt@CB_5}4BixjpR(33)3Zaer zOOBj;JA`zyb$p#XcDQ_HJm`3p>5b9EPg+%~J!08!F<#R(sSmKDsXN<3Yin*jQlbOc zGITHqSQ*b&a>Q0b-{i3xG~kzhTkik=DZQr{@5`xb>CvHRx2dp~Vd<4&E4wJ$wlHD266`F}U6< zSlP{BXMfD!E@D?+;`=*}=EN~@9x*Iz3zIDPZWWm?RWNH@Tk&@x*hL4G?Pu#eTr zBxs{jQcEt`bbshP?!_ChGX5Jb_ro3Z{XT`0Wc#)|=$&lC3};2bNl95Exq16s{!P1v ze%j^t%&fpS)zrF2kR?l0C7@>`BsrOy^=06)RxIXYJz3u&!$%M(bTYoFJNCg%k1l6w z&(>jO1h}UE?!-X~$>V3*sjbIY26PlRg)R?#7C(bcc$Gg!rhlFLN#{?Lv*b*)C0|FU zd=zGh_so{`Hn}FhXFy=gY7Q^*H~0b{Be+NkLM(!wGn8=ePj0KGMY8(16w}e;(i>-d z*I=xTY5^s)8YY6zdV8=D6w<^}Y^d6Yfi2LTQb+aCV-Ot#D_$sXx1sM)lK+cn*bAMW zTJ4QVhJIl_witzL0D~8R;c3O=6h--s>ycT?ll*eJzdg$QKq;p|M|7^m@qBZTzzRu+ zPPYV==T0W-5ct+^o2Uk~RsQ$Gq%W?>V zM@Vxl?D=n@Ttb&_7;NIh8DY=NE;1~aEtGMF`cK6twSU{tPQXTvaaGLbn?@Wl5_DnM zj_YhxSi3U*#f^%=Cisv;_r}KdoBCx!ExxgJl|0XPf98vtjO))&5i?n@WBoViWaRjt z5|@`D$BBY(4+6heqx02lZ7+;r;zA`Q+}M=fQ#QQO_INy;(h8=_AhSfa(Q}R@+Gr~s zbGl$JptX_VxR)sJLBmBZB3|$VAI-|OR>)p~3^B>r=|p0VAliwK?#D}LmykKAK~ji4 z1+vc?wNuC(hPP?=2n??5ztp5E|RLvt_F$5V^G;J5v;DkOzF=0ZUG@;3u zFjZW3Wom;a#`8NCnigDjCToyKqhwz}Sy_oyJuLjQl8{7JC{ep}w(jF`Gk0jOtbG=A zc-+l!VJhdy<}@wbe}97fVBXTBE98vr*DSQ>o1PI^Um9Bz_l2LFL%k?I;hy5Xv`9EY zhsv%)Lf4(UzudSl9%_~b+mgyyT7(s<C+$^|*UhQOFpXDo>91{5O;1b)wER?v%y(rFKz14{5>{vVk*>+L8SIUdvnS?z}c8BqRT&N z(QztGcDyy7Jc>n)g<2$eVliuAWiE`J&$(R!ln6PMl-boXH&oErIuZ7L>LU1 zxdb7)S&pslbhscKJiRu+n=wbU*tUU;3(WQVS1gnRh6pxydta5fKqe-d z9|k9wJ!O8iQn%6S_jC{sd2k1O@;xNR3ICZ{k>eudO)+F5x5mZ=3I=_=RxjGe9ODqu zMa*akg=9r3Rf@h8biI$k9(pXKZ~bBUQ;1-IT<9%D2lGFaoAt^JC>tAXQ&eOZ`n4|{Z%W;LRJsB$-IGWgWktw+sffaATax3?hSi0>j~rWe#Klx*@32mlX$889zVx5 znFc#du#dM8HQzXD(kJPFnpIC=zp`iFZQ-9+?#{>Ky-(miX7V7Wud!DMBy0NbK4wFP z2Si_Me@XjH%w|HW%h6x~m#Z5Ngq`jl@3$h@8A1Z2Np+bq@6o|?m2+fX(@BiaNh8=~ z=H>kmWTESsyF06Qw@e6Vdm+SpB^d-SEbd_B#B?r(a+Kddm`r?c10~O7(rlyFBG0zS~A7T|kaKh&d~0S&nvPMm9_=pg3D&4*|X{51$)X3%NgQCAO7Rl%u8-FN`^~rdKh>=kqLLxYss@4j$Ot^=e$|xzc%;0I`_Bb z8F#LK7x7VY_UL&=QN3 z7>R2GjY{3_4u)a858=2ZZMoe&L>Od93(vD{c!=l=r)Q*66&{{M?sLGvQehmX1rsYx z(g%CiEon?=)gOJ9|S3Mj%o;&$}Dd{Yl$lCMdA*Y1`e?#y*;(Bg4`Z$JJK+}cHozo72U z-k$Z==x{PU;yX(9J<@XEW{;{K`aC+~J5KdIHtRlid7Gm3oSwR`>wfuc_&kB|GV823 z9==hH+pQ!ROm4z{I4GzR6Tvnq#278C!@GLp+B-Y)>(8eH28uDt_TA?hs|X4if#K(= ziM3xI`yL9}x?!MS-af>ml~1fg`!IaGO^dFY5oA8$b6~nsypJ0xFPK}nrPUl*HGj=~(9KrQoKNtvt2FJ*YAXC& zMLQv&19VP65-yJ$Jz}VIz?sPnE-DCGiPC_1R1K<%7R2T<=dHm7X2?*F*%RIPhJf_g z{!SUY6RT?o)+{BiREI6Bmdo89pY;XJ#`urP@p(k14x4&y**ht@@t%4eSR{9=-4IPY z+Hh5kZjAQQIq8w()5LHdw#hUGm7H-5^#_Yg8XXF5D}z>J61i+|Kt>Iv)^v#Pxi^J@ zZ_LuBxVTJe92KT0yT_%fzUn?ngK{)LiXI17jh@09x-e=83gN7-ky$>UuC+49g`Cly zn$nz_Q=OVqqEgIOIWmJxlukJktAwUOlH4SYg}WvUt5^X`M-@v&l_sr%E6j3xwea(& zle$5~i&-SqI9LV%W`;y33jm_$eWpaLoku%R;b|@Rl~dpd+&~&sp>U@}ZAw{&I?HJc|;J?zL3hq=yvrYl+ zzLj^yHM`*B;{!aF(ccq6NmH(+*LLc!Z-@Z?k_#L4?U!!alHj6wX-aLUIylK;pwxx! zR04km%C0A{(98r^x;)DNZO9RujTc)E-uUBtL5z1 zX&{D6!^yZ+v4V1nH!*>=7Ar$;hMQqe@S#7S+W^iomC|t#hu$HDG}!=~)~p|WjrDvQ z3Nhfr#8^MA8gtEV+{{PPBHI_%QEXNX+@Cj3_apx_MprbjM*ck-3o{~Hklcg^ODk`1 z#BhDtyA{keacHkusU1{Hupm>J$D%^n)P6<^Vk3 z8+06*27D61>YcfDKp8YvHbYXU#{9t(@OS#|c}mtu73jHZC{t*61X6+oOMif(kPK}H zCR#NF;;g@{2(X_6kJp_+0l8os)N@$B#^>Yr^}K(6I)yG3B)FiXi8Dv$PK!5QZ&PZ= za9$!VvD}kTzc(i}Ef3{R;OBD9Yci3)_h^qmr*QchDQY*x)uxV+aJ=laWq|jHgjqBu zMiW#9VxR>`axMIL-Q-9MXmp;WV69*39YAnyj$J;Vsyi(8P06rcz%`js;OSDk*-8bM zqwgy1E>dp%Xzmlru{4FG^P-wng(2{YH9Qtr5RF7O%X?(SSS`-}uK0v>1 zZY=}Gl?62*3w1a^=Ag2_DzT{Evx8zVL`AoC6Z<2mrATlJP z)O#knT<7fX`hJub@FXXUu_E+Px0ocC@%ej8gl1=JMzF8Uo`jxSQtRgWdwF<83|EI! zzfP2anhcXD6_t-|FKyLUALa_yqI%6X(VSH`h|rfKmo3{9h%LLWq_}D=L>MngYA@tp ztzuLS^CqJisHkN@XxK;KksX-nr7sytig3oe0r&PJX#)l7?Aty(9JBGF$^pn`Lo@WE4t;L0neKe{>oJNcpr>e@l$jZVVUTAA%^)1@@1?#BaSDHj6X@l%ZE)PlNUMayf(#8?b;GcFi$nDc4lq(A#=>@&7{C*HRj zhCt6fP`ze#`LJ1Y-?MXxVPShFEH&nspEifAercyYD-yO z5b0P%b6E-TYQ~kb>IKPj79DjTc@8Hh_*O{xcyv(V1JqCuiQj~pDkVzelyx=M%$vN> zLdj6%L4hES90|1k)yJDBcNZeocb`!|Gy+j*6S+Ypx9A!I<`UMvGsvG@N%(o2_DHuw~?*vCzWk0;V3a)kJ_ z*dfl|Kep-6DfzW)DkF%*G;m#c!`r$GI!e^M2x_?xb)`H2V=@R-`3oX}8yID91Sl+0 z)`<5N%tRhy{{$lg;V2h#L}Jzp8l2E~j6ksdBcE|-A;kM7Zia8wo*u;IU~}5|Mh2cD z%U((CF5t7OWCm90E9u?h*(iLidypc|6?Qa=U*)S>6VOJW>7=XCXYQ#YSxgY>2|-6s zyp$me>y}NE-FaF3|8;ehQE@cU5_jET0fGc~x5Zgpg1fsr1Y2MsxVvizu7L#iV2g*~ zF2SAP`u02L{dsSu&&;W*+x5F|^_{+LMMd9l6gTL{5Wu${Q+V3hDn#(} ziq(*j_oOf00^j8iJe|_grICU?!rQB(T_I)*-H)xz0ePvFu3`7%hJ-1=s{W>zQ_(ER zL&TigOE7*W$zF1-hrUEi)p>MKk(%g9Yd&g*$_Km0*tKcIMmU7XhbdKLVgHb{MJt&KW zzqnx9gN~>*tIlrg6{Ba+emg%`)}f1i7oAG?WAh2~yaqdB0p|O7ym=|0D+Oyo!^(DP zmb^`YzuGtXA;OeG4wGa^5Z2=f&GxtR5GCZ=6>c$#e^k+fP!;;h?Xr;i6Q3wv-s`Qf z>-2Jl!H%N#k&x9Iq==g%r89w(5D~PV?g{)YK#FZy%!xTRwuo+uV}`;oBk=EBw`n5LkD#BKz7y@W5p$Q+rC!7K9pY# zS8D&dy}=ZCBj-y1dKxhc&4nRZ>NXP6A}Izb#6(v=Bj05j>6mFmY9B!$;GLB;J9mvC z1yn?ZO1I?8KIKu;fpLadcZSuH52wdJ8DA0s=$2o59HbSGdoquc`D^Q4GwRCiznA>m zmZ`$i=DU;Epr@6BpMTbaZaaIF3hy3;Uu=i0X7m6XpI|#RmS8pH3I?gIc-8%qFnUt* zhD+Zg_<5MCm5II;%aP-Klc&;>cCv`}+Ek1T4Lsqi+Ez1ef`u9;=Lt}b3DXJ$i)WA2sVUIXp?BPp`#PBd6nMFBmwXwq4+BB zzn&{3fixBWkitJesi@A`FyY&zgH}Qz!vV1f6t<)l%&W82j=ej~a(70M;phhwL<-#* zVj^M$C1jDwAKfS-^Labkljn;2x0)y->j4&!;T)@5nTv#Ky24CFpeaLced>fR_Y#=t zq6=AJmoOE|LZ8g>;klV0o+S(Wr2?;YP=C^IX@aG2?)mjkh=eW*xgN!IFKPTe{&Z9| zgJ$sWi-FqV{!DiHAQJ{rj--=kl5yRn+2=|~?Y_LmDsn;DIo+ym_8fl#!2Q>u7 zG?)TMB_5{f^1C7;nQ{ts#td_HsScE)m7m29YKP?u0!bB`(o?Ks0ZdhN!;{$rhRpVE zZ3+#?e;2&3j{6^+{#~4Mrx-0jYmfiVdwW#7{2@9m2<@Eys?sBI<$z;Hy9US2Y=fjCIH;*N0fehKQ zzc{i0E4n_C@vt$ji^ogCoQq2V3uFkX4zr@{Y2Tn0H!;qC_kQOTA&RUh7QW9_l^t~7 z$Oee3p=$m}Vv0ln2(&$l zKt?62Shol_%IlI}@HZ$oy<*C3tU|E zyih)yW>1!EIEHIAQ+pTA8|tz3e5kQ{`g^ya{wZ<^w`lPjG#{s!ZkpkUQnP_}+XR)9 z%2u)8T6XG~RJRP!^?IL_-*#9RMi7^<2v7rYu(Gqq8lr6IZ^U%Oy(cfcRvri<5&!;o zo-~beoq`?P8|z=b3Et zy0hb>I%k@+vCD*Rdgxzyif`Qd(It}%Wj0;uY^^3qgJZXOcFS>-CR+8J@%3BsSwb*Q zv|X;5pikLaym`SqB=7uVmZ)ww+UL#F4I({NPunkwvm_!5mB_~6+kP5-Vj*GMkvy{* z4sX9MkbD2$Q;2;&9G9|9*2tV)^)RpCqR$)F@NVlDIlD2jnDW#}`-S<>{>a*0NT(*s#*bdiYCw@HQG36B@(kS| zZX0L)gkszYf}f{;R8GTB2Tq~1l+=9Kg%Eq7+_7LQ zUA)IVXl2t&T*ljvr3I!8cr%TKYGiOVCB-bYenTuoS&m6RCQW5Aw!CUDXXA;^&6Rd} zwR;zuj4e(3(`l929Z2){V8RMNBXuY9q9-=v2Wj$U8Y&zmo87xylj~|GO%y56;z_D> z_<9e6#wg%4bBx1AfAOS!b6ZiXT5l^fcA=|3C-w|1L!7DQiGQ)ps;hGZU%#&_H4!(6 z#Q3p8bK`J3!1SCVa83B7-RH<~v|e~utN61NkLlf~WYQZ~w6z!SbFH+GPwhVbOzN5s z3tgIArZ7&@`MJGiVlb8lry8# z=%{(pKT5i5L@E{63>uKoo9EVWJ}kiY5a~OJkXxqz&>kwu%L<`fYe@;8@MkJF9&&Mk zS~M5p+kwJMDb{)4a&{)IWN>16bEE0-4B|%;ODG-{wb!t>k|R|7UE30BSJR)AIKupP z0-Nf-=nIvew+ra%Y_yN>rm}katr-%x8xgmI0paYr-zIlQ)7uE>SXC2DgM1(M{yv{B z<+8{h;L9)-BU+bWuxK!!Qai5)Fj1;un}A#IALhnzZ5bLxZAA*UKirPLzmEQzD7_OQ@z)Dom3o-!9zsjQJ^#&BSaov)Wp|64lj zy%HM78YS<@&+&UyHtZp5`8~*~iAkHe!*fUUIEhjU^UQ+Ya3{28%%$pW-daFO{=j=_ zVj%dqF_%l7yj1pjK3rfSTtIkElVibJ;Fz%^+rt2TL9Xno46I1kADU9a?Aq*QEpR89 zxPh-NKwO=`6p%60$ZekyzV-N_W|bmslu^RajXN9eA4UI&E^jGSX=x+o=8QUZIm9O? zk?_!v-xcmOxP3gthNocNat{IzglJC>-Olrr*krMhd$KQ3b4f zqQ>-Ndpa5a$|!QKkaVdzDxOnh{wS8Mn_2m}GS;nYu9&akQyQXGMMzJ}<3yNuC`{N|gLPAY zxz=-E&gv`AS1sQ=RNBIQt!!g zWN9>F{NYC zNSru+xq6Hsl~^e5uI4lq}e>RD+&I7FnI-ez99{&loJ)0DQ#Tw8+FGGQw%Un zLuOGj-wQeW0Kh;spX7nCKOXiNIuu3pbL*G%_u$w1x0koq^I)1Dz3zQqkf7uz5_^78 z6dX?co*K*FdgGA?0?J+;sFlcMYMdOtTQ*@bjOeYpoA!zLNmaABzk0wZgk!aR#;CWf z(=_}fK0}%U4I-mutNHl3>J%x04R9Dhi_4KcTX!eQS8IxCIAF2WhqPGo%pHn#^%`sB zf&S2azhb)LF1<-(0x;;W`8M{u9Al^QqK_9$jtPbxEnR&HT?^~w8`mpS1;HI_&5wv3 zDy}~M9RW`py#m&b3AvO;3*-VkW9@ssVBj9A8oIt1rlbjlg!Q09!g=r^AIzm9^PB~& zy?x^wj_;~QcNc1yZQRM8U$7pA z4NBxH7vs;J21}P%UPjL8!wYKejuowZTC1eYF4%;+aIk@&86KaH2ynq?Y?YzfyfUly zZ0HG-;JNSYZr%jJu>5$ zaJ9!V8A32EZ{H{~0tG6cn}S`4-<%HI#4%(H!Fc6&XGe`}1ax2f5c zQcY)Q4+IsA-aL-(0MO{K4u+E*m*tZ99Ph*FiM~RZh4Xd^&`8 zKg^glT(`lAv6?STJ1SxEw4-K&5H5O6nw9YU<3_j>L$m6S0HEa)i#NW*uNw(YXJM%_ zr(r*LmY=9IEnJS=$$s4nnZsCPcITf*@b`j84Lo4>$d`ckWn~7CT3Szk(MNS6*y(D3QD%U21k-&){^T;wmP&4%u@Pgu~aS6#S_Z3J4w;j3jO|; z;Zr;aV22lO&#XYMjWJaNXEb$@?K^ODu`%a^HKNLqIj96rp_-;k&WL4HuRCzK+B#H5 zkp3ba62V+GrkR>Ph)S1)vfK||G!2sSa32@aN<#IdcOGSynAH}acX?xv?F>L)+A?+n zDOr0JvLujDY)mkDaiC=g(bVw765=R<%@}x}{!2}YGYinJHFir)L9DgZ8S{8bj!~t2 z12d!+_SoNlMCch{S=b*=EBb}}&hdJzq+!>o1fS>$CnjUmU)>_>AQW=YtXppvgj&v& z{c4$`iGH@C8B!M6^=oO$3^i#T`<26(xLGu)E&oxTQOSV$D_@@N*G^nEK%md~Gy1!x z!V``elVGeNlG;lPkNZ$mv40Vfu6h!@de_|Tr-33M!M!P z%zCk3h}WQ7@prH(uoWexM@V(LFQl_!WCYfVV}o~=Pq^Iz(^X-)18|?le6FYmu437% z36M-SAVD~fJIx&`eva7G<$$fQLuu86Je?+}${3WCs+wcI=4|+#^m)Sa?w~({1FF*C zFbXOhf{z*Q{AT^+p9o6XxS^B#g2M6nNy_pK6ZxeuB@)rwT42ASc82ITb>di~;-}^9 z1mRT4pi35!jD)DMEXZNbyH`58*-Z=-R|`HZI~k}X`xk7@E*kN$-n!t-xh1Q`;)d!0 z*kQ{`NJTGS&GhjJRaiS`(6zLN$>f{Muk>xPG*Iv@0=Iqd@FoQb;D_H8hLF|BL?CDr z9P}?*%8f8@`(kXVA(w;V(L3d2mA-w(2^DSEbK=gaVgZu)ja!4{ld?S=L!?qka1i)!!i1B2U<_3!W;$tdpimYlbR@us3zkfab&xiAd5E@!>-JBuAN zl?GCVEbV(NW}Lu(1eF6KoASK}y%5D!SraeJ_GZonP{yraLsU=CN7%m9U}04IPuteL ztPN2U^auP7-^azZP(J?yPnHP(CIjXDzOh)_!1qNT#bzsP9Y}G7l$8UeFY@10InxNWaO_@V$4g!>b58ERxH1^x*73pje*3fk-`vYb>CENd7CAXZQ?ticL5Uo?-t=sl zuj?PL?}&=UmEA&8OGl}++%bL6*|tZ|ot(VI26}Kd)+#v#13NBV=NfAViUNit?}$jf zRK*Y06|wvm1P|82QM#%rug_p;O7NfyhRP|g|Km0U4_;uXp7Q!t5$lm`r>IBYZhGSY z^<@GEv)!ksV6}`qFGYng(LyrR7jUtp_yX?Z1B^6;#Tvt6k5FGuVM4YmHTg~)Wd%-T z*Quv-B)$m-%|#|Q8sj=3o)xZY8{ybPo5e<#&FbR()2z9s{K0D;Cw+m7x#{W8-Peoi)Qv^!J!ANK;|1ctbD+dL0f=Hec5 zVUTAhtJ9K@bezN zbFs*ONm5(L`9_5;sGps`V(p};ioE=>j7VIHm~7VMvzqp#QlMsRVR9_CgSc=7GwRpw z%0b+|&?9iV04oc{f<67c2qDaH#)fR zdU?gkNvM7Gc?i8LSa>U1a!{`LH7=s5=E^(zvFfrn#VzK$Cs#j8E=sCB1o3G{_3di7 z@OAeMQB4URfdGyG4h{|t4oPF#Xk2dVZ5<*r;F8^PIBOL5#iv Date: Fri, 26 Jun 2026 14:53:19 -0700 Subject: [PATCH 11/12] fix placeholders --- .../GitHub - A payment method was removed.yaml | 1 + .../GitHub - Activities from Infrequent Country.yaml | 1 + ...auth application - a client secret was removed.yaml | 1 + .../GitHub - Repository was created.yaml | 1 + .../GitHub - Repository was destroyed.yaml | 1 + ...- Two Factor Authentication Disabled in GitHub.yaml | 1 + .../GitHub - User visibility Was changed.yaml | 1 + .../GitHub - User was added to the organization.yaml | 1 + .../Analytic Rules/GitHub - User was blocked.yaml | 1 + .../GitHub - User was invited to the repository.yaml | 1 + .../GitHub - pull request was created.yaml | 1 + .../GitHub - pull request was merged.yaml | 1 + .../NRT Two Factor Authentication Disabled.yaml | 1 + .../Analytic Rules/Security Vulnerability in Repo.yaml | 1 + .../GitHubAuditLogs_AzStorage/ConnectorDefinition.json | 10 +++++----- 15 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml index 21d6d022f29..ace2a442c96 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - A payment method was removed.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a payment method was removed. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml index 90247b78d94..3a0d63d634f 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Activities from Infrequent Country.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities from a location that was not recently or was never visited by the user or by any user in your organization.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml index 7bc6a543f92..521f3c350f1 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Oauth application - a client secret was removed.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a client secret was removed. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml index a0a4216d42a..65daa77d345 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Repository was created.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a repository was created. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml index 537d6c4772b..a3b07a676aa 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Repository was destroyed.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a repository was destroyed. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml b/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml index d0dfff79b2c..fe1aff00dc7 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - Two Factor Authentication Disabled in GitHub.yaml @@ -4,6 +4,7 @@ description: | 'Two-factor authentication is a process where a user is prompted during the sign-in process for an additional form of identification, such as to enter a code on their cellphone or to provide a fingerprint scan. Two factor authentication reduces the risk of account takeover. Attacker will want to disable such security tools in order to go undetected. ' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 1d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml index 6475f8d73fe..23575dc8548 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User visibility Was changed.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a user visibility Was changed. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml index 888579b3867..5c4a9f2777e 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was added to the organization.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a user was added to the organization. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml index ce2c1a40619..3a5071d1618 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was blocked.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a user was blocked on the repository. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml b/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml index e28e4a4639a..7e3b66556f6 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - User was invited to the repository.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a user was invited to the repository. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml b/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml index 5731ec0c4e6..746c01dec76 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - pull request was created.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a pull request was created. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml b/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml index e6278f90ab2..48930bf6ac9 100644 --- a/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml +++ b/Solutions/GitHub/Analytic Rules/GitHub - pull request was merged.yaml @@ -4,6 +4,7 @@ description: | 'Detect activities when a pull request was merged. This query runs every day and its severity is Medium.' severity: Medium status: Available +requiredDataConnectors: [] queryFrequency: 1d queryPeriod: 7d triggerOperator: gt diff --git a/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml b/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml index bca9b374702..2b53fffb971 100644 --- a/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml +++ b/Solutions/GitHub/Analytic Rules/NRT Two Factor Authentication Disabled.yaml @@ -3,6 +3,7 @@ name: NRT GitHub Two Factor Auth Disable description: | 'Two-factor authentication is a process where a user is prompted during the sign-in process for an additional form of identification, such as to enter a code on their cellphone or to provide a fingerprint scan. Two factor authentication reduces the risk of account takeover. Attacker will want to disable such security tools in order to go undetected. ' severity: Medium +requiredDataConnectors: [] tactics: - DefenseEvasion relevantTechniques: diff --git a/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml b/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml index bd7500ac5df..31a15efc758 100644 --- a/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml +++ b/Solutions/GitHub/Analytic Rules/Security Vulnerability in Repo.yaml @@ -3,6 +3,7 @@ name: GitHub Security Vulnerability in Repository description: | 'This alerts when there is a new security vulnerability in a GitHub repository.' severity: Informational +requiredDataConnectors: [] queryFrequency: 1h queryPeriod: 1h triggerOperator: gt diff --git a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json index 00a63a9258e..8949df9bf04 100644 --- a/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json +++ b/Solutions/GitHub/Data Connectors/GitHubAuditLogs_AzStorage/ConnectorDefinition.json @@ -96,7 +96,7 @@ "type": "Textbox", "parameters": { "label": "The blob container URL you want to collect data from", - "placeholder": "Enter blob container URL", + "placeholder": "", "type": "text", "name": "blobContainerUri" } @@ -105,7 +105,7 @@ "type": "Textbox", "parameters": { "label": "The blob folder name in the container. Optional.", - "placeholder": "optional-folder-name", + "placeholder": "", "type": "text", "name": "blobFolderName" } @@ -123,7 +123,7 @@ "type": "Textbox", "parameters": { "label": "The blob container's storage account resource group name", - "placeholder": "my-resource-group", + "placeholder": "", "type": "text", "name": "StorageAccountResourceGroupName" } @@ -132,7 +132,7 @@ "type": "Textbox", "parameters": { "label": "The blob container's storage account subscription id", - "placeholder": "00000000-0000-0000-0000-000000000000", + "placeholder": "", "type": "text", "name": "StorageAccountSubscription" } @@ -141,7 +141,7 @@ "type": "Textbox", "parameters": { "label": "The Event Grid system topic name for the storage account, if one exists; otherwise, leave empty.", - "placeholder": "eg-system-topic-name", + "placeholder": "", "type": "text", "name": "EGSystemTopicName", "description": "The data flow uses Event Grid to send blob-created event notifications. There can be only one Event Grid system topic per storage account.\nNavigate to your storage account and check the **Events** section. If a topic already exists, provide its name. Otherwise, leave this field empty." From f36c31a11b9ca09d557a6f0a3873e8c38389056e Mon Sep 17 00:00:00 2001 From: Fuqing Wang Date: Wed, 1 Jul 2026 09:05:37 -0700 Subject: [PATCH 12/12] fix mismatch --- Solutions/GitHub/Package/3.4.0.zip | Bin 73027 -> 72564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Solutions/GitHub/Package/3.4.0.zip b/Solutions/GitHub/Package/3.4.0.zip index 92620ad050a0fab2f98f4c67e710bf1cb1685d34..2f40ce9b0d8ba63d74e7413df2a95d1996acea0e 100644 GIT binary patch literal 72564 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 literal 73027 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

W8}&cem_uZ|e=7i0@S|n$xRgrf;>maJ~H$ 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