{"id":21389597,"url":"https://github.com/cakecrusher/linkedpush","last_synced_at":"2025-07-13T16:30:31.497Z","repository":{"id":62081166,"uuid":"549925906","full_name":"CakeCrusher/linkedpush","owner":"CakeCrusher","description":"Converts your GitHub commits to LinkedIn posts, to maximize exposure.","archived":false,"fork":false,"pushed_at":"2022-12-11T01:56:11.000Z","size":83,"stargazers_count":8,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-10T20:27:59.759Z","etag":null,"topics":["api","devops","github","linkedin","marketing","oauth"],"latest_commit_sha":null,"homepage":"https://linkedpush.herokuapp.com/","language":"JavaScript","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/CakeCrusher.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}},"created_at":"2022-10-12T00:23:01.000Z","updated_at":"2022-12-03T23:19:50.000Z","dependencies_parsed_at":"2022-10-26T04:32:42.352Z","dependency_job_id":null,"html_url":"https://github.com/CakeCrusher/linkedpush","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CakeCrusher%2Flinkedpush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CakeCrusher%2Flinkedpush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CakeCrusher%2Flinkedpush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CakeCrusher%2Flinkedpush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CakeCrusher","download_url":"https://codeload.github.com/CakeCrusher/linkedpush/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225896548,"owners_count":17541517,"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":["api","devops","github","linkedin","marketing","oauth"],"created_at":"2024-11-22T12:27:22.245Z","updated_at":"2024-11-22T12:27:22.731Z","avatar_url":"https://github.com/CakeCrusher.png","language":"JavaScript","readme":"# linkedpush ([site](https://linkedpush.herokuapp.com/))\n\nConverts your GitHub pushes to LinkedIn posts, to maximize exposure.\n\nhttps://user-images.githubusercontent.com/37946988/200144242-604c271f-534e-4859-ba87-286d290bdf54.mp4\n\n![aoc-post](https://user-images.githubusercontent.com/37946988/205468927-33796a42-a7ad-4979-b6fa-129e40ef7c14.png)\n\n## How it works\n\n[Sequence diagrams](https://www.figma.com/file/KCPxw3HuMQmCsTS3MwhgaZ/linkedpush?node-id=0%3A1)\n\n### deployed\n\n![sequence-diagram deployed](https://user-images.githubusercontent.com/37946988/200139291-9c947a24-f468-456d-94f8-e738790d8d7c.png)\n\n### master\n\n![sequence-diagram master](https://user-images.githubusercontent.com/37946988/196039623-5bc97e03-4ad2-4800-8354-ad84c42a4c0b.JPG)\n\n## Setup\n\n### 0. Clone this repository.\n\n### 1. `.env` setup.\n\nThe application `PORT` is set to default `3000`. You can change it if you want.\n\n1. Rename the `.env-template` file to `.env`.\n2. Expose (deploy) this repository to the internet using through whatever means you prefer. I recommend [ngrok](https://ngrok.com/), you must initiate it to your `PORT`. This link will be your `REDIRECT_URL`, you will need it for the following steps as well.\n\n### 2. Create a LinkedIn App.\n\n1. Create a LinkedIn developer account.\n2. Create a [new app](https://www.linkedin.com/developers/apps).\n   ![linkedin-1](https://user-images.githubusercontent.com/37946988/196014978-47752272-380f-4d26-8c94-f5ff9efbc0d1.png)\n3. Fill in the required fields (you will need a company page, you can set it up [here](https://www.linkedin.com/company/setup/new/) if you don't have one).\n4. Request access to all 3 products.\n   ![linkedin-2](https://user-images.githubusercontent.com/37946988/196014993-5cf8b017-79a5-4fb8-9ca7-5576130490c9.png)\n5. Navigate to \"Auth\". Add the \"Client ID\" and the \"Client Secret\" to the `.env` file accordingly. Add a redirect URL which will be your exposed root URL + `/api/auth`. \"Update\" the redirect URL.\n   ![linkedin-3](https://user-images.githubusercontent.com/37946988/196014998-bdedeb8b-7579-4143-b452-7061cacc1cf4.png)\n\n### 3. Create a GitHub webhook on your repository.\n\n1. Navigate to your repository's settings.\n   ![github-1](https://user-images.githubusercontent.com/37946988/196015015-a153509a-c871-4b7f-971c-da3c32736fe0.png)\n2. Navigate to \"Webhooks\".\n   ![github-2](https://user-images.githubusercontent.com/37946988/196015021-ed12b6ed-92dd-4e34-940a-0fc561a6fb35.png)\n3. Add a new webhook.\n   ![github-3](https://user-images.githubusercontent.com/37946988/196015025-58602a5c-734e-48b0-a5a6-338070bd3246.png)\n4. Set the \"Payload URL\" to your exposed root URL + `/api/publish`. Change \"Content Type\" to \"application/json\". \"Add webhook\" to submit.\n   ![github-4](https://user-images.githubusercontent.com/37946988/196016752-ec1ddc46-6deb-466d-9faa-99230929d032.png)\n\n### 4. linkedpush setup.\n\n1. Run `yarn install` or `npm install` to install the dependencies.\n2. Run `yarn dev` or `npm run dev` to start the server.\n3. Navigate to your exposed root URL + `/api/auth-url`.\n4. Sign in to LinkedIn and authorize the app.\n\n### 5. You're set 🥳!\n\n1. Simply commit with the `@linkedpush` string in the commit text (don't worry `@linkedpush` will be removed from the post text).\n2. Push.\n3. Your commit message will be transformed into a LinkedIn post!\n\n## Troubleshooting\n\n- Your token is stored in the server's memory, so if you restart the server, you will need to re-authorize the app.\n- There are certain characters that are not allowed when posting via the API so the post will not go through. Here are some of them: `\\n`, `\\r`, `\\t`, possibly more. The following characters are automatically removed by linkedpush so that the post goes through: `(`,`)`,`@`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcakecrusher%2Flinkedpush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcakecrusher%2Flinkedpush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcakecrusher%2Flinkedpush/lists"}