{
  "service": "bugbug",
  "displayName": "BugBug",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "bugbug_token",
      "description": "BugBug API token used with the Authorization: Token <token> header. Find it in the Integrations tab of the BugBug web app: https://docs.bugbug.io/running-tests/running-via-api."
    }
  ],
  "homepageUrl": "https://bugbug.io",
  "actions": [
    {
      "id": "bugbug.get_suite",
      "service": "bugbug",
      "name": "get_suite",
      "description": "Retrieve details for a specific BugBug suite by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the requested BugBug resource.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving a BugBug suite."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the suite.",
            "format": "uuid"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "description": "Name of the suite."
              },
              {
                "type": "null"
              }
            ]
          },
          "testsCount": {
            "type": "integer",
            "description": "Number of tests currently linked to the suite."
          },
          "tests": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Suite test entry returned by BugBug."
            },
            "description": "Tests linked to the suite."
          },
          "autoAddNewTests": {
            "type": "boolean",
            "description": "Whether newly created tests are automatically added to the suite."
          },
          "autoRetry": {
            "type": "integer",
            "description": "Automatic retry count configured for the suite."
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "description": "Notes configured on the suite."
              },
              {
                "type": "null"
              }
            ]
          },
          "runInParallel": {
            "type": "boolean",
            "description": "Whether tests in the suite run in parallel."
          },
          "runProfileId": {
            "anyOf": [
              {
                "type": "string",
                "description": "Run profile UUID used by the suite.",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "BugBug suite details."
      }
    },
    {
      "id": "bugbug.get_test",
      "service": "bugbug",
      "name": "get_test",
      "description": "Retrieve details for a specific BugBug test by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the requested BugBug resource.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving a BugBug test."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the test.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Name of the test."
          },
          "groups": {
            "type": "string",
            "description": "Group value returned by BugBug for the test."
          },
          "notes": {
            "anyOf": [
              {
                "type": "string",
                "description": "Notes configured on the test."
              },
              {
                "type": "null"
              }
            ]
          },
          "screenSizeType": {
            "type": "string",
            "enum": [
              "desktop",
              "mobile",
              "custom"
            ],
            "description": "Screen size type configured for the test."
          }
        },
        "additionalProperties": true,
        "description": "BugBug test details."
      }
    },
    {
      "id": "bugbug.get_test_run_status",
      "service": "bugbug",
      "name": "get_test_run_status",
      "description": "Retrieve the current status of a BugBug test run by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the requested BugBug resource.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for retrieving the current status of a BugBug test run."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the test run.",
            "format": "uuid"
          },
          "modified": {
            "type": "string",
            "description": "Datetime when the test run status was last modified.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "auto_retrying",
              "error",
              "failed",
              "initialized",
              "passed",
              "paused",
              "queued",
              "recording",
              "running",
              "skipped",
              "stopped"
            ],
            "description": "Current BugBug test run status."
          },
          "webappUrl": {
            "type": "string",
            "description": "BugBug web app URL for the test run."
          }
        },
        "additionalProperties": true,
        "description": "BugBug test run status."
      }
    },
    {
      "id": "bugbug.list_profiles",
      "service": "bugbug",
      "name": "list_profiles",
      "description": "List run profiles available for executing BugBug tests.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to return."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of results to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing BugBug run profiles."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of results available."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page of results, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous page of results, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "UUID of the run profile.",
                  "format": "uuid"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the run profile."
                },
                "isDefault": {
                  "type": "boolean",
                  "description": "Whether this run profile is the default one."
                }
              },
              "additionalProperties": true,
              "description": "BugBug run profile summary."
            },
            "description": "Results returned for the current page."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "next",
          "previous",
          "results"
        ],
        "description": "Paginated BugBug run profile list."
      }
    },
    {
      "id": "bugbug.list_suites",
      "service": "bugbug",
      "name": "list_suites",
      "description": "List suites available in the connected BugBug workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ordering": {
            "type": "string",
            "enum": [
              "-created",
              "-name",
              "created",
              "name"
            ],
            "description": "Field used to sort the list response."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to return."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of results to return per page."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search string used to filter results by name."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing BugBug suites."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of results available."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page of results, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous page of results, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "UUID of the suite.",
                  "format": "uuid"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Name of the suite."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "testsCount": {
                  "type": "integer",
                  "description": "Number of tests currently linked to the suite."
                }
              },
              "additionalProperties": true,
              "description": "BugBug suite summary."
            },
            "description": "Results returned for the current page."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "next",
          "previous",
          "results"
        ],
        "description": "Paginated BugBug suite list."
      }
    },
    {
      "id": "bugbug.list_test_runs",
      "service": "bugbug",
      "name": "list_test_runs",
      "description": "List historical BugBug test runs with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ordering": {
            "type": "string",
            "enum": [
              "-started",
              "started"
            ],
            "description": "Field used to sort test runs by start time."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to return."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of results to return per page."
          },
          "started_after": {
            "type": "string",
            "description": "Only include test runs started after this RFC3339 datetime.",
            "format": "date-time"
          },
          "started_before": {
            "type": "string",
            "description": "Only include test runs started before this RFC3339 datetime.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "auto_retrying",
              "error",
              "failed",
              "initialized",
              "passed",
              "paused",
              "queued",
              "recording",
              "running",
              "skipped",
              "stopped"
            ],
            "description": "Current BugBug test run status."
          },
          "test_id": {
            "type": "string",
            "description": "Only include test runs for this test UUID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing BugBug test runs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of results available."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page of results, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous page of results, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "UUID of the test run.",
                  "format": "uuid"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the executed test."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "auto_retrying",
                    "error",
                    "failed",
                    "initialized",
                    "passed",
                    "paused",
                    "queued",
                    "recording",
                    "running",
                    "skipped",
                    "stopped"
                  ],
                  "description": "Current BugBug test run status."
                },
                "runMode": {
                  "type": "string",
                  "description": "Run mode used by the test run."
                },
                "started": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Datetime when the test run started."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "triggeredBy": {
                  "type": "string",
                  "description": "Source that triggered the test run."
                },
                "testId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UUID of the executed test.",
                      "format": "uuid"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Duration string returned by BugBug."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "browserWidth": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Browser width used by the test run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "browserHeight": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Browser height used by the test run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "webappUrl": {
                  "type": "string",
                  "description": "BugBug web app URL for the test run."
                }
              },
              "additionalProperties": true,
              "description": "BugBug test run summary."
            },
            "description": "Results returned for the current page."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "next",
          "previous",
          "results"
        ],
        "description": "Paginated BugBug test run list."
      }
    },
    {
      "id": "bugbug.list_tests",
      "service": "bugbug",
      "name": "list_tests",
      "description": "List tests available in the connected BugBug workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ordering": {
            "type": "string",
            "enum": [
              "-created",
              "-name",
              "created",
              "name"
            ],
            "description": "Field used to sort the list response."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to return."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of results to return per page."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search string used to filter results by name."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing BugBug tests."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of results available."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page of results, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous page of results, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "UUID of the test.",
                  "format": "uuid"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the test."
                }
              },
              "additionalProperties": true,
              "description": "BugBug test summary."
            },
            "description": "Results returned for the current page."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "next",
          "previous",
          "results"
        ],
        "description": "Paginated BugBug test list."
      }
    },
    {
      "id": "bugbug.run_test",
      "service": "bugbug",
      "name": "run_test",
      "description": "Execute a BugBug test using the official RunTest request contract.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "testId": {
            "type": "string",
            "description": "UUID of the test to execute.",
            "format": "uuid"
          },
          "runProfileId": {
            "anyOf": [
              {
                "type": "string",
                "description": "Optional BugBug run profile UUID used for execution.",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "variables": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Variable key to override for the test run."
                    },
                    "value": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Variable value to apply for the test run."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "key"
                  ],
                  "description": "BugBug variable override."
                },
                "description": "Optional variable overrides forwarded to BugBug."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "testId"
        ],
        "description": "Input payload for executing a BugBug test."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the test run.",
            "format": "uuid"
          },
          "modified": {
            "type": "string",
            "description": "Datetime when the test run status was last modified.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "auto_retrying",
              "error",
              "failed",
              "initialized",
              "passed",
              "paused",
              "queued",
              "recording",
              "running",
              "skipped",
              "stopped"
            ],
            "description": "Current BugBug test run status."
          },
          "webappUrl": {
            "type": "string",
            "description": "BugBug web app URL for the test run."
          }
        },
        "additionalProperties": true,
        "description": "BugBug test run status."
      },
      "followUpActions": [
        "bugbug.get_test_run_status"
      ]
    }
  ]
}
