2025/06/02
はじめに
GoのパッケージはGitHubなどのリポジトリに配置し、それを pkg.go.dev がDocumentationする仕組みがある。
リポジトリを更新しても、pkg.go.devのドキュメントは自動的に更新されないため、時間が解決するのを待つか、手動でリクエストを送る必要がある。
新規Versionをリリースするごとにこれをやるのは骨が折れるので、これをコマンドで行う方法、およびGitHub Actionsを使って自動でリクエストする方法を紹介する。
更新コマンドを準備する
各種更新方法は以下の通りであった。
過度に負荷をかけないように注意すること。
pkg.go.devの更新リクエストをコマンドで送る
$ curl -X POST https://proxy.golang.org/github.com/<username>/<reponame>/@v/v0.1.0.info
proxy.golang.orgの更新リクエストをコマンドで送る
$ curl -X POST https://pkg.go.dev/fetch/github.com/<username>/<reponame>@v0.1.0
GitHub Actionsで自動化する
トリガーは、releaseを作成したときとする。これにより、過度にリクエストを送ることを防ぎつつ、latestが更新された時に発火するようになる。
release作成時に、そこに紐づくtagは、 v0.1.0
のようなセマンティックバージョニングをとることを前提とする。
name: Update pkg.go.dev documentation
on:
release:
types: [created]
jobs:
request:
runs-on: ubuntu-latest
steps:
- name: Request proxy.golang.org cache
run: |
curl -X POST https://proxy.golang.org/github.com/<username>/<reponame>/@v/${{ github.event.release.tag_name }}.info
- name: Request pkg.go.dev documentation update
run: |
curl -X POST https://pkg.go.dev/fetch/github.com/<username>/<reponame>@${{ github.event.release.tag_name }}
おわりに
OSS開発が捗る!
参考
pkg.go.devにまだ登録されていないバージョンを開こうとしたときのRequestの内容