// ==UserScript== // @name nightly.link buttons // @namespace blankie-scripts // @match http*://github.com/*/*/runs/* // @match http*://github.com/*/*/actions/runs/* // @grant none // @version 1.0 // @author blankie // @run-at document-end // @description Show buttons to nightly.link on artifacts and build logs // ==/UserScript== const INSTANCE_URL = "https://nightly.link"; function pageUpdated() { console.log("awo"); let artifactsDiv = document.evaluate( "//div[@class = 'mx-0 mx-md-1'][h4[@class = 'text-bold']][div[@class = 'color-fg-muted text-small']]", document) .iterateNext(); if (artifactsDiv !== null) { let artifactsButton = document.createElement("a"); artifactsButton.className = "btn"; // https://stackoverflow.com/a/17228764 artifactsButton.style.float = "right"; artifactsButton.innerText = "View on nightly.link"; artifactsButton.href = INSTANCE_URL + location.pathname; artifactsDiv.prepend(artifactsButton); } let githubLogsButton = document.querySelector("a.js-steps-dropdown-raw-logs"); let logsHeader = document.querySelector("div.js-checks-log-toolbar"); if (githubLogsButton !== null) { let nightlyLogsButton = document.createElement("a"); nightlyLogsButton.className = "pl-5 dropdown-item btn-link"; nightlyLogsButton.innerText = "View logs on nightly.link"; nightlyLogsButton.href = INSTANCE_URL + location.pathname + ".txt"; githubLogsButton.parentNode.append(nightlyLogsButton); } else if (logsHeader !== null) { let logsLink = document.createElement("a"); logsLink.innerText = "View on nightly.link"; logsLink.href = INSTANCE_URL + location.pathname + ".txt"; logsHeader.append(logsLink); } } // TODO: function properly on SPA-like navigation pageUpdated();