GiitHub CLI의 1인 팟캐스트

8493 단어 GitHub CLIidea
이용GitHub CLI의'자기제작 탈퇴 요청, 검사부터 병합까지 자체진행[1]'시 작업이 고정돼 있어 필기 등이 필요하다.
!
2022-04-26gh run rerun의 기술은 --failed로 변경되었다.

초대 요청 작성


지점 제출 후gh pr create 제작.제목 등은 옵션을 사용하지 않고 메뉴로 지정되어 있지만, 탭은 대부분 'Addmetadata' 가 아니라 -l [2] 를 사용합니다.
$ gh pr create -l dependencies
? Where should we push the 'topic/update-parse5' branch? hankei6km/gas-feed2notion

Creating pull request for topic/update-parse5 into main in hankei6km/gas-feed2notion

? Title Update `parse5` to 7.0.0
? Body <Received>
? What's next?  [Use arrows to move, type to filter]
> Submit
  Add metadata
  Cancel

요청한 검사 확인


pull request의 검사 상황gh pr checks은 확인할 수 있지만, 검사가 끝나기 전에 몇 번의 명령을 실행하는 것은 매우 번거롭다.이 옵션--watch은 대부분 검사 완료를 모니터링하는 데 사용됩니다.
$ gh pr checks --watch

Refreshing checks status every 10 seconds. Press Ctrl+C to quit.

Some checks are still pending
0 failing, 2 successful, 0 skipped, and 1 pending checks

*  push...         https://github.com/hankei6km/gas-feed2notion/runs/6059983820?check_suite_focus=true
✓  Anal...  1m44s  https://github.com/hankei6km/gas-feed2notion/runs/6059912448?check_suite_focus=true
✓  CodeQL   2s     https://github.com/hankei6km/gas-feed2notion/runs/6059926888

All checks were successful
0 failing, 3 successful, 0 skipped, and 0 pending checks

✓  Anal...  1m44s  https://github.com/hankei6km/gas-feed2notion/runs/6059912448?check_suite_focus=true
✓  CodeQL   2s     https://github.com/hankei6km/gas-feed2notion/runs/6059926888
✓  push...  53s    https://github.com/hankei6km/gas-feed2notion/runs/6059983820?check_suite_focus=true

워크플로우 실행 확인


종료 요청을 작성하지 않은 경우 이러한 작업을 수행할 수 없지만 다른 상황에서 시작된 워크플로우gh run wath에서는 종료를 모니터링할 수 있습니다(선택 사항이 아닌 하위 명령).
명령을 입력하면 저장소에서 실행 중인 워크플로우가 표시되고 선택됩니다.JOB와 STEP 단위의 진행 상황을 표시하는 워크플로우를 하나만 선택할 수 있습니다[3].
STEP이 많을 때나 .yml의 내용이 변경될 때 사용한다.
$ gh run watch
? Select a workflow run  [Use arrows to move, type to filter]
> * Edit description of `pacakge.json`, CodeQL (topic/edit-description) 6s ago
  * Edit description of `pacakge.json`, Push to GAS project (topic/edit-description) 7s ago

Refreshing run status every 3 seconds. Press Ctrl+C to quit.

* topic/edit-description Push to GAS project #11 · 2182045135
Triggered via push less than a minute ago

JOBS
* push-to-gas (ID 6058216405)
  ✓ Set up job
  ✓ Run actions/checkout@v2
  ✓ Use Node.js 14.x
  ✓ Cache node modules
  * Install clasp
  * Install modules
  * Run tests
  * Build files to push gas project
  * Setup files for clasp
  * Push source files to gas project
  * Cleanup files for clasp
  * Post Cache node modules
  * Post Run actions/checkout@v2

실행에 실패한 STEP 로그를 표시합니다.


단계 오류에 대한 로그를 표시하려면 gh run view --log-failed를 사용합니다.run-id나job-id를 지정하지 않으면 목록에서 선택할 수 있습니다.
STEP에서 많이 출력하면 스크롤되지만, 터미널에서 잘못된 부분은 색상으로 구분되기 때문에 잘못된 부분은 판별하기 쉽다.
$ gh run view --log-failed
? Select a workflow run  [Use arrows to move, type to filter]
  ✓ Bump parse5 from 6.0.1 to 7.0.0, CodeQL (dependabot/npm_and_yarn/parse5-7.0.0) 1h39m13s ago
