


ReviewDog ให้วิธีการโพสต์ความคิดเห็นทบทวนไปยังบริการโฮสต์รหัสเช่น GitHub โดยอัตโนมัติโดยการรวมเข้ากับเครื่องมือ linter ใด ๆ อย่างง่ายดาย มันใช้ผลลัพธ์ของเครื่องมือผ้าสำลีและโพสต์เป็นความคิดเห็นหากการค้นพบอยู่ในความแตกต่างของแพตช์เพื่อตรวจสอบ
ReviewDog ยังรองรับการทำงานในสภาพแวดล้อมท้องถิ่นเพื่อกรองเอาต์พุตของเครื่องมือผ้าสำลีโดย Diff
Design Doc



# Install the latest version. (Install it into ./bin/ by default).
$ curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s
# Specify installation directory ($(go env GOPATH)/bin/) and version.
$ curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin [vX.Y.Z]
# In alpine linux (as it does not come with curl by default)
$ wget -O - -q https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s [vX.Y.Z]นอกจากนี้คุณยังสามารถใช้ ReviewDog Release Nightly เพื่อลองการปรับปรุงรีวิวล่าสุดทุกวัน!
$ curl -sfL https://raw.githubusercontent.com/reviewdog/nightly/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin steps :
- uses : reviewdog/action-setup@v1
with :
reviewdog_version : latest # Optional. [latest,nightly,v.X.Y.Z]นอกจากนี้คุณยังสามารถติดตั้ง ReviewDog โดยใช้ Brew:
$ brew install reviewdog/tap/reviewdog
$ brew upgrade reviewdog/tap/reviewdog > scoop install reviewdog
$ go install github.com/reviewdog/reviewdog/cmd/reviewdog@latestReviewDog ยอมรับคอมไพเลอร์หรือลินเตอร์ผลลัพธ์จาก stdin และแยกวิเคราะห์ด้วยการสแกน-f เช่น 'errorformat' ซึ่งเป็นพอร์ตของคุณสมบัติข้อผิดพลาดของ Vim
ตัวอย่างเช่นหากรูปแบบผลลัพธ์คือ {file}:{line number}:{column number}: {message} , errorformat ควรเป็น %f:%l:%c: %m และคุณสามารถส่งเป็นอาร์กิวเมนต์ -efm
$ golint ./...
comment_iowriter.go:11:6: exported type CommentWriter should have comment or be unexported
$ golint ./... | reviewdog -efm= " %f:%l:%c: %m " -diff= " git diff FETCH_HEAD "| ชื่อ | คำอธิบาย |
|---|---|
| %f | ชื่อไฟล์ |
| %l | หมายเลขบรรทัด |
| %C | หมายเลขคอลัมน์ |
| %m | ข้อความแสดงข้อผิดพลาด |
| - | ตัวละคร '%' เดี่ยว |
| - | - |
โปรดดู ReviewDog/ErrorFormat และ: H ErrorFormat หากคุณต้องการจัดการกับเอาต์พุตที่ซับซ้อนมากขึ้น 'ErrorFormat' สามารถจัดการเอาต์พุตที่ซับซ้อนมากขึ้นเช่นข้อความแสดงข้อผิดพลาดแบบหลายบรรทัด
คุณยังสามารถลอง ErrorFormat บนสนามเด็กเล่น!
ด้วยคุณสมบัติ 'errorformat' นี้รีวิวสามารถรองรับเอาต์พุตเครื่องมือใด ๆ ได้อย่างง่ายดาย
แต่คุณไม่ต้องเขียน 'ErrorFormat' ในหลายกรณี ReviewDog รองรับข้อผิดพลาดที่กำหนดไว้ล่วงหน้าสำหรับเครื่องมือสำคัญ
คุณสามารถค้นหาชื่อ errorformat ที่มีอยู่โดย reviewdog -list และคุณสามารถใช้กับ -f={name}
$ reviewdog -list
golint linter for Go source code - https://github.com/golang/lint
govet Vet examines Go source code and reports suspicious problems - https://golang.org/cmd/vet/
sbt the interactive build tool - http://www.scala-sbt.org/
...$ golint ./... | reviewdog -f=golint -diff= " git diff FETCH_HEAD "คุณสามารถเพิ่ม 'ข้อผิดพลาด' ที่กำหนดไว้ล่วงหน้าได้โดยมีส่วนร่วมในการตรวจสอบ/ข้อผิดพลาด
ReviewDog รองรับรูปแบบการวินิจฉัย ReviewDog (RDFORMAT) เป็นรูปแบบการวินิจฉัยทั่วไปและรองรับทั้งรูปแบบ RDJSON และ RDJSONL
RDFormat นี้รองรับคุณสมบัติที่หลากหลายเช่นความคิดเห็นที่มีความหลากหลายหลายเส้นความรุนแรงรหัสกฎด้วย URL และคำแนะนำรหัส
$ < linter > | < convert-to-rdjson > | reviewdog -f=rdjson -reporter=github-pr-review
# or
$ < linter > | < convert-to-rdjsonl > | reviewdog -f=rdjsonl -reporter=github-pr-review
คุณสามารถใช้ ESLINT-FORMATTER-RDJSON เพื่อส่งออก rdjson เป็นรูปแบบเอาต์พุต ESLINT
$ npm install --save-dev eslint-formatter-rdjson
$ eslint -f rdjson . | reviewdog -f=rdjson -reporter=github-pr-reviewหรือคุณสามารถใช้ ReviewDog/Action-Eslint สำหรับการกระทำของ GitHub

