GHA workflow_dispatch

Add missing info in workflow_dispatch actions

目前為 2021-11-20 提交的版本,檢視 最新版本

// ==UserScript==
// @name         GHA workflow_dispatch
// @namespace    https://gist.github.com/rehangit/58409fc3cca4ec7630487ac13a055b27
// @version      0.1.3
// @description  Add missing info in workflow_dispatch actions
// @author       Rehan Ahmad
// @match        https://github.com/*/*/actions
// @match        https://github.com/*/*/actions/*
// @grant        none
// @icon         data:image/svg+xml;base64,PCFkb2N0eXBlIGh0bWw+Cjxzdmcgdmlld0JveD0iODIuODIxIDQ5LjM1NiAzMjMuNTg3IDM4OC4zNiIgd2lkdGg9IjMyMy41ODciIGhlaWdodD0iMzg4LjM2Ij4KICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjE0MjE1OSwgMCwgMCwgMS4xNDIxNTksIC0zOC45NjU1NTcsIC0zNy42Nzc2NykiPgogICAgPHRpdGxlPmFjdGlvbiBpY29uPC90aXRsZT4KICAgIDxnPgogICAgICA8dGl0bGU+Q2lyY2xlIHdpdGggdHJpYW5nbGU8L3RpdGxlPgogICAgICA8Y2lyY2xlIHN0eWxlPSJmaWxsOiBub25lOyBzdHJva2U6IHJnYig4NSwgMTIzLCAyMTgpOyBzdHJva2Utd2lkdGg6IDE1cHg7IiBjeD0iMTgzLjkzOSIgY3k9IjE1My41MTIiIHI9Ijc3LjMxMSI+PC9jaXJjbGU+CiAgICAgIDxwYXRoIGQ9Ik0gMjEyLjU0OSA3MS4wNCBMIDI0OS41MTIgMTM1LjY3MiBMIDE3NS41ODYgMTM1LjY3MiBMIDIxMi41NDkgNzEuMDQgWiIgZGF0YS1ieC1zaGFwZT0idHJpYW5nbGUgMTc1LjU4NiA3MS4wNCA3My45MjYgNjQuNjMyIDAuNSAwIDFAOWQ0NGZhMWUiIHN0eWxlPSJzdHJva2Utd2lkdGg6IDEwcHg7IGZpbGw6IG5vbmU7IHN0cm9rZTogcmdiKDg1LCAxMjMsIDIxOCk7IiB0cmFuc2Zvcm09Im1hdHJpeCgwLCAxLCAtMSwgMCwgMjk4Ljk5MDQ3OSwgLTYwLjkyODcxMSkiPjwvcGF0aD4KICAgIDwvZz4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDE1cHg7IHN0cm9rZTogcmdiKDg1LCAxMjMsIDIxOCk7IiBkPSJNIDE4Ni44OTEgMjM1LjY5NSBDIDE4Ni4zOCAyNzQuOTkgMjE5LjM5NCAyNjUuMjc1IDMwNC4yNyAyNjQuMjkzIj48L3BhdGg+CiAgICA8cGF0aCBzdHlsZT0iZmlsbDogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxNXB4OyBzdHJva2U6IHJnYig4NSwgMTIzLCAyMTgpOyIgZD0iTSAxODYuNzc2IDIzMi4xNjcgQyAxODYuNjAzIDI2OS45NTYgMTg3LjY1NyAzMjQuMzA4IDE4OS4xNTkgMzM5Ljc0MyBDIDE5My44NyAzODguMTU1IDIyMS45MTggMzgxLjk4MiAyNjEuMTg3IDM3OS41OTUiPjwvcGF0aD4KICAgIDxnPgogICAgICA8dGl0bGU+Q2lyY2xlIHdpdGggdGljazwvdGl0bGU+CiAgICAgIDxjaXJjbGUgc3R5bGU9ImZpbGw6IG5vbmU7IHN0cm9rZTogcmdiKDg1LCAxMjMsIDIxOCk7IHN0cm9rZS13aWR0aDogMTVweDsiIGN4PSIzNDYuMDcyIiBjeT0iMjYwLjc2MiIgcj0iNDMuMzAyIj48L2NpcmNsZT4KICAgICAgPHBhdGggc3R5bGU9ImZpbGw6IG5vbmU7IHN0cm9rZTogcmdiKDg1LCAxMjMsIDIxOCk7IHN0cm9rZS13aWR0aDogMTBweDsiIGQ9Ik0gMzIzLjM2MiAyNTkuNzU2IEwgMzM3LjM3NyAyNzMuMTc3IEwgMzY4LjUwOCAyNDQuNDMiPjwvcGF0aD4KICAgIDwvZz4KICAgIDxnPgogICAgICA8dGl0bGU+Q2lyY2xlIHdpdGggZG90czwvdGl0bGU+CiAgICAgIDxjaXJjbGUgc3R5bGU9ImZpbGw6IG5vbmU7IHN0cm9rZTogcmdiKDg1LCAxMjMsIDIxOCk7IHN0cm9rZS13aWR0aDogMTVweDsiIGN4PSIzNDYuNjM4IiBjeT0iMzcyLjkyMiIgcj0iNDMuMzAyIj48L2NpcmNsZT4KICAgICAgPGxpbmUgc3R5bGU9InN0cm9rZS13aWR0aDogMTBweDsgc3Ryb2tlOiByZ2IoODUsIDEyMywgMjE4KTsgc3Ryb2tlLWRhc2hhcnJheTogMTBweDsiIHgxPSIzMzIuMjMzIiB5MT0iMzczLjY5IiB4Mj0iMzY5LjUxNiIgeTI9IjM3My4wNjciPjwvbGluZT4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=
// ==/UserScript==

