Skip to content
Ona Docs

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.

    contextUrl: "https://github.com/org/repo/tree/main"
ParametersExpand Collapse
context_url: Optional[str]
formaturi
runner_id: Optional[str]
formatuuid
ReturnsExpand Collapse
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]
Deprecatedpr: 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

One of the following:
"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”)

ParseContextURL

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)
{
  "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"
}
Returns Examples
{
  "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"
}