<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>貢献 on DefectDojo Documentation</title><link>https://docs.defectdojo.com/ja/get_started/contributing/</link><description>Recent content in 貢献 on DefectDojo Documentation</description><generator>Hugo</generator><language>ja</language><copyright>Copyright (c) 2020-2025 DefectDojo, Inc.</copyright><atom:link href="https://docs.defectdojo.com/ja/get_started/contributing/index.xml" rel="self" type="application/rss+xml"/><item><title>パーサーへの貢献</title><link>https://docs.defectdojo.com/ja/get_started/contributing/how-to-write-a-parser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/get_started/contributing/how-to-write-a-parser/</guid><description>&lt;p&gt;すべてのコマンドは、クローンしたdjango-DefectDojoリポジトリのルートにいることを前提としています。&lt;/p&gt;
&lt;h2 id="前提条件"&gt;前提条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://github.com/DefectDojo/django-DefectDojo をフォークし、ローカルにクローンしていること。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dev&lt;/code&gt;をチェックアウトし、最新の変更に追随していること。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git checkout -b parser-name&lt;/code&gt;のように、開発用の専用ブランチを作成することを推奨します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;uWSGIのホットリロード機能があるため、docker composeでのデプロイを使用するのが最も簡単です。
環境をdev環境として設定します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ docker/setEnv.sh dev&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;詳細については&lt;a href="https://github.com/DefectDojo/django-DefectDojo/blob/master/readme-docs/DOCKER.md"&gt;DOCKER.md&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h3 id="dockerイメージ"&gt;Dockerイメージ&lt;/h3&gt;
&lt;p&gt;ローカルでdockerイメージをビルドし、イメージへの書き込みを可能にするために、必要に応じてローカルユーザーの&lt;code&gt;uid&lt;/code&gt;を渡します(データベースのマイグレーションファイルを扱う際に便利です)。ユーザーの&lt;code&gt;uid&lt;/code&gt;が&lt;code&gt;1000&lt;/code&gt;だとすると、次のようになります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ docker compose build --build-arg &lt;span class="nv"&gt;uid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="変更が必要なファイルは"&gt;変更が必要なファイルは?&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;ファイル&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dojo/tools/&amp;lt;parser_dir&amp;gt;/__init__.py&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;クラス初期化用の空ファイル&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dojo/tools/&amp;lt;parser_dir&amp;gt;/parser.py&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;本体部分。ここに実際のパーサーを実装します。クラス名は、アンダースコアを除いたPythonモジュール名に&lt;code&gt;Parser&lt;/code&gt;を付加したものである必要があります。&lt;strong&gt;例:&lt;/strong&gt; Pythonモジュール名が&lt;code&gt;dependency_check&lt;/code&gt;の場合、クラス名は&lt;code&gt;DependencyCheckParser&lt;/code&gt;になります。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;unittests/scans/&amp;lt;parser_dir&amp;gt;/{many_vulns,no_vuln,one_vuln}.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ユニットテスト用の意味のあるデータを含むサンプルファイル。最小限のセットです。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;unittests/tools/test_&amp;lt;parser_name&amp;gt;_parser.py&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;パーサーのユニットテスト。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dojo/settings/settings.dist.py&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;最新のハッシュコードベースの重複排除アルゴリズムを使用したい場合&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;docs/content/supported_tools/&amp;lt;file/api&amp;gt;/&amp;lt;parser_file&amp;gt;.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ドキュメント。必要なファイル形式の種類と、その取得方法&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="ファクトリコントラクト"&gt;ファクトリコントラクト&lt;/h2&gt;
&lt;p&gt;パーサーはファクトリパターンによって動的にロードされます。パーサーが正しくロードされ、動作するためには、このコントラクトを実装する必要があります。&lt;/p&gt;</description></item><item><title>パーサードキュメントテンプレート</title><link>https://docs.defectdojo.com/ja/get_started/contributing/parser-documentation-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/get_started/contributing/parser-documentation-template/</guid><description>&lt;p&gt;このテンプレートは、新規または既存のパーサーをドキュメント化するために作成されています。同僚のセキュリティ専門家の助けになりそうな追加情報があれば、自由に改善してください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;この.mdファイルをコピーし、GitHubリポジトリの&lt;code&gt;/docs/content/supported_tools/file&lt;/code&gt;に追加します。&lt;/li&gt;
&lt;li&gt;タイトルを、新規または既存のパーサーの名前に合わせて更新します。&lt;/li&gt;
&lt;li&gt;以下に記載されているすべてのセクションを記入します。各セクション内の説明文や例は削除してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ファイル形式"&gt;ファイル形式&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;パーサーが受け付けるすべてのファイル形式を指定してください(例: CSV、JSON、XML)。&lt;/em&gt;
&lt;em&gt;関連するセキュリティツールから、対応するファイル形式を作成またはエクスポートする方法の手順を含めてください。&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="file-format内の合計フィールド数"&gt;[File Format]内の合計フィールド数&lt;/h3&gt;
&lt;p&gt;合計データフィールド数: &lt;em&gt;セキュリティツールのエクスポートファイルに含まれるフィールドの総数。&lt;/em&gt;
パースされた合計データフィールド数: &lt;em&gt;DefectDojoの検出事項にパースされたフィールドの総数。&lt;/em&gt;
パースされなかった合計データフィールド数: &lt;em&gt;DefectDojoの検出事項にパースされなかったフィールドの総数。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;以下の形式を使用して、各フィールドの簡単な説明と、それがDefectDojoのデータモデルにどのようにマッピングされるかを記載してください。&lt;/em&gt;
&lt;em&gt;セキュリティツールのエクスポートファイルに含まれるすべてのフィールドを、出現順に記載し、パースされないフィールドがあれば明記してください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;出現順のフィールド:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Field 1&lt;/strong&gt; - &lt;em&gt;このフィールドがどのようにマッピングされるかの説明(例: 検出事項のタイトル、エンドポイントのホストにマッピングされる)。&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field 2&lt;/strong&gt; - &lt;em&gt;このフィールドがどのようにマッピングされる/されないかの説明。&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field 3&lt;/strong&gt; - &lt;em&gt;このフィールドがどのようにマッピングされる/されないかの説明。&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Field 4&lt;/strong&gt; - &lt;em&gt;このフィールドがどのようにマッピングされる/されないかの説明。&lt;/em&gt;
&lt;em&gt;(ファイル内のすべてのフィールドについて続けてください。)&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="フィールドマッピングの詳細"&gt;フィールドマッピングの詳細&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;作成される各検出事項について、パーサーが特定のデータをどのようにパースするかの詳細を記載してください。例:&lt;/em&gt;&lt;/p&gt;</description></item><item><title>オープンソースのブランチ運用とリリース</title><link>https://docs.defectdojo.com/ja/get_started/contributing/branching-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/get_started/contributing/branching-model/</guid><description>&lt;h2 id="定期リリース"&gt;定期リリース&lt;/h2&gt;
&lt;p&gt;DefectDojoチームは、以下のケイデンスを維持することを目指しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;マイナーリリース: 毎月第1月曜日に少なくとも月1回。&lt;/li&gt;
&lt;li&gt;パッチ/バグフィックス: 毎週月曜日にリリース。&lt;/li&gt;
&lt;li&gt;セキュリティリリース: 深刻度に応じて、通常のケイデンスとは別に実施されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GitHub Actionsが正となります。リリースは半自動化されています。定期リリースの手順は以下のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;dev&lt;/code&gt;または&lt;code&gt;bugfix&lt;/code&gt;からリリースブランチを作成し、&lt;code&gt;master&lt;/code&gt;に対するPRを準備します(&lt;a href="https://github.com/DefectDojo/django-DefectDojo/blob/master/.github/workflows/new-release-pr.yml"&gt;詳細&lt;/a&gt;)
&amp;ndash;&amp;gt; メンテナーがPRを検証し、手動でマージします&lt;/li&gt;
&lt;li&gt;タグ付け、ドラフトリリースの発行、Dockerのビルド+プッシュを行います(&lt;a href="https://github.com/DefectDojo/django-DefectDojo/blob/master/.github/workflows/new-release-tag-docker.yml"&gt;詳細&lt;/a&gt;)
&amp;ndash;&amp;gt; メンテナーがrelease-drafterのノートを整えてリリースを公開します&lt;/li&gt;
&lt;li&gt;ブランチを再整合させるため、&lt;code&gt;master&lt;/code&gt;を&lt;code&gt;dev&lt;/code&gt;と&lt;code&gt;bugfix&lt;/code&gt;にマージし直すPRが作成されます(&lt;a href="https://github.com/DefectDojo/django-DefectDojo/blob/master/.github/workflows/new-release-master-into-dev.yml"&gt;詳細&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="セキュリティリリース"&gt;セキュリティリリース&lt;/h2&gt;
&lt;p&gt;セキュリティ問題に関連するPRは、&lt;a href="https://github.com/DefectDojo/django-DefectDojo/security/advisories"&gt;セキュリティアドバイザリ&lt;/a&gt;を通じて行われます。これにより、脆弱性を早期に公開することなく非公開でコードに取り組むことができます。&lt;/p&gt;
&lt;h2 id="リリースおよびホットフィックスのモデル"&gt;リリースおよびホットフィックスのモデル&lt;/h2&gt;
&lt;p&gt;図は&lt;a href="https://plantuml.com"&gt;plantUML&lt;/a&gt;で作成されています。PlantUML用のWebベースエディタはhttps://www.planttext.com で見つかります。&lt;/p&gt;</description></item><item><title>ドキュメントの修正</title><link>https://docs.defectdojo.com/ja/get_started/contributing/documentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/get_started/contributing/documentation/</guid><description>&lt;p&gt;ドキュメントは&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;で構築されており、&lt;a href="https://getdoks.org/"&gt;Doks&lt;/a&gt;テーマの派生版を使用しています。&lt;/p&gt;
&lt;p&gt;Webサイトの静的ファイルはGitHub Actionsでビルドされ、gh-pagesブランチに公開されます。&lt;/p&gt;
&lt;h2 id="ローカルプレビューの実行方法"&gt;ローカルプレビューの実行方法&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/getting-started/installing/"&gt;Hugoをインストールします&lt;/a&gt;。Sass/SCSSサポート付きのextended版をインストールしていることを確認してください。&lt;a href="https://github.com/gohugoio/hugo/releases"&gt;Hugo GitHub&lt;/a&gt;にはさまざまなLinuxパッケージが用意されています。&lt;/li&gt;
&lt;li&gt;Node.jsを使用して必要なテーマをインストールします。&lt;code&gt;cd docs&lt;/code&gt;のあと&lt;code&gt;npm install&lt;/code&gt;を実行します。&lt;/li&gt;
&lt;li&gt;Docsのローカルサーバーを実行するには、&lt;code&gt;cd docs&lt;/code&gt;でdocsフォルダに移動し、&lt;code&gt;npm run dev&lt;/code&gt;を実行してHugoの開発サーバーを起動します。ホットリロードに対応しており、サーバーの稼働中は変更したページが自動的に更新されます。&lt;/li&gt;
&lt;li&gt;&lt;a href="http://localhost:1313"&gt;http://localhost:1313&lt;/a&gt;にアクセスします。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="貢献ガイドライン"&gt;貢献ガイドライン&lt;/h2&gt;
&lt;p&gt;現段階では、ドキュメントは主にDefectDojo Proチームによって保守されていますが、コミュニティからのドキュメントへの貢献も歓迎しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search機能は&lt;strong&gt;docs.defectdojo.com&lt;/strong&gt;を指す外部インデックスを使用している点にご注意ください。そのため、devにあるページはSearchで見つけることができません。代わりに、作成した新しいURLを確認するにはローカルのsitemap.xmlファイルを参照してください: &lt;code&gt;http://localhost:1313/sitemap.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;現在のドキュメントはOpen SourceとProという2つの読者層向けに書かれているため、Hugoのフロントマターに適切なラベルを含めてください。以下のようにします。&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="expressive-code"&gt;
 &lt;figure class="frame not-content"&gt;
 &lt;figcaption class="header"&gt;
 &lt;span class="title"&gt;&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;pre tabindex="0"&gt;&lt;code&gt;---
title: &amp;#34;Your great article&amp;#34;
audience: opensource
---&lt;/code&gt;&lt;/pre&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;相対リンクパスは使用しないでください: &lt;code&gt;[link](../your_article/)&lt;/code&gt;。Hugo上では技術的に「有効」であっても、ユニットテストを通過しません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ドキュメントのユニットテスト"&gt;ドキュメントのユニットテスト&lt;/h2&gt;
&lt;p&gt;DefectDojoのドキュメントでは、404やその他のリンクエラーを確認するためにLycheeを使用しています。CIでは、レンダリングされたドキュメントサイトと、Djangoアプリ(テンプレートおよび設定)にハードコードされた&lt;code&gt;docs.defectdojo.com&lt;/code&gt;のURLの2つをチェックします。どちらも&lt;code&gt;--remap&lt;/code&gt;を使用し、絶対パスの&lt;code&gt;docs.defectdojo.com&lt;/code&gt;のURLが新しくビルドされたサイトに対して解決されるようにしています。リポジトリのルートからローカルで両方を実行するには次のようにします。&lt;/p&gt;</description></item></channel></rss>