diff --git a/.github/workflows/readability.yml b/.github/workflows/readability.yml deleted file mode 100644 index 13625f99667d..000000000000 --- a/.github/workflows/readability.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Readability report - -# **What it does**: Analyzes readability of rendered content for changed Markdown files in pull requests -# **Why we have it**: We want to track and improve the readability of our documentation over time -# **Who does it impact**: Contributors and content writers - -on: - # pull_request: - # paths: - # - 'content/**/*.md' - # - 'data/reusables/**/*.md' - # The pull_request trigger is currently disabled for testing purposes. - # Re-enable this trigger when ready to run readability analysis automatically on PRs. - workflow_dispatch: - inputs: - pull_request_number: - description: 'Pull request number to analyze (for testing)' - required: true - type: number - -permissions: - contents: read - pull-requests: write - -jobs: - readability-analysis: - if: github.repository == 'github/docs-internal' - runs-on: ubuntu-latest - steps: - - name: Check out repo - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - # Fetch 2 commits so tj-actions/changed-files can diff without extra API calls - fetch-depth: 2 - - name: Checkout PR for manual dispatch - if: ${{ github.event_name == 'workflow_dispatch' }} - run: | - gh pr checkout ${{ inputs.pull_request_number }} - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - uses: ./.github/actions/node-npm-setup - - - uses: ./.github/actions/get-docs-early-access - if: ${{ github.repository == 'github/docs-internal' }} - with: - token: ${{ secrets.DOCS_BOT_PAT_BASE }} - - - name: Get changed content files - id: changed_files - uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 - with: - files: 'content/**/*.md' - - - name: Disable Next.js telemetry - run: npx next telemetry disable - - - name: Start server in the background - if: steps.changed_files.outputs.any_modified == 'true' - run: npm start > /tmp/stdout.log 2> /tmp/stderr.log & - - - name: Run readability analysis - if: steps.changed_files.outputs.any_modified == 'true' - env: - CHANGED_FILES: ${{ steps.changed_files.outputs.all_modified_files }} - run: npm run readability-report - - - name: Find existing readability comment - if: steps.changed_files.outputs.any_modified == 'true' - uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad - id: findComment - with: - issue-number: ${{ github.event_name == 'workflow_dispatch' && inputs.pull_request_number || github.event.number }} - comment-author: 'github-actions[bot]' - body-includes: '' - - - name: Read readability report - if: steps.changed_files.outputs.any_modified == 'true' - id: read_report - run: | - if [ -f "readability-report.md" ]; then - { - echo 'report<> "$GITHUB_OUTPUT" - fi - - - name: Create or update readability comment - if: steps.changed_files.outputs.any_modified == 'true' && steps.read_report.outputs.report - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 - with: - comment-id: ${{ steps.findComment.outputs.comment-id }} - issue-number: ${{ github.event_name == 'workflow_dispatch' && inputs.pull_request_number || github.event.number }} - body: | - - ${{ steps.read_report.outputs.report }} - edit-mode: replace - - - if: ${{ failure() }} - name: Debug server outputs on errors - run: | - echo "____STDOUT____" - cat /tmp/stdout.log || echo "No stdout log found" - echo "____STDERR____" - cat /tmp/stderr.log || echo "No stderr log found" diff --git a/content/admin/data-residency/github-copilot-with-data-residency.md b/content/admin/data-residency/github-copilot-with-data-residency.md index 69ba523b5429..cd8001e1ebac 100644 --- a/content/admin/data-residency/github-copilot-with-data-residency.md +++ b/content/admin/data-residency/github-copilot-with-data-residency.md @@ -64,6 +64,7 @@ The models available for {% data variables.product.prodname_copilot_short %} var * {% data variables.copilot.copilot_gpt_56_luna %} * {% data variables.copilot.copilot_gpt_56_sol %} * {% data variables.copilot.copilot_gpt_56_terra %} +* {% data variables.copilot.copilot_gpt_6_astra %} * {% data variables.copilot.copilot_claude_haiku_45 %} * {% data variables.copilot.copilot_claude_opus_47 %} * {% data variables.copilot.copilot_claude_opus_48 %} diff --git a/content/copilot/concepts/context/content-exclusion.md b/content/copilot/concepts/context/content-exclusion.md index 8f5af0b71a67..d253a53981d8 100644 --- a/content/copilot/concepts/context/content-exclusion.md +++ b/content/copilot/concepts/context/content-exclusion.md @@ -35,7 +35,7 @@ The {% data variables.copilot.copilot_business_short %} and {% data variables.co | Tool | Inline suggestions support | Chat and agent support | |-------------------------------------------------|:---------------------------------------------:|:----------------------------------------------:| | {% data variables.product.prodname_vs %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | -| {% data variables.product.prodname_vscode %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | +| {% data variables.product.prodname_vscode %} | {% octicon "check" aria-label="Supported" %} | Chat: {% octicon "check" aria-label="Supported" %}
Edit: {% octicon "x" aria-label="Not supported" %}
Agent: {% octicon "x" aria-label="Not supported" %} | | JetBrains IDEs | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | | Vim/Neovim | {% octicon "check" aria-label="Supported" %} | Not applicable | | Xcode | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | diff --git a/content/copilot/concepts/models/auto-model-selection.md b/content/copilot/concepts/models/auto-model-selection.md index 71f8370c66e3..296327d92883 100644 --- a/content/copilot/concepts/models/auto-model-selection.md +++ b/content/copilot/concepts/models/auto-model-selection.md @@ -32,6 +32,23 @@ Benefits of using {% data variables.copilot.copilot_auto_model_selection_short % * Language invariance: Routing decisions depend on what you are trying to do, not what language you're asking in. * Improved cost efficiency due to intelligent task routing. +#### Auto tier options + +When using auto with task optimization, there are three tiers available. Use these tiers to adjust how {% data variables.copilot.copilot_auto_model_selection_short %} preferentially routes models for each prompt. + +| Tier | Priority | Typical use | +| --- | --- | --- | +| **Efficiency** | Cost | Well suited to fast, straightforward tasks. | +| **Balance** | Balances cost, quality and latency | A good fit for everyday work. | +| **Intelligence** | Quality | Built for complex tasks. | + +With tiers, {% data variables.copilot.copilot_auto_model_selection_short %} still considers the prompt for each task. The same models remain available in each tier, but tiered routing changes how preferred models are selected for each task. Examples for each tier: +* **Efficiency**: All prompts are routed to the most cost-efficient and appropriately capable model for the task. +* **Balance**: For each prompt, the model is selected by considering cost, quality, and latency, to provide cost effective and efficient performance appropriate to the complexity of each prompt. +* **Intelligence**: Prompts are evaluated for which model would provide the highest quality response. A simple prompt could still be routed to a smaller model, while a complex prompt is routed to the most capable model for that task. + +Usage is still charged based on the model auto selects, regardless of tier, alongside the 10% discount for users on paid plans. See [Discount for auto model selection](#discount-for-using-auto-model-selection). + ### Auto optimized for model reliability and availability Experience less rate limiting by letting {% data variables.copilot.copilot_auto_model_selection_short %} choose the best available model on your behalf. @@ -63,8 +80,10 @@ When you select **Auto**, {% data variables.copilot.copilot_auto_model_selection {% data variables.copilot.copilot_auto_model_selection_short_cap_a %}, with task optimization, is generally available in these {% data variables.product.prodname_copilot_short %} products: * {% data variables.copilot.copilot_chat_short %}, on the {% data variables.product.github %} website and supported IDEs * {% data variables.copilot.copilot_cli_short %} -* {% data variables.copilot.copilot_cloud_agent %} * {% data variables.copilot.github_copilot_app %} +* {% data variables.copilot.copilot_cloud_agent %} + +> [!NOTE] Auto tiers are only available on {% data variables.product.prodname_vscode_shortname %}, {% data variables.copilot.copilot_cli_short %}, and {% data variables.copilot.github_copilot_app %} . > [!TIP] > You can see which model was used for each {% data variables.product.prodname_copilot_short %} response. diff --git a/data/tables/copilot/auto-model-selection.yml b/data/tables/copilot/auto-model-selection.yml index 21ddb9b2488d..fc2e8393186f 100644 --- a/data/tables/copilot/auto-model-selection.yml +++ b/data/tables/copilot/auto-model-selection.yml @@ -19,11 +19,6 @@ # - app: Availability for GitHub Copilot app. # OpenAI -- name: GPT-5 mini - cloud_agent: false - chat: true - cli: true - app: true - name: GPT-5.3-Codex cloud_agent: true @@ -33,39 +28,33 @@ - name: GPT-5.4 cloud_agent: true - chat: true - cli: true - app: true - -- name: GPT-5.4 mini - cloud_agent: false - chat: true - cli: true - app: true + chat: false + cli: false + app: false - name: GPT-5.5 cloud_agent: false chat: true cli: true - app: false + app: true - name: GPT-5.6 Luna cloud_agent: false chat: true cli: true - app: false + app: true - name: GPT-5.6 Sol cloud_agent: false chat: true cli: true - app: false + app: true - name: GPT-5.6 Terra cloud_agent: false chat: true cli: true - app: false + app: true # Anthropic - name: Claude Haiku 4.5 @@ -84,19 +73,19 @@ cloud_agent: false chat: true cli: true - app: false + app: true - name: Claude Sonnet 4.6 cloud_agent: true - chat: true - cli: true - app: true + chat: false + cli: false + app: false - name: Claude Sonnet 5 cloud_agent: false chat: true cli: true - app: false + app: true # Google - name: Gemini 3.6 Flash diff --git a/package.json b/package.json index ec28fe159b59..98c20df90fbd 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "purge-fastly": "tsx src/workflows/purge-fastly.ts", "purge-fastly-changed-content": "tsx src/workflows/purge-fastly-changed-content.ts", "wait-for-build": "tsx src/workflows/wait-for-build.ts", - "readability-report": "tsx src/workflows/experimental/readability-report.ts", "ready-for-docs-review": "tsx src/workflows/ready-for-docs-review.ts", "release-banner": "tsx src/ghes-releases/scripts/release-banner.ts", "repo-sync": "./src/workflows/local-repo-sync.sh", diff --git a/src/secret-scanning/data/pattern-docs/ghes-3.23/public-docs.yml b/src/secret-scanning/data/pattern-docs/ghes-3.23/public-docs.yml new file mode 100644 index 000000000000..f040b29c87d6 --- /dev/null +++ b/src/secret-scanning/data/pattern-docs/ghes-3.23/public-docs.yml @@ -0,0 +1,5226 @@ +- provider: 1Password + supportedSecret: 1Password Service Account Token + secretType: 1password_service_account_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adafruit + supportedSecret: Adafruit IO Key + secretType: adafruit_io_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe Client Secret + secretType: adobe_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe Device Token + secretType: adobe_device_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe PAC Token + secretType: adobe_pac_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe Refresh Token + secretType: adobe_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe Service Token + secretType: adobe_service_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Adobe + supportedSecret: Adobe Short-Lived Access Token + secretType: adobe_short_lived_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Aikido + supportedSecret: Aikido API Client Secret + secretType: aikido_api_client_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Aikido + supportedSecret: Aikido CI Scanning Token + secretType: aikido_ci_scanning_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Airtable + supportedSecret: Airtable API Key + secretType: airtable_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Airtable + supportedSecret: Airtable Personal Access Token + secretType: airtable_personal_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Aiven + supportedSecret: Aiven Auth Token + secretType: aiven_auth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Aiven + supportedSecret: Aiven Service Password + secretType: aiven_service_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Alibaba + supportedSecret: Alibaba Cloud AccessKey ID + secretType: alibaba_cloud_access_key_id,
alibaba_cloud_access_key_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Amazon AWS + supportedSecret: Amazon AWS Access Key ID + secretType: aws_access_key_id,
aws_secret_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Amazon AWS + supportedSecret: Amazon AWS API Key ID + secretType: aws_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Amazon AWS + supportedSecret: Amazon AWS Session Token + secretType: >- + aws_secret_access_key,
aws_session_token, +
aws_temporary_access_key_id + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Anthropic + supportedSecret: Anthropic Admin API Key + secretType: anthropic_admin_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Anthropic + supportedSecret: Anthropic API Key + secretType: anthropic_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: true + isduplicate: true +- provider: Anthropic + supportedSecret: Anthropic Session ID + secretType: anthropic_session_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: APIclub + supportedSecret: APIclub API Key + secretType: apiclub_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify Actor Run API Token + secretType: apify_actor_run_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify Actor Run Proxy Password + secretType: apify_actor_run_proxy_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify API Token + secretType: apify_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify Integration API Token + secretType: apify_integration_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify Proxy Password + secretType: apify_proxy_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify UI Token + secretType: apify_ui_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Apify + supportedSecret: Apify Webhook Dispatch API Token + secretType: apify_webhook_dispatch_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Asaas + supportedSecret: Asaas API Token + secretType: asaas_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Asana + supportedSecret: Asana Legacy Format Personal Access Token + secretType: asana_legacy_format_personal_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Asana + supportedSecret: Asana Personal Access Token + secretType: asana_personal_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Atlassian + supportedSecret: Atlassian API Token + secretType: atlassian_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Atlassian + supportedSecret: Atlassian JSON Web Token + secretType: atlassian_jwt + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Authress + supportedSecret: Authress Service Client Access Key + secretType: authress_service_client_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Active Directory Application Secret + secretType: azure_active_directory_application_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure AI Services Key + secretType: azure_ai_services_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Anomaly Detector EE Key + secretType: azure_anomaly_detector_ee_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Anomaly Detector Key + secretType: azure_anomaly_detector_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Apim Direct Management Key + secretType: azure_apim_direct_management_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Apim Gateway Key + secretType: azure_apim_gateway_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Apim Repository Key + secretType: azure_apim_repository_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Apim Subscription Key + secretType: azure_apim_subscription_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure App Configuration Connection String + secretType: azure_app_configuration_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure App Configuration Key + secretType: azure_app_configuration_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Batch Key Identifiable + secretType: azure_batch_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure Cache for Redis Access Key + secretType: azure_cache_for_redis_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Azure + supportedSecret: Azure Cognitive Services Key + secretType: azure_cognitive_services_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Communication Services Connection String + secretType: azure_communication_services_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Communication Services Key + secretType: azure_communication_services_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Computer Vision Key + secretType: azure_computer_vision_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Registry Key Identifiable + secretType: azure_container_registry_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Content Moderator Key + secretType: azure_content_moderator_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Content Safety Key + secretType: azure_content_safety_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Cosmosdb Key Identifiable + secretType: azure_cosmosdb_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Azure + supportedSecret: Azure Custom Vision Prediction Key + secretType: azure_custom_vision_prediction_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Custom Vision Training Key + secretType: azure_custom_vision_training_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure DevOps Personal Access Token + secretType: azure_devops_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure Event Grid Key Identifiable + secretType: azure_event_grid_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure Event Hub Key Identifiable + secretType: azure_event_hub_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Face Key + secretType: azure_face_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Fluid Relay Key + secretType: azure_fluid_relay_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Form Recognizer Key + secretType: azure_form_recognizer_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Function Key + secretType: azure_function_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Azure + supportedSecret: Azure Health Decision Support Key + secretType: azure_health_decision_support_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Health Insights Key + secretType: azure_health_insights_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Immersive Reader Key + secretType: azure_immersive_reader_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Internal All In One Key + secretType: azure_internal_all_in_one_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Device Connection String + secretType: azure_iot_device_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Device Key + secretType: azure_iot_device_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Device Provisioning Key + secretType: azure_iot_device_provisioning_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Hub Connection String + secretType: azure_iot_hub_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Hub Key + secretType: azure_iot_hub_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure IoT Provisioning Connection String + secretType: azure_iot_provisioning_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Knowledge Key + secretType: azure_knowledge_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Logic Apps URL + secretType: azure_logic_apps_url + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure Luis Authoring Key + secretType: azure_luis_authoring_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Luis Key + secretType: azure_luis_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Microsoft Azure Service Management Certificate + secretType: azure_management_certificate + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Maps Key + secretType: azure_maps_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Metrics Advisor Key + secretType: azure_metrics_advisor_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Mixed Reality Key + secretType: azure_mixed_reality_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure ML Inference Key + secretType: azure_ml_inference_identifiable_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure ML Internal Service Principal Key + secretType: azure_ml_internal_service_principal_identifiable_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure ML Studio (classic) Web Service Key + secretType: azure_ml_web_service_classic_identifiable_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure OpenAI Key + secretType: azure_openai_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Azure + supportedSecret: Azure Personalizer Key + secretType: azure_personalizer_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure QnA Maker Key + secretType: azure_qna_maker_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure QnA Maker V2 Key + secretType: azure_qna_maker_v2_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Quantum Key + secretType: azure_quantum_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Relay Key Identifiable + secretType: azure_relay_key_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure SAS Token + secretType: azure_sas_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Search Admin Key + secretType: azure_search_admin_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Search Query Key + secretType: azure_search_query_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Service Bus Key Identifiable + secretType: azure_service_bus_identifiable + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure SignalR Connection String + secretType: azure_signalr_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure SignalR Key + secretType: azure_signalr_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Azure Speech Services Key + secretType: azure_speech_services_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Speech Translation Key + secretType: azure_speech_translation_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure SQL Internal Default CloudSA Key + secretType: azure_sql_internal_default_cloudsa_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure SQL password + secretType: azure_sql_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Storage Account Access Key + secretType: azure_storage_account_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Azure + supportedSecret: Azure Text Analytics Key + secretType: azure_text_analytics_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Text Translation Key + secretType: azure_text_translation_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Video Intelligence Key + secretType: azure_video_intelligence_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Microsoft Azure Web App Bot Key + secretType: azure_web_app_bot_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Web Pub Sub Connection String + secretType: azure_web_pub_sub_connection_string + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Azure + supportedSecret: Azure Web Pub Sub Key + secretType: azure_web_pub_sub_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Azure + supportedSecret: Microsoft Azure Entra ID Token + secretType: microsoft_azure_entra_id_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Baidu + supportedSecret: Baidu AI API Key + secretType: baiduai_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Baidu + supportedSecret: Baidu Cloud API Access Key + secretType: baiducloud_api_accesskey + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Beamer + supportedSecret: Beamer API Key + secretType: beamer_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Bitbucket + supportedSecret: Bitbucket Server Personal Access Token + secretType: bitbucket_server_personal_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Bitrise + supportedSecret: Bitrise Personal Access Token + secretType: bitrise_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Bitrise + supportedSecret: Bitrise Workspace API Token + secretType: bitrise_workspace_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Block Protocol + supportedSecret: Block Protocol API Key + secretType: block_protocol_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Brevo + supportedSecret: Sendinblue API Key + secretType: sendinblue_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: true + isduplicate: true +- provider: Brevo + supportedSecret: Sendinblue SMTP Key + secretType: sendinblue_smtp_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Agent Access Token + secretType: buildkite_agent_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Agent Job Token + secretType: buildkite_agent_job_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Agent Registration Token + secretType: buildkite_agent_registration_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Cluster Queue Token + secretType: buildkite_cluster_queue_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Cluster Token + secretType: buildkite_cluster_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Packages Registry Token + secretType: buildkite_packages_registry_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Packages Temporary Token + secretType: buildkite_packages_temporary_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Portal Secret + secretType: buildkite_portal_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite Portal Token + secretType: buildkite_portal_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Buildkite + supportedSecret: Buildkite User Access Token + secretType: buildkite_user_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Canadian Digital Service + supportedSecret: Canadian Digital Service Notify API Key + secretType: cds_canada_notify_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Canva + supportedSecret: Canva App Secret + secretType: canva_app_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Canva + supportedSecret: Canva Connect API Secret + secretType: canva_connect_api_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Canva + supportedSecret: Canva Secret + secretType: canva_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cashfree + supportedSecret: Cashfree API Key + secretType: cashfree_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cfx.re + supportedSecret: Cfx.re Server Key + secretType: cfxre_server_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Checkout.com + supportedSecret: Checkout.com Production Secret Key + secretType: checkout_production_secret_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Checkout.com + supportedSecret: Checkout.com Test Secret Key + secretType: checkout_test_secret_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Chief Tools + supportedSecret: Chief Tools Token + secretType: chief_tools_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: CircleCI + supportedSecret: CircleCI Bot API Token + secretType: circleci_bot_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: CircleCI + supportedSecret: CircleCI Personal Access Token + secretType: circleci_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: CircleCI + supportedSecret: CircleCI Project Access Token + secretType: circleci_project_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: CircleCI + supportedSecret: CircleCI Release API Token + secretType: circleci_release_integration_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Clojars + supportedSecret: Clojars Deploy Token + secretType: clojars_deploy_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cloudflare + supportedSecret: Cloudflare Account API Token + secretType: cloudflare_account_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cloudflare + supportedSecret: Cloudflare Global User API Key + secretType: cloudflare_global_user_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cloudflare + supportedSecret: Cloudflare User API Token + secretType: cloudflare_user_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cloudsmith + supportedSecret: Cloudsmith API Key + secretType: cloudsmith_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cockroach Labs + supportedSecret: CockroachDB Cloud API Key + secretType: ccdb_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Cohere + supportedSecret: Cohere API Key + secretType: cohere_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Contentful + supportedSecret: Contentful Personal Access Token + secretType: contentful_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Contentful + supportedSecret: Contentful Web Token + secretType: contentful_web_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Contributed Systems + supportedSecret: Contributed Systems Credentials + secretType: contributed_systems_credentials + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Coveo + supportedSecret: Coveo Access Token + secretType: coveo_access_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Coveo + supportedSecret: Coveo API Key + secretType: coveo_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: crates.io + supportedSecret: Crates.io API Token + secretType: cratesio_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Databento + supportedSecret: Databento API Key + secretType: databento_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks API Token + secretType: databricks_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Databricks + supportedSecret: Databricks Account Session Token + secretType: databricks_account_session_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks Federated Account Session Token + secretType: databricks_federated_account_session_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks OAuth Code + secretType: databricks_oauth_code + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks OAuth Refresh Token + secretType: databricks_oauth_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks OAuth Secret Token + secretType: databricks_oauth_secret_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks OAuth Single Use Refresh Token Child + secretType: databricks_oauth_single_use_refresh_token_child + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks OAuth Single Use Refresh Token Parent + secretType: databricks_oauth_single_use_refresh_token_parent + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks Scoped API Token + secretType: databricks_scoped_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks Scoped Internal Token + secretType: databricks_scoped_internal_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks Token + secretType: databricks_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Databricks + supportedSecret: Databricks Workspace Session Token + secretType: databricks_workspace_session_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Datadog + supportedSecret: Datadog API Key + secretType: datadog_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Datadog + supportedSecret: Datadog Application Key + secretType: datadog_app_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Datadog + supportedSecret: Datadog Personal Access Token + secretType: datadog_pat + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Datadog + supportedSecret: Datadog RCM + secretType: datadog_rcm + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Datadog + supportedSecret: Datadog Service Account Token + secretType: datadog_sat + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Datastax + supportedSecret: Datastax AstraCS Tokens + secretType: datastax_astracs_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DeepSeek + supportedSecret: DeepSeek API Key + secretType: deepseek_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Defined Networking + supportedSecret: Defined Networking Managed Nebula API Key + secretType: defined_networking_nebula_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DevCycle + supportedSecret: DevCycle Client API Key + secretType: devcycle_client_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DevCycle + supportedSecret: DevCycle Mobile API Key + secretType: devcycle_mobile_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DevCycle + supportedSecret: DevCycle Server API Key + secretType: devcycle_server_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DigitalOcean + supportedSecret: DigitalOcean OAuth Token + secretType: digitalocean_oauth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: DigitalOcean + supportedSecret: DigitalOcean Personal Access Token + secretType: digitalocean_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: DigitalOcean + supportedSecret: DigitalOcean Refresh Token + secretType: digitalocean_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: DigitalOcean + supportedSecret: DigitalOcean System Token + secretType: digitalocean_system_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Discord + supportedSecret: Discord Bot Token + secretType: discord_bot_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Docker + supportedSecret: Docker Organization Access Token + secretType: docker_organization_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Docker + supportedSecret: Docker Personal Access Token + secretType: docker_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Docker + supportedSecret: Docker Swarm Join Token + secretType: docker_swarm_join_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Docker + supportedSecret: Docker Swarm Unlock Key + secretType: docker_swarm_unlock_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler Audit Token + secretType: doppler_audit_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler CLI Token + secretType: doppler_cli_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler Personal Token + secretType: doppler_personal_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler SCIM Token + secretType: doppler_scim_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler Service Account Token + secretType: doppler_service_account_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Doppler + supportedSecret: Doppler Service Token + secretType: doppler_service_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Dropbox + supportedSecret: Dropbox Access Token + secretType: dropbox_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Dropbox + supportedSecret: Dropbox Short-Lived Access Token + secretType: dropbox_short_lived_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Duffel + supportedSecret: Duffel Live Access Token + secretType: duffel_live_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Duffel + supportedSecret: Duffel Test Access Token + secretType: duffel_test_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Dynatrace + supportedSecret: Dynatrace API Token + secretType: dynatrace_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Dynatrace + supportedSecret: Dynatrace Internal Token + secretType: dynatrace_internal_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: EasyPost + supportedSecret: EasyPost Production API Key + secretType: easypost_production_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: EasyPost + supportedSecret: EasyPost Test API Key + secretType: easypost_test_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: eBay + supportedSecret: eBay Production Client ID (App ID) + secretType: ebay_production_client_id,
ebay_production_client_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: eBay + supportedSecret: eBay Sandbox Client ID (App ID) + secretType: ebay_sandbox_client_id,
ebay_sandbox_client_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Elastic + supportedSecret: Elastic Cloud API Key + secretType: elastic_cloud_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Elastic + supportedSecret: Elastic Stack API Key + secretType: elastic_stack_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Facebook + supportedSecret: Facebook Access Token + secretType: facebook_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Fastly + supportedSecret: Fastly API Token + secretType: fastly_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Fieldguide + supportedSecret: Fieldguide API Token + secretType: fieldguide_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Figma + supportedSecret: Figma Personal Access Token + secretType: figma_pat + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Figma + supportedSecret: Figma SCIM API Token + secretType: figma_scim_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Finicity + supportedSecret: Finicity App Key + secretType: finicity_app_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Firebase + supportedSecret: Firebase Cloud Messaging Server Key + secretType: firebase_cloud_messaging_server_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Flickr + supportedSecret: Flickr API Key + secretType: flickr_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Flutterwave + supportedSecret: Flutterwave Live API Secret Key + secretType: flutterwave_live_api_secret_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Flutterwave + supportedSecret: Flutterwave Test API Secret Key + secretType: flutterwave_test_api_secret_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Frame.io + supportedSecret: Frame.io Developer Token + secretType: frameio_developer_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Frame.io + supportedSecret: Frame.io JSON Web Token + secretType: frameio_jwt + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: FullStory + supportedSecret: FullStory API Key + secretType: fullstory_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: GitHub + supportedSecret: GitHub App Installation Access Token + secretType: github_app_installation_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: true + base64Supported: true + isduplicate: true +- provider: GitHub + supportedSecret: GitHub OAuth Access Token + secretType: github_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: true + base64Supported: true + isduplicate: true +- provider: GitHub + supportedSecret: GitHub Personal Access Token + secretType: github_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: true + base64Supported: true + isduplicate: true +- provider: GitHub + supportedSecret: GitHub Refresh Token + secretType: github_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: true + base64Supported: true + isduplicate: true +- provider: GitHub + supportedSecret: GitHub SSH Private Key + secretType: github_ssh_private_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: true + base64Supported: false + isduplicate: false +- provider: GitHub + supportedSecret: GitHub Test Token + secretType: github_test_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Access Token + secretType: gitlab_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: true + isduplicate: true +- provider: GitLab + supportedSecret: GitLab CI/CD Job Token + secretType: gitlab_ci_build_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Deploy Token + secretType: gitlab_deploy_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feature Flag Client Token + secretType: gitlab_feature_flag_client_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Feed Token + secretType: gitlab_feed_token_v2 + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Incoming Mail Token + secretType: gitlab_incoming_email_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Agent for Kubernetes Token + secretType: gitlab_kubernetes_agent_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab OAuth Application Secret + secretType: gitlab_oauth_app_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Pipeline Trigger Token + secretType: gitlab_pipeline_trigger_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Authentication Token + secretType: gitlab_runner_auth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab Runner Registration Token + secretType: gitlab_runner_registration_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GitLab + supportedSecret: GitLab SCIM Token + secretType: gitlab_scim_oauth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GoCardless + supportedSecret: GoCardless Live Access Token + secretType: gocardless_live_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: GoCardless + supportedSecret: GoCardless Sandbox Access Token + secretType: gocardless_sandbox_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google API Key + secretType: google_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google Cloud Service Account Credentials + secretType: google_cloud_service_account_credentials + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google Cloud Storage Service Account Access Key ID + secretType: >- + google_cloud_storage_access_key_secret, +
google_cloud_storage_service_account_access_key_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google Cloud Storage User Access Key ID + secretType: >- + google_cloud_storage_access_key_secret, +
google_cloud_storage_user_access_key_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: GCP API Key Bound to a Service Account + secretType: google_gcp_api_key_bound_service_account + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google Gemini API Key + secretType: google_gemini_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google OAuth Access Token + secretType: google_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Google + supportedSecret: Google OAuth Client ID + secretType: google_oauth_client_id,
google_oauth_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Google + supportedSecret: Google OAuth Refresh Token + secretType: google_oauth_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Grafana + supportedSecret: Grafana Cloud API Key + secretType: grafana_cloud_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Grafana + supportedSecret: Grafana Cloud API Token + secretType: grafana_cloud_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Grafana + supportedSecret: Grafana Project API Key + secretType: grafana_project_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Grafana + supportedSecret: Grafana Project Service Account Token + secretType: grafana_project_service_account_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Groq + supportedSecret: Groq API Key + secretType: groq_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: GuardSquare + supportedSecret: GuardSquare AppSweep API Key + secretType: guardsquare_appsweep_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GuardSquare + supportedSecret: GuardSquare CLI Access Token + secretType: guardsquare_cli_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: GuardSquare + supportedSecret: GuardSquare Maven Token + secretType: guardsquare_maven_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Hack Club + supportedSecret: Hack Club AI Key + secretType: hackclub_ai_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: HashiCorp + supportedSecret: HashiCorp Vault Batch Token + secretType: hashicorp_vault_batch_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: HashiCorp + supportedSecret: HashiCorp Vault Root Service Token + secretType: hashicorp_vault_root_service_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: HashiCorp + supportedSecret: HashiCorp Vault Service Token + secretType: hashicorp_vault_service_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: HashiCorp + supportedSecret: Terraform Cloud / Enterprise API Token + secretType: terraform_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: hCaptcha + supportedSecret: hCaptcha Siteverify Secret + secretType: hcaptcha_siteverify_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Heroku + supportedSecret: Heroku Platform API OAuth2 Token + secretType: heroku_platform_api_oauth2_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Heroku + supportedSecret: Heroku Postgres Connection URL + secretType: heroku_postgres_connection_url + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Highnote + supportedSecret: Highnote RK Live Key + secretType: highnote_rk_live_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Highnote + supportedSecret: Highnote RK Test Key + secretType: highnote_rk_test_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Highnote + supportedSecret: Highnote SK Live Key + secretType: highnote_sk_live_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Highnote + supportedSecret: Highnote SK Test Key + secretType: highnote_sk_test_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: HOP + supportedSecret: HOP Bearer + secretType: hop_bearer + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: HOP + supportedSecret: HOP PAT + secretType: hop_pat + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: HOP + supportedSecret: HOP PTK + secretType: hop_ptk + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Hubspot + supportedSecret: Hubspot API Key + secretType: hubspot_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Hubspot + supportedSecret: Hubspot Personal Access Key + secretType: hubspot_personal_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Hubspot + supportedSecret: Hubspot Private Apps User Token + secretType: hubspot_private_apps_user_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Hubspot + supportedSecret: Hubspot SMTP Credential + secretType: hubspot_smtp_credential + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Hugging Face + supportedSecret: Hugging Face Organization API Token + secretType: hf_org_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Hugging Face + supportedSecret: Hugging Face User Access Token + secretType: hf_user_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: true + isduplicate: true +- provider: IBM + supportedSecret: IBM Cloud IAM Key + secretType: ibm_cloud_iam_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Intercom + supportedSecret: Intercom Access Token + secretType: intercom_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Ionic + supportedSecret: Ionic Personal Access Token + secretType: ionic_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Ionic + supportedSecret: Ionic Refresh Token + secretType: ionic_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Iterative + supportedSecret: DVC Studio Access Token + secretType: iterative_dvc_studio_access_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: JFrog + supportedSecret: JFrog Platform Access Token + secretType: jfrog_platform_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: JFrog + supportedSecret: JFrog Platform API Key + secretType: jfrog_platform_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: JFrog + supportedSecret: JFrog Platform Reference Token + secretType: jfrog_platform_reference_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Langchain + supportedSecret: LangSmith Personal Access Token + secretType: langchain_api_personal_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Langchain + supportedSecret: LangSmith Service Key + secretType: langchain_api_server_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Langchain + supportedSecret: LangSmith License Key + secretType: langsmith_license_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Langchain + supportedSecret: LangSmith SCIM Bearer Token + secretType: langsmith_scim_bearer_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lark + supportedSecret: Lark APaaS Client Secret + secretType: lark_apaas_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lark + supportedSecret: Lark Application Secret + secretType: lark_app_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lark + supportedSecret: Lark MCP Grant Token + secretType: lark_mcp_grant_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lark + supportedSecret: Lark Meego Plugin Secret + secretType: lark_meego_plugin_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lark + supportedSecret: Lark User Session + secretType: lark_user_session + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: LaunchDarkly + supportedSecret: LaunchDarkly API Token + secretType: launchdarkly_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lichess + supportedSecret: Lichess OAuth Access Token + secretType: lichess_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lichess + supportedSecret: Lichess Personal Access Token + secretType: lichess_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lightspeed + supportedSecret: Lightspeed Personal Access Token + secretType: lightspeed_xs_pat + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Limbar + supportedSecret: Limbar Token + secretType: limbar_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Linear + supportedSecret: Linear API Key + secretType: linear_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Linear + supportedSecret: Linear OAuth Access Token + secretType: linear_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: LinkedIn + supportedSecret: LinkedIn Client Secret + secretType: linkedin_client_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lob + supportedSecret: Lob Live API Key + secretType: lob_live_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lob + supportedSecret: Lob Test API Key + secretType: lob_test_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Localstack + supportedSecret: Localstack API Key + secretType: localstack_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: LogicMonitor + supportedSecret: LogicMonitor Bearer Token + secretType: logicmonitor_bearer_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: LogicMonitor + supportedSecret: LogicMonitor LMv1 Access Key + secretType: logicmonitor_lmv1_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Login with Amazon + supportedSecret: Login with Amazon OAuth Client ID + secretType: amazon_oauth_client_id,
amazon_oauth_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Lovable Labs + supportedSecret: Lovable API Key + secretType: lovable_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mailchimp + supportedSecret: Mailchimp API Key + secretType: mailchimp_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Mailchimp + supportedSecret: Mandrill API Key + secretType: mandrill_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mailersend + supportedSecret: Mailersend API Token + secretType: mailersend_api_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mailersend + supportedSecret: Mailersend SMTP Password + secretType: mailersend_smtp_password + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mailersend + supportedSecret: Mailersend SMTP Username + secretType: mailersend_smtp_username + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mailgun + supportedSecret: Mailgun API Key + secretType: mailgun_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Mailgun + supportedSecret: Mailgun SMTP Credential + secretType: mailgun_smtp_credential + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mapbox + supportedSecret: Mapbox Secret Access Token + secretType: mapbox_secret_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: MaxMind + supportedSecret: MaxMind License Key + secretType: maxmind_license_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Meraki + supportedSecret: Meraki Dashboard API Key + secretType: meraki_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mercury + supportedSecret: Mercury Non-Production API Token + secretType: mercury_non_production_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mercury + supportedSecret: Mercury Production API Token + secretType: mercury_production_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mergify + supportedSecret: Mergify Application Key + secretType: mergify_application_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: MessageBird + supportedSecret: MessageBird API Key + secretType: messagebird_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Microsoft + supportedSecret: Power Automate Webhook SAS + secretType: power_automate_webhook_sas + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Midtrans + supportedSecret: Midtrans Production Server Key + secretType: midtrans_production_server_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Midtrans + supportedSecret: Midtrans Sandbox Server Key + secretType: midtrans_sandbox_server_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Mistral AI + supportedSecret: Mistral AI API Key + secretType: mistral_ai_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: MongoDB + supportedSecret: MongoDB Atlas Database URI with credentials + secretType: mongodb_atlas_db_uri_with_credentials + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: MongoDB + supportedSecret: MongoDB Atlas Service Account Secret + secretType: mongodb_atlas_service_account_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Gov Access Key ID + secretType: navercloud_gov_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Gov Secret Key + secretType: navercloud_gov_access_key_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Gov Secure Token Service + secretType: navercloud_gov_sts + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Gov Secure Token Service Secret + secretType: navercloud_gov_sts_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Access Key ID + secretType: navercloud_pub_access_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Secret Key + secretType: navercloud_pub_access_key_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Secure Token Service + secretType: navercloud_pub_sts + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Naver Cloud + supportedSecret: Naver Cloud Secure Token Service Secret + secretType: navercloud_pub_sts_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Neon + supportedSecret: Neon API Key + secretType: neon_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Neon + supportedSecret: Neon Connection URI + secretType: neon_connection_uri + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Netflix + supportedSecret: Netflix NetKey + secretType: netflix_netkey + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: New Relic + supportedSecret: New Relic Insights Query Key + secretType: new_relic_insights_query_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: New Relic + supportedSecret: New Relic License Key + secretType: new_relic_license_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: New Relic + supportedSecret: New Relic Personal API Key + secretType: new_relic_personal_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: New Relic + supportedSecret: New Relic REST API Key + secretType: new_relic_rest_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Notion + supportedSecret: Notion API Token + secretType: notion_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Notion + supportedSecret: Notion Integration Token + secretType: notion_integration_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Notion + supportedSecret: Notion OAuth Client Secret + secretType: notion_oauth_client_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: npm + supportedSecret: npm Access Token + secretType: npm_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: NuGet + supportedSecret: NuGet API Key + secretType: nuget_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Octopus Deploy + supportedSecret: Octopus Deploy API Key + secretType: octopus_deploy_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Oculus + supportedSecret: Oculus Access Token + secretType: oculus_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneChronos + supportedSecret: OneChronos API Token + secretType: onechronos_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneChronos + supportedSecret: OneChronos Expressive Bidding API Key + secretType: onechronos_eb_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneChronos + supportedSecret: OneChronos Expressive Bidding Encryption Key + secretType: onechronos_eb_encryption_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneChronos + supportedSecret: OneChronos OAuth Token + secretType: onechronos_oauth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneChronos + supportedSecret: OneChronos Refresh Token + secretType: onechronos_refresh_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OneSignal + supportedSecret: OneSignal Rich API Key + secretType: onesignal_rich_authentication_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Onfido + supportedSecret: Onfido Live API Token + secretType: onfido_live_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Onfido + supportedSecret: Onfido Sandbox API Token + secretType: onfido_sandbox_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: OpenAI + supportedSecret: OpenAI API Key + secretType: openai_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: OpenRouter + supportedSecret: OpenRouter API Key + secretType: openrouter_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: OpenVSX + supportedSecret: OpenVSX Access Token + secretType: openvsx_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Openweather + supportedSecret: Openweather API Key + secretType: openweather_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Oracle + supportedSecret: Oracle API Key + secretType: oracle_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Orbit + supportedSecret: Orbit API Token + secretType: orbit_api_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Paddle + supportedSecret: Paddle API Key + secretType: paddle_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Paddle + supportedSecret: Paddle Sandbox API Key + secretType: paddle_sandbox_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PagerDuty + supportedSecret: PagerDuty OAuth Secret + secretType: pagerduty_oauth_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PagerDuty + supportedSecret: PagerDuty OAuth Token + secretType: pagerduty_oauth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Palantir + supportedSecret: Palantir JSON Web Token + secretType: palantir_jwt + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pangea + supportedSecret: Pangea Token + secretType: pangea_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Perplexity + supportedSecret: Perplexity API Key + secretType: perplexity_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Persona Identities + supportedSecret: Persona Production Api Key + secretType: persona_production_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Persona Identities + supportedSecret: Persona Sandbox Api Key + secretType: persona_sandbox_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pineapple Technologies Limited + supportedSecret: Pineapple Technologies Incident API Key + secretType: pineapple_technologies_incident_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pinecone + supportedSecret: Pinecone API Key + secretType: pinecone_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pinterest + supportedSecret: Pinterest Access Token + secretType: pinterest_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pinterest + supportedSecret: Pinterest Refresh Token + secretType: pinterest_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PlanetScale + supportedSecret: PlanetScale Database Password + secretType: planetscale_database_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PlanetScale + supportedSecret: PlanetScale OAuth Token + secretType: planetscale_oauth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PlanetScale + supportedSecret: PlanetScale Service Token + secretType: planetscale_service_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Planning Center + supportedSecret: Planning Center OAuth Access Token + secretType: planning_center_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Planning Center + supportedSecret: Planning Center OAuth Application Secret + secretType: planning_center_oauth_app_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Planning Center + supportedSecret: Planning Center Personal Access Token + secretType: planning_center_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Plivo + supportedSecret: Plivo Auth ID + secretType: plivo_auth_id,
plivo_auth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Polar + supportedSecret: Polar Access Token + secretType: polar_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar Authorization Code + secretType: polar_authorization_code + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar Client Registration Token + secretType: polar_client_registration_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar Client Secret + secretType: polar_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar Customer Session Token + secretType: polar_customer_session_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Polar + supportedSecret: Polar Personal Access Token + secretType: polar_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar Refresh Token + secretType: polar_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Polar + supportedSecret: Polar User Session Token + secretType: polar_user_session_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PostHog + supportedSecret: PostHog Project Secret API Key + secretType: posthog_feature_flags_secure_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PostHog + supportedSecret: PostHog OAuth Access Token + secretType: posthog_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PostHog + supportedSecret: PostHog OAuth Refresh Token + secretType: posthog_oauth_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: PostHog + supportedSecret: PostHog Personal API Key + secretType: posthog_personal_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Postman + supportedSecret: Postman API Key + secretType: postman_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Postman + supportedSecret: Postman Collection Key + secretType: postman_collection_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Prefect + supportedSecret: Prefect Server API Key + secretType: prefect_server_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Prefect + supportedSecret: Prefect User API Key + secretType: prefect_user_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Proctorio + supportedSecret: Proctorio Consumer Key + secretType: proctorio_consumer_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Proctorio + supportedSecret: Proctorio Linkage Key + secretType: proctorio_linkage_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Proctorio + supportedSecret: Proctorio Registration Key + secretType: proctorio_registration_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Proctorio + supportedSecret: Proctorio Secret Key + secretType: proctorio_secret_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Proof + supportedSecret: Proof Full Access API Key + secretType: proof_full_access_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Pulumi + supportedSecret: Pulumi Access Token + secretType: pulumi_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: PyPI + supportedSecret: PyPI API Token + secretType: pypi_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Rainforest Pay + supportedSecret: Rainforest API Key + secretType: rainforest_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Rainforest Pay + supportedSecret: Rainforest Sandbox API Key + secretType: rainforest_sandbox_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Ramp + supportedSecret: Ramp OAuth Client ID + secretType: ramp_client_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Ramp + supportedSecret: Ramp OAuth Client Secret + secretType: ramp_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Ramp + supportedSecret: Ramp OAuth Access or Refresh Token + secretType: ramp_oauth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Raycast + supportedSecret: Raycast Access Token + secretType: raycast_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: ReadMe + supportedSecret: ReadMe API Key + secretType: readmeio_api_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: redirect.pizza + supportedSecret: redirect.pizza API Token + secretType: redirect_pizza_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Replicate + supportedSecret: Replicate API Token + secretType: replicate_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Resend + supportedSecret: Resend API Key + secretType: resend_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Rootly + supportedSecret: Rootly API Key + secretType: rootly_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: RubyGems + supportedSecret: RubyGems API Key + secretType: rubygems_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: RunPod + supportedSecret: RunPod API Key + secretType: runpod_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Salesforce + supportedSecret: Salesforce Access Token + secretType: salesforce_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Salesforce + supportedSecret: Salesforce Marketing Cloud API OAuth2 Token + secretType: salesforce_marketing_cloud_api_oauth2_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Salesforce + supportedSecret: Salesforce OAuth2 Consumer Key + secretType: salesforce_oauth2_consumer_key,
salesforce_oauth2_consumer_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Salesforce + supportedSecret: Salesforce Refresh Token + secretType: salesforce_refresh_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Samsara + supportedSecret: Samsara API Token + secretType: samsara_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Samsara + supportedSecret: Samsara OAuth Access Token + secretType: samsara_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Scalr + supportedSecret: Scalr API Token + secretType: scalr_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Segment + supportedSecret: Segment Public API Token + secretType: segment_public_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: SendGrid + supportedSecret: SendGrid API Key + secretType: sendgrid_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Sentry + supportedSecret: Sentry Integration Token + secretType: sentry_integration_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sentry + supportedSecret: Sentry Organization Token + secretType: sentry_organization_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sentry + supportedSecret: Sentry Personal Token + secretType: sentry_personal_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Sentry + supportedSecret: Sentry User App Auth Token + secretType: sentry_user_app_auth_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shippo + supportedSecret: Shippo Live API Token + secretType: shippo_live_api_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shippo + supportedSecret: Shippo Test API Token + secretType: shippo_test_api_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopee + supportedSecret: Shopee Open Platform Partner Key + secretType: shopee_open_platform_partner_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Access Token + secretType: shopify_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify App Client Credentials + secretType: shopify_app_client_credentials + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify App Client Secret + secretType: shopify_app_client_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify App Shared Secret + secretType: shopify_app_shared_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Custom App Access Token + secretType: shopify_custom_app_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Marketplace Token + secretType: shopify_marketplace_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Merchant Token + secretType: shopify_merchant_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Partner API Token + secretType: shopify_partner_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Shopify + supportedSecret: Shopify Private App Password + secretType: shopify_private_app_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: '{% ifversion ghes %}false{% else %}true{% endif %}' + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Siemens + supportedSecret: Siemens API Token + secretType: siemens_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Siemens + supportedSecret: Siemens Code Token + secretType: siemens_code_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sindri + supportedSecret: Sindri API Key + secretType: sindri_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: Slack + supportedSecret: Slack API Token + secretType: slack_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Slack + supportedSecret: Slack Incoming Webhook URL + secretType: slack_incoming_webhook_url + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Slack + supportedSecret: Slack Workflow Trigger URL + secretType: slack_workflow_trigger_url + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Slack + supportedSecret: Slack Workflow Webhook URL + secretType: slack_workflow_webhook_url + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Snowflake + supportedSecret: SFPG Connection String + secretType: snowflake_postgres_connection_string + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Snowflake + supportedSecret: SFPG Host + secretType: snowflake_postgres_host,
snowflake_postgres_password + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Snowflake + supportedSecret: Snowflake Programmatic Access Token + secretType: snowflake_programmatic_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sourcegraph + supportedSecret: Sourcegraph Access Token + secretType: sourcegraph_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sourcegraph + supportedSecret: Sourcegraph Dotcom User Gateway Access Token + secretType: sourcegraph_dotcom_user_gateway + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sourcegraph + supportedSecret: Sourcegraph Access Token with Instance Identifier + secretType: sourcegraph_instance_identifier_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sourcegraph + supportedSecret: Sourcegraph License Key Token + secretType: sourcegraph_license_key_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Sourcegraph + supportedSecret: Sourcegraph Product Subscription Token + secretType: sourcegraph_product_subscription_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Square + supportedSecret: Square Access Token + secretType: square_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: true +- provider: Square + supportedSecret: Square Production Application Secret + secretType: square_production_application_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Square + supportedSecret: Square Sandbox Application Secret + secretType: square_sandbox_application_secret + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: SSLMate + supportedSecret: SSLMate API Key + secretType: sslmate_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: SSLMate + supportedSecret: SSLMate Cluster Secret + secretType: sslmate_cluster_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe API Key + secretType: stripe_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe Legacy API Key + secretType: stripe_legacy_api_key + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe Live API Restricted Key + secretType: stripe_live_restricted_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe Test API Restricted Key + secretType: stripe_test_restricted_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe Test API Secret Key + secretType: stripe_test_secret_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Stripe + supportedSecret: Stripe Webhook Signing Secret + secretType: stripe_webhook_signing_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Supabase + supportedSecret: Supabase OAuth Access Token + secretType: supabase_oauth_access_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Supabase + supportedSecret: Supabase Personal Access Token + secretType: supabase_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Supabase + supportedSecret: Supabase Personal Access Token (scoped) + secretType: supabase_scoped_personal_access_token + isPublic: true + isPrivateWithGhas: false + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Supabase + supportedSecret: Supabase Secret Key + secretType: supabase_secret_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tableau + supportedSecret: Tableau Personal Access Token + secretType: tableau_personal_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tailscale + supportedSecret: Tailscale API Key + secretType: tailscale_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Telegram + supportedSecret: Telegram Bot Token + secretType: telegram_bot_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Telnyx + supportedSecret: Telnyx API V2 Key + secretType: telnyx_api_v2_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Temporal + supportedSecret: Temporal Cloud API Key + secretType: temporal_cloud_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tencent + supportedSecret: Tencent Cloud International Access Token + secretType: tencent_cloud_intl_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tencent + supportedSecret: Tencent Cloud Secret ID + secretType: tencent_cloud_secret_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tencent + supportedSecret: Tencent WeChat API App ID + secretType: tencent_wechat_api_app_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Tencent + supportedSecret: Tencent WeChat Pay Token + secretType: tencent_wechat_pay_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Thunderstore + supportedSecret: Thunderstore IO API Token + secretType: thunderstore_io_api_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Twilio + supportedSecret: Twilio Access Token + secretType: twilio_access_token + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Twilio + supportedSecret: Twilio Account String Identifier + secretType: twilio_account_sid + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: true + isduplicate: true +- provider: Twilio + supportedSecret: Twilio API Key + secretType: twilio_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Typeform + supportedSecret: Typeform Personal Access Token + secretType: typeform_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Uniwise + supportedSecret: WISEflow API Key + secretType: wiseflow_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Unkey + supportedSecret: Unkey Root Key + secretType: unkey_root_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Val Town + supportedSecret: Val Town API Token + secretType: val_town_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel API Key + secretType: vercel_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel App Refresh Token + secretType: vercel_app_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: false + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel App User Access Token + secretType: vercel_app_user_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel Integration Access Token + secretType: vercel_integration_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel Personal Access Token + secretType: vercel_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Vercel + supportedSecret: Vercel Support Access Token + secretType: vercel_support_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: VolcEngine + supportedSecret: VolcEngine Access Key ID + secretType: volcengine_access_key_id + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: VolcEngine + supportedSecret: VolcEngine Ark API Key + secretType: volcengine_ark_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Wakatime + supportedSecret: WakaTime API Key + secretType: wakatime_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Wakatime + supportedSecret: WakaTime App Secret + secretType: wakatime_app_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Wakatime + supportedSecret: WakaTime OAuth Access Token + secretType: wakatime_oauth_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Wakatime + supportedSecret: WakaTime OAuth Refresh Token + secretType: wakatime_oauth_refresh_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Weatherstack + supportedSecret: Weatherstack API Key + secretType: weatherstack_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Weights & Biases + supportedSecret: Weights & Biases API Key + secretType: wandb_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Workato + supportedSecret: Workato Developer API Token + secretType: workato_developer_api_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: WorkOS + supportedSecret: WorkOS Production API Key + secretType: workos_production_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: WorkOS + supportedSecret: WorkOS Staging API Key + secretType: workos_staging_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: true +- provider: WSO2 + supportedSecret: WSO2 Choreo Personal Access Token + secretType: wso2_choreo_personal_access_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: xAI + supportedSecret: xAI API Key + secretType: xai_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: '{% ifversion ghes %}false{% else %}true{% endif %}' + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Cloud API Key + secretType: yandex_cloud_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Cloud Access Secret + secretType: yandex_cloud_iam_access_secret + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Cloud IAM Cookie + secretType: yandex_cloud_iam_cookie + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Cloud IAM Token + secretType: yandex_cloud_iam_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Cloud Smartchapta Server Key + secretType: yandex_cloud_smartcaptcha_server_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Dictionary API Key + secretType: yandex_dictionary_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Passport OAuth Token + secretType: yandex_passport_oauth_token + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Predictor API Key + secretType: yandex_predictor_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Yandex + supportedSecret: Yandex.Translate API Key + secretType: yandex_translate_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: ZenHub + supportedSecret: ZenHub Personal API Key + secretType: zenhub_personal_api_key + isPublic: false + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: false + hasExtendedMetadata: false + base64Supported: false + isduplicate: false +- provider: Zuplo + supportedSecret: Zuplo Consumer API Key + secretType: zuplo_consumer_api_key + isPublic: true + isPrivateWithGhas: true + hasPushProtection: true + hasValidityCheck: true + hasExtendedMetadata: false + base64Supported: false + isduplicate: false diff --git a/src/workflows/experimental/readability-report.ts b/src/workflows/experimental/readability-report.ts deleted file mode 100644 index 26dc8155fbe6..000000000000 --- a/src/workflows/experimental/readability-report.ts +++ /dev/null @@ -1,645 +0,0 @@ -/** - * Readability Analysis Script - * - * This script analyzes the readability of rendered documentation content using standard - * readability metrics. It has a dual purpose: - * - * 1. **GitHub Actions Workflow**: Automatically runs on pull requests to analyze changed - * content files and post readability reports as PR comments. - * - * 2. **Local Development Tool**: Can be run locally by writers to test readability - * of specific files during content creation and editing. - * - * WORKFLOW USAGE: - * - Triggered automatically on PRs with content changes - * - Uses CHANGED_FILES environment variable from get-changed-files action - * - Outputs report to console and saves to readability-report.md for PR commenting - * - Requires local server to be running to analyze rendered content - * - * LOCAL USAGE: - * 1. Start local development server: `npm start` - * 2. Run analysis on specific files: - * - Single file: `npm run readability-report -- --paths content/file.md` - * - Multiple files: `npm run readability-report -- --paths content/file1.md content/file2.md` - * - Get help: `npm run readability-report -- --help` - * - * FEATURES: - * - Analyzes rendered content (not raw Markdown) to account for Liquid templating - * - Calculates multiple readability metrics (Flesch Reading Ease, Gunning Fog, FORCAST, etc.) - * - Provides detailed reports with improvement recommendations - * - Filters out code blocks and non-prose elements for accurate analysis - * - * REQUIREMENTS: - * - Local server running on localhost:4000 - * - Content files must be in content/ directory - * - Files must be accessible via rendered site URLs - */ - -import fs from 'fs' -import path from 'path' - -import { load } from 'cheerio' -import { fetchWithRetry } from '@/frame/lib/fetch-utils' - -interface ReadabilityMetrics { - fleschReadingEase: number - fleschKincaidGrade: number - gunningFog: number - colemanLiau: number - automatedReadabilityIndex: number - smogIndex: number - forcastGrade: number -} - -interface PageReadability { - path: string - url: string - title: string - metrics: ReadabilityMetrics - wordCount: number - sentenceCount: number - estimatedReadingTime: string -} - -async function main() { - // Check for help flag - const args = process.argv.slice(2) - if (args.includes('--help') || args.includes('-h')) { - console.log(` -Usage: npm run readability-report [-- --paths ...] - -Examples: - # Analyze specific files - npm run readability-report -- --paths content/copilot/using-github-copilot.md content/get-started/quickstart.md - - # Analyze a single file - npm run readability-report -- --paths content/copilot/using-github-copilot.md - - # Use environment variable (for CI) - CHANGED_FILES="content/file1.md content/file2.md" npm run readability-report - -Note: Requires a local server running on localhost:4000 (npm start) -`) - return - } - - console.log('Starting readability analysis...') - - // Get changed content files from environment variable or command line arguments - const changedFiles = getChangedContentFiles() - - if (changedFiles.length === 0) { - console.log('No content files to analyze. Use --help for usage information.') - return - } - - console.log(`Analyzing readability for ${changedFiles.length} changed files:`) - for (const file of changedFiles) { - console.log(` - ${file}`) - } - - // Wait for server to be ready - await waitForServer() - - // Analyze each changed file - const results: PageReadability[] = [] - - for (const filePath of changedFiles) { - try { - const result = await analyzeFile(filePath) - if (result) { - results.push(result) - console.log(`✓ Analyzed: ${result.path}`) - } - } catch (error) { - console.error(`✗ Failed to analyze ${filePath}:`, (error as Error).message) - } - } - - // Generate and output report - const report = generateReport(results) - - // Always output to console for local development - console.log(`\n${report}`) - - // If running in CI, also save report for commenting on PR - if (process.env.GITHUB_ACTIONS) { - fs.writeFileSync('readability-report.md', report) - console.log('\nReport saved to readability-report.md') - } -} - -function getChangedContentFiles(): string[] { - // Check for command line arguments first - const args = process.argv.slice(2) - const pathsIndex = args.indexOf('--paths') - - if (pathsIndex !== -1 && pathsIndex + 1 < args.length) { - // Get all arguments after --paths until we hit another flag or end - const paths: string[] = [] - for (let i = pathsIndex + 1; i < args.length; i++) { - if (args[i].startsWith('--')) break - paths.push(args[i]) - } - - return paths.filter((filePath) => { - // Filter for content files only (not data files, READMEs, etc.) - return ( - filePath.endsWith('.md') && - filePath.split(path.sep)[0] === 'content' && - path.basename(filePath) !== 'README.md' - ) - }) - } - - // Fall back to environment variable (for CI) - const spaceSeparatedList = process.env.CHANGED_FILES || '' - return spaceSeparatedList.split(/\s+/g).filter((filePath) => { - // Filter for content files only (not data files, READMEs, etc.) - return ( - filePath.endsWith('.md') && - filePath.split(path.sep)[0] === 'content' && - path.basename(filePath) !== 'README.md' - ) - }) -} - -function makeURL(urlPath: string): string { - return `http://localhost:4000${urlPath}` -} - -async function waitForServer(): Promise { - console.log('Waiting for server to be ready...') - - const maxAttempts = 30 - const delayMs = 2000 - - for (let attempt = 1; attempt <= maxAttempts; attempt++) { - try { - const response = await fetchWithRetry(makeURL('/'), undefined, { - timeout: 5000, - }) - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`) - } - console.log('Server is ready!') - return - } catch (error) { - if (attempt === maxAttempts) { - console.error('Server failed to start. Last error:', (error as Error).message) - throw new Error(`Server failed to start after ${maxAttempts} attempts`) - } - console.log( - `Attempt ${attempt}/${maxAttempts} failed (${(error as Error).message}), retrying in ${delayMs}ms...`, - ) - await new Promise((resolve) => setTimeout(resolve, delayMs)) - } - } -} - -async function analyzeFile(filePath: string): Promise { - // Convert file path to URL path - // content/get-started/foo.md -> /get-started/foo - const urlPath = `/${filePath - .replace(/^content\//, '') - .replace(/\.md$/, '') - .replace(/\/index$/, '')}` - - try { - // Fetch the rendered page - const response = await fetchWithRetry(makeURL(urlPath), undefined, { - timeout: 30000, - throwHttpErrors: false, - }) - - if (response.status !== 200) { - console.warn(`Skipping ${urlPath}: HTTP ${response.status}`) - return null - } - - // Parse HTML and extract content - const body = await response.text() - const $ = load(body) - - // Get page title - const title = $('h1').first().text().trim() || $('title').text().trim() || 'Untitled' - - // Extract main content text (excluding navigation, sidebars, etc.) - // Focus on the main article content with more specific selectors - const contentSelectors = [ - 'article .markdown-body', // Most specific - article content in docs - '.markdown-body', // GitHub markdown content - 'article', // Generic article - 'main', // Main content area - '[data-testid="lead"]', // Lead content - '#article-contents', // Fallback - ] - - let contentText = '' - for (const selector of contentSelectors) { - const element = $(selector) - if (element.length > 0) { - // Remove code blocks and other non-prose elements - element.find('pre, code, .highlight').remove() - element.find('nav, .breadcrumb, .pagination').remove() - element.find('[data-testid="breadcrumbs"]').remove() - element.find('.js-search-results').remove() - element.find('aside, .sidebar').remove() - element.find('.edit-this-page').remove() - - // Get the text content directly, which preserves natural spacing - contentText = element.text() - - // Clean up the text to remove excessive whitespace - contentText = contentText - .replace(/\s+/g, ' ') // Replace multiple whitespace with single space - .trim() - - break - } - } - - if (!contentText.trim()) { - console.warn(`No content found for ${urlPath}`) - return null - } - - // Calculate readability metrics - const metrics = await calculateReadability(contentText) - - // Calculate estimated reading time based on word count and complexity - const estimatedReadingTime = estimateReadingTime( - countWords(contentText), - metrics.fleschReadingEase, - ) - - return { - path: filePath, - url: urlPath, - title, - metrics, - wordCount: countWords(contentText), - sentenceCount: countSentences(contentText), - estimatedReadingTime, - } - } catch (error) { - throw new Error(`Failed to analyze ${urlPath}: ${(error as Error).message}`) - } -} - -async function calculateReadability(text: string): Promise { - // Direct implementation of readability formulas - const words = countWords(text) - const sentences = countSentences(text) - const syllables = countSyllables(text) - const complexWords = countComplexWords(text) - const singleSyllableWords = countSingleSyllableWords(text) - - if (sentences === 0 || words === 0) { - return { - fleschReadingEase: 0, - fleschKincaidGrade: 0, - gunningFog: 0, - colemanLiau: 0, - automatedReadabilityIndex: 0, - smogIndex: 0, - forcastGrade: 0, - } - } - - // Flesch Reading Ease: 206.835 - (1.015 × ASL) - (84.6 × ASW) - const avgSentenceLength = words / sentences - const avgSyllablesPerWord = syllables / words - const fleschReadingEase = Math.max( - 0, - 206.835 - 1.015 * avgSentenceLength - 84.6 * avgSyllablesPerWord, - ) - - // Flesch-Kincaid Grade Level: (0.39 × ASL) + (11.8 × ASW) - 15.59 - const fleschKincaidGrade = 0.39 * avgSentenceLength + 11.8 * avgSyllablesPerWord - 15.59 - - // Gunning Fog Index: 0.4 × (ASL + percentage of complex words) - const complexWordPercentage = (complexWords / words) * 100 - const gunningFog = 0.4 * (avgSentenceLength + complexWordPercentage) - - // Coleman-Liau Index: 0.0588 × L - 0.296 × S - 15.8 - const avgCharsPer100Words = (text.replace(/\s/g, '').length / words) * 100 - const avgSentencesPer100Words = (sentences / words) * 100 - const colemanLiau = 0.0588 * avgCharsPer100Words - 0.296 * avgSentencesPer100Words - 15.8 - - // Automated Readability Index: 4.71 × (characters/words) + 0.5 × (words/sentences) - 21.43 - const avgCharsPerWord = text.replace(/\s/g, '').length / words - const automatedReadabilityIndex = 4.71 * avgCharsPerWord + 0.5 * avgSentenceLength - 21.43 - - // SMOG Index: approximately 1.0430 × sqrt(complex words × 30/sentences) + 3.1291 - const smogIndex = 1.043 * Math.sqrt((complexWords * 30) / sentences) + 3.1291 - - // FORCAST Grade Level: 20 - (N / 10), where N = single-syllable words per 150 words - // Scale to 150-word sample proportion - const singleSyllablePer150Words = (singleSyllableWords / words) * 150 - const forcastGrade = Math.max(5, 20 - singleSyllablePer150Words / 10) // Can't go below 5th grade - - return { - fleschReadingEase: Math.round(fleschReadingEase * 100) / 100, - fleschKincaidGrade: Math.max(0, Math.round(fleschKincaidGrade * 100) / 100), - gunningFog: Math.max(0, Math.round(gunningFog * 100) / 100), - colemanLiau: Math.max(0, Math.round(colemanLiau * 100) / 100), - automatedReadabilityIndex: Math.max(0, Math.round(automatedReadabilityIndex * 100) / 100), - smogIndex: Math.max(0, Math.round(smogIndex * 100) / 100), - forcastGrade: Math.max(5, Math.round(forcastGrade * 100) / 100), - } -} - -function countSyllablesInWord(word: string): number { - // Remove non-alphabetic characters - const cleanWord = word.toLowerCase().replace(/[^a-z]/g, '') - if (cleanWord.length === 0) return 0 - - // Count vowel groups - const vowelGroups = cleanWord.match(/[aeiouy]+/g) || [] - let syllables = vowelGroups.length - - // Subtract silent 'e' at end - if (cleanWord.endsWith('e') && syllables > 1) { - syllables -= 1 - } - - // Ensure at least 1 syllable per word - return Math.max(1, syllables) -} - -function countWords(text: string): number { - // Clean the text and split into words - const cleanText = text - .replace(/\s+/g, ' ') // Replace multiple whitespace with single space - .trim() - - if (!cleanText) return 0 - - // Split on whitespace and filter out empty strings - const words = cleanText.split(/\s+/).filter((word) => { - // Remove punctuation and check if there are actual letters/numbers - const cleanWord = word.replace(/[^\w]/g, '') - return cleanWord.length > 0 - }) - - return words.length -} - -function countSentences(text: string): number { - // Clean and normalize the text first - const cleanText = text - .replace(/\s+/g, ' ') // Replace multiple whitespace with single space - .trim() - - // Split on sentence-ending punctuation, being more conservative - // Only count actual sentence-ending punctuation, not structural breaks - const sentences = cleanText - .split(/[.!?]+(?=\s|$)/) // Only split on punctuation followed by space or end - .map((s) => s.trim()) - .filter((s) => s.length > 0) - - return Math.max(1, sentences.length) -} - -function countSyllables(text: string): number { - // Simple syllable counting approximation - const words = text.toLowerCase().split(/\s+/) - let syllableCount = 0 - - for (const word of words) { - if (word.length === 0) continue - syllableCount += countSyllablesInWord(word) - } - - return syllableCount -} - -function countSingleSyllableWords(text: string): number { - // Count words with exactly 1 syllable - const words = text.toLowerCase().split(/\s+/) - let singleSyllableCount = 0 - - for (const word of words) { - if (word.length === 0) continue - - const syllables = countSyllablesInWord(word) - if (syllables === 1) { - singleSyllableCount += 1 - } - } - - return singleSyllableCount -} - -function countComplexWords(text: string): number { - // Count words with 3+ syllables (approximation) - const words = text.toLowerCase().split(/\s+/) - let complexCount = 0 - - for (const word of words) { - if (word.length === 0) continue - - const syllables = countSyllablesInWord(word) - if (syllables >= 3) { - complexCount += 1 - } - } - - return complexCount -} - -function estimateReadingTime(wordCount: number, fleschReadingEase: number): string { - // Base reading speed in words per minute (WPM) - // Average adult reading speed is around 200-250 WPM for normal text - let baseWPM = 200 - - // Adjust reading speed based on text complexity (Flesch Reading Ease score) - // Higher scores = easier text = faster reading - // Lower scores = harder text = slower reading - if (fleschReadingEase >= 90) { - baseWPM = 250 // Very easy - fast reading - } else if (fleschReadingEase >= 80) { - baseWPM = 230 // Easy - slightly faster - } else if (fleschReadingEase >= 70) { - baseWPM = 210 // Fairly easy - normal speed - } else if (fleschReadingEase >= 60) { - baseWPM = 200 // Standard - average speed - } else if (fleschReadingEase >= 50) { - baseWPM = 180 // Fairly difficult - slower - } else if (fleschReadingEase >= 30) { - baseWPM = 160 // Difficult - much slower - } else { - baseWPM = 140 // Very difficult - very slow - } - - // Calculate reading time in minutes - const readingTimeMinutes = wordCount / baseWPM - - // Format the output - if (readingTimeMinutes < 1) { - return '< 1 min' - } else if (readingTimeMinutes < 60) { - return `${Math.round(readingTimeMinutes)} min` - } else { - const hours = Math.floor(readingTimeMinutes / 60) - const minutes = Math.round(readingTimeMinutes % 60) - return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h` - } -} - -function generateReport(results: PageReadability[]): string { - if (results.length === 0) { - return '## 📊 Readability Report\n\nNo content changes found to analyze.' - } - - let report = '## 📊 Readability Report\n\n' - report += `Analyzed ${results.length} changed documentation page${results.length === 1 ? '' : 's'}.\n\n` - - // Summary table - report += '### Summary\n\n' - report += '| Page | Flesch Reading Ease | Grade Level | Reading Time | Words |\n' - report += '|------|:-------------------:|:-----------:|:------------:|:-----:|\n' - - for (const result of results) { - const grade = result.metrics.fleschKincaidGrade - const ease = result.metrics.fleschReadingEase - const readingTime = result.estimatedReadingTime - - // Determine readability assessment - let easeAssessment = '❓' - if (ease >= 60) easeAssessment = '🟢' - else if (ease >= 30) easeAssessment = '🟡' - else easeAssessment = '🔴' - - report += `| [${result.title}](${result.url}) | ${ease} ${easeAssessment} | ${grade} | ${readingTime} | ${result.wordCount} |\n` - } - - // Detailed metrics - report += '\n### Detailed Metrics\n\n' - - for (const result of results) { - report += `#### ${result.title}\n\n` - report += `**File:** \`${result.path}\` \n` - report += `**URL:** ${result.url} \n` - report += `**Words:** ${result.wordCount} | **Sentences:** ${result.sentenceCount} | **Est. Reading Time:** ${result.estimatedReadingTime}\n\n` - - report += '| Metric | Score | Target | Assessment |\n' - report += '|--------|:-----:|:------:|:----------:|\n' - - const metrics = [ - { - name: 'Flesch Reading Ease', - score: result.metrics.fleschReadingEase, - target: '60+', - assessment: - result.metrics.fleschReadingEase >= 60 - ? '🟢 Good' - : result.metrics.fleschReadingEase >= 30 - ? '🟡 Fair' - : '🔴 Difficult', - }, - { - name: 'Flesch-Kincaid Grade', - score: result.metrics.fleschKincaidGrade, - target: '8 or less', - assessment: - result.metrics.fleschKincaidGrade <= 8 - ? '🟢 Good' - : result.metrics.fleschKincaidGrade <= 12 - ? '🟡 Fair' - : '🔴 High', - }, - { - name: 'Gunning Fog Index', - score: result.metrics.gunningFog, - target: '8 or less', - assessment: - result.metrics.gunningFog <= 8 - ? '🟢 Good' - : result.metrics.gunningFog <= 12 - ? '🟡 Fair' - : '🔴 High', - }, - { - name: 'Coleman-Liau Index', - score: result.metrics.colemanLiau, - target: '8 or less', - assessment: - result.metrics.colemanLiau <= 8 - ? '🟢 Good' - : result.metrics.colemanLiau <= 12 - ? '🟡 Fair' - : '🔴 High', - }, - { - name: 'Automated Readability Index', - score: result.metrics.automatedReadabilityIndex, - target: '8 or less', - assessment: - result.metrics.automatedReadabilityIndex <= 8 - ? '🟢 Good' - : result.metrics.automatedReadabilityIndex <= 12 - ? '🟡 Fair' - : '🔴 High', - }, - { - name: 'FORCAST Grade Level', - score: result.metrics.forcastGrade, - target: '9-10', - assessment: - result.metrics.forcastGrade <= 10 - ? '🟢 Good' - : result.metrics.forcastGrade <= 12 - ? '🟡 Fair' - : '🔴 High', - }, - ] - - for (const metric of metrics) { - report += `| ${metric.name} | ${metric.score} | ${metric.target} | ${metric.assessment} |\n` - } - - report += '\n' - } - - // Guidelines - report += '### 📖 Readability Guidelines\n\n' - report += '**Target Audience:** Technical users (developers, administrators)\n\n' - report += '**Reading Time Estimation:**\n' - report += '- Based on complexity-adjusted reading speed (140-250 WPM)\n' - report += '- Easier content (higher Flesch scores) = faster reading\n' - report += '- More complex content = slower reading pace\n\n' - report += '**General Tips for Improvement:**\n' - report += '- **Sentences:** Aim for 15-20 words per sentence on average\n' - report += '- **Word choice:** Choose simpler alternatives when possible\n' - report += '- **Paragraphs:** Keep paragraphs under 75-100 words\n' - report += - '- **Voice:** Use active voice (e.g., "Click the button" vs "The button should be clicked")\n' - report += '- **Technical terms:** Define acronyms and jargon on first use\n' - report += - '- **FORCAST improvement:** Use more single-syllable words (aim for 110+ per 150 words)\n\n' - - // Add overall recommendations based on results - const avgFleschEase = - results.reduce((sum, r) => sum + r.metrics.fleschReadingEase, 0) / results.length - - if (avgFleschEase < 60) { - if (results.length === 1) { - report += - '**Priority Focus:** This page scored below 60 for Flesch Reading Ease. Consider breaking up complex sentences and using simpler vocabulary.\n\n' - } else { - report += - '**Priority Focus:** Several pages scored below 60 for Flesch Reading Ease. Consider breaking up complex sentences and using simpler vocabulary.\n\n' - } - } - - return report -} - -try { - await main() -} catch (error) { - console.error('Readability analysis failed:', error) - process.exit(1) -}