個人リポジトリやファイルアップローダが無料で利用できるSourceForge.JPの「作業部屋」機能を使おう

 SourceForge.JPが提供する「作業部屋」機能では、GitおよびMercurial(Hg)、Subversion(SVN)リポジトリやファイルをアップロードして公開できるファイルマネージャ、チケット、Wikiといったソフトウェア開発を支援するツールを無償で利用できる。今回はこれらの使い方を紹介していこう。

 SourceForge.JPでは近年、個人でのソフトウェア開発に向けたサービスを強化している。その1つが、各ユーザー専用のソースコードリポジトリを提供する「作業部屋」機能だ(図1)。

図1 作業部屋のトップページ
図1 作業部屋のトップページ

 作業部屋はGitもしくはMercurial(Hg)、Subversion(SVN)のリポジトリと、配布用のファイルをアップロードして公開できるファイルマネージャ、バグ追跡や開発メモなどに利用できるチケット、ドキュメントなどを記述できるWikiといった機能を持つ(表1)。作業部屋は複数作成することができ、利用できる作業部屋数の上限はない。

表1 「作業部屋」で提供される機能
機能名説明
リポジトリ無制限で利用できるGit/Mercurial/Subversionリポジトリ
ファイルマネージャファイルをアップロードして公開できる
チケット開発の進捗管理やバグ追跡を行うための機能
Wikiドキュメントや簡易的なWebサイトを作成可能

作業部屋でできること、できないこと

 作業部屋では、作成したリポジトリへの匿名/非匿名アクセスや、任意のファイルのアップロード、チケットやマイルストーンの登録、Wikiページの作成や編集といった作業が可能だ。作成できるチケットやマイルストーン、Wikiページの数、リポジトリやファイルマネージャにアップロードできるファイル数および容量に制限はない。

 リポジトリ機能では、GitおよびMercurial、Subversionのリポジトリが作成できる。SSH経由でのアクセスに加え、HTTP/HTTPSによるアクセスも可能だ。リードオンリーの匿名アクセスにも対応している。また、Gitリポジトリでは、既存のリポジトリからフォークして作業部屋を作成することも可能だ。GitやMercurialリポジトリでは、ほかのリポジトリからのpushもできる。

 ただし、いくつかの制限はある。まず、1つの作業部屋では1つのリポジトリしか利用できない(複数のブランチを作成することは可能)。複数のリポジトリを利用したい場合、その数だけ作業部屋を作成する必要がある。また、リポジトリやファイルマネージャにアップロードしたファイルはすべて公開される。非公開のリポジトリは作成できない。そのため、アップロードできるファイルは自分が著作権を持つもの、もしくはオープンソースのものなど、ライセンス的に再配布が可能であるものだけだ。もし再配布に問題があるファイルなどが公開されていた場合、利用規約違反としてファイルの削除、悪質な場合は作業部屋やアカウントの削除が行われる可能性もあるので注意したい。

 そのほか、リポジトリやファイルマネージャに書き込みができるのは作業部屋を作成したユーザーのみだ。複数人での書き込みアクセスが必要な場合は、そのための「プロジェクト」機能が用意されているので、そちらを利用してほしい。

作業部屋を利用するには

 作業部屋は、SourceForge.JPにアカウントを作成したユーザーであれば誰でも利用できる。アカウントの登録や作業部屋の利用など、SourceForge.JPのすべての機能は無料で利用可能だ。アカウントの登録はアカウント作成ページより行える(図2)。

図2 SourceForge.JPのアカウント作成ページ
図2 SourceForge.JPのアカウント作成ページ

 ここでログイン名とパスワード、メールアドレスを登録後、登録したメールアドレスに送信される確認メール内のURLにアクセスするとアカウント作成が完了し、SourceForge.JPのほぼすべての機能が利用可能になる。

 リポジトリへの書き込みアクセスを行うには、SSH公開鍵の登録が必要となる。SSH公開鍵はOpenSSHに含まれるssh-keygenコマンドで作成できるほか、Windows環境ではTelnet/SSHクライアント「PuTTY」に含まれる「PuTTYgen」や、同じくTelnet/SSHクライアントである「Tera Term」でも作成が可能だ。PuTTYでの公開鍵作成については「Windows環境でのSSHの利用とSSH鍵の作成」記事で、Tera Termでの公開鍵作成については「Windows用定番SSHクライアント「Tera Term」の使い方」記事で解説しているので、そちらを参照していただきたい。

 公開鍵の登録は、SourceForge.JPにログインした状態でSSH公開鍵の登録/削除ページにアクセスし、「新しいSSH公開鍵を追加」ボタンをクリックする(図3)。

図3 SSH公開鍵の登録/削除ページで「新しいSSH公開鍵を追加」ボタンをクリックする
図3 SSH公開鍵の登録/削除ページで「新しいSSH公開鍵を追加」ボタンをクリックする

 すると、「SSH公開鍵の追加」ダイアログが表示されるので、ここのテキストボックスに公開鍵をコピー&ペーストで入力して「追加」をクリックする(図4)。

