GitHub上に作成されているreleaseをプロジェクトのファイルリリースに同期する機能です。
ファイルリリースの管理画面から行います。対象のプロジェクトの「ダウンロードメニュー」にある「ファイルリリース」の「管理」から管理画面にアクセスします。
https://osdn.net/projects/foo/releases/admin/
「GitHubリリースからの同期」にある「同期対象GitHubリポジトリの追加」から設定します。
設定が必要な項目は以下です
ミラー対象とするGitHubリポジトリのURLを入力して下さい。https://github.com/foo/bar のような形式のものです。 該当するリポジトリに対する管理者権限(少なくとも Webhook が設定できる権限)が必要になります。
設定したURLはあとから変更できませんので注意して下さい。
ミラー対象とするGitHubリポジトリは Public なものである必要があります(Private リポジトリは指定できません)
ミラー先となるパッケージ名を指定します。リポジトリを入力した時点でその名前から自動的にパッケージ名の 候補を自動生成して入力した状態になります、参考にしてください(問題なければそのままでかまいません)。
最初のミラー時に指定されたパッケージ名のパッケージが新規に作成されます。 既存のパッケージを対象にミラーを行うことはできませんので注意して下さい。
ミラー先となるパッケージはあとから変更できません。ただし、該当パッケージの管理画面からパッケージ名等を 変更することはできます。
なお、ミラー先のパッケージ上にリリースを作成したり、ファイルを追加した場合ミラーの処理が実行されたときに 削除されますので注意して下さい。
GitHub上ではリポジトリにtagをうつと、自動的にそのtagに対するzipとtarのアーカイブが生成されて、それが リリースのページ以下から参照できるようになります。さらに、それらのtagを対象にreleaseを作成することが でき、それらには名前をつけたりさらに自動生成されるファイル以外のファイルをまとめて置いておくことが できるようになっています。
OSDNのGitHub同期ではディフォルトでこのtagとreleaseの両方を対象としてミラーを行おうとしますが、 ここでスイッチを無効にするとtagを含めずreleaseのみをミラー対象として処理が行われます。
この設定はあとから変更できますが、Tagを含めたミラーをしていた設定をあとからTagを含めないに 変更すると、以降のミラーの実行時にTagに対応して作製されたリリースやファイルは削除されますので 注意して下さい。
なお、GitHub上では release を draft 状態とする(pre-releaseであるとする)ことができます。 この状態のreleaseはミラーされません
有効にしておくと、GitHub上でのリリースの変化に追従して逐次OSDN側への変更が反映されるようになります。 (ただし、後述しますがGitHub Webhookの機能の制限による問題により反映に時間がかかるケースが発生することがあります)
無効にすると、ミラーの設定を行った直後の一回のみミラーの処理が行われ以降は処理が行われません (ミラー設定のリスト上、自動同期が無効になっているものには 1shot というラベルがつけられます)
この設定はあとから変更できます。
また、自動同期を有効にしている場合でも無効にしている場合でもミラー設定の一覧上から再同期のボタンを 押すことにより、手動で同期処理を行わせることができます。
上記の項目を埋めた上で適用ボタンを押すと、同期設定の書き込みが行われます。
最初に設定を行うときはGitHub上でアプリケーション連携のための認証が行われます。 要求されている権限を確認した上で許可して下さい。なお、GitHub上でのTagの追加やreleaseの変化を 通知するためのwebhookがGitHubの該当リポジトリに自動的に追加されます。
同期設定が書き込まれると、まず最初の同期が自動的にスタートします。
管理画面のGitHubリリースからの同期の項目上部には、設定されている同期の一覧が表示されます。 ここから、それぞれの設定に対して操作を行うことが可能です。
GitHubからの同期は必要な場合に自動的に行われますが、なんらかの理由(例えば前述のようにGitHubの 制限によりreleaseの更新がうまく伝わらず同期が大きく遅延しているようば場合)、手動で同期の再実行 (再同期)を行うことができます。
なお、再同期のリクエストは実行待ち行列に入れられますので実行開始まで多少の時間がかかるケースが あります(ボタンを押すと即時実行されるわけではありません)
また、再同期のリクエストは一度押すと再同期の処理が完了してから24時間以内はできませんので 注意してください。
該当する同期設定を変更することができます、変更できる項目は「Tagを含める」と「自動同期」のみです。
なお、同期先となっているパッケージへのリンクも確認できますので、ここから該当のパッケージを確認 するページやその管理ページなどに行くこともできます。
該当する同期設定を削除できます。その同期が不要になった場合はここから削除できますが、削除してしまった 場合、元には戻せませんので注意して下さい。
削除時にはGitHubのリポジトリ上に設定されたWebhookも自動的に削除されます。ただし、ごく稀に(例えば、 GitHubのAPIの動作に問題が発生しているような間にOSDN上で削除処理を行ったような場合など)なんらかの理由で Webhookが残ってしまうケースがあります。その場合は GitHub の Webhook 管理画面上で手動で削除を行って ください。
また、同期先となっていたパッケージそれ自体は削除されずにそのまま残った状態になります。
ミラーされたもの自体が不要である場合は、同期先のパッケージ/リリース/ファイルをファイルリリースの 管理画面上で手動で削除してください。
現在、この機能はパブリックβ提供中です。途中仕様の変更や提供機能の削除/追加がある可能性があります。 また、なんらかのバグが残っている可能性もございます。
なんらかの問題が発生していると思わしき場合は チケットからご連絡下さい。
https://osdn.net/ticket/newticket.php?group_id=10743&type=27985
GitHub上でのリリースの変更に関してWebhookでの通知を受け取って動作するようにはなっていますが、 GitHub Webhookの機能が足りない(release自体を作成した/変更した/削除したことに対してはeventが 飛ぶが、releaseに対してファイルが追加されたり削除されたりした場合に通知するような機能は 一切ない)ため、残念ながらreleaseの操作に対して、OSDN側のシステムが正確にすぐにその変更を知る 方法がありません。
そのため、releaseへの追加/削除に関しては最悪定期での同期を待つ必要があるため、最大1週間ほど 同期が遅れる可能性があります。GitHub上でreleaseを編集したあと、しばらく経っても同期が実行 されない場合は、管理画面から同期のボタンを押すことで手動で同期を実行することもできます。
なお、手動同期は最後に同期を行ったあと24時間以上経たないと実行できませんので、実行タイミングには 注意して下さい。
仕様です。同期の設定を削除しても、その同期設定で同期していたOSDNリリースのパッケージ以下の リリース/ファイル群は削除されません。
削除が必要であれば手動で削除してください。
基本的にはOSDN上で自動的に作成したWebhookはOSDN側の管理画面での設定削除時に自動的に削除されるはずです。
ただし、なんらかの理由でGitHub上のWebhookの設定削除が行えなかった場合(例えば GitHub 上での API の許可を 取り消したとかGitHubのAPIが止まっているときにOSDN側での設定の削除処理をした場合)などに、Webhook の削除が 失敗したとしても、OSDNシステム上での設定削除は行われるようになっています(その場合、削除後のメッセージに Webhookの削除には失敗した旨の警告文が表示されます)
Webhookの設定が残ってしまっていた場合にはGitHub上での手動削除をお願いします。
ストレージに対するGitHubからのミラー機能はファイルリリース同様、現在準備中/近日β公開予定です。
ご利用いただけません。いまのところ(2020年5月現在)、提供時期も含め全く未定です。
[PageInfo]
LastUpdate: 2020-05-07 12:38:12, ModifiedBy: sado
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:members, delete/config:members