{"id":76882,"date":"2024-03-04T13:07:45","date_gmt":"2024-03-04T21:07:45","guid":{"rendered":"https:\/\/github.blog\/?p=76882"},"modified":"2024-04-23T05:47:12","modified_gmt":"2024-04-23T12:47:12","slug":"keeping-repository-maintainer-information-accurate","status":"publish","type":"post","link":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/","title":{"rendered":"Keeping repository maintainer information accurate"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p>Companies and their structures are always evolving. Regardless of the reason, with people and information exchanging places, it&rsquo;s easy for maintainership\/ownership information about a repository to become outdated or unclear. Maintainers play a crucial role in guiding and stewarding a project, and knowing who they are is essential for efficient collaboration and decision-making. This information can be stored in the <a href=\"https:\/\/docs.github.com\/repositories\/managing-your-repositorys-settings-and-features\/customizing-your-repository\/about-code-owners\"><code>CODEOWNERS<\/code> file<\/a> but how can we ensure that it&rsquo;s up to date? Let&rsquo;s delve into why this matters and how the GitHub OSPO&rsquo;s tool, <a href=\"https:\/\/github.com\/github\/cleanowners\"><code>cleanowners<\/code><\/a>, can help maintainers achieve accurate ownership information for their projects.<\/p>\n<h2 id=\"the-importance-of-accurate-maintainer-information\" id=\"the-importance-of-accurate-maintainer-information\" ><a class=\"heading-link\" href=\"#the-importance-of-accurate-maintainer-information\">The importance of accurate maintainer information<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>In any software project, having clear ownership guidelines is crucial for effective collaboration. Maintainers are responsible for reviewing contributions, merging changes, and guiding the project&rsquo;s direction. Without clear ownership information, contributors may be unsure of who to reach out to for guidance or review. Imagine that you&rsquo;ve discovered a high-risk security vulnerability and nobody is responding to your pull request to fix it, let alone coordinating that everyone across the company gets the patches needed for fixing it. This ambiguity can lead to delays and confusion, unfortunately teaching teams that it&rsquo;s better to maintain control than to collaborate. These are not the outcomes we are hoping for as developers, so it&rsquo;s important for us to consider how we can ensure active maintainership especially of our production components.<\/p>\n<h2 id=\"codeowners-files\" id=\"codeowners-files\" ><a class=\"heading-link\" href=\"#codeowners-files\">CODEOWNERS files<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>Solving this problem starts with documenting maintainers. A <code>CODEOWNERS<\/code> file, residing in the root of a repository, allows maintainers to specify individuals or teams who are responsible for reviewing and maintaining specific areas of the codebase. By defining ownership at the file or directory level, <code>CODEOWNERS<\/code> provides clarity on who is responsible for reviewing changes within each part of the project.<\/p>\n<p><code>CODEOWNERS<\/code> not only streamlines the contribution process but also fosters transparency and accountability within the organization. Contributors know exactly who to contact for feedback, escalation, or approval, while maintainers can effectively distribute responsibilities and ensure that every part of the codebase has proper coverage.<\/p>\n<h2 id=\"ensuring-clean-and-accurate-codeowners-files-with-cleanowners\" id=\"ensuring-clean-and-accurate-codeowners-files-with-cleanowners\" ><a class=\"heading-link\" href=\"#ensuring-clean-and-accurate-codeowners-files-with-cleanowners\">Ensuring clean and accurate <code>CODEOWNERS<\/code> files with <code>cleanowners<\/code><span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>While <code>CODEOWNERS<\/code> is a powerful tool for managing ownership information, maintaining it manually can be tedious and easily-overlooked. To address this challenge, the GitHub OSPO developed <code>cleanowners<\/code>: a GitHub Action that automates the process of keeping CODEOWNERS files clean and up to date. If it detects that something needs to change, it will open a pull request so this problem gets addressed sooner rather than later.<\/p>\n<p>Here&rsquo;s how <code>cleanowners<\/code> works:<\/p>\n<pre><code class=\"language-yaml\">---\nname: Weekly codeowners cleanup\non:\n  workflow_dispatch:\n  schedule:\n    - cron: '3 2 * * 6'\n\npermissions:\n  issues: write\n\njobs:\n  cleanowners:\n    name: cleanowners\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Run cleanowners action\n        uses: github\/cleanowners@v1\n        env:\n          GH_TOKEN: ${{ secrets.GH_TOKEN }}\n          ORGANIZATION: &lt;YOUR_ORGANIZATION_GOES_HERE&gt;\n<\/code><\/pre>\n<p>This workflow, triggered by scheduled runs, ensures that the CODEOWNERS file is cleaned automatically. By leveraging <code>cleanowners<\/code>, maintainers can rest assured that ownership information is accurate, or it will be brought to the attention of the team via an automatic pull request requesting an update to the file. Here is an example where <code>@zkoppert<\/code> and <code>@no-longer-in-this-org<\/code> used to both be maintainers, but <code>@no-longer-in-this-org<\/code> has left the company and no longer maintains this repository.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/03\/codeowners-cleanup.png?w=1024&#038;resize=1024%2C360\" alt=\"Screenshot of an example pull request where one maintainer is removed from the CODEOWNERS file because they left the company and no longer maintain this repository.\" width=\"1024\" height=\"360\" class=\"aligncenter size-large wp-image-76884 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/03\/codeowners-cleanup.png?w=1169 1169w, https:\/\/github.blog\/wp-content\/uploads\/2024\/03\/codeowners-cleanup.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/03\/codeowners-cleanup.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/03\/codeowners-cleanup.png?w=1024 1024w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h2 id=\"dive-in\" id=\"dive-in\" ><a class=\"heading-link\" href=\"#dive-in\">Dive in<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>With tools like <code>cleanowners<\/code>, the task of managing CODEOWNERS files becomes actively managed instead of ignored, allowing maintainers to focus on what matters most: building and nurturing thriving software projects. By embracing clear and accurate ownership documentation practices, software projects can continue to flourish, guided by clear ownership and collaboration principles.<\/p>\n<div class=\"post-content-cta\"><p>Check out <a href=\"https:\/\/github.com\/github\/cleanowners\">the repository<\/a> for more information on how to configure and set up the action.<\/p>\n<\/div>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.<\/p>\n","protected":false},"author":1876,"featured_media":74922,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_gh_post_show_toc":"yes","_gh_post_is_no_robots":"no","_gh_post_is_featured":"no","_gh_post_is_excluded":"no","_gh_post_is_unlisted":"no","_gh_post_related_link_1":"","_gh_post_related_link_2":"","_gh_post_related_link_3":"","_gh_post_sq_img":"","_gh_post_sq_img_id":"","_gh_post_cta_title":"","_gh_post_cta_text":"","_gh_post_cta_link":"","_gh_post_cta_button":"Click Here to Learn More","_gh_post_recirc_hide":"no","_gh_post_recirc_col_1":"gh-auto-select","_gh_post_recirc_col_2":"65301","_gh_post_recirc_col_3":"65308","_gh_post_recirc_col_4":"65316","_featured_video":"","_gh_post_additional_query_params":"","_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_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[3332,67],"tags":[3219,2141,2739,2885],"coauthors":[2243],"class_list":["post-76882","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-maintainers","category-open-source","tag-codeowners","tag-maintainers","tag-open-source","tag-repositories"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Keeping repository maintainer information accurate - The GitHub Blog<\/title>\n<meta name=\"description\" content=\"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keeping repository maintainer information accurate\" \/>\n<meta property=\"og:description\" content=\"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/\" \/>\n<meta property=\"og:site_name\" content=\"The GitHub Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-04T21:07:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-23T12:47:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Zack Koppert\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zack Koppert\" \/>\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:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/\"},\"author\":{\"name\":\"Zack Koppert\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/1706061ebafc21013e1b3f79617a473e\"},\"headline\":\"Keeping repository maintainer information accurate\",\"datePublished\":\"2024-03-04T21:07:45+00:00\",\"dateModified\":\"2024-04-23T12:47:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/\"},\"wordCount\":557,\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Collaboration-DarkMode-3.png?fit=1200%2C630\",\"keywords\":[\"CODEOWNERS\",\"maintainers\",\"open source\",\"repositories\"],\"articleSection\":[\"Maintainers\",\"Open Source\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/\",\"url\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/\",\"name\":\"Keeping repository maintainer information accurate - The GitHub Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Collaboration-DarkMode-3.png?fit=1200%2C630\",\"datePublished\":\"2024-03-04T21:07:45+00:00\",\"dateModified\":\"2024-04-23T12:47:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/1706061ebafc21013e1b3f79617a473e\"},\"description\":\"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#primaryimage\",\"url\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Collaboration-DarkMode-3.png?fit=1200%2C630\",\"contentUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Collaboration-DarkMode-3.png?fit=1200%2C630\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/keeping-repository-maintainer-information-accurate\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/github.blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open Source\",\"item\":\"https:\\\/\\\/github.blog\\\/open-source\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Maintainers\",\"item\":\"https:\\\/\\\/github.blog\\\/open-source\\\/maintainers\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Keeping repository maintainer information accurate\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/github.blog\\\/#website\",\"url\":\"https:\\\/\\\/github.blog\\\/\",\"name\":\"The GitHub Blog\",\"description\":\"Updates, ideas, and inspiration from GitHub to help developers build and design software.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/github.blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/1706061ebafc21013e1b3f79617a473e\",\"name\":\"Zack Koppert\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=ga2b4617af3389c906d8172c4feff32b5\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=g\",\"caption\":\"Zack Koppert\"},\"url\":\"https:\\\/\\\/github.blog\\\/author\\\/zkoppert\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Keeping repository maintainer information accurate - The GitHub Blog","description":"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.","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:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/","og_locale":"en_US","og_type":"article","og_title":"Keeping repository maintainer information accurate","og_description":"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.","og_url":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/","og_site_name":"The GitHub Blog","article_published_time":"2024-03-04T21:07:45+00:00","article_modified_time":"2024-04-23T12:47:12+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","type":"image\/png"}],"author":"Zack Koppert","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Zack Koppert","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#article","isPartOf":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/"},"author":{"name":"Zack Koppert","@id":"https:\/\/github.blog\/#\/schema\/person\/1706061ebafc21013e1b3f79617a473e"},"headline":"Keeping repository maintainer information accurate","datePublished":"2024-03-04T21:07:45+00:00","dateModified":"2024-04-23T12:47:12+00:00","mainEntityOfPage":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/"},"wordCount":557,"image":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","keywords":["CODEOWNERS","maintainers","open source","repositories"],"articleSection":["Maintainers","Open Source"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/","url":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/","name":"Keeping repository maintainer information accurate - The GitHub Blog","isPartOf":{"@id":"https:\/\/github.blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#primaryimage"},"image":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","datePublished":"2024-03-04T21:07:45+00:00","dateModified":"2024-04-23T12:47:12+00:00","author":{"@id":"https:\/\/github.blog\/#\/schema\/person\/1706061ebafc21013e1b3f79617a473e"},"description":"Discover how keeping repository maintainer information accurate through CODEOWNERS files and automating maintenance with tools like cleanowners fosters efficient collaboration and sustainable software projects.","breadcrumb":{"@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#primaryimage","url":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","contentUrl":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/github.blog\/open-source\/maintainers\/keeping-repository-maintainer-information-accurate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/github.blog\/"},{"@type":"ListItem","position":2,"name":"Open Source","item":"https:\/\/github.blog\/open-source\/"},{"@type":"ListItem","position":3,"name":"Maintainers","item":"https:\/\/github.blog\/open-source\/maintainers\/"},{"@type":"ListItem","position":4,"name":"Keeping repository maintainer information accurate"}]},{"@type":"WebSite","@id":"https:\/\/github.blog\/#website","url":"https:\/\/github.blog\/","name":"The GitHub Blog","description":"Updates, ideas, and inspiration from GitHub to help developers build and design software.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/github.blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/github.blog\/#\/schema\/person\/1706061ebafc21013e1b3f79617a473e","name":"Zack Koppert","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=ga2b4617af3389c906d8172c4feff32b5","url":"https:\/\/secure.gravatar.com\/avatar\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c26128b78268a7007a965c1079a0afcc4acdfe775be206c05feaae37325af7d?s=96&d=mm&r=g","caption":"Zack Koppert"},"url":"https:\/\/github.blog\/author\/zkoppert\/"}]}},"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pamS32-k02","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/github.blog\/wp-content\/uploads\/2023\/10\/Collaboration-DarkMode-3.png?fit=1200%2C630","_links":{"self":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/76882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/users\/1876"}],"replies":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/comments?post=76882"}],"version-history":[{"count":7,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/76882\/revisions"}],"predecessor-version":[{"id":77581,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/76882\/revisions\/77581"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media\/74922"}],"wp:attachment":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media?parent=76882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/categories?post=76882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/tags?post=76882"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/coauthors?post=76882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}