ReviewDog รองรับ Diff (รูปแบบ Unified) เป็นรูปแบบอินพุตที่มีประโยชน์อย่างยิ่งสำหรับคำแนะนำรหัส ReviewDog สามารถรวมเข้ากับเครื่องมือคำแนะนำโค้ดหรือรูปแบบใด ๆ เพื่อรายงานคำแนะนำ
-f.diff.strip : ตัวเลือกสำหรับ -f=diff : strip num ส่วนประกอบนำจากชื่อไฟล์ diff (เทียบเท่ากับ 'patch -p') (ค่าเริ่มต้นคือ 1 สำหรับ Git diff) (ค่าเริ่มต้น 1)
$ < any-code-fixer/formatter > # e.g. eslint --fix, gofmt
$ TMPFILE= $( mktemp )
$ git diff > " ${TMPFILE} "
$ git stash -u && git stash drop
$ reviewdog -f=diff -f.diff.strip=1 -reporter=github-pr-review < " ${TMPFILE} "หรือคุณสามารถใช้ ReviewDog/Action-Suggester สำหรับการกระทำของ GitHub
หากเครื่องมือวินิจฉัยรองรับรูปแบบเอาต์พุตที่แตกต่างกันคุณสามารถจัดท่อต่าง ๆ ได้โดยตรง
$ gofmt -s -d . | reviewdog -name= " gofmt " -f=diff -f.diff.strip=0 -reporter=github-pr-review
$ shellcheck -f diff $( shfmt -f . ) | reviewdog -f=diffReviewDog ยังยอมรับรูปแบบ CheckStyle XML เช่นกัน หาก linter รองรับรูปแบบ checkstyle เป็นรูปแบบรายงานคุณสามารถใช้ -f = checkstyle แทนการใช้ 'errorformat'
# Local
$ eslint -f checkstyle . | reviewdog -f=checkstyle -diff= " git diff "
# CI (overwrite tool name which is shown in review comment by -name arg)
$ eslint -f checkstyle . | reviewdog -f=checkstyle -name= " eslint " -reporter=github-checkนอกจากนี้หากคุณต้องการผ่าน JSON/XML/ฯลฯ อื่น ๆ ... รูปแบบไปยัง ReviewDog คุณสามารถเขียนตัวแปลง
$ < linter > | < convert-to-checkstyle > | reviewdog -f=checkstyle -name= " <linter> " -reporter=github-pr-checkReviewDog รองรับรูปแบบ SARIF 2.1.0 JSON คุณสามารถใช้ reviewdog ด้วยตัวเลือก -f = sarif
# Local
$ eslint -f @microsoft/eslint-formatter-sarif . | reviewdog -f=sarif -diff= " git diff " 

