GitLab เดเดทเตเดเดชเตเดชเตเดเตเดเดฏเตเด เดฌเดเตเดเดณเต เดตเตเดฑเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดฃเตเดเต? เดจเดฟเดเตเดเดณเตเดเต เดธเตเดดเตเดธเต เดเตเดกเดฟเดจเตเดฑเต เดเตเดฃเดจเดฟเดฒเดตเดพเดฐเด เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดฃเต? เด
เดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เดถเดฐเดฟเดฏเดพเดฏ เดธเตเดฅเดฒเดคเตเดคเต เดเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฒเดฏเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต PVS-Studio C# เด
เดจเดฒเตเดธเตผ เดเดเตเดเดจเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเต เดเดจเตเดจเต เดเดเตเดเตพ เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเตเด. เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดฏเตเดฃเดฟเดเตเตบ เดฎเดพเดจเดธเดฟเดเดพเดตเดธเตเดฅเดฏเตเด เดธเดจเตเดคเตเดทเดเดฐเดฎเดพเดฏ เดตเดพเดฏเดจเดฏเตเด เดจเตเดฐเตเดจเตเดจเต.
เดตเดดเดฟเดฏเดฟเตฝ, เดเดเตเดเตพ PVS-Studio 7.08 เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเดฟ, เด
เดคเดฟเตฝ เดเดเตเดเตพ เดเดฐเตเดชเดพเดเต เดเดพเดฐเตเดฏเดเตเดเตพ เดเตเดฏเตเดคเต
- เดฒเดฟเดจเดเตเดธเดฟเดจเตเด เดฎเดพเดเตเดธเดฟเดจเตเด เดธเดฟ# เด เดจเดฒเตเดธเตผ;
- เดฑเตเดกเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดชเตเดฒเดเดฟเตป;
- เดชเตเดคเดฟเดฏ เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดฎเตเดกเต.
เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดฎเตเดกเต
เดฎเตเดฎเตเดชเต, เดเดฟเดฒ เดซเดฏเดฒเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เด เดจเดฒเตเดธเดฑเดฟเดจเต เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเดนเดฟเดคเด เดเดฐเต .xml เดเตเดฎเดพเดฑเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดจเตเดจเดพเตฝ เดเดคเต เดตเดณเดฐเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, .txt เดเตเดฎเดพเดฑเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เดเดเตเดเตพ เดเตเตผเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต, เดเดคเต เดเตเดตเดฟเดคเด เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดเตเดเตเดจเตเดจเต.
เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดซเดฏเดฒเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดซเตเดฒเดพเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฃเด --sourceFiles (-f) เดเตเดเดพเดคเต เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเดนเดฟเดคเด .txt เดเตเดฎเดพเดฑเตเด. เดเดคเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
pvs-studio-dotnet -t path/to/solution.sln -f fileList.txt -o project.json
เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดเตเดเดฟเดเดเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเดจเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเดฟเตปเดตเดฒเดฟเดเตเดเดพเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดฎเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเดคเต เดเตเดฏเตเดฏเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดจเตเดเตเดจเตเดจเดคเดฟเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเตเด เดตเตเดฏเดคเตเดฏเดพเดธเด, เดจเดฟเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเด.
เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดคเตเดตเด
เดฒเดฏเดจ เดธเดฎเดฏเดคเตเดคเต เด เดจเดฒเตเดธเตผ เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดชเตเดฐเดถเตเดจเดเตเดเตพ เด เดคเดฟเตฝ เดตเตเดดเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเตเดเตเดเดฟเดจเตเดฑเต เดชเตเดฐเดงเดพเดจ เดธเดพเดฐเดพเดเดถเด. เดฏเดเดฎเดพเดจเดจเต เดถเดพเด. เดเดฒเตเดฒเดพ เดธเดฎเดฏเดคเตเดคเตเด เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดฌเตเดฐเดพเดเตเดเตเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฎเตเดเตเดเต เดฎเดพเดฑเดฟเดฏ เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดฃเตเดเต. เด เดคเดฟเดจเดพเตฝ, เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดฟเดถเตเดงเดจ เดเตเตผเดเตเดเดพเตป เดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเตผ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดเดเตเดเดจเตเดฏเดพเดฃเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเดคเต:
เด
เดคเดพเดฏเดคเต, เดถเดพเดเดฏเดฟเตฝ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจ เดเดฒเตเดฒเดพ เดชเดฟเดดเดตเตเดเดณเตเด เดฎเดพเดฑเตเดฑเดเตเดเตพ, เดฎเดพเดธเตเดฑเตเดฑเตผ เดฌเตเดฐเดพเดเตเดเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเด. เดเดเตเดเตพเดเตเดเต เดเดคเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเตผเดเตเดเตเดจเตเดจเต, เดเดชเตเดชเตเตพ เดกเดฏเดเตเดฐเด เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
เดเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดฎเดพเดฑเตเดฑเดเตเดเตพ2 เดเตเดเดพเดคเต, เดชเดฟเดถเดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฒเดฏเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดเดเตเดเตพ เด
เดเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต, เด
เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดเดเตเดเตพ เด
เดคเต เดจเดฟเดฐเดธเดฟเดเตเดเตเดจเตเดจเต.
เดตเดดเดฟเดฏเดฟเตฝ, C/C++ เดเดจเตเดจเดคเดฟเดจเดพเดฏเตเดณเตเดณ เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเดจเตเด เดชเดฟเตปเดตเดฒเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เด
เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดพเดฏเดฟเดเตเดเดพเด
GitLab
เดจเดฟเดเตเดเตพ เดฒเดฏเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดคเต เด
เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต
เด เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด. เดคเดพเดดเต เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดฐเตเดคเดฟ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดจเตเดจเดพเดฃเต. เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเด เด เดจเดฒเตเดธเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดเตเดเดเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดฒเดเตเดทเตเดฏเด. เดเดฐเตเดชเดเตเดทเต เดจเดฟเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฒเดฟเดจเตเดฑเตเดฏเตเด (เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดฐเต เด เดจเดฒเตเดธเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเตเดฏเตเด) เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดเตเดเดเตเดเตพ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดเตเด: เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟ เด เดต เดเดชเดฏเตเดเดฟเดเตเดเตเด, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเตเดคเตเดเตเดเดฟเดฒเตเด เดฐเตเดคเดฟ.
เดเดชเตเดชเตเตพ เดเดจเตเดคเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดจเตเดจเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดฏเดเตเดฐเด เดจเตเดเตเดเดพเตป เดเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต:
เด
เดจเดฒเตเดธเดฑเดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป .NET เดเตเตผ SDK 3 เดเดตเดถเตเดฏเดฎเดพเดฃเต, เด
เดคเดฟเดจเดพเตฝ เด
เดจเดฒเตเดธเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดจเดฟเดเตเดเตพ เด
เดจเดฒเตเดธเดฑเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจ Microsoft เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตพ เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดตเดฟเดตเดฟเดง เดฒเดฟเดจเดเตเดธเต เดตเดฟเดคเดฐเดฃเดเตเดเตพเดเตเดเดพเดฏเดฟ Microsoft repositories เดเตเตผเดเตเดเตเดจเตเดจเต
เดชเดพเดเตเดเตเดเต เดฎเดพเดจเตเดเตผ เดตเดดเดฟ PVS-Studio เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป, เดจเดฟเดเตเดเตพ PVS-Studio เดถเตเดเดฐเดฃเดเตเดเดณเตเด เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดตเตเดฏเดคเตเดฏเดธเตเดค เดตเดฟเดคเดฐเดฃเดเตเดเตพเดเตเดเดพเดฏเดฟ เดถเตเดเดฐเดฃเดเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
เด
เดจเดฒเตเดธเดฑเดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดฒเตเดธเตปเดธเต เดเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดจเตเดจเดคเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฐเดฏเตฝ เดฒเตเดธเตปเดธเต เดฒเดญเดฟเดเตเดเตเด
เด เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด. เดตเดฟเดตเดฐเดฟเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจ เดฐเตเดคเดฟเดเตเดเต (เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เดตเดฟเดถเดเดฒเดจเด) เดเดฐเต เดเดจเตเดฑเตผเดชเตเดฐเตเดธเต เดฒเตเดธเตปเดธเต เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด. เด เดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เด เดชเตเดฐเดตเตผเดคเตเดคเดจ เดฐเตเดคเดฟ เดชเดฐเตเดเตเดทเดฟเดเตเดเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดเดจเตเดฑเตผเดชเตเดฐเตเดธเต เดฒเตเดธเตปเดธเต เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต "เดธเดจเตเดฆเตเดถเด" เดซเตเตฝเดกเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต.
เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดธเดเดญเดตเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดฏ เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฎเดพเดคเตเดฐเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดเดเตเดเตพ เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเด. เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเต เดถเตเดทเด, เดจเดฎเตเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดฒเตเดเตเดเตพ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
เดเดชเตเดชเตเตพ, เดจเดฟเดเตเดเดณเตเดเต เดเตบเดฎเตเดจเตเดจเดฟเตฝ เดเตเดฒเดฟเดฏเตเดเต เด เตฝเดเตเดฐเดฟเดคเด เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดดเตเดคเดพเตป เดชเตเดเดพเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดซเดฏเตฝ เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเตเดฃเตเดเต .gitlab-ci.yml เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต เดธเตเดทเตเดเดฟเดเตเดเตเด. เดเดคเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป, เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดชเตเดฐเดฟเตฝ เดเตเดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเดฃเด -> CI/CD เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเด.
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดคเดฟเดฐเดเตเดเดฅ เดเดดเตเดคเดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เด
เดจเดฒเตเดธเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดเดฏเตเด เดฒเตเดธเตปเดธเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดกเต เดเดฆเตเดฏเด เดเดดเตเดคเดพเด:
before_script:
- apt-get update && apt-get -y install wget gnupg
- apt-get -y install git
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
- wget -q -O - https://files.viva64.com/etc/pubkey.txt | apt-key add -
- wget -O /etc/apt/sources.list.d/viva64.list
https://files.viva64.com/etc/viva64.list
- apt-get update
- apt-get -y install pvs-studio-dotnet
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
- dotnet restore "$CI_PROJECT_DIR"/Test/Test.sln
เดฎเดฑเตเดฑเตเดฒเตเดฒเดพ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพเดเตเดเตเด เดฎเตเดฎเตเดชเดพเดฏเดฟ เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเตเด เดธเดเตเดตเดฎเดพเดเตเดเดฒเตเด เดธเดเดญเดตเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเดพเตฝ, เดเดเตเดเตพ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฒเตเดฌเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต เดฎเตเดฎเตเดชเต_เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต. เด เดถเดเดฒเด เด เดฒเตเดชเด เดตเดฟเดถเดฆเตเดเดฐเดฟเดเตเดเดพเด.
เด เดจเดฒเตเดธเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป เดคเดฏเตเดฏเดพเดฑเตเดเตเดเตเดเตเดจเตเดจเต:
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
PVS-Studio เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเดณเตเด เด เดจเดฒเตเดธเดฑเตเด เดเตเตผเดเตเดเตเดจเตเดจเต:
- wget -q -O - https://files.viva64.com/etc/pubkey.txt | apt-key add -
- wget -O /etc/apt/sources.list.d/viva64.list
https://files.viva64.com/etc/viva64.list
- apt-get update
- apt-get -y install pvs-studio-dotnet
เดฒเตเดธเตปเดธเต เดธเดเตเดตเดฎเดพเดเตเดเตฝ:
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
$PVS_NAME - เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด.
$PVS_KEY - เดเดฒเตเดชเดจเตเดจเดคเดพเดเตเดเตเดพเตฝ.
เดเดตเดฟเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเต $CI_PROJECT_DIR - เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฎเตเดดเตเดตเตป เดชเดพเดค:
- dotnet restore "$CI_PROJECT_DIR"/Path/To/Solution.sln
เดถเดฐเดฟเดฏเดพเดฏ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เด เดคเดฟเดจเตเดฑเต เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดชเตเดจเดเดธเตเดฅเดพเดชเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดตเดถเตเดฏเดฎเดพเดฏ NuGet เดชเดพเดเตเดเตเดเตเดเตพ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเดฃเด).
เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดฒเตเดธเตปเดธเต เดตเดฟเดตเดฐเดเตเดเตพ เด เดเดเตเดเดฟเดฏ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดธเดเตเดเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด เดเตเดฐเดฎเตเดเดฐเดฃเด, เด เดคเดฟเดจเตเดถเตเดทเดตเตเด เดธเดฟเด/เดธเดฟเดกเดฟ.
เดคเตเดฑเดเตเดเตเดจเตเดจ เดตเดฟเตปเดกเตเดฏเดฟเตฝ, เดเดจเด เดเดฃเตเดเตเดคเตเดคเตเด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ, เดตเดฒเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ เดฌเดเตเดเดฃเดฟเตฝ เดเตเดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเตเด เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเดเตเด เดเตเดเดพเดคเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเตเตผเดเตเดเตเด. เดซเดฒเด เดเดคเตเดชเตเดฒเต เดเดฏเดฟเดฐเดฟเดเตเดเดฃเด:
เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด. เดเดฆเตเดฏเด, เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเตผเดเตเดเดพเด. เดชเดคเดพเดเดฏเดฟเดฒเตเดเตเดเต -t เดชเดคเดพเดเดฏเตเดเต เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดค เดเดเตเดเตพ เดเดเดจเตเดจเตเดชเตเดเตเดจเตเดจเต -o เดตเดฟเดถเดเดฒเดจ เดซเดฒเดเตเดเตพ เดเดดเตเดคเตเดจเตเดจ เดซเดฏเดฒเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดค เดเดดเตเดคเตเด. เดฑเดฟเดเตเดเตเตบ เดเตเดกเดฟเดฒเตเด เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเต. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดฑเดฟเดเตเดเตเตบ เดเตเดกเดฟเตฝ เดตเดฟเดถเดเดฒเดจ เดธเดฎเดฏเดคเตเดคเต เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ เดจเตฝเดเดฟเดฏ เดตเดฟเดตเดฐเด เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเต. เด เดถเดเดฒเด เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
job:
script:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -o
PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเตพ เดเดฐเต เดฌเดฟเดฑเตเดฑเต เดฎเดพเดธเตเดเดฟเดจเตเดฑเต เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดฑเต เดซเดฒเดฎเดพเดฏเดฟ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเดเตพ เดจเตฝเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดฑเดฟเดเตเดเตเตบ เดเตเดกเต 8 เดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดฒเตเดธเตปเดธเต เดเดฐเต เดฎเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดพเดฒเดนเดฐเดฃเดชเตเดชเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดฑเดฟเดเตเดเตเตบ เดเตเดกเต 4 เดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดตเดฟเดถเดเดฒเดจ เดธเดฎเดฏเดคเตเดคเต เดชเดฟเดถเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดพเตฝ, เดเดฐเต เดฎเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดฒเตเดธเตปเดธเต เดเดพเดฒเดนเดฐเดฃเดชเตเดชเตเดเตเด, เดเตเดกเต เดฑเดฟเดเตเดเตเตบ, เดฐเดฃเตเดเต เดฎเตเดฒเตเดฏเดเตเดเดณเตเด เดเดดเตเดคเดชเตเดชเตเดเตเด: เด
เดเตเดเดเตเดเตพ เดเดฐเตเดฎเดฟเดเตเดเต เดเตเตผเดคเตเดคเต เด
เดจเตเดคเดฟเดฎ เดฑเดฟเดเตเดเตเตบ เดเตเดกเต เดจเตเดเตเด - 8+4=12. เด
เดคเดฟเดจเดพเตฝ, เด
เดจเตเดฌเดจเตเดง เดฌเดฟเดฑเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต, เดตเดฟเดถเดเดฒเดจ เดธเดฎเดฏเดคเตเดคเต เดตเดฟเดตเดฟเดง เดธเดเดธเตเดฅเดพเดจเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดตเดฐเดเตเดเตพ เดฒเดญเดฟเดเตเดเตเด. เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเตพ เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเดฟเดจเตเดฑเต "pvs-studio-dotnet (Linux / macOS) เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเตพ" เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต "
เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, 8 เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจ เดเดฒเตเดฒเดพ เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเดณเดฟเดฒเตเด เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเต.
- exit_code=$((($exit_code & 8)/8))
เดฑเดฟเดเตเดเตเตบ เดเตเดกเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เดธเดเดเตเดฏเดฏเตเดเต เดฌเดฟเดฑเตเดฑเต เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฎเตเดเตเดเต 1 เดฒเดญเดฟเดเตเดเตเด, เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดจเดฎเตเดเตเดเต 0 เดฒเดญเดฟเดเตเดเตเด.
เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฟเดถเดเดฒเดจเด เดเตเตผเดเตเดเดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเดฎเตเดเตเดเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดเดฐเต เดธเตเดฅเดฒเด เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดพเด. เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดเดฃเตเดเดพเดเตเดฎเตเดชเตเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดเตพเดเตเดเต เด เดคเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดพเดตเต. เดเดคเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
merge:
script:
only:
- merge_requests
เดจเดฎเตเดเตเดเต เดคเดฟเดฐเดเตเดเดฅเดฏเดฟเดฒเตเดเตเดเต เดคเดจเตเดจเต เดชเตเดเดพเด. เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเดจเต เดเดจเตเดจเตเด เด เดฑเดฟเดฏเดฟเดฒเตเดฒ เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดพเตป เด เดญเดฟเดฎเตเดเตเดเดฐเดฟเดเตเดเต เดเดคเตเดญเดตเด/เดฎเดพเดธเตเดฑเตเดฑเตผ. เด เดคเดฟเดจเดพเตฝ เดจเดฎเตเดเตเดเต เด เดตเดณเต เดเตเดฑเดเตเดเต เดธเดนเดพเดฏเดฟเดเตเดเดพเด:
- git fetch origin
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดถเดพเดเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด เดฒเดญเดฟเดเตเดเตเดเดฏเตเด เดซเดฒเด เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต txt เดฒเตเดณเตเดณ เดซเดฏเตฝ:
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
เดเดตเดฟเดเตเดฏเดพเดฃเต $CI_COMMIT_SHA - เด เดตเดธเดพเดจ เดเดฎเตเดฎเดฟเดฑเตเดฑเดฟเดจเตเดฑเต เดนเดพเดทเต.
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, เดเดเตเดเตพ เดซเตเดฒเดพเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดซเดฏเดฒเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต -f. เดฎเตเดฎเตเดชเต เดฒเดญเดฟเดเตเด .txt เดซเดฏเตฝ เดเดเตเดเตพ เด เดคเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต. เดถเดฐเดฟ, เดชเตเตผเดฃเตเดฃ เดตเดฟเดถเดเดฒเดจเดตเตเดฎเดพเดฏเดฟ เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดเดเตเดเตพ เดฑเดฟเดเตเดเตเตบ เดเตเดกเตเดเตพ เดจเตเดเตเดเตเดจเตเดจเต:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเด:
merge:
script:
- git fetch origin
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
only:
- merge_requests
เดเดฒเตเดฒเดพ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเดณเตเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดคเดคเดฟเดจเต เดถเตเดทเด เดฒเตเดเต เดเตบเดตเตเตผเดทเตป เดเตเตผเดเตเดเตเดจเตเดจเดคเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดเตเดเตพ เดฒเตเดฌเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต after_script เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเด เดชเตเดฒเดเต-เดเตบเดตเตเตผเดเตเดเตผ:
after_script:
- plog-converter -t html -o eLog ./PVS-Studio.json
เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ
เดเดกเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ .json เดฑเดฟเดชเตเดชเตเตผเดเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเต
เดธเตเดเดฐเตเดฏเดพเตผเดคเตเดฅเด, เดเดคเดพ .gitlab-ci.yml เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ:
image: debian
before_script:
- apt-get update && apt-get -y install wget gnupg
- apt-get -y install git
- wget https://packages.microsoft.com/config/debian/10/
packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
- wget -q -O - https://files.viva64.com/etc/pubkey.txt | apt-key add -
- wget -O /etc/apt/sources.list.d/viva64.list
https://files.viva64.com/etc/viva64.list
- apt-get update
- apt-get -y install pvs-studio-dotnet
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY
- dotnet restore "$CI_PROJECT_DIR"/Test/Test.sln
merge:
script:
- git fetch origin
- git diff --name-only origin/master $CI_COMMIT_SHA > pvs-fl.txt
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -f
pvs-fl.txt -o PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
only:
- merge_requests
job:
script:
- exit_code=0
- pvs-studio-dotnet -t "$CI_PROJECT_DIR"/Test/Test.sln -o
PVS-Studio.json || exit_code=$?
- exit_code=$((($exit_code & 8)/8))
- if [[ $exit_code == 1 ]]; then exit 1; else exit 0; fi
after_script:
- plog-converter -t html -o eLog ./PVS-Studio.json
เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเดฒเตเดฒเดพเด เดเตเตผเดคเตเดคเตเดเดดเดฟเดเตเดเดพเตฝ, เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดฏเตเด เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเตเด. เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฃเตเดจเตเดจเต เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเต, เดชเตเดเตเด เดธเดฟเด / เดธเดฟเดกเดฟ -> เดชเตเดชเตเดชเตเดฒเตเดจเตเดเตพ -> เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ. เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเตป เดตเดฟเตปเดกเต เดคเตเดฑเดเตเดเตเด, เด เดคเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด:
เดเดฃเตเดเต เดเตเดฌเต เดตเดฟเดเดฏเดฟเดเตเดเต - เดตเดฟเดเดฏเด, เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฃเต. เดจเดฟเดเตเดเตพ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดคเดคเตเดจเตเดจเต เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด.
เดเตเดฒเดฟเดฏเตเดเต เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ
เดเตเดฒเดฟเดฏเตเดเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดจเดฎเตเดเตเดเต เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเดพเด (เดเตป เดฏเดเดฎเดพเดจเดจเต) เด เดคเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดซเดฏเดฒเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด. เด เดคเดฟเดจเตเดถเตเดทเด, เดฎเดฑเตเดฑเตเดฐเต เดฌเตเดฐเดพเดเตเดเดฟเตฝ เดเดเตเดเตพ เดเดฐเต เดซเดฏเตฝ เดฎเดพเดคเตเดฐเด เดฎเดพเดฑเตเดฑเดฟ เดเดฐเต เดฒเดฏเดจ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด.
เดจเดฎเตเดเตเดเต เดฐเดฃเตเดเต เดเตเดธเตเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเด: เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเด เดซเดฏเดฒเดฟเตฝ เดเดฐเต เดชเดฟเดถเดเต เดเดณเตเดณเดชเตเดชเตเตพ เด เดคเต เดเดฒเตเดฒเดพเดคเตเดคเดชเตเดชเตเตพ. เดเดฆเตเดฏเด, เดเดฐเต เดชเดฟเดถเดเตเดณเตเดณ เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด.
เดฎเดพเดธเตเดฑเตเดฑเตผ เดฌเตเดฐเดพเดเตเดเดฟเตฝ เดเดฐเต เดซเดฏเตฝ เดเดฃเตเดเตเดจเตเดจเต เดชเดฑเดฏเดพเด Program.cs, เด
เดคเดฟเตฝ เดชเดฟเดถเดเตเดเตพ เด
เดเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเตเดฐเต เดฌเตเดฐเดพเดเตเดเดฟเตฝ เดกเตเดตเดฒเดชเตเดชเตผ เดคเตเดฑเตเดฑเดพเดฏ เดเตเดกเต เดเตเตผเดเตเดเตเดเดฏเตเด เดเดฐเต เดฒเดฏเดจ เด
เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เด
เดตเตป เดเดจเตเดคเต เดคเตเดฑเตเดฑเต เดเตเดฏเตเดคเต เดเดจเตเดจเดคเต เด
เดคเตเดฐ เดชเตเดฐเดงเดพเดจเดฎเดฒเตเดฒ, เดชเตเดฐเดงเดพเดจ เดเดพเดฐเตเดฏเด เด
เดคเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเต เดเดจเตเดจเดคเดพเดฃเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดฎเดฑเดจเตเดจเต เดเดฑเดฟเดฏเตเด (เด
เดคเต,
void MyAwesomeMethod(String name)
{
if (name == null)
new ArgumentNullException(....);
// do something
....
}
เดเดฐเต เดชเดฟเดถเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดคเดคเดฟเดจเตเดฑเต เดซเดฒเด เดจเตเดเตเดเดพเด. เดเดฐเต เดซเดฏเตฝ เดฎเดพเดคเตเดฐเดฎเต เดชเดพเดดเตโเดธเต เดเตเดฏเตโเดคเดฟเดเตเดเตเดณเตเดณเต เดเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดเดพเตป เดซเตเดฒเดพเดเต เดเตเตผเดคเตเดคเต -r pvs-studio-dotnet เดฒเตเดเตเดเต เดฒเตเดจเดฟเดฒเตเดเตเดเต:
เด
เดจเดฒเตเดธเตผ เดเดฐเต เดชเดฟเดถเดเต เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดคเดพเดฏเตเด เดถเดพเดเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเตเด เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต.
เดเดฐเต เดชเดฟเดถเดเต เดเตเดเดพเดคเต เดเดฆเดพเดนเดฐเดฃเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. เดเตเดกเต เดถเดฐเดฟเดฏเดพเดเตเดเตเดจเตเดจเต:
void MyAwesomeMethod(String name)
{
if (name == null)
throw new ArgumentNullException(....);
// do something
....
}
เด เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดฟเดถเดเดฒเดจ เดซเดฒเดเตเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเด:
เดจเดฎเตเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดชเดฟเดถเดเตเดเดณเตเดจเตเดจเตเด เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดเดพเดธเตเดเต เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดตเดฟเดเดฏเดฟเดเตเดเต, เด
เดคเดพเดฃเต เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเต.
เดคเตเดฐเตเดฎเดพเดจเด
เดถเดพเดเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดฎเตเดถเด เดเตเดกเต เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดตเตเด เดฎเดจเตเดนเดฐเดตเตเดฎเดพเดฃเต. เด เดคเดฟเดจเดพเตฝ เดจเดฟเดเตเดเตพ CI/CD เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเตผ เดเดเดฌเตเดกเต เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเตเดเตเดเต เดจเดจเตเดฆเดฟ.
เดเดเดเตเดฒเตเดทเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเตเดเตเดทเดเดฐเตเดฎเดพเดฏเดฟ เด เดฒเตเดเดจเด เดชเดเตเดเดฟเดเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดตเดฟเดตเตผเดคเตเดคเดจ เดฒเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด: Nikolay Mironov.
เด
เดตเดฒเดเดฌเด: www.habr.com