Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

Live test: check highlighting, settings pages, view transitions and base permission (#33)

Altug's feedback rounds landed in #23 and #28; the live test now confirms on
diffinery.com that workflow files are syntax highlighted with both themes,
Settings -> Appearance and the notifications page's settings link exist, pages
opt in to view transitions (and respect reduced motion), visibility "internal"
is refused, and organizations report their base permission.


Claude-Session: https://claude.ai/code/session_01QMFviVKD61QaDPxdrh7C3f

Co-authored-by: Claude <noreply@anthropic.com>
Canberk Demirci authored · GitHub committed signed1 parent 3dce95ccommit 7bbb8ed95a4422b0739820e8b997fedcdb572481Browse files
1 file changed+23−1
modified.github/workflows/live-test.yml+23−1View file
@@ -1,7 +1,7 @@
11 name: Live test
22
33 # End-to-end checks against the real diffinery.com after each deploy: email
4-# sending, hosted Actions jobs in Cloudflare Containers (with Docker builds and services), the container registry, agent sandboxes,
4+# sending, web UI features (syntax highlighting, settings pages, view transitions), hosted Actions jobs in Cloudflare Containers (with Docker builds and services), the container registry, agent sandboxes,
55 # webhooks, scheduled workflows, Git LFS, and pull requests (test merge commits, pull_request_target and the merge
66 # queue). Each run works in a throwaway private repository that it
77 # deletes at the end.
@@ -241,6 +241,28 @@
241241 git push -q "https://x-token:${TOKEN}@${DIFFINERY#https://}/$OWNER/$REPO.git" main
242242 git lfs ls-files
243243
244+ - name: Web UI features (highlighting, settings pages, view transitions, base permission)
245+ if: steps.token.outputs.skip != 'true'
246+ run: |
247+ set -euo pipefail
248+ page() { curl -fsS "$DIFFINERY$1" -H "Authorization: Bearer $TOKEN"; }
249+ has() { grep -qF -- "$2" <<<"$1" || { echo "::error::$3"; exit 1; }; }
250+ html=$(page "/$OWNER/$REPO/blob/main/.github/workflows/ci.yml")
251+ has "$html" '<td class="sh">' "the workflow file is not syntax highlighted"
252+ has "$html" "--shiki-dark" "highlighted code has no dark theme colours"
253+ has "$html" "@view-transition{navigation:auto}" "pages don't opt in to view transitions"
254+ has "$html" "prefers-reduced-motion:no-preference" "view transitions ignore reduced motion"
255+ has "$(page /settings/appearance)" 'name="appearance"' "Settings -> Appearance has no theme choice"
256+ has "$(page /notifications)" 'href="/settings/notifications"' "the notifications page doesn't link to notification settings"
257+ code=$(curl -sS -o /tmp/out -w '%{http_code}' -X POST "$DIFFINERY/api/v3/user/repos" -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" --data "{\"name\":\"$REPO-internal\",\"visibility\":\"internal\"}")
258+ [ "$code" = 422 ] || { echo "::error::visibility internal got $code, expected 422"; curl -sS -o /dev/null -X DELETE "$DIFFINERY/api/v3/repos/$OWNER/$REPO-internal" -H "Authorization: Bearer $TOKEN"; exit 1; }
259+ org=$(page /api/v3/user/orgs | jq -r '.[0].login // empty')
260+ if [ -n "$org" ]; then
261+ perm=$(page "/api/v3/orgs/$org" | jq -r '.default_repository_permission // empty')
262+ case "$perm" in none|read|write|admin) echo "$org's base permission: $perm" ;; *) echo "::error::GET /orgs/$org has no default_repository_permission"; exit 1 ;; esac
263+ fi
264+ echo "highlighting, Appearance, notification settings link, view transitions and visibility checks passed"
265+
244266 - name: Hosted Actions jobs (and Docker) run in Cloudflare Containers
245267 if: steps.token.outputs.skip != 'true'
246268 run: |