{"id":3524,"date":"2019-04-14T08:51:00","date_gmt":"2019-04-14T08:51:00","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"modified":"2026-04-24T11:32:09","modified_gmt":"2026-04-24T11:32:09","slug":"gaedi-fyrst-5-einfold-skref-til-ad-lint-a-kodann-thinn-med-github-vinnuflaedi-i-javascript-verkefni","status":"publish","type":"post","link":"https:\/\/thecodest.co\/is\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","title":{"rendered":"G\u00e6\u00f0i fyrst! 5 einf\u00f6ld skref til a\u00f0 lint-a k\u00f3\u00f0ann \u00feinn me\u00f0 GitHub-vinnufl\u00e6\u00f0i \u00ed JavaScript-verkefninu"},"content":{"rendered":"<p>Hva\u00f0 eigum vi\u00f0 a\u00f0 gera \u00feegar <a href=\"https:\/\/thecodest.co\/is\/dictionary\/why-do-projects-fail\/\">verkefni<\/a> er l\u00edtill e\u00f0a vi\u00f0skiptavinurinn veit enn ekki hvort \u00fea\u00f0 s\u00e9 \u00feess vir\u00f0i a\u00f0 fj\u00e1rfesta meira? Auglj\u00f3slega, hj\u00e1 <strong><a href=\"https:\/\/thecodest.co\/blog\/product-building-with-mvp-why-is-this-worth-implementing\/\">MVP-fasi verkefnisins<\/a><\/strong>, <a href=\"https:\/\/thecodest.co\/is\/dictionary\/what-is-code-refactoring\/\">k\u00f3\u00f0i<\/a> St\u00edlun e\u00f0a einingapr\u00f3f eru ekki \u00e6\u00f0sta forgangsatri\u00f0i. Fj\u00e1rfestar vilja yfirleitt hafa gott <a href=\"https:\/\/thecodest.co\/is\/dictionary\/how-to-make-product\/\">vara<\/a> og komdu n\u00fa \u2013 ef \u00fea\u00f0 virkar, \u00fearf \u00fea\u00f0 ekki a\u00f0 pr\u00f3fa, er \u00fea\u00f0 ekki?<\/p>\n\n\n\n<p>Reyndar hef \u00e9g nokkra reynslu af <strong><a href=\"https:\/\/thecodest.co\/contact\">A\u00f0 byggja upp forrit fr\u00e1 grunni<\/a><\/strong>, jafnvel \u00e1n \u00feess a\u00f0 beita bestu starfsh\u00e1ttum fr\u00e1 upphafi. Sumar vi\u00f0skiptalegar a\u00f0st\u00e6\u00f0ur neyddu mig til a\u00f0 leita m\u00e1lami\u00f0lunar milli fj\u00e1rfestaplana um fj\u00e1rhags\u00e1\u00e6tlun og \u201enice-to-have\u201d-lista forritarans. Sem betur fer, ef \u00fe\u00fa notar GitHub, er h\u00e6gt a\u00f0 leysa flestar algengar villur sem tengjast k\u00f3\u00f0ag\u00e6\u00f0um \u00e1 nokkrum m\u00edn\u00fatum.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u00cd \u00feessari grein \u00e6tla \u00e9g a\u00f0 s\u00fdna \u00fe\u00e9r hvernig \u00e1 a\u00f0 nota GitHub-vinnufl\u00e6\u00f0i \u00ed Node.js-umhverfinu til a\u00f0 sta\u00f0la k\u00f3\u00f0agrunninn \u00feinn.<\/strong><\/h2>\n\n\n\n<p>F\u00e1ar forsendur \u00e1\u00f0ur en vi\u00f0 byrjum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00de\u00fa \u00feekkir NPM og Linux-skj\u00e1inn.<\/li>\n\n\n\n<li>\u00de\u00fa hefur nokkra reynslu af st\u00edlfyrirvinnslum, einingal\u00f3\u00f0urum, bundlara o.s.frv.<\/li>\n\n\n\n<li>\u00de\u00fa veist hva\u00f0 linterar eru til og vilt virkilega nota \u00fe\u00e1 \u00ed verkefnum \u00fe\u00ednum.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Algeng verkefnisuppbygging JavaScript<\/strong><\/h2>\n\n\n\n<p>Ef \u00fe\u00fa hefur einhvern t\u00edma nota\u00f0 eitthva\u00f0 <a href=\"https:\/\/thecodest.co\/is\/blog\/javascript-tools-in-action\/\">JS<\/a> rammasetningar eins og <a href=\"https:\/\/thecodest.co\/is\/blog\/hire-vue-js-developers\/\">Vue<\/a> e\u00f0a <a href=\"https:\/\/thecodest.co\/is\/blog\/conditional-component-visibility-in-react\/\">React<\/a>, \u00fe\u00fa getur au\u00f0veldlega s\u00e9\u00f0 nokkra sameiginlega hluti \u00e1 milli \u00feeirra, t.d.:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>\/uppspretta<\/em> m\u00f6ppu me\u00f0 allri JS-skilgreiningu \u00feinni og \u00edhlutum,<\/li>\n\n\n\n<li><em>pr\u00f3f<\/em> skr\u00e1 fyrir eininga- og end-to-end-pr\u00f3fanir,<\/li>\n\n\n\n<li><em>eignir<\/em> m\u00f6ppu fyrir st\u00edla, myndir o.s.frv.<\/li>\n<\/ul>\n\n\n\n<p>Jafnvel \u00fe\u00f3 vi\u00f0 s\u00e9um a\u00f0 tala um <a href=\"https:\/\/thecodest.co\/is\/blog\/hire-javascript-developer\/\">JavaScript<\/a> verkefni, sem vi\u00f0 vinnum \u00ed <a href=\"https:\/\/thecodest.co\/is\/dictionary\/what-is-node-js-used-for\/\">Kn\u00fatur<\/a> umhverfi, svo auglj\u00f3slega \u00e6tti einnig a\u00f0 vera eitthva\u00f0 Node-tengt eins og <em>package.json<\/em>, <em>package-lock.json<\/em> og <em>\/n\u00fat\u00edmam\u00f3d\u00falum<\/em> skr\u00e1arsafn \u00ed r\u00f3tarm\u00f6ppunni okkar.<\/p>\n\n\n\n<p>Allt \u00feetta er \u00e1 s\u00ednum sta\u00f0 \u2013 \u00fea\u00f0 er \u00fea\u00f0 sem vi\u00f0 k\u00f6llum <strong>samkoma<\/strong>. Rammaskipul\u00f6g eru fundin upp til a\u00f0 bj\u00f3\u00f0a upp \u00e1 sanngjarnar venjur, svo yfirleitt \u00feurfum vi\u00f0 ekki einu sinni a\u00f0 hafa \u00e1hyggjur af upphaflegu h\u00f6nnunarmynstri. Eins og \u00ed \u00feessu d\u00e6mi vil \u00e9g \u00fatsk\u00fdra nokkrar n\u00e1lganir; \u00e9g mun ekki beita neinum tilb\u00fanum lausnum eins og Vue CLI.<\/p>\n\n\n\n<p><strong>T\u00edmi er kominn til a\u00f0 skilja hva\u00f0 liggur undir \u00f6llum \u00feessum t\u00f6fraduft-skriptum!<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. A\u00f0 st\u00e6kka d\u00e6miger\u00f0a Node-verkefni\u00f0<\/strong><\/h2>\n\n\n\n<p>Til a\u00f0 bj\u00f3\u00f0a upp \u00e1 h\u00e1g\u00e6\u00f0a lausnir eru linterar \u00fea\u00f0 fyrsta sem vi\u00f0 \u00e6ttum a\u00f0 byrja \u00e1 \u00feegar vi\u00f0 setjum upp n\u00fdtt verkefni. Skulum einbeita okkur a\u00f0 tveimur linterum \u2013 Stylelint fyrir st\u00edla (<em>*.scss<\/em>) og ESLint fyrir upprunaskr\u00e1r (<em>stj\u00f6rnu-js<\/em>). B\u00e1\u00f0ir \u00feessir linterar eru f\u00e1anlegir \u00e1 NPM og nokku\u00f0 au\u00f0velt a\u00f0 stilla \u00fe\u00e1. Til a\u00f0 nota linterana \u00fearf a\u00f0 fara \u00ed gegnum uppsetningarferli\u00f0, b\u00e6ta vi\u00f0 stillingarskr\u00e1m og skilgreina verkefnisskriptur. Skulum gera \u00feetta skref fyrir skref.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. B\u00e6ta vi\u00f0 Stylelint<\/strong><\/h2>\n\n\n\n<p>Uppsetning Stylelint \u00ed Node-umhverfinu er mj\u00f6g einf\u00f6ld. Samkv\u00e6mt <a href=\"https:\/\/stylelint.io\/user-guide\/get-started\">opinber skj\u00f6l<\/a>, \u00fe\u00fa \u00fearft bara a\u00f0 keyra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm install --save-dev stylelint stylelint-config-standard<\/code><\/pre>\n\n\n\n<p>og b\u00ed\u00f0a \u00fear til \u00fea\u00f0 er b\u00fai\u00f0.<\/p>\n\n\n\n<p><em>st\u00edl-l\u00ednslausn-sta\u00f0all<\/em> veitir sj\u00e1lfgefinn safn k\u00f3\u00f0asko\u00f0unarreglna og m\u00e1 skipta \u00fat fyrir hva\u00f0a pakka sem betur hentar \u00fe\u00ednum \u00fe\u00f6rfum (t.d. <a href=\"https:\/\/www.npmjs.com\/package\/stylelint-config-airbnb\">\u00c1 Airbnb-m\u00e1ta<\/a>). B\u00fa\u00f0u s\u00ed\u00f0an til n\u00fdjan falinn skr\u00e1. <em>.stylelintrc.json<\/em>, sem er Stylelint stillingarskr\u00e1, \u00e1byrg fyrir a\u00f0 hla\u00f0a fyrirfram skilgreindum reglum okkar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">{\n    \"extends\": \"stylelint-config-standard\"\n}<\/code><\/pre>\n\n\n\n<p>N\u00fana er eina sem vantar nokkur NPM-skrift (e\u00f0a skriftir) tilgreind \u00ed package.json-skr\u00e1nni til a\u00f0 hefja lintun \u00e1 SCSS-skr\u00e1m okkar. H\u00e9r er tillaga m\u00edn:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"scripts\": {\n    \"lint:scss\": \"stylelint '**\/*.scss' --syntax scss -f verbose --color\",\n    \"lint:scss:fix\": \"stylelint '**\/*.scss' --syntax scss --fix -f verbose \u2014color\"\n}<\/code><\/pre>\n\n\n\n<p>Eins og \u00fe\u00fa s\u00e9r\u00f0 hef \u00e9g l\u00fdst skriftunni sem inniheldur <strong>\u2014lagf\u00e6ra<\/strong> valkostur \u2013 \u00feennan skal nota \u00e1\u00f0ur en breytingar eru sendar \u00ed geymsluna.<\/p>\n\n\n\n<p><strong>Mundu \u2013 \u00fea\u00f0 er sl\u00e6mt vinnubr\u00f6g\u00f0 a\u00f0 nota <em>\u2014lagf\u00e6ra<\/em> \u00ed CI-ferlinu \u00fe\u00ednu, \u00fev\u00ed k\u00f3\u00f0inn sem fer \u00ed framlei\u00f0slu er \u00fe\u00e1 ekki st\u00edlla\u00f0ur r\u00e9tt \u00ed geymslunni.<\/strong> \u00deess vegna \u00feurfum vi\u00f0 b\u00e6\u00f0i handritin.<\/p>\n\n\n\n<p>Sko\u00f0um linterinn okkar me\u00f0 \u00fev\u00ed a\u00f0 b\u00faa til skr\u00e1. <em>\/assets\/scss\/styles.scss<\/em> me\u00f0 nokkru efni, eins og:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"css\" class=\"language-css\">l\u00edkami {\n bakgrunnslitur: #fff;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm run lint:scss<\/code><\/pre>\n\n\n\n<p>\u00de\u00fa \u00e6ttir a\u00f0 sj\u00e1 \u00ed skr\u00e1ningarb\u00f3kinni \u00feinni eitthva\u00f0 svona:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">&gt; stylelint '**\/*.scss' --syntax scss -f verbose --color\n\nassets\/scss\/styles.scss\n\n2:21  \u2716 B\u00faist var vi\u00f0 2 t\u00f3mstafa innstigi   innstig\n\n1 uppspretta sko\u00f0u\u00f0\n\n~\/Codest\/Projects\/github-workflow-demo\/assets\/scss\/styles.scss\n\n1 vandam\u00e1l fundi\u00f0\n\nalvarleikastig \"error\": 1\n\ninnstigning: 1\n\nnpm ERR! code ELIFECYCLE\n\nnpm ERR! errno 2\n\nnpm ERR! github-workflow-demo@1.0.0 lint:scss: `stylelint '**\/*.scss' --syntax scss -f verbose --color`\n\nnpm ERR! \u00datgangsk\u00f3\u00f0i 2<\/code><\/pre>\n\n\n\n<p>\u00deetta \u00fe\u00fd\u00f0ir \u00ed raun a\u00f0 linterinn okkar virkar!<\/p>\n\n\n\n<p>\u00dattaki\u00f0 s\u00fdnir n\u00e1kv\u00e6mlega hva\u00f0a l\u00edna veldur villu og l\u00fdsir vandam\u00e1linu sem \u00fearf a\u00f0 leysa. Sum vandam\u00e1l er ekki h\u00e6gt a\u00f0 laga sj\u00e1lfkrafa \u00fear sem \u00feau krefjast \u00e1kv\u00f6r\u00f0unar forritara, en \u00ed flestum tilfellum \u00fearftu bara a\u00f0 keyra sama skipunina me\u00f0 <strong>\u2014lagf\u00e6ra<\/strong> valkostur, svo keyrum hann.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm run lint:scss:fix<\/code><\/pre>\n\n\n\n<p>N\u00fa \u00e6ttir \u00fe\u00fa a\u00f0 sj\u00e1 gr\u00e6nt \u00fattak \u00e1n nokkurra villa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">stylelint '**\/*.scss' --syntax scss --fix -f verbose --color\n\n\n1 uppspretta sko\u00f0u\u00f0\n\n\/Users\/wojciechbak\/Codest\/Projects\/github-workflow-demo\/assets\/scss\/styles.scss\n\n0 vandam\u00e1l fundin<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. B\u00e6ta vi\u00f0 ESLint<\/strong><\/h2>\n\n\n\n<p>\u00deetta skref er n\u00e1nast \u00fea\u00f0 sama og \u00fea\u00f0 fyrra. Vi\u00f0 \u00e6tlum a\u00f0 setja upp ESLint, skilgreina nokkur sj\u00e1lfgefin reglur og l\u00fdsa tveimur kallanlegum NPM-skriptum \u2013 eitt fyrir CI og eitt fyrir pre-push. Skulum fara \u00ed gegnum \u00feetta!<\/p>\n\n\n\n<p>Ef \u00fe\u00fa notar NPM \u00ed daglegu starfi \u00fe\u00ednu g\u00e6tir\u00f0u vilja\u00f0 setja ESLint upp \u00e1 heimsv\u00edsu. Ef \u00fe\u00fa gerir \u00fea\u00f0 ekki, vinsamlegast sko\u00f0a\u00f0u uppsetningarlei\u00f0beiningarnar \u00ed <a href=\"https:\/\/eslint.org\/docs\/user-guide\/getting-started\">opinber skj\u00f6l<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm install -g eslint<\/code><\/pre>\n\n\n\n<p>\u00deegar eslint-skipunin er tilt\u00e6k \u00e1 v\u00e9linni \u00feinni, keyr\u00f0u einfaldlega \u00feetta \u00ed verkefninu \u00fe\u00ednu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">eslint --init<\/code><\/pre>\n\n\n\n<p>Eftir frekari lei\u00f0beiningar sem birtast \u00ed skj\u00e1linum \u00fe\u00ednum, ger\u00f0u einfaldlega nokkrar \u00e1kvar\u00f0anir um verkefni\u00f0, eins og:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaScript e\u00f0a <a href=\"https:\/\/thecodest.co\/is\/dictionary\/typescript-developer\/\">TypeScript<\/a><\/li>\n\n\n\n<li>\u00c1 Airbnb-st\u00edl e\u00f0a Google-st\u00edl<\/li>\n\n\n\n<li>stillingarger\u00f0 (JSON-skr\u00e1, JS-skr\u00e1 e\u00f0a inn \u00ed) <em>package.json<\/em>)<\/li>\n\n\n\n<li>ES-mod\u00falar (<em>innflutningur\/\u00fatflutningur<\/em>) e\u00f0a <em>krefjast<\/em> setningafr\u00e6\u00f0i<\/li>\n<\/ul>\n\n\n\n<p>H\u00e9r er \u00feess vir\u00f0i a\u00f0 skrifa nokkur or\u00f0 um k\u00f3\u00f0aforvinnslut\u00f3l sem kallast Prettier. \u00dea\u00f0 er fullkomlega sta\u00f0la\u00f0 og samh\u00e6ft vi\u00f0 flesta k\u00f3\u00f0aritla (t.d. VS Code). Prettier b\u00fd\u00f0ur upp \u00e1 m\u00f6rg forstillt sett af reglum um k\u00f3\u00f0ast\u00edl, vinnur me\u00f0 linterum og getur veri\u00f0 mikil hj\u00e1lp vi\u00f0 a\u00f0 tryggja sem bestu g\u00e6\u00f0i k\u00f3\u00f0ans. Til a\u00f0 skilja n\u00e1kv\u00e6mlega hva\u00f0 Prettier er, heims\u00e6ki\u00f0 \u00feetta <a href=\"https:\/\/prettier.io\/docs\/en\/comparison.html\">samanbur\u00f0ur<\/a> \u00far opinberum skj\u00f6lum.<\/p>\n\n\n\n<p>Ef \u00fea\u00f0 er gert, ESLint stillingarskr\u00e1 (t.d. <em>.eslintrc.json<\/em>, fer eftir \u00fev\u00ed hva\u00f0 \u00fe\u00fa hefur vali\u00f0 \u00e1\u00f0ur) \u00e6tti a\u00f0 birtast \u00ed r\u00f3tarm\u00f6ppunni \u00feinni, einhvers sta\u00f0ar vi\u00f0 hli\u00f0ina \u00e1 <em>.stylelintrc.json<\/em> b\u00faa til \u00e1\u00f0ur.<\/p>\n\n\n\n<p>N\u00fa ver\u00f0um vi\u00f0 a\u00f0 skilgreina skriptur \u00ed <em>package.json<\/em> skr\u00e1rna, eins og fyrir SCSS-skr\u00e1r:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"scripts\": {\n    \"lint:js\": \"eslint '**\/*.js' --ignore-pattern node_modules\/\",\n    \"lint:js:fix\": \"eslint '**\/*.js' --ignore-pattern node_modules\/ --fix\"\n}<\/code><\/pre>\n\n\n\n<p>Til hamingju! ESLint er tilb\u00fai\u00f0 til notkunar strax. Skulum athuga hvort \u00fea\u00f0 virki r\u00e9tt. B\u00fa\u00f0u til <em>\/upphafsk\u00f3\u00f0i\/v\u00edsitalan.js<\/em> skr\u00e1 me\u00f0 einhverju efni:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">Skr\u00e1\u00f0u eitthva\u00f0 \u00ed vafra-skj\u00e1inn.;<\/code><\/pre>\n\n\n\n<p>Keyra linter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm run lint:js<\/code><\/pre>\n\n\n\n<p><code><br><\/code>\u00dattaki\u00f0 \u00e6tti a\u00f0 l\u00edta svona \u00fat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">eslint '**\/*.js' --ignore-pattern node_modules\/\n\n~\/Codest\/Projects\/github-workflow-demo\/src\/index.js\n\n1:1  vi\u00f0v\u00f6run  \u00d3v\u00e6nt console-yfirl\u00fdsing  no-console\n\n\u2716 1 vandam\u00e1l (0 villur, 1 vi\u00f0v\u00f6run)<\/code><\/pre>\n\n\n\n<p>\u00deessi vi\u00f0v\u00f6run hverfur ekki eftir notkun. <em>\u2013lagf\u00e6ra<\/em> valkostur, vegna <strong>linters hefur ekki \u00e1hrif \u00e1 hugsanlega merkingarb\u00e6ran k\u00f3\u00f0a. \u00deeir eru eing\u00f6ngu til k\u00f3\u00f0ast\u00edls.<\/strong>, \u00fear \u00e1 me\u00f0al t\u00f3mar\u00fdmi, l\u00ednubrot, sem\u00edk\u00f3lon, g\u00e6salappir o.s.frv.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. A\u00f0 skilgreina GitHub-vinnufl\u00e6\u00f0i<\/strong><\/h2>\n\n\n\n<p><a href=\"https:\/\/help.github.com\/en\/actions\/configuring-and-managing-workflows\/configuring-a-workflow\">Vinnufl\u00e6\u00f0i GitHub<\/a> \u00deetta er nokku\u00f0 vel skjalfest. Endilega sko\u00f0a\u00f0u \u00feetta n\u00e1nar, en \u00ed bili \u00e6tla \u00e9g a\u00f0 innlei\u00f0a einfalda vinnslua\u00f0fer\u00f0 til a\u00f0 lint-sko\u00f0a k\u00f3\u00f0ann okkar eftir a\u00f0 k\u00f3\u00f0anum er \u00fdtt \u00e1 fjarl\u00e6ga geymsluna (au\u00f0vita\u00f0 h\u00fdst \u00e1 GitHub).<\/p>\n\n\n\n<p>B\u00faa til <em>\/.github\/workflows<\/em> skr\u00e1 og n\u00fdtt <em>k\u00f3\u00f0ag\u00e6\u00f0avinnslafl\u00e6\u00f0i.yml<\/em> skr\u00e1 \u00fear \u00fear sem GitHub-vinnsuferlar \u00feurfa a\u00f0 vera skilgreindir me\u00f0 YAML-skr\u00e1m.<\/p>\n\n\n\n<p>Til a\u00f0 reka r\u00e9tt vinnufl\u00e6\u00f0i ver\u00f0um vi\u00f0 a\u00f0 svara nokkrum spurningum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hven\u00e6r viljum vi\u00f0 keyra vinnufl\u00e6\u00f0i\u00f0 okkar (vi\u00f0 push, vi\u00f0 pull-bei\u00f0ni, vi\u00f0 samruna o.s.frv.)?<\/li>\n\n\n\n<li>Vi\u00f0 viljum vi\u00f0 \u00fatiloka sumar a\u00f0st\u00e6\u00f0ur (eins og a\u00f0 \u00fdta \u00e1 master-grein)?<\/li>\n\n\n\n<li>Hva\u00f0a umhverfi \u00feurfum vi\u00f0 a\u00f0 setja upp til a\u00f0 keyra skipanir okkar r\u00e9tt (\u00ed \u00feessu d\u00e6mi \u2013 Node)?<\/li>\n\n\n\n<li>\u00deurfum vi\u00f0 a\u00f0 setja upp h\u00e1\u00f0arkerfi? Ef svo er, hvernig \u00e6ttum vi\u00f0 a\u00f0 kassa \u00fea\u00f0?<\/li>\n\n\n\n<li>Hva\u00f0a skref \u00feurfum vi\u00f0 a\u00f0 taka til a\u00f0 lj\u00faka athuguninni?<\/li>\n<\/ul>\n\n\n\n<p>Eftir nokkrar \u00edhuganir og nokkra klukkut\u00edma vinnu me\u00f0 d\u00e6mi \u00ed skj\u00f6lunum <em>.yml<\/em> Skr\u00e1in getur liti\u00f0 svona \u00fat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"yaml\" class=\"language-yaml\">nafn: K\u00f3\u00f0a g\u00e6\u00f0i\n\n\u00e1: 'push'\n\nverk:\n  k\u00f3\u00f0a-g\u00e6\u00f0i:\n    nafn: Lint uppsprettuk\u00f3\u00f0a\n    keyrir-\u00e1: ubuntu-latest\n    skref:\n    - notar: actions\/checkout@v1\n\n - nafn: Setja upp Node\n notar: actions\/setup-node@v1\n      with:\n node-version: '12.1'\n\n - name: Geyma h\u00e1\u00f0arkerfi\n uses: actions\/cache@v1\n with:\n path: .\/node_modules\n key: $(( runner.OS ))-dependencies-$(( hashFiles('<strong>**\/package-lock.json**<\/strong> ))\n restore-keys: |\n $(( runner.OS ))-dependencies-$(( env.cache-name ))-\n $(( runner.OS ))-dependencies-\n $(( runner.OS ))-\n\n    - name: Setja upp h\u00e1\u00f0nira\u00f0ila\n run: |\n npm install\n\n - name: Lint-sko\u00f0a skr\u00e1r\n run: |\n npm run lint<\/code><\/pre>\n\n\n\n<p>GitHub veitir allt umhverfislegt efni sem vi\u00f0 \u00feurfum. \u00cd s\u00ed\u00f0asta l\u00ednunni keyrum vi\u00f0 skipunina. <strong><em>npm run lint<\/em><\/strong> sem var ekki skilgreint \u00e1\u00f0ur:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"scripts\": {\n    \"lint\": \"npm run lint:js &amp;&amp; npm run lint:scss\"\n}<\/code><\/pre>\n\n\n\n<p>Athuga\u00f0u a\u00f0 \u00ed vinnufl\u00e6\u00f0i okkar er \u00e9g ekki a\u00f0 nota <strong>:lagf\u00e6ra<\/strong> skipanir.<\/p>\n\n\n\n<p>\u00deegar \u00f6llum \u00feessum skrefum er loki\u00f0 getur\u00f0u noti\u00f0 \u00feessarar fallegu \u00fattaks fr\u00e1 GitHub \u00e1\u00f0ur en \u00fe\u00fa sameinar Pull Request-i\u00f0 \u00feitt: <img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/ec82df2be0b1977d857d5f5c1d2d893010fc44a4\/68747470733a2f2f692e696d6775722e636f6d2f425848465370372e706e67\" alt=\"\"> <img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/00e93d296b7bf5b089c7b785ecc1cbd18de54ead\/68747470733a2f2f696d6775722e636f6d2f6f63736e6762362e706e67\" alt=\"\"><\/p>","protected":false},"excerpt":{"rendered":"<p>G\u00e6\u00f0i k\u00f3\u00f0ans eru mikilv\u00e6gur hluti af \u00fer\u00f3unarferlinu, s\u00e9rstaklega \u00feegar \u00fe\u00fa vilt vinna skilvirkt til lengri t\u00edma. \u00dea\u00f0 eru til margar n\u00e1lganir og bestu vinnubr\u00f6g\u00f0, \u00fear \u00e1 me\u00f0al heilar ag\u00edlar a\u00f0fer\u00f0afr\u00e6\u00f0i, en flestar \u00feeirra tengjast st\u00f3rum fyrirt\u00e6kja\u00adverkefnum sem unnin eru af a\u00f0 minnsta kosti sex manns.<\/p>","protected":false},"author":2,"featured_media":3525,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3524","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/is\/blogg\/gaedi-fyrst-5-einfold-skref-til-ad-lint-a-kodann-thinn-med-github-vinnuflaedi-i-javascript-verkefni\/\" \/>\n<meta property=\"og:locale\" content=\"is_IS\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\" \/>\n<meta property=\"og:description\" content=\"Code quality is a crucial part of the development process, especially when you want to work efficiently in a long-term manner. There are many approaches and best practices, including whole agile methodologies stuff, but most of them relate to some big, enterprise project conducted by at least 6 people.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/is\/blogg\/gaedi-fyrst-5-einfold-skref-til-ad-lint-a-kodann-thinn-med-github-vinnuflaedi-i-javascript-verkefni\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-14T08:51:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:32:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\",\"datePublished\":\"2019-04-14T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:32:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"},\"wordCount\":1187,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"is\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\",\"name\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"datePublished\":\"2019-04-14T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:32:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#breadcrumb\"},\"inLanguage\":\"is\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"is\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/is\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"G\u00e6\u00f0i fyrst! 5 einf\u00f6ld skref til a\u00f0 lint-a k\u00f3\u00f0ann \u00feinn me\u00f0 GitHub-vinnufl\u00e6\u00f0um \u00ed JavaScript-verkefninu - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/is\/blogg\/gaedi-fyrst-5-einfold-skref-til-ad-lint-a-kodann-thinn-med-github-vinnuflaedi-i-javascript-verkefni\/","og_locale":"is_IS","og_type":"article","og_title":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project","og_description":"Code quality is a crucial part of the development process, especially when you want to work efficiently in a long-term manner. There are many approaches and best practices, including whole agile methodologies stuff, but most of them relate to some big, enterprise project conducted by at least 6 people.","og_url":"https:\/\/thecodest.co\/is\/blogg\/gaedi-fyrst-5-einfold-skref-til-ad-lint-a-kodann-thinn-med-github-vinnuflaedi-i-javascript-verkefni\/","og_site_name":"The Codest","article_published_time":"2019-04-14T08:51:00+00:00","article_modified_time":"2026-04-24T11:32:09+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","type":"image\/jpeg"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project","datePublished":"2019-04-14T08:51:00+00:00","dateModified":"2026-04-24T11:32:09+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"wordCount":1187,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","articleSection":["Software Development"],"inLanguage":"is","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","url":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","name":"G\u00e6\u00f0i fyrst! 5 einf\u00f6ld skref til a\u00f0 lint-a k\u00f3\u00f0ann \u00feinn me\u00f0 GitHub-vinnufl\u00e6\u00f0um \u00ed JavaScript-verkefninu - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","datePublished":"2019-04-14T08:51:00+00:00","dateModified":"2026-04-24T11:32:09+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#breadcrumb"},"inLanguage":"is","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"]}]},{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"is"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/is\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/comments?post=3524"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3524\/revisions"}],"predecessor-version":[{"id":8622,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3524\/revisions\/8622"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/media\/3525"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/media?parent=3524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/categories?post=3524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/tags?post=3524"}],"curies":[{"name":"vp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}