{
  "service": "codacy",
  "displayName": "Codacy",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "CODACY_API_TOKEN",
      "description": "Codacy account API token sent with the api-token header. Generate one in Codacy user settings under API Tokens: https://docs.codacy.com/codacy-api/api-tokens/#account-api-tokens."
    }
  ],
  "homepageUrl": "https://www.codacy.com",
  "actions": [
    {
      "id": "codacy.get_current_user",
      "service": "codacy",
      "name": "get_current_user",
      "description": "Retrieve the Codacy user associated with the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for retrieving the current Codacy user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The Codacy user identifier."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "The user's display name."
              },
              "mainEmail": {
                "type": "string",
                "description": "The user's primary email address.",
                "format": "email"
              },
              "otherEmails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An email address associated with the user.",
                  "format": "email"
                },
                "description": "Other email addresses associated with the user."
              },
              "isAdmin": {
                "type": "boolean",
                "description": "Whether the user has Codacy administrator privileges."
              },
              "isActive": {
                "type": "boolean",
                "description": "Whether the user account is active."
              },
              "created": {
                "type": "string",
                "description": "Timestamp when the user was created, in ISO 8601 format."
              }
            },
            "additionalProperties": true,
            "description": "The authenticated Codacy user."
          }
        },
        "additionalProperties": false,
        "description": "The authenticated Codacy user."
      }
    },
    {
      "id": "codacy.get_repository_analysis",
      "service": "codacy",
      "name": "get_repository_analysis",
      "description": "Retrieve one Codacy repository analysis summary.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "minLength": 1,
            "description": "Git provider identifier used by Codacy, such as gh for GitHub, gl for GitLab, or bb for Bitbucket."
          },
          "remoteOrganizationName": {
            "type": "string",
            "minLength": 1,
            "description": "Organization name on the Git provider."
          },
          "repositoryName": {
            "type": "string",
            "minLength": 1,
            "description": "Repository name on the Git provider organization."
          },
          "branch": {
            "type": "string",
            "minLength": 1,
            "description": "Name of a repository branch enabled on Codacy."
          }
        },
        "additionalProperties": false,
        "required": [
          "provider",
          "remoteOrganizationName",
          "repositoryName"
        ],
        "description": "Input parameters for a Codacy repository-scoped request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "repository": {
            "type": "object",
            "properties": {
              "repository": {
                "type": "object",
                "properties": {
                  "repositoryId": {
                    "type": "integer",
                    "description": "The Codacy repository identifier."
                  },
                  "provider": {
                    "type": "string",
                    "description": "Git provider hosting the repository."
                  },
                  "owner": {
                    "type": "string",
                    "description": "Name of the organization that owns the repository."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Name of the repository."
                  },
                  "fullPath": {
                    "type": "string",
                    "description": "Full path of the repository on the Git provider."
                  },
                  "visibility": {
                    "type": "string",
                    "description": "Repository visibility reported by Codacy."
                  },
                  "remoteIdentifier": {
                    "type": "string",
                    "description": "Unique repository identifier on the Git provider."
                  },
                  "languages": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "A programming language detected in the repository."
                    },
                    "description": "Programming languages detected in the repository."
                  }
                },
                "additionalProperties": true,
                "description": "A Codacy repository summary."
              },
              "grade": {
                "type": "integer",
                "description": "Repository quality grade as a number between 0 and 100."
              },
              "gradeLetter": {
                "type": "string",
                "description": "Repository quality grade letter."
              },
              "issuesPercentage": {
                "type": "integer",
                "description": "Issue percentage reported by Codacy."
              },
              "issuesCount": {
                "type": "integer",
                "description": "Number of issues reported by Codacy."
              },
              "loc": {
                "type": "integer",
                "description": "Lines of code in the repository."
              },
              "complexFilesPercentage": {
                "type": "integer",
                "description": "Complex files percentage reported by Codacy."
              },
              "complexFilesCount": {
                "type": "integer",
                "description": "Number of complex files reported by Codacy."
              },
              "duplicationPercentage": {
                "type": "integer",
                "description": "Duplication percentage reported by Codacy."
              }
            },
            "additionalProperties": true,
            "description": "Repository analysis information returned by Codacy."
          }
        },
        "additionalProperties": false,
        "description": "Codacy repository analysis response."
      }
    },
    {
      "id": "codacy.get_tool_pattern",
      "service": "codacy",
      "name": "get_tool_pattern",
      "description": "Retrieve one code pattern for a Codacy analysis tool.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "toolUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The Codacy tool UUID."
          },
          "patternId": {
            "type": "string",
            "minLength": 1,
            "description": "Pattern identifier unique within the Codacy tool."
          }
        },
        "additionalProperties": false,
        "required": [
          "toolUuid",
          "patternId"
        ],
        "description": "Input parameters for retrieving one Codacy tool pattern."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Codacy code pattern that a tool can use to find issues."
          }
        },
        "additionalProperties": false,
        "description": "Codacy tool pattern response."
      }
    },
    {
      "id": "codacy.list_languages",
      "service": "codacy",
      "name": "list_languages",
      "description": "List programming languages supported by Codacy analysis tools.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for listing Codacy-supported languages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The language name."
                },
                "fileExtensions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A file extension for this language."
                  },
                  "description": "Default file extensions for this language."
                },
                "files": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A specific file name for this language."
                  },
                  "description": "Specific files that should be considered for this language."
                }
              },
              "additionalProperties": true,
              "description": "A programming language supported by Codacy tools."
            },
            "description": "Programming languages supported by Codacy tools."
          }
        },
        "additionalProperties": false,
        "description": "Codacy-supported language list."
      }
    },
    {
      "id": "codacy.list_repository_analyses",
      "service": "codacy",
      "name": "list_repository_analyses",
      "description": "List repository analysis summaries for a Codacy organization on a Git provider.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "minLength": 1,
            "description": "Git provider identifier used by Codacy, such as gh for GitHub, gl for GitLab, or bb for Bitbucket."
          },
          "remoteOrganizationName": {
            "type": "string",
            "minLength": 1,
            "description": "Organization name on the Git provider."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by Codacy for requesting the next result page."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of items to return, from 1 to 100."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search string used to filter repositories."
          },
          "segments": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated list of segment identifiers."
          }
        },
        "additionalProperties": false,
        "required": [
          "provider",
          "remoteOrganizationName"
        ],
        "description": "Input parameters for listing Codacy repository analysis results in one organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "repositories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "repository": {
                  "type": "object",
                  "properties": {
                    "repositoryId": {
                      "type": "integer",
                      "description": "The Codacy repository identifier."
                    },
                    "provider": {
                      "type": "string",
                      "description": "Git provider hosting the repository."
                    },
                    "owner": {
                      "type": "string",
                      "description": "Name of the organization that owns the repository."
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Name of the repository."
                    },
                    "fullPath": {
                      "type": "string",
                      "description": "Full path of the repository on the Git provider."
                    },
                    "visibility": {
                      "type": "string",
                      "description": "Repository visibility reported by Codacy."
                    },
                    "remoteIdentifier": {
                      "type": "string",
                      "description": "Unique repository identifier on the Git provider."
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "A programming language detected in the repository."
                      },
                      "description": "Programming languages detected in the repository."
                    }
                  },
                  "additionalProperties": true,
                  "description": "A Codacy repository summary."
                },
                "grade": {
                  "type": "integer",
                  "description": "Repository quality grade as a number between 0 and 100."
                },
                "gradeLetter": {
                  "type": "string",
                  "description": "Repository quality grade letter."
                },
                "issuesPercentage": {
                  "type": "integer",
                  "description": "Issue percentage reported by Codacy."
                },
                "issuesCount": {
                  "type": "integer",
                  "description": "Number of issues reported by Codacy."
                },
                "loc": {
                  "type": "integer",
                  "description": "Lines of code in the repository."
                },
                "complexFilesPercentage": {
                  "type": "integer",
                  "description": "Complex files percentage reported by Codacy."
                },
                "complexFilesCount": {
                  "type": "integer",
                  "description": "Number of complex files reported by Codacy."
                },
                "duplicationPercentage": {
                  "type": "integer",
                  "description": "Duplication percentage reported by Codacy."
                }
              },
              "additionalProperties": true,
              "description": "Repository analysis information returned by Codacy."
            },
            "description": "Repository analysis summaries returned by Codacy."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cursor to request the next batch of results."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Maximum number of items returned by Codacy."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total number of items returned by Codacy."
                  }
                },
                "additionalProperties": false,
                "description": "Cursor-based pagination information returned by Codacy."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Codacy repository analysis list."
      }
    },
    {
      "id": "codacy.list_tool_patterns",
      "service": "codacy",
      "name": "list_tool_patterns",
      "description": "List code patterns available for a Codacy analysis tool.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "toolUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The Codacy tool UUID."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by Codacy for requesting the next result page."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of items to return, from 1 to 100."
          },
          "enabled": {
            "type": "boolean",
            "description": "Filter by enabled status."
          }
        },
        "additionalProperties": false,
        "required": [
          "toolUuid"
        ],
        "description": "Input parameters for listing Codacy patterns for one tool."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "patterns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Codacy code pattern that a tool can use to find issues."
            },
            "description": "Patterns returned for the requested Codacy tool."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cursor to request the next batch of results."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Maximum number of items returned by Codacy."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total number of items returned by Codacy."
                  }
                },
                "additionalProperties": false,
                "description": "Cursor-based pagination information returned by Codacy."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Codacy tool pattern list."
      }
    },
    {
      "id": "codacy.list_tools",
      "service": "codacy",
      "name": "list_tools",
      "description": "List Codacy code analysis tools.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by Codacy for requesting the next result page."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of items to return, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for a paginated Codacy request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Codacy code analysis tool."
            },
            "description": "Codacy tools returned by the API."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cursor to request the next batch of results."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Maximum number of items returned by Codacy."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total number of items returned by Codacy."
                  }
                },
                "additionalProperties": false,
                "description": "Cursor-based pagination information returned by Codacy."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Codacy tool list."
      }
    },
    {
      "id": "codacy.list_user_organizations",
      "service": "codacy",
      "name": "list_user_organizations",
      "description": "List Codacy organizations accessible to the connected API token, optionally scoped to one Git provider.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "minLength": 1,
            "description": "Git provider identifier used by Codacy, such as gh for GitHub, gl for GitLab, or bb for Bitbucket."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by Codacy for requesting the next result page."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of items to return, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Codacy resources for one Git provider."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "identifier": {
                  "type": "integer",
                  "description": "The Codacy organization identifier."
                },
                "remoteIdentifier": {
                  "type": "string",
                  "description": "The organization identifier on the Git provider."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The organization name."
                },
                "provider": {
                  "type": "string",
                  "description": "Git provider hosting the organization."
                },
                "avatar": {
                  "type": "string",
                  "description": "Organization avatar URL."
                },
                "type": {
                  "type": "string",
                  "description": "Codacy organization type."
                },
                "singleProviderLogin": {
                  "type": "boolean",
                  "description": "Whether the organization uses single provider login."
                },
                "hasDastAccess": {
                  "type": "boolean",
                  "description": "Whether the organization has DAST access."
                },
                "hasScaEnabled": {
                  "type": "boolean",
                  "description": "Whether the organization has SCA enabled."
                },
                "imageSbomEnabled": {
                  "type": "boolean",
                  "description": "Whether the organization has image SBOM enabled."
                }
              },
              "additionalProperties": true,
              "description": "A Codacy organization accessible to the user."
            },
            "description": "Organizations accessible to the user."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cursor to request the next batch of results."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Maximum number of items returned by Codacy."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total number of items returned by Codacy."
                  }
                },
                "additionalProperties": false,
                "description": "Cursor-based pagination information returned by Codacy."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Codacy organization list."
      }
    }
  ]
}
