您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
基于Aerozb的代码进行了简单地更改 手动确认当前项目 要不要添加
当前为
// ==UserScript== // @name GitHub Actions secrets 自动填写及更新 // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description 基于Aerozb的代码进行了简单地更改 手动确认当前项目 要不要添加 // @author lukey // @match https://github.com/*/settings/secrets/actions* // @grant none // ==/UserScript== ;(function () { 'use strict' var Subhead = document.getElementsByClassName('Subhead')[0] Subhead.style.justifyContent = 'space-between' var button = document.createElement('div') button.className = 'Subhead-actions btn' button.innerText = '自动注入secrets' Subhead.appendChild(button) var flag = null button.onclick = function () { flag = confirm('是否确定注入secrets?') if (!flag) return star() } function star() { console.clear() let env = new Object() let suffix = null let envKeys = [] /* 在此注释以下面添加secrets 格式: env.机密名 = ‘机密值',如有多个机密值请使用&符号分开 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/ //示例: //换成自己的助力码即可 env.DDFACTORY_SHARECODES = 'T0225KkcRU8Y9FaEIh_3wPAKcQCjVWnYaS5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVWnYaS5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVWnYaS5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVWnYaS5kRrbA' env.FRUITSHARECODES = '9bfe7b5b330f4af0b1f979fc87fe2944&9bfe7b5b330f4af0b1f979fc87fe2944&9bfe7b5b330f4af0b1f979fc87fe2944&9bfe7b5b330f4af0b1f979fc87fe2944&9bfe7b5b330f4af0b1f979fc87fe2944' env.PETSHARECODES = 'MTE1NDAxNzcwMDAwMDAwMzg5NTg4NTk=&MTE1NDAxNzcwMDAwMDAwMzg5NTg4NTk=&MTE1NDAxNzcwMDAwMDAwMzg5NTg4NTk=&MTE1NDAxNzcwMDAwMDAwMzg5NTg4NTk=' env.PLANT_BEAN_SHARECODES = 'mlrdw3aw26j3wflpva4usauts5ecdk3fted7y5q&mlrdw3aw26j3wflpva4usauts5ecdk3fted7y5q&mlrdw3aw26j3wflpva4usauts5ecdk3fted7y5q&mlrdw3aw26j3wflpva4usauts5ecdk3fted7y5q' env.DREAM_FACTORY_SHARE_CODES = 'xE2FHpwP8-NFxEoASj29sw==&xE2FHpwP8-NFxEoASj29sw==&xE2FHpwP8-NFxEoASj29sw==&xE2FHpwP8-NFxEoASj29sw==' env.JDJOY_SHARECODES = 'A1c07QOFPcgMt1FYRLhlmKt9zd5YaBeE&A1c07QOFPcgMt1FYRLhlmKt9zd5YaBeE&A1c07QOFPcgMt1FYRLhlmKt9zd5YaBeE&A1c07QOFPcgMt1FYRLhlmKt9zd5YaBeE' env.JXNC_SHARECODES = '{"smp":"a591e640e867399f627a8e2b47d6f903","active":"jdnc_1_3yuanganju210601_2","joinnum":1}&{"smp":"a591e640e867399f627a8e2b47d6f903","active":"jdnc_1_3yuanganju210601_2","joinnum":1}&{"smp":"a591e640e867399f627a8e2b47d6f903","active":"jdnc_1_3yuanganju210601_2","joinnum":1}&{"smp":"a591e640e867399f627a8e2b47d6f903","active":"jdnc_1_3yuanganju210601_2","joinnum":1}' env.JDSGMH_SHARECODES = 'T0225KkcRU8Y9FaEIh_3wPAKcQCjVQmoaT5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVQmoaT5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVQmoaT5kRrbA&T0225KkcRU8Y9FaEIh_3wPAKcQCjVQmoaT5kRrbA' env.JD_CASH_SHARECODES = 'eU9Yab2zZ_5182vWn3QT0w&eU9Yab2zZ_5182vWn3QT0w&eU9Yab2zZ_5182vWn3QT0w&eU9Yab2zZ_5182vWn3QT0w' //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ if (localStorage.getItem('env')) { flag = confirm('本地储存中存在secrets,是否覆盖?') if (flag) { localStorage.setItem('env', JSON.stringify(env)) } else { env = JSON.parse(localStorage.getItem('env')) } } for (let key in env) { envKeys.push(key) } let keyLen = envKeys.length let index = localStorage.getItem('index') let url = window.location.href let rex = url.lastIndexOf('/') suffix = url.substring(rex + 1, url.length) //通过截取URL斜杠后的字符串,判断当前页,是添加还是修改或者secret页面 //在secret页面才进行失败的secret判断 if (isSecretPage()) { //判断是否有设置失败的secret let failedDiv = document.querySelectorAll('div') let isDel = true for (let i = 0; i < failedDiv.length; i++) { if (macth(failedDiv[i].innerHTML, 'Please try again')) { isDel = false if (localStorage.getItem('resetSecret') == null) { localStorage.setItem('resetSecret', envKeys[index - 1]) } break } } //成功设置,则移除resetSecret if (isDel) { localStorage.removeItem('resetSecret') } } if (index == keyLen) { if (confirm('已设置完所有secrets或已设置完新增的secrets,是否从头开始设置')) { if (confirm('真的确定从头开始设置?')) { index = setIndex(index) } } } else if (!index || index > keyLen) { index = setIndex(index) } //获取设置失败的secret let resetSecret = localStorage.getItem('resetSecret') if (isSecretPage()) { //获取页面secrets let keynameList = [] document.querySelectorAll('code').forEach(e => { if (macth(e.className, 'f5')) { keynameList.push(e.innerText) } }) //是否进入更新页 let isUpdate = false //遍历页面secrets,进行下一步动作 for (let i = index; i < keyLen; i++) { for (let j = 0; j < keynameList.length; j++) { //先进入需要重新设置secret的修改页面 if (resetSecret != null) { if (resetSecret == keynameList[j]) { window.location.href += '/' + resetSecret isUpdate = true break } } else { if (envKeys[i] == keynameList[j]) { localStorage.setItem('index', i) window.location.href += '/' + envKeys[i] isUpdate = true break } } } if (isUpdate) { break } window.location.href += '/new' break } } else if (suffix === 'new') { if (resetSecret == null) { document.querySelector('#secret_name').value = envKeys[index] } // 处理设置失败的secret else { document.querySelector('#secret_name').value = resetSecret } addOrUpadteValue(true) } else { addOrUpadteValue(false) } function addOrUpadteValue(isAdd) { //先处理设置失败的secret if (resetSecret != null) { document.querySelector('#secret_value').value = env[resetSecret] } else if (isAdd) { document.querySelector('#secret_value').value = env[envKeys[index]] } else { if(!env[suffix]) return alert('未查询到当前name的值') document.querySelector('#secret_value').value = env[suffix] } localStorage.setItem('index', parseInt(index) + 1) let submit = document.querySelector('.form-group > button') submit.removeAttribute('disabled') submit.click() } function macth(str, macthStr) { return str.indexOf(macthStr) != -1 } function setIndex(index) { localStorage.setItem('index', 0) index = localStorage.getItem('index') return index } function isSecretPage() { return macth(suffix, 'actions') } } })()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址