Home / File/ deploy_docs_status.py — fastapi Source File

deploy_docs_status.py — fastapi Source File

Architecture documentation for deploy_docs_status.py, a python file in the fastapi codebase. 6 imports, 0 dependents.

File python FastAPI Routing 6 imports 1 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  8aae50f7_04c0_8084_bbfb_84dde926a81a["deploy_docs_status.py"]
  a4a63925_76bf_e8a8_bef2_cb86d161a300["logging"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> a4a63925_76bf_e8a8_bef2_cb86d161a300
  b423f231_0305_b686_5fea_7c66fe42f25b["re"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> b423f231_0305_b686_5fea_7c66fe42f25b
  0dda2280_3359_8460_301c_e98c77e78185["typing"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> 0dda2280_3359_8460_301c_e98c77e78185
  319484c7_306f_9ec1_3de4_788004953d77["github"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> 319484c7_306f_9ec1_3de4_788004953d77
  6913fbd4_39df_d14b_44bb_522e99b65b90["pydantic"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> 6913fbd4_39df_d14b_44bb_522e99b65b90
  d2280984_30d0_0ee6_97ed_95cfcc358f18["pydantic_settings"]
  8aae50f7_04c0_8084_bbfb_84dde926a81a --> d2280984_30d0_0ee6_97ed_95cfcc358f18
  style 8aae50f7_04c0_8084_bbfb_84dde926a81a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import logging
import re
from typing import Literal

from github import Auth, Github
from pydantic import BaseModel, SecretStr
from pydantic_settings import BaseSettings


class Settings(BaseSettings):
    github_repository: str
    github_token: SecretStr
    deploy_url: str | None = None
    commit_sha: str
    run_id: int
    state: Literal["pending", "success", "error"] = "pending"


class LinkData(BaseModel):
    previous_link: str
    preview_link: str
    en_link: str | None = None


def main() -> None:
    logging.basicConfig(level=logging.INFO)
    settings = Settings()

    logging.info(f"Using config: {settings.model_dump_json()}")
    g = Github(auth=Auth.Token(settings.github_token.get_secret_value()))
    repo = g.get_repo(settings.github_repository)
    use_pr = next(
        (pr for pr in repo.get_pulls() if pr.head.sha == settings.commit_sha), None
    )
    if not use_pr:
        logging.error(f"No PR found for hash: {settings.commit_sha}")
        return
    commits = list(use_pr.get_commits())
    current_commit = [c for c in commits if c.sha == settings.commit_sha][0]
    run_url = f"https://github.com/{settings.github_repository}/actions/runs/{settings.run_id}"
    if settings.state == "pending":
        current_commit.create_status(
            state="pending",
            description="Deploying Docs",
            context="deploy-docs",
            target_url=run_url,
        )
        logging.info("No deploy URL available yet")
        return
    if settings.state == "error":
        current_commit.create_status(
            state="error",
            description="Error Deploying Docs",
            context="deploy-docs",
            target_url=run_url,
        )
        logging.info("Error deploying docs")
        return
    assert settings.state == "success"
    if not settings.deploy_url:
// ... (90 more lines)

Domain

Subdomains

Functions

Dependencies

  • github
  • logging
  • pydantic
  • pydantic_settings
  • re
  • typing

Frequently Asked Questions

What does deploy_docs_status.py do?
deploy_docs_status.py is a source file in the fastapi codebase, written in python. It belongs to the FastAPI domain, Routing subdomain.
What functions are defined in deploy_docs_status.py?
deploy_docs_status.py defines 1 function(s): main.
What does deploy_docs_status.py depend on?
deploy_docs_status.py imports 6 module(s): github, logging, pydantic, pydantic_settings, re, typing.
Where is deploy_docs_status.py in the architecture?
deploy_docs_status.py is located at scripts/deploy_docs_status.py (domain: FastAPI, subdomain: Routing, directory: scripts).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free