ReviewDog รองรับคุณลักษณะ คำแนะนำรหัส ด้วย RDFORMAT หรือ DIFF Input คุณยังสามารถใช้ ReviewDog/Action-Suggester สำหรับการกระทำของ GitHub
ReviewDog สามารถแนะนำการเปลี่ยนแปลงรหัสพร้อมกับผลลัพธ์การวินิจฉัยหากเครื่องมือวินิจฉัยรองรับข้อมูลคำแนะนำรหัส คุณสามารถรวมรีวิวด็อกเข้ากับเครื่องมือแก้ไขรหัสใด ๆ และรูปแบบรหัสใด ๆ ที่มีอินพุต DIFF เช่นกัน
โปรดทราบว่าไม่ใช่นักข่าวทุกคนที่ให้การสนับสนุนคำแนะนำรหัส
-reporter | การสนับสนุนข้อเสนอแนะ |
|---|---|
local | ไม่ [1] |
github-check | ไม่ [2] |
github-pr-check | ไม่ [2] |
github-pr-review | ตกลง |
gitlab-mr-discussion | ตกลง |
gitlab-mr-commit | ไม่ [2] |
gerrit-change-review | ไม่ [1] |
bitbucket-code-report | ไม่ [2] |
gitea-pr-review | ไม่ [2] |
ReviewDog ยังสามารถควบคุมได้ผ่านไฟล์กำหนดค่า. reviewDog.yml แทนอาร์กิวเมนต์ "-F" หรือ "-EFM"
ด้วย. reviewdog.yml คุณสามารถเรียกใช้คำสั่งเดียวกันสำหรับทั้งบริการ CI และสภาพแวดล้อมในท้องถิ่นรวมถึงการรวมตัวแก้ไขได้อย่างง่ายดาย
runner :
<tool-name> :
cmd : <command> # (required)
errorformat : # (optional if you use `format`)
- <list of errorformat>
format : <format-name> # (optional if you use `errorformat`. e.g. golint,rdjson,rdjsonl)
name : <tool-name> # (optional. you can overwrite <tool-name> defined by runner key)
level : <level> # (optional. same as -level flag. [info,warning,error])
# examples
golint :
cmd : golint ./...
errorformat :
- " %f:%l:%c: %m "
level : warning
govet :
cmd : go vet -all .
format : govet
your-awesome-linter :
cmd : awesome-linter run
format : rdjson
name : AwesomeLinter $ reviewdog -diff= " git diff FETCH_HEAD "
project/run_test.go:61:28: [golint] error strings should not end with punctuation
project/run.go:57:18: [errcheck] defer os.Setenv(name, os.Getenv(name))
project/run.go:58:12: [errcheck] os.Setenv(name, " " )
# You can use -runners to run only specified runners.
$ reviewdog -diff= " git diff FETCH_HEAD " -runners=golint,govet
project/run_test.go:61:28: [golint] error strings should not end with punctuation
# You can use -conf to specify config file path.
$ reviewdog -conf=./.reviewdog.yml -reporter=github-pr-checkรูปแบบเอาต์พุตสำหรับการเรียกใช้การกำหนดค่าโครงการเป็นหนึ่งในรูปแบบต่อไปนี้
<file>: [<tool name>] <message><file>:<lnum>: [<tool name>] <message><file>:<lnum>:<col>: [<tool name>] <message>ReviewDog สามารถรายงานผลลัพธ์ทั้งในสภาพแวดล้อมท้องถิ่นและบริการตรวจสอบว่าเป็นการรวมอย่างต่อเนื่อง
ReviewDog สามารถค้นหาสิ่งที่ค้นพบใหม่โดยการกรองผลลัพธ์ linter โดยใช้ Diff คุณสามารถผ่านคำสั่ง diff เป็น -diff arg
$ golint ./... | reviewdog -f=golint -diff= " git diff FETCH_HEAD "

