{"id":3672308,"date":"2026-02-13T08:00:39","date_gmt":"2026-02-13T13:00:39","guid":{"rendered":"https:\/\/spin.atomicobject.com\/?p=3672308&#038;preview=true&#038;preview_id=3672308"},"modified":"2026-02-26T20:23:45","modified_gmt":"2026-02-27T01:23:45","slug":"repo-git-submodules","status":"publish","type":"post","link":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/","title":{"rendered":"Hide Code in a Repo Using Git Submodules"},"content":{"rendered":"<p>At some point, most developers run into a version of this problem: <em>I need to add code to a <a href=\"https:\/\/spin.atomicobject.com\/tag\/repositories\/\">repository<\/a>, but I don\u2019t want everyone who has access to that repo to know it exists.<\/em> Git doesn\u2019t make the solution to this problem obvious, but there&#8217;s a built-in solution: &#8220;<a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Git-Tools-Submodules\">Git Submodules<\/a>.&#8221;<\/p>\n<p>A submodule lets you treat another Git Repo as a dependency of your project, without intertwining its code with the main repo. The key detail of submodules that solves the code visibility problem is that access to a submodule is controlled independently of the parent repo. If a user does not have access to a child submodule in a parent repository, they will not be able to clone, view, or run it.<\/p>\n<h2>Scenario<\/h2>\n<p>I recently had to pull in Git Submodules into a project for a <a href=\"https:\/\/atomicobject.com\/releases\/three-developers-hired-through-ai-competition\">student competition<\/a> that Atomic hosts each year. All atoms (Atomic Object employees) running the tournament needed access to &#8220;Tournament-only&#8221; bot implementations (easy\/medium\/hard\/etc.), without exposing the bots&#8217; logic to competitors at the competition.<\/p>\n<p>To do that, the main game repo kept a submodule pointer in a <code>directory-with-child-submodule<\/code> folder instead of embedding any bot logic directly in the parent repo that would be provided to participants. This structure lets hosts with access pull and iterate on bot code in a child repository, while everyone else can still use the parent repo normally but cannot clone or inspect the hidden tournament bots.<\/p>\n<h2>How to<\/h2>\n<h3>1) Initialize Parent Repo<\/h3>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-BASH\" data-lang=\"BASH\">mkdir parent-repo\r\ncd parent-repo\r\ngit init\r\ngit add .\r\ngit commit -m \"Initial commit of parent repo\"<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_2_initialize_child_repo\">2) Initialize Child Repo<\/h3>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-BASH\" data-lang=\"BASH\"># In root directory of parent-repo\r\nmkdir child-repo\r\ncd child-repo\r\ngit init\r\n# add a README or really anything\r\ngit add .\r\ngit commit -m \"Initial commit of child repo\"<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Push both the <code>parent-repo<\/code> and <code>child-repo<\/code> to a remote. <code>parent-repo<\/code> can have any access permissions and limit `child-repo\u2019s access to only individuals you want to access.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_3_add_child_repo_as_a_submodule_of_parent\">3) Add Child Repo as a Submodule of Parent<\/h3>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-BASH\" data-lang=\"BASH\">cd ..\/parent-repo\r\n\r\n# declare child-repo as a submodule of parent-repo\r\ngit submodule add &lt;CHILD_REPO_REMOTE_URL&gt; child-repo\r\n\r\ngit commit -m \"Add child repo as a submodule\"<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><code>parent-repo<\/code> will now contain a <code>.gitmodules<\/code> file and a directory entry that points at a specific commit in the child repo.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If you clone the repo on another machine, the submodule contents should not be present.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_4_cloning_the_submodule\">4) Cloning the Submodule<\/h3>\n<div class=\"paragraph\">\n<p>Anyone with access to <code>child-repo<\/code> can clone both the parent and child repo like so.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-BASH\" data-lang=\"BASH\">git clone &lt;PARENT_REPO_REMOTE_URL&gt;\r\ncd parent-repo\r\ngit submodule init\r\ngit submodule update<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>or as a one-liner<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-BASH\" data-lang=\"BASH\">git clone --recurse-submodules &lt;PARENT_REPO_REMOTE_URL&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>For users who <em>don\u2019t<\/em> have access to the child repo, the parent clone still works, but submodule fetch\/update fails (and the restricted code never appears).<\/p>\n<h2>Drawbacks to Consider<\/h2>\n<p>Submodules do have some draw backs, it is important to understand how they work before bringing them into your project.<\/p>\n<\/div>\n<h3>Pinned commit in parent<\/h3>\n<p>The parent stores only the submodule\u2019s target commit. If the child changes, someone must update the submodule pointer in the parent repo with a commit.<\/p>\n<h3>Extra clone steps<\/h3>\n<p>Anyone who needs the submodule must run <code>git submodule init<\/code> and <code>git submodule update<\/code> (or clone with <code>--recurse-submodules<\/code>).<\/p>\n<h3>Added Complexity<\/h3>\n<p>Submodules introduce another moving part to your repository structure. They work best when the boundary between parent and child code is very clear and unlikely to change frequently.<\/p>\n<h2>When a Submodule Makes Sense<\/h2>\n<p>Git submodules are a good fit when you need clear separation and independent access control between parts of a system.<\/p>\n<p>Common use cases include restricting visibility of internal implementations (reference solutions for leet code problems) and sharing the same private code across multiple parent repositories. You can also use them for enforcing intentional updates to sensitive or critical dependencies.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At some point, most developers run into a version of this problem: I need to add code to a repository, but I don\u2019t want everyone who has access to that repo to know it exists. Git doesn\u2019t make the solution to this problem obvious, but there&#8217;s a built-in solution: &#8220;Git Submodules.&#8221; A submodule lets you [&hellip;]<\/p>\n","protected":false},"author":684,"featured_media":3672560,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1731],"tags":[1737],"series":[],"class_list":["post-3672308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer-tools","tag-repositories"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hide Code in a Repo Using Git Submodules<\/title>\n<meta name=\"description\" content=\"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/spin.atomicobject.com\/repo-git-submodules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hide Code in a Repo Using Git Submodules\" \/>\n<meta property=\"og:description\" content=\"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/spin.atomicobject.com\/repo-git-submodules\/\" \/>\n<meta property=\"og:site_name\" content=\"Atomic Spin\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/atomicobject\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-13T13:00:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-27T01:23:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ben Zuke\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@atomicobject\" \/>\n<meta name=\"twitter:site\" content=\"@atomicobject\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ben Zuke\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/\"},\"author\":{\"name\":\"Ben Zuke\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/person\\\/0943acdcd76cc0729bd6b36bbdea959d\"},\"headline\":\"Hide Code in a Repo Using Git Submodules\",\"datePublished\":\"2026-02-13T13:00:39+00:00\",\"dateModified\":\"2026-02-27T01:23:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/\"},\"wordCount\":532,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/atomicobject.com\\\/\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/JDP-AO2023-123-2-scaled.jpg\",\"keywords\":[\"Repositories\"],\"articleSection\":[\"Developer Tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/\",\"name\":\"Hide Code in a Repo Using Git Submodules\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/JDP-AO2023-123-2-scaled.jpg\",\"datePublished\":\"2026-02-13T13:00:39+00:00\",\"dateModified\":\"2026-02-27T01:23:45+00:00\",\"description\":\"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/repo-git-submodules\\\/#primaryimage\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/JDP-AO2023-123-2-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/JDP-AO2023-123-2-scaled.jpg\",\"width\":2560,\"height\":1707,\"caption\":\"A developer's hands on a keyboard. Post title: Hide Code in a Repo Using Git Submodules\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#website\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/\",\"name\":\"Atomic Spin\",\"description\":\"Atomic Object\u2019s blog on everything we find fascinating.\",\"publisher\":{\"@id\":\"https:\\\/\\\/atomicobject.com\\\/\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/spin.atomicobject.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#organization\",\"name\":\"Atomic Object\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/AO-Logo-Emblem-Color.png\",\"contentUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/AO-Logo-Emblem-Color.png\",\"width\":258,\"height\":244,\"caption\":\"Atomic Object\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/atomicobject\",\"https:\\\/\\\/x.com\\\/atomicobject\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/person\\\/0943acdcd76cc0729bd6b36bbdea959d\",\"name\":\"Ben Zuke\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg\",\"caption\":\"Ben Zuke\"},\"description\":\"Sports, Disc Golf, and Lego nerd that develops custom software at Atomic Object\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/author\\\/ben-zuke\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hide Code in a Repo Using Git Submodules","description":"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.","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:\/\/spin.atomicobject.com\/repo-git-submodules\/","og_locale":"en_US","og_type":"article","og_title":"Hide Code in a Repo Using Git Submodules","og_description":"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.","og_url":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/","og_site_name":"Atomic Spin","article_publisher":"https:\/\/www.facebook.com\/atomicobject","article_published_time":"2026-02-13T13:00:39+00:00","article_modified_time":"2026-02-27T01:23:45+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg","type":"image\/jpeg"}],"author":"Ben Zuke","twitter_card":"summary_large_image","twitter_creator":"@atomicobject","twitter_site":"@atomicobject","twitter_misc":{"Written by":"Ben Zuke","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/#article","isPartOf":{"@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/"},"author":{"name":"Ben Zuke","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/person\/0943acdcd76cc0729bd6b36bbdea959d"},"headline":"Hide Code in a Repo Using Git Submodules","datePublished":"2026-02-13T13:00:39+00:00","dateModified":"2026-02-27T01:23:45+00:00","mainEntityOfPage":{"@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/"},"wordCount":532,"commentCount":0,"publisher":{"@id":"https:\/\/atomicobject.com\/"},"image":{"@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/#primaryimage"},"thumbnailUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg","keywords":["Repositories"],"articleSection":["Developer Tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/spin.atomicobject.com\/repo-git-submodules\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/","url":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/","name":"Hide Code in a Repo Using Git Submodules","isPartOf":{"@id":"https:\/\/spin.atomicobject.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/#primaryimage"},"image":{"@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/#primaryimage"},"thumbnailUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg","datePublished":"2026-02-13T13:00:39+00:00","dateModified":"2026-02-27T01:23:45+00:00","description":"Say you want to add code to a repository, but don\u2019t want everyone with access to that repo to know it exists. Solution? Git Submodules.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/spin.atomicobject.com\/repo-git-submodules\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/spin.atomicobject.com\/repo-git-submodules\/#primaryimage","url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg","contentUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/JDP-AO2023-123-2-scaled.jpg","width":2560,"height":1707,"caption":"A developer's hands on a keyboard. Post title: Hide Code in a Repo Using Git Submodules"},{"@type":"WebSite","@id":"https:\/\/spin.atomicobject.com\/#website","url":"https:\/\/spin.atomicobject.com\/","name":"Atomic Spin","description":"Atomic Object\u2019s blog on everything we find fascinating.","publisher":{"@id":"https:\/\/atomicobject.com\/"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/spin.atomicobject.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/spin.atomicobject.com\/#organization","name":"Atomic Object","url":"https:\/\/spin.atomicobject.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/logo\/image\/","url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/AO-Logo-Emblem-Color.png","contentUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/AO-Logo-Emblem-Color.png","width":258,"height":244,"caption":"Atomic Object"},"image":{"@id":"https:\/\/spin.atomicobject.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/atomicobject","https:\/\/x.com\/atomicobject"]},{"@type":"Person","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/person\/0943acdcd76cc0729bd6b36bbdea959d","name":"Ben Zuke","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/578f36b2931d03723cbf02edda146311fa0243becfd54fcbd283b9da9b459ac1?s=96&d=blank&r=pg","caption":"Ben Zuke"},"description":"Sports, Disc Golf, and Lego nerd that develops custom software at Atomic Object","url":"https:\/\/spin.atomicobject.com\/author\/ben-zuke\/"}]}},"_links":{"self":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts\/3672308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/users\/684"}],"replies":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/comments?post=3672308"}],"version-history":[{"count":1,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts\/3672308\/revisions"}],"predecessor-version":[{"id":3672722,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts\/3672308\/revisions\/3672722"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/media\/3672560"}],"wp:attachment":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/media?parent=3672308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/categories?post=3672308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/tags?post=3672308"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/series?post=3672308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}