{"id":15654220,"url":"https://github.com/trstringer/azblogfilter","last_synced_at":"2025-04-30T22:47:29.239Z","repository":{"id":43747680,"uuid":"290642178","full_name":"trstringer/azblogfilter","owner":"trstringer","description":"Retrieve Azure blog update posts with the capability to filter on keywords in the title or categories of posts. Allows for easy automation!","archived":false,"fork":false,"pushed_at":"2022-02-20T05:55:12.000Z","size":6670,"stargazers_count":28,"open_issues_count":0,"forks_count":17,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-25T12:05:01.802Z","etag":null,"topics":["azure"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trstringer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-08-27T01:18:59.000Z","updated_at":"2025-01-07T09:42:25.000Z","dependencies_parsed_at":"2022-08-21T21:00:41.522Z","dependency_job_id":null,"html_url":"https://github.com/trstringer/azblogfilter","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trstringer%2Fazblogfilter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trstringer%2Fazblogfilter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trstringer%2Fazblogfilter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trstringer%2Fazblogfilter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trstringer","download_url":"https://codeload.github.com/trstringer/azblogfilter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242718451,"owners_count":20174339,"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":["azure"],"created_at":"2024-10-03T12:49:59.609Z","updated_at":"2025-03-09T16:30:44.098Z","avatar_url":"https://github.com/trstringer.png","language":"Go","readme":"# azblogfilter - Azure Blog Filter\n\n![ci](https://github.com/trstringer/azblogfilter/workflows/ci/badge.svg)\n\n## Description\n\nFetch and filter Azure blog posts (announcements and updates) based off of interests.\n\nWhy? Because I am interested in getting Azure news, but the cloud is a big (and noisy) place. I only want the news I care about most.\n\n## Installation\n\nYou can get the binary from the [latest release](https://github.com/trstringer/azblogfilter/releases).\n\nOtherwise, if you want to run from trunk you could git clone this repo and `make install`.\n\nIf you are a systemd user, you can install a systemd unit and timer to routinely check for blog updates by running `make install-systemd`.\n\n## Usage\n\nazblogfilter filters blog posts either by a cached value (good for the usage of \"what are the new blog posts that have been published since I last checked?\" This is the mechanism used in the systemd service). Or it can use `--since` to go back in the past for blog posts without using cache. The `--since` parameter takes a systemd time span (`man 7 systemd.time`). E.g. to get all blog posts in the past 3 days you could specify `--since -3d`.\n\n```\nFilter posts by keywords and categories.\nYou can also specify the time filter by using\na built-in caching mechanism or by specifying\nthe time manually\n\nExamples:\n\tGet all blog posts in the past 7 days.\n\n\t$ azblogfilter --since -7d\n\n\tGet all blog posts since last run that have\n\tKubernetes or Linux in the title.\n\n\t$ azblogfilter --cache --keywords \"kubernetes,linux\"\n\n\tGet all blog posts that have Linux in the title or\n\thave the DevOps category.\n\n\t$ azblogfilter --cache --keywords linux --categories devops\n\nUsage:\n  azblogfilter [flags]\n\nFlags:\n      --cache                   use cached value\n      --cache-location string   location for cache (default \"~/.azblogfilter\")\n  -c, --categories string       categories filter (case insensitive)\n      --config string           config file (default is $HOME/.azblogfilter.yaml)\n  -h, --help                    help for azblogfilter\n  -k, --keywords string         keywords filter (case insensitive)\n  -o, --output string           output format, json or csv (default \"json\")\n  -s, --since string            filter post with systemd time (man 7 systemd.time)\n  -v, --version                 get version\n```\n\n### Config\n\nazblogfilter uses a config-based filtering mechanism. The config file (optional) is located at `~/.azblogfilter.yaml`. It should be a list of `keywords` and `categories`.\n\n**Keywords** filter the Azure blog entries by title. **Categories** filter the blog entries by category/tag. Here is a sample config:\n\n```yaml\nkeywords:\n  - linux\n  - kubernetes\n  - postgres\n  - github\n  - devops\n  - repo\n  - pipeline\n  - container\n  - storage\n  - blob\n  - virtual machine\n  - aks\n\ncategories:\n  - devops\n  - developer\n  - announcements\n```\n\n## Notifications\n\nI use `dunstify` for notifications. If you run `make install-notify` it will place this script in a path location. It is used, for me, from a systemd unit to notify if there is a new blog entry.\n\n![Notifications sample](./assets/example_notification.png)\n\n## Development\n\n#### Create a release\n\n1. Add changes to `./CHANGELOG.md`.\n1. Change the version in `./cmd/version.go` (leave `LOCAL`, just change the `major.minor.build` part).\n1. Push to upstream: `git add . \u0026\u0026 git commit -m \"commit message\" \u0026\u0026 git push origin master`.\n1. Run `make release` to create the git tag.\n1. Push to upstream: `git push --tags origin master`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrstringer%2Fazblogfilter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrstringer%2Fazblogfilter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrstringer%2Fazblogfilter/lists"}