Spaces:
Sleeping
Sleeping
| # GitHub Developer Markdown Brain | |
| > Used by AI pipeline to generate repos, CI/CD workflows, Actions, and GitHub API integrations. | |
| --- | |
| ## GitHub REST API v3 | |
| ### Base URL | |
| ``` | |
| https://api.github.com | |
| ``` | |
| ### Authentication | |
| ```http | |
| Authorization: Bearer ghp_your_token | |
| Accept: application/vnd.github+json | |
| X-GitHub-Api-Version: 2022-11-28 | |
| ``` | |
| ### Core Endpoints | |
| ``` | |
| GET /repos/{owner}/{repo} # Repo info | |
| GET /repos/{owner}/{repo}/contents/{path} # File content | |
| POST /repos/{owner}/{repo}/contents/{path} # Create file | |
| PUT /repos/{owner}/{repo}/contents/{path} # Update file | |
| GET /repos/{owner}/{repo}/git/trees/{sha} # File tree | |
| GET /search/repositories?q={query} # Search repos | |
| GET /repos/{owner}/{repo}/issues # List issues | |
| POST /repos/{owner}/{repo}/issues # Create issue | |
| GET /repos/{owner}/{repo}/pulls # List PRs | |
| POST /repos/{owner}/{repo}/pulls # Create PR | |
| GET /repos/{owner}/{repo}/releases # List releases | |
| POST /repos/{owner}/{repo}/releases # Create release | |
| GET /repos/{owner}/{repo}/actions/runs # Workflow runs | |
| POST /repos/{owner}/{repo}/deployments # Create deployment | |
| ``` | |
| ### Create/Update File | |
| ```python | |
| import base64, requests | |
| def push_file(owner, repo, path, content, message, token, sha=None): | |
| url = f"https://api.github.com/repos/{owner}/{repo}/contents/{path}" | |
| headers = { | |
| "Authorization": f"Bearer {token}", | |
| "Accept": "application/vnd.github+json", | |
| "X-GitHub-Api-Version": "2022-11-28", | |
| } | |
| body = { | |
| "message": message, | |
| "content": base64.b64encode(content.encode()).decode(), | |
| } | |
| if sha: | |
| body["sha"] = sha # required for updates | |
| r = requests.put(url, json=body, headers=headers) | |
| return r.json() | |
| ``` | |
| ### Search Repositories | |
| ``` | |
| GET /search/repositories?q=react+language:typescript&sort=stars&per_page=10 | |
| ``` | |
| Response: | |
| ```json | |
| { | |
| "total_count": 1234, | |
| "items": [ | |
| { | |
| "full_name": "owner/repo", | |
| "description": "...", | |
| "stargazers_count": 5000, | |
| "language": "TypeScript", | |
| "html_url": "https://github.com/owner/repo", | |
| "topics": ["react", "typescript"], | |
| "updated_at": "2024-01-01T00:00:00Z" | |
| } | |
| ] | |
| } | |
| ``` | |
| --- | |
| ## GitHub Actions Workflows | |
| ### Standard CI/CD Pipeline | |
| ```yaml | |
| # .github/workflows/ci.yml | |
| name: CI/CD Pipeline | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| NODE_VERSION: '20' | |
| PYTHON_VERSION: '3.11' | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run tests | |
| run: npm test | |
| - name: Build | |
| run: npm run build | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| deploy: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| environment: production | |
| steps: | |
| - name: Download artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| - name: Deploy to Cloudflare Pages | |
| uses: cloudflare/wrangler-action@v3 | |
| with: | |
| apiToken: ${{ secrets.CF_API_TOKEN }} | |
| accountId: ${{ secrets.CF_ACCOUNT_ID }} | |
| command: pages deploy dist/ --project-name=my-project | |
| ``` | |
| ### Python FastAPI CI | |
| ```yaml | |
| name: FastAPI CI | |
| on: [push, pull_request] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - run: pip install -r requirements.txt | |
| - name: Run tests | |
| run: pytest tests/ -v --cov=app --cov-report=xml | |
| - name: Lint | |
| run: | | |
| pip install ruff | |
| ruff check . | |
| deploy-hf: | |
| needs: test | |
| if: github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Push to HuggingFace Space | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| git remote add hf https://Daviddolor:${HF_TOKEN}@huggingface.co/spaces/Daviddolor/instatic-cms | |
| git push hf main --force | |
| ``` | |
| ### Android Build Workflow | |
| ```yaml | |
| name: Android CI | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Build Debug APK | |
| run: ./gradlew assembleDebug | |
| - name: Run Unit Tests | |
| run: ./gradlew test | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: debug-apk | |
| path: app/build/outputs/apk/debug/app-debug.apk | |
| - name: Sign Release APK | |
| if: github.ref == 'refs/heads/main' | |
| run: | | |
| echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > keystore.jks | |
| ./gradlew assembleRelease \ | |
| -Pandroid.injected.signing.store.file=keystore.jks \ | |
| -Pandroid.injected.signing.store.password="${{ secrets.KEYSTORE_PASSWORD }}" \ | |
| -Pandroid.injected.signing.key.alias="${{ secrets.KEY_ALIAS }}" \ | |
| -Pandroid.injected.signing.key.password="${{ secrets.KEY_PASSWORD }}" | |
| ``` | |
| --- | |
| ## GitHub Flavored Markdown (GFM) | |
| ### Headings | |
| ```markdown | |
| # H1 ## H2 ### H3 #### H4 | |
| ``` | |
| ### Code Blocks with Syntax Highlighting | |
| ```markdown | |
| ```python | |
| def hello(): | |
| return "world" | |
| ``` | |
| ``` | |
| ### Tables | |
| ```markdown | |
| | Column A | Column B | Column C | | |
| |----------|:--------:|---------:| | |
| | left | center | right | | |
| ``` | |
| ### Task Lists | |
| ```markdown | |
| - [x] Completed task | |
| - [ ] Pending task | |
| - [ ] Another task | |
| ``` | |
| ### Alerts (GitHub only) | |
| ```markdown | |
| > [!NOTE] | |
| > Information users should know. | |
| > [!WARNING] | |
| > Critical content demanding attention. | |
| > [!TIP] | |
| > Helpful advice. | |
| ``` | |
| ### Mermaid Diagrams | |
| ````markdown | |
| ```mermaid | |
| graph TD | |
| A[User Prompt] --> B[Analyzer] | |
| B --> C[Planner] | |
| C --> D[Code Generator] | |
| D --> E{Validator} | |
| E -->|Pass| F[Deploy] | |
| E -->|Fail| G[Auto-Fix] | |
| G --> D | |
| ``` | |
| ```` | |
| --- | |
| ## .gitignore Templates | |
| ### Python / FastAPI | |
| ```gitignore | |
| __pycache__/ | |
| *.py[cod] | |
| *.egg-info/ | |
| .env | |
| .env.* | |
| !.env.example | |
| venv/ | |
| .venv/ | |
| dist/ | |
| build/ | |
| *.log | |
| .pytest_cache/ | |
| .coverage | |
| htmlcov/ | |
| ``` | |
| ### Node / React | |
| ```gitignore | |
| node_modules/ | |
| dist/ | |
| build/ | |
| .env | |
| .env.local | |
| .env.*.local | |
| *.log | |
| .DS_Store | |
| .cache/ | |
| .parcel-cache/ | |
| ``` | |
| ### Android | |
| ```gitignore | |
| *.iml | |
| .gradle/ | |
| local.properties | |
| .idea/ | |
| .DS_Store | |
| build/ | |
| captures/ | |
| *.jks | |
| *.keystore | |
| google-services.json | |
| ``` | |
| --- | |
| ## GitHub Release Automation | |
| ```python | |
| import requests | |
| def create_release(owner, repo, tag, name, body, token): | |
| url = f"https://api.github.com/repos/{owner}/{repo}/releases" | |
| headers = { | |
| "Authorization": f"Bearer {token}", | |
| "Accept": "application/vnd.github+json", | |
| } | |
| data = { | |
| "tag_name": tag, # "v1.0.0" | |
| "name": name, # "Release v1.0.0" | |
| "body": body, # Markdown release notes | |
| "draft": False, | |
| "prerelease": False, | |
| "generate_release_notes": True, # Auto-generate from PRs | |
| } | |
| return requests.post(url, json=data, headers=headers).json() | |
| ``` | |