{"id":7660,"date":"2025-02-26T09:00:00","date_gmt":"2025-02-26T08:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=7660"},"modified":"2025-03-26T10:47:08","modified_gmt":"2025-03-26T09:47:08","slug":"lets-talk-about-pipelines-in-the-post-aws-codecommit-era","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/","title":{"rendered":"Let’s talk about pipelines in the post-AWS CodeCommit Era"},"content":{"rendered":"\n

The DevOps philosophy and the evolution of software development led to the automation of application build and deployment operations. Thanks to application and infrastructure pipelines, developers no longer carry USB drives to the system administrators’ office to deploy the new software release!<\/p>\n\n\n\n

For those of us who develop cloud-native applications on AWS every day, the first step to kick off a project is creating a Git repository.. Since July 9, 2015<\/a>, the most natural step has always been to click on the CodeCommit section of the AWS console and select \u201cCreate Repository.\u201d<\/p>\n\n\n\n

Just over 9 years later (on July 31, 2024), we learned that this habit would have to change following Jeff Barr\u2019s announcement on X.<\/p>\n\n\n\n

<\/p>\n\n\n

\n
\"\"<\/figure><\/div>\n\n\n

<\/p>\n\n\n\n

The news surprised everyone: essentially, new AWS accounts created after July 31, 2024, will no longer be able to access the service, however, accounts in AWS organizations where repositories were already present will still be able to access the service normally.<\/p>\n\n\n\n

The service is not in the process of being decommissioned, as was hypothesized in the days following the announcement; security updates, bug fixes, and maintenance are guaranteed, but no new features will be developed.<\/p>\n\n\n\n

Although AWS CodeCommit has never provided advanced options for collaborative coding, its strength has always been its integration with the various automation and deployment tools offered by AWS (like CodePipeline, CodeDeploy, and Amplify).<\/p>\n\n\n\n

There\u2019s already been a lot of discussion about the reasons that may have led AWS to make this decision. Our goal, instead, is to explore the different available alternatives, highlighting the pros and cons based on various scenarios<\/p>\n\n\n\n

Why AWS CodeCommit: its strengths<\/h2>\n\n\n\n

A key aspect is its integration with IAM, which allows you to manage Git permissions using already-registered users: defining the allowed Git operations (pull, push, merge, etc.) directly within IAM policies, making it quick and easy to manage.<\/p>\n\n\n\n

You can also create notification and approval workflows directly integrated with the AWS Cloud (like Amazon SNS, Amazon EventBridge). On the other hand, switching to a different Git provider might require creating integrations that are no longer directly configurable on AWS.<\/p>\n\n\n\n

Moreover, the service’s cost is incredibly low, enabling anyone to get started without navigating a maze of features offered by countless different usage plans.<\/p>\n\n\n\n

Having governance over AWS ecosystem services in one centralized point, federated with the corporate Identity Provider, including management of development tools, provides a holistic view, simplifies processes, and facilitates the implementation of a Landing Zone. The integration of CodeCommit with IAM is a key piece in putting together the puzzle of permissions and access management.<\/p>\n\n\n\n

Weaknesses<\/h2>\n\n\n\n

Despite all the positive aspects described, it was undeniable that AWS CodeCommit had some pretty evident limitations.<\/p>\n\n\n\n

The first was the limited number of integrations with tools outside of AWS. Nowadays, it’s crucial for a code repository tool to offer various integrations beyond just managing branches and resolving conflicts. Almost all the main vendors now provide solutions directly integrated with third-party products, offering users a seamless 360\u00b0 experience on their platforms.<\/p>\n\n\n\n

The second major limitation was the poor implementation of features for collaborative development and code reviews. While the possibility of performing ‘pull & merge requests’ was available, its implementation was quite basic (not to mention the user experience). Today, collaborative development tools offer much more advanced user interfaces, alongside a vast range of complex and advanced features for code review and comparison.<\/p>\n\n\n\n

AWS probably never intended CodeCommit to directly compete with specialized collaborative development tools. Instead, it aimed to provide an integrated option in the context of centralized governance of accounts and resources. And that’s precisely why the sudden announcement caught us off guard.<\/p>\n\n\n\n

Alternative codebases: GitHub, Gitlab, Bitbucket <\/h2>\n\n\n\n

“As we\u2019ve already mentioned, AWS CodeCommit is no longer available for newcomers to AWS, but the service isn\u2019t being discontinued: there\u2019s no need to panic or come up with emergency strategies, but it\u2019s still a good idea to start evaluating the available alternatives.<\/p>\n\n\n\n

First, we need to figure out which of the many options best suits our needs and resources.<\/p>\n\n\n\n

AWS directly recommends some vendors, including the well-known GitHub, GitLab, and BitBucket. The main driver behind this suggestion is, once again, the integration between these platforms and AWS services. The deciding factor might boil down to one simple question:<\/p>\n\n\n\n

\u2018What\u2019s the actual use case for my repository?\u2019<\/p>\n\n\n\n

In the next section, we\u2019ll try to match the most common answers to this question with the various products available on the market.<\/p>\n\n\n\n

There are very few services (both AWS and non-AWS) that the three platforms mentioned above don\u2019t integrate with. In fact, all three can be configured directly as a source step for AWS CodePipeline through the creation of a CodeStar connection. For both GitHub and GitLab, you can use either the SaaS or self-hosted version.<\/p>\n\n\n\n

If we decide to use one of these solutions, the question naturally arises: \u2018Do I really need AWS CodePipeline?\u2019<\/p>\n\n\n\n

If we previously used AWS CodeCommit because it was convenient and right there in the same AWS CodePipeline console, now that we\u2019ll have to use an external service, it might not be worth sticking with AWS pipelines.<\/p>\n\n\n\n

Both GitHub, GitLab, and BitBucket offer integrated pipeline services. Compared to AWS, these services are designed to leverage a wider range of technologies and the most common third-party products. Switching to these types of pipelines could simplify all those intermediate steps that often needed to be orchestrated using complex AWS CodeBuild workflows.<\/p>\n\n\n\n

At the same time, AWS has shifted its development efforts toward tools aimed at improving the developer experience and offering better integrations\u2014for example, with GitLab. It\u2019s now possible to configure runners using AWS CodeBuild as the compute platform, allowing for more granular permissions control compared to the past when interacting with cloud resources. Who hasn\u2019t encountered EC2 runners with full AdministratorAccess permissions?<\/p>\n\n\n\n

Even GitHub Actions are now integrated, and integration with BuildKite has just been announced.<\/p>\n\n\n\n

The \u201chomemade\u201d<\/h4>\n\n\n\n

“There\u2019s also the ‘do-it-yourself’ alternative: even a simple Git repository accessible via SSH can trigger hooks and perform actions. However, managing your own repository, and investing time to ensure high availability, security, and maintenance, doesn\u2019t really offer advantages compared to managed services that already guarantee these aspects and allow you to focus on real business needs. That said, this option shouldn\u2019t be completely ruled out for very specific requirements or unique cases.<\/p>\n\n\n\n

Conclusion<\/h2>\n\n\n\n

A few months ago, after Jeff Barr\u2019s announcement<\/a>, many likely thought they needed to scramble to choose a new codebase in a hurry.<\/p>\n\n\n\n

In reality, this isn\u2019t about discontinuing the service, but it\u2019s still a good time to start evaluating the different options the market has to offer as alternatives to a service that has gained significant success for anyone operating in the AWS ecosystem.<\/p>\n\n\n\n

With its PROS and CONS, AWS CodeCommit leaves us, in its departure, an important legacy of insights about pipeline management\u2014extremely valuable during the decision-making process for choosing a suitable alternative.<\/p>\n\n\n\n

All the alternative platforms to CodeCommit provide a centralized point of management. However, they obviously don\u2019t integrate with IAM directives and potential federations with the identity tools already in use across the AWS ecosystem.<\/p>\n\n\n\n

Integration with third-party IDPs is, in fact, another important aspect. Many Git repositories now natively integrate and allow SSO configuration to provide users with a seamless authentication mechanism that makes the tool easier to use. However, using SAML authentication in the case of BitBucket, GitLab, or GitHub is an option included only in paid plans with enterprise features. This is something to consider compared to the low costs of CodeCommit, which natively leveraged the federation already set up in IAM.<\/p>\n\n\n\n

Once a new platform is chosen, even if everything works on paper, it\u2019s advisable to start developing new projects to get familiar with the tools offered. This helps plan a gradual migration of existing repositories, aiming for unified management. The effort required for porting existing pipelines could be much higher than simply starting with a new, simple, less critical project.<\/p>\n\n\n\n

Have you already thought about which tool will host your repositories in the future? Let us know in the comments!<\/p>\n\n\n\n


\n\n\n\n

About Proud2beCloud<\/h4>\n\n\n\n

Proud2beCloud<\/strong> is a blog by beSharp<\/a>, an Italian APN Premier Consulting Partner expert in designing, implementing, and managing complex Cloud infrastructures and advanced services on AWS. Before being writers, we are Cloud Experts working daily with AWS services since 2007. We are hungry readers, innovative builders, and gem-seekers. On Proud2beCloud, we regularly share our best AWS pro tips, configuration insights, in-depth news, tips&tricks, how-tos, and many other resources. Take part in the discussion!<\/p>\n","protected":false},"excerpt":{"rendered":"

The DevOps philosophy and the evolution of software development led to the automation of application build and deployment operations. Thanks […]<\/p>\n","protected":false},"author":27,"featured_media":7667,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[242],"tags":[367,365,388,599,566],"class_list":["post-7660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-en","tag-aws-codecommit-en","tag-ci-cd-en","tag-github-en","tag-gitlab","tag-landing-zone"],"yoast_head":"\nLet's talk about pipelines in the post-AWS CodeCommit Era - Proud2beCloud Blog<\/title>\n<meta name=\"description\" content=\"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pipelines in the post-AWS CodeCommit Era\" \/>\n<meta property=\"og:description\" content=\"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/\" \/>\n<meta property=\"og:site_name\" content=\"Proud2beCloud Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-26T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-26T09:47:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Social-26.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Riccardo Fragnelli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Pipelines in the post-AWS CodeCommit Era\" \/>\n<meta name=\"twitter:description\" content=\"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Social-26.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Riccardo Fragnelli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/\",\"url\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/\",\"name\":\"Let's talk about pipelines in the post-AWS CodeCommit Era - Proud2beCloud Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.besharp.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg\",\"datePublished\":\"2025-02-26T08:00:00+00:00\",\"dateModified\":\"2025-03-26T09:47:08+00:00\",\"author\":{\"@id\":\"https:\/\/blog.besharp.it\/#\/schema\/person\/621a9271823d0abbc1096cd77da47ccc\"},\"description\":\"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage\",\"url\":\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg\",\"contentUrl\":\"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg\",\"width\":1600,\"height\":900,\"caption\":\"let\u2019s talk about Pipelines in the post-AWS CodeCommit Era\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.besharp.it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Let’s talk about pipelines in the post-AWS CodeCommit Era\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.besharp.it\/#website\",\"url\":\"https:\/\/blog.besharp.it\/\",\"name\":\"Proud2beCloud Blog\",\"description\":\"il blog di beSharp\",\"alternateName\":\"Proud2beCloud Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.besharp.it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.besharp.it\/#\/schema\/person\/621a9271823d0abbc1096cd77da47ccc\",\"name\":\"Riccardo Fragnelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.besharp.it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/be24f01e4e529597302dbbab4ad5504f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/be24f01e4e529597302dbbab4ad5504f?s=96&d=mm&r=g\",\"caption\":\"Riccardo Fragnelli\"},\"description\":\"DevOps @ beSharp I was born on-prem as a Dev before landing on the \u201cCloud side of IT\u201d. With AWS I discovered a whole new branch of IT that fascinates me more and more; I\u2019m always ready for the next big thing! I\u2019m the fussiest man I know on earth and quite lazy. I like spending my free time jumping between video games and RPGs.\",\"url\":\"https:\/\/blog.besharp.it\/author\/riccardo-fragnelli\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Let's talk about pipelines in the post-AWS CodeCommit Era - Proud2beCloud Blog","description":"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future","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:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/","og_locale":"en_US","og_type":"article","og_title":"Pipelines in the post-AWS CodeCommit Era","og_description":"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future","og_url":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/","og_site_name":"Proud2beCloud Blog","article_published_time":"2025-02-26T08:00:00+00:00","article_modified_time":"2025-03-26T09:47:08+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Social-26.jpg","type":"image\/jpeg"}],"author":"Riccardo Fragnelli","twitter_card":"summary_large_image","twitter_title":"Pipelines in the post-AWS CodeCommit Era","twitter_description":"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future","twitter_image":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Social-26.jpg","twitter_misc":{"Written by":"Riccardo Fragnelli","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/","url":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/","name":"Let's talk about pipelines in the post-AWS CodeCommit Era - Proud2beCloud Blog","isPartOf":{"@id":"https:\/\/blog.besharp.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage"},"image":{"@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg","datePublished":"2025-02-26T08:00:00+00:00","dateModified":"2025-03-26T09:47:08+00:00","author":{"@id":"https:\/\/blog.besharp.it\/#\/schema\/person\/621a9271823d0abbc1096cd77da47ccc"},"description":"What about pipelines in the post-AWS CodeCommit Era? Let's evaluate some alternatives to be ready for the future","breadcrumb":{"@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#primaryimage","url":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg","contentUrl":"https:\/\/blog.besharp.it\/wp-content\/uploads\/2025\/02\/Copertina-per-Blog-26.jpg","width":1600,"height":900,"caption":"let\u2019s talk about Pipelines in the post-AWS CodeCommit Era"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.besharp.it\/lets-talk-about-pipelines-in-the-post-aws-codecommit-era\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.besharp.it\/"},{"@type":"ListItem","position":2,"name":"Let’s talk about pipelines in the post-AWS CodeCommit Era"}]},{"@type":"WebSite","@id":"https:\/\/blog.besharp.it\/#website","url":"https:\/\/blog.besharp.it\/","name":"Proud2beCloud Blog","description":"il blog di beSharp","alternateName":"Proud2beCloud Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.besharp.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.besharp.it\/#\/schema\/person\/621a9271823d0abbc1096cd77da47ccc","name":"Riccardo Fragnelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.besharp.it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/be24f01e4e529597302dbbab4ad5504f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/be24f01e4e529597302dbbab4ad5504f?s=96&d=mm&r=g","caption":"Riccardo Fragnelli"},"description":"DevOps @ beSharp I was born on-prem as a Dev before landing on the \u201cCloud side of IT\u201d. With AWS I discovered a whole new branch of IT that fascinates me more and more; I\u2019m always ready for the next big thing! I\u2019m the fussiest man I know on earth and quite lazy. I like spending my free time jumping between video games and RPGs.","url":"https:\/\/blog.besharp.it\/author\/riccardo-fragnelli\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/posts\/7660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/comments?post=7660"}],"version-history":[{"count":6,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/posts\/7660\/revisions"}],"predecessor-version":[{"id":7757,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/posts\/7660\/revisions\/7757"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/media\/7667"}],"wp:attachment":[{"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/media?parent=7660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/categories?post=7660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.besharp.it\/wp-json\/wp\/v2\/tags?post=7660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}