{"id":13582413,"url":"https://github.com/kaneshin/gate","last_synced_at":"2025-12-24T14:19:41.402Z","repository":{"id":57503900,"uuid":"70335032","full_name":"kaneshin/gate","owner":"kaneshin","description":"🌉 Gate is a proxy server for notification written in Go","archived":false,"fork":false,"pushed_at":"2021-01-03T14:37:17.000Z","size":323,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-05T22:41:13.404Z","etag":null,"topics":["facebook","go","golang","line","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/kaneshin.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":"2016-10-08T14:04:16.000Z","updated_at":"2021-03-12T08:26:31.000Z","dependencies_parsed_at":"2022-08-27T23:53:26.227Z","dependency_job_id":null,"html_url":"https://github.com/kaneshin/gate","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaneshin%2Fgate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaneshin%2Fgate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaneshin%2Fgate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaneshin%2Fgate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaneshin","download_url":"https://codeload.github.com/kaneshin/gate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247495730,"owners_count":20948101,"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":["facebook","go","golang","line","slack"],"created_at":"2024-08-01T15:02:41.658Z","updated_at":"2025-12-24T14:19:41.397Z","avatar_url":"https://github.com/kaneshin.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Gate\n\nGate posts a message in Slack and LINE.\n\n## Installation\n\nTo compile the Gate binaries from source, clone the Gate repository. Then, navigate to the new directory.\n\n```shell\n$ git clone https://github.com/kaneshin/gate.git\n$ cd gate\n```\n\nCompile the `gate` and `gatecli` which will be stored it in $GOPATH/bin.\n\n```shell\n$ go install\n```\n\nFinally, make sure that the gate and gatecli binaries are available on your PATH.\n\n## Setup\n\nGate loads its configuration in ~/.config/gate/config.json as a default. You need to create it then setup your channels' configuration:\n\n```json\n{\n  \"gate\": {\n    \"scheme\": \"http\",\n    \"host\": \"0.0.0.0\",\n    \"port\": 5731,\n    \"client\": {\n      \"default\": \"slack.channel-1\"\n    }\n  },\n  \"platforms\": {\n    \"slack\": {\n      \"channel-1\": \"[YOUR-INCOMING-URL]\",\n      \"channel-2\": \"[YOUR-INCOMING-URL]\"\n    },\n    \"line\": {\n      \"service-1\": \"[YOUR-ACCESS-TOKEN]\"\n    },\n    \"pixela\": {\n      \"username/graph-id\": \"[YOUR-TOKEN]\"\n    }\n  }\n}\n```\n\n## Usage\n\n### gate\n\nRun the gate server. If neeeded, run the command with argument of configuration path.\n\n```shell\n$ gate -config=/path/to/config.json\n```\n\n### gatecli\n\nFirst, you need to install the configuration of gate to run `gatecli` via network. You will get the partial configuration of config.json.\n\n```shell\n$ curl -sL http://0.0.0.0:5731/config/cli.json \u003e ~/.config/gate/cli.json\n```\n\nThen, run `gatecli` to post the platforms.\n\n```shell\n$ echo \"foobar\" | gatecli slack.channel-1\n$ echo \"foobar\" | gatecli # You can send a message without argument for the default target in cli.json\n```\n\nIf you'd like to parse another cli.json. Please run the command with arguments like the below.\n\n```\n$ echo \"foobar\" | gatecli -config=/path/to/cli.json slack.channel-2\n```\n\n#### Slack\n\nYou need to get an incoming webhook url what you want to post message before run it.\n\n```shell\n$ echo \"Hello world!\" | gatecli slack.channel-1\n```\n\n#### LINE\n\nYou need to create a service what you want to post message before run it.\n\n```shell\n$ echo \"Hello world!\" | gatecli line.service-1\n```\n\n#### Pixela\n\nYou need to create a graph what you want to update before run it.\n\nInput a quantity from STDIN, then pass it to `gatecli`.\n\n```shell\n# i, inc, or increment\n$ echo i | gatecli pixela.username/graph-id # to increment of the day\n\n# d, dec, or decrement\n$ echo d | gatecli pixela.username/graph-id # to decrement of the day\n\n$ echo 5 | gatecli pixela.username/graph-id # to assign the quantity of the day\n```\n\n## License\n\n[The MIT License (MIT)](http://kaneshin.mit-license.org/)\n\n## Author\n\nShintaro Kaneko \u003ckaneshin0120@gmail.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaneshin%2Fgate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaneshin%2Fgate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaneshin%2Fgate/lists"}