{"id":19359766,"url":"https://github.com/codacy/codacy-engine-golang-seed","last_synced_at":"2025-04-23T11:32:53.182Z","repository":{"id":38297272,"uuid":"231436424","full_name":"codacy/codacy-engine-golang-seed","owner":"codacy","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-28T21:27:12.000Z","size":118,"stargazers_count":2,"open_issues_count":3,"forks_count":2,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-20T11:43:53.867Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codacy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-02T18:21:06.000Z","updated_at":"2024-09-18T09:26:03.000Z","dependencies_parsed_at":"2023-11-16T09:27:52.802Z","dependency_job_id":"8c291c80-ba80-467b-8de3-5c7d866e96d7","html_url":"https://github.com/codacy/codacy-engine-golang-seed","commit_stats":null,"previous_names":["codacy/codacy-golang-tools-engine"],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-engine-golang-seed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-engine-golang-seed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-engine-golang-seed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codacy%2Fcodacy-engine-golang-seed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codacy","download_url":"https://codeload.github.com/codacy/codacy-engine-golang-seed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250425577,"owners_count":21428582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:16:04.501Z","updated_at":"2025-04-23T11:32:52.844Z","avatar_url":"https://github.com/codacy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Codacy GoLang Tools Engine\n\n[![CircleCI](https://circleci.com/gh/codacy/codacy-engine-golang-seed.svg?style=svg)](https://circleci.com/gh/codacy/codacy-engine-golang-seed)\n\nFramework to help integration with external analysis GoLang tools at Codacy.\n\n## Usage\n\nAdd to your go tool dependencies:\n\n```bash\ngo get github.com/codacy/codacy-engine-golang-seed\n```\n\n\n### Tool Implementation\n\n\nIn order to use Golang engine seed, you must create a `struct` that implements `ToolImplementation` interface:\n\n```\n// ToolImplementation interface to implement the tool\ntype ToolImplementation interface {\n\tRun(tool Tool, sourceDir string) ([]Issue, error)\n}\n```\n\nThen, on the main function you just need to instantiate it and pass to engine's `StartTool` method.\n\nAs an example:\n\n```\n// GoTool tool implementation\ntype GoTool struct {\n}\n\n// Run runs the tool implementation\nfunc (i GoTool) Run(tool codacy.Tool, sourceDir string) ([]codacy.Issue, error) {\n    // implement tool\n    // ...\n\treturn result, nil\n}\n\nfunc main() {\n\timplementation := GoTool{}\n\n\tcodacy.StartTool(implementation)\n}\n\n```\n\n## Docs\n\n### How to integrate an external analysis tool on Codacy\n\nBy creating a docker and writing code to handle the tool invocation and output,\nyou can integrate the tool of your choice on Codacy!\n\n\u003e To know more about dockers, and how to write a docker file please refer to [https://docs.docker.com/reference/builder/](https://docs.docker.com/reference/builder/)\n\nIn this tutorial, we explain how you can integrate an analysis tool of your choice in Codacy.\nYou can check the code of an already implemented tool and, if you wish, fork it to start your own.\nYou are free to modify and use it for your own tools.\n\n#### Requirements\n\n* Docker definition with the tool you want to integrate\n* Define the documentation for the patterns provided by the tool\n\n## Test\n\nFollow the instructions at [codacy-plugins-test](https://github.com/codacy/codacy-plugins-test/blob/master/README.md#test-definition).\n\n## Submit the docker\n\n**Running the docker**\n```bash\ndocker run -t \\\n--net=none \\\n--privileged=false \\\n--cap-drop=ALL \\\n--user=docker \\\n--rm=true \\\n-v \u003cPATH-TO-FOLDER-WITH-FILES-TO-CHECK\u003e:/src:ro \\\n\u003cYOUR-DOCKER-NAME\u003e:\u003cYOUR-DOCKER-VERSION\u003e\n```\n\n**Docker restrictions**\n* Docker image size should not exceed 500MB\n* Docker should contain a non-root user named docker with UID/GID 2004\n* All the source code of the docker must be public\n* The docker base must officially be supported on DockerHub\n* Your docker must be provided in a repository through a public git host (ex: GitHub, Bitbucket, ...)\n\n**Docker submission**\n* To submit the docker you should send an email to support@codacy.com with the link to the git repository with your docker definition.\n* The docker will then be subjected to a review by our team and we will then contact you with more details.\n\nIf you have any question or suggestion regarding this guide please contact us at support@codacy.com.\n\n## What is Codacy\n\n[Codacy](https://www.codacy.com/) is an Automated Code Review Tool that monitors your technical debt, helps you improve your code quality, teaches best practices to your developers, and helps you save time in Code Reviews.\n\n### Among Codacy’s features\n\n* Identify new Static Analysis issues\n* Commit and Pull Request Analysis with GitHub, BitBucket/Stash, GitLab (and also direct git repositories)\n* Auto-comments on Commits and Pull Requests\n* Integrations with Slack, HipChat, Jira, YouTrack\n* Track issues in Code Style, Security, Error Proneness, Performance, Unused Code and other categories\n\nCodacy also helps keep track of Code Coverage, Code Duplication, and Code Complexity.\n\nCodacy supports PHP, Python, Ruby, Java, JavaScript, and Scala, among others.\n\n### Free for Open Source\n\nCodacy is free for Open Source projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodacy%2Fcodacy-engine-golang-seed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodacy%2Fcodacy-engine-golang-seed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodacy%2Fcodacy-engine-golang-seed/lists"}