Skip to content

Commit 9980046

Browse files
committed
Initial commit of Github auto-merge action
0 parents  commit 9980046

File tree

8 files changed

+9350
-0
lines changed

8 files changed

+9350
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v12

action.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: 'Enable Github Automerge'
2+
description: 'Enable Github auto-merge for specific pull-requests'
3+
branding:
4+
icon: 'git-merge'
5+
color: 'green'
6+
inputs:
7+
github-token:
8+
description: 'The GITHUB_TOKEN secret'
9+
required: true
10+
runs:
11+
using: 'node12'
12+
main: 'dist/index.js'

dist/index.js

Lines changed: 9069 additions & 0 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 195 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "enable-github-automerge-action",
3+
"version": "0.0.0-alpha.1",
4+
"description": "",
5+
"main": "dist/main.ts",
6+
"scripts": {
7+
"build": "ncc build src/main.ts",
8+
"format": "prettier --write **/*.ts",
9+
"format-check": "prettier --check **/*.ts"
10+
},
11+
"author": "Alex Wilson <alex@alexwilson.tech>",
12+
"license": "ISC",
13+
"devDependencies": {
14+
"@types/node": "^14.14.25",
15+
"@vercel/ncc": "^0.27.0",
16+
"prettier": "^2.2.1",
17+
"typescript": "^4.1.3"
18+
},
19+
"dependencies": {
20+
"@actions/core": "^1.2.6",
21+
"@actions/github": "^4.0.0"
22+
}
23+
}

src/main.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import * as core from "@actions/core";
2+
import * as github from "@actions/github";
3+
4+
async function run() {
5+
try {
6+
const token = core.getInput("github-token", { required: true });
7+
const client = github.getOctokit(token);
8+
9+
const { pull_request: pullRequest } = github.context.payload;
10+
if (!pullRequest) {
11+
throw new Error("Event payload missing `pull_request`");
12+
}
13+
14+
core.debug(`Enabling auto-merge for pull-request #${pullRequest.number}`);
15+
client.graphql(`
16+
mutation {
17+
enablePullRequestAutoMerge(input:{
18+
pullRequestId: "${pullRequest.node_id}"
19+
}) {
20+
clientMutationId
21+
pullRequest {
22+
id
23+
state
24+
}
25+
}
26+
}
27+
`);
28+
core.debug(
29+
`Successfully enabled auto-merge for pull-request #${pullRequest.number}`
30+
);
31+
} catch (error) {
32+
core.setFailed(error.message);
33+
}
34+
}
35+
36+
run();

tsconfig.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es6",
4+
"module": "commonjs",
5+
"outDir": "./lib",
6+
"rootDir": "./src",
7+
"strict": true,
8+
"noImplicitAny": false,
9+
"esModuleInterop": true
10+
},
11+
"exclude": ["node_modules", "**/*.test.ts"]
12+
}
13+

0 commit comments

Comments
 (0)