зеркало из https://github.com/github/docs.git
Secret scanning structured data (#33117)
Co-authored-by: Rachael Sewell <rachmari@github.com>
This commit is contained in:
Родитель
c8579c90fc
Коммит
5ee7bfe4ac
|
@ -41,7 +41,15 @@ If you believe that {% data variables.product.prodname_secret_scanning %} should
|
|||
|
||||
{% data reusables.secret-scanning.secret-scanning-pattern-pair-matches %}
|
||||
|
||||
{% data reusables.secret-scanning.partner-secret-list-public-repo %}
|
||||
<!-- PUBLIC TABLE STARTS HERE -->
|
||||
<!-- This recreates the table in the now deleted data/reusables/secret-scanning/partner-secret-list-public-repo.md -->
|
||||
Partner | Supported secret
|
||||
--- | ---
|
||||
{%- for entry in secretScanning.isPublic %}
|
||||
{{ entry.provider }} | {{ entry.supportedSecret }}
|
||||
{%- endfor %}
|
||||
<!-- PUBLIC TABLE ENDS HERE -->
|
||||
|
||||
{% endif %}
|
||||
|
||||
## Supported secrets for {% ifversion fpt or ghec %}user {% endif %}alerts
|
||||
|
@ -60,7 +68,14 @@ If you use the REST API for secret scanning, you can use the `Secret type` to re
|
|||
{% endnote %}
|
||||
{% endif %}
|
||||
|
||||
{% data reusables.secret-scanning.partner-secret-list-private-repo %}
|
||||
<!-- PRIVATE TABLE STARTS HERE -->
|
||||
<!-- This recreates the table in the now deleted data/reusables/secret-scanning/partner-secret-list-private-repo.md. -->
|
||||
Provider | Supported secret | Secret type
|
||||
--- | --- | ---
|
||||
{%- for entry in secretScanning.isPrivateWithGhas %}
|
||||
{{ entry.provider }} | {{ entry.supportedSecret }} | {{ entry.secretType }} |
|
||||
{%- endfor %}
|
||||
<!-- PRIVATE TABLE ENDS HERE -->
|
||||
|
||||
{% ifversion secret-scanning-push-protection %}
|
||||
## Supported secrets for push protection
|
||||
|
@ -71,7 +86,14 @@ If you use the REST API for secret scanning, you can use the `Secret type` to re
|
|||
|
||||
{% data reusables.secret-scanning.push-protection-older-tokens %} For more information about push protection limitations, see "[AUTOTITLE](/code-security/secret-scanning/troubleshooting-secret-scanning#push-protection-and-pattern-versions)."
|
||||
|
||||
{% data reusables.secret-scanning.secret-list-private-push-protection %}
|
||||
<!-- PUSH PROTECTION TABLE STARTS HERE -->
|
||||
<!-- This recreates the table in the now deleted data/reusables/secret-scanning/secret-list-private-push-protection.md -->
|
||||
Provider | Supported secret | Secret type
|
||||
--- | --- | ---
|
||||
{%- for entry in secretScanning.hasPushProtection %}
|
||||
{{ entry.provider }} | {{ entry.supportedSecret }} | {{ entry.secretType }}
|
||||
{%- endfor %}
|
||||
<!-- PRIVATE TABLE ENDS HERE -->
|
||||
|
||||
{% endif %}
|
||||
## Further reading
|
||||
|
|
|
@ -1,241 +0,0 @@
|
|||
Provider | Supported secret | Secret type
|
||||
--- | --- | ---
|
||||
Adafruit IO | Adafruit IO Key | adafruit_io_key
|
||||
Adobe | Adobe Device Token | adobe_device_token
|
||||
Adobe | Adobe Service Token | adobe_service_token
|
||||
Adobe | Adobe Short-Lived Access Token | adobe_short_lived_access_token
|
||||
Adobe | Adobe JSON Web Token | adobe_jwt
|
||||
Alibaba Cloud | Alibaba Cloud Access Key ID with Alibaba Cloud Access Key Secret| alibaba_cloud_access_key_id </br>alibaba_cloud_access_key_secret
|
||||
Amazon | Amazon OAuth Client ID with Amazon OAuth Client Secret | amazon_oauth_client_id </br>amazon_oauth_client_secret
|
||||
Amazon Web Services (AWS) | Amazon AWS Access Key ID with Amazon AWS Secret Access Key | aws_access_key_id </br>aws_secret_access_key
|
||||
Amazon Web Services (AWS) | Amazon AWS Session Token with Amazon AWS Temporary Access Key ID and Amazon AWS Secret Access Key | aws_session_token </br>aws_temporary_access_key_id </br>aws_secret_access_key
|
||||
Asana | Asana {% data variables.product.pat_generic_title_case %} | asana_personal_access_token
|
||||
Atlassian | Atlassian API Token | atlassian_api_token
|
||||
Atlassian | Atlassian JSON Web Token | atlassian_jwt
|
||||
Atlassian | Bitbucket Server {% data variables.product.pat_generic_title_case %} | bitbucket_server_personal_access_token
|
||||
Azure | Azure Active Directory Application Secret | azure_active_directory_application_secret
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure Batch Key Identifiable | azure_batch_key_identifiable{% endif %}
|
||||
Azure | Azure Cache for Redis Access Key | azure_cache_for_redis_access_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure CosmosDB Key Identifiable | azure_cosmosdb_key_identifiable{% endif %}
|
||||
Azure | Azure DevOps {% data variables.product.pat_generic_title_case %} | azure_devops_personal_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure ML Studio (classic) Web Service Key | azure_ml_studio_classic_web_service_key, azure_ml_web_service_classic_identifiable_key{% endif %}
|
||||
Azure | Azure SAS Token | azure_sas_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure Search Admin Key | azure_search_admin_key
|
||||
Azure | Azure Search Query Key | azure_search_query_key{% endif %}
|
||||
Azure | Azure Service Management Certificate | azure_management_certificate
|
||||
{%- ifversion ghae < 3.4 %}
|
||||
Azure | Azure SQL Connection String | azure_sql_connection_string{% endif %}
|
||||
Azure | Azure Storage Account Key | azure_storage_account_key
|
||||
Beamer | Beamer API Key | beamer_api_key
|
||||
Checkout.com | Checkout.com Production Secret Key | checkout_production_secret_key
|
||||
Checkout.com | Checkout.com Test Secret Key | checkout_test_secret_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Chief Tools | Chief Tools Token | chief_tools_token{% endif %}
|
||||
Clojars | Clojars Deploy Token | clojars_deploy_token
|
||||
CloudBees CodeShip | CloudBees CodeShip Credential | codeship_credential
|
||||
Contentful | Contentful {% data variables.product.pat_generic_title_case %} | contentful_personal_access_token
|
||||
Databricks | Databricks Access Token | databricks_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
DevCycle | DevCycle Client API Key | devcycle_client_api_key
|
||||
DevCycle | DevCycle Server API Key | devcycle_server_api_key
|
||||
DevCycle | DevCycle Mobile API Key | devcycle_mobile_api_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
DigitalOcean | DigitalOcean {% data variables.product.pat_generic_title_case %} | digitalocean_personal_access_token
|
||||
DigitalOcean | DigitalOcean OAuth Token | digitalocean_oauth_token
|
||||
DigitalOcean | DigitalOcean Refresh Token | digitalocean_refresh_token
|
||||
DigitalOcean | DigitalOcean System Token | digitalocean_system_token{% endif %}
|
||||
Discord | Discord Bot Token | discord_bot_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Discord | Discord API Token V2 | discord_api_token_v2{% endif %}
|
||||
Doppler | Doppler Personal Token | doppler_personal_token
|
||||
Doppler | Doppler Service Token | doppler_service_token
|
||||
Doppler | Doppler CLI Token | doppler_cli_token
|
||||
Doppler | Doppler SCIM Token | doppler_scim_token
|
||||
Doppler | Doppler Audit Token | doppler_audit_token
|
||||
Dropbox | Dropbox Access Token | dropbox_access_token
|
||||
Dropbox | Dropbox Short Lived Access Token | dropbox_short_lived_access_token
|
||||
Duffel | Duffel Live Access Token | duffel_live_access_token
|
||||
Duffel | Duffel Test Access Token | duffel_test_access_token
|
||||
Dynatrace | Dynatrace Access Token | dynatrace_access_token
|
||||
Dynatrace | Dynatrace Internal Token | dynatrace_internal_token
|
||||
EasyPost | EasyPost Production API Key | easypost_production_api_key
|
||||
EasyPost | EasyPost Test API Key | easypost_test_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
eBay | eBay Production Client ID (App ID) with eBay Production Client Secret (Cert ID) | ebay_production_client_id </br>ebay_production_client_secret
|
||||
eBay | eBay Sandbox Client ID (App ID) with eBay Sandbox Client Secret (Cert ID) | ebay_sandbox_client_id </br>ebay_sandbox_client_secret{% endif %}
|
||||
Fastly | Fastly API Token | fastly_api_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Figma | Figma {% data variables.product.pat_generic_title_case %} |figma_pat{% endif %}
|
||||
Finicity | Finicity App Key | finicity_app_key
|
||||
Flutterwave | Flutterwave Live API Secret Key | flutterwave_live_api_secret_key
|
||||
Flutterwave | Flutterwave Test API Secret Key | flutterwave_test_api_secret_key
|
||||
Frame.io | Frame.io JSON Web Token | frameio_jwt
|
||||
Frame.io| Frame.io Developer Token | frameio_developer_token
|
||||
FullStory | FullStory API Key | fullstory_api_key
|
||||
GitHub | GitHub {% data variables.product.pat_generic_title_case %} | github_personal_access_token
|
||||
GitHub | GitHub OAuth Access Token | github_oauth_access_token
|
||||
GitHub | GitHub Refresh Token | github_refresh_token
|
||||
GitHub | GitHub App Installation Access Token | github_app_installation_access_token
|
||||
GitHub | GitHub SSH Private Key | github_ssh_private_key
|
||||
GitLab | GitLab Access Token | gitlab_access_token
|
||||
GoCardless | GoCardless Live Access Token | gocardless_live_access_token
|
||||
GoCardless | GoCardless Sandbox Access Token | gocardless_sandbox_access_token
|
||||
Google | Firebase Cloud Messaging Server Key | firebase_cloud_messaging_server_key
|
||||
Google | Google API Key | google_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.5 or ghae > 3.5 %}
|
||||
Google | Google Cloud Private Key ID | google_cloud_private_key_id{% endif %}
|
||||
Google | Google Cloud Storage Service Account Access Key ID with Google Cloud Storage Access Key Secret | google_cloud_storage_service_account_access_key_id </br>google_cloud_storage_access_key_secret
|
||||
Google | Google Cloud Storage User Access Key ID with Google Cloud Storage Access Key Secret | google_cloud_storage_user_access_key_id </br>google_cloud_storage_access_key_secret
|
||||
Google | Google OAuth Access Token | google_oauth_access_token
|
||||
Google | Google OAuth Client ID with Google OAuth Client Secret | google_oauth_client_id </br>google_oauth_client_secret
|
||||
Google | Google OAuth Refresh Token | google_oauth_refresh_token
|
||||
Grafana | Grafana API Key | grafana_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Grafana | Grafana Cloud API Key | grafana_cloud_api_key
|
||||
Grafana | Grafana Cloud API Token | grafana_cloud_api_token
|
||||
Grafana | Grafana Project API Key | grafana_project_api_key
|
||||
Grafana | Grafana Project Service Account Token | grafana_project_service_account_token{% endif %}
|
||||
HashiCorp | Terraform Cloud / Enterprise API Token | terraform_api_token
|
||||
HashiCorp | HashiCorp Vault Batch Token | hashicorp_vault_batch_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
HashiCorp | HashiCorp Vault Root Service Token | hashicorp_vault_root_service_token{% endif %}
|
||||
HashiCorp | HashiCorp Vault Service Token | hashicorp_vault_service_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
Highnote | Highnote RK Live Key | highnote_rk_live_key
|
||||
Highnote | Highnote RK Test Key | highnote_rk_test_key
|
||||
Highnote | Highnote SK Live Key | highnote_sk_live_key
|
||||
Highnote | Highnote SK Test Key | highnote_sk_test_key{% endif %}
|
||||
Hubspot | Hubspot API Key | hubspot_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Hubspot | Hubspot API Personal Access Key | hubspot_api_personal_access_key{% endif %}
|
||||
Intercom | Intercom Access Token | intercom_access_token
|
||||
Ionic | Ionic {% data variables.product.pat_generic_title_case %} | ionic_personal_access_token
|
||||
Ionic | Ionic Refresh Token | ionic_refresh_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
JD Cloud | JD Cloud Access Key | jd_cloud_access_key{% endif %}
|
||||
JFrog | JFrog Platform Access Token | jfrog_platform_access_token
|
||||
JFrog | JFrog Platform API Key | jfrog_platform_api_key
|
||||
Linear | Linear API Key | linear_api_key
|
||||
Linear | Linear OAuth Access Token | linear_oauth_access_token
|
||||
Lob | Lob Live API Key | lob_live_api_key
|
||||
Lob | Lob Test API Key | lob_test_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
LocalStack | LocalStack API Key | localstack_api_key
|
||||
LogicMonitor | LogicMonitor Bearer Token | logicmonitor_bearer_token
|
||||
LogicMonitor | LogicMonitor LMV1 Access Key | logicmonitor_lmv1_access_key{% endif %}
|
||||
Mailchimp | Mailchimp API Key | mailchimp_api_key
|
||||
Mailgun | Mailgun API Key | mailgun_api_key
|
||||
Mapbox | Mapbox Secret Access Token | mapbox_secret_access_token
|
||||
MessageBird | MessageBird API Key | messagebird_api_key
|
||||
Meta | Facebook Access Token | facebook_access_token
|
||||
Midtrans | Midtrans Production Server Key | midtrans_production_server_key
|
||||
Midtrans | Midtrans Sandbox Server Key | midtrans_sandbox_server_key
|
||||
New Relic | New Relic Personal API Key | new_relic_personal_api_key
|
||||
New Relic | New Relic REST API Key | new_relic_rest_api_key
|
||||
New Relic | New Relic Insights Query Key | new_relic_insights_query_key
|
||||
New Relic | New Relic License Key | new_relic_license_key
|
||||
Notion | Notion Integration Token | notion_integration_token
|
||||
Notion | Notion OAuth Client Secret | notion_oauth_client_secret
|
||||
npm | npm Access Token | npm_access_token
|
||||
NuGet | NuGet API Key | nuget_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
Oculus | Oculus Very Tiny Encrypted Session | oculus_very_tiny_encrypted_session{% endif %}
|
||||
Octopus Deploy | Octopus Deploy API Key | octopus_deploy_api_key
|
||||
Onfido | Onfido Live API Token | onfido_live_api_token
|
||||
Onfido | Onfido Sandbox API Token | onfido_sandbox_api_token
|
||||
OpenAI | OpenAI API Key | openai_api_key
|
||||
Palantir | Palantir JSON Web Token | palantir_jwt
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Persona | Persona Production API Key | persona_production_api_key
|
||||
Persona | Persona Sandbox API Key | persona_sandbox_api_key{% endif %}
|
||||
PlanetScale | PlanetScale Database Password | planetscale_database_password
|
||||
PlanetScale | PlanetScale OAuth Token | planetscale_oauth_token
|
||||
PlanetScale | PlanetScale Service Token | planetscale_service_token
|
||||
Plivo | Plivo Auth ID with Plivo Auth Token | plivo_auth_id </br>plivo_auth_token
|
||||
Postman | Postman API Key | postman_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Postman | Postman Collection Key | postman_collection_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Prefect | Prefect Server API Key | prefect_server_api_key
|
||||
Prefect | Prefect User API Key | prefect_user_api_key{% endif %}
|
||||
Proctorio | Proctorio Consumer Key | proctorio_consumer_key
|
||||
Proctorio | Proctorio Linkage Key | proctorio_linkage_key
|
||||
Proctorio | Proctorio Registration Key | proctorio_registration_key
|
||||
Proctorio | Proctorio Secret Key | proctorio_secret_key
|
||||
Pulumi | Pulumi Access Token | pulumi_access_token
|
||||
PyPI | PyPI API Token | pypi_api_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
ReadMe | ReadMe API Access Key | readmeio_api_access_token{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.5 or ghae > 3.5 %}
|
||||
redirect.pizza | redirect.pizza API Token | redirect_pizza_api_token{% endif %}
|
||||
RubyGems | RubyGems API Key | rubygems_api_key
|
||||
Samsara | Samsara API Token | samsara_api_token
|
||||
Samsara | Samsara OAuth Access Token | samsara_oauth_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
Segment | Segment Public API Token | segment_public_api_token{% endif %}
|
||||
SendGrid | SendGrid API Key | sendgrid_api_key
|
||||
Sendinblue | Sendinblue API Key | sendinblue_api_key
|
||||
Sendinblue | Sendinblue SMTP Key | sendinblue_smtp_key
|
||||
Shippo | Shippo Live API Token | shippo_live_api_token
|
||||
Shippo | Shippo Test API Token | shippo_test_api_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
Shopify | Shopify App Client Credentials | shopify_app_client_credentials
|
||||
Shopify | Shopify App Client Secret | shopify_app_client_secret{% endif %}
|
||||
Shopify | Shopify App Shared Secret | shopify_app_shared_secret
|
||||
Shopify | Shopify Access Token | shopify_access_token
|
||||
Shopify | Shopify Custom App Access Token | shopify_custom_app_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
Shopify | Shopify Merchant Token | shopify_merchant_token
|
||||
Shopify | Shopify Marketplace Token | shopify_marketplace_token
|
||||
Shopify | Shopify Partner API Token | shopify_partner_api_token{% endif %}
|
||||
Shopify | Shopify Private App Password | shopify_private_app_password
|
||||
Slack | Slack API Token | slack_api_token
|
||||
Slack | Slack Incoming Webhook URL | slack_incoming_webhook_url
|
||||
Slack | Slack Workflow Webhook URL | slack_workflow_webhook_url
|
||||
Square | Square Access Token | square_access_token
|
||||
Square | Square Production Application Secret | square_production_application_secret
|
||||
Square | Square Sandbox Application Secret | square_sandbox_application_secret
|
||||
SSLMate | SSLMate API Key | sslmate_api_key
|
||||
SSLMate | SSLMate Cluster Secret | sslmate_cluster_secret
|
||||
Stripe | Stripe API Key | stripe_api_key
|
||||
Stripe | Stripe Live API Secret Key | stripe_live_secret_key
|
||||
Stripe | Stripe Test API Secret Key | stripe_test_secret_key
|
||||
Stripe | Stripe Live API Restricted Key | stripe_live_restricted_key
|
||||
Stripe | Stripe Test API Restricted Key | stripe_test_restricted_key
|
||||
Stripe | Stripe Webhook Signing Secret | stripe_webhook_signing_secret
|
||||
Supabase | Supabase Service Key | supabase_service_key
|
||||
Tableau | Tableau {% data variables.product.pat_generic_title_case %} | tableau_personal_access_token
|
||||
Telegram | Telegram Bot Token | telegram_bot_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Telnyx | Telnyx API V2 Key | telnyx_api_v2_key{% endif %}
|
||||
Tencent Cloud | Tencent Cloud Secret ID | tencent_cloud_secret_id
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Tencent WeChat | Tencent WeChat API App ID | tencent_wechat_api_app_id{% endif %}
|
||||
Twilio | Twilio Access Token | twilio_access_token
|
||||
Twilio | Twilio Account String Identifier | twilio_account_sid
|
||||
Twilio | Twilio API Key | twilio_api_key
|
||||
Typeform | Typeform {% data variables.product.pat_generic_title_case %} | typeform_personal_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Uniwise | WISEflow API Key | wiseflow_api_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
WakaTime | WakaTime App Secret | wakatime_pp_secret
|
||||
WakaTime | WakaTime OAuth Access Token | wakatime_oauth_access_token
|
||||
WakaTime | WakaTime OAuth Refresh Token | wakatime_oauth_refresh_token{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
WorkOS | WorkOS Production API Key | workos_production_api_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
WorkOS | WorkOS Staging API Key | workos_staging_api_key{% endif %}
|
||||
Yandex | Yandex.Cloud API Key | yandex_cloud_api_key
|
||||
Yandex | Yandex.Cloud IAM Cookie | yandex_cloud_iam_cookie
|
||||
Yandex | Yandex.Cloud IAM Token | yandex_cloud_iam_token
|
||||
Yandex | Yandex.Dictionary API Key | yandex_dictionary_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}
|
||||
Yandex | Yandex.Cloud Access Secret | yandex_iam_access_secret{% endif %}
|
||||
Yandex | Yandex.Predictor API Key | yandex_predictor_api_key
|
||||
Yandex | Yandex.Translate API Key | yandex_translate_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Zuplo | Zuplo Consumer API Key | zuplo_consumer_api_key{% endif %}
|
|
@ -1,134 +0,0 @@
|
|||
Partner | Supported secret
|
||||
--- | ---
|
||||
Adafruit IO | Adafruit IO Key
|
||||
Adobe | Adobe Device Token
|
||||
Adobe | Adobe Service Token
|
||||
Adobe | Adobe Short-Lived Access Token
|
||||
Adobe | Adobe JSON Web Token
|
||||
Alibaba Cloud | Alibaba Cloud Access Key ID and Access Key Secret pair
|
||||
Amazon Web Services (AWS) | Amazon AWS Access Key ID and Secret Access Key pair
|
||||
Atlassian | Atlassian API Token
|
||||
Atlassian | Atlassian JSON Web Token
|
||||
Azure | Azure Active Directory Application Secret
|
||||
Azure | Azure Batch Key Identifiable
|
||||
Azure | Azure CosmosDB Key Identifiable
|
||||
Azure | Azure DevOps {% data variables.product.pat_generic_title_case %}
|
||||
Azure | Azure ML Studio (classic) Web Service Key
|
||||
Azure | Azure SAS Token
|
||||
Azure | Azure Search Admin Key
|
||||
Azure | Azure Search Query Key
|
||||
Azure | Azure Service Management Certificate
|
||||
Azure | Azure SQL Connection String
|
||||
Azure | Azure Storage Account Key
|
||||
Checkout.com | Checkout.com Production Secret Key
|
||||
Checkout.com | Checkout.com Test Secret Key
|
||||
Chief Tools | Chief Tools Token
|
||||
Clojars | Clojars Deploy Token
|
||||
CloudBees CodeShip | CloudBees CodeShip Credential
|
||||
Contributed Systems | Contributed Systems Credentials
|
||||
Crates.io | Crates.io API Token
|
||||
Databricks | Databricks Access Token
|
||||
Datadog | Datadog API Key
|
||||
DevCycle | DevCycle Client API Key
|
||||
DevCycle | DevCycle Server API Key
|
||||
DigitalOcean | DigitalOcean {% data variables.product.pat_generic_title_case %}
|
||||
DigitalOcean | DigitalOcean OAuth Token
|
||||
DigitalOcean | DigitalOcean Refresh Token
|
||||
DigitalOcean | DigitalOcean System Token
|
||||
Discord | Discord Bot Token
|
||||
Doppler | Doppler Personal Token
|
||||
Doppler | Doppler Service Token
|
||||
Doppler | Doppler CLI Token
|
||||
Doppler | Doppler SCIM Token
|
||||
Doppler | Doppler Audit Token
|
||||
Dropbox | Dropbox Access Token
|
||||
Dropbox | Dropbox Short Lived Access Token
|
||||
Dynatrace | Dynatrace Access Token
|
||||
Dynatrace | Dynatrace Internal Token
|
||||
Figma | Figma {% data variables.product.pat_generic_title_case %}
|
||||
Finicity | Finicity App Key
|
||||
Frame.io | Frame.io JSON Web Token
|
||||
Frame.io| Frame.io Developer Token
|
||||
FullStory| FullStory API Key
|
||||
GitHub | GitHub {% data variables.product.pat_generic_title_case %}
|
||||
GitHub | GitHub OAuth Access Token
|
||||
GitHub | GitHub Refresh Token
|
||||
GitHub | GitHub App Installation Access Token
|
||||
GitHub | GitHub SSH Private Key
|
||||
GoCardless | GoCardless Live Access Token
|
||||
GoCardless | GoCardless Sandbox Access Token
|
||||
Google Cloud | Google API Key
|
||||
Google Cloud | Google Cloud Private Key ID
|
||||
Hashicorp Terraform | Terraform Cloud / Enterprise API Token
|
||||
Hubspot | Hubspot API Key
|
||||
Hubspot | Hubspot API Personal Access Key
|
||||
Ionic | Ionic {% data variables.product.pat_generic_title_case %}
|
||||
Ionic | Ionic Refresh Token
|
||||
JD Cloud | JD Cloud Access Key
|
||||
Linear | Linear API Key
|
||||
Linear | Linear OAuth Access Token
|
||||
LocalStack | LocalStack API Key
|
||||
Mailchimp | Mailchimp API Key
|
||||
Mailchimp | Mandrill API Key
|
||||
Mailgun | Mailgun API Key
|
||||
MessageBird | MessageBird API Key
|
||||
Meta | Facebook Access Token
|
||||
npm | npm Access Token
|
||||
NuGet | NuGet API Key
|
||||
Octopus Deploy | Octopus Deploy API Key
|
||||
OpenAI | OpenAI API Key
|
||||
Palantir | Palantir JSON Web Token
|
||||
PlanetScale | PlanetScale Database Password
|
||||
PlanetScale | PlanetScale OAuth Token
|
||||
PlanetScale | PlanetScale Service Token
|
||||
Plivo | Plivo Auth ID and Token
|
||||
Postman | Postman API Key
|
||||
Prefect | Prefect Server API Key
|
||||
Prefect | Prefect User API Token
|
||||
Proctorio | Proctorio Consumer Key
|
||||
Proctorio | Proctorio Linkage Key
|
||||
Proctorio | Proctorio Registration Key
|
||||
Proctorio | Proctorio Secret Key
|
||||
Pulumi | Pulumi Access Token
|
||||
PyPI | PyPI API Token
|
||||
ReadMe | ReadMe API Access Key
|
||||
redirect.pizza | redirect.pizza API Token
|
||||
RubyGems | RubyGems API Key
|
||||
Samsara | Samsara API Token
|
||||
Samsara | Samsara OAuth Access Token
|
||||
Segment | Segment Public API Token
|
||||
SendGrid | SendGrid API Key
|
||||
Sendinblue | Sendinblue API Key
|
||||
Sendinblue | Sendinblue SMTP Key
|
||||
Shopify | Shopify App Shared Secret
|
||||
Shopify | Shopify Access Token
|
||||
Shopify | Shopify Custom App Access Token
|
||||
Shopify | Shopify Private App Password
|
||||
Slack | Slack API Token
|
||||
Slack | Slack Incoming Webhook URL
|
||||
Slack | Slack Workflow Webhook URL
|
||||
SSLMate | SSLMate API Key
|
||||
SSLMate | SSLMate Cluster Secret
|
||||
Stripe | Stripe Live API Secret Key
|
||||
Stripe | Stripe Test API Secret Key
|
||||
Stripe | Stripe Live API Restricted Key
|
||||
Stripe | Stripe Test API Restricted Key
|
||||
Supabase | Supabase Service Key
|
||||
Telnyx | Telnyx API V2 Key
|
||||
Tencent Cloud | Tencent Cloud Secret ID
|
||||
Tencent WeChat | Tencent WeChat API App ID
|
||||
Twilio | Twilio Account String Identifier
|
||||
Twilio | Twilio API Key
|
||||
Typeform | Typeform {% data variables.product.pat_generic_title_case %}
|
||||
Uniwise | WISEflow API Key
|
||||
Valour | Valour Access Token
|
||||
WakaTime | WakaTime App Secret
|
||||
WakaTime | WakaTime OAuth Access Token
|
||||
WakaTime | WakaTime OAuth Refresh Token
|
||||
Yandex | Yandex.Cloud API Key
|
||||
Yandex | Yandex.Cloud IAM Cookie
|
||||
Yandex | Yandex.Cloud IAM Token
|
||||
Yandex | Yandex.Dictionary API Key
|
||||
Yandex | Yandex.Cloud Access Secret
|
||||
Yandex | Yandex.Passport OAuth Token
|
||||
Zuplo | Zuplo Consumer API
|
|
@ -1,135 +0,0 @@
|
|||
Provider | Supported secret | Secret type
|
||||
--- | --- | ---
|
||||
Adafruit IO | Adafruit IO Key | adafruit_io_key
|
||||
Alibaba Cloud | Alibaba Cloud Access Key ID with Alibaba Cloud Access Key Secret| alibaba_cloud_access_key_id </br>alibaba_cloud_access_key_secret
|
||||
Amazon | Amazon OAuth Client ID with Amazon OAuth Client Secret | amazon_oauth_client_id </br>amazon_oauth_client_secret
|
||||
Amazon Web Services (AWS) | Amazon AWS Access Key ID with Amazon AWS Secret Access Key | aws_access_key_id </br>aws_secret_access_key
|
||||
Amazon Web Services (AWS) | Amazon AWS Session Token with Amazon AWS Temporary Access Key ID and Amazon AWS Secret Access Key | aws_session_token </br>aws_temporary_access_key_id </br>aws_secret_access_key
|
||||
Asana | Asana {% data variables.product.pat_generic_title_case %} | asana_personal_access_token
|
||||
Atlassian | Bitbucket Server {% data variables.product.pat_generic_title_case %} | bitbucket_server_personal_access_token
|
||||
Azure | Azure Active Directory Application Secret | azure_active_directory_application_secret
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure Batch Key Identifiable | azure_batch_key_identifiable{% endif %}
|
||||
Azure | Azure Cache for Redis Access Key | azure_cache_for_redis_access_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure CosmosDB Key Identifiable | azure_cosmosdb_key_identifiable{% endif %}
|
||||
Azure | Azure DevOps {% data variables.product.pat_generic_title_case %} | azure_devops_personal_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure ML Studio (classic) Web Service Key | azure_ml_web_service_classic_identifiable_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
Azure | Azure Search Admin Key | azure_search_admin_key
|
||||
Azure | Azure Search Query Key | azure_search_query_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Azure | Azure Storage Account Key | azure_storage_account_key{% endif %}
|
||||
Checkout.com | Checkout.com Production Secret Key | checkout_production_secret_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Chief Tools | Chief Tools Token | chief_tools_token{% endif %}
|
||||
Clojars | Clojars Deploy Token | clojars_deploy_token
|
||||
Databricks | Databricks Access Token | databricks_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
DevCycle | DevCycle Client API Key | devcycle_client_api_key
|
||||
DevCycle | DevCycle Server API Key | devcycle_server_api_key
|
||||
DevCycle | DevCycle Mobile API Key | devcycle_mobile_api_key{% endif %}
|
||||
DigitalOcean | DigitalOcean {% data variables.product.pat_generic_title_case %} | digitalocean_personal_access_token
|
||||
DigitalOcean | DigitalOcean OAuth Token | digitalocean_oauth_token
|
||||
DigitalOcean | DigitalOcean Refresh Token | digitalocean_refresh_token
|
||||
DigitalOcean | DigitalOcean System Token | digitalocean_system_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Discord | Discord API Token V2 | discord_api_token_v2{% endif %}
|
||||
Discord | Discord Bot Token | discord_bot_token
|
||||
Doppler | Doppler Personal Token | doppler_personal_token
|
||||
Doppler | Doppler Service Token | doppler_service_token
|
||||
Doppler | Doppler CLI Token | doppler_cli_token
|
||||
Doppler | Doppler SCIM Token | doppler_scim_token
|
||||
Doppler | Doppler Audit Token | doppler_audit_token
|
||||
Dropbox | Dropbox Short Lived Access Token | dropbox_short_lived_access_token
|
||||
Duffel | Duffel Live Access Token | duffel_live_access_token
|
||||
EasyPost | EasyPost Production API Key | easypost_production_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Figma | Figma {% data variables.product.pat_generic_title_case %} | figma_pat{% endif %}
|
||||
Flutterwave | Flutterwave Live API Secret Key | flutterwave_live_api_secret_key
|
||||
Fullstory | FullStory API Key | fullstory_api_key
|
||||
GitHub | GitHub {% data variables.product.pat_generic_title_case %} | github_personal_access_token
|
||||
GitHub | GitHub OAuth Access Token | github_oauth_access_token
|
||||
GitHub | GitHub Refresh Token | github_refresh_token
|
||||
GitHub | GitHub App Installation Access Token | github_app_installation_access_token
|
||||
GitHub | GitHub SSH Private Key | github_ssh_private_key
|
||||
Google | Google Cloud Storage Service Account Access Key ID with Google Cloud Storage Access Key Secret | google_cloud_storage_service_account_access_key_id </br>google_cloud_storage_access_key_secret
|
||||
Google | Google Cloud Storage User Access Key ID with Google Cloud Storage Access Key Secret | google_cloud_storage_user_access_key_id </br>google_cloud_storage_access_key_secret
|
||||
Google | Google OAuth Client ID with Google OAuth Client Secret | google_oauth_client_id </br>google_oauth_client_secret
|
||||
Grafana | Grafana API Key | grafana_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Grafana | Grafana Cloud API Key | grafana_cloud_api_key
|
||||
Grafana | Grafana Cloud API Token | grafana_cloud_api_token
|
||||
Grafana | Grafana Project API Key | grafana_project_api_key
|
||||
Grafana | Grafana Project Service Account Token | grafana_project_service_account_token{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
HashiCorp | HashiCorp Vault Batch Token (v1.10.0+) | hashicorp_vault_batch_token
|
||||
HashiCorp | HashiCorp Vault Root Service Token (v1.10.0+) | hashicorp_vault_root_service_token
|
||||
HashiCorp | HashiCorp Vault Service Token (v1.10.0+) | hashicorp_vault_service_token{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
Highnote | Highnote RK Live Key | highnote_rk_live_key
|
||||
Highnote | Highnote RK Test Key | highnote_rk_test_key
|
||||
Highnote | Highnote SK Live Key | highnote_sk_live_key
|
||||
Highnote | Highnote SK Test Key | highnote_sk_test_key{% endif %}
|
||||
Hubspot | Hubspot API Key | hubspot_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Hubspot | Hubspot API Personal Access Key | hubspot_api_personal_access_key{% endif %}
|
||||
Intercom | Intercom Access Token | intercom_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
JFrog | JFrog Platform Access Token | jfrog_platform_access_token
|
||||
JFrog | JFrog Platform API Key | jfrog_platform_api_key{% endif %}
|
||||
Ionic | Ionic {% data variables.product.pat_generic_title_case %} | ionic_personal_access_token
|
||||
Ionic | Ionic Refresh Token | ionic_refresh_token
|
||||
Linear | Linear API Key | linear_api_key
|
||||
Linear | Linear OAuth Access Token | linear_oauth_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %}
|
||||
LogicMonitor | LogicMonitor Bearer Token | logicmonitor_bearer_token
|
||||
LogicMonitor | LogicMonitor LMV1 Access Key | logicmonitor_lmv1_access_key{% endif %}
|
||||
Midtrans | Midtrans Production Server Key | midtrans_production_server_key
|
||||
New Relic | New Relic Personal API Key | new_relic_personal_api_key
|
||||
New Relic | New Relic REST API Key | new_relic_rest_api_key
|
||||
New Relic | New Relic Insights Query Key | new_relic_insights_query_key
|
||||
npm | npm Access Token | npm_access_token
|
||||
NuGet | NuGet API Key | nuget_api_key
|
||||
Onfido | Onfido Live API Token | onfido_live_api_token
|
||||
OpenAI | OpenAI API Key | openai_api_key
|
||||
PlanetScale | PlanetScale Database Password | planetscale_database_password
|
||||
PlanetScale | PlanetScale OAuth Token | planetscale_oauth_token
|
||||
PlanetScale | PlanetScale Service Token | planetscale_service_token
|
||||
Postman | Postman API Key | postman_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
Postman | Postman Collection Key | postman_collection_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Prefect | Prefect Server API Key | prefect_server_api_key
|
||||
Prefect | Prefect User API Key | prefect_user_api_key{% endif %}
|
||||
Proctorio | Proctorio Secret Key | proctorio_secret_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
ReadMe | ReadMe API Access Key | readmeio_api_access_token{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.5 or ghae > 3.5 %}
|
||||
redirect.pizza | redirect.pizza API Token | redirect_pizza_api_token{% endif %}
|
||||
Samsara | Samsara API Token | samsara_api_token
|
||||
Samsara | Samsara OAuth Access Token | samsara_oauth_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
Segment | Segment Public API Token | segment_public_api_token{% endif %}
|
||||
SendGrid | SendGrid API Key | sendgrid_api_key
|
||||
Sendinblue | Sendinblue API Key | sendinblue_api_key
|
||||
Sendinblue | Sendinblue SMTP Key | sendinblue_smtp_key
|
||||
Shippo | Shippo Live API Token | shippo_live_api_token
|
||||
Shopify | Shopify App Shared Secret | shopify_app_shared_secret
|
||||
Shopify | Shopify Access Token | shopify_access_token
|
||||
Slack | Slack API Token | slack_api_token
|
||||
Stripe | Stripe Live API Secret Key | stripe_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.7 or ghae > 3.7 %}
|
||||
Telnyx | Telnyx API V2 Key | telnyx_api_v2_key{% endif %}
|
||||
Tencent Cloud | Tencent Cloud Secret ID | tencent_cloud_secret_id
|
||||
Typeform | Typeform {% data variables.product.pat_generic_title_case %} | typeform_personal_access_token
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Uniwise | WISEflow API Key | wiseflow_api_key{% endif %}
|
||||
{%- ifversion fpt or ghec or ghes > 3.9 or ghae > 3.9 %}
|
||||
WakaTime | WakaTime App Secret | wakatime_pp_secret
|
||||
WakaTime | WakaTime OAuth Access Token | wakatime_oauth_access_token
|
||||
WakaTime | WakaTime OAuth Refresh Token | wakatime_oauth_refresh_token{% endif %}
|
||||
WorkOS | WorkOS Production API Key | workos_production_api_key
|
||||
{%- ifversion fpt or ghec or ghes > 3.6 or ghae > 3.6 %}
|
||||
Zuplo | Zuplo Consumer API Key | zuplo_consumer_api_key{% endif %}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,29 @@
|
|||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import yaml from 'js-yaml'
|
||||
import getApplicableVersions from '../../lib/get-applicable-versions.js'
|
||||
|
||||
const secretScanningPath = path.join('data/secret-scanning.yml')
|
||||
|
||||
export default async function secretScanning(req, res, next) {
|
||||
if (!req.pagePath.endsWith('code-security/secret-scanning/secret-scanning-patterns'))
|
||||
return next()
|
||||
|
||||
const secretScanningData = yaml.load(fs.readFileSync(secretScanningPath, 'utf-8'))
|
||||
|
||||
const { currentVersion } = req.context
|
||||
|
||||
// Create separate properties for each table for now - this keeps things simpler in the Markdown.
|
||||
// In the future if we combine the tables into a single table or some other format, we
|
||||
// can just add the entire secretScanning array to the context here.
|
||||
const currentVersionData = secretScanningData.filter((entry) =>
|
||||
getApplicableVersions(entry.versions).includes(currentVersion)
|
||||
)
|
||||
req.context.secretScanning = {
|
||||
isPublic: currentVersionData.filter((entry) => entry.isPublic),
|
||||
isPrivateWithGhas: currentVersionData.filter((entry) => entry.isPrivateWithGhas),
|
||||
hasPushProtection: currentVersionData.filter((entry) => entry.hasPushProtection),
|
||||
}
|
||||
|
||||
return next()
|
||||
}
|
|
@ -37,6 +37,7 @@ import robots from './robots.js'
|
|||
import earlyAccessLinks from './contextualizers/early-access-links.js'
|
||||
import categoriesForSupport from './categories-for-support.js'
|
||||
import triggerError from './trigger-error.js'
|
||||
import secretScanning from './contextualizers/secret-scanning.js'
|
||||
import ghesReleaseNotes from './contextualizers/ghes-release-notes.js'
|
||||
import ghaeReleaseNotes from './contextualizers/ghae-release-notes.js'
|
||||
import whatsNewChangelog from './contextualizers/whats-new-changelog.js'
|
||||
|
@ -263,6 +264,7 @@ export default function (app) {
|
|||
app.head('/*', fastHead)
|
||||
|
||||
// *** Preparation for render-page: contextualizers ***
|
||||
app.use(asyncMiddleware(instrument(secretScanning, './contextualizers/secret-scanning')))
|
||||
app.use(asyncMiddleware(instrument(ghesReleaseNotes, './contextualizers/ghes-release-notes')))
|
||||
app.use(asyncMiddleware(instrument(ghaeReleaseNotes, './contextualizers/ghae-release-notes')))
|
||||
app.use(asyncMiddleware(instrument(whatsNewChangelog, './contextualizers/whats-new-changelog')))
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
"@primer/react": "^35.2.2",
|
||||
"accept-language-parser": "^1.5.0",
|
||||
"ajv": "^8.11.0",
|
||||
"ajv-errors": "^3.0.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"bottleneck": "2.19.5",
|
||||
"cheerio": "^1.0.0-rc.11",
|
||||
|
@ -3534,201 +3535,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
|
||||
"integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA=="
|
||||
},
|
||||
"node_modules/@next/swc-android-arm-eabi": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz",
|
||||
"integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-android-arm64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz",
|
||||
"integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-arm64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz",
|
||||
"integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-x64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz",
|
||||
"integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-freebsd-x64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz",
|
||||
"integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm-gnueabihf": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz",
|
||||
"integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-gnu": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz",
|
||||
"integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-musl": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz",
|
||||
"integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-gnu": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz",
|
||||
"integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-musl": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz",
|
||||
"integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-arm64-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-ia32-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-x64-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||
|
@ -5185,6 +4991,14 @@
|
|||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-errors": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz",
|
||||
"integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==",
|
||||
"peerDependencies": {
|
||||
"ajv": "^8.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-formats": {
|
||||
"version": "2.1.1",
|
||||
"license": "MIT",
|
||||
|
@ -9717,20 +9531,6 @@
|
|||
"devOptional": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.1",
|
||||
"license": "MIT"
|
||||
|
@ -10812,9 +10612,9 @@
|
|||
"license": "ISC"
|
||||
},
|
||||
"node_modules/image-size": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.1.tgz",
|
||||
"integrity": "sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz",
|
||||
"integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"queue": "6.0.2"
|
||||
|
@ -10823,7 +10623,7 @@
|
|||
"image-size": "bin/image-size.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
|
@ -14749,11 +14549,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/mdast-util-gfm-table": {
|
||||
"version": "1.0.1",
|
||||
"license": "MIT",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
|
||||
"integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
|
||||
"dependencies": {
|
||||
"@types/mdast": "^3.0.0",
|
||||
"markdown-table": "^3.0.0",
|
||||
"mdast-util-to-markdown": "^1.0.0"
|
||||
"mdast-util-from-markdown": "^1.0.0",
|
||||
"mdast-util-to-markdown": "^1.3.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
|
@ -15077,8 +14880,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/micromark-extension-gfm-table": {
|
||||
"version": "1.0.2",
|
||||
"license": "MIT",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz",
|
||||
"integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==",
|
||||
"dependencies": {
|
||||
"micromark-factory-space": "^1.0.0",
|
||||
"micromark-util-character": "^1.0.0",
|
||||
|
@ -16250,9 +16054,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/p-queue": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz",
|
||||
"integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==",
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.4.tgz",
|
||||
"integrity": "sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"eventemitter3": "^4.0.7",
|
||||
|
@ -16859,7 +16663,7 @@
|
|||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz",
|
||||
"integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==",
|
||||
"deprecated": "< 18.1.0 is no longer supported",
|
||||
"deprecated": "< 19.2.0 is no longer supported",
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
|
@ -20537,17 +20341,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/website-scraper": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/website-scraper/-/website-scraper-5.0.0.tgz",
|
||||
"integrity": "sha512-wZP7fSQR86UZSCXfKzd5OlgBb6AdxXN6gVN07Hy2wYxp2+GeqQAIw+sbqXNlPQnpJLwmRZDWp2u6KeuaFOhotw==",
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/website-scraper/-/website-scraper-5.3.1.tgz",
|
||||
"integrity": "sha512-gogqPXD2gVsxoyd2yRiympw3rA5GuEpD1CaDEJ/J8zzanx7hkbTtneoO1SGs436PpLbWVcUge+6APGLhzsuZPA==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"cheerio": "1.0.0-rc.10",
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"css-url-parser": "^1.0.0",
|
||||
"debug": "^4.3.1",
|
||||
"fs-extra": "^10.0.0",
|
||||
"got": "^12.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize-url": "^7.0.2",
|
||||
"p-queue": "^7.1.0",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
|
@ -20557,121 +20360,6 @@
|
|||
"node": ">=14.14"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/cheerio": {
|
||||
"version": "1.0.0-rc.10",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
|
||||
"integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"cheerio-select": "^1.5.0",
|
||||
"dom-serializer": "^1.3.2",
|
||||
"domhandler": "^4.2.0",
|
||||
"htmlparser2": "^6.1.0",
|
||||
"parse5": "^6.0.1",
|
||||
"parse5-htmlparser2-tree-adapter": "^6.0.1",
|
||||
"tslib": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/cheeriojs/cheerio?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/cheerio-select": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
|
||||
"integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"css-select": "^4.3.0",
|
||||
"css-what": "^6.0.1",
|
||||
"domelementtype": "^2.2.0",
|
||||
"domhandler": "^4.3.1",
|
||||
"domutils": "^2.8.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/css-select": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
|
||||
"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"boolbase": "^1.0.0",
|
||||
"css-what": "^6.0.1",
|
||||
"domhandler": "^4.3.1",
|
||||
"domutils": "^2.8.0",
|
||||
"nth-check": "^2.0.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/dom-serializer": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"domhandler": "^4.2.0",
|
||||
"entities": "^2.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/domhandler": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
|
||||
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/domutils": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
|
||||
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"dom-serializer": "^1.0.1",
|
||||
"domelementtype": "^2.2.0",
|
||||
"domhandler": "^4.2.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/htmlparser2": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
|
||||
"funding": [
|
||||
"https://github.com/fb55/htmlparser2?sponsor=1",
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
],
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"domhandler": "^4.0.0",
|
||||
"domutils": "^2.5.2",
|
||||
"entities": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/normalize-url": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-7.2.0.tgz",
|
||||
|
@ -20684,21 +20372,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/parse5": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
|
||||
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/website-scraper/node_modules/parse5-htmlparser2-tree-adapter": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
|
||||
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"parse5": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"dev": true,
|
||||
|
@ -23427,84 +23100,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz",
|
||||
"integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA=="
|
||||
},
|
||||
"@next/swc-android-arm-eabi": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz",
|
||||
"integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-android-arm64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz",
|
||||
"integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-darwin-arm64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz",
|
||||
"integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-darwin-x64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz",
|
||||
"integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-freebsd-x64": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz",
|
||||
"integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-linux-arm-gnueabihf": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz",
|
||||
"integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-linux-arm64-gnu": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz",
|
||||
"integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-linux-arm64-musl": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz",
|
||||
"integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-linux-x64-gnu": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz",
|
||||
"integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-linux-x64-musl": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz",
|
||||
"integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-win32-arm64-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-win32-ia32-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==",
|
||||
"optional": true
|
||||
},
|
||||
"@next/swc-win32-x64-msvc": {
|
||||
"version": "12.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz",
|
||||
"integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==",
|
||||
"optional": true
|
||||
},
|
||||
"@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||
|
@ -24692,6 +24287,12 @@
|
|||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ajv-errors": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz",
|
||||
"integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==",
|
||||
"requires": {}
|
||||
},
|
||||
"ajv-formats": {
|
||||
"version": "2.1.1",
|
||||
"requires": {
|
||||
|
@ -27880,13 +27481,6 @@
|
|||
"version": "1.0.0",
|
||||
"devOptional": true
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"function-bind": {
|
||||
"version": "1.1.1"
|
||||
},
|
||||
|
@ -28618,9 +28212,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"image-size": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.1.tgz",
|
||||
"integrity": "sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz",
|
||||
"integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"queue": "6.0.2"
|
||||
|
@ -31488,10 +31082,14 @@
|
|||
}
|
||||
},
|
||||
"mdast-util-gfm-table": {
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
|
||||
"integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
|
||||
"requires": {
|
||||
"@types/mdast": "^3.0.0",
|
||||
"markdown-table": "^3.0.0",
|
||||
"mdast-util-to-markdown": "^1.0.0"
|
||||
"mdast-util-from-markdown": "^1.0.0",
|
||||
"mdast-util-to-markdown": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"mdast-util-gfm-task-list-item": {
|
||||
|
@ -31707,7 +31305,9 @@
|
|||
}
|
||||
},
|
||||
"micromark-extension-gfm-table": {
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz",
|
||||
"integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==",
|
||||
"requires": {
|
||||
"micromark-factory-space": "^1.0.0",
|
||||
"micromark-util-character": "^1.0.0",
|
||||
|
@ -32391,9 +31991,9 @@
|
|||
}
|
||||
},
|
||||
"p-queue": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz",
|
||||
"integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==",
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.4.tgz",
|
||||
"integrity": "sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"eventemitter3": "^4.0.7",
|
||||
|
@ -35256,127 +34856,27 @@
|
|||
"peer": true
|
||||
},
|
||||
"website-scraper": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/website-scraper/-/website-scraper-5.0.0.tgz",
|
||||
"integrity": "sha512-wZP7fSQR86UZSCXfKzd5OlgBb6AdxXN6gVN07Hy2wYxp2+GeqQAIw+sbqXNlPQnpJLwmRZDWp2u6KeuaFOhotw==",
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/website-scraper/-/website-scraper-5.3.1.tgz",
|
||||
"integrity": "sha512-gogqPXD2gVsxoyd2yRiympw3rA5GuEpD1CaDEJ/J8zzanx7hkbTtneoO1SGs436PpLbWVcUge+6APGLhzsuZPA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"cheerio": "1.0.0-rc.10",
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"css-url-parser": "^1.0.0",
|
||||
"debug": "^4.3.1",
|
||||
"fs-extra": "^10.0.0",
|
||||
"got": "^12.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize-url": "^7.0.2",
|
||||
"p-queue": "^7.1.0",
|
||||
"sanitize-filename": "^1.6.3",
|
||||
"srcset": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cheerio": {
|
||||
"version": "1.0.0-rc.10",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz",
|
||||
"integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"cheerio-select": "^1.5.0",
|
||||
"dom-serializer": "^1.3.2",
|
||||
"domhandler": "^4.2.0",
|
||||
"htmlparser2": "^6.1.0",
|
||||
"parse5": "^6.0.1",
|
||||
"parse5-htmlparser2-tree-adapter": "^6.0.1",
|
||||
"tslib": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"cheerio-select": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
|
||||
"integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"css-select": "^4.3.0",
|
||||
"css-what": "^6.0.1",
|
||||
"domelementtype": "^2.2.0",
|
||||
"domhandler": "^4.3.1",
|
||||
"domutils": "^2.8.0"
|
||||
}
|
||||
},
|
||||
"css-select": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
|
||||
"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"boolbase": "^1.0.0",
|
||||
"css-what": "^6.0.1",
|
||||
"domhandler": "^4.3.1",
|
||||
"domutils": "^2.8.0",
|
||||
"nth-check": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"dom-serializer": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"domhandler": "^4.2.0",
|
||||
"entities": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"domhandler": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
|
||||
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"domelementtype": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"domutils": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
|
||||
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"dom-serializer": "^1.0.1",
|
||||
"domelementtype": "^2.2.0",
|
||||
"domhandler": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"htmlparser2": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"domelementtype": "^2.0.1",
|
||||
"domhandler": "^4.0.0",
|
||||
"domutils": "^2.5.2",
|
||||
"entities": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-7.2.0.tgz",
|
||||
"integrity": "sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA==",
|
||||
"optional": true
|
||||
},
|
||||
"parse5": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
|
||||
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
|
||||
"optional": true
|
||||
},
|
||||
"parse5-htmlparser2-tree-adapter": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
|
||||
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"parse5": "^6.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
"@primer/react": "^35.2.2",
|
||||
"accept-language-parser": "^1.5.0",
|
||||
"ajv": "^8.11.0",
|
||||
"ajv-errors": "^3.0.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"bottleneck": "2.19.5",
|
||||
"cheerio": "^1.0.0-rc.11",
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
import { schema } from '../../../lib/frontmatter.js'
|
||||
|
||||
// Secret scanning entries have `versions` blocks that match `versions` frontmatter,
|
||||
// so we can import that part of the FM schema.
|
||||
const versionsProps = Object.assign({}, schema.properties.versions)
|
||||
|
||||
// Tweak the imported versions schema so it works with AJV.
|
||||
// *** TODO: We can drop the following once the frontmatter.js schema has been updated to work with AJV. ***
|
||||
const properties = {}
|
||||
Object.keys(versionsProps.properties).forEach((key) => {
|
||||
const value = Object.assign({}, versionsProps.properties[key])
|
||||
|
||||
// AJV supports errorMessage, not message.
|
||||
value.errorMessage = value.message
|
||||
delete value.message
|
||||
|
||||
// AJV doesn't support conform, so we'll add semver validation in the lint-secret-scanning-data test.
|
||||
if (value.conform) {
|
||||
value.format = 'semver'
|
||||
delete value.conform
|
||||
}
|
||||
properties[key] = value
|
||||
})
|
||||
|
||||
versionsProps.properties = properties
|
||||
delete versionsProps.required
|
||||
// *** End TODO ***
|
||||
|
||||
// The secret-scanning.json contains an array of objects that look like this:
|
||||
// {
|
||||
// "provider": "Azure",
|
||||
// "supportedSecret": "Azure SQL Connection String",
|
||||
// "secretType": "azure_sql_connection_string",
|
||||
// "versions": {
|
||||
// "fpt": "*",
|
||||
// "ghec": "*",
|
||||
// "ghes": "*",
|
||||
// "ghae": "<3.4"
|
||||
// },
|
||||
// "isPublic": true,
|
||||
// "isPrivateWithGhas": true,
|
||||
// "hasPushProtection": false
|
||||
// },
|
||||
|
||||
export default {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'object',
|
||||
additionalProperties: false,
|
||||
required: [
|
||||
'provider',
|
||||
'supportedSecret',
|
||||
// 'secretType', // TODO: Once the secretTypes are fully populated in the JSON, make this required.
|
||||
'versions',
|
||||
'isPublic',
|
||||
'isPrivateWithGhas',
|
||||
'hasPushProtection',
|
||||
],
|
||||
properties: {
|
||||
provider: {
|
||||
description: 'the name of the provider',
|
||||
type: 'string',
|
||||
},
|
||||
supportedSecret: {
|
||||
description: 'the name of the secret',
|
||||
type: 'string',
|
||||
},
|
||||
secretType: {
|
||||
description: 'the secret type',
|
||||
type: 'string',
|
||||
pattern: '[A-Za-z0-9_-]',
|
||||
},
|
||||
versions: versionsProps,
|
||||
isPublic: {
|
||||
description: 'whether the secret is publicly available',
|
||||
type: 'boolean',
|
||||
},
|
||||
isPrivateWithGhas: {
|
||||
description: 'whether the secret is available in GHAS',
|
||||
type: 'boolean',
|
||||
},
|
||||
hasPushProtection: {
|
||||
description: 'whether the secret has push protection',
|
||||
type: 'boolean',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
import fs from 'fs'
|
||||
import yaml from 'js-yaml'
|
||||
import { get } from 'lodash-es'
|
||||
import Ajv from 'ajv'
|
||||
import addErrors from 'ajv-errors'
|
||||
import semver from 'semver'
|
||||
import schema from '../helpers/schemas/secret-scanning-schema.js'
|
||||
const data = yaml.load(fs.readFileSync('data/secret-scanning.yml', 'utf8'))
|
||||
|
||||
const ajv = new Ajv({ allErrors: true, allowUnionTypes: true })
|
||||
addErrors(ajv)
|
||||
|
||||
// *** TODO: We can drop this override once the frontmatter schema has been updated to work with AJV. ***
|
||||
ajv.addFormat('semver', {
|
||||
validate: (x) => semver.validRange(x),
|
||||
})
|
||||
// *** End TODO ***
|
||||
|
||||
const validate = ajv.compile(schema)
|
||||
|
||||
test('make sure secret scanning data matches the schema', () => {
|
||||
validate(data)
|
||||
|
||||
const errors = (validate.errors || []).map((errorObj) => {
|
||||
// We have to use AJV's instancePath, which is an index number, to find out which entries are invalid.
|
||||
const split = errorObj.instancePath.split('/')
|
||||
split.shift()
|
||||
const index = split.shift()
|
||||
const entry = data[index]
|
||||
const path = split.length ? split.join('.') : null
|
||||
return path
|
||||
? `The entry with provider '${entry.provider}' (at '${path}: ${get(entry, path)}') ${
|
||||
errorObj.message
|
||||
}`
|
||||
: `The entry with provider '${entry.provider}' ${errorObj.message}`
|
||||
})
|
||||
|
||||
expect(errors.length, errors.join('\n ')).toBe(0)
|
||||
})
|
Загрузка…
Ссылка в новой задаче