PolicyChecks

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、Open Source Security Foundation (OpenSSF) バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

ソフトウェアに欠陥や脆弱性がないことを保証する手立てはありません。形式論的な証明ができたとしても、仕様や前提が間違っていると誤動作の可能性があります。また、プロジェクトが健全で、かつ機能的な開発コミュニティであり続けることを保証する手立てもありません。しかし、ベストプラクティスの採用は、プロジェクトの成果の向上に寄与する可能性があります。たとえば、いくつものベストプラクティスがリリース前の複数人によるレビューを定めていますが、それによりレビュー以外では発見困難な技術的脆弱性を見つけるのを助け、同時に異なる企業の開発者間の信頼を築き、さらに交流を続けることに対する意欲を生んでいます。バッジを獲得するには、すべてのMUSTおよびMUST NOT基準を満たさなければなりません。すべてのSHOULD基準も満たさなければなりませんが、正当な理由がある場合は満たさなくても構いません。そしてすべてのSUGGESTED基準も満たさなければなりませんが、満たさないとしても、少なくとも考慮することが望まれます。フィードバックは、 GitHubサイトのissueまたはpull requestとして提示されれば歓迎します。また、議論のためのメールリストも用意されています。

私たちは多言語で情報を提供していますが、翻訳版に矛盾や意味の不一致がある場合は、英語版を正式な記述とします。
これがあなたのプロジェクトである場合は、プロジェクトページにベースラインバッジステータスを表示してください!ベースラインバッジステータスは次のようになります: プロジェクト14356のベースラインバッジレベルはbaseline-1です ベースラインバッジを埋め込む方法は次のとおりです:
ベースラインバッジステータスを表示するには、マークダウンファイルに以下を埋め込みます:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/14356/baseline)](https://www.bestpractices.dev/projects/14356)
または、HTMLに以下を埋め込みます:
<a href="https://www.bestpractices.dev/projects/14356"><img src="https://www.bestpractices.dev/projects/14356/baseline"></a>


これらはベースラインレベル1の基準です。 これらは基準バージョン v2026.08.28 の評価項目です。

Baseline Series: ベースラインレベル1 ベースラインレベル2 ベースラインレベル3

        

 基本的情報

  • 一般

    他のプロジェクトが同じ名前を使用していないか注意してください。

    A badge service backed by a GitHub app that requests repository Administration: Read permissions, and so is able to report on a repository's settings, providing a convenient way for maintainers to demonstrate publicly that best practices are enforced as policies at the repo configuration level

    SPDXライセンスの表現形式を使用してください。 例:「Apache-2.0」、「BSD-2-Clause」、「BSD-3-Clause」、「GPL-2.0+」、「LGPL-3.0+」、「MIT」、「(BSD-2-Clause OR Ruby)」。一重引用符または二重引用符を含めないでください。
    複数の言語がある場合は、コンマを区切り(スペースを入れてもよい)としてリストし、使用頻度の高いものから順に並べます。使用言語が多くある場合は、少なくとも最初の3つの最も多く使われるものをリストアップしてください。言語がない場合(例:ドキュメントだけ、またはテスト専用のプロジェクトの場合)、1文字 " - "を使用します。言語ごとにある大文字・小文字の慣用を踏襲してください(例:「JavaScript」)。
    Common Platform Enumeration(CPE)は、情報技術(IT)システム、ソフトウェア、およびパッケージのための構造化された命名体系です。脆弱性を報告する際に、多くのシステムやデータベースで使用されています。

 管理策 24/24 ●

  • 管理策


    ユーザーがプロジェクトの権威リポジトリにある機密リソースを読み取ったり変更したりしようとする場合、システムは多要素認証プロセスの完了をユーザーに要求しなければなりません。 [OSPS-AC-01.01]
    プロジェクトのバージョン管理システムに多要素認証を強制し、協力者が機密データにアクセスしたりリポジトリ設定を変更したりする際に第2の認証形式を提供するよう要求します。パスキーはこの管理として許容されます。

    The reponomics organization requires two-factor authentication for all members (GET /orgs/reponomics returns two_factor_requirement_enabled: true). The authoritative repository github.com/reponomics/PolicyChecks is owned by that organization, so every account able to read or modify sensitive resources must complete multi-factor authentication. The requirement covers outside collaborators as well as members.



    新しい協力者が追加される場合、バージョン管理システムは手動による権限割り当てを要求するか、デフォルトで協力者の権限を最低利用可能な特権に制限しなければなりません。 [OSPS-AC-02.01]
    ほとんどの公開バージョン管理システムは、この方法で設定されています。プロジェクトのバージョン管理システムが、協力者を追加する際にデフォルトで常に利用可能な最低限の権限を割り当て、必要な場合にのみ追加の権限を付与するように設定してください。

    A role must be assigned explicitly when a collaborator is added to the repository. Organization membership confers no elevated permission: the organization's base repository permission is read (GET /orgs/reponomics returns default_repository_permission: "read"), and because this repository is public, that base permission confers exactly the access an anonymous user already has. Every collaborator with write access holds an explicit grant.



    プロジェクトのプライマリブランチに直接コミットが試行された場合、強制メカニズムが変更の適用を防止しなければなりません。 [OSPS-AC-03.01]
    バージョン管理システムが集中型の場合は、プロジェクトのバージョン管理システムのプライマリブランチにブランチ保護を設定してください。あるいは、Linuxカーネルのような分散型アプローチを使用します。この場合、変更はまず別のリポジトリで提案され、プライマリリポジトリへの変更のマージには特定の個別の操作が必要です。

    The "protect-main" ruleset applies to the default branch with enforcement active and includes a pull_request rule, so commits cannot be applied directly to main and must arrive through a pull request. The ruleset defines no bypass actors, so no one can circumvent it, including repository admins and organization owners. It additionally enforces linear history, blocks non-fast-forward updates, and requires signed commits.



    プロジェクトのプライマリブランチの削除が試行された場合、バージョン管理システムはこれを機密性の高い活動として扱い、意図の明示的な確認を要求しなければなりません。 [OSPS-AC-03.02]
    プロジェクトのバージョン管理システムのプライマリブランチにブランチ保護を設定して削除を防止してください。

    The "protect-main" ruleset includes a deletion rule applying to the default branch, so deleting main is blocked outright rather than merely confirmed. No actor can bypass the ruleset, including repository admins and organization owners.



    CI/CDパイプラインが信頼できないメタデータを処理する場合、それらのパラメータはパイプラインで使用する前にサニタイズおよび検証されなければならない。 [OSPS-BR-01.01]
    CI/CDパイプラインは、信頼できないソースに対応するすべてのメタデータ入力をサニタイズ(期待値の引用、エスケープ、または終了)する必要があります。これには、ブランチ名、コミットメッセージ、タグ、プルリクエストのタイトル、作者情報などのデータが含まれます。

    No untrusted metadata reaches a shell in the project's GitHub Actions workflows. Branch names, commit messages, tags, pull-request titles, and author information are never interpolated into a run: block. Where a workflow needs the branch name, it reads the ${GITHUB_REF_NAME} environment variable inside double quotes rather than a ${{ }} expansion. The only ${{ }} expansions appearing inside run: blocks are github.server_url and github.repository, both GitHub-controlled values. The workflow that validates pull-request titles passes the title to a SHA-pinned action through the GitHub API and never into a shell. The Cloudflare Workers Builds deployment pipeline runs fixed literal commands with no metadata interpolation.



    CI/CDパイプラインが信頼されていないコードスナップショットで動作する場合、特権のあるCI/CDクレデンシャルおよびアセットへのアクセスを防止しなければなりません。 [OSPS-BR-01.03]
    CI/CDパイプラインは、信頼されていないコードスナップショットを特権のあるクレデンシャルおよびアセットから分離する必要があります。特に、プロジェクトは、協力者によるレビュー前にコードをビルドまたは実行するワークフローがCI/CDクレデンシャルにアクセスできないよう注意する必要があります。

    Neither of the project's two CI/CD pipelines exposes privileged credentials to unreviewed code. The only workflow triggered by pull_request_target, .github/workflows/semantic-pr.yml, checks out no pull-request code, runs no project code, and is limited to permissions: pull-requests: read. The only workflow holding privileged credentials, release-please.yml, is triggered exclusively by push to main and workflow_dispatch, so it never operates on an unreviewed code snapshot. ci.yml does execute pull-request code but references no secrets, and because the repository is public, fork pull-request tokens are downgraded to read-only and are given no secrets. The repository's default workflow token permission is read, and all actions are pinned to full-length commit SHAs. Production deployment runs through Cloudflare Workers Builds, documented in docs/operations.md; fork pull requests build there only after explicit admin approval, so untrusted code is reviewed by a collaborator before it can run with access to deploy credentials.



    プロジェクトがURIを公式プロジェクトチャンネルとしてリストする場合、そのURIは暗号化されたチャンネルを使用して排他的に配信されなければなりません。 [OSPS-BR-03.01]
    プロジェクトのウェブサイトおよびバージョン管理システムを、データ送信にSSHまたはHTTPSなどの暗号化されたチャンネルを使用するように設定してください。プロジェクトドキュメントで参照されるすべてのツールとドメインが、暗号化されたチャンネルを介してのみアクセスできるようにしてください。

    The project's official channels are the source repository at https://github.com/reponomics/PolicyChecks and the badge service at https://policychecks.reponomics.org, and both are reachable only over encrypted channels. A plain-HTTP request to the service returns 301 to the https:// origin, and responses carry strict-transport-security: max-age=86400. Badge endpoints return HTTP/2 200 over TLS with a valid certificate chain; the service root returns 404 by design, as the service exposes no landing page.



    プロジェクトが公式配布チャネルとしてURIを掲載する場合、そのチャネルは暗号学的に認証されたチャネルを使用して、中間者(adversary-in-the-middle)攻撃から保護されなければならない。 [OSPS-BR-03.02]
    プロジェクトによって配布される成果物は、完全性と真正性を保証するチャネルを通じて配布されるべきです。ダウンロードにHTTPSを使用すること、署名付きリリースを使用すること、信頼できるパッケージマネージャーを通じて配布することは、いずれも中間者攻撃から保護するための許容できる方法です。

    The project distributes through GitHub Releases (https://github.com/reponomics/PolicyChecks/releases), served exclusively over HTTPS, and through the hosted service, which is TLS-only with HTTP redirecting to HTTPS and HSTS set. The package is marked private: true in package.json and is not published to any registry. Every release tag commit carries a valid signature (verification.verified: true), and immutable releases are enabled (GET /repos/reponomics/PolicyChecks/immutable-releases returns enabled: true), so published release assets and tags cannot be altered after publication.



    プロジェクトは、シークレットや認証情報などの暗号化されていない機密データが、バージョン管理システムに意図せず保存されることを防止しなければなりません。 [OSPS-BR-07.01]
    機密情報を含む可能性のあるファイルを除外するために、.gitignoreまたは同等のものを設定してください。プリコミットフックおよび自動スキャンツールを使用して、コミットに機密データが含まれることを検出および防止してください。

    .gitignore excludes .env, .env.* (with an explicit !.env.example exception), and *.private-key.pem. .env.example contains blank placeholders and non-secret local defaults only. Secret scanning, push protection, non-provider pattern scanning, and validity checks are all enabled on the repository, so a secret is blocked at push time rather than merely detected afterward. Runtime secrets are held in the deployed Worker's settings rather than in build variables, and docs/operations.md documents credential storage.



    プロジェクトがリリースを行った場合、プロジェクトドキュメントには、すべての基本機能に対するユーザーガイドを含まなければなりません。 [OSPS-DO-01.01]
    プロジェクトのすべての基本機能について、インストール、設定、およびプロジェクトの機能の使用方法を説明するユーザーガイドまたはドキュメントを作成してください。既知の危険な行為または破壊的な行為が利用可能な場合は、非常に目立つ警告を含めてください。

    The README documents what the service does, how it works, and how to use it (badge table, endpoint reference, examples); additional docs live in https://github.com/reponomics/PolicyChecks/tree/main/docs [documentation_basics]



    プロジェクトがリリースを行った場合、プロジェクトドキュメントには、欠陥報告のためのガイドを含まなければなりません。 [OSPS-DO-02.01]
    プロジェクトでは、バージョン管理システムのデフォルトの課題追跡ツールを使用することをお勧めします。外部ソースが使用される場合は、プロジェクトドキュメントと貢献ガイドで報告システムの使用方法を明確かつ目立つように説明してください。プロジェクトドキュメントでは、欠陥がどのようにトリアージおよび解決されるかについての期待値を設定することもお勧めします。

    The project has made releases, so this control applies. SUPPORT.md contains a "Service Issues" section directing defect reports to the GitHub issue tracker and enumerating what belongs there, states that public issues are preferred and why, routes repository-specific questions to support@reponomics.org, and directs security reports to SECURITY.md instead. CONTRIBUTING.md independently states that issues may be opened to report a bug. GitHub Issues is enabled (has_issues: true).



    プロジェクトは、提案された変更や利用上の障害についての公開討論のための1つ以上のメカニズムを持たなければならない。 [OSPS-GV-02.01]
    メーリングリスト、インスタントメッセージング、または課題追跡ツールなど、プロジェクト内の公開討論のための1つ以上のメカニズムを確立し、オープンなコミュニケーションとフィードバックを促進してください。

    Both GitHub Issues and GitHub Discussions are enabled on the repository (GET /repos/reponomics/PolicyChecks returns has_issues: true and has_discussions: true). CONTRIBUTING.md directs contributors to open an issue to request a feature or report a bug, and to start a Discussion thread to engage other users on a topic; it further asks that proposed feature changes be raised in an issue first so they can be discussed publicly before implementation.



    プロジェクトのドキュメントには、貢献プロセスの説明を含めなければならない、または一般からの貢献を受け付けていないことを明確に記載しなければならない。 [OSPS-GV-03.01]
    変更の提出手順やプロジェクトメンテナーとのやり取りを含む、貢献プロセスの概要を示すCONTRIBUTING.mdまたはCONTRIBUTING/ディレクトリを作成します。

    CONTRIBUTING.md at the repository root explains the contribution process: how to raise an issue or Discussion, the expectation that feature proposals are discussed before a PR, the types of contributions accepted (including project-specific criteria for proposing new badges), repository policies governing submissions (signed commits, PR-only changes to main, conventional-commit PR titles, running npm run check, resolving failing checks, including tests), and local development setup. https://github.com/reponomics/PolicyChecks/blob/main/CONTRIBUTING.md



    ソースコードのライセンスは、OSIのオープンソース定義またはFSFのフリーソフトウェア定義を満たさなければならない。 [OSPS-LE-02.01]
    OSI(Open Source Initiative)によって承認されたライセンス、またはFSF(Free Software Foundation)によって承認されたフリーライセンスを含むLICENSEファイルをプロジェクトのリポジトリに追加します。そのようなライセンスの例としては、MIT、BSD 2-clause、BSD 3-clause revised、Apache 2.0、Lesser GNU General Public License(LGPL)、およびGNU General Public License(GPL)が含まれます。特許などの他の障害がない場合、パブリックドメインへのリリースはこの管理を満たします。

    The source code is licensed under the MIT license, which is OSI-approved and FSF free. Confirmed by the LICENSE file at the repository root, the "license": "MIT" field in package.json, and GitHub's own license detection (GET /repos/reponomics/PolicyChecks returns license.spdx_id: MIT).



    リリースされたソフトウェア資産のライセンスは、OSIのオープンソース定義またはFSFのフリーソフトウェア定義を満たさなければならない。 [OSPS-LE-02.02]
    リリースされたソフトウェア資産に異なるライセンスが含まれている場合は、OSI(Open Source Initiative)によって承認されたライセンス、またはFSF(Free Software Foundation)によって承認されたフリーライセンスであることを確認してください。そのようなライセンスの例としては、MIT、BSD 2-clause、BSD 3-clause revised、Apache 2.0、Lesser GNU General Public License(LGPL)、およびGNU General Public License(GPL)が含まれます。リリースされたソフトウェア資産のライセンスはソースコードとは異なる場合があることに注意してください。

    The released software assets carry no separate license. The releases publish no separate assets, so the only released artifacts are the source archives generated for each tag, governed by the same MIT license as the source code. Those archives contain LICENSE at their root. MIT is OSI-approved and FSF free.



    ソースコードのライセンスは、対応するリポジトリのLICENSEファイル、COPYINGファイル、LICENSES/ディレクトリ、またはLICENSE/ディレクトリで管理されなければならない。 [OSPS-LE-03.01]
    ライセンス条項の可視性と明確性を確保するため、プロジェクトのソースコードライセンスをプロジェクトのLICENSEファイル、COPYINGファイル、LICENSES/ディレクトリ、またはLICENSE/ディレクトリに含めてください。ファイル名には拡張子を付けてもかまいません。プロジェクトが複数のリポジトリを持つ場合は、各リポジトリにライセンスファイルが含まれていることを確認してください。

    The MIT license text is maintained in the LICENSE file at the root of the repository: https://github.com/reponomics/PolicyChecks/blob/main/LICENSE. The project has a single repository, so there is no additional repository requiring its own license file.



    リリースされたソフトウェア資産のライセンスは、リリースされたソースコードに含めるか、対応するリリース資産と共にLICENSEファイル、COPYINGファイル、またはLICENSE/ディレクトリに含めなければならない。 [OSPS-LE-03.02]
    ライセンス条件に関する可視性と明確性を提供するために、プロジェクトのリリースされたソフトウェア資産のライセンスを、リリースされたソースコードに、または対応するリリース資産と一緒にあるLICENSEファイル、COPYINGファイル、またはLICENSE/ディレクトリに含めます。ファイル名には拡張子を付けることができます。プロジェクトに複数のリポジトリがある場合は、各リポジトリにライセンスファイルが含まれていることを確認してください。

    The releases publish no separate assets, so the released software assets are the source archives generated for each tag. Those archives include the MIT license at the archive root; nothing in the repository's export configuration removes it.



    プロジェクトのソースコードリポジトリは、静的なURLで公開され、読み取り可能でなければならない。 [OSPS-QA-01.01]
    GitHub、GitLab、Bitbucketなどの一般的なVCSを使用します。リポジトリが公開読み取り可能であることを確認してください。主要なソースを明確にする可視性の高いドキュメントがない限り、リポジトリの複製またはミラーリングを避けてください。リポジトリURLに影響を与える可能性のある頻繁なリポジトリの変更を避けてください。リポジトリが公開されていることを確認してください。

    The source repository is publicly readable at the static URL https://github.com/reponomics/PolicyChecks. GET /repos/reponomics/PolicyChecks returns private: false, visibility: "public", archived: false. It is hosted on GitHub.



    バージョン管理システムには、行われたすべての変更、誰が変更を行ったか、いつ変更が行われたかの公開読み取り可能な記録が含まれている必要があります。 [OSPS-QA-01.02]
    GitHub、GitLab、Bitbucketなどの一般的なVCSを使用して、公開読み取り可能なコミット履歴を維持します。コミットの作成者が不明瞭になるような方法でコミットをスカッシュまたは書き換えることは避けてください。

    The full git history is publicly readable and records the author name, email, and date of every commit. History rewriting on the primary branch is blocked: the "protect-main" ruleset enforces required_linear_history, non_fast_forward, and required_signatures with no bypass actors, so force-pushes and rewrites to main are rejected. Because linear history is required, merges are limited to squash and rebase. Squash merging collapses a branch's individual commits, but authorship is preserved through it, and the history on main attributes work to both maintainers and external contributors.



    パッケージ管理システムがサポートしている場合、ソースコードリポジトリには、直接の言語依存関係を説明する依存関係リストが含まれている必要があります。 [OSPS-QA-02.01]
    これは、package.json、Gemfile、go.modなど、すべての直接依存関係を列挙するパッケージマネージャーまたは言語依存関係ファイルの形式を取ることができます。

    npm supports dependency manifests, and the repository contains package.json enumerating all direct language dependencies, alongside package-lock.json pinning the fully resolved transitive tree. CONTRIBUTING.md directs contributors to install from the lockfile with npm ci and to use npm install only when intentionally updating dependencies and committing the resulting lockfile change.



    複数のリポジトリを持つプロジェクトは、プロジェクトの一部であるコードベースの一覧を文書化しなければならない。 [OSPS-QA-04.01]
    プロジェクトによって生成され、リリースにコンパイルされる追加のサブプロジェクトコードリポジトリを文書化します。このドキュメントには、それぞれのコードベースのステータスと意図を含める必要があります。

    PolicyChecks is a single codebase in a single repository - the Cloudflare worker entry point lives in-repo at cloudflare/policychecks-worker.ts. No subproject repository is produced or compiled into a release, so there is no list of constituent codebases to document.



    バージョン管理システムには、生成された実行可能な成果物を含めてはなりません(MUST NOT)。 [OSPS-QA-05.01]
    プロジェクトのバージョン管理システムで生成された実行可能アーティファクトを削除します。生成された実行可能アーティファクトがテストなどのプロセスで重要と思われるシナリオでは、代わりにビルド時に生成するか、別に保存して、明確に文書化されたパイプライン ステップ中に取得する必要があることが推奨されます。

    No generated executable artifact is tracked; file --mime over every tracked file returns no executables. Build and coverage outputs are excluded from version control: .gitignore covers dist/, build/, out/, coverage/, and node_modules/, and none of those paths is tracked. Exactly one tracked file carries the executable bit, .husky/pre-commit, a short hand-written shell hook rather than a generated artifact. The worker is generated at build time by npm run build (tsconfig.build.json).



    バージョン管理システムには、レビュー不可能なバイナリ成果物を含めてはなりません(MUST NOT)。 [OSPS-QA-05.02]
    プロジェクトのバージョン管理システムにレビュー不可能なバイナリアーティファクトを追加しないでください。これには、実行可能なアプリケーションバイナリ、ライブラリファイル、および同様のアーティファクトが含まれます。これには、グラフィック画像、音声や音楽ファイル、および通常バイナリ形式で保存されるコンテンツなどのアセットは含まれません。

    The only binary files tracked are PNG images under docs/assets/ - project banners and documentation screenshots. Graphical images are outside this control's scope. No executable application binaries, library files, or comparable unreviewable artifacts are tracked.



    プロジェクトの文書には、セキュリティ連絡先を含めなければなりません(MUST)。 [OSPS-VM-02.01]
    プロジェクトのセキュリティ連絡先を含むsecurity.md(または同様の名前の)ファイルを作成してください。

    SECURITY.md at the repository root publishes the project's security contacts: a GitHub Private Vulnerability Reporting link (https://github.com/reponomics/PolicyChecks/security/advisories/new) as the primary channel and security@reponomics.org as a fallback, together with a stated 14-day maximum for follow-up. SUPPORT.md cross-references it and explicitly directs security issues away from public issues and the general support address.



ツールやAIシステムを使って、https://www.bestpractices.dev/ja/projects/14356/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforcedのような簡単なURLで変更を提案できます。その方法については、自動化提案システムをご覧ください。 このデータは、Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0)のもとで利用可能です。これは、データ受領者が、データ受領者がこの契約のテキストを共有データとともに利用可能にする限り、変更の有無にかかわらずデータを共有できることを意味します。Really HimおよびOpenSSFベストプラクティスバッジのコントリビューターにクレジットを表示してください。

プロジェクト バッジ登録の所有者: Really Him.
エントリの作成日時 2026-08-29 13:30:53 UTC、 最終更新日 2026-09-03 22:11:17 UTC 最後に2026-08-29 16:42:55 UTCにバッジ合格を達成しました。