Skip to main content

render-lab-tasks-github

GitHub tasks for Render Workflows. Version 0.1.1 implements all 26 registered tasks and the registration-free webhook adapter. Version 0.1.0 contained only the original issue-list/label subset.

Install from PyPI with Python 3.12+:

pip install render-lab-tasks-github==0.1.1
from render import TaskContext, Workflows
from render_lab_tasks_github.tasks import app as github_app, list_new_issues

app = Workflows.from_workflows(github_app)


@app.task(name="example.readIssues")
async def read_issues(ctx: TaskContext):
    return await ctx.run(list_new_issues, {"repo": "render-oss/sdk", "limit": 5})

Call app.start() from the workflow entry point. Raw list_new_issues_impl and apply_labels_impl are also exported from .tasks; inject GitHubDeps with a GitHubPort fake to test or wrap under your own task name. Do not call a wrapped task directly. Use await ctx.run(task, input).

Contract

list_new_issues takes repo (owner/name), optional sinceISO, and optional nonnegative integer limit (default 50; explicit null also selects 50, matching TypeScript). Returns plain issue dictionaries with number, title, body, url, labels, createdAt, and nullable author. Lists open issues newest-created first, skips pull requests, and follows pages until the requested issue count or the end. sinceISO filters by GitHub's updated-since behavior, matching the TS adapter. Zero limit performs no request.

apply_labels takes repo, issueNumber, and labels. Returns issueNumber and the requested labels. An empty label list makes no HTTP request. This task writes when called; dry-run decisions belong to the workflow caller.

Environment

Variable Required Purpose
GITHUB_TOKEN For writes/private repos; optional for public reads GitHub token with permissions for the requested repository/operation

Credentials are read during calls, never at import. GitHub responses determine permission failures. HTTPX uses a 30-second timeout and no automatic retries. Render retries failed tasks up to three times with a 1000 ms base delay and 2x backoff. Pagination may make multiple requests within an attempt; writes may be retried and callers must account for vendor idempotency.

Render SDK 1.0.1 result limitation

The raw implementation always returns a list. The pinned SDK unwraps a singleton list after a durable child run, so consumers should normalize the result:

issues = await ctx.run(list_new_issues, {"repo": "owner/repo", "limit": 5})
if isinstance(issues, dict):
    issues = [issues]

Both examples include this workaround. See ADR-0005.

Repository and PR operations

The expanded pack covers repositories, organization inventory, branches, file reads/writes, atomic multi-file commits, PRs/reviews/merges, workflow dispatch, search, and issue comments/updates. Raw implementations accept GitHubDeps. GITHUB_TOKEN remains lazy; public reads can run unauthenticated. Search and writes require the appropriate token permissions.

commit_files rejects empty/duplicate/traversing paths, limits decoded content to 3,500,000 bytes, and optionally checks the expected branch head. It creates blobs/tree/commit before updating the branch without forcing it. Branch creation and deletion handle already-existing/missing resources. merge_when_green performs one checks/status read per attempt before merging. No live repository writes or merges were used for this port.

Webhook adapter

render_lab_tasks_github.webhooks.github_adapter(on_event, ...) returns a registration-free adapter for render_lab_triggers. The callback receives the verified event and returns {"task": "namespace.task", "args": [event]} or None. The signing credential GITHUB_WEBHOOK_SECRET is read inside verification unless provided explicitly. Importing this module does not register tasks. Signature checks use the raw body; live delivery remains in the testing backlog.

Metadata

Release files for render-lab-tasks-github 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for render-lab-tasks-github 0.1.1
File Size Uploaded Provenance Actions
render_lab_tasks_github-0.1.1.tar.gz 16.1 kB With provenance Details for render_lab_tasks_github-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for render-lab-tasks-github 0.1.1
File Interpreter ABI Platform Actions
render_lab_tasks_github-0.1.1-py3-none-any.whl Python 3 none any Details for render_lab_tasks_github-0.1.1-py3-none-any.whl

Total release size: 44.0 kB

Release files / render_lab_tasks_github-0.1.1.tar.gz

Download URL render_lab_tasks_github-0.1.1.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7e422607df825e597ab1790afd11c117806d64a7ad0ca6357ceb517e6f524c7b
BLAKE2b-256 checksum
How to use checksums
59f1a83598660997bef22cad48d4c5149b19fac932452670d8df6d09e475f367
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / render_lab_tasks_github-0.1.1-py3-none-any.whl

Download URL render_lab_tasks_github-0.1.1-py3-none-any.whl
Size 27.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb82dc8b67c8dfa7b691f5552fb5c430a40e8fa00a6b0e01b81c1965c67c2dce
BLAKE2b-256 checksum
How to use checksums
54d9527a6fd560b13b1aafb7eb6d5cb84b448551800f4b71ca618647e761c0f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Security for render-lab-tasks-github 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for render_lab_tasks_github-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page