您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add missing info in workflow_dispatch actions
当前为
// ==UserScript== // @name GHA workflow_dispatch // @namespace https://gist.github.com/rehangit/58409fc3cca4ec7630487ac13a055b27 // @version 0.1.6 // @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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMTIzIiBoZWlnaHQ9Ijc5NCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA3ZmZmIj48Y2lyY2xlIGN4PSI5OS41IiBjeT0iOTkuNSIgc3Ryb2tlLXdpZHRoPSIxNSIgcj0iNTAiLz48cGF0aCBkPSJNODcgMTIybDM1LTIyLjVMODcgNzd6IiBzdHJva2Utd2lkdGg9IjgiLz48cGF0aCBkPSJNOTkuNSAxNTJjMCAyMi41IDAgMjIuNSA5NSAyMi4wMW0tOTUtMTkuNTFjMCA5Mi43IDAgOTIuNyA2NSA5NSIgc3Ryb2tlLXdpZHRoPSIxNSIvPjxjaXJjbGUgY3g9IjIxOS41IiBjeT0iMjQ5LjUiIHN0cm9rZS13aWR0aD0iMTAiIHI9IjI1Ii8+PHBhdGggZD0iTTIwNyAyNDkuNWg3bTExIDBoNyIgc3Ryb2tlLXdpZHRoPSI4IiBzdHJva2UtZGFzaGFycmF5PSI0MCA0OCIvPjxjaXJjbGUgY3g9IjIxOS41IiBjeT0iMTc0LjUiIHN0cm9rZS13aWR0aD0iMTAiIHI9IjI1Ii8+PHBhdGggZD0iTTIwOC41IDE3Ny44M2w2LjY3IDYuNjcgMTMuMzMtMjAiIHN0cm9rZS13aWR0aD0iOCIvPjwvc3ZnPg== // ==/UserScript== // Use with extension: Tampermonkey or ViolentMonkey // Easier install from: https://greatest.deepsurf.us/en/scripts/435742-gha-workflow-dispatch 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 }); })();