GitHub-PR-Check Reporter รายงานผลการตรวจสอบ GitHub
คุณสามารถเปลี่ยนระดับรายงานสำหรับฟิลด์นักข่าวตาม level ในไฟล์ config หรือ -level flag คุณสามารถควบคุมผลลัพธ์การตรวจสอบสถานะ GitHub ด้วยคุณสมบัตินี้ (ค่าเริ่มต้น: ข้อผิดพลาด)
| ระดับ | สถานะ GitHub |
|---|---|
info | เป็นกลาง |
warning | เป็นกลาง |
error | ความล้มเหลว |
มีสองตัวเลือกในการใช้นักข่าวคนนี้
ตัวอย่าง: .github/Workflow/ReviewDog.yml
- name : Run reviewdog
env :
REVIEWDOG_GITHUB_API_TOKEN : ${{ secrets.GITHUB_TOKEN }}
run : |
golint ./... | reviewdog -f=golint -reporter=github-pr-checkดูส่วนการกระทำของ GitHub ด้วย คุณยังสามารถใช้การตรวจสอบสาธารณะ GitHub การกระทำ
ReviewDog CLI ส่งคำขอไปยังเซิร์ฟเวอร์แอพ GitHub GitHub และผลลัพธ์การโพสต์เซิร์ฟเวอร์เมื่อตรวจสอบ GitHub เนื่องจากตรวจสอบ API ได้รับการสนับสนุนสำหรับแอป GitHub และการกระทำของ GitHub เท่านั้น
REVIEWDOG_TOKEN หรือเรียกใช้รีวิว CLI ในผู้ให้บริการ CI ที่เชื่อถือได้https://reviewdog.app/gh/{owner}/{repo-name} $ export REVIEWDOG_TOKEN= " <token> "
$ reviewdog -reporter=github-pr-checkหมายเหตุ: ไม่จำเป็นต้องใช้โทเค็นหากคุณรันรีวิวในเทรวิสหรือแอพเวียน
คำเตือน
ตามที่อธิบายไว้ข้างต้นนักข่าว GitHub-PR-Check พร้อมตัวเลือก 2 ขึ้นอยู่กับเซิร์ฟเวอร์แอพ GitHub ReviewDog เซิร์ฟเวอร์กำลังทำงานด้วยเงินในกระเป๋าของ Haya14busa ในตอนนี้และฉันอาจทำลายสิ่งต่าง ๆ ดังนั้นฉันจึงไม่สามารถมั่นใจได้ว่าเซิร์ฟเวอร์กำลังทำงาน 24 ชั่วโมงและ 365 วัน
อัปเดต: เริ่มรับการสนับสนุนจากผู้สนับสนุน OpenCollective และ GitHub ดูการสนับสนุนรีวิวด็อก
คุณสามารถใช้ GitHub-PR-Review Reporter หรือใช้ Run ReviewDog ภายใต้การกระทำของ GitHub หากคุณไม่ต้องการพึ่งพาเซิร์ฟเวอร์ ReviewDog
โดยพื้นฐานแล้วมันเหมือนกับ -reporter=github-pr-check ยกเว้นว่าใช้งานไม่เพียง แต่สำหรับคำขอดึง แต่ยังรวมถึงการกระทำด้วย

คุณสามารถสร้างป้ายรีวิวสำหรับนักข่าวคนนี้
GitHub-PR-Review Reporter รายงานผลลัพธ์ไปยัง GitHub PullRequest Review ความคิดเห็นโดยใช้โทเค็นการเข้าถึงส่วนบุคคล GitHub ส่วนบุคคล GitHub Enterprise ได้รับการสนับสนุนเช่นกัน
repo สำหรับที่เก็บส่วนตัวหรือ public_repo สำหรับที่เก็บสาธารณะ $ export REVIEWDOG_GITHUB_API_TOKEN= " <token> "
$ reviewdog -reporter=github-pr-reviewสำหรับ GitHub Enterprise ให้ตั้งค่าจุดสิ้นสุด API โดยตัวแปรสภาพแวดล้อม
$ export GITHUB_API= " https://example.githubenterprise.com/api/v3/ "
$ export REVIEWDOG_INSECURE_SKIP_VERIFY=true # set this as you need to skip verifying SSLดูส่วนการกระทำของ GitHub ด้วยหากคุณสามารถใช้การกระทำของ GitHub ได้ คุณยังสามารถใช้การตรวจสอบสาธารณะ GitHub การกระทำ
GitHub-PR-Annotations ใช้รูปแบบคำอธิบายประกอบการกระทำของ GitHub เพื่อเกิดข้อผิดพลาดและคำเตือนให้กับ stdout เช่น
::error line=11,col=41,file=app/index.md::[vale] reported by reviewdog ?%0A[demo.Spelling] Did you really mean 'boobarbaz'?%0A%0ARaw Output:%0A{"message": "[demo.Spelling] Did you really mean 'boobarbaz'?", "location": {"path": "app/index.md", "range": {"start": {"line": 11, "column": 41}}}, "severity": "ERROR"}
นักข่าวคนนี้ต้องการโทเค็น GitHub API ที่ถูกต้องเพื่อสร้างความแตกต่าง แต่จะไม่ใช้โทเค็นเพื่อรายงานข้อผิดพลาด

