Graphite to GitHub Redirector

Redirects from graphite.dev GitHub PR page to GitHub's PR page

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Graphite to GitHub Redirector
// @namespace    http://tampermonkey.net/
// @version      0.1
// @license      MIT
// @description  Redirects from graphite.dev GitHub PR page to GitHub's PR page
// @author       Walker Hildebrand
// @match        https://app.graphite.dev/github/pr/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Function to extract information from the current URL
    function extractInfoFromURL() {
        const match = window.location.pathname.match(/^\/github\/pr\/([\w-]+)\/([\w-]+)\/(\d+)/);
        if (match) {
            const org = match[1];
            const repo = match[2];
            const prNumber = match[3];
            return { org, repo, prNumber };
        } else {
            console.log('Invalid URL format for GitHub PR.');
            return null;
        }
    }

    // Function to redirect to GitHub PR page
    function redirectToGitHub() {
        const info = extractInfoFromURL();
        if (info) {
            const { org, repo, prNumber } = info;
            const githubURL = `https://github.com/${org}/${repo}/pull/${prNumber}`;
            console.log('Redirecting to GitHub:', githubURL);
            window.location.href = githubURL;
        }
    }

    // Execute the redirect function when the page is loaded
    window.addEventListener('load', redirectToGitHub);
})();