## ParseContextURL `runners.parse_context_url(RunnerParseContextURLParams**kwargs) -> RunnerParseContextURLResponse` **post** `/gitpod.v1.RunnerService/ParseContextURL` Parses a context URL and returns the parsed result. Use this method to: - Validate context URLs - Check repository access - Verify branch existence Returns: - FAILED_PRECONDITION if authentication is required - PERMISSION_DENIED if access is not allowed - INVALID_ARGUMENT if URL is invalid - NOT_FOUND if repository/branch doesn't exist ### Examples - Parse URL: Parses and validates a context URL. ```yaml contextUrl: "https://github.com/org/repo/tree/main" ``` ### Parameters - `context_url: Optional[str]` - `runner_id: Optional[str]` ### Returns - `class RunnerParseContextURLResponse: …` - `git: Optional[Git]` - `branch: Optional[str]` - `clone_url: Optional[str]` - `commit: Optional[str]` - `host: Optional[str]` - `owner: Optional[str]` - `repo: Optional[str]` - `tag: Optional[str]` - `upstream_remote_url: Optional[str]` - `issue: Optional[Issue]` - `id: Optional[str]` id is the source system's ID of this issue, e.g. BNFRD-6100 - `title: Optional[str]` - `original_context_url: Optional[str]` - `pr: Optional[Pr]` Deprecated: Use top-level PullRequest message instead - `id: Optional[str]` - `from_branch: Optional[str]` - `title: Optional[str]` - `to_branch: Optional[str]` - `project_ids: Optional[List[str]]` project_ids is a list of projects to which the context URL belongs to. - `pull_request: Optional[PullRequest]` PullRequest represents pull request metadata from source control systems. This message is used across workflow triggers, executions, and agent contexts to maintain consistent PR information throughout the system. - `id: Optional[str]` Unique identifier from the source system (e.g., "123" for GitHub PR #123) - `author: Optional[str]` Author name as provided by the SCM system - `draft: Optional[bool]` Whether this is a draft pull request - `from_branch: Optional[str]` Source branch name (the branch being merged from) - `repository: Optional[PullRequestRepository]` Repository information - `clone_url: Optional[str]` - `host: Optional[str]` - `name: Optional[str]` - `owner: Optional[str]` - `state: Optional[State]` Current state of the pull request - `"STATE_UNSPECIFIED"` - `"STATE_OPEN"` - `"STATE_CLOSED"` - `"STATE_MERGED"` - `title: Optional[str]` Pull request title - `to_branch: Optional[str]` Target branch name (the branch being merged into) - `url: Optional[str]` Pull request URL (e.g., "https://github.com/owner/repo/pull/123") - `scm_id: Optional[str]` scm_id is the unique identifier of the SCM provider (e.g., "github", "gitlab", "bitbucket") ### Example ```python import os from gitpod import Gitpod client = Gitpod( bearer_token=os.environ.get("GITPOD_API_KEY"), # This is the default and can be omitted ) response = client.runners.parse_context_url( context_url="https://github.com/org/repo/tree/main", ) print(response.git) ``` #### Response ```json { "git": { "branch": "branch", "cloneUrl": "cloneUrl", "commit": "commit", "host": "host", "owner": "owner", "repo": "repo", "tag": "tag", "upstreamRemoteUrl": "upstreamRemoteUrl" }, "issue": { "id": "id", "title": "title" }, "originalContextUrl": "originalContextUrl", "pr": { "id": "id", "fromBranch": "fromBranch", "title": "title", "toBranch": "toBranch" }, "projectIds": [ "string" ], "pullRequest": { "id": "id", "author": "author", "draft": true, "fromBranch": "fromBranch", "repository": { "cloneUrl": "cloneUrl", "host": "host", "name": "name", "owner": "owner" }, "state": "STATE_UNSPECIFIED", "title": "title", "toBranch": "toBranch", "url": "url" }, "scmId": "scmId" } ```