เวอร์ชัน gitlab ที่ต้องการ:> = v10.8.0
นักข่าว Gitlab-MR-DeScussion รายงานผลการอภิปราย Gitlab Mergerequest โดยใช้โทเค็นการเข้าถึง API ส่วนบุคคลของ Gitlab รับโทเค็นด้วยขอบเขต api จาก https://gitlab.com/profile/personal_access_tokens
$ export REVIEWDOG_GITLAB_API_TOKEN= " <token> "
$ reviewdog -reporter=gitlab-mr-discussion ตัวแปรสภาพแวดล้อม CI_API_V4_URL ซึ่งกำหนดโดยอัตโนมัติโดย Gitlab CI (V11.7 เป็นต้นไป) จะถูกนำมาใช้เพื่อค้นหา Gitlab API URL
อีกทางเลือกหนึ่งคือ GITLAB_API ยังสามารถกำหนดได้ซึ่งในกรณีนี้จะมีความสำคัญกว่า CI_API_V4_URL
$ export GITLAB_API= " https://example.gitlab.com/api/v4 "
$ export REVIEWDOG_INSECURE_SKIP_VERIFY=true # set this as you need to skip verifying SSLGitlab-MR-Commit นั้นคล้ายคลึงกับนักข่าว Gitlab-MR-discussion แต่รายงานผลการประชุมแต่ละครั้งใน Gitlab Mergerequest
แนะนำให้ใช้ Gitlab-MR-discussion แต่คุณสามารถใช้นักข่าว Gitlab-MR-Commit ได้หากเวอร์ชัน gitlab ของคุณอยู่ภายใต้ v10.8.0
$ export REVIEWDOG_GITLAB_API_TOKEN= " <token> "
$ reviewdog -reporter=gitlab-mr-commitGerrit-Change-Review Reporter รายงานผลการเปลี่ยนแปลง Gerrit โดยใช้ Gerrit REST APIs
นักข่าวรองรับการตรวจสอบความถูกต้องขั้นพื้นฐานและการรับรองความถูกต้องตาม Git-Cookie สำหรับผลการรายงาน
ตั้งค่าตัวแปรสภาพแวดล้อม GERRIT_USERNAME และ GERRIT_PASSWORD สำหรับการรับรองความถูกต้องขั้นพื้นฐานและใส่ GIT_GITCOOKIE_PATH สำหรับการรับรองความถูกต้องตามคุกกี้ GIT
$ export GERRIT_CHANGE_ID=changeID
$ export GERRIT_REVISION_ID=revisionID
$ export GERRIT_BRANCH=master
$ export GERRIT_ADDRESS=http:// < gerrit-host > : < gerrit-port >
$ reviewdog -reporter=gerrit-change-review

