{"id":13820970,"url":"https://github.com/MartinHeinz/go-github-app","last_synced_at":"2025-05-16T10:33:52.831Z","repository":{"id":44781735,"uuid":"442786447","full_name":"MartinHeinz/go-github-app","owner":"MartinHeinz","description":"Template for building GitHub Apps in Go.","archived":false,"fork":false,"pushed_at":"2023-01-06T10:00:45.000Z","size":51,"stargazers_count":68,"open_issues_count":0,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-19T20:46:57.065Z","etag":null,"topics":["github-api","github-app","go","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MartinHeinz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-29T13:47:04.000Z","updated_at":"2024-11-06T13:47:31.000Z","dependencies_parsed_at":"2023-02-05T20:30:51.489Z","dependency_job_id":null,"html_url":"https://github.com/MartinHeinz/go-github-app","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHeinz%2Fgo-github-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHeinz%2Fgo-github-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHeinz%2Fgo-github-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHeinz%2Fgo-github-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinHeinz","download_url":"https://codeload.github.com/MartinHeinz/go-github-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254513003,"owners_count":22083487,"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":["github-api","github-app","go","golang"],"created_at":"2024-08-04T08:01:12.683Z","updated_at":"2025-05-16T10:33:47.823Z","avatar_url":"https://github.com/MartinHeinz.png","language":"Go","funding_links":["https://ko-fi.com/K3K6F4XN6"],"categories":["Go"],"sub_categories":[],"readme":"# Template for GitHub Apps built with Golang\n\n[![Build, Test and Lint Action](https://github.com/MartinHeinz/go-github-app/workflows/Build,%20Test,%20Lint/badge.svg)](https://github.com/MartinHeinz/go-github-app/workflows/Build,%20Test,%20Lint/badge.svg)\n[![Release Action](https://github.com/MartinHeinz/go-github-app/workflows/Release/badge.svg)](https://github.com/https://github.com/MartinHeinz/go-github-app/workflows/Release/badge.svg)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=MartinHeinz_go-github-app\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=MartinHeinz_go-github-app)\n[![Maintainability](https://api.codeclimate.com/v1/badges/05a671e6cc9b25ddd1e5/maintainability)](https://codeclimate.com/github/MartinHeinz/go-github-app/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/05a671e6cc9b25ddd1e5/test_coverage)](https://codeclimate.com/github/MartinHeinz/go-github-app/test_coverage)\n[![Go Report Card](https://goreportcard.com/badge/github.com/MartinHeinz/go-github-app)](https://goreportcard.com/report/github.com/MartinHeinz/go-github-app)\n\n--------------\n\nIf you find this useful, you can support me on Ko-Fi (Donations are always appreciated, but never required):\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/K3K6F4XN6)\n\n## Blog Posts - More Information About This Repo\n\nYou can find more information about this project/repository and how to use it in following blog post:\n\n[Building GitHub Apps with Golang](https://martinheinz.dev/blog/65)\n\n## Quick Start\n\nTo use this repository as starter for your project you can run configure_project.sh script, which sets up all variables and file names. This way you can avoid configuring and renaming things yourself:\n\n```bash\n./configure_project.sh \\\n    APP_ID=\"54321\" \\\n    INSTALLATION_ID=\"987654321\" \\\n    WEBHOOK_SECRET=\"verysecret\" \\\n    KEY_PATH=\"./github_key.pem\" \\\n    REGISTRY=\"ghcr.io/\u003cGITHUB_USERNAME\u003e/go-github-app\"\n```\n\n## Running\n\n```bash\nmake container  # Builds containerized application\nmake run        # Runs container at localhost\n\n# From another terminal:\ncurl http://localhost:8080/api/v1/github/pullrequests/octocat/hello-world\n```\n\n## Testing\n\nTest are run inside container image, equivalent to the container in which the application runs. To run tests:\n\n```bash\nmake test\n\nRunning tests:\n?   \tgithub.com/MartinHeinz/go-github-app/cmd/app\t[no test files]\nok  \tgithub.com/MartinHeinz/go-github-app/cmd/app/apis\t0.010s\n?   \tgithub.com/MartinHeinz/go-github-app/cmd/app/config\t[no test files]\n?   \tgithub.com/MartinHeinz/go-github-app/cmd/app/httputil\t[no test files]\n?   \tgithub.com/MartinHeinz/go-github-app/cmd/app/test_data\t[no test files]\n?   \tgithub.com/MartinHeinz/go-github-app/cmd/app/utils\t[no test files]\nok  \tgithub.com/MartinHeinz/go-github-app/cmd/app/webhooks\t0.006s\n?   \tgithub.com/MartinHeinz/go-github-app/pkg\t[no test files]\n\nChecking gofmt: PASS\n\nChecking go vet: PASS\n```\n\n## CI/CD\n\nPredefined CI/CD uses GitHub Actions:\n\n- _Build, Test, Lint_ Workflow (`build.yaml`):\n    - Builds binary and container image\n    - Runs tests and generates code coverage report\n    - Performs SonarCloud code analysis\n    - Sends coverage starts to CodeClimate\n\n- _Release_ Workflow (`release.yaml`, triggered on _tag_ creation):\n    - Builds container image\n    - Pushes the image to GitHub container registry\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMartinHeinz%2Fgo-github-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMartinHeinz%2Fgo-github-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMartinHeinz%2Fgo-github-app/lists"}