{"id":23139065,"url":"https://github.com/circuit/node-linkify","last_synced_at":"2025-04-04T10:11:37.997Z","repository":{"id":79431009,"uuid":"70644320","full_name":"circuit/node-linkify","owner":"circuit","description":"Replace specific text in message via regex. E.g. JIRA titles with an href to that JIRA page","archived":false,"fork":false,"pushed_at":"2019-07-26T14:32:32.000Z","size":573,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-02-09T20:33:39.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/circuit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-10-11T23:41:19.000Z","updated_at":"2019-09-13T08:43:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"a46b7480-9461-44e3-8036-f85286899dd3","html_url":"https://github.com/circuit/node-linkify","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fnode-linkify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fnode-linkify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fnode-linkify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circuit%2Fnode-linkify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circuit","download_url":"https://codeload.github.com/circuit/node-linkify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157283,"owners_count":20893220,"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-12-17T13:13:12.332Z","updated_at":"2025-04-04T10:11:37.985Z","avatar_url":"https://github.com/circuit.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-linkify\n\nThis node.js web server application parses the text messages sent by the user and converts predefined text with links. The predefined text and its replacement link are configurable for the app.\n\n* node.js web server application for users to activate Circuit Linkify\n* Circuit OAuth2 REST API to authenticate and authorize the user (Authorization Grant Flow)\n* Circuit node.js SDK to logon on behalf of the user, subscribe to text messages and update text messages\n\nYour post:\n\n\u003cimg src=\"public/before.jpg\" width=\"600px\"\u003e\n\nUpdated by Circuit Linkify on your behalf:\n\n\u003cimg src=\"public/after.jpg\" width=\"600px\"\u003e\n\n\n## Requirements\n* [node 4.5+](http://nodejs.org/download/)\n* [circuit node.js module](https://circuitsandbox.net/sdk/)\n\n## Getting Started\n\n```bash\n    git clone https://github.com/circuit/node-linkify.git\n    cd node-linkify\n    cp config.json.template config.json\n```\n\nEdit config.json\n* Configure the circuit domain (e.g. circuitsandbox.net)\n* Add OAuth2 settings (client_id, client_secret, scope)\n* Configure the applications domain and port\n* Configure the linkify regex\n\n```bash\n    \"circuit\": {\n        \"domain\": \"circuitsandbox.net\",\n        \"client_id\": \"\u003cyour client_id\u003e\",\n        \"client_secret\": \"\u003cyour client_secret\u003e\",\n        \"scope\": \"READ_USER_PROFILE,READ_CONVERSATIONS,WRTIE_CONVERSATIONS\"\n    },\n    \"app\": {\n        \"domain\": \"http://localhost\",\n        \"port\": 7100,\n        \"sdkLogLevel\": \"debug\"\n    },\n    \"linkify\": [\n        {\n            \"title\": \"Jira (ANS, AAC and CRI links)\",\n            \"id\": \"jira\",\n            \"search\": \"(ANS-[0-9]{1,5}|AAC-[0-9]{1,5}|CRI-[0-9]{1,5})\",\n            \"replace\": \"https://\u003cyour jira server\u003e/browse/$1\"\n        },\n        {\n            \"title\": \"Gerrit (patch number)\",\n            \"id\": \"gerrit\",\n            \"search\": \"([4-6][0-9]{4})\",\n            \"replace\": \"https://\u003cyour gerrit server\u003e/#/c/$1\"\n        }\n    ]\n}\n``` \n \nRun the sample application with \n \n```bash\n    npm install\n    node index.js\n``` \n\n## Demo video\n[![ScreenShot](https://circuit.github.io/images/node-linkify.jpg)](https://circuit.github.io/videos/node-linkify.webm)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fnode-linkify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircuit%2Fnode-linkify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircuit%2Fnode-linkify/lists"}