BitBucket-Code-Report สร้างรายงานข้อมูลเชิงลึกของรหัส BitBucket ที่มีคำอธิบายประกอบ
สำหรับตอนนี้รองรับโหมด no-filter เท่านั้นดังนั้นโครงการทั้งหมดจะถูกสแกนทุกครั้ง รายงานจะถูกจัดเก็บต่อการกระทำและสามารถดูได้ต่อการกระทำจาก BitBucket Pipelines UI หรือในการร้องขอการดึง ในการร้องขอการดึงรหัสที่ได้รับผลกระทบ UI จะมีคำอธิบายประกอบในความแตกต่างเช่นเดียวกับคุณจะสามารถกรองคำอธิบายประกอบได้โดย คำขอดึงนี้ หรือ ทั้งหมด
หากทำงานจาก BitBucket Pipelines ไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติม (แม้แต่ข้อมูลรับรอง) หากทำงานในพื้นที่หรือจากระบบ CI อื่น ๆ คุณจะต้องให้ข้อมูลรับรอง BitBucket API:
BITBUCKET_USER และ BITBUCKET_PASSWORDBITBUCKET_ACCESS_TOKEN $ export BITBUCKET_USER= " my_user "
$ export BITBUCKET_PASSWORD= " my_password "
$ reviewdog -reporter=bitbucket-code-report ในการโพสต์รายงานไปยังเซิร์ฟเวอร์ BitBucket ให้ใช้ตัวแปร BITBUCKET_SERVER_URL :
$ export BITBUCKET_USER= " my_user "
$ export BITBUCKET_PASSWORD= " my_password "
$ export BITBUCKET_SERVER_URL= " https://bitbucket.my-company.com "
$ reviewdog -reporter=bitbucket-code-reportตัวอย่าง: .github/Workflow/ReviewDog.yml
name : reviewdog
on : [pull_request]
jobs :
reviewdog :
name : reviewdog
runs-on : ubuntu-latest
steps :
# ...
- uses : reviewdog/action-setup@v1
with :
reviewdog_version : latest # Optional. [latest,nightly,v.X.Y.Z]
- name : Run reviewdog
env :
REVIEWDOG_GITHUB_API_TOKEN : ${{ secrets.GITHUB_TOKEN }}
run : |
reviewdog -reporter=github-pr-check -runners=golint,govet
# or
reviewdog -reporter=github-pr-review -runners=golint,govet.GITHUB/เวิร์กโฟลว์/รีวิวด็อก
มีเพียงนักข่าว github-check เท่านั้นที่สามารถทำงานบนเหตุการณ์พุชได้เช่นกัน
name : reviewdog (github-check)
on :
push :
branches :
- master
pull_request :
jobs :
reviewdog :
name : reviewdog
runs-on : ubuntu-latest
steps :
# ...
- name : Run reviewdog
env :
REVIEWDOG_GITHUB_API_TOKEN : ${{ secrets.GITHUB_TOKEN }}
run : |
reviewdog -reporter=github-check -runners=golint,govet คุณสามารถใช้การกระทำของ GitHub สาธารณะเพื่อเริ่มใช้ ReviewDog ได้อย่างง่ายดาย! -
Dockerfile.env... และอื่น ๆ เกี่ยวกับตลาด GitHub
การกระทำที่ขาดหายไป? ตรวจสอบ ReviewDog/Action-Template และสร้างการกระทำรีวิวใหม่!
โปรดเปิดคำขอดึงเพื่อเพิ่มการกระทำรีวิวที่คุณสร้างขึ้นที่นี่ ฉันยังสามารถวางที่เก็บของคุณภายใต้ reviewdog org และร่วมการกระทำร่วมกัน ตัวอย่าง: Action-Tflint

GITHUB_TOKEN สำหรับการร้องขอการดึงจากที่เก็บข้อมูลที่ถูกแยกออกไม่ได้มีการเข้าถึงการเขียนเพื่อตรวจสอบ API หรือตรวจสอบ API เนื่องจากข้อ จำกัด การกระทำของ GitHub
ReviewDog ใช้คำสั่งการบันทึกการกระทำของ GitHub เพื่อโพสต์ผลลัพธ์เป็นคำอธิบายประกอบคล้ายกับ github-pr-check Reporter
โปรดทราบว่ามีข้อ จำกัด สำหรับคำอธิบายประกอบที่สร้างขึ้นโดยคำสั่งการบันทึกเช่น MAX # ของคำอธิบายประกอบสูงสุดต่อการรัน คุณสามารถตรวจสอบบันทึกการกระทำของ GitHub เพื่อดูผลลัพธ์ทั้งหมดในกรณีดังกล่าว

