mirror of
https://github.com/selfxyz/self.git
synced 2026-01-09 14:48:06 -05:00
* Refactor NFC scanner tests to use a global variable for platform OS, allowing dynamic switching between iOS and Android during tests. This change improves test isolation and avoids hoisting issues with jest.mock. * feat: add GitHub App token generation action for self repositories - Introduced a new action to generate GitHub App tokens for accessing repositories within the selfxyz organization. - Updated multiple workflows to utilize the new action for token generation, ensuring secure access to private repositories during CI processes. - Modified Podfile and scripts to support authentication using the generated token, enhancing the cloning of private modules in CI environments. * chore: enhance CI workflows with Git authentication for CocoaPods - Updated multiple CI workflows to include a step for configuring Git authentication for CocoaPods, ensuring secure access to private repositories without embedding credentials in URLs. - Added masking for sensitive tokens in logs to enhance security during CI processes. - Modified the Podfile to avoid printing authentication details in CI logs, improving overall security practices. * chore: enhance CI workflows with optional Git authentication configuration - Added new inputs to the GitHub action for generating GitHub tokens, allowing optional configuration of a ~/.netrc entry for Git authentication. - Updated multiple CI workflows to utilize the new configuration, improving security and simplifying access to private repositories during builds. - Removed redundant Git authentication steps from workflows, streamlining the CI process while maintaining secure access to necessary resources. * chore: update Podfile for secure Git authentication in CI - Modified the Podfile to enhance security by avoiding the embedding of credentials in URLs for accessing the NFCPassportReader repository during CI processes. - Added comments to guide developers on using workflow-provided authentication methods, improving overall security practices in the project.
57 lines
2.0 KiB
YAML
57 lines
2.0 KiB
YAML
name: "Generate GitHub App Token"
|
|
description: "Generates a GitHub App token for accessing repositories in the selfxyz organization"
|
|
|
|
inputs:
|
|
app-id:
|
|
description: "The GitHub App ID"
|
|
required: true
|
|
private-key:
|
|
description: "The GitHub App private key"
|
|
required: true
|
|
configure-netrc:
|
|
description: "If true, writes a ~/.netrc entry for github.com using the generated token (useful for CocoaPods / git HTTPS fetches)"
|
|
required: false
|
|
default: "false"
|
|
netrc-machine:
|
|
description: "The machine hostname to write into ~/.netrc (default: github.com)"
|
|
required: false
|
|
default: "github.com"
|
|
owner:
|
|
description: "The owner (organization) of the repositories"
|
|
required: false
|
|
default: "selfxyz"
|
|
repositories:
|
|
description: "Comma-separated list of repository names to grant access to"
|
|
required: false
|
|
default: "NFCPassportReader,android-passport-nfc-reader,react-native-passport-reader,mobile-sdk-native"
|
|
|
|
outputs:
|
|
token:
|
|
description: "The generated GitHub App installation token"
|
|
value: ${{ steps.app-token.outputs.token }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Generate GitHub App Token
|
|
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
|
|
id: app-token
|
|
with:
|
|
app-id: ${{ inputs.app-id }}
|
|
private-key: ${{ inputs.private-key }}
|
|
owner: ${{ inputs.owner }}
|
|
repositories: ${{ inputs.repositories }}
|
|
- name: Configure Git auth via ~/.netrc (optional)
|
|
if: ${{ inputs.configure-netrc == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
TOKEN="${{ steps.app-token.outputs.token }}"
|
|
MACHINE="${{ inputs.netrc-machine }}"
|
|
|
|
# Mask the token in logs defensively (it shouldn't print, but this protects against future edits).
|
|
echo "::add-mask::${TOKEN}"
|
|
|
|
printf "machine %s\n login x-access-token\n password %s\n" "${MACHINE}" "${TOKEN}" > "${HOME}/.netrc"
|
|
chmod 600 "${HOME}/.netrc"
|