図4 「SSH公開鍵の追加」ダイアログで公開鍵をコピー&ペーストで入力する
図4 「SSH公開鍵の追加」ダイアログで公開鍵をコピー&ペーストで入力する

 以上で公開鍵の登録は完了だ。なお、登録した鍵がSourceForge.JPの全サーバーに行き渡るまで、数分~10分程度の時間が必要なので、しばらくお待ちいただきたい。

作業部屋を新規作成する

 作業部屋の作成は、作業部屋一覧ページから行える。右上にある「作業部屋を作成」ボタンをクリックすると「作業部屋を新規作成」および「Forkして作業部屋を作成」リンクが表示されるので、目的のものをクリックする(図5)。

図5 「作業部屋を作成」ボタンから作業部屋を作成できる
図5 「作業部屋を作成」ボタンから作業部屋を作成できる

 通常は「作業部屋を新規作成」を選択すればよいが、既存のGitリポジトリからフォークしてリポジトリを作成したい場合は「Forkして作業部屋を作成」を選択しよう。

 「作業部屋を新規作成」を選んだ場合、「作業部屋を作成」ダイアログが表示される(図6)。ここでリポジトリの種類、名前、表示名、説明を入力して「作成」をクリックすると、作業部屋が作成される。

図6 「作業部屋を作成」ダイアログ
図6 「作業部屋を作成」ダイアログ

 一度作業部屋を作成すると、リポジトリの種類は変更できないので注意しよう。また、ここで入力した「名前」がリポジトリ名となり、リポジトリにアクセスする際のURLなどに使われる。たとえばGitであれば、「<ユーザー名>@git.pf.sourceforge.jp:/gitroot/<ユーザー名の1文字目>/<ユーザー名の1~2文字目>/<ユーザー名>/<リポジトリ名>.git」がそのリポジトリ名になる。こちらも作成後は変更できないので注意したい。

 「Forkして作業部屋を作成」を選んだ場合、フォーク元となるリポジトリを入力するダイアログが表示される(図7)。ここでフォーク元を入力して「Fork」をクリックすると、「作業部屋を作成」ダイアログが表示されるので、作業部屋の情報を入力して「作成」をクリックする。

図7 「既存のリポジトリをForkして作業部屋を作成」ダイアログでフォーク元リポジトリを指定する
図7 「既存のリポジトリをForkして作業部屋を作成」ダイアログでフォーク元リポジトリを指定する

 作成した作業部屋は、作業部屋一覧ページからアクセスできる(図8)。作業部屋一覧ページでは作業部屋ごとにその説明やリポジトリURLなどが表示される。ここで作業部屋名、もしくは「概要」などのボタンをクリックすると、作業部屋個別ページ(Wiki)にアクセスできる。

図8 作業部屋一覧ページ
図8 作業部屋一覧ページ

 作業部屋にはタグを指定することも可能だ。指定したタグは、作業部屋マップでの検索などに利用される(図9)。

図9 SourceForge.JP内の作業部屋一覧を表示する「作業部屋マップ」
図9 SourceForge.JP内の作業部屋一覧を表示する「作業部屋マップ」

 作業部屋のWikiでは、デフォルトでは作業部屋の名前やリポジトリのURL、コミット一覧、READMEなどが表示されている(図10)。

図10 デフォルト設定での作業部屋トップページ(Wiki)
図10 デフォルト設定での作業部屋トップページ(Wiki)

 画面下の「編集」をクリックすることで、これらの内容は自由に変更可能だ(図11)。

図11 トップページはWikiで作成されているため、自由にカスタマイズできる
図11 トップページはWikiで作成されているため、自由にカスタマイズできる

作業部屋のリポジトリブラウザ

 作業部屋の「ソースコード」タブを選択すると表示されるリポジトリブラウザでは、リポジトリのコミット情報やブランチ/タグ情報、ソースツリーなどを閲覧できる(図12)。

図12 作業部屋のリポジトリブラウザ
図12 作業部屋のリポジトリブラウザ

 たとえば、「ソースツリー」タブをクリックすると、そのソースツリーを確認できる(図13)。ここからZIP形式やtar+gzip形式でソースツリーをダウンロードすることも可能だ。

図13 「ソースツリー」タブではリポジトリ内に格納されているファイルを確認できる
図13 「ソースツリー」タブではリポジトリ内に格納されているファイルを確認できる

 また、「コミット」ではブランチやタグの作成履歴なども含めたリポジトリの変更履歴が表示される(図14)。「ブランチ」や「タグ」タブでそれぞれの情報を確認することも可能だ。

図14 「コミット」タブでは、コミット履歴やブランチの履歴を確認できる
図14 「コミット」タブでは、コミット履歴やブランチの履歴を確認できる

 「Fork」タブでは、リポジトリのフォーク元やフォーク先に関する情報が表示される(図15)。たとえばほかのユーザーが自分のリポジトリからフォークして作業部屋などを作成した場合、ここにその情報が表示される。