> X Bump parse5 from 6.0.1 to 7.0.0, Push to GAS project (dependabot/npm_and_yarn/parse5-7.0.0) 1h39m14s ago
  ✓ Merge pull request #14 from hankei6km/dependabot/npm_and_yarn/rollup/plugin-node-resolve-13.2.1, CodeQL (main) 70h41m48s ago

push-to-gas     Run tests       2022-04-21T04:47:46.5716882Z ##[group]Run npm run test:build
push-to-gas     Run tests       2022-04-21T04:47:46.5717171Z npm run test:build
push-to-gas     Run tests       2022-04-21T04:47:46.5766639Z shell: /usr/bin/bash -e {0}
push-to-gas     Run tests       2022-04-21T04:47:46.5766877Z ##[endgroup]
push-to-gas     Run tests       2022-04-21T04:47:46.7748273Z

  <snip>

push-to-gas     Run tests       2022-04-21T04:47:47.9152997Z
push-to-gas     Run tests       2022-04-21T04:47:47.9154872Z ./src/main.ts → build...
push-to-gas     Run tests       2022-04-21T04:47:52.0783098Z (!) Circular dependency
push-to-gas     Run tests       2022-04-21T04:47:52.0784254Z node_modules/hast-util-select/lib/any.js -> node_modules/hast-util-select/lib/pseudo.js -> node_modules/hast-util-select/lib/any.js
push-to-gas     Run tests       2022-04-21T04:47:52.0785244Z [!] Error: 'default' is not exported by node_modules/parse5/dist/index.js, imported by src/util.ts

  <snip>

실행에 실패한 JOB 다시 실행


만약 실패한 원인이push코드가 아니라 다른 원인이라면 원인을 배제한 후에 실행하고 싶은 일이 있습니다.
이 경우,run-id를 지정하지 않은 상태에서 사용하면 gh run rerun --failed 실행에 실패한 작업 흐름 목록에서 다시 실행됩니다.이때--failed 실행된 것은 가짜 JOB(웹 UI에 있는 Re-run failed jobs와 동일)였다.
환경 설정이 잘못되었거나 dependabotbump가 시크릿 연결에 실패했을 때 사용합니다.
$ gh run rerun
? Select a workflow run  [Use arrows to move, type to filter]
> X Bump @rollup/plugin-node-resolve from 13.2.0 to 13.2.1, Push to GAS project (dependabot/npm_and_yarn/rollup/plugin-node-resolve-13.2.1) 4m6s ago
  X Bump rollup-plugin-license from 2.6.1 to 2.7.0, Push to GAS project (dependabot/npm_and_yarn/rollup-plugin-license-2.7.0) 124h30m36s ago

병합 요청

gh pr merge에서는 할 수 있지만 지점을 취소하고 싶어 집행gh pr merge -m -dgit fetch origin --prune한다.

dependabet의 bump


여기도 자동화 등이 잘 이뤄지지 않아 gh pr comment -b '@dependabot merge'처럼 주석으로 조작되고 있다.
그러나 여러 개의 버프가 있을 때는'한 개 병합 후 다른 자동 회신'의 조건을 모르기 때문에 웹 UI 또는 GitHub Mobile를 사용하는 경우도 있다.
GitHub CLI에서 그림7-1의force-pusihed가 보여준 부분[4]을 얻으면 확인하기 쉬우나 아직 방법을 모른다.
▶ 그림 7-1 리베이스 자동 조작
dependabot の bump で作成されたプルリクエストで bot の操作履歴が表示されているスクリーンショット

끝말


사실 얼마 전에야'rerun 등 일람에서 대상을 선택할 수 있다'는 것을 알아차렸다.그래서 재집행을 포함한 일련의 조작이 쉬워져서 글을 써 보았다.
각주
이번에는 독단적으로 이걸 1인 팟캐스트라고 해요.↩︎
'GiitHub CLI를 통해 태그 이름 입력 완성'를 살짝 홍보한다.↩︎
명령을 여러 개 실행하면 동시에 여러 개의 실행 상황을 확인할 수 있다.↩︎
이 부분의 이름을 모르기 때문에 검색하기 어렵다.↩︎

좋은 웹페이지 즐겨찾기