Skip to content

Commit e0848b2

Browse files
authored
Merge pull request #115 from appodeal/feat/auto-generate-readme-deps
feat: auto-generate README dependency lists from Wizard API
2 parents a8bafe7 + f72b44c commit e0848b2

3 files changed

Lines changed: 450 additions & 18 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Update README dependencies
2+
3+
# Keeps the Appodeal dependency lists in README.md in sync with the live
4+
# Dependencies Wizard API (URL from the APPODEAL_API_URL repository variable).
5+
# The SDK version comes from pubspec.yaml, so a version bump (push) refreshes the
6+
# lists; the daily schedule catches adapter-version changes published between releases.
7+
8+
on:
9+
workflow_dispatch: {}
10+
push:
11+
branches: [main]
12+
paths:
13+
- 'pubspec.yaml'
14+
- 'scripts/update-readme-deps.mjs'
15+
schedule:
16+
# Daily at 06:00 UTC.
17+
- cron: '0 6 * * *'
18+
19+
permissions:
20+
contents: write
21+
pull-requests: write
22+
23+
concurrency:
24+
group: update-readme-deps
25+
cancel-in-progress: true
26+
27+
jobs:
28+
update:
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
33+
- uses: actions/setup-node@v4
34+
with:
35+
node-version: 20
36+
37+
- name: Regenerate README dependency lists
38+
# URL comes only from the APPODEAL_API_URL repository variable
39+
# (Settings → Secrets and variables → Actions → Variables). No hardcoded fallback —
40+
# if the variable is unset the script fails loudly.
41+
env:
42+
APPODEAL_API_URL: ${{ vars.APPODEAL_API_URL }}
43+
run: node scripts/update-readme-deps.mjs
44+
45+
- name: Create PR if README changed
46+
# main is protected (changes must go through a PR), so the bot opens a PR as
47+
# github-actions[bot]. A different identity (the App below) approves and merges it.
48+
id: pr
49+
env:
50+
GH_TOKEN: ${{ github.token }}
51+
run: |
52+
if git diff --quiet -- README.md; then
53+
echo "README dependencies already up to date."
54+
echo "created=false" >> "$GITHUB_OUTPUT"
55+
exit 0
56+
fi
57+
BRANCH="chore/update-readme-deps-${{ github.run_id }}-${{ github.run_attempt }}"
58+
git config user.name "github-actions[bot]"
59+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
60+
git switch -c "$BRANCH"
61+
git add README.md
62+
git commit -m "chore: sync README dependency lists from Wizard API"
63+
git push origin "$BRANCH"
64+
gh pr create --base main --head "$BRANCH" \
65+
--title "chore: sync README dependency lists from Wizard API" \
66+
--body "Automated update from the Appodeal Dependencies Wizard API."
67+
echo "branch=$BRANCH" >> "$GITHUB_OUTPUT"
68+
echo "created=true" >> "$GITHUB_OUTPUT"
69+
70+
- name: Generate App token for approval
71+
# A second identity is required: github-actions[bot] (the PR author) cannot approve
72+
# its own PR. The GitHub App acts as the reviewer whose approval branch protection counts.
73+
if: steps.pr.outputs.created == 'true'
74+
id: app-token
75+
uses: actions/create-github-app-token@v1
76+
with:
77+
app-id: ${{ secrets.APP_ID }}
78+
private-key: ${{ secrets.APP_PRIVATE_KEY }}
79+
80+
- name: Approve and merge PR
81+
if: steps.pr.outputs.created == 'true'
82+
env:
83+
GH_TOKEN: ${{ steps.app-token.outputs.token }}
84+
run: |
85+
gh pr review "${{ steps.pr.outputs.branch }}" --approve
86+
gh pr merge "${{ steps.pr.outputs.branch }}" --squash --delete-branch

README.md

Lines changed: 201 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -73,30 +73,114 @@ $ flutter pub get
7373
1. Go to `ios/` folder and open *Podfile*
7474
2. Add Appodeal adapters. Add pods into `./ios/Podfile`:
7575

