{"id":17791001,"url":"https://github.com/catatsuy/notify_slack","last_synced_at":"2026-06-06T09:01:11.344Z","repository":{"id":25333054,"uuid":"103729523","full_name":"catatsuy/notify_slack","owner":"catatsuy","description":"To post a message to Slack from the command line","archived":false,"fork":false,"pushed_at":"2026-06-03T15:32:07.000Z","size":440,"stargazers_count":94,"open_issues_count":3,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-06-03T17:13:31.394Z","etag":null,"topics":["slack"],"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/catatsuy.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2017-09-16T06:07:34.000Z","updated_at":"2026-05-16T06:33:35.000Z","dependencies_parsed_at":"2023-01-14T02:33:30.011Z","dependency_job_id":"82e4d1de-fcc9-43a1-a64c-39e1d3a55600","html_url":"https://github.com/catatsuy/notify_slack","commit_stats":{"total_commits":154,"total_committers":5,"mean_commits":30.8,"dds":0.0714285714285714,"last_synced_commit":"73684571ac1a2e73acbaf50b97248096f9e1bd00"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/catatsuy/notify_slack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catatsuy%2Fnotify_slack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catatsuy%2Fnotify_slack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catatsuy%2Fnotify_slack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catatsuy%2Fnotify_slack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catatsuy","download_url":"https://codeload.github.com/catatsuy/notify_slack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catatsuy%2Fnotify_slack/sbom","scorecard":{"id":144669,"data":{"date":"2025-08-11","repo":{"name":"github.com/catatsuy/notify_slack","commit":"69a304a6e90afe2fcd4df2cf3ee2078528462906"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/security.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/catatsuy/notify_slack/security.yml/master?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":10,"reason":"15 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/go.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/security.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:7"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.5.2 not signed: https://api.github.com/repos/catatsuy/notify_slack/releases/223774969","Warn: release artifact v0.5.1 not signed: https://api.github.com/repos/catatsuy/notify_slack/releases/159452485","Warn: release artifact v0.5.0 not signed: https://api.github.com/repos/catatsuy/notify_slack/releases/153120302","Warn: release artifact v0.4.14 not signed: https://api.github.com/repos/catatsuy/notify_slack/releases/123204025","Warn: release artifact v0.4.13 not signed: https://api.github.com/repos/catatsuy/notify_slack/releases/71639808","Warn: release artifact v0.5.2 does not have provenance: https://api.github.com/repos/catatsuy/notify_slack/releases/223774969","Warn: release artifact v0.5.1 does not have provenance: https://api.github.com/repos/catatsuy/notify_slack/releases/159452485","Warn: release artifact v0.5.0 does not have provenance: https://api.github.com/repos/catatsuy/notify_slack/releases/153120302","Warn: release artifact v0.4.14 does not have provenance: https://api.github.com/repos/catatsuy/notify_slack/releases/123204025","Warn: release artifact v0.4.13 does not have provenance: https://api.github.com/repos/catatsuy/notify_slack/releases/71639808"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T09:09:25.025Z","repository_id":25333054,"created_at":"2025-08-16T09:09:25.025Z","updated_at":"2025-08-16T09:09:25.025Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33975476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"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":["slack"],"created_at":"2024-10-27T10:48:45.231Z","updated_at":"2026-06-06T09:01:11.168Z","avatar_url":"https://github.com/catatsuy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# notify_slack\n\nThe 'notify_slack' command allows you to post messages to Slack from the command line. Simply pipe the standard output of any command to 'notify_slack', and it will send the output to Slack at a rate of once per second (this interval can be modified using the `-interval` option).\n\nhttps://user-images.githubusercontent.com/1249910/155869750-48f7500f-4481-49b6-9d65-b93205f2b94f.mp4\n\n(same movie) https://www.youtube.com/watch?v=wmKSr9Aoz-Y\n\n## Takumi, the AI offensive security engineer\n\n\u003ca href=\"https://flatt.tech/oss/gmo/trampoline\" target=\"_blank\"\u003e\u003cimg src=\"https://flatt.tech/assets/images/badges/gmo-oss.svg\" height=\"24px\"/\u003e\u003c/a\u003e\n\n## Installation\n\nIt is recommended that you use the binaries available on [GitHub Releases](https://github.com/catatsuy/notify_slack/releases). It is advisable to download and use the latest version.\n\nIf you have a Go language development environment set up, you can also compile and install the 'notify_slack' tools on your own.\n\n```\ngo install github.com/catatsuy/notify_slack/cmd/notify_slack@latest\n```\n\nTo build and modify the 'notify_slack' tools for development purposes, you can use the `make` command.\n\n```\nmake\n```\n\nIf you use the `make` command to build and install the 'notify_slack' tool, the output of the `notify_slack -version` command will be the git commit ID of the current version.\n\n## usage\n\nTo post messages to Slack using the 'notify_slack' tool, you can either specify the necessary settings as command line options or in a TOML configuration file. If both options are provided, the command line settings will take precedence.\n\n```sh\n./bin/output | ./bin/notify_slack\n```\n\nThe 'output' tool is used for testing purposes and allows you to buffer and then post messages to Slack.\n\n``` sh\n./bin/notify_slack README.md\n```\n\nTo use the Slack Web API and post a file as a snippet, you will need to provide a `token` and `channel`. If you want to upload a snippet via standard input, you must specify the `-snippet` flag. You can also specify a `filename` to change the name of the file on Slack.\n\n``` sh\ngit diff | ./bin/notify_slack -snippet -filename git.diff\n```\n\nThe Slack API allows you to specify the filetype of a file when posting it as a snippet. You can also use the `-filetype` flag to specify the file type. If this flag is not provided, the file type will be automatically determined based on the file's extension. It is important to ensure that the extension of the file accurately reflects its type.\n\n[file type | Slack](https://api.slack.com/types/file#file_types)\n\n\n### CLI options\n\n```\n-c string\n      config file name\n-channel string\n      specify channel (unavailable for new Incoming Webhooks)\n-channel-id string\n      specify channel id (for uploading a file)\n-debug\n      debug mode (for developers)\n-filename string\n      specify a file name (for uploading to snippet)\n-filetype string\n      [compatible] specify a filetype for uploading to snippet. This option is maintained for compatibility. Please use -snippet-type instead.\n-icon-emoji string\n      specify icon emoji (unavailable for new Incoming Webhooks)\n-interval duration\n      interval (default 1s)\n-slack-url string\n      slack url (Incoming Webhooks URL)\n-snippet\n      switch to snippet uploading mode\n-snippet-type string\n      specify a snippet_type (for uploading to snippet)\n-token string\n      token (for uploading to snippet)\n-username string\n      specify username (unavailable for new Incoming Webhooks)\n-version\n      Print version information and quit\n```\n\n### toml configuration file\n\nBy default, check the following files in order.\n\n1. a file specified with `-c`\n1. `$HOME/.notify_slack.toml`\n1. `$HOME/etc/notify_slack.toml`\n1. `/etc/notify_slack.toml`\n\nThe toml file contains the following information.\n\n```toml:notify_slack.toml\n[slack]\nurl = \"https://hooks.slack.com/services/**\"\ntoken = \"xoxp-xxxxx\"\nchannel = \"#general\"\nchannel_id = \"C12345678\"\nusername = \"tester\"\nicon_emoji = \":rocket:\"\ninterval = \"1s\"\n```\n\n### Note\n\n  * You will need to specify a url if you want to post messages to Slack as text\n    * You can use the following options to customize your message when posting to Slack as text: `channel`, `username`, `icon_emoji`, and `interval`.\n    * Due to a recent change in the specification for Incoming Webhooks, it is currently not possible to override the `channel`, `username`, and `icon_emoji` options when posting to Slack. For more information, please refer to [this resource](https://api.slack.com/messaging/webhooks#advanced_message_formatting)\n    * You can create an Incoming Webhooks URL at https://slack.com/services/new/incoming-webhook\n  * To post a file as a snippet to Slack, you will need to provide both a `token` and a `channel_id`.\n    * The `username` and `icon_emoji` options will be ignored when posting a file as a snippet to Slack.\n    * For instructions on how to create a token, please see the next section.\n    * You cannot specify a channel because the slack api support only the `channel_id`.\n    * If you don't specify `channel_id`, the file will be private. So, **if you need to post a file public, you must specify `channel_id`**.\n    * The Slack API can cause delays, so posting might take longer.\n\n### Getting Your Slack API Token\n\nYou need to create a token if you use snippet uploading mode.\n\nFor the most up-to-date and easy-to-follow instructions on how to obtain your Slack API bot token, please refer to the official Slack guide:\n\n[How to quickly get and use a Slack API bot token | Slack](https://api.slack.com/tutorials/tracks/getting-a-token)\n\n### (Advanced) Environment Variables\n\nSome settings for the Slack API can be provided using environment variables.\n\n```\nNOTIFY_SLACK_WEBHOOK_URL\nNOTIFY_SLACK_TOKEN\nNOTIFY_SLACK_CHANNEL\nNOTIFY_SLACK_CHANNEL_ID\nNOTIFY_SLACK_USERNAME\nNOTIFY_SLACK_ICON_EMOJI\nNOTIFY_SLACK_INTERVAL\n```\n\nUsing environment variables to specify settings for the 'notify_slack' tool can be useful if you are deploying it in a containerized environment. It allows you to avoid the need for a configuration file and simplifies the process of managing and updating settings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatatsuy%2Fnotify_slack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatatsuy%2Fnotify_slack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatatsuy%2Fnotify_slack/lists"}