github-activity-readmeでプロフィールをかっこよくしよう！

# はじめに

プロフィールの第一印象をより良くするために、Githubの`README.md`はピカピカにしておきたいですよね。
そんな人のために、今回はREADMEにActivityを追加する方法をまとめました。

手順通りに行う事で、誰でもこのようなアクティビティログをREADMEに追加できます。

![pic](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529047/30b2616a-4c49-b81e-b91f-2ba34b20ade2.png)

# 使うもの・必要なもの
* 作成済みの[プロフィールのREADME.md](https://docs.github.com/ja/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme) (作成してある事前提で話を進めます。)
* Github Actions(定期的にREADMEを更新させます。)
* Classic Token(ちょー大事)
* ググる力(いろんな場面で大事になります。困ったらググりなさい。)
* 英語に対する耐性(~~Githubを使う人ならこのぐらい備わっているはずですが~~)

# 1. Classic Tokenの用意
https://github.com/settings/tokens からClassic Tokenを作成します。
> リンクが開けない場合は`自分のGithubアイコン > Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic)`の順に進んでください。

Noteに分かりやすい名前(例: `readme-update`)を付けて、Expirationを`No expiration`にした後、以下の項目にチェックマークを付けてください。
 - [x] `repo`
 - [x] `workflow`
 - [x] `write:packages`
 - [x] `admin:public_key`
 - [x] `git`
 - [x] `notifications`

Generate tokenを押すと、`ghp_xxxxxx....`のような暗号が表示されます。
これがtokenとなります。コピーして大事に保管しておいてください。

# 2. envにtokenを設定する

プロフィールのレポジトリを開き、`Settings > Secrets and variables > Actions`の順に移動してください。

New repository secretを押して、値を入力してください。
| ここに | これを入れる |
|:-:|:-:|
| Name  | `ACCESS_TOKEN`  |
| Secret | さっきコピーした`token` |

![pic](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529047/cac55c1a-626a-ee58-19de-39e1453dd786.png)

Add secretを押せば、envの設定は完了です。

# 3. README.mdを少しだけ調整

`README.md`に
```html
<!--START_SECTION:activity-->
```
を追加してください。
お好きな場所で構いません(このコメントアウトの下にアクティビティログが追加されていきます。)

# 4. Github Actionsを設定する

プロフィールのレポジトリを開き、`Settings > Actions`の順に移動してください。
**Get started with GitHub Actions**の下に
> Skip this and **set up a workflow yourself ->**
とあるので、それをクリックします。
自動的にエディタが開くので、以下のコードを入力してください。
```yml
name: Activity

on:
  schedule:
    - cron: '*/10 * * * *'
  workflow_dispatch:

jobs:
  chess:
    name: Activity update
    runs-on: ubuntu-latest

    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v3

      - uses: cheesits456/github-activity-readme@16bd144b812ce901e0693fee5c36c02e75e6b4a7
        env:
          GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
```

:::note info
cronの間隔はお好みで調整してください。
このコードでは10分おきの実行となっています。
workflowのファイル名もお好みのもので構いません。`readme-update.yml`などが分かりやすくておすすめです。
:::

:::note alert
`@16bd144b812ce901e0693fee5c36c02e75e6b4a7`の個所はコミットのブランチです。変更しても問題はありませんが、`@master`などのブランチを使うのは控えてください。`master`ブランチは最新のコミットが常に反映されますが、その分不安定でもあります。
:::

Commit changes...をクリックしてコミットを反映させたら、設定は完了です。

# 5. 実行!

先ほどと同じように、`Settings > Actions`の順に移動すると、Actionsが登録されているはずです。
登録したActionsをクリックすると、`Run workflow`とあるので、クリックして実行しましょう。
しばらくして、チェックマーク :white_check_mark: が付き、READMEにアクティビティログが追加されていれば成功です！

# :x: 失敗した場合

以下の項目を確認してください。
* `README.md`に`<!--START_SECTION:activity-->`を追加し忘れていないか、重複していないか
* envの入力が間違っていないか
* tokenが失効している、またはclassic token以外のtokenを使用していないか
* `Settings > Actions > General`の順に進み、`Workflow permissions`の個所が`allow workflow Read and Write Permissions`に設定されているかどうか

それでも解決しなかった場合は[Googleに聞く](https://letmegooglethat.com/?q=github+actions+error)か、[Issue](https://github.com/jamesgeorge007/github-activity-readme/issues/?q=)で同じような問題を起こしている人がいないか確認しましょう。

# おわりに

github-activity-readmeについて取り上げている日本の記事が少ないように感じたため、投稿する事にしました。
皆さんのお役に立てれば幸いです。
> github-activity-readmeにあるExampleの場合、問題となる個所が多かったです。何時間も苦しめられました :sob:  この記事に記載しているコードはその部分も修正済みなので、同じようにはならない...はず。