octokit issue #7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automatic PR for Issue | |
on: | |
issues: | |
types: [opened] | |
jobs: | |
issue_branch: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: "14" | |
- name: Install Octokit | |
run: npm install @octokit/rest | |
- name: Run Script | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
node <<EOF | |
const { Octokit } = require("@octokit/rest"); | |
const exec = require("child_process").execSync; | |
const octokit = new Octokit({ | |
auth: process.env.GITHUB_TOKEN | |
}); | |
async function run() { | |
const context = require(process.env.GITHUB_EVENT_PATH); | |
const issueNumber = context.issue.number; | |
const owner = context.repository.owner.login; | |
const repo = context.repository.name; | |
const branchName = `issue-${issueNumber}-branch`; | |
// Clone the repo and create a new branch | |
exec(`git clone https://github.com/${owner}/${repo}.git`); | |
process.chdir(repo); | |
exec(`git checkout -b ${branchName}`); | |
// Add the file and commit | |
exec(`echo "Hello World" > helloworld.txt`); | |
exec(`git add helloworld.txt`); | |
exec(`git commit -m "Add helloworld.txt"`); | |
exec(`git push origin ${branchName}`); | |
// Create a pull request | |
await octokit.pulls.create({ | |
owner: owner, | |
repo: repo, | |
title: `Pull request for issue #${issueNumber}`, | |
head: branchName, | |
base: 'main', | |
body: 'This is an automated pull request to resolve issue #'+ issueNumber | |
}); | |
} | |
run(); | |
EOF |