Chez Apple, les développeurs peuvent proposer leurs applications en version bêta avant de les mettre sur l’AppStore. Pour y accéder, outre avoir TestFlight sur son périphérique et un code d’invitation, il faut surtout que la limite de bêta-testeurs ne soit pas atteinte.
Si jamais on arrive trop tard, EloneMusk (… ouais… je sais…) a créé Test-Flight-Subscription pour être alerté par email de l’ouverture d’accès à des bêtas.
L’email et le mot de passe à renseigner dans la configuration ne sont PAS ceux de votre compte Apple mais bien ceux d’un compte GMAIL (hardcodé avec Gmail dans app.py).
Il faudra utiliser un compte Gmail avec un mot de passe d’application (chercher app password dans les paramètres Gmail), accessible une fois le 2FA activé sur le dit compte si ce n’est pas encore fait.
services:
testflight-checker:
build:
context: https://github.com/EloneMusk/Test-Flight-Subscription.git
dockerfile: Dockerfile
container_name: testflight-checker
restart: always
ports:
- 7654:8000
environment:
EMAIL_USER: moi@gmail.com
EMAIL_PASSWORD: ent iur henf ued

Pratique.
Pour découvrir des applications en bêta, on peut par exemple parcourir le SubReddit dédié ou le dépôt GitHub Awesome Testflight App List.
Il a trouvé sa place dans tout mon petit bordel ^^

Et… j’y ajoute mon workflow de mise à jour automatique si le dépôt GitHub évoluait, ce qui donne :
services:
testflight-checker:
build:
context: https://github.com/EloneMusk/Test-Flight-Subscription.git
dockerfile: Dockerfile
container_name: testflight-checker
restart: always
ports:
- 7654:8000
environment:
environment:
EMAIL_USER: moi@gmail.com
EMAIL_PASSWORD: ent iur henf ued
testflight-autoupdate:
image: alpine:latest
container_name: testflight-autoupdate
restart: always
environment:
GITHUB_REPO: https://github.com/EloneMusk/Test-Flight-Subscription.git
DISCORD_WEBHOOK: https://canary.discord.com/api/webhooks/xxx/xxx
POLL_INTERVAL: 172800 # secondes
SERVICE_NAME: testflight-checker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /tmp:/repo
command: >
sh -c "
apk add --no-cache git bash curl docker-cli jq &&
mkdir -p /repo &&
cd /repo &&
git clone --depth 1 \$GITHUB_REPO . || true &&
REPO_NAME=\$(basename -s .git \$GITHUB_REPO) &&
DEFAULT_BRANCH=\$(curl -s https://api.github.com/repos/\$(echo \$GITHUB_REPO | sed 's|.*/||;s|.git||') | jq -r .default_branch) &&
git fetch origin \$DEFAULT_BRANCH &&
git checkout \$DEFAULT_BRANCH &&
LAST_COMMIT=\$(git rev-parse HEAD) &&
while true; do
git fetch origin \$DEFAULT_BRANCH &&
NEW_COMMIT=\$(git rev-parse origin/\$DEFAULT_BRANCH) &&
if [ \"\$NEW_COMMIT\" != \"\$LAST_COMMIT\" ]; then
echo \"[$(date)] Nouveau commit détecté sur \$DEFAULT_BRANCH, rebuild...\"
git reset --hard origin/\$DEFAULT_BRANCH &&
docker compose -f /repo/docker-compose.yml build \$SERVICE_NAME &&
docker compose -f /repo/docker-compose.yml up -d \$SERVICE_NAME &&
REPO_LINK=\$GITHUB_REPO &&
COMMIT_LINK=\"\$GITHUB_REPO/commit/\$NEW_COMMIT\" &&
curl -H 'Content-Type: application/json' -X POST -d '{\"content\": \"\$REPO_NAME mis à jour automatiquement !\nBranche : \$DEFAULT_BRANCH\nCommit : \$NEW_COMMIT\nDépôt : <\$REPO_LINK|\$REPO_NAME>\nLien du commit : <\$COMMIT_LINK|voir commit>\"}' \$DISCORD_WEBHOOK &&
LAST_COMMIT=\$NEW_COMMIT
else
echo \"[$(date)] Aucun changement sur \$DEFAULT_BRANCH.\"
fi
sleep \$POLL_INTERVAL
done
"
networks: {}
![]()

