セキュリティーと利便性はソフトウェア開発において誰もが直面するトレードオフの関係にあり、コードをホストする場合にも当てはまります。エンタープライズグレードのリポジトリ管理における課題のひとつは、コード内の外部公開部分をアクセスが必要なユーザーに安全に公開しつつ、知的財産を保護することです。
私たちはこれまで柔軟かつ緻密なコード公開機能を提供してきました: 例えば 2.0 ではブランチパーミッション機能の導入により特定のブランチを保護することが可能となり、2.4 ではコード開発チーム外の閲覧許可を有するユーザーに対してリポジトリを個別に公開することが可能になりました。この方向の締めくくりとして、プロジェクトやリポジトリへのパブリックアクセスを可能とした Stash 2.5 を本日発表でき、とてもうれしく思います。
プロジェクトやリポジトリへのパブリックアクセス
パブリックアクセス機能により、ユーザーはプロジェクトやリポジトリへのリード・オンリー・アクセスが可能となりますが、その際にStashへのログインやアカウント取得は必要ありません。Stashへのアクセスを許可することにより、次のようなことが可能となります:
- 通常はソースへのアクセス手段を持たない多数のユーザーにコードをブロードキャストすること
- ビルドサーバーや自動化システムの設定をログインすることなく簡単に行うこと
- JIRA や Confluence 等の当社システムからのリンクが可能であり、これにより認証を必要とせずにコードにアクセスする手段をユーザーに提供すること
- オープンソースのプロジェクトやリポジトリの生成
Stash のパブリックアクセス機能により、異なったプロジェクト、異なった部門、異なったツール間での共同作業がより簡便化され、かつ可視化されます。管理者は特定のリポジトリに対しても、またプロジェクトの全体に対してもアクセスを許可することが簡単にできるため、匿名ユーザーによるウェブ UI を通しての閲覧や Git クライアントを使用したクローン作成が可能となります。内部および外部の匿名ユーザー (あるいはツール) は Stash 内の公開アセットへのリード・オンリー・アクセスが可能です。これによりすべての開発者に対して、Stash 内のコードの探索や共同作業、分担作業を行う際の障壁を低くすることができます。
多数のユーザーへのコードのブロードキャスト
今日の企業においては、開発者間の共同作業や、機能向上あるいはバグ修正の提案が常に奨励されています。中核的な開発チームの場合は既に Stash 内でプロジェクトのすべての情報を得ることができますが、今回提供する機能によってさらに多くの開発者に対してアクセスを許可することが可能となりました。これにより、プロジェクトのソースコードに対するチーム外ユーザーからの可視性が増大しますが、リポジトリへの書き込みができるのは引き続き中核チームだけです。
ビルドサーバーや自動化システムからのアクセス簡便化
パブリックアクセスを有効化することにより、IT インフラストラクチャーの設定を簡単化できます。例えば、Bamboo や Jenkins のようなビルドシステムは、Stash リポジトリのクローンを必要とします。また、Git のサブモジュールは Stash の他のリポジトリを参照します。さらにテストラン直前に最新のコードを取得するためには、スクリプトを使用して複数のサーバー上の Git リポジトリを同時に更新します。今回、これらすべての作業がログインすることなく Stash にアクセスすることにより可能となりました。
他のシステムからのリンク
Wiki、課題管理、プロジェクト管理ツール、ドキュメントなど内部の他システムからコード資産へのリンクは多用されています。Stash 2.5 においては、Stash 内のアカウントを取得することなく、開発チーム外ユーザーによるあらゆるシステムからのコード資産へのリンクが可能です。今日では、ドキュメント、画像、人間が認識可能な設定ファイル、ビヘイビア駆動開発仕様等がコードベースに含まれています。従って、プロジェクトマネージャー、設計者、品質保証担当者、テスト担当者、ドキュメントチームが、Git の知識がなくても、あるいは Stash 内のアカウントを取得していなくても、これらの資産にアクセス可能となることは重要なことです。
JIRA 課題管理システムのユーザーの場合は、ユーザーが誰であっても、またログインしているか否かに拘わらず、Stash のコミットが JIRA 課題のソースタブに表示されます。当該のリポジトリやプロジェクトへのアクセスが許可された状態になっている場合は、この状態で「コミットの閲覧」ボタンをクリックすれば Stash 内コミットの全内容を閲覧することができます。
オープンソースに移行しつつ自社のインフラストラクチャー内のコードを守る
リリースと同時にソースコードを公開することが多くの企業で行われています。API、コネクター、クライアントライブラリ、インテグレーションコード例がすべて顧客への提供物に含まれる場合があり、この場合自社で管理できない外部サービスを利用してそれらをホストすることは適当ではありません。パブリックアクセス機能を有する Stash 内のプロジェクトやリポジトリの場合は、自社のサーバーから、内部ソースをホストするためのインフラストラクチャーを使用して直接にコードを提供することが可能です。
改良されたプルリクエストによるコラボレーションの改善
Stash 開発チームは、既存の機能に関しても改良努力を常に続けています。Stash 2.5 においてはプルリクエストの改良が行われ、コードレビューの際にも開発の流れが乱されることはなくなりました。
アクティブなプルリクエストのデスティネーションブランチの変更
Stash においてプルリクエストを作成する場合、コード変更をマージするデスティネーション (ターゲットとも言います) ブランチを指定します。間違ったターゲットを指定したプルリクエストを作成してしまう事故が発生しやすく、その場合そのプルリクエストを取り消して再作成する以外に方法はありません。これは不便なことです。Stash 2.5 においては、アクティブなプルリクエストのターゲットブランチを変更することができます。これは、リリースブランチのカット後や、プルリクエストの開始後に初めて誤動作が起こった場合に有用です。
差分確認においてより多くのコンテキストを
コンテキストは極めて重要なものです。私たちは直感的に、バグ修正の 90 パーセントは事実発見、コンテキスト、ディスカバリーに関するもので、実際のコード変更に費やすのは 10 パーセントに過ぎないと分析しています。
より適切なコンテキストを必要な時に閲覧できることは極めて有用であることから、今回当社はプルリクエストやコミットにおける差分確認時のコードの行数を拡張するシームレスな機能を組み込みました。これにより、必要であればファイル全体を一度に閲覧することも可能になりました。この機能の目的はプルリクエストにおけるコードレビュー作業を簡単化することにあります。
Mailmap のサポート
時間と共に Git リポジトリは進化し、コミッターは変わり、その電子メールも変わり、すべては常に変化します。今回より、Stash は .mailmap 設定ファイル (形式については Mapping Authors を参照してください) の指示内容を読み取ることができます。この機能により、コミットが複数の電子メールアドレスから発行された場合や異なった名前で発行された場合であっても、Stash は (.mailmap ファイルに変更内容が記録されていれば)、ユーザーの追跡を正しく行うことができます。
Stash 2.5 を使用してパブリック性を高めよう
Stash 2.5 を使用して、チーム外の開発者の参加を促進し、より効率化されたコード開発共同作業を実現しましょう。無料のトライアルを開始して、正しく動作することを手軽に確認してください。
すでに Stash をお使いですか? たったのワンクリックで 2.5 へアップグレードできます。リリースノート全文をご覧になり開始してください。
*本ブログは Atlassian Blogs の翻訳です。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2013 年 6 月 12 日 "Stash 2.5: Public access to projects and repositories"