12345678910111213141516171819202122232425262728293031323334 |
- from typing import Any
- import requests
- from core.tools.errors import ToolProviderCredentialValidationError
- from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
- class GitlabProvider(BuiltinToolProviderController):
- def _validate_credentials(self, credentials: dict[str, Any]) -> None:
- try:
- if 'access_tokens' not in credentials or not credentials.get('access_tokens'):
- raise ToolProviderCredentialValidationError("Gitlab Access Tokens is required.")
-
- if 'site_url' not in credentials or not credentials.get('site_url'):
- site_url = 'https://gitlab.com'
- else:
- site_url = credentials.get('site_url')
- try:
- headers = {
- "Content-Type": "application/vnd.text+json",
- "Authorization": f"Bearer {credentials.get('access_tokens')}",
- }
- response = requests.get(
- url= f"{site_url}/api/v4/user",
- headers=headers)
- if response.status_code != 200:
- raise ToolProviderCredentialValidationError((response.json()).get('message'))
- except Exception as e:
- raise ToolProviderCredentialValidationError("Gitlab Access Tokens is invalid. {}".format(e))
- except Exception as e:
- raise ToolProviderCredentialValidationError(str(e))
|