{"id":20990509,"url":"https://github.com/brejoc/filtra","last_synced_at":"2025-10-07T22:32:47.161Z","repository":{"id":55647395,"uuid":"193504146","full_name":"brejoc/filtra","owner":"brejoc","description":"Filtra aims to extract information like lead and cycle times from Github repos for (but not limited to) projects that are doing Kanban.","archived":false,"fork":false,"pushed_at":"2023-11-30T13:39:34.000Z","size":3996,"stargazers_count":9,"open_issues_count":15,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-14T20:41:20.196Z","etag":null,"topics":["cycle-time","github","hacktoberfest","kanban","lead-time","metrics"],"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/brejoc.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-24T12:47:33.000Z","updated_at":"2023-11-03T04:53:26.000Z","dependencies_parsed_at":"2024-06-19T09:52:53.630Z","dependency_job_id":"a6afb203-b03b-4475-afbc-c5a8dad02f26","html_url":"https://github.com/brejoc/filtra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brejoc/filtra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brejoc%2Ffiltra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brejoc%2Ffiltra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brejoc%2Ffiltra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brejoc%2Ffiltra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brejoc","download_url":"https://codeload.github.com/brejoc/filtra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brejoc%2Ffiltra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278859504,"owners_count":26058495,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cycle-time","github","hacktoberfest","kanban","lead-time","metrics"],"created_at":"2024-11-19T06:33:34.627Z","updated_at":"2025-10-07T22:32:47.133Z","avatar_url":"https://github.com/brejoc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Filtra\n\nFiltra aims to extract information like lead and cycle times from Github repos for (but not limited to) projects that are doing Kanban.\n\n\n# The Architecture\n\nFiltra fetches all issues from a Github repository and provides the gathered and enriched (lead and cycle times) data as metrics. Those metrics are then stored in a PostgreSQL database and visualized with Grafana.\n\n## Prerequisites\n\nTo get the most out of Filtra, a baseline needs to be established.\n\n1. The project is using Github projects aka boards with multiple columns.\n2. One of the columns is for planned issues. Those are not yet \"in progress\".\n3. There might be a blocked column for issues people can't work on.\n4. Lead time starts with the creation of an issue.\n5. Cycle time starts when an issue was first moved out of the column for planned issues.\n6. Support issues are identified with the `l3` label.\n8. Bugs are identified with the `bugs` label.\n\nCurrently the planned and blocked column can be set in the [config file](https://github.com/brejoc/filtra/blob/master/config.toml).\n\nThe labels for bugs and support issues will also soon be configurable.\n\n## Work In Progress\n\nGithub scraping is mostly done. Some metrics tweaking is still needed and additional metrics could also be gathered. Grafana is not yet automagically showing any graphs. If you know how to make this happen, please ping me or open a pull request.\n\nIf you've got ideas or want ot see additional features or metrics, head over to the [issues](https://github.com/brejoc/filtra/issues).\n\n# Hacking on Filtra\n\nStep 1 is only is only needed for \u003e= Go 1.10. With Go Modules dependencies are vendorized.\n\n1. Fetching the dependencies: `go get -d -v .`\n2. Running Filtra: `go run .`\n3. Access the metrics: `http://localhost:8080/metrics`\n\nAll of the metrics we are interested in start with `gh_`.\n\n\n# Deployment\n\nYou can use Docker Compose to get Filtra running. But please check the [config file](https://github.com/brejoc/filtra/blob/master/config.toml) first. You should also have your Github token exported as the environment varible `$GITHUB_TOKEN`. But of course you can also paste it into the `docker-compose.yml`.\n\n```\nmkdir grafana_data\ndocker-compose up\n```\n\n\n1. Add the PostgreSQL data source.\n2. Add the charts you want to see.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrejoc%2Ffiltra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrejoc%2Ffiltra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrejoc%2Ffiltra/lists"}