0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RenovateをGithub Actionsでセルフホストする(Github Apps編)

Posted at

はじめに

前回の記事 renovateをGithub ActionsでセルフホストするではPAT(fine-grained tokens)を用いてrenovateをセルフホストしました。
今回は、Github Appsを用いてRenovateをセルフホストしていきます。

設定方法

1. Github Appの作成

まず、https://github.com/settings/apps/new でGithub Appを作成します。
ここで作成したアプリがDependency Dashboardをissueに作成したり、PRを出したりします。

項目名 設定
Github App name 任意のアプリ名。意外と被りが厳しい
Homepage URL アプリのwebサイト。ダミーでもOK
Identifying and authorizing users 変更なし
Post installation 変更なし
Webhook 今回は使わないのでチェックを外す
Permissions あとで詳しく説明
Where can this GitHub App~ 上はアプリの可視性がprivateになり、下はpublicになる

スクリーンショット 2025-09-10 22.11.32.png
スクリーンショット 2025-09-10 22.12.51.png
スクリーンショット 2025-09-10 22.13.29.png

Permissionsについて

Permissionsはこのドキュメントに書かれているものを設定する。書いてある順番や権限の種類がバラバラで少し見にくいが、整理するとこのようになる。

  • Repository permissions
    • Administration: read
    • Checks: read-write
    • Commit statuses: read-write
    • Contents: read-write
    • Dependabot alerts: read
    • Issues: read-write
    • Metadata: read(Mandatory)
    • Pull requests: read-write
    • Workflows: read-write
  • Organization permissions
    • Members: read
  • Account permissions
    • なし

2. Github Appの設定

Create Github Appという緑色のボタンを押して、入力に不備がなければ以下のURLに飛ばされる。

https://github.com/settings/apps/[アプリ名]

一番上のAbout項にApp IDが書いてあるので、これをコピーしておく。
次に、Private keys項にある作成ボタンを押す。するとキーが作成され、.pemファイルがダウンロードされる。この.pemファイルの中身を全部コピーしておく。

もしアプリのアイコンに画像を設定したければ、Display information項で画像を設定できる。ここに何も設定しない場合、アプリのアイコンはアプリをインストールしたuserまたはorganizationのアイコンが使用される。

3. Github Appのインストール

Install Appを選ぶとアプリの可視性に応じてインストール可能なuser/organizationの一覧が表示される。(グレーアウトされているが)未インストールの場合緑色のinstallボタンがあるため、これを押す。

スクリーンショット 2025-09-10 22.48.01.png

すると、このような画面に移動する。上を選ぶと、ユーザのリポジトリにまとめてインストールされる(はず)。今回は下を選び、アプリをインストールするリポジトリを選択し、画面下の緑色のInstallボタンを押す。
ちなみに、Install先が権限のないリポジトリだと、ここはRequestになる。

スクリーンショット 2025-09-10 12.07.42.png

4. リポジトリ設定

先ほどコピーしておいたApp IDとPrivate Keyを、リポジトリ設定からsecretsにそれぞれAPP_IDPRIVATE_KEYという名称で保存する。
なお、.pemファイル内の-----BEGIN RSA PRIVATE KEY-----と書かれている部分から最後までコピペする必要がある(1敗)

スクリーンショット 2025-09-10 22.57.06.png

5. Github ActionsのWorkflowを作成

.github/workflows/renovate.ymlを作成し、以下をコピペする。RENOVATE_REPOSITORIES: 'username/repositoryname'の箇所は各々で読み替えてください。NODE_OPTIONSは対象リポジトリの規模に応じて変更してください。このドキュメントにrunnerごとのメモリ上限などが書かれています。

name: Renovate

on:
  workflow_dispatch:
  schedule:
    - cron:  '0 * * * *'

jobs:
  renovate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/create-github-app-token@v2
        id: app-token
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.PRIVATE_KEY }}
      - name: Checkout
        uses: actions/checkout@v4
      - name: Run Renovate
        uses: renovatebot/github-action@v43.0.11
        with:
          token: ${{ steps.app-token.outputs.token }}
        env:
          LOG_LEVEL: debug
          RENOVATE_REPOSITORIES: 'username/repositoryname'
          NODE_OPTIONS: '--max-old-space-size=4096'

5. renovate.jsonを作成

ここは詳しく書かないが、とりあえず動作のために置いておく。

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:recommended"
  ],
  "dependencyDashboard": true
}

結果

Dependency Dashboard、PRが作成される。

スクリーンショット 2025-09-11 15.07.08.png

スクリーンショット 2025-09-11 15.07.26.png

おわりに

RenovateをGithub Actionsでセルフホストする手順をできるだけ最新の情報でまとめてみました。
参考にしてもらえたら幸いです。
次回は、キャッシュを用いたrenovateの高速化について書きたいです。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?