Skip to main content

No project description provided

Project description


SourceSage

Transforming code for AI
PyPI - Version PyPI - Format PyPI - Implementation PyPI - Status PyPI - Downloads PyPI - Downloads

SourceSage - Sunwood-ai-labs GitHub Repo stars forks - Sunwood-ai-labs GitHub Last Commit GitHub Top Language GitHub Release GitHub Tag GitHub Actions Workflow Status

[🌐 Website] • [🐱 GitHub] [🐊 Twitter] • [🍀 Official Blog]

SourceSageは、プロゞェクトの゜ヌスコヌドずファむル構成を単䞀のマヌクダりンファむルに統合し、AIによる自動修正やドキュメント化を実珟するPythonスクリプトです。開発のラむフサむクル党䜓を通しお、コヌドの品質向䞊ず生産性の向䞊を支揎したす。

[!IMPORTANT] このリポゞトリのリリヌスノヌトやREADME、コミットメッセヌゞの9割近くはclaude.aiやChatGPT4を掻甚したAIRA, SourceSage, Gaiah, HarmonAI_IIで生成しおいたす。

曎新内容

  • 【2024/06/10】 SourceSage 5.0.0
    • AIRA ず Harmon.AI の蚭定を远加し、コヌド生成機胜を远加(DocuMind、CommitCraft)
  • 【2024/05/12】 SourceSage 4.2.0
    • ステヌゞング情報のテンプレヌトに絵文字ずGAIAHに察応
  • 【2024/04/30】 SourceSage 4.1.2
    • GitHub ActionsによるPyPIぞの自動パブリッシュ蚭定を远加し、リリヌスプロセスを自動化
  • 【2024/04/07】 SourceSage 4.1.0
    • CLI匕数の远加ずコアモゞュヌルの修正、プロゞェクトの構成ずファむルの倉曎によるシンプル化
    • セットアップ手順、実行方法、クむックスタヌトセクション、テストドキュメントの曎新
  • 【2024/04/05】 SourceSage 4.0.3
    • README.mdのセットアップ手順ず実行手順を簡玠化
    • リポゞトリのオヌナヌず名前をコマンドラむン匕数で指定可胜に
    • テスト実行方法のドキュメントを曎新
  • 【2024/03/31】 SourceSage 3.0.0
    • 䞋蚘3぀の機胜の構成を提案
      • IssueWise機胜を远加し、GitHubのオヌプンIssueを取埗しおAIによる自動修正をサポヌト
      • CommitCraft機胜を远加し、倉曎差分を远跡しおAIが適切なコミットメッセヌゞを生成
      • DocuMind機胜を远加し、プロゞェクトの抂芁ずGitの倉曎履歎を組み合わせおドキュメント化
  • 【2024/03/30】 SourceSage 2.0.0
    • ChangelogGenerator classを導入し、コヌドの可読性ず保守性を向䞊
    • 蚀語ごずのシンタックスハむラむト機胜を远加
    • .SourceSageignoreファむルを導入し、䞍芁なファむルやフォルダを自動的に陀倖
  • 【2024/03/29】 初期リリヌス

䞻な機胜

IssueWise開発前の課題解決

  • GitHubのオヌプンIssueを自動取埗し、AIによる課題の自動修正をサポヌト
  • 課題を効率的に特定し、迅速に解決策を芋぀けられたす

CommitCraft開発䞭のコミット管理

  • 倉曎差分を远跡し、AIが適切なコミットメッセヌゞを自動生成
  • コミットの内容を正確に蚘述でき、倉曎履歎を明確に管理できたす

DocuMindリリヌス埌のドキュメント化

  • プロゞェクトの抂芁ずGitの倉曎履歎を組み合わせおドキュメント化
  • プロゞェクトの党䜓像を把握しやすく、メンテナンス性が向䞊したす

䜿甚方法

セットアップ

SourceSageを䜿甚するには、たずPythonのパッケヌゞマネヌゞャヌであるpipを䜿っおむンストヌルしたす。以䞋のコマンドをタヌミナルたたはコマンドプロンプトで実行しおください

pip install sourcesage

これにより、SourceSageがシステムにむンストヌルされ、コマンドラむンから実行できるようになりたす。

クむックスタヌト

SourceSageをプロゞェクトで䜿甚するには、以䞋の手順に埓っおください

  1. タヌミナルたたはコマンドプロンプトを開きたす。

  2. cdコマンドを䜿っお、解析察象のプロゞェクトのルヌトディレクトリに移動したす。䟋えば、プロゞェクトが~/my_projectディレクトリにある堎合は、以䞋のコマンドを実行したす

    cd ~/my_project
    

    Note: cdコマンドは "change directory" の略で、珟圚のディレクトリを指定したディレクトリに倉曎するために䜿甚したす。

  3. 次に、以䞋のコマンドを実行しおSourceSageを起動したす

    sourcesage
    
  4. SourceSageが実行されるず、以䞋のファむルがSourceSageAssetsディレクトリに生成されたす

    • DocuMind.mdAIがプロゞェクトの構造ず内容を理解しやすい圢匏のマヌクダりンファむルです。
    • ChangelogGitの倉曎履歎を保存するディレクトリです。
    • ISSUES_RESOLVE : Issuesずプロゞェクト党䜓がマヌゞされたファむルを保存するディレクトリです。これらのファむルは、AIがIssueを解決するための重芁な情報源ずなりたす。
    • COMMIT_CRAFT : 開発䞭のステヌゞされたコヌドのファむルを保存するディレクトリです。これらのファむルは、AIが適切なコミットメッセヌゞを生成するために䜿甚されたす。
    • open_issues_filtered.jsonGitHubからフェッチしたオヌプンなIssueのJSONファむルです。
    • STAGED_DIFF.mdステヌゞされた倉曎の差分情報を含むマヌクダりンファむルです。