76+
<!-- appodeal-deps:ios:start -->
7677
```ruby
77-
source 'https://cdn.cocoapods.org'
78+
platform :ios, '15.0'
79+
7880
source 'https://github.com/appodeal/CocoaPods.git'
7981
source 'https://github.com/bidon-io/CocoaPods-Specs.git'
80-
81-
platform :ios, '13.0'
82+
source 'https://cdn.cocoapods.org'
8283

8384
use_frameworks!
8485

8586
def appodeal
86-
pod 'Appodeal', '4.1.0'
87-
# Add adapter pods here.
88-
# Use the Appodeal Dependencies Wizard to generate an up-to-date list:
89-
# https://docs.appodeal.com/ios/advanced/configure-mediated-networks
87+
pod 'Appodeal', '4.1.0'
88+
# AppLovin MAX
89+
pod 'AppLovinMediationAmazonAdMarketplaceAdapter', '5.3.2.0'
90+
pod 'AppLovinMediationBidMachineAdapter', '3.6.1.0.0'
91+
pod 'AppLovinMediationBigoAdsAdapter', '5.0.0.0'
92+
pod 'AppLovinMediationByteDanceAdapter', '7.7.0.7.0'
93+
pod 'AppLovinMediationChartboostAdapter', '9.10.1.0'
94+
pod 'AppLovinMediationFacebookAdapter', '6.20.1.0'
95+
pod 'AppLovinMediationFyberAdapter', '8.4.1.0'
96+
pod 'AppLovinMediationGoogleAdManagerAdapter', '12.13.0.0'
97+
pod 'AppLovinMediationGoogleAdapter', '12.13.0.0'
98+
pod 'AppLovinMediationInMobiAdapter', '11.1.0.0'
99+
pod 'AppLovinMediationIronSourceAdapter', '9.1.0.0.0'
100+
pod 'AppLovinMediationMintegralAdapter', '7.7.9.0.0'
101+
pod 'AppLovinMediationMobileFuseAdapter', '1.9.3.0'
102+
pod 'AppLovinMediationMolocoAdapter', '4.1.0.0'
103+
pod 'AppLovinMediationMyTargetAdapter', '5.36.2.0'
104+
pod 'AppLovinMediationOguryPresageAdapter', '5.1.1.0'
105+
pod 'AppLovinMediationPubMaticAdapter', '4.10.0.0'
106+
pod 'AppLovinMediationSmaatoAdapter', '23.1.0.0'
107+
pod 'AppLovinMediationUnityAdsAdapter', '4.16.3.0'
108+
pod 'AppLovinMediationVerveAdapter', '3.8.1.0'
109+
pod 'AppLovinMediationVungleAdapter', '7.6.2.0'
110+
pod 'AppLovinMediationYandexAdapter', '7.17.0.0'
111+
# Level Play
112+
pod 'IronSourceAdMobAdapter', '5.3.0.0'
113+
pod 'IronSourceAppLovinAdapter', '5.3.0.0'
114+
pod 'IronSourceBidMachineAdapter', '5.5.0.0'
115+
pod 'IronSourceBigoAdapter', '5.1.0.0'
116+
pod 'IronSourceFacebookAdapter', '5.0.0.0'
117+
pod 'IronSourceFyberAdapter', '5.2.0.0'
118+
pod 'IronSourceInMobiAdapter', '5.3.0.0'
119+
pod 'IronSourceMintegralAdapter', '5.1.0.0'
120+
pod 'IronSourceMobileFuseAdapter', '5.0.0.0'
121+
pod 'IronSourceMolocoAdapter', '5.2.0.0'
122+
pod 'IronSourceMyTargetAdapter', '5.3.0.0'
123+
pod 'IronSourceOguryAdapter', '5.0.0.0'
124+
pod 'IronSourcePangleAdapter', '5.5.0.0'
125+
pod 'IronSourceSmaatoAdapter', '5.2.0.0'
126+
pod 'IronSourceUnityAdsAdapter', '5.2.0.0'
127+
pod 'IronSourceVerveAdapter', '5.5.0.0'
128+
pod 'IronSourceVungleAdapter', '5.3.0.0'
129+
# Bidon
130+
pod 'BidonAdapterAmazon', '5.3.2.0'
131+
pod 'BidonAdapterAppLovin', '13.5.1.0'
132+
pod 'BidonAdapterBidMachine', '3.6.1.1'
133+
pod 'BidonAdapterBigoAds', '5.0.0.0'
134+
pod 'BidonAdapterChartboost', '9.10.1.0'
135+
pod 'BidonAdapterDTExchange', '8.4.1.0'
136+
pod 'BidonAdapterInMobi', '11.1.0.0'
137+
pod 'BidonAdapterIronSource', '9.1.0.0.0'
138+
pod 'BidonAdapterMetaAudienceNetwork', '6.20.1.0'
139+
pod 'BidonAdapterMintegral', '7.7.9.0'
140+
pod 'BidonAdapterMobileFuse', '1.9.3.0'
141+
pod 'BidonAdapterMoloco', '4.1.0.0'
142+
pod 'BidonAdapterMyTarget', '5.36.2.0'
143+
pod 'BidonAdapterStartIo', '4.13.0.0'
144+
pod 'BidonAdapterTaurusX', '1.15.0.0'
145+
pod 'BidonAdapterUnityAds', '4.16.3.0'
146+
pod 'BidonAdapterVungle', '7.6.2.0'
147+
pod 'BidonAdapterYandex', '7.17.0.0'
148+
pod 'BidonAdapterZmaticoo', '1.5.6.0'
149+
# Appodeal
150+
pod 'AppodealAdjustAdapter', '5.4.6.1'
151+
pod 'AppodealAmazonAdapter', '5.3.2.0'
152+
pod 'AppodealAppLovinAdapter', '13.5.1.0'
153+
pod 'AppodealAppLovinMAXAdapter', '13.5.1.1'
154+
pod 'AppodealAppsFlyerAdapter', '6.17.7.1'
155+
pod 'AppodealBidMachineAdapter', '3.6.1.0'
156+
pod 'AppodealBidonAdapter', '0.14.0.1'
157+
pod 'AppodealBigoAdsAdapter', '5.0.0.0'
158+
pod 'AppodealDTExchangeAdapter', '8.4.1.0'
159+
pod 'AppodealFacebookAdapter', '18.0.1.0'
160+
pod 'AppodealFirebaseAdapter', '12.4.0.1'
161+
pod 'AppodealGoogleAdMobAdapter', '12.13.0.0'
162+
pod 'AppodealIABAdapter', '3.4.7.0'
163+
pod 'AppodealInMobiAdapter', '11.1.0.0'
164+
pod 'AppodealIronSourceAdapter', '9.1.0.0.0'
165+
pod 'AppodealLevelPlayAdapter', '9.1.0.0.0'
166+
pod 'AppodealMetaAudienceNetworkAdapter', '6.20.1.0'
167+
pod 'AppodealMintegralAdapter', '7.7.9.0'
168+
pod 'AppodealMyTargetAdapter', '5.36.2.0'
169+
pod 'AppodealSentryAdapter', '8.57.2.1'
170+
pod 'AppodealUnityAdapter', '4.16.3.0'
171+
pod 'AppodealVungleAdapter', '7.6.2.0'
172+
pod 'AppodealYandexAdapter', '7.17.0.1'
90173
end
91174

92-
target 'Runner' do
93-
use_frameworks!
94-
use_modular_headers!
95-
appodeal
175+
target 'Sample' do
176+
project 'Sample/Sample.xcodeproj'
177+
appodeal
178+
use_modular_headers!
96179

97-
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
180+
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
98181
end
99182
```
183+
<!-- appodeal-deps:ios:end -->
100184

