{"id":33,"date":"2012-05-26T00:47:07","date_gmt":"2012-05-25T15:47:07","guid":{"rendered":"http:\/\/litcoder.cafe24.com\/?p=33"},"modified":"2012-05-26T00:47:07","modified_gmt":"2012-05-25T15:47:07","slug":"repo-mirroring-2","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=33","title":{"rendered":"Repo mirroring"},"content":{"rendered":"<blockquote><p>\ud55c\uad6d\uacfc \ubbf8\uad6d \ucc98\ub7fc \uac70\ub9ac\uc0c1\uc73c\ub85c \uba40\ub9ac \ub5a8\uc5b4\uc838 \uc788\ub294 \uacbd\uc6b0, \ud55c\ucabd\uc5d0\uc11c source\ub97c sync\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc2dc\uac04\uc774 \ub108\ubb34 \ub9ce\uc774 \uac78\ub9b0\ub2e4. Mirror\ub97c \uc124\uc815\ud558\uace0 \uc8fc\uae30\uc801\uc73c\ub85c source\ub97c sync \ud574 \uc624\ub3c4\ub85d \ud558\uba74 \uc2dc\uac04\uacfc load\ub97c \uc904\uc77c \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 Ubuntu 10.04 LTS \uae30\uc900\uc73c\ub85c\ud55c repo mirror server \uc124\uc815\ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud55c\ub2e4.<\/p><\/blockquote>\n<p>1. Git daemon \uc124\uc815<br \/>\n: xinetd\ub97c \uc124\uce58\ud558\uace0 git-daemon\uc744 \uc124\uc815\ud55c\ub2e4.<\/p>\n<pre class=\"theme:neon toolbar:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt; sudo apt-get install xinetd<\/pre>\n<pre class=\"toolbar:2 show-lang:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt;sudo vi \/etc\/xinetd.d\/git-daemon\n\nservice git\n{\n        disable = no\n        type            = UNLISTED\n        port            = 9418\n        socket_type     = stream\n        wait            = no\n        user            = nobody\n        server          = \/usr\/bin\/git\n        server_args     = daemon --inetd --export-all --base-path=\/public\/gitmirrors\/\n        log_on_failure  += USERID\n}<\/pre>\n<pre class=\"theme:neon toolbar:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt; sudo \/etc\/init.d\/xinetd restart\n\ud639\uc740\n$&gt; sudo service xinetd restart<\/pre>\n<p>&nbsp;<\/p>\n<p>2. Mirror repository \ub9cc\ub4e4\uae30<br \/>\n: \uc678\ubd80\uc5d0\uc11c \uc811\uadfc\ud560 \uacf5\uac04\uc744 \uc0dd\uc131\ud558\uace0 mirror\ub97c \ub9cc\ub4e0\ub2e4.<\/p>\n<pre class=\"theme:neon toolbar:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt;sudo mkdir -p \/public\/gitmirrors\/\n$&gt;chmod 777 \/public\/gitmirrors\/\n$&gt;mkdir \/public\/gitmirrors\/PROJECT_TOP_DIR\n$&gt;cd  \/public\/gitmirrors\/PROJECT_TOP_DIR\n$&gt;repo init -u ssh:\/\/USER_ID@SERVER_ADDRESS_AND_PORT\/platform\/manifest.git -b &lt;BRANCH_NAME&gt; --mirror\n$&gt;repo sync<\/pre>\n<p>&nbsp;<\/p>\n<p>3. Fetching address \ubcc0\uacbd<br \/>\n: manifest.git\uc744 \ubcc0\uacbd\uc2dc\ucf1c\uc11c \uc0c8\ub85c\uc6b4 branch\ub85c server\uc5d0 push \ud55c\ub2e4.<\/p>\n<p>\uba3c\uc800 manifest.git\uc744 cloning \ud574\uc624\uc790<\/p>\n<pre class=\"theme:neon toolbar:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt; mkdir ~\/temp\/manifest\n$&gt; cd ~\/temp\/manifest\n$&gt; git clone \/public\/gitmirrors\/PROJECT_TOP_DIR\/platform\/manifest.git<\/pre>\n<p>default.xml\uc758 fetch address\ub97c \ubcc0\uacbd\ud574\uc11c mirror\uc5d0\uc11c \ubc1b\uc544\uc624\ub3c4\ub85d \uc218\uc815\ud55c\ub2e4.<\/p>\n<pre class=\"toolbar:2 show-plain:3 lang:default decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;manifest&gt;\n  &lt;remote name=REMOTE_NAME fetch=\"git:\/\/MIRROR_SERVER_ADDR\/PROJECT_TOP_DIR\" review=REVIEW_SITE_ADDR \/&gt;\n\n...<\/pre>\n<p>\uc218\uc815\ub41c default.xml\uc744 \uc0c8\ub85c\uc6b4 branch\uc5d0 push \ud55c\ub2e4.<\/p>\n<pre class=\"theme:neon toolbar:2 nums:false lang:default highlight:0 decode:true\">$&gt;git checkout -b  MIRROR_BRANCH_NAME\n$&gt;git add .\n$&gt;git commit -m \"Updated fetch URL to mirror\"\n$&gt;git push origin MIRROR_BRANCH_NAME<\/pre>\n<p>&nbsp;<\/p>\n<p>4. Client\uc5d0\uc11c mirror\ub85c \ubd80\ud130 source sync \ud558\uae30<\/p>\n<p>repo init\ud560\ub54c mirror branch\ub97c \uba85\uc2dc\ud55c\ub2e4.<\/p>\n<pre class=\"theme:neon toolbar:2 nums:false show-plain:3 lang:default highlight:0 decode:true\">$&gt; repo init -u git:\/\/MIRROR_SERVER_ADDR\/PROJECT_TOP_DIR\/platform\/manifest.git -b MIRROR_BRANCH_NAME\n$&gt; repo sync<\/pre>\n<p>&nbsp;<\/p>\n<p>5.\u00a0\uc8fc\uae30\uc801\uc778 sync\ub97c \uc704\ud55c crontab\uacfc sync script \uc791\uc131<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">$&gt; crontab -e\n# m h  dom mon dow   command\n\n# \ub9e4\uc2dc 00\ubd84 \ub9c8\ub2e4 repo sync\ub97c \uc218\ud589\n0 * * * * ~\/bin\/cron_repo_sync.sh<\/pre>\n<p>repo sync script<br \/>\n: \ud638\ucd9c\ub420 \ub54c\ub9c8\ub2e4 mirror directory\uc5d0 \uc788\ub294 \ub0b4\uc6a9\ub4e4\uc744 \ubcf8\uad6d\uc5d0\uc11c \uc1a1\ud658\ud574 \uc628\ub2e4.<\/p>\n<pre class=\"toolbar:0 lang:sh decode:true crayon-selected\">#!\/bin\/bash\n# cron repo sync script.\n# Syncs all mirrors under the PUBLIC_REPO_DIRS_ROOT. - skywriter\n\nPUBLIC_REPO_DIRS_ROOT=\"\/public\/gitmirrors\/\"\nREPO_PATH=\"\/usr\/local\/bin\/repo\"\n\nsync_cmd=\"$REPO_PATH sync -j20\"\nrepodirs=`ls ${PUBLIC_REPO_DIRS_ROOT}`\n\necho \"start syncing\"\nfor repodir in $repodirs\ndo\n  echo \"syncing [$repodir] at `date`\"\n  cd ${PUBLIC_REPO_DIRS_ROOT}$repodir\/\n  $sync_cmd 2&gt;&amp;1\ndone\necho \"done at `date`\"<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud55c\uad6d\uacfc \ubbf8\uad6d \ucc98\ub7fc \uac70\ub9ac\uc0c1\uc73c\ub85c \uba40\ub9ac \ub5a8\uc5b4\uc838 \uc788\ub294 \uacbd\uc6b0, \ud55c\ucabd\uc5d0\uc11c source\ub97c sync\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc2dc\uac04\uc774 \ub108\ubb34 \ub9ce\uc774 \uac78\ub9b0\ub2e4. Mirror\ub97c \uc124\uc815\ud558\uace0 \uc8fc\uae30\uc801\uc73c\ub85c source\ub97c sync \ud574 \uc624\ub3c4\ub85d \ud558\uba74 \uc2dc\uac04\uacfc load\ub97c \uc904\uc77c \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 Ubuntu 10.04 LTS \uae30\uc900\uc73c\ub85c\ud55c repo mirror server \uc124\uc815\ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud55c\ub2e4. 1. Git daemon \uc124\uc815 : xinetd\ub97c \uc124\uce58\ud558\uace0 git-daemon\uc744 \uc124\uc815\ud55c\ub2e4. $&gt; sudo apt-get install xinetd $&gt;sudo [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[6],"tags":[81,108,168,182],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-tools","tag-mirroring","tag-repo","tag-168","tag-182"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":557,"url":"https:\/\/litcoder.com\/?p=557","url_meta":{"origin":33,"position":0},"title":"Bare git\uc73c\ub85c \ubd80\ud130 source code \ubcf5\uc0ac\ud558\uae30","author":"litcoder","date":"2013\ub144 3\uc6d4 11\uc77c","format":false,"excerpt":"Android\uc5d0 \uae30\ubc18\ud55c project\ub97c repo\ub85c mirror\ub85c \ub9cc\ub4e4\ub54c\ub294 --mirror option\uc744 \uc8fc\uc5b4\uc11c bare git\uc744 \ub9cc\ub4e0\ub2e4(\uc9c0\ub09c posting \ucc38\uc870). \ub9cc\uc57d \uc774\ub807\uac8c \ub9cc\ub4e4\uc5b4\uc9c4 bare repository\ub85c \ubd80\ud130 \uc77c\ubc18\uc801\uc778 \ud615\ud0dc\uc758 source repository\ub97c \uc0dd\uc131\ud558\ub824 \ud55c\ub2e4\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c? \uc774 posting\uc5d0\uc11c\ub294 git-daemon\ub4f1\uc744 \uc124\uce58 \ud558\uc9c0 \uc54a\uace0 local\uc5d0 \uc788\ub294 bare git\uc73c\ub85c \ubd80\ud130 source \uad6c\uc870\ub97c \ub9cc\ub4e4\uc5b4 \ub0b4\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud55c\ub2e4. Repo Init $ repo\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":908,"url":"https:\/\/litcoder.com\/?p=908","url_meta":{"origin":33,"position":1},"title":"Repo\uc640 OpenGrok update\ub97c \uc704\ud55c cron\uc6a9 script","author":"litcoder","date":"2013\ub144 11\uc6d4 19\uc77c","format":false,"excerpt":"OpenGrok\uc740 \uc5ec\ub7ec\uba74\uc5d0\uc11c \uc88b\uc740 \uc810\uc774 \ub9ce\uc740 \ub3c4\uad6c\uc774\uc9c0\ub9cc source code\uac00 \ubcc0\uacbd\ub420 \ub54c\ub9c8\ub2e4 \uc624\ub79c\uc2dc\uac04\uc774 \uac78\ub9ac\ub294 indexing\uc744 \ud574\uc57c \ud55c\ub2e4\ub294 \uc810\uc740 \ubd88\ud3b8 \ud55c \uc810 \uc911 \ud558\ub098\uc774\ub2e4. \uc5ec\uae30\uc11c\ub294 cron\uc73c\ub85c \ub3cc\ub9b4 \uc218 \uc788\ub294 \uac04\ub2e8\ud55c shell script\ub97c \uc0ac\uc6a9\ud574\uc11c \ud55c\uac00\ud55c \uc2dc\uac04\uc5d0 source\uac00 \ucd5c\uc2e0\uc73c\ub85c \uc720\uc9c0\ub420 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud55c\ub2e4. Cron runnable update script Cron\uc73c\ub85c \ub3d9\uc791\uc2dc\ud0a4\ub294 script\ub97c \uc791\uc131\ud560 \ub54c \uac00\uc7a5\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2088,"url":"https:\/\/litcoder.com\/?p=2088","url_meta":{"origin":33,"position":2},"title":"Gitlab test-runner\uc758 FATAL: the &#8220;HOME&#8221; is not set \ubb38\uc81c","author":"litcoder","date":"2019\ub144 9\uc6d4 5\uc77c","format":false,"excerpt":"GitLab Runner \ubb38\uc11c\ub97c \ubcf4\uace0 \uc5f4\uc2ec\ud788 \ub530\ub77c\ud558\uace0 \uc124\uc815\uae4c\uc9c0 \ub9c8\ucce4\ub294\ub370 \ub7ec\ub108\uac00 \ub3d9\uc791\ud558\uc9c0 \uc54a\uace0 commit\uc744 \ud558\uba74 CI\uac00 \ud55c \ucc38 \ub3d9\uc548\uc744 pending \uc0c1\ud0dc\uc5d0 \uc788\ub2e4\uac00 \uc2e4\ud328\ud588\ub2e4\ub294 \uc5d0\ub7ec \uba54\uc77c \ubcf4\ub0b4 \ubc84\ub9ac\ub294 \uc99d\uc0c1\uc774 \uc788\ub2e4. Systemctl\ub85c \uc11c\ube44\uc2a4 \uc0c1\ud0dc\ub97c \ubcf4\ub2c8 \uc81c\ub300\ub85c \uc62c\ub824\uc9c0\uc9c0 \uc54a\uace0 'inactive'\uc774\uac70\ub098 'activating'\uc5d0 \uacc4\uc18d \uba38\ubb3c\ub7ec \uc788\ub2e4. \ud558\uc9c0\ub9cc \ub9cc\uc57d background \uc11c\ube44\uc2a4\ub85c \ub3d9\uc791\uc2dc\ud0a4\uc9c0 \uc54a\uace0 \ub2e4\uc74c\uacfc \uac19\uc774 run command\ub85c foreground\uc5d0\uc11c\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4286,"url":"https:\/\/litcoder.com\/?p=4286","url_meta":{"origin":33,"position":3},"title":"OpenProject\ub97c Docker\ub85c \uc124\uce58","author":"litcoder","date":"2026\ub144 4\uc6d4 8\uc77c","format":false,"excerpt":"\ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ub3c4\uad6c\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 Atlassian\uc758 JIRA\ub97c \ub300\uccb4\ud558\uae30 \uc704\ud55c \uc624\ud508\uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub4e4 \uc911 \uac00\uc7a5 \uc778\uae30\uac00 \uc788\ub2e4\ub294 OpenProject\ub97c \ud68c\uc0ac\uc5d0\uc11c \uc9c4\ud589\ud558\ub294 \ud504\ub85c\uc81d\ud2b8\ub97c \uc704\ud574 \uc0ac\uc6a9\ud574 \ubcf4\uae30\ub85c \ud588\ub2e4. Docker\ub85c \uc124\uce58\ud558\uae30 \uc900\ube44 Source code clone OpenProject\ub294 GitHub repo\uc5d0\uc11c tag\uac00 \uc544\ub2cc branch\uba85\uc744 stable\/<version> \ud615\uc2dd\uc73c\ub85c \ub9b4\ub9ac\uc988\ud558\uace0 \uc788\ub294 \ub4ef \ud558\ub2e4. 2026\ub144 4\uc6d4 \ud604\uc7ac \uac00\uc7a5 \ucd5c\uc2e0 \ubc84\uc804\uc778 17\ubc84\uc804\uc744 \ub2e4\uc74c\uacfc \uac19\uc774\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1336,"url":"https:\/\/litcoder.com\/?p=1336","url_meta":{"origin":33,"position":4},"title":"MinnowboardMAX\uc5d0 Chromium OS \uc62c\ub824 \ubcf8 \ub0b4\uc6a9 \uc815\ub9ac","author":"litcoder","date":"2015\ub144 9\uc6d4 21\uc77c","format":false,"excerpt":"Building Chromium \u00a0OS Linux 12.04 LTS sudo aptitude install git-core gitk git-gui subversion curl Install depot_tools Depot_tools\ub97c clone\ud558\uace0 \uadf8 \uacbd\ub85c\ub97c PATH\uc5d0 \ucd94\uac00\ud574 \uc900\ub2e4. git clone https:\/\/chromium.googlesource.com\/chromium\/tools\/depot_tools.git export PATH=`pwd`\/depot_tools:\"$PATH\" Download source code repo init -u https:\/\/chromium.googlesource.com\/chromiumos\/manifest.git repo sync Run build export BOARD=amd64-generic cd $CHROM_PATH\/src\/scripts\/ cros_sdk -- .\/build_packages --board=${BOARD} cros_sdk -- .\/build_image\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"SC_chromiumOS_flahsing","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2015\/09\/SC_chromiumOS_flahsing.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2015\/09\/SC_chromiumOS_flahsing.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2015\/09\/SC_chromiumOS_flahsing.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2015\/09\/SC_chromiumOS_flahsing.png?resize=700%2C400 2x"},"classes":[]},{"id":4139,"url":"https:\/\/litcoder.com\/?p=4139","url_meta":{"origin":33,"position":5},"title":"Bitnami \uc6cc\ub4dc\ud504\ub808\uc2a4\ub97c Amazon Linux 2023\uc73c\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158","author":"litcoder","date":"2026\ub144 2\uc6d4 25\uc77c","format":false,"excerpt":"\ucc98\uc74c Lightsail\ub85c \uc774\uc0ac\uc654\uc744 \ub54c \uc778\uc2a4\ud134\uc2a4 \uc120\ud0dd\uc5d0\ub294 \ud070 \uace0\ubbfc\uc744 \ub4e4\uc774\uc9c0\ub294 \uc54a\uc558\ub2e4. \uc81c\uacf5\ub418\ub294 WordPress instance\uc5d0\ub294 \ud544\uc694\ud55c \uac83\ub4e4\uc774 \uc774\ubbf8 \ub2e4 \uc124\uce58 \ub418\uc5b4 \uc788\uc5b4\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \ud558\ub098 \uc0dd\uc131\ud558\uace0 \uae30\uc874 \ube14\ub85c\uadf8\ub97c import\ud558\ub294 \uac83\uc73c\ub85c \ubaa8\ub4e0 \uacfc\uc815\ub4e4\uc774 \ube44\uad50\uc801 \uc21c\uc870\ub86d\uac8c \uc9c4\ud589\ub41c \ud3b8\uc774\uc5c8\ub2e4. \ubb38\uc81c\ub294 \uc774 WordPress \uc778\uc2a4\ud134\uc2a4\uac00 Bitnami\ub85c \ub418\uc5b4 \uc788\uc5b4\uc11c \uc138\ubd80\uc801\uc778 \uad00\ub9ac \uc791\uc5c5\uc5d0\ub294 \uc81c\uc57d\uc774 \ub9ce\ub2e4\ub294 \uc810\uc774\ub2e4. \uadf8\ub798\uc11c AWS\uc5d0 \ucd5c\uc801\ud654 \ub418\uc5b4\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/lightsail_https_port.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/lightsail_https_port.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/lightsail_https_port.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/lightsail_https_port.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33"}],"version-history":[{"count":1,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions"}],"predecessor-version":[{"id":3958,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions\/3958"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}