|
|
|
""" |
|
Simple Space Authentication Verification (GitHub Secrets) |
|
|
|
This script can be added to your Hugging Face Space to verify |
|
that authentication is working correctly using GitHub secrets. |
|
|
|
Usage: |
|
Add this to your Space and run it to verify authentication. |
|
""" |
|
|
|
import os |
|
import sys |
|
|
|
try: |
|
from huggingface_hub import HfApi, login, whoami, create_repo, delete_repo |
|
HF_AVAILABLE = True |
|
except ImportError: |
|
HF_AVAILABLE = False |
|
print("β huggingface_hub not installed") |
|
sys.exit(1) |
|
|
|
|
|
def verify_space_authentication(): |
|
"""Verify authentication is working in the Space using GitHub secrets.""" |
|
print("π Verifying Space Authentication (GitHub Secrets)") |
|
print("=" * 55) |
|
|
|
|
|
space_vars = ["SPACE_ID", "SPACE_HOST", "SPACE_REPO_ID"] |
|
is_space = any(os.getenv(var) for var in space_vars) |
|
|
|
if is_space: |
|
print("β
Running in Hugging Face Space environment") |
|
for var in space_vars: |
|
value = os.getenv(var) |
|
if value: |
|
print(f" - {var}: {value}") |
|
else: |
|
print("βΉοΈ Running in local environment") |
|
|
|
|
|
token = os.getenv("HF_TOKEN") |
|
if not token: |
|
print("β HF_TOKEN not found in environment") |
|
print(" - Please set HF_TOKEN in your GitHub repository secrets") |
|
print(" - Go to GitHub repository β Settings β Secrets and variables β Actions") |
|
print(" - Add HF_TOKEN with your Hugging Face token") |
|
print(" - The Space will automatically have access to this secret") |
|
return False |
|
|
|
print(f"β
HF_TOKEN found: {token[:8]}...{token[-4:]}") |
|
print(f" - Source: GitHub secrets") |
|
|
|
try: |
|
|
|
login(token=token) |
|
|
|
user_info = whoami() |
|
username = user_info["name"] |
|
|
|
print(f"β
Authentication successful!") |
|
print(f" - Username: {username}") |
|
|
|
|
|
api = HfApi() |
|
print(f"β
API access working") |
|
|
|
|
|
print(f"\nπ§ͺ Testing Repository Creation") |
|
repo_name = "test-openllm-verification" |
|
repo_id = f"{username}/{repo_name}" |
|
|
|
print(f"π Creating test repository: {repo_id}") |
|
create_repo( |
|
repo_id=repo_id, |
|
repo_type="model", |
|
exist_ok=True, |
|
private=True |
|
) |
|
print(f"β
Repository created successfully") |
|
|
|
|
|
print(f"π Cleaning up test repository...") |
|
delete_repo(repo_id=repo_id, repo_type="model") |
|
print(f"β
Repository deleted") |
|
|
|
print(f"\nπ All verification tests passed!") |
|
print(f" - Authentication: β
Working") |
|
print(f" - Repository Creation: β
Working") |
|
print(f" - GitHub Secrets Integration: β
Working") |
|
print(f" - Ready for training and model uploads!") |
|
|
|
return True |
|
|
|
except Exception as e: |
|
print(f"β Authentication failed: {e}") |
|
print(f"\nπ§ Troubleshooting:") |
|
print(f"1. Check if HF_TOKEN is set correctly in GitHub repository secrets") |
|
print(f"2. Verify token has 'Write' permissions") |
|
print(f"3. Check Space logs for detailed error messages") |
|
print(f"4. Ensure your Space is connected to the GitHub repository") |
|
return False |
|
|
|
|
|
def main(): |
|
"""Main verification function.""" |
|
print("π OpenLLM - Space Authentication Verification (GitHub Secrets)") |
|
print("=" * 65) |
|
|
|
success = verify_space_authentication() |
|
|
|
if success: |
|
print(f"\nβ
Verification completed successfully!") |
|
print(f" - Your Space is ready for OpenLLM training") |
|
print(f" - Model uploads will work correctly") |
|
print(f" - GitHub secrets integration is working") |
|
else: |
|
print(f"\nβ Verification failed") |
|
print(f" - Please fix authentication issues before training") |
|
sys.exit(1) |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|