octodemo / awesome-actions

Repository template used to showcase Actions that tie into pull request and issue events
109 stars 24 forks source link

Stale-fix example #63

Closed jonico closed 4 years ago

jonico commented 4 years ago

@github-actions run

🚀 Merge preview ```js // Get pull-req URL like "https://api.github.com/repos/nwtgck/actions-merge-preview/pulls/4" const pullReqUrl = context.payload.issue.pull_request.url; const githubUser = context.payload.repository.owner.login; const res = await fetch(pullReqUrl, { headers: [ ['Authorization', `Basic ${Buffer.from(`${githubUser}:${githubToken}`).toString('base64')}`] ] }); const resJson = await res.json(); const prUserName = resJson.head.user.login; const baseBranchName = resJson.base.ref; const branchName = resJson.head.ref; const fullRepoName = resJson.head.repo.full_name; const previewBranchName = `actions-merge-preview/${prUserName}-${branchName}`; execSync(`git config --global user.email "github-actions[bot]@users.noreply.github.com"`); execSync(`git config --global user.name "github-actions[bot]"`); // (from: https://stackoverflow.com/a/23987039/2885946) execSync(`git fetch --all`); console.log(execSync(`git checkout ${baseBranchName}`).toString()); console.log(execSync(`git checkout -b ${previewBranchName} ${baseBranchName}`).toString()); console.log(execSync(`git pull https://github.com/${fullRepoName}.git ${branchName}`).toString()); // Push preview branch // NOTE: Force push (should be safe because preview branch always start with "actions-merge-preview/") execSync(`git push -fu origin ${previewBranchName}`); const baseRepoFullName = context.payload.repository.full_name; // Comment body const commentBody = `🚀 Preview branch: \n`; // Comment the deploy URL await postComment(commentBody); ```
github-actions[bot] commented 4 years ago

🚀 Preview branch:
https://github.com/octodemo/awesome-actions/tree/actions-merge-preview/jonico-ggg-fix-stale

jonico commented 4 years ago

@github-actions run

🌐 SSH debug over Piping Server ```js const pathLen = 64; const aPath = randomString(pathLen); const bPath = randomString(pathLen); console.log(execSync(` chmod 755 "$HOME" ls -lA /home authorized_keys_file="$(sshd -T 2>/dev/null | grep -E '^authorizedkeysfile ' | cut -d ' ' -f 2)" authorized_keys_file="$(cd && realpath -m "$authorized_keys_file")" sshd_config_dir="$(dirname "$authorized_keys_file")" (umask 0077 && mkdir "$sshd_config_dir") echo $authorized_keys_file; # (from: https://qiita.com/zackey2/items/429c77e5780ba8bc1bf9#authorized_keys%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95) (echo; curl https://github.com/jonico.keys; echo) >> ~/.ssh/authorized_keys sudo apt install -y socat; `).toString()); // Comment new session const commentBody = `\ ## 🌐 New SSH session Run the commands below in different terminals. \`\`\`bash socat TCP-LISTEN:31376 'EXEC:curl -NsS https\\://ppng.io/${bPath}!!EXEC:curl -NsST - https\\://ppng.io/${aPath}' \`\`\` \`\`\`bash ssh-keygen -R '[localhost]:31376' ssh -p 31376 runner@localhost \`\`\` `; await githubClient.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: commentBody }); execSync(`socat 'EXEC:curl -NsS https\\://ppng.io/${aPath}!!EXEC:curl -NsST - https\\://ppng.io/${bPath}' TCP:127.0.0.1:22`); // (from: https://stackoverflow.com/a/1349426/2885946) function randomString(length) { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for ( var i = 0; i < length; i++ ) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } ``` ## References * ) * Thanks Cryolite!
github-actions[bot] commented 4 years ago

🌐 New SSH session

Run the commands below in different terminals.

socat TCP-LISTEN:31376 'EXEC:curl -NsS https\://ppng.io/FejhkZ6eUqXYGmW1lUf2c7FtzHL9o1oIWE5oewQF8lDikzKQ1TIC1ZRKioioYlY9!!EXEC:curl -NsST - https\://ppng.io/fZZnshQyAGG7GxQHKcTBKKlBC1ylB8opTYv2wcywD086WIH43ULcegIHU71jB1m1'
ssh-keygen -R '[localhost]:31376'
ssh -p 31376 runner@localhost