Skip to content

Commit

Permalink
ci: add pycafe sandbox link
Browse files Browse the repository at this point in the history
  • Loading branch information
maartenbreddels committed Oct 21, 2024
1 parent f0b98fc commit de2161a
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
55 changes: 55 additions & 0 deletions .github/pycafe-create-status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import os
import sys
from urllib.parse import quote

from github import Github

# Authenticate with GitHub
access_token = os.getenv("GITHUB_TOKEN")
g = Github(access_token)


repo_name = "widgetti/solara"
pr_number = int(sys.argv[1]) # e.g 65
type = "solara" # streamlit/dash/vizro/solara/panel

# your default code
code = """import ipyreact
class ConfettiWidget(ipyreact.ValueWidget):
_esm = \"""
import confetti from "canvas-confetti";
import * as React from "react";
export default function({value, setValue}) {
return <button onClick={() => confetti() && setValue(value + 1)}>
{value || 0} times confetti
</button>
};\"""
page = ConfettiWidget()
"""

# your default requirements
requirements = """solara
ipyreact
"""

# GitHub Python API
repo = g.get_repo(repo_name)
pr = repo.get_pull(pr_number)

base_url = f"https://py.cafe/snippet/{type}/v1"
url = f"{base_url}#code={quote(code)}&requirements={quote(requirements)}"

commit_sha = pr.head.sha

# Define the deployment status
state = "success" # Options: 'error', 'failure', 'pending', 'success'
description = "Test out this PR on a PyCafe environment"
context = "PyCafe"

# Create the status on the commit
commit = repo.get_commit(commit_sha)
commit.create_status(state="success", target_url=url, description="Test this PR in PyCafe environment", context="PyCafe")
print(f"Deployment status added to commit {commit_sha}, PR https://github.com/{repo_name}/pull/{pr_number}")
16 changes: 16 additions & 0 deletions .github/workflows/pycafe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: PyCafe Sandbox Link
on:
pull_request_target:
types:
- opened
- synchronize
jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Create PyCafe status link
run: python .github/pycafe-create-status.py ${{ github.event.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit de2161a

Please sign in to comment.