Using a FxCop badge on your GitHub repository

The use of badges on GitHub repositories helps us to promote good pratices about our code. Some amazing services like the Shileds.io can generate almost all badges you can imagine, but what about those badges where there is no such online service to perform this job? One common case is when you program with C# and want some FxCop badge but there is no online service to run FxCop.

BadgesSharp

To fill this gap I created the BadgesSharp service: http://badgessharp.apphb.com. BadgesSharp is a free service to generate badges that need some kind of input and processing before you can display them on GitHub repositories.

In the case of FxCop, we need to run it against our .NET code and send the result report to BadgesSharp and then the service will generate the FxCop badge.

Here is a small tutorial on how to get the FxCop badge in your GitHub repo:</p>

Install FxCop

If you don’t have it yet, download and install FxCop.

Run FxCop

"C:\Program Files (x86)\Microsoft Fxcop 10.0\FxCopCmd.exe" /project:[Your FxCop file].FxCop /out:fxcop-report.xml

The report will be saved to fxcop-report.xml

Generate FxCop badge

Download BadgesSharpCmd and run it:</p>

BadgesSharpCmd -o [your GitHub username] -r [your GitHub repository] -a %GITHUB_REPO_TOKEN% -b FxCop -c fxcop-report.xml

Note: you will need a GitHub personal token: https://github.com/settings/tokens.

More info at:https://badgessharp.apphb.com/Docs/GettingStarted

Show the badge at your GitHub repository

Edit your readme.md and add the line below:

![FxCop](https://badgessharp.apphb.com/badges/:owner/:repo/FxCop)

Sample badges:

How use it on your Continuous Integration?

Probably you’re using some continuous integration service, below are some samples:

AppVeyor

  • Add to your AppVeyor.yml file:
after_build:
        - cmd: >
        "C:\Program Files (x86)\Microsoft Fxcop 10.0\FxCopCmd.exe" /project:[Your FxCop file].FxCop /out:fxcop-report.xml

        BadgesSharpCmd -o [your GitHub username] -r [your GitHub repository] -a %GITHUB_REPO_TOKEN% -b FxCop -c fxcop-report.xml

TeamCity

  • Add the ‘FxCop’ step to your configuration (probably you already have it);
  • Add a final ‘Command Line’ step to your configuration:
    • Execute step: Even if some of the previous steps failed
    • Run: Custom script Custom script:
BadgesSharpCmd -o [your GitHub username] -r [your GitHub repository] -a %GITHUB_REPO_TOKEN% -b FxCop -c "%system.teamcity.build.tempDir%\fxcop-output-*\fxcop-result.xml"

Conclusion

That’s it! Now you have a FxCop badge to show on your GitHub repository.

BadgesSharp support others badges too: StyleCop, DupFinder and Plato.

If you like it, take a look on GitHub repository: https://github.com/giacomelli/BadgesSharp.

Written on October 26, 2015