<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tutorial on NakuRei's Notes</title><link>https://notes.nakurei.com/en/tags/tutorial/</link><description>Recent content in Tutorial on NakuRei's Notes</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>NakuRei</copyright><lastBuildDate>Wed, 23 Sep 2026 00:55:32 +0900</lastBuildDate><atom:link href="https://notes.nakurei.com/en/tags/tutorial/index.xml" rel="self" type="application/rss+xml"/><item><title>Notes from Reviewing My GitHub Repository Security Settings</title><link>https://notes.nakurei.com/en/post/github-repo-security-settings/</link><pubDate>Tue, 22 Sep 2026 22:28:36 +0900</pubDate><guid>https://notes.nakurei.com/en/post/github-repo-security-settings/</guid><description>&lt;img src="https://notes.nakurei.com/post/github-repo-security-settings/image.webp" alt="Featured image of post Notes from Reviewing My GitHub Repository Security Settings" /&gt;&lt;hr&gt;&#10;&lt;h2 id="what-is-this"&gt;&#10; What is this?&lt;a href="#what-is-this"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;These are some notes on what I did and what I learned while reviewing my GitHub repository security settings, following the article below.&lt;/p&gt;&#10;&lt;p&gt;When GitHub itself says these are settings &amp;ldquo;every GitHub maintainer should enable,&amp;rdquo; you kind of have to check, right?&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/65c698676d78fb82df829db5a3e730ffc1fc78f6_hu_41f2f06ff8a7620e.webp"&#10; alt="6 security settings every GitHub maintainer should enable this week image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; 6 security settings every GitHub maintainer should enable this week&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;These six free settings will not make your project unhackable. Nothing will. What they will do is close the easy doors.&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-3cb553f4b0354317ce70ea043be4d52c3ddc3ff4.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="github.blog favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; github.blog&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;There are six settings in total, and apparently you can get through all of them in under 30 minutes. Really?&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;&#10; Conclusion&lt;a href="#conclusion"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;For public repositories, enabling all of the relevant settings under &amp;ldquo;Security and quality&amp;rdquo; improves the security of the repository.&lt;/p&gt;&#10;&lt;p&gt;For personal private repositories, however, only the following settings are available:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Dependabot alerts&lt;/li&gt;&#10;&lt;li&gt;Secret scanning alerts&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="1-add-a-securitymd-file"&gt;&#10; 1. Add a SECURITY.md file&lt;a href="#1-add-a-securitymd-file"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This is mainly useful for public repositories.&lt;/p&gt;&#10;&lt;p&gt;A &lt;code&gt;SECURITY.md&lt;/code&gt; file is &lt;strong&gt;used to tell users how to report security vulnerabilities in your project&lt;/strong&gt;. According to the &lt;a class="link" href="https://docs.github.com/en/code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/add-security-policy?ref=devtoanmolbaranwal" target="_blank" rel="noopener"&#10; &gt;official documentation&lt;/a&gt;, it lets you &amp;ldquo;add information about supported versions of your project and how to report a vulnerability.&amp;rdquo; The &lt;a class="link" href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/" target="_blank" rel="noopener"&#10; &gt;article referenced above&lt;/a&gt; uses &lt;a class="link" href="https://github.com/systemd/systemd/security/policy" target="_blank" rel="noopener"&#10; &gt;systemd&amp;rsquo;s security policy&lt;/a&gt; as an example.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/ja/code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/add-security-policy"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="リポジトリへのセキュリティ ポリシーの追加 - GitHubドキュメント image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; リポジトリへのセキュリティ ポリシーの追加 - GitHubドキュメント&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;セキュリティポリシーをリポジトリに追加することによって、プロジェクト内のセキュリティ脆弱性を報告する方法の手順を示すことができます。&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;If vulnerability details are posted in a public issue, malicious users may be able to exploit them. For that reason, it is important to provide a reporting channel separate from public issues. Clearly specifying where vulnerabilities should be reported helps improve the security of the repository.&lt;/p&gt;&#10;&lt;p&gt;The &lt;code&gt;SECURITY.md&lt;/code&gt; file can be placed in any of the following locations&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The &lt;code&gt;.github&lt;/code&gt; directory&lt;/li&gt;&#10;&lt;li&gt;The repository root&lt;/li&gt;&#10;&lt;li&gt;The &lt;code&gt;docs&lt;/code&gt; directory&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This corresponds to the &amp;ldquo;Security policy&amp;rdquo; section under a repository&amp;rsquo;s &amp;ldquo;Security and quality&amp;rdquo; settings. If it shows as Disabled, as in the image below, it means that the repository does not have a &lt;code&gt;SECURITY.md&lt;/code&gt; file.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="An example of Security policy showing as Disabled" class="gallery-image" data-flex-basis="710px" data-flex-grow="296" height="358" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-16-220941.png" srcset="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-16-220941_hu_ba87d827c0225f8c.png 800w, https://notes.nakurei.com/post/github-repo-security-settings/2026-08-16-220941.png 1060w" width="1060"&gt;&lt;/p&gt;&#10;&lt;p&gt;Clicking &amp;ldquo;Set up a security policy&amp;rdquo; in the screen above lets you create a &lt;code&gt;SECURITY.md&lt;/code&gt; file in the repository root directly from GitHub.&lt;/p&gt;&#10;&lt;p&gt;This is just my opinion, but for a personal project, I think a security policy should include at least the following:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Which versions receive security fixes&lt;/li&gt;&#10;&lt;li&gt;Where vulnerabilities should be reported&lt;/li&gt;&#10;&lt;li&gt;What information should be included in a report&lt;/li&gt;&#10;&lt;li&gt;What should not be posted in a public issue&lt;/li&gt;&#10;&lt;li&gt;An approximate response time&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;For vulnerability reports, GitHub&amp;rsquo;s &lt;a class="link" href="https://docs.github.com/ja/code-security/how-tos/report-and-fix-vulnerabilities/report-privately" target="_blank" rel="noopener"&#10; &gt;Private Vulnerability Reporting (PVR)&lt;/a&gt; is convenient. I will cover that in the next section.&lt;/p&gt;&#10;&lt;p&gt;For example, in &lt;a class="link" href="https://github.com/NakuRei/ticko" target="_blank" rel="noopener"&#10; &gt;ticko&lt;/a&gt;, a Python package I maintain, I created the following &lt;code&gt;SECURITY.md&lt;/code&gt; file.&lt;/p&gt;&#10;&lt;div class="block-highlight-warning"&gt;&#10; &lt;span class="icon-warning"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-alert-triangle" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"&gt;&#10; &lt;path stroke="none" d="M0 0h24v24H0z" fill="none"/&gt;&#10; &lt;path d="M12 9v2m0 4v.01" /&gt;&#10; &lt;path d="M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;span&gt;The example below assumes that PVR, which is explained in the next section, is enabled.&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;style&gt;&#10; .code-block-filename {&#10; --code-filename-fontsize: calc(0.96em * 0.9);&#10;&#10; display: table;&#10; max-width: 100%;&#10; background: var(--accent-color-darker);&#10; color: var(--accent-color-text);&#10; font-size: var(--code-filename-fontsize);&#10; line-height: 1;&#10; padding-top: calc(var(--code-filename-fontsize) * 0.5);&#10; padding-left: calc(var(--code-filename-fontsize) * 0.7);&#10; padding-right: calc(var(--code-filename-fontsize) * 0.7);&#10; padding-bottom: calc(var(--code-filename-fontsize) * 0.7);&#10; border-radius: calc(var(--code-filename-fontsize) * 0.5)&#10; calc(var(--code-filename-fontsize) * 0.5) 0 0;&#10; }&#10; .code-block-content {&#10; padding-top: 0px;&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;div&gt;&#10; &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# Security Policy&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Supported Versions&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Security updates are provided for the latest major version of ticko.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| Version | Supported |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| ------- | ------------------ |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 2.x | :white_check_mark: |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;| 1.x | :x: |&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Users are encouraged to upgrade to the latest release available on PyPI.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Reporting a Vulnerability&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;If you discover a security vulnerability in ticko, please do not report it&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;through a public GitHub issue.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Instead, please report it privately using GitHub&amp;#39;s private vulnerability&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reporting feature.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;When submitting a report, please include as much of the following information&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;as possible:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; A description of the vulnerability&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; The affected version(s) of ticko&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Steps to reproduce the issue&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; A minimal proof of concept, if applicable&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; The potential security impact&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; Any suggested mitigation or fix, if available&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;You can expect an initial response within 14 days.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Please allow reasonable time for the issue to be investigated and fixed before&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;publicly disclosing the vulnerability.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Scope&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Security reports should describe issues that have a meaningful security impact&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;on applications using ticko.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;General bugs, timing inaccuracies, performance issues, feature requests, and&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;other problems without a security impact should be reported through the public&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GitHub issue tracker instead.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Writing the &lt;code&gt;SECURITY.md&lt;/code&gt; file itself does not take very long, since you can give an LLM the repository URL and have it draft one for you. You can also use security policies from other well-maintained projects as references.&lt;/p&gt;&#10;&lt;h2 id="2-enable-pvr-private-vulnerability-reporting"&gt;&#10; 2. Enable PVR (Private Vulnerability Reporting)&lt;a href="#2-enable-pvr-private-vulnerability-reporting"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This is mainly useful for public repositories.&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://docs.github.com/ja/code-security/how-tos/report-and-fix-vulnerabilities/report-privately" target="_blank" rel="noopener"&#10; &gt;Private Vulnerability Reporting (PVR)&lt;/a&gt; is a GitHub feature that allows vulnerabilities in a repository to be reported privately. If you publish a project on GitHub, vulnerability reports should generally go through PVR rather than public issues.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/ja/code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/configure-for-a-repository"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="リポジトリのプライベート脆弱性レポートの構成 - GitHubドキュメント image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; リポジトリのプライベート脆弱性レポートの構成 - GitHubドキュメント&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;パブリック リポジトリの所有者と管理者は、プライベート脆弱性レポートを有効にすることで、セキュリティ リサーチャーがリポジトリ内の脆弱性を安全に報告できるようにすることができます。&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;To use PVR, you need to &lt;a class="link" href="https://docs.github.com/ja/code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/configure-for-a-repository" target="_blank" rel="noopener"&#10; &gt;enable it in the repository settings&lt;/a&gt;. This only takes a moment.&lt;/p&gt;&#10;&lt;p&gt;First, open the repository&amp;rsquo;s &amp;ldquo;Security and quality&amp;rdquo; settings and find the &amp;ldquo;Private vulnerability reporting&amp;rdquo; section. If it shows as Disabled, as in the image below, PVR is currently turned off.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="An example of Private vulnerability reporting showing as Disabled" class="gallery-image" data-flex-basis="570px" data-flex-grow="237" height="301" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-17-225433.png" width="715"&gt;&lt;/p&gt;&#10;&lt;p&gt;Clicking &amp;ldquo;Enable vulnerability reporting&amp;rdquo; opens the configuration screen shown below.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="The PVR settings screen" class="gallery-image" data-flex-basis="594px" data-flex-grow="247" height="315" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-17-225617.png" width="780"&gt;&lt;/p&gt;&#10;&lt;p&gt;Click &amp;ldquo;Enable&amp;rdquo; to turn it on.&lt;/p&gt;&#10;&lt;p&gt;Once both steps 1 and 2 are configured, the repository&amp;rsquo;s &amp;ldquo;Security and quality&amp;rdquo; page will show the contents of the &lt;code&gt;SECURITY.md&lt;/code&gt; file created in step 1, along with a &amp;ldquo;Report a vulnerability&amp;rdquo; button.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="The Security and quality page after completing steps 1 and 2" class="gallery-image" data-flex-basis="561px" data-flex-grow="234" height="658" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-17-230234.png" srcset="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-17-230234_hu_48925f9004b74fd5.png 800w, https://notes.nakurei.com/post/github-repo-security-settings/2026-08-17-230234.png 1540w" width="1540"&gt;&lt;/p&gt;&#10;&lt;h2 id="3-enable-secret-scanning-alerts"&gt;&#10; 3. Enable Secret scanning alerts&lt;a href="#3-enable-secret-scanning-alerts"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This setting is available for public repositories, as well as private or internal repositories owned by an organization.&lt;/p&gt;&#10;&lt;p&gt;Secret scanning checks repositories for values that should remain secret, such as API keys and tokens, and alerts you if they have accidentally made their way into the repository. Think of it as one more line of defense against leaked credentials.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/en/code-security/concepts/secret-security/about-alerts"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="About secret scanning alerts - GitHub Docs image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; About secret scanning alerts - GitHub Docs&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;Learn about the different types of secret scanning alerts.&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;According to the &lt;a class="link" href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/" target="_blank" rel="noopener"&#10; &gt;article referenced above&lt;/a&gt;, AI-assisted commits leak secrets at roughly twice the usual rate. That&amp;rsquo;s a little scary.&lt;/p&gt;&#10;&lt;p&gt;To enable it, first open the repository&amp;rsquo;s &amp;ldquo;Security and quality&amp;rdquo; settings and find the &amp;ldquo;Secret scanning alerts&amp;rdquo; section. If it shows as Enabled, as in the image below, the feature is active.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="An example of Secret scanning alerts being enabled" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="582" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-18-010614.png" srcset="https://notes.nakurei.com/post/github-repo-security-settings/2026-08-18-010614_hu_1afe8a1dd462b467.png 800w, https://notes.nakurei.com/post/github-repo-security-settings/2026-08-18-010614.png 1045w" width="1045"&gt;&lt;/p&gt;&#10;&lt;p&gt;When this feature is enabled, GitHub will apparently raise an alert if it detects a leaked secret&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#10;&lt;p&gt;If a leaked secret is actually detected, the official documentation below looks like a useful reference for how to respond.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/en/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts/resolving-alerts"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="Resolving alerts from secret scanning - GitHub Docs image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; Resolving alerts from secret scanning - GitHub Docs&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;After reviewing the details of a secret scanning alert, you should fix and then close the alert.&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;h2 id="4-enable-dependabot"&gt;&#10; 4. Enable Dependabot&lt;a href="#4-enable-dependabot"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This setting is useful for both public and private repositories.&lt;/p&gt;&#10;&lt;p&gt;Dependabot warns you when an external library or package your repository depends on contains a known vulnerability.&lt;/p&gt;&#10;&lt;p&gt;For example, it checks dependencies listed in files such as &lt;code&gt;package.json&lt;/code&gt; and alerts you when a security issue is found. By default, these alerts are also sent by email.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/en/code-security/concepts/supply-chain-security/dependabot-alerts"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="Dependabot alerts - GitHub Docs image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; Dependabot alerts - GitHub Docs&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;Dependabot alerts help you find and fix vulnerable dependencies before they become security risks.&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;At the time of writing, Dependabot has five related features:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Feature&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Dependency graph&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Allows GitHub to identify and track the repository&amp;rsquo;s dependencies&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Dependabot alerts&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Warns you when a known vulnerability is found in a dependency&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Dependabot security updates&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Automatically opens PRs to update vulnerable dependencies to patched versions&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Grouped security updates&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Groups multiple security updates into a single PR&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Dependabot version updates&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Opens PRs periodically to update dependencies to newer versions&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Of these, Dependabot version updates is the only one that creates update PRs regardless of whether a vulnerability exists.&lt;/p&gt;&#10;&lt;p&gt;Personally, I consider Dependabot alerts to be the bare minimum. Because Dependabot alerts requires the Dependency graph, I decided to enable both.&lt;/p&gt;&#10;&lt;p&gt;To configure it, first open the &amp;ldquo;Security and quality&amp;rdquo; settings for the repository. If you see an &amp;ldquo;Enable Dependabot alerts&amp;rdquo; button like the one below, the feature is not currently enabled.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Dependabot alerts is not enabled" class="gallery-image" data-flex-basis="433px" data-flex-grow="180" height="585" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-19-235705.png" srcset="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-19-235705_hu_7e37057b00763d95.png 800w, https://notes.nakurei.com/post/github-repo-security-settings/2026-09-19-235705.png 1056w" width="1056"&gt;&lt;/p&gt;&#10;&lt;p&gt;Clicking the button takes you to the Advanced Security settings page shown below. From there, click &amp;ldquo;Enable&amp;rdquo; in the Dependabot alerts section.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Click this Enable button to enable Dependabot alerts" class="gallery-image" data-flex-basis="223px" data-flex-grow="93" height="793" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_215315.png" width="739"&gt;&lt;/p&gt;&#10;&lt;p&gt;If the Dependency graph has not yet been enabled, GitHub will show a warning like the one below. There is no problem with this, so click &amp;ldquo;Enable.&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="A warning appears saying that Dependabot alerts requires the Dependency graph" class="gallery-image" data-flex-basis="537px" data-flex-grow="224" height="229" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_215536.png" width="513"&gt;&lt;/p&gt;&#10;&lt;p&gt;If the button now says &amp;ldquo;Disable,&amp;rdquo; as shown below, Dependabot alerts has been enabled successfully.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Dependabot alerts is enabled" class="gallery-image" data-flex-basis="352px" data-flex-grow="146" height="501" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_215943.png" width="735"&gt;&lt;/p&gt;&#10;&lt;p&gt;The &amp;ldquo;Dependabot malware alerts&amp;rdquo; option shown in the same screen also looked useful, so I enabled that as well.&lt;/p&gt;&#10;&lt;h2 id="5-enable-code-scanning"&gt;&#10; 5. Enable Code scanning&lt;a href="#5-enable-code-scanning"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This can be enabled for public repositories or repositories owned by an organization.&lt;/p&gt;&#10;&lt;p&gt;Code scanning performs static analysis on the code in your repository to identify security vulnerabilities and coding errors. For example, it can flag issues such as SQL injection vulnerabilities.&lt;/p&gt;&#10;&#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://docs.github.com/ja/code-security/concepts/code-scanning/code-scanning"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/remote/db564214c86173a155f04b50162541dea44d7c0c_hu_824cae58e9b59c9c.webp"&#10; alt="コード スキャン - GitHubドキュメント image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; コード スキャン - GitHubドキュメント&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;code scanningを使用して、GitHubのプロジェクトのコードでセキュリティの脆弱性とエラーを見つけることができます。&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-93e8494b5705d47fd44472eac39f114eda44f780.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="docs.github.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; docs.github.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;p&gt;Code scanning with CodeQL can also detect insecure GitHub Actions workflows. GitHub now provides a default CodeQL configuration that can be enabled with just a few clicks. Very convenient.&lt;/p&gt;&#10;&lt;p&gt;With the default setup, configuration is straightforward. First, check &amp;ldquo;Code scanning alerts&amp;rdquo; under &amp;ldquo;Security and quality&amp;rdquo; for the repository you want to configure.&lt;/p&gt;&#10;&lt;p&gt;If you see a &amp;ldquo;Set up code scanning&amp;rdquo; button like the one below, Code scanning has not yet been enabled.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Code scanning is not enabled yet" class="gallery-image" data-flex-basis="322px" data-flex-grow="134" height="519" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_221046.png" width="697"&gt;&lt;/p&gt;&#10;&lt;p&gt;Clicking &amp;ldquo;Set up code scanning&amp;rdquo; takes you to the Advanced Security settings page. You can customize the configuration, but the simplest option is to use CodeQL with the default setup. If it has not yet been configured, you should see something like the screen below. Select &amp;ldquo;Default&amp;rdquo; from &amp;ldquo;Set up.&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Setting up CodeQL" class="gallery-image" data-flex-basis="624px" data-flex-grow="260" height="285" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_221254.png" width="742"&gt;&lt;/p&gt;&#10;&lt;p&gt;GitHub then analyzes the repository automatically and generates a default configuration. If anything looks incorrect, you can edit it here.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Automatic analysis results for ticko, a Python package I maintain. Since ticko is a Python package and is published to PyPI through GitHub Actions, the detected configuration is correct." class="gallery-image" data-flex-basis="193px" data-flex-grow="80" height="604" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_221511.png" width="487"&gt;&lt;/p&gt;&#10;&lt;p&gt;If the configuration looks correct, click &amp;ldquo;Enable CodeQL.&amp;rdquo; Setup takes a few minutes to complete.&lt;/p&gt;&#10;&lt;p&gt;Once CodeQL is enabled and the scan has run successfully, the status will be shown in the settings.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Code scanning is enabled and a scan has completed" class="gallery-image" data-flex-basis="1854px" data-flex-grow="772" height="91" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_221912.png" width="703"&gt;&lt;/p&gt;&#10;&lt;p&gt;You can check the scan results from the Actions tab on GitHub.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Scan results in the GitHub Actions tab" class="gallery-image" data-flex-basis="484px" data-flex-grow="201" height="510" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_222101.png" srcset="https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_222101_hu_6c46544d0e154cce.png 800w, https://notes.nakurei.com/post/github-repo-security-settings/2026-09-22_222101.png 1030w" width="1030"&gt;&lt;/p&gt;&#10;&lt;h2 id="6-protect-the-default-branch"&gt;&#10; 6. Protect the default branch&lt;a href="#6-protect-the-default-branch"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;For most repositories, the default branch is probably &lt;code&gt;main&lt;/code&gt;. You can protect this branch so that changes cannot be pushed directly to it. For example, you can require changes to go through a pull request and require at least one approval before merging.&lt;/p&gt;&#10;&lt;p&gt;Personally, I find this more annoying than useful for private repositories that I work on alone. For public repositories, however, simply preventing direct pushes to the default branch provides a significant benefit.&lt;/p&gt;&#10;&lt;p&gt;You can also make security checks part of the merge requirements, allowing Dependabot alerts or code scanning results to block a merge when necessary.&lt;/p&gt;&#10;&lt;p&gt;I had already configured this in the past, so see the article below for the details.&lt;/p&gt;&#10;&#10; &#10; &#10; &lt;div&#10; class="url-card"&#10; style="&#10; display: flex;&#10; height: 100%;&#10; width: 100%;&#10; margin-top: 10px;&#10; margin-bottom: 10px;&#10; padding: 10px;&#10; border: solid 1px var(--table-border-color);&#10; border-radius: 0.5rem;&#10; overflow: hidden;&#10; "&#10; &gt;&#10; &lt;a&#10; href="https://notes.nakurei.com/post/github-branching-rules-notes/"&#10; target="_blank"&#10; rel="noopener noreferrer"&#10; style="&#10; display: flex;&#10; width: 100%;&#10; height: 100%;&#10; text-decoration: none;&#10; "&#10; class="linkcard"&#10; &gt;&#10; &#10; &lt;img&#10; src="https://notes.nakurei.com/icons/photo-off.svg"&#10; alt="GitHubのブランチ保護のルールについて調べたときのメモ image"&#10; width="120"&#10; height="120"&#10; loading="lazy"&#10; decoding="async"&#10; style="&#10; max-width: 200px;&#10; max-height: 120px;&#10; object-fit: cover;&#10; margin: 0;&#10; flex-shrink: 0;&#10; "&gt;&#10; &#10;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: column;&#10; align-items: start;&#10; justify-content: center;&#10; margin-left: 12px;&#10; "&#10; &gt;&#10; &lt;p style="margin: 0; padding-left: 0; padding-bottom: 3px; border: none"&gt;&#10; &#10; GitHubのブランチ保護のルールについて調べたときのメモ&#10; &#10; &lt;/p&gt;&#10; &lt;p&#10; style="&#10; margin: 0;&#10; font-size: 12px;&#10; word-break: break-word;&#10; display: -webkit-box;&#10; display: box;&#10; -webkit-box-orient: vertical;&#10; box-orient: vertical;&#10; -webkit-line-clamp: 3;&#10; line-clamp: 3;&#10; overflow: hidden;&#10; "&#10; &gt;&lt;/p&gt;&#10; &lt;div&#10; style="&#10; display: flex;&#10; flex-direction: row;&#10; align-items: center;&#10; gap: 2px;&#10; "&#10; &gt;&lt;img&#10; src="https://notes.nakurei.com/remote/favicon-1eff5ad74ed7b442dfa6826d07982b3bff45afb2.png"&#10; width="14"&#10; height="14"&#10; style="margin-right: 2px;"&#10; alt="notes.nakurei.com favicon image"&#10; /&gt;&lt;span style="font-size: small; color: var(--card-text-color-tertiary);"&gt;&#10; notes.nakurei.com&#10; &lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10; &lt;/div&gt;&lt;style&gt;&#10; .url-card:hover {&#10; box-shadow: 0 0 0 1px var(--card-text-color-tertiary);&#10; }&#10;&lt;/style&gt;&#10;&#10;&lt;h2 id="wrapping-up"&gt;&#10; Wrapping up&lt;a href="#wrapping-up"&gt;&#10; &lt;img src="https://notes.nakurei.com/icons/link.svg" width="44" height="44" style="width: 0.9em; margin-left: 0.25em; margin-bottom: -0.12em;" alt="Link to this heading" /&gt;&#10; &lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;It took me a while because I was researching each setting as I went, but in the end, the only parts that really take any time are writing the &lt;code&gt;SECURITY.md&lt;/code&gt; file and protecting the default branch. Everything else is mostly just a matter of clicking &amp;ldquo;Enable&amp;rdquo; on a settings page.&lt;/p&gt;&#10;&lt;p&gt;So yes, apparently you really can get through all of this in under 30 minutes.&lt;/p&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Any of these locations is fine. According to the &lt;a class="link" href="https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file" target="_blank" rel="noopener"&#10; &gt;official documentation&lt;/a&gt;, GitHub checks them in the following order of precedence: &lt;code&gt;.github&lt;/code&gt; directory -&amp;gt; repository root -&amp;gt; &lt;code&gt;docs&lt;/code&gt; directory.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;I say &amp;ldquo;apparently&amp;rdquo; because this has never actually happened to me, so I have not seen it firsthand. Better that way, of course.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>