Github の Private リポジトリ を Maven リポジトリ として使う

3年前くらいに Github Pages を利用して Maven リポジトリを構築する方法 を Qiita に書いた.

今回は Private リポジトリでやってみる. 利用者にプラグインの強要をしないようにしたいので 「gradle-git-repo-plugin」 等をプラグインを使わずに Github の機能だけでダウンロードできるようにする.

はじめに

私は Android エンジニアなので、 Android Studio の build.gradle をターゲットとして書く.

基本はパブリックに置くのと同じなので AAR ファイルの生成とかは省略する.

ライブラリ側

アプリ側

1. GithubPersonal Access Token を生成

権限は repo を設定すればよい.

2. プロパティファイルの作成

取得した Personal Access Token と Github のユーザー名を Gradle で使えるようにする.

username=USERNAME
token=GITHUB_PERSONAL_ACCESS_TOKEN

セキュリティを考慮して Personal Access Token はユーザーごとに用意しよう.

.gitignore に以下を追加することをオススメする.

github.properties

3. Maven リポジトリを追加する

  • URL は https://raw.githubusercontent.com を利用
  • credentials に先程のプロパティファイルの情報を設定
  • authentication を設定 (ベーシック認証)
allprojects {
    repositories {
        google()
        jcenter()
        maven {
            def propsFile = rootProject.file('github.properties')
            def props = new Properties()
            props.load(new FileInputStream(propsFile))
            url "https://raw.githubusercontent.com/hoge/android-sdk/master"
            credentials {
                username props['username']
                password props['token']
            }
            authentication {
                basic(BasicAuthentication)
            }
        }
    }
}

4. 依存関係を記述する

dependencies {
  implementation "jp.hoge.library:android-private-sdk:1.0.0"
}

おわりに

2段階認証をしている方でも利用できます. トークンは利用しなくなったら必ず Revoke しよう.

Qiita に書いた記事