{"id":13600540,"url":"https://github.com/flows-network/github-fork-notifier","last_synced_at":"2025-04-11T00:31:26.305Z","repository":{"id":158066261,"uuid":"617218606","full_name":"flows-network/github-fork-notifier","owner":"flows-network","description":"When a fork for your GitHub repo, send me a Slack message and save the fork to Airtable","archived":false,"fork":false,"pushed_at":"2023-06-06T20:16:00.000Z","size":38,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-07T03:41:45.657Z","etag":null,"topics":["airtable","automation","github-api","slack","workflow-automation"],"latest_commit_sha":null,"homepage":"https://flows.network/","language":"Rust","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/flows-network.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}},"created_at":"2023-03-21T23:38:08.000Z","updated_at":"2023-03-27T02:48:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"5443b353-4b75-4ffb-8572-bfa40988bd48","html_url":"https://github.com/flows-network/github-fork-notifier","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/flows-network%2Fgithub-fork-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flows-network%2Fgithub-fork-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flows-network%2Fgithub-fork-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flows-network%2Fgithub-fork-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flows-network","download_url":"https://codeload.github.com/flows-network/github-fork-notifier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248322267,"owners_count":21084334,"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":["airtable","automation","github-api","slack","workflow-automation"],"created_at":"2024-08-01T18:00:41.609Z","updated_at":"2025-04-11T00:31:25.991Z","avatar_url":"https://github.com/flows-network.png","language":"Rust","funding_links":[],"categories":["GitHub"],"sub_categories":[],"readme":"# \u003cp align=\"center\"\u003eGitHub Fork Notifier\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://discord.gg/ccZn9ZMfFf\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/chat-Discord-7289DA?logo=discord\" alt=\"flows.network Discord\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/flows_network\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Twitter-1DA1F2?logo=twitter\u0026amp;logoColor=white\" alt=\"flows.network Twitter\"\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://flows.network/flow/new\"\u003e\n    \u003cimg src=\"https://img.shields.io/website?up_message=deploy\u0026url=https%3A%2F%2Fflows.network%2Fflow%2Fnew\" alt=\"Create a flow\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n[Deploy this function on flows.network](#deploy-the-github-fork-notifier), and you will get an automated workflow: When someone forks your GitHub repo, you will get a Slack message, meawhile this fork record is saved to a form on Airtable. It helps DevRels and Community Managers to stay on top of the growth of their GitHub communities. \n\n![Github fork to slack](https://user-images.githubusercontent.com/45785633/227115653-935c616b-2881-4832-a53c-850f63a0f322.png)\n\n![Save GitHub fork to Airtable ](https://user-images.githubusercontent.com/45785633/227122019-258041fc-ce2c-4819-9648-8fc51fee5782.png)\n\n\n## Prerequisite \n* A Slack Account\n* An Airtable account, an [Airtable API Key](https://airtable.com/account) and also a base to record the new forks. For the form, you can simply [copy the template base](https://airtable.com/shrwhFUgnz97Uf4nr). \n\n## Deploy the GitHub fork notifier\n\nTo create this fork notifier, we will use [flows.network](https://flows.network/), a serverless platform that makes deploying your own app quick and easy in just 3 steps.\n\n### Fork this repo and cutomize the code\n\nFork [this repo](https://github.com/flows-network/chatgpt-github-app/) and customize the code based on your needs. Since this function involes three SaaS integrations, so we need to change the code as the following.\n\n1. GitHub: \n* Replace `alabulei1` with your own personal id；\n* Replace `WasmEdge` and `WasmEdge` with your own GitHub repo you want to monitor for the fork data；\n\n```\npub async fn run() {\n    let login = \"alabulei1\";\n    let owner = \"WasmEdge\";\n    let repo = \"WasmEdge\";\n\n    listen_to_event(owner, repo, vec![\"fork\"], handler).await;\n}\n```\n2. Airtable: Change the parameters for Airtable based on the code comment. This is where you save the new fork.\n```\nasync fn handler(payload: EventPayload) {\n    let account: \u0026str = \"github\"; // The name that you will name your Airtable API key in the SaaS configuration step. You can get this from Airtable.\n    let base_id: \u0026str = \"appNEswczILgUsxML\"; // This is the base where you want to record new forks. You can get this from Airtable easily. Please refer to https://support.airtable.com/docs/finding-airtable-ids#finding-ids-in-airtable-api\n    let table_name: \u0026str = \"fork\"; // This the table name in the above base. If you're using the template that we provide, then don't need to change this.\n````\n\n3. Slack: Replace `secondstate` and `github-status` with your own Slack workaspace and channel. This is where you get the new fork message.\n\n```\nlet text = format!(\"{} forked your {}\\n{}\", name, html_url, time);\nsend_message_to_channel(\"secondstate\", \"github-status\", text);\n```\n\n### Deploy the code on flow.network\n\nNext, let us deploy this repo on flows.network.\n\n1. Sign up for an accoun on [flows.network](https://flows.network/). It's a free platform for deploying automation workflows.\n2. Click on the \"Create a Flow\" button to start deploying this function\n3. Authenticate the [flows.network](https://flows.network/) to access the `github-fork-notifier` repo you just forked. \n\n\u003cimg width=\"886\" alt=\"image\" src=\"https://user-images.githubusercontent.com/45785633/227131173-26a1da68-74d0-479e-88d3-1184f6db0755.png\"\u003e\n\n4. Click the Deploy button to deploy your function.\n\n### Configure SaaS integrations\n\nAfter that, the flows.network will direct you to configure the SaaS integrations required by your flow.\n\n\u003cimg width=\"1452\" alt=\"image\" src=\"https://user-images.githubusercontent.com/45785633/227131712-f6356a60-830d-4980-b563-458da0816333.png\"\u003e\n\nHere we can see, we need to configue three SaaS integrations.\n\n1. Click the \"Connect/+ Add new authentication\" button to authenticate your Slack account. You'll be redirected to a new page where you must grant [flows.network](https://flows.network/) permission to install the `flows-network-integration` bot on your workspace. This workspace is the one you changed in the code above.\n\n2. Click the \"Connect/+ Add new authentication\" button to authenticate your Airtable account. You'll be redirected to a new page where you can copy and paste your Airtable API key and then name the key. **Note that the name you enter here should be the same as the name you changed in the code above.**\n\n\u003cimg width=\"741\" alt=\"image\" src=\"https://user-images.githubusercontent.com/45785633/227132305-b093dded-6569-4c29-8026-55a3ec9bc62b.png\"\u003e\n\n3. Click the \"Connect/+ Add new authentication\" button to authenticate your GitHub account. You'll be redirected to a new page where you must grant [flows.network](https://flows.network/) permission to install the `flows-network-integration` bot on the repo that you changed in the code above.\n\nAfter that, click the Check button to see your flow details. As soon as the flow function's status becomes `ready` and the flow's status becomes `running`, the flow goes live. Whenever a GitHub user forks your repo, you will get a Slack notifitaion and a new record in your Airtable.\n\u003cimg width=\"1183\" alt=\"image\" src=\"https://user-images.githubusercontent.com/45785633/227132839-d4008845-4a67-46dc-af14-90e06ad96e12.png\"\u003e\n\n\u003e [flows.network](https://flows.network/) is still in its early stages. We would love to hear your feedback!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflows-network%2Fgithub-fork-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflows-network%2Fgithub-fork-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflows-network%2Fgithub-fork-notifier/lists"}