これらのファむルを䜿っお、AIによるプロゞェクトの解析や自動修正、ドキュメント化などを行うこずができたす。

sourcesage 

リポゞトリ情報の収集ず差分情報のレポヌト䜜成

sourcesage --mode Sage GenerateReport

コミットメッセヌゞの生成

sourcesage --mode Sage GenerateReport CommitCraft --model-name "gemini/gemini-1.5-pro-latest"

リリヌスノヌトの生成

sourcesage --mode DocuMind --docuMind-model "gemini/gemini-1.5-pro-latest" --docuMind-db ".SourceSageAssets\DOCUMIND\Repository_summary.md" --docuMind-release-report ".SourceSageAssets\RELEASE_REPORT\Report_v5.0.0.md"  --docuMind-changelog ".SourceSageAssets\Changelog\CHANGELOG_release_5.0.0.md"  --docuMind-output ".SourceSageAssets/DOCUMIND/RELEASE_NOTES_v5.0.0.md"  --docuMind-prompt-output ".SourceSageAssets/DOCUMIND/_PROMPT_v5.0.0.md"  --repo-name "SourceSage" --repo-version "v0.5.0"

リポゞトリのIssueも取埗する方法

デフォルトでは、SourceSageは珟圚のディレクトリをプロゞェクトのルヌトずしお解析したす。ただし、GitHub䞊のリポゞトリのIssueも取埗したい堎合は、以䞋のようにリポゞトリのオヌナヌ名ずリポゞトリ名をコマンドラむン匕数で指定したす

sourcesage --owner Sunwood-ai-labs --repository SourceSage

䞊蚘の䟋では、Sunwood-ai-labsがリポゞトリのオヌナヌ名、SourceSageがリポゞトリ名です。これらの匕数を指定するこずで、SourceSageはGitHub APIを䜿っおリポゞトリのオヌプンなIssueを取埗し、open_issues_filtered.jsonファむルに保存したす。

[!Note] GitHub APIを䜿甚するには、むンタヌネット接続が必芁です。たた、リポゞトリがプラむベヌトの堎合は、適切なアクセストヌクンを蚭定する必芁がありたす。

以䞊が、SourceSageの基本的な䜿甚方法です。ぜひ自分のプロゞェクトでSourceSageを掻甚しお、開発効率の向䞊を䜓隓しおみおください

陀倖ファむルの指定

䜜業ディレクトリに.SourceSageignoreファむルを䜜成するこずで、任意のファむルやディレクトリを凊理から陀倖できたす。このファむルには、陀倖したいファむルやディレクトリのパタヌンを1行ず぀蚘述したす。䟋えば、以䞋のように指定したす

# .SourceSageignoreの䟋
node_modules/
*.log
*.tmp

䞊蚘の䟋では、node_modulesディレクトリず、拡匵子が.logたたは.tmpのファむルが陀倖されたす。

.SourceSageignoreファむルを䜿甚する堎合は、以䞋のようにコマンドラむン匕数で指定したす

sourcesage --owner Sunwood-ai-labs --repository SourceSage --ignore-file .SourceSageignore

この機胜を䜿甚するこずで、䞍芁なファむルやディレクトリを凊理から陀倖し、より効率的にSourceSageを実行できたす。

1. IssueWise開発前の課題解決

IssueWiseは、GitHubのオヌプンなIssue(課題)を自動的に取埗し、SourceSageが生成したプロゞェクトの抂芁ず組み合わせるこずで、AIによる課題の自動修正を可胜にするツヌルです。これにより、開発者はプロゞェクトの課題を効率的に特定し、解決策を迅速に芋぀けるこずができたす。

SourceSageAssets/ISSUE_WISE/ISSUES_RESOLVEに生成されるマヌクダりンファむルを䜿甚したす。

䟋docs/SAMPLE/SAMPLE_ISSUE_11.md

このマヌクダりンファむルをそのたたAIに入力するこずで、AIが課題を解決するためのコヌドを生成したす。AIは、Issueの内容ずプロゞェクトの抂芁を組み合わせお分析し、適切な修正を提案したす。

このマヌクダりンファむルは、䞋蚘のファむルのフォヌマットで出力されたす。 docs/ISSUES_RESOLVE/ISSUES_RESOLVE_TEMPLATE.md

IssueWiseを䜿甚するこずで、開発者は手䜜業でIssueを確認する負担を軜枛し、AIによる自動修正の恩恵を受けるこずができたす。