ในฐานะที่เป็นผู้สนับสนุนนักข่าว github-check ที่ทำงานอยู่ในการกระทำเราสามารถสร้างตราสัญลักษณ์การกระทำของรีวิว GitHub เพื่อตรวจสอบผลลัพธ์กับการกระทำหลักเช่น -
ตัวอย่าง:
<!-- Replace <OWNER> and <REPOSITORY>. It assumes workflow name is "reviewdog" -->
[](https://github.com/<OWNER>/<REPOSITORY>/actions?query=workflow%3Areviewdog+event%3Apush+branch%3Amaster)
หากคุณใช้ -Reporter = GitHub-PR-Check ใน Travis CI คุณไม่จำเป็นต้องตั้ง REVIEWDOG_TOKEN
ตัวอย่าง:
install :
- mkdir -p ~/bin/ && export PATH="~/bin/:$PATH"
- curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b ~/bin
script :
- reviewdog -conf=.reviewdog.yml -reporter=github-pr-check เก็บโทเค็น GitHub API โดยปุ่มเข้ารหัส Travis
$ gem install travis
$ travis encrypt REVIEWDOG_GITHUB_API_TOKEN= < token > --add env.globalตัวอย่าง:
env :
global :
- secure : <token>
install :
- mkdir -p ~/bin/ && export PATH="~/bin/:$PATH"
- curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b ~/bin
script :
- >-
golint ./... | reviewdog -f=golint -reporter=github-pr-reviewตัวอย่าง
REVIEWDOG_GITHUB_API_TOKEN (หรือ REVIEWDOG_TOKEN สำหรับ github-pr-check) ในตัวแปรสภาพแวดล้อม-circleci
version : 2
jobs :
build :
docker :
- image : golang:latest
steps :
- checkout
- run : curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b ./bin
- run : go vet ./... 2>&1 | ./bin/reviewdog -f=govet -reporter=github-pr-review
# Deprecated: prefer GitHub Actions to use github-pr-check reporter.
- run : go vet ./... 2>&1 | ./bin/reviewdog -f=govet -reporter=github-pr-check REVIEWDOG_GITLAB_API_TOKEN ในตัวแปร Gitlab CI
reviewdog :
script :
- reviewdog -reporter=gitlab-mr-discussion
# Or
- reviewdog -reporter=gitlab-mr-commitไม่จำเป็นต้องมีการกำหนดค่าเพิ่มเติม
pipelines :
default :
- step :
name : Reviewdog
image : golangci/golangci-lint:v1.31-alpine
script :
- wget -O - -q https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh |
sh -s -- -b $(go env GOPATH)/bin
- golangci-lint run --out-format=line-number ./... | reviewdog -f=golangci-lint -reporter=bitbucket-code-reportคุณสามารถใช้ ReviewDog เพื่อโพสต์ความคิดเห็นรีวิวจากทุกที่ด้วยตัวแปรสภาพแวดล้อมต่อไปนี้
| ชื่อ | คำอธิบาย |
|---|---|
CI_PULL_REQUEST | หมายเลขคำขอดึง (เช่น 14) |
CI_COMMIT | sha1 สำหรับงานสร้างปัจจุบัน |
CI_REPO_OWNER | เจ้าของที่เก็บ (เช่น "รีวิว" สำหรับ https://github.com/reviewdog/errorformat) |
CI_REPO_NAME | ชื่อที่เก็บ (เช่น "errorformat" สำหรับ https://github.com/reviewdog/errorformat) |
CI_BRANCH | [ไม่บังคับ] สาขาของการกระทำ |
$ export CI_PULL_REQUEST=14
$ export CI_REPO_OWNER=haya14busa
$ export CI_REPO_NAME=reviewdog
$ export CI_COMMIT= $( git rev-parse HEAD )และตั้งค่าโทเค็นหากจำเป็น
$ REVIEWDOG_TOKEN= " <token> "
$ REVIEWDOG_GITHUB_API_TOKEN= " <token> "
$ REVIEWDOG_GITLAB_API_TOKEN= " <token> " หากบริการ CI ไม่ได้ให้ข้อมูลเช่น ID คำขอดึง - ReviewDog สามารถคาดเดาได้ด้วยชื่อสาขาและยอมรับ Sha เพียงแค่ผ่านธง guess :
$ reviewdog -conf=.reviewdog.yml -reporter=github-pr-check -guess$ export CI_PULL_REQUEST= ${ghprbPullId}
$ export CI_REPO_OWNER=haya14busa
$ export CI_REPO_NAME=reviewdog
$ export CI_COMMIT= ${ghprbActualCommit}
$ export REVIEWDOG_INSECURE_SKIP_VERIFY=true # set this as you need
# To submit via reviewdog server using github-pr-check reporter
$ REVIEWDOG_TOKEN= " <token> " reviewdog -reporter=github-pr-check
# Or, to submit directly via API using github-pr-review reporter
$ REVIEWDOG_GITHUB_API_TOKEN= " <token> " reviewdog -reporter=github-pr-review
# Or, to submit directly via API using github-pr-check reporter (requires GitHub App Account configured)
$ REVIEWDOG_SKIP_DOGHOUSE=true REVIEWDOG_GITHUB_API_TOKEN= " <token> " reviewdog -reporter=github-pr-check โดยค่าเริ่มต้น ( -fail-level=none ) ReviewDog จะส่งคืน 0 เป็นรหัสออกแม้ว่าจะพบข้อผิดพลาด ReviewDog จะออกจากรหัส 1 ด้วย -fail-level=[any,info,warning,error] ตั้งค่าสถานะหากพบปัญหาอย่างน้อย 1 ฉบับที่มีความรุนแรงมากกว่าหรือเท่ากับระดับที่กำหนด สิ่งนี้จะเป็นประโยชน์เมื่อคุณใช้เป็นขั้นตอนในไปป์ไลน์ CI ของคุณและต้องการทำเครื่องหมายขั้นตอนที่ล้มเหลวหากข้อผิดพลาดใด ๆ ที่พบโดย Linter
นอกจากนี้คุณยังสามารถใช้ -level Flag เพื่อกำหนดค่ารายงานเริ่มต้น Revel
ผลการตรวจสอบตัวกรองโดย DIFF และคุณสามารถควบคุมวิธีการตรวจสอบตัวกรองผลการตรวจสอบโดย -filter-mode Flag โหมดตัวกรองที่มีอยู่ด้านล่าง
added (ค่าเริ่มต้น)ผลลัพธ์ตัวกรองโดยสายเพิ่ม/แก้ไข
diff_contextผลการกรองตามบริบทที่แตกต่างกัน เช่นการเปลี่ยนบรรทัด +-n บรรทัด (n = 3 ตัวอย่างเช่น)
fileผลลัพธ์กรองโดยไฟล์เพิ่ม/แก้ไข IE ReviewDog จะรายงานผลลัพธ์ตราบใดที่พวกเขาอยู่ในไฟล์ที่เพิ่ม/แก้ไขแม้ว่าผลลัพธ์จะไม่แตกต่างกันจริง
nofilterอย่ากรองผลลัพธ์ใด ๆ มีประโยชน์สำหรับการโพสต์ผลลัพธ์ตามความคิดเห็นให้มากที่สุดและตรวจสอบผลลัพธ์อื่น ๆ ในคอนโซลในเวลาเดียวกัน
-fail-on-error ยังทำงานร่วมกับโหมดตัวกรองใด ๆ และสามารถจับผลลัพธ์ทั้งหมดจาก linters ใด ๆ ที่มีโหมด nofilter
ตัวอย่าง:
$ reviewdog -reporter=github-pr-review -filter-mode=nofilter -fail-on-error โปรดทราบว่านักข่าวไม่ได้ให้การสนับสนุนอย่างเต็มที่สำหรับโหมดตัวกรองเนื่องจากข้อ จำกัด API EG github-pr-review Reporter ใช้ GitHub Review API แต่ API นี้ไม่สนับสนุนการโพสต์ความคิดเห็นนอกบริบท DIFF ดังนั้นรีวิวจะใช้คำอธิบายประกอบการตรวจสอบเป็นทางเลือกในการโพสต์ความคิดเห็นเหล่านั้น [1]
-reporter -filter-mode | added | diff_context | file | nofilter |
|---|---|---|---|---|
local | ตกลง | ตกลง | ตกลง | ตกลง |
github-check | ตกลง | ตกลง | ตกลง | ตกลง |
github-pr-check | ตกลง | ตกลง | ตกลง | ตกลง |
github-pr-review | ตกลง | ตกลง | สนับสนุนบางส่วน [1] | สนับสนุนบางส่วน [1] |
github-pr-annotations | ตกลง | ตกลง | ตกลง | ตกลง |
gitlab-mr-discussion | ตกลง | ตกลง | ตกลง | สนับสนุนบางส่วน [2] |
gitlab-mr-commit | ตกลง | สนับสนุนบางส่วน [2] | สนับสนุนบางส่วน [2] | สนับสนุนบางส่วน [2] |
gerrit-change-review | ตกลง | ตกลง? [3] | ตกลง? [3] | สนับสนุนบางส่วน? [2] [3] |
bitbucket-code-report | ไม่ [4] | ไม่ [4] | ไม่ [4] | ตกลง |
gitea-pr-review | ตกลง | ตกลง | สนับสนุนบางส่วน [2] | สนับสนุนบางส่วน [2] |
ใช้ -tee Flag เพื่อแสดงข้อมูลการดีบัก
reviewdog -filter-mode=nofilter -teeHaya14busa
กลายเป็นสปอนเซอร์ GitHub สำหรับผู้สนับสนุนแต่ละคนหรือกลายเป็นผู้สนับสนุนหรือผู้สนับสนุนจาก OpenCollective