101185
> [!TIP]
102186
> Use the [Appodeal Dependencies Wizard](https://docs.appodeal.com/ios/advanced/configure-mediated-networks) to configure mediated networks and generate an always up-to-date dependency list for your Podfile.
@@ -175,16 +259,115 @@ To improve ad performance the following entries should be added:
175259

176260
Add dependencies into `build.gradle` (module: app)
177261

262+
<!-- appodeal-deps:android:start -->
178263
``` groovy
179264
dependencies {
180-
// ... other project dependencies
181-
// Appodeal SDK 4.1.0
182-
implementation("com.appodeal.ads.sdk:core:4.1.0")
183-
// Add adapter dependencies here.
184-
// Use the Appodeal Dependencies Wizard to generate an up-to-date list:
185-
// https://docs.appodeal.com/android/advanced/configure-mediated-networks
265+
implementation "com.appodeal.ads.sdk:core:4.1.0"
266+
// Bidon
267+
implementation "org.bidon:amazon-adapter:11.3.0.0"
268+
implementation "org.bidon:applovin-adapter:13.5.1.0"
269+
implementation "org.bidon:bidmachine-adapter:3.7.1.0"
270+
implementation "org.bidon:bigoads-adapter:5.6.2.0"
271+
implementation "org.bidon:chartboost-adapter:9.10.2.0"
272+
implementation "org.bidon:dtexchange-adapter:8.4.1.0"
273+
implementation "org.bidon:inmobi-adapter:11.1.0.0"
274+
implementation "org.bidon:ironsource-adapter:9.1.0.0"
275+
implementation "org.bidon:meta-adapter:6.21.0.0"
276+
implementation "org.bidon:mintegral-adapter:17.1.61.0"
277+
implementation "org.bidon:mobilefuse-adapter:1.9.3.0"
278+
implementation "org.bidon:moloco-adapter:4.3.1.0"
279+
implementation "org.bidon:startio-adapter:5.2.4.1"
280+
implementation "org.bidon:taurusx-adapter:1.12.2.0"
281+
implementation "org.bidon:unityads-adapter:4.17.0.0"
282+
implementation "org.bidon:vkads-adapter:5.47.1.0"
283+
implementation "org.bidon:vungle-adapter:7.6.1.0"
284+
implementation "org.bidon:yandex-adapter:7.17.0.0"
285+
implementation "org.bidon:zmaticoo-adapter:2.0.5.1.0"
286+
// AppLovin MAX
287+
implementation "com.applovin.mediation:amazon-tam-adapter:11.3.0.0"
288+
implementation "com.applovin.mediation:bidmachine-adapter:3.7.1.0"
289+
implementation "com.applovin.mediation:bigoads-adapter:5.6.2.0"
290+
implementation "com.applovin.mediation:bytedance-adapter:7.7.0.2.0"
291+
implementation "com.applovin.mediation:chartboost-adapter:9.10.2.0"
292+
implementation "com.applovin.mediation:facebook-adapter:6.21.0.0"
293+
implementation "com.applovin.mediation:fyber-adapter:8.4.1.0"
294+
implementation "com.applovin.mediation:google-ad-manager-adapter:24.7.0.0"
295+
implementation "com.applovin.mediation:google-adapter:24.7.0.0"
296+
implementation "com.applovin.mediation:inmobi-adapter:11.1.0.0"
297+
implementation "com.applovin.mediation:ironsource-adapter:9.1.0.0.0"
298+
implementation "com.applovin.mediation:mintegral-adapter:17.1.61.0"
299+
implementation "com.applovin.mediation:mobilefuse-adapter:1.9.3.0"
300+
implementation "com.applovin.mediation:moloco-adapter:4.3.1.0"
301+
implementation "com.applovin.mediation:mytarget-adapter:5.47.1.0"
302+
implementation "com.applovin.mediation:ogury-presage-adapter:6.2.0.0"
303+
implementation "com.applovin.mediation:pubmatic-adapter:4.10.0.0"
304+
implementation "com.applovin.mediation:smaato-adapter:22.7.2.3"
305+
implementation "com.applovin.mediation:unityads-adapter:4.17.0.0"
306+
implementation "com.applovin.mediation:verve-adapter:3.7.1.0"
307+
implementation "com.applovin.mediation:vungle-adapter:7.6.1.0"
308+
implementation "com.applovin.mediation:yandex-adapter:7.17.0.0"
309+
// Level Play
310+
implementation "com.unity3d.ads-mediation:admob-adapter:5.2.0"
311+
implementation "com.unity3d.ads-mediation:applovin-adapter:5.2.0"
312+
implementation "com.unity3d.ads-mediation:bidmachine-adapter:5.7.0"
313+
implementation "com.unity3d.ads-mediation:bigo-adapter:5.3.0"
314+
implementation "com.unity3d.ads-mediation:facebook-adapter:5.2.0"
315+
implementation "com.unity3d.ads-mediation:fyber-adapter:5.2.0"
316+
implementation "com.unity3d.ads-mediation:inmobi-adapter:5.3.0"
317+
implementation "com.unity3d.ads-mediation:mintegral-adapter:5.14.0"
318+
implementation "com.unity3d.ads-mediation:mobilefuse-adapter:5.1.0"
319+
implementation "com.unity3d.ads-mediation:moloco-adapter:5.5.0"
320+
implementation "com.unity3d.ads-mediation:mytarget-adapter:5.4.0"
321+
implementation "com.unity3d.ads-mediation:ogury-adapter:5.2.0"
322+
implementation "com.unity3d.ads-mediation:pangle-adapter:5.3.0"
323+
implementation "com.unity3d.ads-mediation:smaato-adapter:5.0.0"
324+
implementation "com.unity3d.ads-mediation:unityads-adapter:5.6.0"
325+
implementation "com.unity3d.ads-mediation:verve-adapter:5.2.0"
326+
implementation "com.unity3d.ads-mediation:vungle-adapter:5.4.0"
327+
// Appodeal
328+
implementation "com.appodeal.ads.sdk.adapters:adjust:5.4.6.1"
329+
implementation "com.appodeal.ads.sdk.adapters:admob:24.7.0.0"
330+
implementation "com.appodeal.ads.sdk.adapters:amazon:11.3.0.0"
331+
implementation "com.appodeal.ads.sdk.adapters:applovin:13.5.1.0"
332+
implementation "com.appodeal.ads.sdk.adapters:applovin_max:13.5.1.1"
333+
implementation "com.appodeal.ads.sdk.adapters:appsflyer:6.17.3.1"
334+
implementation "com.appodeal.ads.sdk.adapters:bidmachine:3.7.1.0"
335+
implementation "com.appodeal.ads.sdk.adapters:bidon:0.13.0.0"
336+
implementation "com.appodeal.ads.sdk.adapters:bigo_ads:5.6.2.0"
337+
implementation "com.appodeal.ads.sdk.adapters:chartboost:9.10.2.0"
338+
implementation "com.appodeal.ads.sdk.adapters:dt_exchange:8.4.1.0"
339+
implementation "com.appodeal.ads.sdk.adapters:facebook_analytics:18.0.3.0"
340+
implementation "com.appodeal.ads.sdk.adapters:firebase:23.0.0.1"
341+
implementation "com.appodeal.ads.sdk.adapters:iab:1.8.1.0"
342+
implementation "com.appodeal.ads.sdk.adapters:inmobi:11.1.0.0"
343+
implementation "com.appodeal.ads.sdk.adapters:ironsource:9.1.0.0"
344+
implementation "com.appodeal.ads.sdk.adapters:level_play:9.1.0.0"
345+
implementation "com.appodeal.ads.sdk.adapters:meta:6.21.0.0"
346+
implementation "com.appodeal.ads.sdk.adapters:mintegral:17.1.61.0"
347+
implementation "com.appodeal.ads.sdk.adapters:mobilefuse:1.9.3.0"
348+
implementation "com.appodeal.ads.sdk.adapters:moloco:4.3.1.0"
349+
implementation "com.appodeal.ads.sdk.adapters:my_target:5.47.1.0"
350+
implementation "com.appodeal.ads.sdk.adapters:ogury:6.2.0.0"
351+
implementation "com.appodeal.ads.sdk.adapters:pangle:7.7.0.2.0"
352+
implementation "com.appodeal.ads.sdk.adapters:pubmatic:4.10.0.0"
353+
implementation "com.appodeal.ads.sdk.adapters:sentry_analytics:8.26.0.0"
354+
implementation "com.appodeal.ads.sdk.adapters:smaato:22.7.2.0"
355+
implementation "com.appodeal.ads.sdk.adapters:startio:5.2.4.0"
356+
implementation "com.appodeal.ads.sdk.adapters:taurusx:1.12.2.0"
357+
implementation "com.appodeal.ads.sdk.adapters:unity_ads:4.17.0.0"
358+
implementation "com.appodeal.ads.sdk.adapters:verve:3.7.1.0"
359+
implementation "com.appodeal.ads.sdk.adapters:vungle:7.6.1.0"
360+
implementation "com.appodeal.ads.sdk.adapters:yandex:7.17.0.0"
361+
// BidMachine
362+
implementation "io.bidmachine:ads.networks.amazon:11.3.0.2"
363+
implementation "io.bidmachine:ads.networks.meta_audience:6.21.0.1"
364+
implementation "io.bidmachine:ads.networks.mintegral:17.1.61.1"
365+
implementation "io.bidmachine:ads.networks.my_target:5.47.1.2"
366+
implementation "io.bidmachine:ads.networks.pangle:7.7.0.2.2"
367+
implementation "io.bidmachine:ads.networks.vungle:7.6.1.2"
186368
}
187369
```
370+
<!-- appodeal-deps:android:end -->
188371

189372
Add repository into `build.gradle` (module: project)
190373

0 commit comments

Comments
 (0)