図15 「Fork」タブでは、リポジトリのフォーク元やフォーク先に関する情報が表示される
図15 「Fork」タブでは、リポジトリのフォーク元やフォーク先に関する情報が表示される

 なお、ほかのユーザーのリポジトリをフォークして作業部屋を作成するには、そのユーザーの作業部屋でリポジトリブラウザを開き、右上に表示される「Fork」ボタンをクリックすれば良い(図16)。

図16 ほかのユーザーのリポジトリブラウザで「Fork」ボタンをクリックすると、そのリポジトリをフォークして作業部屋を作成できる
図16 ほかのユーザーのリポジトリブラウザで「Fork」ボタンをクリックすると、そのリポジトリをフォークして作業部屋を作成できる

リポジトリの更新情報を通知できるWebフック機能

 リポジトリブラウザの「フック」タブでは、「Webフック」と呼ばれる機能に関する設定が可能だ(図17)。Webフックというのは、リポジトリに対しpushなどの変更が加えられた際に、指定したURLに対しHTTPのPOSTリクエストを送信することで通知を行う機能である。

図17 「フック」タブではリポジトリに変更が加えられた際にPOSTリクエストを送信するURLを指定できる
図17 「フック」タブではリポジトリに変更が加えられた際にPOSTリクエストを送信するURLを指定できる

 POSTリクエストのリクエストボディにはリポジトリに関する情報がJSON形式で含まれており、これを解析して対象のリポジトリに関する操作を行うことができる。作業部屋のWebフックはGitHubのWebフックと互換性のある仕様となっているため、Webフックを使ってGitHubと連携できるようなWebサービスなどを作業部屋でも利用できるようになる(ただし、当然ながらGitHubのAPIを使用するようなサービスには対応できない)。

任意のファイルを公開できるファイルマネージャ

 作業部屋の「ダウンロード」タブで操作できるファイルマネージャでは、任意のファイルをアップロードして公開できる(図18)。

図18 ファイルマネージャでは任意のファイルのアップロードや公開が可能
図18 ファイルマネージャでは任意のファイルのアップロードや公開が可能

 ファイルマネージャでは、画面左にフォルダ一覧が、画面右にそのフォルダに含まれるファイルの情報が表示されている。フォルダは「フォルダを作成」ボタンをクリックして作成可能だ。また、「新規ファイル追加」をクリックすると、ファイルをアップロードするためのダイアログが表示される(図19)。ここでアップロードするファイルを選択したり、アップロードフォルダを選んで「適用」をクリックすると、ファイルをアップロードできる。

図19 「新規ファイル追加」をクリックすると、ファイルをアップロードできる
図19 「新規ファイル追加」をクリックすると、ファイルをアップロードできる

バグレポートやタスク管理に利用できるチケット機能

 「チケット」タブでアクセスできるチケット(Issue)機能では、「チケット」と呼ばれる、対処すべきバグや作業が必要な内容などを記した小規模なドキュメントを管理できる。チケットにはタイトルや本文、ステータス、マイルストーン、優先度、タグといった情報を記述でき、バグや開発すべき機能を整理するために利用できる。チケット一覧は、「チケット」タブのドロップダウンメニューから「一覧」を選択すると表示される(図20)。

図20 「チケット」タブから利用できるチケット一覧
図20 「チケット」タブから利用できるチケット一覧

 チケットを作成するには、「新規登録」ボタンをクリックする。「新規チケット登録」画面が表示されるので、ここにタイトルや本文などのチケットの情報を入力し、「適用」をクリックするとチケットが作成される(図21)。

図21 チケットを作成するための「新規チケット登録画面」
図21 チケットを作成するための「新規チケット登録画面」

 チケット作成時にはステータスが「未処理」となっているが、チケット一覧画面などで「未処理」と表示されているスライダをクリックすると、ステータスを「処理済み」に変更できる(図22)。

図22 「未処理」と表示されているスライダをクリックすると、チケットのステータスを変更できる
図22 「未処理」と表示されているスライダをクリックすると、チケットのステータスを変更できる

 なお、デフォルト設定ではチケット一覧には「未処理」のチケットのみが表示されるが、「表示フィルター」ボタンをクリックして設定を変更することで、非表示のチケットを表示させることができる(図23)。

図23 「表示フィルター」でチケット一覧に表示させるチケットを変更できる
図23 「表示フィルター」でチケット一覧に表示させるチケットを変更できる

機能強化や新機能開発も継続中

 現在の作業部屋では、リポジトリやファイルマネージャ、チケットといった、個人でソフトウェア開発を行うにあたって必要十分な機能が実装されている。とはいえ、作業部屋の機能強化や新機能開発はまだ継続して行われており、直近ではファイルマネージャ機能のアップデートや、Markdownなどで構造化されたドキュメントの表示機能追加などが予定されている。

 そのほか、欲しい機能などの要望やバグレポートなども随時フォーラムチケットで受け付けている。実現可能な要望であれば対応を検討するので、ぜひ声をお寄せいただきたい。