From 02706ed687cd922e752f16c4a89c895ff44f9884 Mon Sep 17 00:00:00 2001 From: Maki Date: Sat, 19 Oct 2024 23:49:29 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9C=A8=20feat:=20PyPI=E3=81=B8=E3=81=AE?= =?UTF-8?q?=E8=87=AA=E5=8B=95=E3=83=87=E3=83=97=E3=83=AD=E3=82=A4=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E3=83=95=E3=83=AD=E3=83=BC=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PyPIへのパッケージ公開を自動化するGitHub Actionsワークフローを追加しました。 - `push`イベントでタグがプッシュされた際にトリガーされます。 - Pythonパッケージのビルド、インストール、そしてPyPIへの公開を行います。 - `skip-existing`オプションを使用して、既存のパッケージを上書きしないように設定しました。 --- .github/github_add_collaborator.py | 51 --------------------------- .github/workflows/publish-to-pypi.yml | 30 ++++++++++++++++ 2 files changed, 30 insertions(+), 51 deletions(-) delete mode 100644 .github/github_add_collaborator.py create mode 100644 .github/workflows/publish-to-pypi.yml diff --git a/.github/github_add_collaborator.py b/.github/github_add_collaborator.py deleted file mode 100644 index 98fa020..0000000 --- a/.github/github_add_collaborator.py +++ /dev/null @@ -1,51 +0,0 @@ -import os -import sys -from dotenv import load_dotenv -from github import Github -import github -from pathlib import Path - -def load_env_files(): - # スクリプトのディレクトリの.envを読み込む - load_dotenv() - - # 作業ディレクトリの.envを読み込む - work_env = Path.cwd() / '.env' - if work_env.exists(): - load_dotenv(work_env) - -def add_collaborator_to_repo(repo_full_name, collaborator): - # GitHubのPersonal Access Tokenを環境変数から取得 - token = os.getenv('GITHUB_ACCESS_TOKEN') - if not token: - print("Error: GITHUB_ACCESS_TOKEN environment variable not set.") - sys.exit(1) - - # GitHubクライアントを初期化 - g = Github(token) - - try: - # リポジトリを取得 - repo = g.get_repo(repo_full_name) - - # コラボレーターを追加 - repo.add_to_collaborators(collaborator) - print(f"Added {collaborator} as a collaborator to {repo_full_name}.") - - except github.GithubException as e: - print(f"An error occurred: {e.status} {e.data}") - - -if __name__ == "__main__": - if len(sys.argv) != 3: - print("Usage: python script.py ") - sys.exit(1) - - repo_full_name = sys.argv[1] - collaborator = sys.argv[2] - add_collaborator_to_repo(repo_full_name, collaborator) - -# python github_add_collaborator.py HarmonAI-III iris-s-coon -# python github_add_collaborator.py HarmonAI-III iris-s-coon -# python .\.github\github_add_collaborator.py Sunwood-ai-labs/HarmonAI_III yukihiko-fuyuki -# python .\.github\github_add_collaborator.py Sunwood-ai-labs/HarmonAI_III yukihiko-fuyuki diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml new file mode 100644 index 0000000..c8eaf27 --- /dev/null +++ b/.github/workflows/publish-to-pypi.yml @@ -0,0 +1,30 @@ +name: Publish Python Package + +on: + push: + tags: + - '*' +jobs: + publish: + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/HarmonAI_III + permissions: + id-token: write + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + - name: Build package + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 + with: + skip-existing: true From 25f0f1245ec2aee268e613ab1cd54f9ac5bdb3c7 Mon Sep 17 00:00:00 2001 From: Maki Date: Sat, 19 Oct 2024 23:49:33 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=92=AB=20feat:=20Hugging=20Face=20Hub?= =?UTF-8?q?=E3=81=B8=E3=81=AE=E8=87=AA=E5=8B=95=E5=90=8C=E6=9C=9F=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E3=83=95=E3=83=AD=E3=83=BC=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hugging Face Hubへのモデル同期を自動化するGitHub Actionsワークフローを追加しました。 - `main`ブランチへのプッシュ、またはワークフロートリガーで実行されます。 - `.github`フォルダとPNGファイルを履歴から削除する処理を追加し、リポジトリのクリーンアップを行いました。 - Hugging Face Hubへのプッシュには`HF_TOKEN`シークレットを使用します。 --- .github/workflows/sync-to-huggingface.yml | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/sync-to-huggingface.yml diff --git a/.github/workflows/sync-to-huggingface.yml b/.github/workflows/sync-to-huggingface.yml new file mode 100644 index 0000000..fc1b7b0 --- /dev/null +++ b/.github/workflows/sync-to-huggingface.yml @@ -0,0 +1,29 @@ +name: Sync to Hugging Face hub +on: + push: + branches: [main] + + # to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + sync-to-hub: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Configure Git + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + - name: Remove .github and PNG files from history + run: | + git filter-branch --force --index-filter \ + 'git rm -rf --cached --ignore-unmatch .github *.png' \ + --prune-empty --tag-name-filter cat -- --all + - name: Push to Hugging Face hub + env: + HF_TOKEN: ${{ secrets.HF_TOKEN }} + run: | + git push -f https://MakiAi:$HF_TOKEN@huggingface.co/spaces/MakiAi/HarmonAI_III main From 2b40458775c05f2c872b9706f598b2934a533f0c Mon Sep 17 00:00:00 2001 From: Maki Date: Sat, 19 Oct 2024 23:50:18 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E2=9C=A8=20feat:=20GitHub=E3=83=AA?= =?UTF-8?q?=E3=83=9D=E3=82=B8=E3=83=88=E3=83=AA=E3=81=B8=E3=81=AE=E3=82=B3?= =?UTF-8?q?=E3=83=A9=E3=83=9C=E3=83=AC=E3=83=BC=E3=82=BF=E3=83=BC=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Pythonスクリプト`github_add_collaborator.py`を作成しました。 - このスクリプトは、GitHub Personal Access Tokenとリポジトリ名、追加するコラボレーターのGitHubアカウント名を受け取り、指定されたリポジトリにコラボレーターを追加します。 - 環境変数`GITHUB_ACCESS_TOKEN`からGitHub Personal Access Tokenを取得します。 - `dotenv`ライブラリを使用して環境変数をロードします。 - `PyGithub`ライブラリを使用してGitHub APIと通信します。 - エラー処理を実装し、エラー発生時には詳細なエラーメッセージを表示します。 - コマンドライン引数としてリポジトリ名とコラボレーター名を受け取るように設計しました。 - スクリプトの実行例をコメントとして追加しました。 --- .github/setup/github_add_collaborator.py | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/setup/github_add_collaborator.py diff --git a/.github/setup/github_add_collaborator.py b/.github/setup/github_add_collaborator.py new file mode 100644 index 0000000..98fa020 --- /dev/null +++ b/.github/setup/github_add_collaborator.py @@ -0,0 +1,51 @@ +import os +import sys +from dotenv import load_dotenv +from github import Github +import github +from pathlib import Path + +def load_env_files(): + # スクリプトのディレクトリの.envを読み込む + load_dotenv() + + # 作業ディレクトリの.envを読み込む + work_env = Path.cwd() / '.env' + if work_env.exists(): + load_dotenv(work_env) + +def add_collaborator_to_repo(repo_full_name, collaborator): + # GitHubのPersonal Access Tokenを環境変数から取得 + token = os.getenv('GITHUB_ACCESS_TOKEN') + if not token: + print("Error: GITHUB_ACCESS_TOKEN environment variable not set.") + sys.exit(1) + + # GitHubクライアントを初期化 + g = Github(token) + + try: + # リポジトリを取得 + repo = g.get_repo(repo_full_name) + + # コラボレーターを追加 + repo.add_to_collaborators(collaborator) + print(f"Added {collaborator} as a collaborator to {repo_full_name}.") + + except github.GithubException as e: + print(f"An error occurred: {e.status} {e.data}") + + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: python script.py ") + sys.exit(1) + + repo_full_name = sys.argv[1] + collaborator = sys.argv[2] + add_collaborator_to_repo(repo_full_name, collaborator) + +# python github_add_collaborator.py HarmonAI-III iris-s-coon +# python github_add_collaborator.py HarmonAI-III iris-s-coon +# python .\.github\github_add_collaborator.py Sunwood-ai-labs/HarmonAI_III yukihiko-fuyuki +# python .\.github\github_add_collaborator.py Sunwood-ai-labs/HarmonAI_III yukihiko-fuyuki From 09e538df80beb533c96eeed88adc2eb29a696332 Mon Sep 17 00:00:00 2001 From: Maki Date: Sat, 19 Oct 2024 23:57:11 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E2=9C=A8=20chore:=20=E3=83=AA=E3=83=9D?= =?UTF-8?q?=E3=82=B8=E3=83=88=E3=83=AA=E5=90=8D=E6=9B=B4=E6=96=B0=E3=82=B9?= =?UTF-8?q?=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新しいスクリプト `update_repo_name.py` を追加しました。 - このスクリプトは、指定された新しいリポジトリ名を使用して、`.github/workflows` ディレクトリ内のYAMLファイルと、`.github/release_notes` ディレクトリ内のYAMLファイルのリポジトリ名部分を一括で更新します。 - `HarmonAI_III` というリポジトリ名が、スクリプトの引数で指定された新しいリポジトリ名に置き換えられます。 - 処理対象ファイルが存在しない場合、警告メッセージを出力し、処理をスキップします。 - 各ファイルの更新状況(更新、スキップ)をログに出力します。 - エラー処理を実装し、エラー発生時にはエラーメッセージとスタックトレースを出力してスクリプトを終了します。 - `loguru` ライブラリを使用してログ出力を管理します。 - 使用方法は、`python update_repo_name.py <新しいリポジトリ名>` です。 --- .github/setup/update_repo_name.py | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/setup/update_repo_name.py diff --git a/.github/setup/update_repo_name.py b/.github/setup/update_repo_name.py new file mode 100644 index 0000000..d164cff --- /dev/null +++ b/.github/setup/update_repo_name.py @@ -0,0 +1,48 @@ +import os +import sys +from loguru import logger + +def update_files(new_repo_name): + logger.info(f"リポジトリ名を '{new_repo_name}' に更新します") + + files_to_update = [ + '.github/workflows/publish-to-pypi.yml', + '.github/workflows/sync-to-huggingface.yml', + '.github/release_notes/.sourcesage_releasenotes_iris.yml' + ] + + for file_path in files_to_update: + full_path = os.path.join(os.getcwd(), file_path) + if not os.path.exists(full_path): + logger.warning(f"ファイル {full_path} が見つかりません。スキップします。") + continue + + logger.info(f"{file_path} の処理を開始します") + + with open(full_path, 'r', encoding='utf-8') as file: + content = file.read() + + updated_content = content.replace('HarmonAI_III', new_repo_name) + + if content != updated_content: + with open(full_path, 'w', encoding='utf-8') as file: + file.write(updated_content) + logger.success(f"{file_path} を更新しました") + else: + logger.info(f"{file_path} には変更が必要ありませんでした") + +if __name__ == "__main__": + + if len(sys.argv) != 2: + logger.error("使用方法: python update_repo_name.py <新しいリポジトリ名>") + sys.exit(1) + + new_repo_name = sys.argv[1] + logger.info(f"スクリプトを開始します。新しいリポジトリ名: {new_repo_name}") + + try: + update_files(new_repo_name) + logger.success("リポジトリ名の更新が完了しました") + except Exception as e: + logger.exception(f"更新処理中にエラーが発生しました: {str(e)}") + sys.exit(1) From f4dfb7b65ce3385d8fb017b13a22afeed3593de8 Mon Sep 17 00:00:00 2001 From: Maki Date: Sat, 19 Oct 2024 23:58:41 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E2=9C=A8=20chore:=20gitignore=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AB=E5=A4=9A=E6=95=B0=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=A8=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=83=AA=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - プロジェクトの効率的な管理と不要なファイルのコミット防止のため、.gitignoreファイルに以下のファイルとディレクトリを追加しました。 - ビルドファイル、キャッシュファイル、ログファイル、一時ファイルなど、バージョン管理の対象外とするべきファイルやディレクトリを網羅的に追加しました。 - これにより、リポジトリのクリーンさを維持し、不要なファイルの混入を防ぎます。 - 追加されたファイル/ディレクトリの例:.git, __pycache__, LICENSE, output.md, assets, Style-Bert-VITS2, output, streamlit, SourceSage.md, data, *.png, Changelog, SourceSageAssets, SourceSageAssetsDemo, *.pyc, **/__pycache__/**, modules\__pycache__, *.svg, sourcesage.egg-info, .pytest_cache, dist, build, .env, example, .gaiah.md, .Gaiah.md, tmp.md, tmp2.md, .SourceSageAssets, tests, template, aira.egg-info, aira.Gaiah.md, README_template.md, egg-info, oasis_article.egg-info, .harmon_ai, .aira, article_draft, issue_creator.log, oasis.log, debug_output, *.log, html_replacement1.html, html_raw.html, html_content.html, html_with_placeholders.html, markdown_html.html, markdown_text.md, markdown_text2.md, saved_article.html, memo.md, content.md, .SourceSageAssets, docs, .github, .venv --- .SourceSageignore | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .SourceSageignore diff --git a/.SourceSageignore b/.SourceSageignore new file mode 100644 index 0000000..0d864aa --- /dev/null +++ b/.SourceSageignore @@ -0,0 +1,67 @@ +.git +__pycache__ +LICENSE +output.md +assets +Style-Bert-VITS2 +output +streamlit +SourceSage.md +data +.gitignore +.SourceSageignore +*.png +Changelog +SourceSageAssets +SourceSageAssetsDemo +__pycache__ +.pyc +**/__pycache__/** +modules\__pycache__ +.svg +sourcesage.egg-info +.pytest_cache +dist +build +.env +example + +.gaiah.md +.Gaiah.md +tmp.md +tmp2.md +.SourceSageAssets +tests +template +aira.egg-info +aira.Gaiah.md +README_template.md + +egg-info +oasis_article.egg-info +.harmon_ai +.aira + +article_draft +issue_creator.log +oasis.log + +debug_output +*.log + +html_replacement1.html +html_raw.html +html_content.html +html_with_placeholders.html +markdown_html.html +markdown_text.md +markdown_text2.md + +saved_article.html +memo.md +content.md + +.SourceSageAssets +docs +.github +.venv