Copy SSH URL Button for github.com

Adds a button to copy SSH clone URL on GitHub repositories when logged out.

As of 2024-06-05. See the latest version.

// ==UserScript==
// @name        Copy SSH URL Button for github.com
// @namespace   Violentmonkey Scripts
// @match       https://github.com/*/*
// @grant       none
// @version     1.0
// @author      Matthew Hugley
// @description Adds a button to copy SSH clone URL on GitHub repositories when logged out.
// @license     BSD 3-Clause
// ==/UserScript==

function addCopySSHButton() {
    const button = document.createElement("button");
    button.textContent = "Copy SSH URL";
    button.style.cssText = `
        position: absolute;
        left: 50%;
        top: 2%;
        transform: translateX(-50%);
        z-index: 1000;
        padding: 10px 20px;
        border: none;
        border-radius: 5px;
        background-color: #007bff;
        color: white;
        cursor: pointer;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    `;

    button.onclick = function () {
        const repoUrl = window.location.href;
        const sshUrl = repoUrl.replace("https://github.com/", "[email protected]:").replace(/\/$/, "") + ".git";
        navigator.clipboard.writeText(sshUrl).then(
            function () {
                alert("SSH URL copied to clipboard:\n" + sshUrl);
            },
            function (err) {
                console.error("Could not copy SSH URL:", err);
            }
        );
    };

    document.body.appendChild(button);
}

addCopySSHButton();