├── assets
├── images
│ ├── cat-pr.gif
│ └── GH Big Banner.png
└── icons
│ └── icon.svg
├── .github
└── workflows
│ └── main.yml
├── action.yml
├── package.json
├── LICENSE
├── README.md
├── index.js
└── pnpm-lock.yaml
/assets/images/cat-pr.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TeamTigers/minisauras/HEAD/assets/images/cat-pr.gif
--------------------------------------------------------------------------------
/assets/images/GH Big Banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TeamTigers/minisauras/HEAD/assets/images/GH Big Banner.png
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: minisauras
2 |
3 | on: [push]
4 |
5 | jobs:
6 | read:
7 | runs-on: ubuntu-18.04
8 |
9 | steps:
10 | - name: Checkout
11 | uses: actions/checkout@v2
12 | - name: Reads Root Directory
13 | uses: ./ # Uses an action in the root directory
14 | env:
15 | GITHUB_TOKEN: ${{ secrets.TOKEN }}
16 | id: dir
17 | with:
18 | directory: "./"
19 |
--------------------------------------------------------------------------------
/action.yml:
--------------------------------------------------------------------------------
1 | name: 'minisauras'
2 | description: 'A GitHub action that pulls all your JavaScript & CSS files and minify before deployment.'
3 | branding:
4 | icon: minimize-2
5 | color: blue
6 | inputs:
7 | directory:
8 | description: 'Directory reference of which files to be minified'
9 | required: true
10 | default: './'
11 | outputs:
12 | files:
13 | description: 'Test'
14 | runs:
15 | using: 'node12'
16 | main: 'dist/index.js'
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mini-sauras",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/TeamTigers/minisauras.git"
12 | },
13 | "keywords": [],
14 | "author": "",
15 | "license": "ISC",
16 | "bugs": {
17 | "url": "https://github.com/TeamTigers/minisauras/issues"
18 | },
19 | "homepage": "https://github.com/TeamTigers/minisauras#readme",
20 | "dependencies": {
21 | "@actions/core": "^1.2.5",
22 | "@actions/github": "^4.0.0",
23 | "@octokit/core": "^3.1.2",
24 | "@octokit/rest": "^18.0.4",
25 | "csso": "^4.0.3",
26 | "glob": "^7.1.6",
27 | "octokit-plugin-create-pull-request": "^3.9.0",
28 | "terser": "^5.3.0"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 TeamTigers
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | 
4 |
5 | 
6 | 
7 | 
8 | 
9 | [](https://dev.to/_shunjid/minisauras-a-github-action-to-minify-css-and-js-files-34b9)
10 | [](https://hits.seeyoufarm.com)
11 |
12 |
13 |
14 |
15 |
16 | # Minisauras :tada:
17 | Minisauras is an open-source CI/CD automation tool based on :octocat: [**GitHub Actions**](https://github.com/features/actions) that pulls all the JavaScript and CSS files from your base branch, minify them and creates a pull-request with a new branch.
18 |
19 | ## How it works
20 | - Traverse through a given directory (if not provided, traverse from root), finds all the JavaScript & CSS files within it and it's sub-directories.
21 | - Afterwards, **Minisauras** minify all those files.
22 | - Finally, it creates a new branch in your repository, push those changes and creates a pull request that can be merged in your base branch.
23 |
24 | ## Usage
25 | - Create a [personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token).
26 | - Then [setup a secret](https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) using that personal access token in your desired repository.
27 | - Create a workflow. For example: **main.yml** under (.github/workflows) directory.
28 | - In the workflow, provide following things:
29 | * Personal access token. For example: ${{ secrets.TOKEN }} if you set your secret with a name 'TOKEN'.
30 | * The desired directory in which you want to minify CSS and JS files. For example: './' for root and 'src/' for src directory.
31 |
32 | ## Examples
33 |
34 | _**If you want to minify all your JS and CSS files under root directory**_
35 |
36 | ```yml
37 | name: minisauras
38 |
39 | on: [push]
40 |
41 | jobs:
42 | read:
43 | runs-on: ubuntu-18.04
44 |
45 | steps:
46 | - name: Checkout
47 | uses: actions/checkout@v2
48 | - name: minisauras
49 | uses: TeamTigers/minisauras@v2.0.0
50 | env:
51 | GITHUB_TOKEN: ${{ secrets.TOKEN }}
52 | id: dir
53 | with:
54 | directory: './' ## minify all files from root directory
55 | ```
56 |
57 |
58 | _**If you want to minify all your JS and CSS files under your custom directory ex. assets/js & assets/css**_
59 |
60 | ```yml
61 | name: minisauras
62 |
63 | on: [push]
64 |
65 | jobs:
66 | read:
67 | runs-on: ubuntu-18.04
68 |
69 | steps:
70 | - name: Checkout
71 | uses: actions/checkout@v2
72 | - name: minisauras
73 | uses: TeamTigers/minisauras@v2.0.0
74 | env:
75 | GITHUB_TOKEN: ${{ secrets.TOKEN }}
76 | id: dir
77 | with:
78 | directory: 'assets/' ## minify all files under assets directory
79 | ```
80 |
81 | ## Example of usage
82 |
83 | There you go !! We have created an example repository where you can see how minisauras has minified all the CSS and JavaScript files as well as created a new branch and sent a [pull request](https://github.com/TeamTigers/minisauras-example/pull/1).
84 |
85 | 📌 Visit the example repository at : https://github.com/TeamTigers/minisauras-example
86 |
87 |
88 | [](https://github.com/TeamTigers/minisauras-example/)
89 |
90 | ## License
91 | This project is licensed under [MIT](LICENSE)
92 |
93 | ## If you like our work please give it a :star:
94 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const core = require("@actions/core");
2 | const github = require("@actions/github");
3 | const path = require("path");
4 | const fs = require("fs");
5 | const glob = require("glob");
6 | const csso = require("csso");
7 | const {
8 | minify
9 | } = require("terser");
10 |
11 | const {
12 | Octokit
13 | } = require("@octokit/core");
14 | const {
15 | createPullRequest
16 | } = require("octokit-plugin-create-pull-request");
17 | const MyOctokit = Octokit.plugin(createPullRequest);
18 |
19 | /**
20 | * Reads the personal access token and desired directory
21 | * that needs to be minified from workflow.
22 | *
23 | * Exits if token is undefined or, the current branch is a newly
24 | * created branch by minisauras.
25 | *
26 | * Uses 'glob' to find all possible CSS and JS
27 | * files within the desired directory and ignores node_modules.
28 | *
29 | * Minify those files using 'csso' and 'terser' and
30 | * finally push those changes within a new branch to create a PR.
31 | */
32 | (async function init() {
33 | try {
34 | let directory = core.getInput("directory");
35 | const token = process.env.GITHUB_TOKEN;
36 |
37 | if (token === undefined || token.length === 0) {
38 | throw new Error(`
39 | Token not found. Please, set a secret token in your repository.
40 | To know more about creating tokens, visit: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token
41 | To know more about setting up personal access token, visit: https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
42 | `);
43 | }
44 |
45 | const currentBranch = github.context.ref.slice(11);
46 | if (currentBranch.startsWith('_minisauras_')) {
47 | console.log(`Code has been minifed. Branch ${currentBranch} can be merged now.`);
48 | return;
49 | }
50 |
51 | const pluginOctokit = new MyOctokit({
52 | auth: token,
53 | });
54 | const context = github.context;
55 | const repoInfo = context.repo;
56 |
57 | if (
58 | directory == undefined ||
59 | directory == null ||
60 | directory.startsWith(".")
61 | )
62 | directory = "";
63 |
64 | const pattern = `${directory}**/*.{css,js}`;
65 | const options = {
66 | dot: true,
67 | ignore: ["node_modules/**/*"],
68 | };
69 |
70 | const newBranchName = '_minisauras_' + Math.random().toString(36).slice(2);
71 |
72 | /** Using @glob to find all CSS and JS files */
73 | glob(pattern, options, function (er, files) {
74 | if (er) throw new Error("File not found");
75 | let final = [];
76 |
77 | files.forEach(function (file) {
78 | Promise.all([readAndMinify(file)])
79 | .then(function (result) {
80 | final.push({
81 | path: file,
82 | content: result[0],
83 | });
84 | })
85 | .finally(async function () {
86 | let encodedStructure = {};
87 |
88 | if (final.length == files.length && !currentBranch.startsWith('_minisauras_') && files.length !== 0) {
89 | final.forEach(function (eachData) {
90 | encodedStructure[eachData.path] = eachData["content"];
91 | });
92 |
93 | // setting up pr description
94 | const FUNNY_CAT = 'https://media1.tenor.com/images/841aeb9f113999616d097b414c539dfd/tenor.gif';
95 | let prDescription = 'Changes in these files:\n';
96 | files.forEach(function (f) {
97 | prDescription += `- **${f}** \n`;
98 | });
99 | prDescription += ``;
100 |
101 | if (prDescription.includes(FUNNY_CAT)) {
102 | await pluginOctokit.createPullRequest({
103 | owner: repoInfo.owner,
104 | repo: repoInfo.repo,
105 | title: `Minified ${files.length} files`,
106 | body: prDescription,
107 | head: newBranchName,
108 | changes: [{
109 | files: encodedStructure,
110 | commit: `Minified ${files.length} files`,
111 | }, ],
112 | }).then(function (result) {
113 | const tableData = {
114 | 'Pull request url': result.data.url,
115 | 'Pull request title': result.data.title,
116 | 'Sent by': result.data.user.login,
117 | 'Total number of commits': result.data.commits,
118 | 'Additions': result.data.additions,
119 | 'Deletions': result.data.deletions,
120 | 'Number of files changed': result.data.changed_files
121 | }
122 | console.table(tableData);
123 | }).catch(function () {
124 | process.on('unhandledRejection', () => {});
125 | });
126 | }
127 | }
128 | })
129 | .catch(function (error) {
130 | throw new Error(error);
131 | });
132 | });
133 | });
134 | } catch (error) {
135 | throw new Error(error);
136 | }
137 | })();
138 |
139 | /**
140 | * Uses terser and csso to minify JavaScript and CSS files.
141 | * @param {string} file containing file path to be minified.
142 | *
143 | * @return {string} Minified content.
144 | */
145 |
146 | const readAndMinify = async function (file) {
147 | const content = fs.readFileSync(file, "utf8");
148 | const extension = path.extname(file);
149 |
150 | // minify file
151 | if (extension === ".js") {
152 | const result = await minify(content, {
153 | compress: true,
154 | });
155 | return result.code;
156 | } else if (extension === ".css") {
157 | return csso.minify(content).css;
158 | } else {
159 | console.log("Other files");
160 | }
161 | };
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | '@actions/core': 1.2.5
3 | '@actions/github': 4.0.0
4 | '@octokit/core': 3.1.2
5 | '@octokit/rest': 18.0.5
6 | csso: 4.0.3
7 | glob: 7.1.6
8 | octokit-plugin-create-pull-request: 3.9.0
9 | terser: 5.3.0
10 | lockfileVersion: 5.1
11 | packages:
12 | /@actions/core/1.2.5:
13 | dev: false
14 | resolution:
15 | integrity: sha512-mwpoNjHSWWh0IiALdDEQi3tru124JKn0yVNziIBzTME8QRv7thwoghVuT1jBRjFvdtoHsqD58IRHy1nf86paRg==
16 | /@actions/github/4.0.0:
17 | dependencies:
18 | '@actions/http-client': 1.0.8
19 | '@octokit/core': 3.1.2
20 | '@octokit/plugin-paginate-rest': 2.3.2_@octokit+core@3.1.2
21 | '@octokit/plugin-rest-endpoint-methods': 4.1.4
22 | dev: false
23 | resolution:
24 | integrity: sha512-Ej/Y2E+VV6sR9X7pWL5F3VgEWrABaT292DRqRU6R4hnQjPtC/zD3nagxVdXWiRQvYDh8kHXo7IDmG42eJ/dOMA==
25 | /@actions/http-client/1.0.8:
26 | dependencies:
27 | tunnel: 0.0.6
28 | dev: false
29 | resolution:
30 | integrity: sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==
31 | /@octokit/auth-token/2.4.2:
32 | dependencies:
33 | '@octokit/types': 5.4.1
34 | dev: false
35 | resolution:
36 | integrity: sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==
37 | /@octokit/core/3.1.2:
38 | dependencies:
39 | '@octokit/auth-token': 2.4.2
40 | '@octokit/graphql': 4.5.4
41 | '@octokit/request': 5.4.7
42 | '@octokit/types': 5.4.1
43 | before-after-hook: 2.1.0
44 | universal-user-agent: 6.0.0
45 | dev: false
46 | resolution:
47 | integrity: sha512-AInOFULmwOa7+NFi9F8DlDkm5qtZVmDQayi7TUgChE3yeIGPq0Y+6cAEXPexQ3Ea+uZy66hKEazR7DJyU+4wfw==
48 | /@octokit/endpoint/6.0.5:
49 | dependencies:
50 | '@octokit/types': 5.4.1
51 | is-plain-object: 4.1.1
52 | universal-user-agent: 6.0.0
53 | dev: false
54 | resolution:
55 | integrity: sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ==
56 | /@octokit/graphql/4.5.4:
57 | dependencies:
58 | '@octokit/request': 5.4.7
59 | '@octokit/types': 5.4.1
60 | universal-user-agent: 6.0.0
61 | dev: false
62 | resolution:
63 | integrity: sha512-ITpZ+dQc0cXAW1FmDkHJJM+8Lb6anUnin0VB5hLBilnYVdLC0ICFU/KIvT7OXfW9S81DE3U4Vx2EypDG1OYaPA==
64 | /@octokit/plugin-paginate-rest/2.3.2_@octokit+core@3.1.2:
65 | dependencies:
66 | '@octokit/core': 3.1.2
67 | '@octokit/types': 5.4.1
68 | dev: false
69 | peerDependencies:
70 | '@octokit/core': '>=2'
71 | resolution:
72 | integrity: sha512-PjHbMhKryxClCrmfvRpGaKCTxUcHIf2zirWRV9SMGf0EmxD/rFew/abSqbMiLl9uQgRZvqtTyCRMGMlUv1ZsBg==
73 | /@octokit/plugin-request-log/1.0.0:
74 | dev: false
75 | resolution:
76 | integrity: sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==
77 | /@octokit/plugin-rest-endpoint-methods/4.1.4:
78 | dependencies:
79 | '@octokit/types': 5.4.1
80 | deprecation: 2.3.1
81 | dev: false
82 | resolution:
83 | integrity: sha512-Y2tVpSa7HjV3DGIQrQOJcReJ2JtcN9FaGr9jDa332Flro923/h3/Iu9e7Y4GilnzfLclHEh5iCQoCkHm7tWOcg==
84 | /@octokit/request-error/2.0.2:
85 | dependencies:
86 | '@octokit/types': 5.4.1
87 | deprecation: 2.3.1
88 | once: 1.4.0
89 | dev: false
90 | resolution:
91 | integrity: sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==
92 | /@octokit/request/5.4.7:
93 | dependencies:
94 | '@octokit/endpoint': 6.0.5
95 | '@octokit/request-error': 2.0.2
96 | '@octokit/types': 5.4.1
97 | deprecation: 2.3.1
98 | is-plain-object: 4.1.1
99 | node-fetch: 2.6.1
100 | once: 1.4.0
101 | universal-user-agent: 6.0.0
102 | dev: false
103 | resolution:
104 | integrity: sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A==
105 | /@octokit/rest/18.0.5:
106 | dependencies:
107 | '@octokit/core': 3.1.2
108 | '@octokit/plugin-paginate-rest': 2.3.2_@octokit+core@3.1.2
109 | '@octokit/plugin-request-log': 1.0.0
110 | '@octokit/plugin-rest-endpoint-methods': 4.1.4
111 | dev: false
112 | resolution:
113 | integrity: sha512-SPKI24tQXrr1XsnaIjv2x0rl4M5eF1+hj8+vMe3d/exZ7NnL5sTe1BuFyCyJyrc+j1HkXankvgGN9zT0rwBwtg==
114 | /@octokit/types/5.4.1:
115 | dependencies:
116 | '@types/node': 14.6.4
117 | dev: false
118 | resolution:
119 | integrity: sha512-OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ==
120 | /@types/node/14.6.4:
121 | dev: false
122 | resolution:
123 | integrity: sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==
124 | /balanced-match/1.0.0:
125 | dev: false
126 | resolution:
127 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
128 | /before-after-hook/2.1.0:
129 | dev: false
130 | resolution:
131 | integrity: sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
132 | /brace-expansion/1.1.11:
133 | dependencies:
134 | balanced-match: 1.0.0
135 | concat-map: 0.0.1
136 | dev: false
137 | resolution:
138 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
139 | /buffer-from/1.1.1:
140 | dev: false
141 | resolution:
142 | integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
143 | /commander/2.20.3:
144 | dev: false
145 | resolution:
146 | integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
147 | /concat-map/0.0.1:
148 | dev: false
149 | resolution:
150 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
151 | /css-tree/1.0.0-alpha.39:
152 | dependencies:
153 | mdn-data: 2.0.6
154 | source-map: 0.6.1
155 | dev: false
156 | engines:
157 | node: '>=8.0.0'
158 | resolution:
159 | integrity: sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
160 | /csso/4.0.3:
161 | dependencies:
162 | css-tree: 1.0.0-alpha.39
163 | dev: false
164 | engines:
165 | node: '>=8.0.0'
166 | resolution:
167 | integrity: sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
168 | /deprecation/2.3.1:
169 | dev: false
170 | resolution:
171 | integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
172 | /fs.realpath/1.0.0:
173 | dev: false
174 | resolution:
175 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
176 | /glob/7.1.6:
177 | dependencies:
178 | fs.realpath: 1.0.0
179 | inflight: 1.0.6
180 | inherits: 2.0.4
181 | minimatch: 3.0.4
182 | once: 1.4.0
183 | path-is-absolute: 1.0.1
184 | dev: false
185 | resolution:
186 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
187 | /inflight/1.0.6:
188 | dependencies:
189 | once: 1.4.0
190 | wrappy: 1.0.2
191 | dev: false
192 | resolution:
193 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
194 | /inherits/2.0.4:
195 | dev: false
196 | resolution:
197 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
198 | /is-plain-object/4.1.1:
199 | dev: false
200 | engines:
201 | node: '>=0.10.0'
202 | resolution:
203 | integrity: sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA==
204 | /mdn-data/2.0.6:
205 | dev: false
206 | resolution:
207 | integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
208 | /minimatch/3.0.4:
209 | dependencies:
210 | brace-expansion: 1.1.11
211 | dev: false
212 | resolution:
213 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
214 | /node-fetch/2.6.1:
215 | dev: false
216 | engines:
217 | node: 4.x || >=6.0.0
218 | resolution:
219 | integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
220 | /octokit-plugin-create-pull-request/3.9.0:
221 | dev: false
222 | resolution:
223 | integrity: sha512-0NaBjEeVS66+Hxbt8x6JpzUe+x1ljDCILhsYYBaNB8jYRoW8EObEoZGepbqKQAeIqtGHYGZLEHSH/c69bxHySA==
224 | /once/1.4.0:
225 | dependencies:
226 | wrappy: 1.0.2
227 | dev: false
228 | resolution:
229 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
230 | /path-is-absolute/1.0.1:
231 | dev: false
232 | engines:
233 | node: '>=0.10.0'
234 | resolution:
235 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
236 | /source-map-support/0.5.19:
237 | dependencies:
238 | buffer-from: 1.1.1
239 | source-map: 0.6.1
240 | dev: false
241 | resolution:
242 | integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
243 | /source-map/0.6.1:
244 | dev: false
245 | engines:
246 | node: '>=0.10.0'
247 | resolution:
248 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
249 | /terser/5.3.0:
250 | dependencies:
251 | commander: 2.20.3
252 | source-map: 0.6.1
253 | source-map-support: 0.5.19
254 | dev: false
255 | engines:
256 | node: '>=6.0.0'
257 | hasBin: true
258 | resolution:
259 | integrity: sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==
260 | /tunnel/0.0.6:
261 | dev: false
262 | engines:
263 | node: '>=0.6.11 <=0.7.0 || >=0.7.3'
264 | resolution:
265 | integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
266 | /universal-user-agent/6.0.0:
267 | dev: false
268 | resolution:
269 | integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
270 | /wrappy/1.0.2:
271 | dev: false
272 | resolution:
273 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
274 | specifiers:
275 | '@actions/core': ^1.2.5
276 | '@actions/github': ^4.0.0
277 | '@octokit/core': ^3.1.2
278 | '@octokit/rest': ^18.0.4
279 | csso: ^4.0.3
280 | glob: ^7.1.6
281 | octokit-plugin-create-pull-request: ^3.9.0
282 | terser: ^5.3.0
283 |
--------------------------------------------------------------------------------
/assets/icons/icon.svg:
--------------------------------------------------------------------------------
1 |
35 |
--------------------------------------------------------------------------------