{"id":32780421,"url":"https://github.com/pmleczek/eas-ssh-keys-example","last_synced_at":"2026-05-14T21:02:44.771Z","repository":{"id":318970693,"uuid":"1077127957","full_name":"pmleczek/eas-ssh-keys-example","owner":"pmleczek","description":"An example of setting up SSH keys for GitHub on Expo EAS","archived":false,"fork":false,"pushed_at":"2025-10-27T15:33:33.000Z","size":693,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-04T18:06:36.051Z","etag":null,"topics":["eas","expo","ssh-keys"],"latest_commit_sha":null,"homepage":"https://blog.swmansion.com/setting-up-github-ssh-key-on-expo-eas-e678c134bf3f","language":"TypeScript","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/pmleczek.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-15T20:20:00.000Z","updated_at":"2025-10-27T15:33:36.000Z","dependencies_parsed_at":"2025-10-17T13:49:05.259Z","dependency_job_id":null,"html_url":"https://github.com/pmleczek/eas-ssh-keys-example","commit_stats":null,"previous_names":["pmleczek/eas-ssh-keys-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pmleczek/eas-ssh-keys-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmleczek%2Feas-ssh-keys-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmleczek%2Feas-ssh-keys-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmleczek%2Feas-ssh-keys-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmleczek%2Feas-ssh-keys-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmleczek","download_url":"https://codeload.github.com/pmleczek/eas-ssh-keys-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmleczek%2Feas-ssh-keys-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33043249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["eas","expo","ssh-keys"],"created_at":"2025-11-04T18:01:09.719Z","updated_at":"2026-05-14T21:02:44.765Z","avatar_url":"https://github.com/pmleczek.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Setting up GitHub SSH keys on Expo EAS\n\n### This repository contains the source code for tutorial at: https://blog.swmansion.com/setting-up-github-ssh-key-on-expo-eas-e678c134bf3f\n\n## 📄 Overview\n\n[Expo Application Services (EAS)](https://expo.dev/eas) is a set of powerful and highly customizable tools for building your React Native apps, automating the CI/CD and streamlined submissions to the app stores. It offers out-of-the-box integration with GitHub, allowing you to e.g. run CI/CD workflows on each pull request or push to the specific branch. But sometimes we might just need to perform some operations on a repository without the full integration, which would require us to set up access to GitHub on the EAS runner. This example explores three different ways of configuring such access on Expo EAS.\n\n## 🗂️ Project structure\n\n\u003cpre\u003e\n.\n├── \u003ca href=\"./.eas\"\u003e.eas/\u003c/a\u003e # Expo EAS configuration files\n│   ├── \u003ca href=\"./.eas/build\"\u003ebuild/\u003c/a\u003e # Custom build configurations\n│   │   ├── \u003ca href=\"./.eas/build/build-ios.yml\"\u003ecustom-build.yml\u003c/a\u003e # Custom build configuration\n│   ├── \u003ca href=\"./.eas/setupGithubAccess\"\u003esetupGithubAccess/\u003c/a\u003e # EAS TypeScript function\n│   │   ├── \u003ca href=\"./.eas/workflows/build\"\u003ebuild/\u003c/a\u003e # Built artifacts of the function\n│   │   ├── \u003ca href=\"./.eas/workflows/src/\"\u003esrc/\u003c/a\u003e # Function sources\n│   │   │   ├── \u003ca href=\"./.eas/workflows/src/index.ts\"\u003eindex.ts\u003c/a\u003e # Function entrypoint\n├── \u003ca href=\"./app\"\u003eapp/\u003c/a\u003e # Expo app router files\n├── \u003ca href=\"./assets\"\u003eassets/\u003c/a\u003e # App assets\n├── \u003ca href=\"./components\"\u003ecomponents/\u003c/a\u003e # App components\n├── \u003ca href=\"./constants\"\u003econstants/\u003c/a\u003e # App constants\n├── \u003ca href=\"./hooks\"\u003ehooks/\u003c/a\u003e # App hooks\n├── \u003ca href=\"./scripts\"\u003escripts/\u003c/a\u003e # Scripts\n│   ├── \u003ca href=\"./scripts/new-tag.sh\"\u003enew-tag.sh/\u003c/a\u003e # Script releasing new tag in the repository\n│   ├── \u003ca href=\"./scripts/reset-project.js\"\u003ereset-project.js\u003c/a\u003e # Expo script for resetting the project\n│   ├── \u003ca href=\"./scripts/setup-github-access.sh\"\u003esetup-github-access.sh/\u003c/a\u003e # Script setting up SSH key for GitHub access on EAS\n├── \u003ca href=\"./app.json\"\u003eapp.json/\u003c/a\u003e # Expo project configuration file\n├── \u003ca href=\"./eas.json\"\u003eeas.json/\u003c/a\u003e # Expo EAS configuration file\n\u003c/pre\u003e\n\n## 🔨 Building the project\n\n### ⚙️ Preqrequisites\n\nBefore building this example please make sure that:\n\n- You have correct EAS `projectId` set up in `app.json`\n\n- You have configured the SSH key both on GitHub and as an Expo EAS environment variable – instructions for those steps can be found in the tutorial\n\n- Replaced the repo name and URL with your data in `scripts/new-tag.sh`\n\n- Specified the correct Git email address and user name either in `scripts/setup-github-access.sh` or in `.eas/build/setupGithubAccess/src/index.ts` depending on your choice\n\n### 🏗️ Rebuilding the TypeScript function\n\nIf you plan to use and made any changes to the TypeScript function make sure to rebuild it by cd-ing into its directory and running the following command:\n\n```bash\ncd .eas/build/setupGithubAccess\n\nnpm run build\n```\n\n### ☁️ Building on EAS cloud\n\nRun the following command to start an EAS cloud build:\n\n```\neas build -p \u003cplatform: ios or android\u003e -e \u003cbuild profile\u003e\n\n# e.g.\n\neas build -p android -e development\n```\n\n**Note:** The build can also be run locally by appending the `--local` flag to the above command, e.g:\n\n```\neas build -p android -e development --local\n```\n\n## [Community Discord](https://discord.swmansion.com)\n\n[Join the Software Mansion Community Discord](https://discord.swmansion.com) to chat about this example and other Software Mansion solutions.\n\n## This project is created by [Software Mansion](https://swmansion.com)\n\n[![swm](https://logo.swmansion.com/logo?color=white\u0026variant=desktop\u0026width=150 'Software Mansion')](https://swmansion.com)\n\nSince 2012 [Software Mansion](https://swmansion.com) is a software agency with\nexperience in building web and mobile apps. We are Core React Native\nContributors and experts in dealing with all kinds of React Native issues. We\ncan help you build your next dream product –\n[Hire us](https://swmansion.com/contact/projects).\n\nMade by [@software-mansion](https://github.com/software-mansion) 💙\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmleczek%2Feas-ssh-keys-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmleczek%2Feas-ssh-keys-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmleczek%2Feas-ssh-keys-example/lists"}