GitHub Actions ã®èªèšŒã«ã€ããŠ
GitHub Actions ã¯ãŒã¯ãããŒã§èªèšŒæžã¿ API èŠæ±ãè¡ãå¿
èŠãããå ŽåããŸãã¯ããŒã¯ã³ãå¿
èŠãšããã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ãå®è¡ããå¿
èŠãããå Žåã¯ãå¯èœã§ããã°çµã¿èŸŒã¿ã® GITHUB_TOKEN
ã䜿ãå¿
èŠããããŸãã ãã ããGITHUB_TOKEN
ã§ã¢ã¯ã»ã¹ã§ããã®ã¯ãã¯ãŒã¯ãããŒã®ãªããžããªå
ã®ãªãœãŒã¹ã ãã§ãã Organization å
ãå¥ã®ãªããžããªå
ã®ãªãœãŒã¹ãªã©ã远å ã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããå¿
èŠãããå Žåã¯ãGitHub App ã䜿çšã§ããŸãã personal access token ã§ã¯ãªã GitHub App ã䜿ãå Žåã®çç±ã®è©³çްã«ã€ããŠã¯ããGitHub App ã®äœæã«ã€ããŠããåç
§ããŠãã ããã
GitHub App ã«ããèªèšŒ
GitHub App ã䜿ã£ãŠèªèšŒæžã¿ API èŠæ±ãè¡ãã«ã¯ãGitHub App ãç»é²ããã¢ããªã®è³æ Œæ å ±ãæ ŒçŽããŠãã¢ããªãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãããæžãã ããã¢ããªã䜿ã£ãŠã€ã³ã¹ããŒã« ã¢ã¯ã»ã¹ ããŒã¯ã³ãäœæã§ããŸããããã䜿ã£ãŠãGitHub Actions ã¯ãŒã¯ãããŒã§èªèšŒæžã¿ API èŠæ±ãè¡ãããšãã§ããŸãã ããŒã¯ã³ãå¿ èŠãšããã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ã«ã€ã³ã¹ããŒã« ã¢ã¯ã»ã¹ ããŒã¯ã³ãæž¡ãããšãã§ããŸãã
-
GitHub App ãç»é²ããŸãã GitHub App ç»é²ã«ãç®çã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã«å¿ èŠãªã¢ã¯ã»ã¹èš±å¯ãä»äžããŸãã 詳现ã«ã€ããŠã¯ããGitHub App ã®ç»é²ãããã³ãGitHub ã¢ããªã®ã¢ã¯ã»ã¹èš±å¯ãéžæããããåç §ããŠãã ããã
-
GitHub App ã®ã¢ã㪠ID ã GitHub Actions æ§æå€æ°ãšããŠæ ŒçŽããŸãã ã¢ã㪠ID ã¯ãã¢ããªã®èšå®ããŒãžã§ç¢ºèªã§ããŸãã ã¢ã㪠ID ã¯ãã¯ã©ã€ã¢ã³ã ID ãšã¯ç°ãªããŸãã GitHub App ã® [Settings] ããŒãžã«ç§»åããæ¹æ³ã®è©³çްã«ã€ããŠã¯ããGitHub App ç»é²ã®å€æŽããåç §ããŠãã ããã æ§æå€æ°ã®ä¿åã®è©³çްã«ã€ããŠã¯ãã倿°ã«æ å ±ãæ ŒçŽããããåç §ããŠãã ããã
-
ã¢ããªã±ãŒã·ã§ã³ã®ç§å¯éµãçæããŠãã ããã äœæããããã¡ã€ã«ã®å 容ãã·ãŒã¯ã¬ãããšããŠä¿åããŸãã (
-----BEGIN RSA PRIVATE KEY-----
ã-----END RSA PRIVATE KEY-----
ãªã©ããã¡ã€ã«ã®å å®¹å šäœãæ ŒçŽããŸã)ã詳ããã¯ããGitHub Apps ã®ç§å¯ããŒã®ç®¡çããã芧ãã ããã ã·ãŒã¯ã¬ããã®ä¿ç®¡ã®è©³çްã«ã€ããŠã¯ããGitHub Actions ã§ã®ã·ãŒã¯ã¬ããã®äœ¿çšããåç §ããŠãã ããã -
é©åãªã¢ã«ãŠã³ãã« GitHub App ãã€ã³ã¹ããŒã«ããã¯ãŒã¯ãããŒããã¢ã¯ã»ã¹ãããã¹ãŠã®ãªããžããªãžã®ã¢ã¯ã»ã¹èš±å¯ãšã¢ã¯ã»ã¹æš©éãä»äžããŸãã 詳ããã¯ããç¬èªã® GitHub App ã®ã€ã³ã¹ããŒã«ããã芧ãã ããã
-
GitHub Actions ã¯ãŒã¯ãããŒã§ãAPI èŠæ±ãè¡ãããã«äœ¿çšã§ããã€ã³ã¹ããŒã« ã¢ã¯ã»ã¹ ããŒã¯ã³ãäœæããŸãã
ãããè¡ãã«ã¯ã次ã®äŸã«ç€ºãããã«ãGitHub ææã®ã¢ã¯ã·ã§ã³ã䜿çšã§ããŸãã ãµãŒã ããŒãã£ã®ã¢ã¯ã·ã§ã³ã䜿ããããªãå Žåã¯ã
actions/create-github-app-token
ã¢ã¯ã·ã§ã³ããã©ãŒã¯ããŠå€æŽããããã¯ãŒã¯ãããŒã§ã€ã³ã¹ããŒã« ããŒã¯ã³ãæåã§äœæããã¹ã¯ãªãããèšè¿°ã§ããŸãã 詳ããã¯ããGitHub App ã€ã³ã¹ããŒã«ãšããŠã®èªèšŒããã芧ãã ãããæ¬¡ã«äŸç€ºããã¯ãŒã¯ãããŒã§ã¯ã
actions/create-github-app-token
ã¢ã¯ã·ã§ã³ã䜿ã£ãŠã€ã³ã¹ããŒã« ã¢ã¯ã»ã¹ ããŒã¯ã³ãçæããŸãã ãã®åŸãã¯ãŒã¯ãããŒã§ãã®ããŒã¯ã³ã䜿ã£ãŠãGitHub CLI ãã API èŠæ±ãè¡ããŸããæ¬¡ã®ã¯ãŒã¯ãããŒã®
APP_ID
ããã¢ã㪠ID ãæ ŒçŽããæ§æå€æ°ã®ååã«çœ®ãæããŸããAPP_PRIVATE_KEY
ããã¢ããªã®ç§å¯ããŒãæ ŒçŽããã·ãŒã¯ã¬ããã®ååã«çœ®ãæããŸãã
on: workflow_dispatch: jobs: demo_app_authentication: runs-on: ubuntu-latest steps: - name: Generate a token id: generate-token uses: actions/create-github-app-token@v2 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} - name: Use the token env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api octocat
on:
workflow_dispatch:
jobs:
demo_app_authentication:
runs-on: ubuntu-latest
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Use the token
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
gh api octocat