// Use with extension: Tampermonkey or ViolentMonkey

let GITHUB_TOKEN = localStorage.getItem('GITHUB_TOKEN');
if (!GITHUB_TOKEN) {
  GITHUB_TOKEN = prompt(
    "Please enter your github token with 'repo' access",
    'Github Token'
  );
  localStorage.setItem('GITHUB_TOKEN', GITHUB_TOKEN);
}

const headers = { headers: { Authorization: `token ${GITHUB_TOKEN}` } };

const ghCacheStored = localStorage.getItem('GITHUB_API_CACHE');
const ghCache = (ghCacheStored && JSON.parse(ghCacheStored)) || {};
const getGH = async url => {
  if (!ghCache[url]) {
    ghCache[url] = await fetch(url, headers).then(res => res.json());
    localStorage.setItem('GITHUB_API_CACHE', JSON.stringify(ghCache));
  }
  return ghCache[url];
};

const render = event => {
  console.log('render fired', event);
  setTimeout(() => {
    document
      .querySelectorAll('.Box-row.js-socket-channel.js-updatable-content')
      .forEach(async node => {
        const middle = node.querySelector('.d-table-cell + .d-none');
        if (middle.innerText.trim() === '') {
          const link = node.querySelector('.Link--primary');
          const url = link.href.replace(
            '//github.com',
            '//api.github.com/repos'
          );
          const res = await getGH(url, headers);

          const branch = res.head_branch;
          const href = [res.repository.html_url, 'tree', branch].join('/');

          const sha = res.head_sha.slice(0, 7);
          const href_sha = [
            res.repository.html_url,
            'commit',
            res.head_sha,
          ].join('/');

          middle.innerHTML = `
            <div class="d-inline-block branch-name css-truncate css-truncate-target" style="max-width: 200px;">
              <a href="${href}" target="_blank">${branch}</a>
            </div> 
            <div style="padding: 2px 6px">
              <a class="d-block text-small color-fg-muted" href="${href_sha}" target="_blank">#${sha}</a>
            </div>
          `;
        }
      });
  }, 2000);
};

(() => {
  render();
  document.addEventListener('load', render);
  document.addEventListener('visibilitychange', render);
  document.addEventListener('readystatechange', render);
  window.addEventListener('hashchange', render);

  let lastUrl = location.href;
  new MutationObserver(() => {
    const url = location.href;
    if (url !== lastUrl) {
      lastUrl = url;
      render('mutation-observer');
    }
  }).observe(document, { subtree: true, childList: true });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址