[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\nindent_style = tab\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.yml]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": ".gitattributes",
    "content": "* text=auto eol=lf\n"
  },
  {
    "path": ".gitignore",
    "content": "# NPM #\n##########\n# Ignore all directories called node_modules in current folder and any subfolders.\nnode_modules/\n/node_modules/\n\n# Packages #\n############\n*.7z\n*.dmg\n*.gz\n*.bz2\n*.iso\n*.jar\n*.rar\n*.tar\n*.zip\n*.tgz\n*.map\n\n# Logs and databases #\n######################\n*.log\n*.sql\n*.env\n\n# OS generated files #\n######################\n**.DS_Store*\nehthumbs.db\nIcon?\nThumbs.db\n._*\n\n# Vim generated files #\n######################\n*.un~\n\n# SASS #\n##########\n**/.sass-cache\n**/.sass-cache/*\n**/.map\n\n# Composer #\n##########\n!assets/js/vendor/\nwpcs/\n/vendor/\n\n# Bower #\n##########\nassets/bower_components/*\n\n# Codekit #\n##########\n/codekit-config.json\n*.codekit\n**.codekit-cache/*\n\n# Compiled Files and Build Dirs #\n##########\n/README.html\n\n# PhpStrom Project Files #\n.idea/\nlibrary/vendors/composer\nassets/img/.DS_Store\n\n# No lock files.\npackage-lock.json\nyarn.lock\n"
  },
  {
    "path": ".npmrc",
    "content": "package-lock=false\n"
  },
  {
    "path": "changelog.md",
    "content": "# CHANGELOG\n\nAll notable changes in this project's [released versions](../../releases) are documented in this file.\n\n[![VSCode](https://img.shields.io/badge/-VSCode.pro%20%E2%86%92-gray.svg?colorB=4D2AFF)](https://VSCode.pro/?utm_source=GitHubFOSS)\n[![Ahmad on Twitter](https://img.shields.io/twitter/follow/mrahmadawais.svg?style=social&label=Follow%20@MrAhmadAwais)](https://twitter.com/mrahmadawais/)\n\n<br>\n\nI have released a video course to help you become a better developer — <a href=\"https://vscode.pro/?utm_source=GitHubFOSS\" target=\"_blank\">Become a VSCode Power User →</a></p>\n\n<a href=\"https://vscode.pro/?utm_source=GitHubFOSS\" target=\"_blank\"><img src=\"https://raw.githubusercontent.com/ahmadawais/stuff/master/images/vscodepro/VSCode.jpeg\" /><br>VSCode</a> →\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n**CHANGELOG KEY**: `📦 NEW`, `👌 IMPROVE`, `🐛 FIX`, `📖 DOC`, `🚀 RELEASE`, and `✅ TEST`\n\n<small>\n\n> _I use [Emoji-log](https://github.com/ahmadawais/Emoji-Log), you should try it and simplify your git commits._\n\n</small>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.7.1](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.7.0...1.7.1)\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.7.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.6.0...1.7.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Git test [`a54032c`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a54032ceb30049ef581aa9280d688860ddcbf16e) <br>\n> 📦 Dir option [`06438b5`](https://github.com/ahmadawais/wp-continuous-deployment/commit/06438b59cefd75b7d915023ea638bd09c6d8b102) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n> 📖 Changelog update [`0a8c652`](https://github.com/ahmadawais/wp-continuous-deployment/commit/0a8c6520524fc5b03d392d72b07c41cc9bc6ddda) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.6.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.5.1...1.6.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Typo + Brand color [`a4a38d5`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a4a38d5b3b907d34377cbc25e616870f26bcad14) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n> 📖 Changelog update [`283ef0b`](https://github.com/ahmadawais/wp-continuous-deployment/commit/283ef0be72981d2f9da273028e522eb8300661b8) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.5.1](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.4.0...1.5.1)\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Merge branch 'master' [`5dcc34e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/5dcc34e5b4884b2ffffe8112ea7f0e517f0b4ef2) <br>\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Typo [`27d8206`](https://github.com/ahmadawais/wp-continuous-deployment/commit/27d82062fda5a82f185a61214ed70cc29787d266) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`e2e9368`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e2e93685ea6fb23d85c1bd7d63963025bd7caea8) <br>\n>  📖 Changelog update [`e5fc723`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e5fc723ea7b0b83ae21572c4e928de8136e5299d) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.4.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.3.0...1.4.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Deps update [`13890eb`](https://github.com/ahmadawais/wp-continuous-deployment/commit/13890eb71601517ec635e20d69f3f81966b57de7) <br>\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Lingo [`84a1021`](https://github.com/ahmadawais/wp-continuous-deployment/commit/84a10219ea9b53b3a406c7fa57d8fa18862dc4ac) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`ebd2fe9`](https://github.com/ahmadawais/wp-continuous-deployment/commit/ebd2fe9302768b66a049594bcef950fb1dd56d5b) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.3.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.2.0...1.3.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Gif [`e436940`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e436940b13c051065e526d86138e083efe80962a) <br>\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Typos [`ff02c14`](https://github.com/ahmadawais/wp-continuous-deployment/commit/ff02c14b89816529df7d4842a270571daabf990a) <br>\n> 🐛 Bad instruction [`9922e33`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9922e336514c1e478d471c21fe8a0c5f5a459806) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`3571696`](https://github.com/ahmadawais/wp-continuous-deployment/commit/35716966deced7daed41366f4ea59618a05c1482) <br>\n> 📖 Lingo Format [`cb40880`](https://github.com/ahmadawais/wp-continuous-deployment/commit/cb40880042272a810e651c4acde57f5b1153be42) <br>\n> 📖 Lingo [`d510525`](https://github.com/ahmadawais/wp-continuous-deployment/commit/d510525a6141513bf59adb6fce86254d448a1805) <br>\n> 📖 Name [`4205a98`](https://github.com/ahmadawais/wp-continuous-deployment/commit/4205a986403066cca33423e014ca9987322af48b) <br>\n> 📖 Gif or didn't happen [`f6eac9f`](https://github.com/ahmadawais/wp-continuous-deployment/commit/f6eac9fd483375b6c3c8e4ae0ccd3607b37cf769) <br>\n> 📖 Credits [`a6e5d12`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a6e5d1285d703877d4c5959023188500869fc4b6) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.2.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.1.0...1.2.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Extraneous logs and modules [`cd68d60`](https://github.com/ahmadawais/wp-continuous-deployment/commit/cd68d6087b1d2fff12e94251a3976a471f64a112) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`e01cec6`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e01cec6b5187e70b57d15b2f1bc6aa1306bf1ea4) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.1.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.0.3...1.1.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Current working dir [`28f6538`](https://github.com/ahmadawais/wp-continuous-deployment/commit/28f6538e81ad12f36b5241cd283b3abebdbbeb7c) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`9c25267`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9c25267aee2ff2369f8c8869f46aed92242f8100) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.0.3](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.0.2...1.0.3)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Current working dir [`9d6c72e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9d6c72e975479aa1f3bcc2d0e0e9b41b8fc935bc) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`12cf7c9`](https://github.com/ahmadawais/wp-continuous-deployment/commit/12cf7c95fd4831495b7fa2b0274eda0b5f962feb) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.0.2](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.0.1...1.0.2)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Download Dir [`fcb1d6d`](https://github.com/ahmadawais/wp-continuous-deployment/commit/fcb1d6dcf0aa96d24dda641aeccb3897897f8184) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`2184fd6`](https://github.com/ahmadawais/wp-continuous-deployment/commit/2184fd6e78c9c6db32b585c2d1d2b8fa1a847610) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.0.1](https://github.com/ahmadawais/wp-continuous-deployment/compare/1.0.0...1.0.1)\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`eaabd43`](https://github.com/ahmadawais/wp-continuous-deployment/commit/eaabd43c2c2f86aa98dedb80cffa38f94c310710) <br>\n> 📖 General Availability [`9f3d8e2`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9f3d8e2e0142872ea20a6f1000f89bf27bf9c5d4) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [1.0.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.9.2...1.0.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Empty Dir [`5b33c69`](https://github.com/ahmadawais/wp-continuous-deployment/commit/5b33c697325a809d3570504e402b83808d0e2dba) <br>\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Sync downloads [`6b9bc9e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/6b9bc9ec44664ce149ff64666c325ff81f2016f2) <br>\n> 👌 Finish line messages [`5e90ddd`](https://github.com/ahmadawais/wp-continuous-deployment/commit/5e90ddd18d78f2e79eb75f2cbdefee2f546e45c1) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n> 📖 Improve instructions [`09ca108`](https://github.com/ahmadawais/wp-continuous-deployment/commit/09ca108bb553f3089906b049ab3a40d0377b6a5a) <br>\n>  📖 Changelog update [`6d4560e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/6d4560e24b62d1411d74598fea0a8211cbf97aa5) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.9.2](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.9.1...0.9.2)\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Rename the build [`e0c0204`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e0c02049797c6328a0317aef4817f77d640d8bd6) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`e0541a7`](https://github.com/ahmadawais/wp-continuous-deployment/commit/e0541a784fb2446fbf1672e878db52331f461a07) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.9.1](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.9.0...0.9.1)\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Slug situation [`ed69f91`](https://github.com/ahmadawais/wp-continuous-deployment/commit/ed69f916f1edeb887663309bb96deb652c1b43b0) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`1e1e57a`](https://github.com/ahmadawais/wp-continuous-deployment/commit/1e1e57af01e1b2ce8e9af1f553e0b8ac1df300e0) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.9.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.8.0...0.9.0)\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Docs [`de5d639`](https://github.com/ahmadawais/wp-continuous-deployment/commit/de5d6394512f4b12ef1159c3fcbc2e97003eeebd) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`4eb97e9`](https://github.com/ahmadawais/wp-continuous-deployment/commit/4eb97e9183b1566aed542b3d6e1e7c41be8569ae) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.8.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.7.0...0.8.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Workflows directory [`0fb3fe2`](https://github.com/ahmadawais/wp-continuous-deployment/commit/0fb3fe2a836457e9e7f570045e261fae7cdbb324) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`5868483`](https://github.com/ahmadawais/wp-continuous-deployment/commit/5868483aad2017d373b76d5b9fe16ab0d1b159ee) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.7.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.6.0...0.7.0)\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Docs grammar [`15202a0`](https://github.com/ahmadawais/wp-continuous-deployment/commit/15202a0decab1cb0c9b06dce1a0570fafd397794) <br>\n> 👌 Lingo [`5ab640b`](https://github.com/ahmadawais/wp-continuous-deployment/commit/5ab640b1a9c8976d702afd1c03aad02437f3975d) <br>\n> 👌 Syntax format [`9f03858`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9f038580e7224a01b105481467f72aa51e512ea2) <br>\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Workflows [`1b79674`](https://github.com/ahmadawais/wp-continuous-deployment/commit/1b79674e79a2ad0d75271ddcd9471c292fbad20a) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`16ac479`](https://github.com/ahmadawais/wp-continuous-deployment/commit/16ac479136520993ea8ef94e227f566cd77cd602) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.6.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.5.0...0.6.0)\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n> 📖 New release docs [`a3d7e4e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a3d7e4e024441abec3a58ccb48051f2536160902) <br>\n>  📖 Changelog update [`d1de036`](https://github.com/ahmadawais/wp-continuous-deployment/commit/d1de03638f67888b5ac680cd89f4a8b87bcd808e) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.5.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.4.0...0.5.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Download Assets [`47e977d`](https://github.com/ahmadawais/wp-continuous-deployment/commit/47e977d6b04b91e6f027e3f1e4d663f771bfd4d7) <br>\n> 📦 Automated GitHub Origin URL [`ead338a`](https://github.com/ahmadawais/wp-continuous-deployment/commit/ead338aa6296c0a9bb194c0abf629602c3e88f76) <br>\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 Refactor [`a6186d0`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a6186d0070e999249d067b6eee5abe02226e8711) <br>\n> 👌 Lingo [`72828a1`](https://github.com/ahmadawais/wp-continuous-deployment/commit/72828a15819b9ff73377f4a63182cb50b68dc2ff) <br>\n> 👌 Syntax format [`48f5fe7`](https://github.com/ahmadawais/wp-continuous-deployment/commit/48f5fe7acb0ae0cc07148248f4ef70d0c1ce9e8b) <br>\n> 👌 Refactor welcome [`79d6cc2`](https://github.com/ahmadawais/wp-continuous-deployment/commit/79d6cc24592bff549481ec7a1797a41a290d37ea) <br>\n> 👌 Clean logs [`a8c50a6`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a8c50a6688789689c6b8e9111e03b4862e77b0f9) <br>\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Dynamic link [`bed5dbf`](https://github.com/ahmadawais/wp-continuous-deployment/commit/bed5dbf59e3e2f00174ec5c35167a24a2497ae55) <br>\n> 🐛 Extraneous [`d6dcb1d`](https://github.com/ahmadawais/wp-continuous-deployment/commit/d6dcb1da9ec028aab817b180855efa9c8c76bf4d) <br>\n> 🐛 Extraneous [`1ead08d`](https://github.com/ahmadawais/wp-continuous-deployment/commit/1ead08d6ce4bd091645ac14653f785cc924e7371) <br>\n> 🐛 Log [`ccd0637`](https://github.com/ahmadawais/wp-continuous-deployment/commit/ccd0637b0b276b2483f1b5917bd9018f404bdc3b) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`12685cd`](https://github.com/ahmadawais/wp-continuous-deployment/commit/12685cda0676288ace7954bfccf824e2979c99ce) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.4.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.3.0...0.4.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Files [`29199a0`](https://github.com/ahmadawais/wp-continuous-deployment/commit/29199a08781563e28f431aaa791f9be6b413504c) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`a061598`](https://github.com/ahmadawais/wp-continuous-deployment/commit/a061598c31595a3376b6474b799587149ab65969) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.3.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.2.0...0.3.0)\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Extraneous [`0110d54`](https://github.com/ahmadawais/wp-continuous-deployment/commit/0110d54beebe502477e8893b2994c340c33a2c77) <br>\n> 🐛 Paths [`039b966`](https://github.com/ahmadawais/wp-continuous-deployment/commit/039b9663232fba76915747f175efe26b1c77838d) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`77ba867`](https://github.com/ahmadawais/wp-continuous-deployment/commit/77ba86773d3e3cf40fa5e6ec71482d6fd1561fca) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: [0.2.0](https://github.com/ahmadawais/wp-continuous-deployment/compare/0.1.0...0.2.0)\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 Bin script [`dcd8cc3`](https://github.com/ahmadawais/wp-continuous-deployment/commit/dcd8cc30f5487e522e203e73d3d6c6ecd3335347) <br>\n\n![👌 IMPROVE:](https://img.shields.io/badge/-IMPROVEMENT-gray.svg?colorB=39AA54)\n\n> 👌 First version [`6899a19`](https://github.com/ahmadawais/wp-continuous-deployment/commit/6899a19a26fb8718772e876c3b594163610a34b0) <br>\n> 👌 Modules [`c3cc26e`](https://github.com/ahmadawais/wp-continuous-deployment/commit/c3cc26ec3e423f5a4110488e03fef42cb4fbc08a) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`9e18d64`](https://github.com/ahmadawais/wp-continuous-deployment/commit/9e18d6427fc2c26b3cbcd81ad9e60639266c9a37) <br>\n> 📖 WIP [`548899f`](https://github.com/ahmadawais/wp-continuous-deployment/commit/548899fad3dfac9b8956ea272ef7aa826d59be86) <br>\n\n<br>\n\n[![hr](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/hr.png)](/)\n\n<br>\n\n### RELEASE: 0.1.0\n\n![📦 NEW:](https://img.shields.io/badge/-NEW-gray.svg?colorB=3778FF)\n\n> 📦 First commit [`fb21981`](https://github.com/ahmadawais/wp-continuous-deployment/commit/fb21981521c8d5c5d143ae6c78daeb5ba1d16069) <br>\n> 📦 Welcome [`cad1d7c`](https://github.com/ahmadawais/wp-continuous-deployment/commit/cad1d7c19f55e22e8fe33adaeee39799952f2784) <br>\n\n![🐛 FIX:](https://img.shields.io/badge/-FIX-gray.svg?colorB=ff6347)\n\n> 🐛 Version [`1a57907`](https://github.com/ahmadawais/wp-continuous-deployment/commit/1a57907a7895229a4d70fd6cbf55784d4096fa7a) <br>\n\n![📖 DOC:](https://img.shields.io/badge/-DOCS-gray.svg?colorB=978CD4)\n\n>  📖 Changelog update [`6d64df2`](https://github.com/ahmadawais/wp-continuous-deployment/commit/6d64df2fc6f54f1af861b73f8a51a2dfe93f973a) <br>\n\n<br>\n\n<br>\n\n[![📃](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/license.png)](/)\n\n## License & Conduct\n\n- MIT © [Ahmad Awais](https://twitter.com/MrAhmadAwais/)\n- [Code of Conduct](code-of-conduct.md)\n\n<br>\n\n[![🙌](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/connect.png)](/)\n\n## Connect\n\n<div align=\"left\">\n<p><a href=\"https://github.com/ahmadawais\"><img alt=\"GitHub @AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/GITHUB-gray.svg?colorB=6cc644&colorA=6cc644&style=flat\" /></a>&nbsp;<small><strong>(follow)</strong> TO STAY UP TO DATE ON FREE & OPEN SOURCE SOFTWARE</small></p>\n<p><a href=\"https://twitter.com/MrAhmadAwais/\"><img alt=\"Twitter @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/TWITTER-gray.svg?colorB=1da1f2&colorA=1da1f2&style=flat\" /></a>&nbsp;<small><strong>(follow)</strong> TO GET ONE DEV MINUTE DAILY HOT TIPS & TROLLS</small></p>\n<p><a href=\"https://www.youtube.com/AhmadAwais\"><img alt=\"YouTube AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/YOUTUBE-gray.svg?colorB=ff0000&colorA=ff0000&style=flat\" /></a>&nbsp;<small><strong>(subscribe)</strong> TO TECH TALKS & ONE DEV MINUTE VIDEOS</small></p>\n<p><a href=\"https://AhmadAwais.com/\"><img alt=\"Blog: AhmadAwais.com\" align=\"center\" src=\"https://img.shields.io/badge/MY%20BLOG-gray.svg?colorB=4D2AFF&colorA=4D2AFF&style=flat\" /></a>&nbsp;<small><strong>(read)</strong> MOSTLY LONG FORM TECHNICAL ARTICLES</small></p>\n<p><a href=\"https://www.linkedin.com/in/MrAhmadAwais/\"><img alt=\"LinkedIn @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/LINKEDIN-gray.svg?colorB=0077b5&colorA=0077b5&style=flat\" /></a>&nbsp;<small><strong>(connect)</strong> WITH THE LINKEDIN PROFILE Y'ALL</small></p>\n</div>\n\n<br>\n\n[![👌](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/sponsor.png)](/)\n\n## Sponsor\n\nMe ([Ahmad Awais](https://twitter.com/mrahmadawais/)) and my incredible wife ([Maedah Batool](https://twitter.com/MaedahBatool/)) are two engineers who fell in love with open source and then with each other. You can read more [about me here](https://ahmadawais.com/about). If you or your company use any of my projects or like what I’m doing then consider backing me. I'm in this for the long run. An open-source developer advocate.\n\n- 🌟  **$9.99/month (recommended)** ❯ [Two cups of Caffè latte (coffee) every month →](https://pay.paddle.com/checkout/540217)\n- 🚀  **$99.99 (one-time sponsor)** ❯ [Support an hour of open-source code →](https://pay.paddle.com/checkout/515568)\n- 🔰  **$49.99 (one-time sponsor)** ❯ [Support an hour of maintenance →](https://pay.paddle.com/checkout/527253)\n- ☕️  **$9.99 (one-time sponsor)** ❯ [Lunch/coffee →](https://pay.paddle.com/checkout/527254)\n\n<br>\n\nOr you can back me by checking out my super fun video course. As developers, we spend over 200 Hrs/month with our code editors — it's only fair to learn your next editor deeply. This course will save you 15-20 hours every month.  <a href=\"https://vscode.pro/?utm_source=GitHubFOSS\" target=\"_blank\">Become a VSCode Power User</a> →</p>\n\n<a href=\"https://vscode.pro/?utm_source=GitHubFOSS\" target=\"_blank\"><img src=\"https://raw.githubusercontent.com/ahmadawais/stuff/master/images/vscodepro/VSCode.jpeg\" /><br><strong>VSCODE</strong></a>\n\n<br>\n\n[![VSCode](https://img.shields.io/badge/-VSCode.pro%20%E2%86%92-gray.svg?colorB=4D2AFF&style=flat)](https://VSCode.pro/?utm_source=GitHubFOSS)\n[![Ahmad on Twitter](https://img.shields.io/twitter/follow/mrahmadawais.svg?style=social&label=Follow%20@MrAhmadAwais)](https://twitter.com/mrahmadawais/)\n"
  },
  {
    "path": "code-of-conduct.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at me@AhmadAwais.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [https://contributor-covenant.org/version/1/4][version]\n\n[homepage]: https://contributor-covenant.org\n[version]: https://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "index.js",
    "content": "#!/usr/bin/env node\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on('unhandledRejection', err => {\n\thandleError(`UNHANDLED ERROR`, err);\n});\n\nconst ora = require('ora');\nconst spinner = ora({ text: '' });\nconst chalk = require('chalk');\nconst to = require('await-to-js').default;\nconst handlebars = require('handlebars');\nconst { Toggle, prompt } = require('enquirer');\nconst gitRemoteOriginUrl = require('git-remote-origin-url');\nconst handleError = require('./utils/handleError.js');\nconst welcome = require('./utils/welcome.js');\nconst finishLine = require('./utils/finishLine.js');\nconst handleTemplate = require('./utils/handleTemplate.js');\nconst shouldCancel = require('./utils/shouldCancel.js');\nconst exitClone = require('./utils/exitClone.js');\nconst downloadAssets = require('./utils/downloadAssets.js');\nconst gParse = require('git-url-parse');\nconst isItGit = require('is-it-git');\nconst dim = chalk.dim;\nconst yellow = chalk.bold.yellow;\nconst green = chalk.bold.green;\nhandlebars.registerHelper('raw-helper', options => options.fn());\n\n(async () => {\n\twelcome();\n\n\t// Root.\n\tconst promptClone = new Toggle({\n\t\tname: `clone`,\n\t\tmessage: `Are you running this in the root directory of your WordPress plugin's GitHub repo clone?`\n\t});\n\n\tconst [errClone, clone] = await to(promptClone.run());\n\thandleError(`FAILED ON CLONE`, errClone);\n\tawait shouldCancel(clone);\n\n\t// Moving forward.\n\texitClone(clone);\n\texitClone(isItGit());\n\n\t// Slug.\n\tconst promptSlug = {\n\t\ttype: `input`,\n\t\tname: `wpslug`,\n\t\tinitial: `cf7-customizer`,\n\t\tmessage: `What is your WordPress.org plugin slug?\\n${dim(\n\t\t\t`It's the last part of the URL, after ${dim(`\"https://wordpress.org/plugins/\"`)} e.g.`\n\t\t)}`\n\t};\n\tconst [errSlug, wpslug] = await to(prompt(promptSlug));\n\thandleError(`FAILED ON SLUG`, errSlug);\n\tawait shouldCancel(wpslug);\n\tconst slug = wpslug.wpslug;\n\n\t// GitHub.\n\tconst getGitHubUrl = await gitRemoteOriginUrl();\n\tconst urlObj = getGitHubUrl ? gParse(getGitHubUrl) : false;\n\tconst gitHubUrl = urlObj ? `https://github.com/${urlObj.owner}/${urlObj.name}` : false;\n\n\tif (!gitHubUrl) {\n\t\tconst promptUrl = {\n\t\t\ttype: `input`,\n\t\t\tname: `url`,\n\t\t\tinitial: `https://github.com/owner/repo`,\n\t\t\tmessage: `What is your plugin's GitHub repository URL?`\n\t\t};\n\t\tconst [errUrl, url] = await to(prompt(promptUrl));\n\t\thandleError(`FAILED ON GITHUB URL`, errUrl);\n\t\tawait shouldCancel(url);\n\t\tgitHubUrl = url.url;\n\t}\n\n\tspinner.start(`${yellow(`GITHUB ACTIONS`)} creating…`);\n\thandleTemplate(slug);\n\tspinner.succeed(`${green(`GITHUB ACTIONS`)} created`);\n\n\tconst hasAssets = await downloadAssets(slug, spinner);\n\tfinishLine(slug, gitHubUrl, hasAssets);\n})();\n"
  },
  {
    "path": "license",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2020-present Ahmad Awais.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "package.json",
    "content": "{\n\t\"name\": \"wp-continuous-deployment\",\n\t\"version\": \"1.7.1\",\n\t\"description\": \"Continuous-Deployment for WordPress plugins with GitHub actions\",\n\t\"license\": \"MIT\",\n\t\"repository\": \"ahmadawais/wp-continuous-deployment\",\n\t\"author\": {\n\t\t\"name\": \"Ahmad Awais\",\n\t\t\"email\": \"me@AhmadAwais.com\",\n\t\t\"url\": \"https://twitter.com/MrAhmadAwais\"\n\t},\n\t\"keywords\": [\n\t\t\"wp-continuous-deployment\",\n\t\t\"Ahmad Awais\",\n\t\t\"ahmadawais\"\n\t],\n\t\"bin\": {\n\t\t\"wp-continuous-deployment\": \"./index.js\"\n\t},\n\t\"dependencies\": {\n\t\t\"@scarf/scarf\": \"^1.0.6\",\n\t\t\"arrify\": \"^2.0.1\",\n\t\t\"await-to-js\": \"^2.1.1\",\n\t\t\"axios\": \"^0.19.2\",\n\t\t\"chalk\": \"^3.0.0\",\n\t\t\"cli-welcome\": \"^1.4.0\",\n\t\t\"download\": \"^7.1.0\",\n\t\t\"enquirer\": \"^2.3.4\",\n\t\t\"get-urls\": \"^9.2.0\",\n\t\t\"git-remote-origin-url\": \"^3.1.0\",\n\t\t\"git-url-parse\": \"^11.1.2\",\n\t\t\"handlebars\": \"^4.7.3\",\n\t\t\"is-dir-empty\": \"^1.1.0\",\n\t\t\"is-it-git\": \"^1.1.0\",\n\t\t\"log-symbols\": \"^3.0.0\",\n\t\t\"make-dir\": \"^3.0.2\",\n\t\t\"ora\": \"^4.0.3\"\n\t},\n\t\"devDependencies\": {\n\t\t\"clear-any-console\": \"^1.16.0\"\n\t},\n\t\"scripts\": {\n\t\t\"start\": \"node index.js\",\n\t\t\"test\": \"node test.js\",\n\t\t\"sbx\": \"node ./utils/sbx.js\",\n\t\t\"clean\": \"rm -rf '.github' && rm -rf '.wordpress-org'\"\n\t}\n}\n"
  },
  {
    "path": "readme.md",
    "content": "# WP Continuous Deployment\n\n[![DOWNLOADS](https://img.shields.io/npm/dt/wp-continuous-deployment?label=DOWNLOADS%20%20❯&colorA=6A788D&colorB=6A788D&style=flat)](https://www.npmjs.com/package/wp-continuous-deployment) [![Learn VSCode](https://img.shields.io/badge/-VSCODE.pro%20%E2%86%92-gray.svg?colorB=6A788D&style=flat)](https://VSCode.pro/?utm_source=GitHubFOSS)\n[![Follow @MrAhmadAwais on Twitter](https://img.shields.io/badge/FOLLOW%20@MRAHMADAWAIS%20%E2%86%92-gray.svg?colorA=6A788D&colorB=6A788D&style=flat)](https://twitter.com/mrahmadawais/)\n\n> DevOps free Continuous-Deployment pipeline for WordPress plugins with GitHub Actions.\n\n<br>\n\n[![📟](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/install.png)](./../../)\n\n## Install\n\n```sh\nnpx wp-continuous-deployment\n```\n\n<br>\n\n[![⚙️](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/usage.png)](./../../)\n\n## Usage\n\n### ❯ BEFORE\n\n1. Make sure your plugin is on WordPress.org\n2. Put your WordPress plugin on GitHub\n3. Clone the GitHub repo in your PC and browse it with command line\n4. Run `npx wp-console-deployment` in the root directory of the cloned GitHub repo\n\n```sh\nnpx wp-continuous-deployment\n```\n\n### ❯ ONE-TIME SETUP\n\n- Follow the instructions, set the slug of your plugin which is the last part of the URL, e.g., for my plugin wordpress.org/plugins/cf7-customizer/ the slug is `cf7-customizer`\n- Add you WordPress.org SVN username/password (it's the same credentials you use for login.WordPress.org) in your plugin's GitHub repository settings.\n- Go to `https://github.com/owner/repo/settings/secrets` make sure to change the `owner/repo` part.\n\n\n![secrets](https://on.ahmda.ws/3a3b87/c)\n\n### ❯ AFTER\n\n1. All your plugin assets must have been downloaded in the `.wordpress-org` directory\n2. Now for each commit/push to master your assets & readme will get deployed (provided there are no other files modified. If other files are changed the build will be canceled)\n3. And for each new tag/push, a new version of the plugin will be deployed\n4. So, go ahead, make changes, git commit, and then run: `git tag 2.0.0 && git push --tags` — considering 2.0.0 is the new version\n\n<br>\n\n[![📝](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/log.png)](changelog.md)\n\n## Changelog\n\n[❯ Read the changelog here →](changelog.md)\n\n<br>\n\n<small>**KEY**: `📦 NEW`, `👌 IMPROVE`, `🐛 FIX`, `📖 DOC`, `🚀 RELEASE`, and `✅ TEST`\n\n> _I use [Emoji-log](https://github.com/ahmadawais/Emoji-Log), you should try it and simplify your git commits._\n\n</small>\n\n<br>\n\n[![📃](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/license.png)](./../../)\n\n## License & Conduct\n\n- MIT © [Ahmad Awais](https://twitter.com/MrAhmadAwais/)\n- [Code of Conduct](code-of-conduct.md)\n- Thank you, 10up & Helen for the awesome GitHub Actions\n\n<br>\n\n[![🙌](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/connect.png)](./../../)\n\n## Connect\n\n<div align=\"left\">\n    <p><a href=\"https://github.com/ahmadawais\"><img alt=\"GitHub @AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/GITHUB-gray.svg?colorB=6cc644&colorA=6cc644&style=flat\" /></a>&nbsp;<small><strong>(follow)</strong> To stay up to date on free & open-source software</small></p>\n    <p><a href=\"https://twitter.com/MrAhmadAwais/\"><img alt=\"Twitter @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/TWITTER-gray.svg?colorB=1da1f2&colorA=1da1f2&style=flat\" /></a>&nbsp;<small><strong>(follow)</strong> To get #OneDevMinute daily hot tips & trolls</small></p>\n    <p><a href=\"https://www.youtube.com/AhmadAwais\"><img alt=\"YouTube AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/YOUTUBE-gray.svg?colorB=ff0000&colorA=ff0000&style=flat\" /></a>&nbsp;<small><strong>(subscribe)</strong> To tech talks & #OneDevMinute videos</small></p>\n    <p><a href=\"https://AhmadAwais.com/\"><img alt=\"Blog: AhmadAwais.com\" align=\"center\" src=\"https://img.shields.io/badge/MY%20BLOG-gray.svg?colorB=4D2AFF&colorA=4D2AFF&style=flat\" /></a>&nbsp;<small><strong>(read)</strong> In-depth & long form technical articles</small></p>\n    <p><a href=\"https://www.linkedin.com/in/MrAhmadAwais/\"><img alt=\"LinkedIn @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/LINKEDIN-gray.svg?colorB=0077b5&colorA=0077b5&style=flat\" /></a>&nbsp;<small><strong>(connect)</strong> On the LinkedIn profile y'all</small></p>\n</div>\n\n"
  },
  {
    "path": "template/assets.yml",
    "content": "name: \"👌 IMPROVE: Assets or readme\"\non:\n  push:\n    branches:\n      - master\njobs:\n  master:\n    name: \"build\"\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@master\n      - name: WordPress.org plugin asset/readme update\n        uses: 10up/action-wordpress-plugin-asset-update@master\n        env:\n          GITHUB_TOKEN: ${{{{raw-helper}}}}{{ secrets.GITHUB_TOKEN }}{{{{/raw-helper}}}}\n          SVN_USERNAME: ${{{{raw-helper}}}}{{ secrets.SVN_USERNAME }}{{{{/raw-helper}}}}\n          SVN_PASSWORD: ${{{{raw-helper}}}}{{ secrets.SVN_PASSWORD }}{{{{/raw-helper}}}}\n          SLUG: \"{{slug}}\"\n"
  },
  {
    "path": "template/release.yml",
    "content": "name: \"🚀 RELEASE: To WordPress.org\"\non:\n  push:\n    tags:\n      - \"*\"\njobs:\n  tag:\n    name: \"build\"\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@master\n      - name: WordPress Plugin Deploy\n        uses: 10up/action-wordpress-plugin-deploy@master\n        env:\n          GITHUB_TOKEN: ${{{{raw-helper}}}}{{ secrets.GITHUB_TOKEN }}{{{{/raw-helper}}}}\n          SVN_USERNAME: ${{{{raw-helper}}}}{{ secrets.SVN_USERNAME }}{{{{/raw-helper}}}}\n          SVN_PASSWORD: ${{{{raw-helper}}}}{{ secrets.SVN_PASSWORD }}{{{{/raw-helper}}}}\n          SLUG: \"{{slug}}\"\n"
  },
  {
    "path": "test.js",
    "content": "const wpContinuousDeployment = require('./index.js');\n\nwpContinuousDeployment();\n"
  },
  {
    "path": "utils/downloadAssets.js",
    "content": "const path = require(\"path\");\nconst chalk = require(\"chalk\");\nconst axios = require(\"axios\");\nconst green = chalk.bold.green;\nconst yellow = chalk.bold.yellow;\nconst arrify = require(\"arrify\");\nconst getUrls = require(\"get-urls\");\nconst download = require(\"download\");\nconst to = require(\"await-to-js\").default;\nconst logSymbols = require(\"log-symbols\");\nconst handleError = require(\"./handleError.js\");\nconst isDirEmpty = require(\"is-dir-empty\");\nconst dest = path.resolve(process.cwd(), \"./.wordpress-org/\");\n\nmodule.exports = async (slug, spinner) => {\n\tspinner.start(`${yellow(`ASSETS`)} finding…`);\n\tconst url = `https://ps.w.org/${slug}/assets/`;\n\tconst [errRes, res] = await to(axios.get(url));\n\t// handleError(\"FAILED ON ASSETS\", errRes); // Not needed.\n\n\tif (errRes) {\n\t\tspinner.warn(`${yellow(`No ASSETS`)} found`);\n\t} else {\n\t\tconst urlData = res.data.replace(\n\t\t\t/href=\"/g,\n\t\t\t`href=\"https://ps.w.org/${slug}/assets/`\n\t\t);\n\n\t\tconst getLinks = arrify(getUrls(urlData));\n\t\t// Remove the first and last.\n\t\tconst buildLinks = getLinks.slice(1, getLinks.length - 1);\n\t\t// Remove the languages link.\n\t\tconst links = buildLinks.filter(\n\t\t\tlink => link !== `https://ps.w.org/${slug}/assets/languages`\n\t\t);\n\n\t\tspinner.succeed(\n\t\t\t`${green(`ASSETS`)} found ${links.length} asset${\n\t\t\t\tlinks.length > 1 ? `s` : ``\n\t\t\t}`\n\t\t);\n\n\t\tspinner.start(`${yellow(`ASSETS`)} downloading…`);\n\t\tconst [errDown, down] = await to(\n\t\t\tPromise.all(\n\t\t\t\tlinks.map(async (link, i) => {\n\t\t\t\t\tawait download(link, dest);\n\t\t\t\t\tspinner.start(\n\t\t\t\t\t\t`${yellow(`ASSETS`)} downloading ${i + 1}/${links.length}…`\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t)\n\t\t);\n\t\thandleError(\"FAILED ON FILE DOWNLOADS\", errDown);\n\t\tspinner.succeed(\n\t\t\t`${green(`ASSETS`)} downloaded ${links.length}/${links.length}`\n\t\t);\n\t}\n\t// Check if assets were downloaded.\n\tconst isEmpty = await isDirEmpty(dest);\n\n\t// Return true if not empty.\n\treturn !isEmpty;\n};\n"
  },
  {
    "path": "utils/exitClone.js",
    "content": "const logSymbols = require(\"log-symbols\");\nconst chalk = require(\"chalk\");\nconst green = chalk.bold.green;\nconst red = chalk.bold.red;\nconst yellow = chalk.bold.yellow;\n\nmodule.exports = clone => {\n\tif (!clone) {\n\t\tconsole.log(`${red(`${logSymbols.error} Nops. You're doing it wrong.`)}`);\n\t\tconsole.log(\n\t\t\tyellow(`\n${logSymbols.info} Follow these steps:\n\n1. Put your WordPress plugin on GitHub (https://repo.new)\n2. Clone the GitHub repo in your PC and browse it with command line\n3. Run ${green(\n\t\t\t\t`npx wp-console-deployment`\n\t\t\t)} in the root directory of the cloned repo\n`)\n\t\t);\n\t\tprocess.exit(0);\n\t}\n};\n"
  },
  {
    "path": "utils/finishLine.js",
    "content": "const chalk = require(\"chalk\");\nconst logSymbols = require(\"log-symbols\");\nconst dim = chalk.dim;\nconst green = chalk.bold.green;\nconst yellow = chalk.bold.yellow;\n\n// Final notice.\nmodule.exports = (slug, url, hasAssets) => {\n\tconsole.log(\n\t\t`${logSymbols.success} ${green(`…and that was it.`)} ${yellow(\n\t\t\t`Wait, a couple more things to set up`\n\t\t)}`\n\t);\n\tconsole.log(`\\n${logSymbols.info} ${yellow(`One-time setup:`)}\nRemember the username and password you use at https://login.WordPress.org\n❯❯ Go to ${dim(`${url}/settings/secrets`)}\n1. Click \"Add New Secret\" add name ${green(\n\t\t`SVN_USERNAME`\n\t)} and fill the value with your username\n2. Click \"Add New Secret\" again; add name ${green(\n\t\t`SVN_PASSWORD`\n\t)} and fill the value with your password`);\n\n\tconsole.log(`\\n${logSymbols.success} ${green(`Now what?!`)}`);\n\tif (!hasAssets) {\n\t\tconsole.log(\n\t\t\t`- Make sure all plugin assets were downloaded to the ${green(\n\t\t\t\t`.wordpress-org`\n\t\t\t)} directory\\n- Or manually download from ${dim(\n\t\t\t\t`https://ps.w.org/${slug}/`\n\t\t\t)} (if exists) ${dim(`assets`)} directory`\n\t\t);\n\t}\n\tconsole.log(`- Now for each commit/push to master your assets & readme will get deployed\n- And for each new tag/push a new version of plugin will be deployed\n- So, go ahead, make change, git commit, and then run:\n\n${green(`git tag 2.0.0 && git push --tags`)}\n${dim(`# Considering 2.0.0 is the new version`)}\n`);\n};\n"
  },
  {
    "path": "utils/handleError.js",
    "content": "const ora = require(\"ora\");\nconst chalk = require(\"chalk\");\nconst red = chalk.bold.red;\nconst yellow = chalk.bold.yellow;\nconst spinner = ora({ text: \"\" });\n\nmodule.exports = (heading, err, displayError = true, exit = true) => {\n\tif (err) {\n\t\tconsole.log();\n\t\tif (displayError) {\n\t\t\tspinner.fail(`${red(heading)}`);\n\t\t\tspinner.fail(`${red(`ERROR →`)} ${err.name}`);\n\t\t\tspinner.fail(`${red(`REASON →`)} ${err.message}`);\n\t\t\tspinner.fail(`${red(`ERROR STACK ↓ \\n`)} ${err.stack}\\n`);\n\t\t} else {\n\t\t\tspinner.warn(`${yellow(heading)}`);\n\t\t}\n\t\tif (exit) {\n\t\t\tprocess.exit(0);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n};\n"
  },
  {
    "path": "utils/handleTemplate.js",
    "content": "const fs = require(\"fs\");\nconst path = require(\"path\");\nconst makeDir = require(\"make-dir\");\nconst handlebars = require(\"handlebars\");\nhandlebars.registerHelper(\"raw-helper\", options => options.fn());\n\nmodule.exports = async slug => {\n\tconst files = [`assets`, `release`];\n\tfor (file of files) {\n\t\tconst fileContents = fs.readFileSync(\n\t\t\tpath.join(__dirname, `./../template/${file}.yml`),\n\t\t\t`utf8`\n\t\t);\n\t\tconst source = fileContents.toString();\n\t\tconst template = handlebars.compile(source);\n\t\tconst rendered = template({ slug });\n\t\tawait makeDir(`./.github/workflows/`);\n\t\tawait makeDir(`./.wordpress-org/`);\n\t\tconst done = fs.writeFileSync(\n\t\t\t`./.github/workflows/${file}.yml`,\n\t\t\trendered,\n\t\t\t`utf8`\n\t\t);\n\t}\n};\n"
  },
  {
    "path": "utils/query.js",
    "content": "const shouldCancel = require(\"./shouldCancel.js\");\n\nexport default (question, type) => {\n\tconst query = new Toggle(question);\n\tconst [err, res] = await to(query.run());\n\thandleError(type, err);\n\tawait shouldCancel(res);\n};\n"
  },
  {
    "path": "utils/sbx.js",
    "content": "#!/usr/bin/env node\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on(\"unhandledRejection\", err => {\n\tconsole.log(\"err\", err);\n});\nconst clearConsole = require(\"clear-any-console\");\n\n(async () => {\n\tclearConsole();\n})();\n"
  },
  {
    "path": "utils/shouldCancel.js",
    "content": "const chalk = require(\"chalk\");\nconst yellow = chalk.bold.yellow;\n\n// Exit gracefully if user trying to cancel.\nmodule.exports = async action => {\n\tif (action === undefined) {\n\t\tconsole.log(yellow(`❯ Cancelled!\\n`));\n\t\tprocess.exit(0);\n\t}\n};\n"
  },
  {
    "path": "utils/welcome.js",
    "content": "const pkg = require(\"./../package.json\");\nconst welcome = require(\"cli-welcome\");\n\nmodule.exports = () => {\n\t// Use it.\n\twelcome(\n\t\t`WP Continuous Deployment`,\n\t\t`\nby Awais.dev 👋`,\n\t\t{\n\t\t\tbgColor: `#d54e21`,\n\t\t\tcolor: `#000000`,\n\t\t\tbold: true,\n\t\t\tclear: true,\n\t\t\tversion: `v${pkg.version}`\n\t\t}\n\t);\n};\n"
  }
]