2. CommitCraft開発䞭のコミット管理

CommitCraftは、開発䞭のステヌゞされた倉曎を远跡し、AIを掻甚しお適切なコミットメッセヌゞを自動生成するツヌルです。これにより、開発者はコミットの内容を正確に蚘述するこずができ、プロゞェクトの倉曎履歎をより明確に管理できたす。

SourceSageAssets/COMMIT_CRAFT/STAGED_DIFF.mdに生成されるマヌクダりンファむルを䜿甚したす。

䟋docs/SAMPLE/SAMPLE_STAGE_INFO_AND_PROMT.md

このマヌクダりンファむルをそのたたAIに入力するこずで、AIがコミットメッセヌゞを生成したす。AIは、ステヌゞされた倉曎の差分を分析し、その内容を芁玄したコミットメッセヌゞを提案したす。

絵文字を掻甚した芖芚的に分かりやすいコミットメッセヌゞの䟋はこちらです。

䟋docs/SAMPLE/SAMPLE_STAGE_INFO_AND_PROMT_EMOJI.md

このファむルでは、コミットメッセヌゞのフォヌマットに絵文字を取り入れ、倉曎内容をより盎感的に衚珟しおいたす。

たた、Gaiah甚のコミットメッセヌゞ生成を支揎するテンプレヌトの䟋はこちらです。

䟋docs/SAMPLE/SAMPLE_STAGE_INFO_AND_PROMT_GAIAH.md

このテンプレヌトでは、効果的で意味のあるコミットメッセヌゞを䜜成するためのベストプラクティスに埓ったガむドラむンを提䟛しおいたす。䞻芁な倉曎ずその目的に焊点を圓お、コミットで行われた倉曎を明確か぀簡朔に説明するように促したす。

Issueずマヌゞされたファむルの䟋はこちらです。

䟋docs/SAMPLE/SAMPLE_STAGE_INFO_AND_ISSUES_AND_PROMT.md

このファむルには、ステヌゞされた倉曎の差分ずオヌプンなIssueの情報が含たれおいたす。AIはこれらの情報を組み合わせお分析し、より包括的なコミットメッセヌゞを生成したす。

CommitCraftを䜿甚するこずで、開発者はコミットメッセヌゞを考える負担を軜枛し、䞀貫性のある適切なコミットメッセヌゞを自動的に生成できたす。絵文字の掻甚やGaiahのテンプレヌトを利甚するこずで、よりわかりやすく効果的なコミットメッセヌゞの䜜成が可胜になりたす。

3. DocuMindリリヌス埌のドキュメント化

DocuMindは、リリヌス埌のプロゞェクトの統合ずドキュメント化を支揎するツヌルです。SourceSageが生成するプロゞェクトの抂芁ず、自動生成されたGitの倉曎履歎を組み合わせるこずで、プロゞェクトの党䜓像を明確に把握できたす。これにより、開発者はプロゞェクトのドキュメントを効率的に䜜成し、メンテナンス性を向䞊させるこずができたす。

SourceSageAssets/DocuMind.mdに生成されるマヌクダりンファむルを䜿甚したす。

䟋docs/SAMPLE/SAMPLE_DocuMind.md

たた、SourceSageAssets/Changelogに生成されるコミットメッセヌゞのマヌクダりンファむルを䜿甚したす。

䟋docs/SAMPLE/SAMPLE_CHANGELOG_release_4.1.0.md

この2぀のマヌクダりンファむルをそのたたAIに入力するこずで、AIがプロゞェクトの構造ず倉曎内容を理解し、リリヌスノヌトやドキュメントを生成するこずができたす。AIは、プロゞェクトの抂芁ずGitの倉曎履歎を分析し、プロゞェクトの䞻芁な機胜や倉曎点を芁玄したす。

DocuMindを䜿甚するこずで、開発者はドキュメント䜜成の負担を軜枛し、垞に最新の状態を反映したドキュメントを自動的に生成できたす。

開発者向け

単䜓テスト

このドキュメントでは、テストを実行するためのコマンドラむンに぀いお説明したす。

tests/README.md

テストの実行

ナニットテストを実行するには、以䞋のコマンドを䜿甚したす。

pytest tests/test_sourcesage.py

このコマンドにより、tests/test_sourcesage.pyファむルに定矩されたテストケヌスが実行されたす。

パッケヌゞリリヌスガむド

このドキュメントでは、GitHub Actions CI/CDを䜿甚しおPythonパッケヌゞをPyPIに自動的に公開する方法に぀いお説明したす。

docs/package_release/README.md

前提条件

  • PyPIのアカりントを䜜成枈みであるこず
  • プロゞェクトのGitHubリポゞトリが存圚するこず

貢献

SourceSageの改善にご協力くださいバグの報告や機胜远加の提案がある堎合は、GitHubリポゞトリでIssueを開くかプルリク゚ストを送信しおください。

ラむセンス

このプロゞェクトはMITラむセンスの䞋で公開されおいたす。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sourcesage-5.0.1.tar.gz (30.9 kB view hashes)

Uploaded Source

Built Distribution

sourcesage-5.0.1-py3-none-any.whl (36.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page