{"id":24552012,"url":"https://github.com/mlabs-haskell/ghappy","last_synced_at":"2025-07-11T18:34:03.280Z","repository":{"id":63187117,"uuid":"565832666","full_name":"mlabs-haskell/GHAppy","owner":"mlabs-haskell","description":"A utility to pull issues and create Audit Reports.","archived":false,"fork":false,"pushed_at":"2024-03-14T11:32:12.000Z","size":150,"stargazers_count":4,"open_issues_count":7,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-15T22:42:29.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","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/mlabs-haskell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-14T12:27:02.000Z","updated_at":"2023-01-31T20:56:59.000Z","dependencies_parsed_at":"2024-03-14T12:50:40.220Z","dependency_job_id":null,"html_url":"https://github.com/mlabs-haskell/GHAppy","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mlabs-haskell/GHAppy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabs-haskell%2FGHAppy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabs-haskell%2FGHAppy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabs-haskell%2FGHAppy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabs-haskell%2FGHAppy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlabs-haskell","download_url":"https://codeload.github.com/mlabs-haskell/GHAppy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabs-haskell%2FGHAppy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264870432,"owners_count":23676225,"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":"2025-01-23T01:19:43.518Z","updated_at":"2025-07-11T18:34:03.236Z","avatar_url":"https://github.com/mlabs-haskell.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GHAPPy\n\nSmall utility library to help creating documents (e.g. Audit Reports) working\nwith `Pandoc` and GitHub issues and the GitHub API.\n\n## How to use\n\nThere are two main ways of using GHAppy, namely as a library and as an application.\n\n### As a binary\n\nTo use GHAppy as a binary there are a few options:\n\n1. First option is cloning the repository, running `cabal install` and then run\n   it via `~/.cabal/bin/GHAppy`.\n\n2. Second way is running it via `nix` with `nix run github:mlabs-haskell/GHAppy`\n   .\n\nTo see an example of the input file necessary for the library have a look at\nthe provided [./example/report2.yaml](./example/report2.yaml).\n\n### As a library\n\n- The library can be added as a dependency to your project via\n`cabal.project`. Example:\n\n```yaml\n-- GHAppy\nsource-repository-package\n   type:     git\n   location: https://github.com/mlabs-haskell/GHAppy\n```\n\n- Next you would define your document using the `freer-monad` api as can be seen\nin [the provided example](./app/Example.hs).\n\n- You must have have a GH API key to be able to pull the issues - have a look at\n[./run.sh](./run.sh) how this key is provided to the executable.\n\n- Provide the executable with the correct arguments - and you're done.\n\n## Notes and future features\n\n- At the moment the template file used by the Pandoc conversion from `md` to\n  `pdf` is hard coded - this will change.\n\n- [x] The documents could be created via parsing a `yaml` config file - thus\n  decoupled from building the library. This is being considered as a next\n  feature.\n\n## Developing\n\n- we use `pre-commit-hooks` to ensure code quality.\n\n- to ensure formatting and linting, enter a `devShell` by using `nix develop` or\n  `direnv` (`direnv allow`)\n\n- each commit will run all formatting and linting checks that are also run by\n  the `CI`\n\n- to run the hooks by hand (most of the tools will apply the proposed changes),\n  use `pre-commit run --all` (for more information use `pre-commit --help`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabs-haskell%2Fghappy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlabs-haskell%2Fghappy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabs-haskell%2Fghappy/lists"}