GitHub - Pull Request - Open external status links externally

Open external links in the "Checks" section in a new tab

当前为 2024-10-29 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name GitHub - Pull Request - Open external status links externally
  3. // @namespace http://hear.com
  4. // @version 2024-08-29
  5. // @description Open external links in the "Checks" section in a new tab
  6. // @author nate.clark@hear.com
  7. // @match https://github.com/Audibene-GMBH/*/pull/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. const isNotGitHubLink = (link) => {
  16. const href = link.getAttribute('href')
  17.  
  18. return href.startsWith('/') === false
  19. }
  20.  
  21. const makeLinkExternal = (link) => {
  22. link.setAttribute('target', '_blank')
  23. link.innerHTML = `<span>Details</span><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><path fill="currentColor" d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2m6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03L9.28 7.78a.75.75 0 0 1-1.042-.018a.75.75 0 0 1-.018-1.042l3.75-3.75l-1.543-1.543A.25.25 0 0 1 10.604 1"/></svg>`
  24. link.style.display = 'grid'
  25. link.style.alignItems = 'center'
  26. link.style.gap = '0.25rem'
  27. link.style.gridAutoFlow = 'column'
  28. }
  29.  
  30. const setLinkTargets = () => {
  31. const links = [...document.querySelectorAll('a.status-actions:not([target])')]
  32. const nonGitHubLinks = links.filter(isNotGitHubLink);
  33.  
  34. nonGitHubLinks.forEach(makeLinkExternal)
  35. }
  36.  
  37. // Because when a build is running, these links are constantly updated/refreshed
  38. setInterval(setLinkTargets, 500)
  39. })();