Skip to content

harnessでgithubリポジトリをimportしてみた

公開:

シェア

harnessでgithubリポジトリをimportしてみた
この記事の操作
Markdownで見る

Chrome(最新版)のBuilt-in AIが必要です。

Chrome(最新版)のBuilt-in AIが必要です。

Harness は「AI For Everything After Code」を掲げる CI/CD プラットフォームです。CI パイプライン実行だけでなく、Git リポジトリのホスティング機能(Code Repository)も提供しており、既存の GitHub リポジトリをそのままインポートして Harness 上で管理できるらしいので試してみました。

Harness にサインアップする

Harness はクレジットカード不要で無料から始められます。トップページの「Get started」からそのままサインアップできます。

Harness のトップページ。「AI For Everything After Code」のキャッチコピーと Get started ボタンが表示されている

サインアップ画面では Google や GitHub でのソーシャルログインに加え、Bitbucket・GitLab・LinkedIn・Azure にも対応しています。今回は「Continue with Github」でサインアップしました。

GitHub 側では「Authorize Harness Gateway」の OAuth 認証ダイアログが表示されます。「Harness Gateway by harness-app」がメールアドレスへの read-only アクセスを要求するので、「Authorize harness-app」をクリックして認証を完了させます。

ユースケースを選択して Code Repository を開く

認証が完了するとユースケースの選択画面が表示されます。「Continuous Integration」と「Continuous Delivery & GitOps」の2択から始める形です。今回は CI を選択しましたが、Code Repository 自体はどちらを選んでも同じように使えます。

サイドバーから「Code Repository」を選択すると、Default Project 配下の Repositories 画面が開きます。初期状態は「No repositories yet」です。

GitHub リポジトリをインポートする

「+ Create Repository」ボタン右の下矢印をクリックすると「Create Repository」「Import Repository」「Import Repositories」の3つが選べます。単体でインポートしたいので「Import Repository」を選択しました。

「Import a repository」フォームでは Provider・Organization 名・リポジトリ名・Harness 上での表示名(Name)を入力します。プライベートリポジトリをインポートしようとしたところ、「Requires Authorization」にチェックを入れる必要があることに気づきました。チェックを入れると Token フィールドが出てきます。

repo import のためには PAT が必要らしい、ということで GitHub 側で発行しに行きます。

GitHub PAT を発行する

GitHub の Settings > Developer settings > Personal access tokens (Fine-grained) から PAT を新規作成します。Repository access は「Only select repositories」を選択し、インポートしたいリポジトリを個別に指定します。

GitHub の PAT 作成画面。Repository access で Public repositories・All repositories・Only select repositories の3択が表示されている

Permissions は「Contents」に Read-only、「Metadata」(Required)に Read-only を設定します。今回は alexa-kyoto-city-guide-skillalexa-nekolog の2リポジトリをインポートしたかったので、両方を選択した状態でトークンを生成しました。

GitHub PAT の Only select repositories 設定。hideokamoto/alexa-kyoto-city-guide-skill と hideokamoto/alexa-nekolog を選択し、Permissions は Contents と Metadata を Read-only に設定して Generate token ボタンが表示されている

インポートを実行する

生成したトークンを Harness の Token フィールドに貼り付け、「Import Repository」を実行します。今回は hideokamoto/alexa-kyoto-city-guide-skill を最初にインポートしました。

Import a repository フォームの入力完了状態。Provider=Github、Organization=hideokamoto、Repository=alexa-kyoto-city-guide-skill、Requires Authorization にチェック、Token フィールドにトークンが入力されている

同じ手順で alexa-nekolog もインポートし、Repositories 一覧に2リポジトリが並びました。インポートは数秒で完了します。

Harness の Repositories 一覧。alexa-nekolog と alexa-kyoto-city-guide-skill の2リポジトリがインポートされて表示されている

インポート後のリポジトリを確認する

インポート後のリポジトリは Harness の UI 上でファイルツリーとコミット履歴を確認できます。8年前(2018年)のコミットも正常に取り込まれていました。

Clone する場合は Harness 独自の URL(https://git.harness.io/...)が割り当てられます。GitHub の URL とは別物になるので、既存のローカル環境から使いたい場合はリモートの差し替えが必要です。初回クローン時は「Generate Clone Credential」でクレデンシャルを生成する必要があります。

Harness の Clone Repository ダイアログ。HTTPS で https://git.harness.io/... という Harness 独自の Git URL が表示され、初回クローンには Generate Clone Credential が必要と案内されている

リポジトリ設定から Webhook も設定できます。Payload URL と Secret を指定し、Branch created・PR created・PR merged など細かいイベント単位で外部サービスへの通知をトリガーできます。

Harness リポジトリの Webhook 設定画面。Payload URL・Secret・SSL Verification と、Branch created・PR created など細かいイベント単位でトリガーを設定できる

まとめ

Harness の Code Repository 機能を使って GitHub のプライベートリポジトリをインポートしてみました。操作の流れは次のとおりです。

  • Harness にサインアップ(GitHub OAuth)
  • Code Repository > Import Repository を選択
  • プライベートリポジトリには GitHub PAT が必要(Contents + Metadata を Read-only)
  • インポート後はファイル閲覧・コミット履歴・Clone・Webhook 設定が Harness 上で完結

PAT が必要な点はやや手間ですが、Fine-grained tokens でリポジトリとスコープを絞って発行できるのでセキュリティ的にはちょうどよいかなと思います。Harness を CI/CD のメイン環境として使っているチームであれば、同じ UI 内でソースも管理できるのは便利なオプションになりそうです。

Hidetaka Okamoto profile photo

Hidetaka Okamoto

Developer Experience Engineer

Developer Experience Engineer。AWSやCloudflare上へのサーバーレスなアプリ開発を得意とする開発者。元Stripe Developer Advocate / AWS Samurai 2017など、サービスの使い方や活用Tipsを紹介するコンテンツ作成や登壇などを得意とする。

⭐ この記事への反応

はてなアカウントでスターを付けることができます

関連記事