GitHubIssuesLoader Custom API URL Support (#11378)

- **Description:** Adds support for custom API URL in the
GitHubIssuesLoader. This allows it to be used with Github enterprise
instances.
pull/11435/head
Daniel Butler 10 months ago committed by GitHub
parent 16a80779b9
commit 939bceccb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -17,6 +17,8 @@ class BaseGitHubLoader(BaseLoader, BaseModel, ABC):
"""Name of repository"""
access_token: str
"""Personal access token - see https://github.com/settings/tokens?type=beta"""
github_api_url: str = "https://api.github.com"
"""URL of GitHub API"""
@root_validator(pre=True)
def validate_environment(cls, values: Dict) -> Dict:
@ -183,4 +185,4 @@ class GitHubIssuesLoader(BaseGitHubLoader):
@property
def url(self) -> str:
"""Create URL for GitHub API."""
return f"https://api.github.com/repos/{self.repo}/issues?{self.query_params}"
return f"{self.github_api_url}/repos/{self.repo}/issues?{self.query_params}"

@ -15,6 +15,21 @@ def test_initialization() -> None:
}
def test_initialization_ghe() -> None:
loader = GitHubIssuesLoader(
repo="repo",
access_token="access_token",
github_api_url="https://github.example.com/api/v3",
)
assert loader.repo == "repo"
assert loader.access_token == "access_token"
assert loader.github_api_url == "https://github.example.com/api/v3"
assert loader.headers == {
"Accept": "application/vnd.github+json",
"Authorization": "Bearer access_token",
}
def test_invalid_initialization() -> None:
# Invalid parameter
with pytest.raises(ValueError):

Loading…
Cancel
Save