{"id":16865314,"url":"https://github.com/lesmiscore/issutter","last_synced_at":"2026-04-16T04:31:32.849Z","repository":{"id":147866821,"uuid":"112594038","full_name":"Lesmiscore/Issutter","owner":"Lesmiscore","description":"Use Twitter from GitHub's Issue","archived":false,"fork":false,"pushed_at":"2017-12-02T06:24:42.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T20:51:05.634Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Groovy","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/Lesmiscore.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":"2017-11-30T09:46:08.000Z","updated_at":"2017-11-30T15:59:26.000Z","dependencies_parsed_at":"2023-05-27T18:15:14.365Z","dependency_job_id":null,"html_url":"https://github.com/Lesmiscore/Issutter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lesmiscore/Issutter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lesmiscore%2FIssutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lesmiscore%2FIssutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lesmiscore%2FIssutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lesmiscore%2FIssutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lesmiscore","download_url":"https://codeload.github.com/Lesmiscore/Issutter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lesmiscore%2FIssutter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261703169,"owners_count":23196911,"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":"2024-10-13T14:46:40.610Z","updated_at":"2026-04-16T04:31:27.815Z","avatar_url":"https://github.com/Lesmiscore.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Issutter\nUse Twitter from GitHub's Issue\n\n# Usage\n\n## Launch Webhook server\n1. `git clone https://github.com/nao20010128nao/Issutter`\n2. `./dep.sh` (Required only one time)\n3. Decide a secret password\n4. Hash it with `echo \u003cCHECK PASSWORD\u003e | sha256d`\n5. Edit line 12 of `webhook.groovy`\n6. `./webhook.groovy`\n7. The server will start on port 8080\n\n\n## Get Twitter OAuth token\nGo to [`api.twitter.com`](https://api.twitter.com) to get one.    \nYou will need `Consumer Key`, `Consumer Secret`, `Access Token`, and `Access Token Secret`.\n\n## Create a GitHub repository with `README` or `LICENSE`\nYou need at least one file because `Issues` won't appear without commits.\n\n## Configure GitHub webhook\n1. Go `Settings` -\u003e `Webhook` on the repository\n\n### Run when Issue is created\n1. The URL should be:    \n   `http://\u003cHOST\u003e/created?check=\u003cCHECK PASSWORD\u003e\u0026githubUser=\u003cGITHUB USER\u003e\u0026githubPass=\u003cGITHUB PASSWORD\u003e\u0026twitterAk=\u003cTWITTER ACCESS TOKEN\u003e\u0026twitterAs=\u003cTWITTER ACCESS TOKEN SECRET\u003e\u0026twitterCk=\u003cTWITTER CONSUMER KEY\u003e\u0026twitterCs=\u003cTWITTER CONSUMER SECRET\u003e`\n2. Type anything for `Secret`\n3. Choose only `Issues` for events.\n\n### Run when Issue is commented\n1. The URL should be:    \n   `http://\u003cHOST\u003e/commented?check=\u003cCHECK PASSWORD\u003e\u0026githubUser=\u003cGITHUB USER\u003e\u0026githubPass=\u003cGITHUB PASSWORD\u003e\u0026twitterAk=\u003cTWITTER ACCESS TOKEN\u003e\u0026twitterAs=\u003cTWITTER ACCESS TOKEN SECRET\u003e\u0026twitterCk=\u003cTWITTER CONSUMER KEY\u003e\u0026twitterCs=\u003cTWITTER CONSUMER SECRET\u003e`\n2. Type anything for `Secret`\n3. Choose only `Issue Comments` for events.\n\n# What to Issue\nThe text will be parsed as Markdown and all styles will be **stripped**.    \nYou need to put one command per issue/comment.    \nAny errors and results will be notified as a Issue comment.    \nThe Issue text and comment is basically consist of following structure:\n\n```\n\u003cCOMMAND\u003e    \n\u003cARGUMENTS\u003e    \n\u003cARGUMENTS\u003e    \n```\n\nYou need at least 2 spaces to break a line, like this Markdown does.\n\n`{CONSTANT}` means a constant text.    \n`\u003cREQUIRED\u003e` means required text.    \n`[OPTIONAL]` means optional text.\n\n## Check my timeline\n\n```\n{timeline}\n[N]\n```\n\n`N` means number of tweets to display. Default is `20`.    \n\n## Check my last N tweets\n\n```\n{mylast}\n[N]\n```\n\n`N` means number of tweets to display. Default is `20`.    \n\n## Single Tweet\n\n```\n{tweet}\n\u003cTEXT\u003e\n```\n\n`TEXT` means a text to tweet.    \n\n## Do multiple tweet and chain as replies\n\n```\n{rentwi}\n\u003cTEXT\u003e\n{%%%%%%%...}\n\u003cTEXT\u003e\n{%%%%%%%...}\n...\n```\n\n`TEXT` means a text to tweet.   \n`%%%%%%%...` means end of a tweet. Requires more than 3 character of `%`.   \nRepeat `TEXT` and `%%%%%%%...` to do multiple tweet.\n\n## Check someone's last N tweets\n\n```\n{oneslast}\n\u003cACCOUNT\u003e\n[N]\n```\n\n`ACCOUNT` means an account to display.    \n`N` means number of tweets to display. Default is `20`.    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flesmiscore%2Fissutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flesmiscore%2Fissutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flesmiscore%2Fissutter/lists"}