<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dev Connect</title>
    <description>The latest articles on DEV Community by Dev Connect (@devconnect).</description>
    <link>https://dev.to/devconnect</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4078237%2Ff11f5646-8c69-4ec2-b7cd-78b4f41e174c.png</url>
      <title>DEV Community: Dev Connect</title>
      <link>https://dev.to/devconnect</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devconnect"/>
    <language>en</language>
    <item>
      <title>Can managed Apple Accounts in reserved domains test TestFlight builds</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 16:15:05 +0000</pubDate>
      <link>https://dev.to/devconnect/can-managed-apple-accounts-in-reserved-domains-test-testflight-builds-59g8</link>
      <guid>https://dev.to/devconnect/can-managed-apple-accounts-in-reserved-domains-test-testflight-builds-59g8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; No. Apple says managed Apple Accounts created in reserved domains can’t be used to test builds, so they are excluded from TestFlight testing.&lt;/p&gt;

&lt;p&gt;No. Apple says managed Apple Accounts created in reserved domains can’t be used to test builds, so they are excluded from TestFlight testing. That restriction applies even when the account is otherwise valid inside Apple Business Manager or Apple School Manager.&lt;/p&gt;

&lt;p&gt;The part people get wrong is assuming “managed” means “fine for internal testing.” Apple separates account type from TestFlight eligibility. A Managed Apple Account can exist in an organization and still fail this specific TestFlight use case if it was created in a reserved domain. Apple’s TestFlight help states the exclusion directly.&lt;/p&gt;

&lt;p&gt;That matters because TestFlight uses two different paths: internal testers and external testers. Apple’s documentation says internal testers are App Store Connect users in approved roles, while external testers are invited by email or public link. The reserved-domain limitation sits on the account side, not on the invitation side, so a reserved-domain managed account stays blocked either way.&lt;/p&gt;

&lt;p&gt;If you need someone from a school or company tenant to test, the practical workaround is to use a non-reserved Apple Account that is eligible for TestFlight, or use another person in your organization who has a qualifying App Store Connect role. Apple’s docs also note that managed Apple Accounts do not have developer-program access by default, and organizations have to grant access separately.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that this is easy to discover late. A build can be approved, a tester can receive an invite, and the account still cannot actually test if it is a managed Apple Account created in a reserved domain. The failure is at eligibility, not at the invite screen, so you want to verify the account type before you rely on it for coverage.&lt;/p&gt;

&lt;p&gt;If you are organizing a test group, use Apple’s own TestFlight flow: create a group in App Store Connect, add the build, then add testers only after you confirm their accounts are eligible. Apple also says external testers can be added by email or public link, up to 10,000 per app, and the first external build goes through TestFlight App Review.&lt;/p&gt;

&lt;p&gt;For app teams that are also managing Google Play closed testing, keep the Apple and Google rules separate. Google Play’s current closed-testing requirements are different from TestFlight, and Apple’s reserved-domain restriction is not a workaround for Android release access. DevConnect’s platform description is relevant only as a testing exchange idea, not as evidence for Apple’s policy, and the live platform link is here: &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;. iteturn0search0turn0search1&lt;/p&gt;

&lt;p&gt;If the question is “can we use this exact account to test a build?”, the answer is no. If the question is “can the same person test with a different eligible Apple Account?”, the answer is yes, once that account meets Apple’s TestFlight rules and is not a managed Apple Account created in a reserved domain.&lt;/p&gt;

&lt;p&gt;For App Store Connect teams, the safest check is simple: look at how the Apple Account was created, not just who owns it. Reserved-domain managed accounts are the ones Apple excludes from TestFlight build testing, and Apple states that directly in the TestFlight help pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to check before you invite someone
&lt;/h3&gt;

&lt;p&gt;Confirm whether the tester is using a Managed Apple Account created in a reserved domain. If yes, do not expect that account to install or test the build through TestFlight. If no, the account may still need the right App Store Connect access or a valid invitation, depending on whether the tester is internal or external.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens when it goes wrong
&lt;/h3&gt;

&lt;p&gt;The invite workflow can look normal while the tester still cannot participate. That is why teams should not use a reserved-domain managed account as a required tester, especially for the first external build or for a small QA group. Apple’s documentation makes the exclusion explicit, so the fix is to swap the account, not to retry the same one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practical answer for release planning
&lt;/h3&gt;

&lt;p&gt;Plan TestFlight coverage around eligible Apple Accounts first, then assign the build. If a school or enterprise account is in a reserved domain, treat it as unavailable for build testing and choose another tester. That avoids last-minute gaps when you need feedback before release.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related checks
&lt;/h3&gt;

&lt;p&gt;If you are also testing subscriptions or in-app purchases, Apple has a separate TestFlight flow for sandbox testing. That is a different path from build eligibility, so do not use it to infer that a reserved-domain managed account can test the app itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can a managed Apple Account in a reserved domain join as an internal tester?&lt;/strong&gt;&lt;br&gt;
No. Apple says managed Apple Accounts created in reserved domains can’t be used to test builds, so they are not valid for TestFlight build testing in either internal or external workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can the same person test if they use another Apple Account?&lt;/strong&gt;&lt;br&gt;
Yes, if that other account is eligible for TestFlight and has the correct App Store Connect access. The restriction is tied to the managed account created in a reserved domain, not to the human being.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does Apple say why reserved-domain managed accounts are blocked?&lt;/strong&gt;&lt;br&gt;
Apple’s TestFlight documentation states the rule but does not explain the policy reason in the cited help pages. The operational takeaway is simple: do not count those accounts in your tester plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can external testers use a public link instead?&lt;/strong&gt;&lt;br&gt;
Apple allows public-link invitations for external testers, but the account still has to be eligible. A reserved-domain managed Apple Account remains blocked from testing builds even if the invite comes from a public link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can a managed Apple Account in a reserved domain join as an internal tester&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Apple says managed Apple Accounts created in reserved domains can’t be used to test builds, so they are not valid for TestFlight build testing in either internal or external workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can the same person test if they use another Apple Account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, if that other account is eligible for TestFlight and has the correct App Store Connect access. The restriction is tied to the managed account created in a reserved domain, not to the human being.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does Apple say why reserved-domain managed accounts are blocked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple’s TestFlight documentation states the rule but does not explain the policy reason in the cited help pages. The operational takeaway is simple: do not count those accounts in your tester plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can external testers use a public link instead&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple allows public-link invitations for external testers, but the account still has to be eligible. A reserved-domain managed Apple Account remains blocked from testing builds even if the invite comes from a public link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers/" rel="noopener noreferrer"&gt;Invite external testers - App Store Connect Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview" rel="noopener noreferrer"&gt;TestFlight overview - App Store Connect Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/testflight/" rel="noopener noreferrer"&gt;TestFlight - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/account/access/resolving-access-issues" rel="noopener noreferrer"&gt;Resolving access issues - Apple Developer Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/account/access/roles/" rel="noopener noreferrer"&gt;Apple Developer Program Roles - Access - Account - Help&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/can-managed-apple-accounts-in-reserved-domains-test-testflig?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>testing</category>
      <category>mobile</category>
    </item>
    <item>
      <title>GitHub Sponsors payouts after payment detail changes</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 16:15:03 +0000</pubDate>
      <link>https://dev.to/devconnect/github-sponsors-payouts-after-payment-detail-changes-46d2</link>
      <guid>https://dev.to/devconnect/github-sponsors-payouts-after-payment-detail-changes-46d2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes, if you update the payout method correctly, GitHub Sponsors can keep paying you. GitHub lets you edit bank information, but fiscal host setups require support to change payout details.&lt;/p&gt;

&lt;p&gt;Yes, if you update the payout method correctly, GitHub Sponsors can keep paying you. GitHub lets you edit bank information, but fiscal host setups require support to change payout details.&lt;/p&gt;

&lt;p&gt;GitHub’s payout page says you can view past and future payouts and edit your bank information. The same page also says that if you use a fiscal host, you can view payout information but cannot edit it directly, and must contact support instead. That is the part people miss when they assume every payout setup works the same way.&lt;/p&gt;

&lt;p&gt;The practical rule is simple: a change in maintainer payment details does not automatically end your payouts. What matters is whether the payout destination is still valid and whether GitHub can route the funds to the account connected to your Sponsors profile. If your bank account changes, you update the payout details. If your fiscal host changes, you follow the host or GitHub support path that GitHub exposes for that setup.&lt;/p&gt;

&lt;p&gt;GitHub also separates who can receive funds from who can sponsor. Anyone in any region can sponsor eligible maintainers, but you must reside in a supported region to receive funds. That means payment-detail changes only help if your account still satisfies the receiving-side requirements. A working payout method does not override unsupported-region rules.&lt;/p&gt;

&lt;p&gt;The part people get wrong is assuming sponsors will somehow follow the new details without action. GitHub’s docs describe payout information as something you manage from the Sponsors dashboard, not something that updates itself after a bank switch or legal entity change. If you keep the old payout route in place, future payouts can fail, pause, or require support intervention.&lt;/p&gt;

&lt;p&gt;If you use a Stripe Connect account, GitHub’s payout page says you can edit your bank information directly and export payout receipts as PDF files. That is the cleanest path when the payout details are changing inside the same payout setup. For a normal bank change, the right move is to update the payout information before the next payout cycle reaches the old account.&lt;/p&gt;

&lt;p&gt;If you use a fiscal host, the inconvenience is real: you can see current and next estimated payouts, but you cannot change payout information yourself. GitHub’s docs point you to support for that. In practice, that means a legal name change, fiscal host switch, or account migration can take longer than a simple bank edit, and payouts can only be kept clean if the support step happens before the next disbursement.&lt;/p&gt;

&lt;p&gt;A concrete example helps. Suppose your old bank account is closed on a Friday and your next payout is due the following week. If you update the connected bank details in time, the payout can still route to the new account. If you wait until after the payout date, the payment may try the old route first and then need recovery steps. GitHub’s payout docs do not promise automatic repair, they describe editing the information yourself or contacting support.&lt;/p&gt;

&lt;p&gt;Another thing that matters is account type. GitHub says sponsorships from personal accounts use the same billing method and receipt flow on the sponsor side, and payout handling on the maintainer side is managed through the Sponsors dashboard. That separation is easy to overlook. Your sponsor’s payment method changing does not change your payout details, and your payout details changing does not change what sponsors pay into the system.&lt;/p&gt;

&lt;p&gt;If your payment details change because you moved countries, changed your business entity, or switched from a personal payout path to a fiscal host, treat it as a routing change, not a profile edit. The payout still exists, but the receiving endpoint may need revalidation. The safest order is update the payout route first, confirm the dashboard shows the new setup, then leave the old route only after the new one is active.&lt;/p&gt;

&lt;p&gt;If you are setting this up for the first time or reworking an old profile, keep the payout settings aligned with the actual legal and banking structure you want GitHub to pay. That keeps the sponsor flow intact, and it avoids the common failure mode where a profile looks active but the money has nowhere valid to land. GitHub’s own docs on receiving sponsorships and managing payouts are the pages to follow, and your profile details should match the payout account you actually control.&lt;/p&gt;

&lt;p&gt;If you need to review the broader setup around receiving sponsorships, the GitHub Sponsors documentation hub is the right starting point: &lt;a href="https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors" rel="noopener noreferrer"&gt;https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors&lt;/a&gt;. It links to payout management, fiscal host setup, and profile editing in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes and what does not
&lt;/h2&gt;

&lt;p&gt;A payout detail change affects where GitHub sends money. It does not cancel your Sponsors profile by itself. GitHub documents separate flows for editing bank information, using a fiscal host, and managing payout receipts, so the right fix depends on which part of the payout pipeline changed.&lt;/p&gt;

&lt;p&gt;If the bank account changed, update the payout information in the Sponsors dashboard. If the fiscal host changed, contact support through the path GitHub provides. If the legal entity changed, make sure the payout setup and tax setup still match the receiving account, because a mismatch can block payment even when the profile still looks active.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check before the next payout
&lt;/h2&gt;

&lt;p&gt;Check the Payouts page in your Sponsors dashboard and confirm the current payout destination is the one you expect. If you use a fiscal host, confirm that support has acknowledged the change. If you use Stripe Connect, confirm the bank information was saved and the payout receipts still reflect the same account.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens if you do nothing
&lt;/h2&gt;

&lt;p&gt;If you leave stale payment details in place, the next payout can be delayed or sent to the wrong destination path. GitHub’s documentation does not describe an automatic fallback to a different payout account. The responsibility to keep the receiving details current sits with the maintainer or the fiscal host.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related cases people confuse with payout changes
&lt;/h2&gt;

&lt;p&gt;A sponsor changing their own payment method does not change your payout details. A tier change does not change where payouts go. A profile update does not update payout routing unless you also change the payout settings in the Sponsors dashboard. Those are separate actions in GitHub’s model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;You can keep receiving GitHub Sponsors payouts after your maintainer payment details change, but only if you update the payout setup that GitHub actually uses. Bank changes can be edited in the dashboard, fiscal host changes require support, and the old route should not be left as the only active destination.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What if my bank account number changed
&lt;/h3&gt;

&lt;p&gt;Update the payout information in the GitHub Sponsors dashboard before the next payout. GitHub’s docs say maintainers can edit bank information there.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if I use a fiscal host
&lt;/h3&gt;

&lt;p&gt;You can view payout details, but GitHub says you cannot edit payout information directly. Use the support path GitHub provides for fiscal hosts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Will my sponsors need to do anything
&lt;/h3&gt;

&lt;p&gt;No. Sponsor-side payment settings are separate from maintainer payout settings. Your sponsors do not need to re-enter anything when your payout details change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can a payout still arrive after I close the old account
&lt;/h3&gt;

&lt;p&gt;Not safely. Close the old route only after the new payout details are active and confirmed in the Sponsors dashboard or by support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does changing payment details cancel my GitHub Sponsors profile
&lt;/h3&gt;

&lt;p&gt;No. A payout detail change is not the same thing as disabling the Sponsors account. GitHub documents those as separate actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What if my bank account number changed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Update the payout information in the GitHub Sponsors dashboard before the next payout. GitHub’s docs say maintainers can edit bank information there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if I use a fiscal host&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can view payout details, but GitHub says you cannot edit payout information directly. Use the support path GitHub provides for fiscal hosts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will my sponsors need to do anything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Sponsor-side payment settings are separate from maintainer payout settings. Your sponsors do not need to re-enter anything when your payout details change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can a payout still arrive after I close the old account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not safely. Close the old route only after the new payout details are active and confirmed in the Sponsors dashboard or by support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does changing payment details cancel my GitHub Sponsors profile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. A payout detail change is not the same thing as disabling the Sponsors account. GitHub documents those as separate actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/managing-your-payouts-from-github-sponsors?apiVersion=2022-11-28" rel="noopener noreferrer"&gt;Managing your payouts from GitHub Sponsors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors" rel="noopener noreferrer"&gt;Receiving sponsorships through GitHub Sponsors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/about-github-sponsors-for-open-source-contributors" rel="noopener noreferrer"&gt;About GitHub Sponsors for open source contributors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/getting-started-with-github-sponsors/about-github-sponsors" rel="noopener noreferrer"&gt;About GitHub Sponsors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors" rel="noopener noreferrer"&gt;GitHub Sponsors documentation - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/billing/concepts/third-party-payments/github-sponsors" rel="noopener noreferrer"&gt;GitHub Sponsors billing - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/can-i-still-receive-github-sponsors-payouts-if-my-maintainer?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Will GitHub License Compliance Block My Dependency Change?</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 11:15:04 +0000</pubDate>
      <link>https://dev.to/devconnect/will-github-license-compliance-block-my-dependency-change-2cj3</link>
      <guid>https://dev.to/devconnect/will-github-license-compliance-block-my-dependency-change-2cj3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Check the repository ruleset first, then compare the manifest diff and the dependency review result. If license compliance is enforced and any new direct or transitive dependency is noncompliant, GitHub blocks the pull request until you resolve or exempt it.&lt;/p&gt;

&lt;p&gt;Check the repository ruleset first, then inspect the pull request’s dependency review. GitHub blocks a dependency change when an active license-compliance ruleset requires results before merging and the new direct or transitive dependency violates the policy. If the ruleset is only in Evaluate mode, you get annotations instead of a merge block.&lt;/p&gt;

&lt;p&gt;The fastest signal is the pull request status. Open the PR, look for dependency review output, and read the checks and merge box. GitHub’s dependency review surfaces the changed packages, the manifest or lock file that changed, and the license information it can detect. If the change is blocked, the check usually says which dependency or license caused it.&lt;/p&gt;

&lt;p&gt;The part people get wrong is assuming the package you edited is the only thing that matters. GitHub license compliance evaluates direct and transitive dependencies from the dependency graph. A small version bump can pull in a new transitive package with a license your policy rejects, and that can block the PR even when the top-level package looks acceptable.&lt;/p&gt;

&lt;p&gt;The second thing to inspect is policy shape. GitHub license compliance can be enforced at the enterprise, organization, or repository level, and it uses rulesets. If the policy is active and tied to the merge requirement, noncompliant dependencies stay blocked until you resolve the violation, approve an exception, or update the policy. If no such ruleset exists, GitHub will not block on license compliance alone.&lt;/p&gt;

&lt;p&gt;A dependency review check can still be useful even when it does not block the merge. GitHub says dependency review helps you understand dependency changes and shows license information when available. That means a green check is not a legal clearance slip, it is a sign that the configured rules did not find a blocking issue in the current diff.&lt;/p&gt;

&lt;p&gt;Start with the manifest and lock files, because that is where GitHub decides whether the pull request changed dependencies. If the PR only edits code and leaves dependency files alone, license compliance usually has nothing new to evaluate. If the PR changes package manifests or lock files, GitHub compares the base branch to the pull request branch and runs the review.&lt;/p&gt;

&lt;p&gt;When you want a concrete answer before merging, read the dependency review output in three layers: what changed, which licenses were detected, and whether any license is on the deny list. GitHub’s dependency review action supports deny lists and allow lists, but you can use only one of those two options in a configuration. If your repo uses that action, the workflow file tells you the exact policy shape.&lt;/p&gt;

&lt;p&gt;If the check blocks, fix the package change rather than trying to outsmart the system. Common fixes are choosing a different version, replacing the dependency, getting an exception approved, or updating the license policy when the legal owner agrees. GitHub’s documentation describes those as the normal resolution paths for noncompliant dependencies.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that you may not see every dependency in the UI if GitHub cannot parse part of the manifest or lock file. GitHub explicitly notes that some dependencies may not appear in dependency review if they cannot be parsed. In that case, inspect the diff yourself, because a clean-looking review can still hide an unparsed change.&lt;/p&gt;

&lt;p&gt;A practical test is simple: make the dependency change in a branch, open the PR, and check whether the license-compliance ruleset or dependency-review job fails. If it fails with a license message, the block is real. If it passes but your organization has a separate legal review process, the PR may still need human approval outside GitHub.&lt;/p&gt;

&lt;p&gt;For teams using GitHub Enterprise license compliance, the blocking condition is specific: an active ruleset with the "Requires license compliance results before merging" condition. Evaluate mode reports the issue without stopping the merge. Active mode stops the merge until the violation is fixed or exempted. That distinction is the difference between a warning and an actual block.&lt;/p&gt;

&lt;p&gt;If you need the shortest decision path, use this order: check for an active license-compliance ruleset, inspect the dependency review diff, identify whether the changed dependency or any transitive dependency carries a denied license, then resolve the policy conflict. That sequence tells you whether GitHub will block the change before you waste time arguing with the merge button.&lt;/p&gt;

&lt;p&gt;If you are setting this up for a team, GitHub also offers the dependency review action for pull requests. It can fail builds on specific licenses and make the check required, which turns the review into a hard gate. If your repo does not use it, the dependency review still gives useful visibility, but the block must come from a ruleset or required workflow, not from the review screen alone.&lt;/p&gt;

&lt;p&gt;One practical habit saves time: compare the base branch and the PR branch before you ask for review. The changed dependency list is the part that matters, not the whole lockfile history. That tells you whether the new package, an upgraded transitive package, or a policy exception is the reason the merge might stop.&lt;/p&gt;

&lt;p&gt;If you want to see how GitHub surfaces dependency work, start from the pull request itself and review the dependency panel, then confirm the repo policy in settings. If you need a broader testing workflow around app changes, DevConnect describes a separate closed-test exchange model at &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;, but that is unrelated to GitHub license enforcement.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should I look for in GitHub to know a dependency change is blocked
&lt;/h2&gt;

&lt;p&gt;Look for an active ruleset, a required dependency-review or license-compliance check, and a deny-listed license in the changed dependency tree. If all three line up, the merge is blocked until the violation is resolved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does GitHub block transitive licenses or only direct packages
&lt;/h2&gt;

&lt;p&gt;GitHub’s license compliance evaluates both direct and transitive dependencies from the dependency graph. A transitive package can be enough to trigger a block if the policy does not allow its license.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if the pull request passes but I still worry about license risk
&lt;/h2&gt;

&lt;p&gt;Review the manifest and lock file diff, then check whether GitHub could parse every dependency. If the tool could not parse part of the change, the review can miss packages, so manual inspection still matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can I allow one license exception without changing the whole policy
&lt;/h2&gt;

&lt;p&gt;Yes. GitHub documents package or license exceptions approved by the appropriate policy owner. That is the normal path when one dependency is acceptable and the rest of the policy should stay unchanged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What should I look for in GitHub to know a dependency change is blocked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for an active ruleset, a required dependency-review or license-compliance check, and a denied license in the changed dependency tree.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub block transitive licenses or only direct packages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub evaluates both direct and transitive dependencies from the dependency graph, so a transitive package can block the merge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if the pull request passes but I still worry about license risk&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Review the manifest and lock file diff, then check whether GitHub could parse every dependency. Unparsed changes can hide from the review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I allow one license exception without changing the whole policy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. GitHub supports package or license exceptions when the policy owner approves them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/open-source-license-compliance" rel="noopener noreferrer"&gt;About open source license compliance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-license-policies" rel="noopener noreferrer"&gt;Configuring open source license policies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action?apiVersion=2022-11-28" rel="noopener noreferrer"&gt;Configuring the dependency review action&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/pull-requests/how-tos/review-pull-requests/reviewing-dependency-changes-in-a-pull-request" rel="noopener noreferrer"&gt;Reviewing dependency changes in a pull request&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/dependency-graph" rel="noopener noreferrer"&gt;Dependency graph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/pull-requests/how-tos/review-pull-requests" rel="noopener noreferrer"&gt;Review pull requests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/how-can-i-tell-if-github-license-compliance-will-block-my-de?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to keep AI coding agents from noisy diffs</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 11:15:03 +0000</pubDate>
      <link>https://dev.to/devconnect/how-to-keep-ai-coding-agents-from-noisy-diffs-2i7j</link>
      <guid>https://dev.to/devconnect/how-to-keep-ai-coding-agents-from-noisy-diffs-2i7j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Constrain the agent to one change, one directory, and one reviewable commit. Give it explicit boundaries, ask for minimal edits first, and reject anything that mixes refactors, formatting, and feature work.&lt;/p&gt;

&lt;p&gt;Constrain the agent before you ask it to write code. Give one task, one file set, and one acceptance criterion. A clean diff is usually the result of a narrow prompt, a narrow branch, and a habit of splitting mechanical cleanup from behavior changes.&lt;/p&gt;

&lt;p&gt;The part people get wrong is asking for the whole feature in one shot, then reviewing whatever the model produced. That creates mixed diffs, where naming cleanup, formatting churn, and logic changes all land together. Google’s review guidance says reviewers should understand every line they are assigned, which is much easier when the change is small and focused.&lt;/p&gt;

&lt;p&gt;Start with a written scope. Say what the agent may touch, what it must leave alone, and what counts as done. If the task is “add validation to the signup form,” say whether it may edit tests, styles, copy, or shared utilities. GitHub’s Copilot docs recommend repository-wide instructions, path-specific instructions, and agent context files so the model sees the same constraints every time.&lt;/p&gt;

&lt;p&gt;Use a two-step workflow for anything nontrivial. First ask for the smallest behavior change that passes the test or proves the path works. Then ask for cleanup in a separate pass. Copilot’s own prompting guidance recommends deleting an unsatisfactory suggestion and starting over, and it explicitly suggests asking for smaller functions, comments, and modular structure when code is hard to work with.&lt;/p&gt;

&lt;p&gt;Require the agent to work from the current code, not from a vague summary. Open the exact file or highlight the exact region before prompting. If the agent has to infer the whole repository shape, it will often rewrite surrounding code to satisfy its own assumptions. GitHub’s guidance for Copilot Chat says to open or highlight the code you want it to reference, and to keep history relevant by starting a new thread for a new task.&lt;/p&gt;

&lt;p&gt;Tell the agent to prefer the existing pattern over inventing a new one. Noise often comes from code that is technically correct but stylistically alien, so reviewers spend time asking why a new abstraction appeared. Google’s review guidance calls out over-engineering and recommends coding against the current design unless there is a clear reason to change it.&lt;/p&gt;

&lt;p&gt;Make tests part of the boundary, not a cleanup phase. Ask the agent to add or adjust only the tests that prove the change, and to leave unrelated test files alone. Microsoft’s PR guidance distinguishes small changes from larger ones and treats small PRs as a separate review class, which is the right mental model for AI output too. Smaller review units are easier to verify and easier to revert if the model wanders.&lt;/p&gt;

&lt;p&gt;Use a branch discipline that rewards small commits. One commit should usually correspond to one idea. If the agent adds formatting, renames, and logic in the same commit, split it before review. Atlassian’s pull request guidance emphasizes small, logical changes because they are faster to review and easier to understand when commits tell the story of the change.&lt;/p&gt;

&lt;p&gt;Strip out formatting churn before asking for review. Run the formatter on the files you already intended to change, not on the whole package, unless the task is explicitly a style sweep. Reviewers lose time when a diff contains indentation churn, reordered imports, or mass whitespace edits that conceal the actual behavior change. If the agent cannot preserve existing formatting conventions, update the formatting rules first, then rerun the task.&lt;/p&gt;

&lt;p&gt;Give the agent a stop rule. Tell it to pause when it needs to touch files outside scope, when the implementation would exceed a stated line budget, or when it finds a second problem. That second problem is often where noisy diffs start, because the model tries to solve adjacent issues while it is already editing. A good prompt makes the agent ask for permission instead of widening the change on its own.&lt;/p&gt;

&lt;p&gt;Review the diff before you review the code. The first pass should answer one question: did the agent stay within scope If the diff includes unrelated renames, reorganized imports, or “helpful” refactors, send it back without debating the implementation. Atlassian’s diff guidance and Google’s review guidance both support keeping changes scoped so the real behavior is obvious in the review view.&lt;/p&gt;

&lt;p&gt;Use repository instructions to encode the boring rules once. If your team always wants new helpers in a specific folder, or always wants tests named in a certain way, put that in instructions rather than repeating it in every prompt. GitHub documents repository-wide instructions, path-specific instructions, and agent skills for this exact purpose, and that is where the agent learns what your team considers clean.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that clean diffs often mean slower first attempts. The agent will sometimes ask for more context, fail to complete a larger rewrite in one pass, or produce a smaller change than the requester expected. That is a feature, not a defect. A diff that is easy to review is usually a diff that was forced to stay narrow while the work was still being shaped.&lt;/p&gt;

&lt;p&gt;A practical workflow looks like this: create a branch, write a one-paragraph task, point the agent at one directory, ask for the smallest code change plus only the necessary tests, then inspect the diff for unrelated edits. If the change is still noisy, split it into a prep commit and a behavior commit, or ask the agent to rewrite only the smallest offending file. Copilot’s docs explicitly support restarting, narrowing context, and using custom instructions to steer output.&lt;/p&gt;

&lt;p&gt;If you are using DevConnect to line up human testers for an AI-built app, keep the same rule in the app repository: one issue, one branch, one reviewable diff. DevConnect is free to use and is meant for exchange, not for spraying changes across a codebase. The platform link belongs in your workflow only if it helps coordinate testing, not if it becomes another source of scope creep. &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A noisy diff is usually a process problem, not a model problem. The model follows the shape you give it. Narrow the task, narrow the context, narrow the files, and make cleanup its own step. Review gets easier when the agent is only allowed to change the thing you actually asked for.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Should I ask the agent to refactor while it implements the feature
&lt;/h3&gt;

&lt;p&gt;No. Refactor and feature work belong in separate commits or separate pull requests. Mixing them makes it hard to tell whether the behavior change is correct or whether the code just looks different. Keep the first pass focused on correctness, then do cleanup after the reviewable behavior is in place.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I do when the agent keeps editing unrelated files
&lt;/h3&gt;

&lt;p&gt;Stop the run, tighten the file scope, and restate the boundary in the prompt and repository instructions. Unrelated file edits are usually the model trying to resolve a dependency it should not have touched. If the dependency is real, make that file part of the task explicitly instead of letting it drift in by accident.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I keep imports, formatting, and naming from bloating the diff
&lt;/h3&gt;

&lt;p&gt;Run formatting only on the files that are already in scope, and ask the agent to preserve existing style unless the task is a style migration. If naming churn is still happening, lock the names you want in the prompt and in repository instructions. Reviewers should see the actual logic change, not a wave of mechanical edits.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if the smallest safe change is still hard to review
&lt;/h3&gt;

&lt;p&gt;Split it into staged changes. A prep commit can introduce a helper, test seam, or data structure, and a second commit can make the behavior change. That is more work up front, but it produces a diff that a reviewer can understand without reconstructing the entire branch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Should I ask the agent to refactor while it implements the feature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Refactor and feature work belong in separate commits or separate pull requests. Mixing them makes it hard to tell whether the behavior change is correct or whether the code just looks different. Keep the first pass focused on correctness, then do cleanup after the reviewable behavior is in place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should I do when the agent keeps editing unrelated files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stop the run, tighten the file scope, and restate the boundary in the prompt and repository instructions. Unrelated file edits are usually the model trying to resolve a dependency it should not have touched. If the dependency is real, make that file part of the task explicitly instead of letting it drift in by accident.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I keep imports, formatting, and naming from bloating the diff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run formatting only on the files that are already in scope, and ask the agent to preserve existing style unless the task is a style migration. If naming churn is still happening, lock the names you want in the prompt and in repository instructions. Reviewers should see the actual logic change, not a wave of mechanical edits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if the smallest safe change is still hard to review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Split it into staged changes. A prep commit can introduce a helper, test seam, or data structure, and a second commit can make the behavior change. That is more work up front, but it produces a diff that a reviewer can understand without reconstructing the entire branch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review?tool=webui" rel="noopener noreferrer"&gt;GitHub Docs, Using GitHub Copilot code review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/concepts/prompting/prompt-engineering" rel="noopener noreferrer"&gt;GitHub Docs, Prompt engineering for GitHub Copilot Chat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://google.github.io/eng-practices/review/reviewer/looking-for.html" rel="noopener noreferrer"&gt;Google Engineering Practices, What to look for in a code review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://google.github.io/eng-practices/review/reviewer/standard.html" rel="noopener noreferrer"&gt;Google Engineering Practices, The Standard of Code Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/contribute/content/dotnet/dotnet-pr-review" rel="noopener noreferrer"&gt;Microsoft Learn, Pull request review process for the .NET contributor guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests" rel="noopener noreferrer"&gt;Atlassian blog, The (written) unwritten guide to pull requests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/how-can-i-keep-ai-coding-agents-from-producing-noisy-diffs-t?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>codequality</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Do I need to submit extra TestFlight info before inviting external testers</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 06:15:06 +0000</pubDate>
      <link>https://dev.to/devconnect/do-i-need-to-submit-extra-testflight-info-before-inviting-external-testers-36pd</link>
      <guid>https://dev.to/devconnect/do-i-need-to-submit-extra-testflight-info-before-inviting-external-testers-36pd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes. Apple requires TestFlight review information before you invite external testers, including a beta app description and feedback email, and sometimes demo account details or notes for reviewers.&lt;/p&gt;

&lt;p&gt;Yes. Before you invite external testers, Apple requires TestFlight review information for the build, and the first external build must be approved by TestFlight App Review first. The required details include a beta app description and a feedback email address, and some apps also need extra review notes or a demo account.&lt;/p&gt;

&lt;p&gt;The part people miss is that internal testing and external testing are not the same workflow. Internal testers can test without this external review step, but external testers cannot be invited until the build has gone through TestFlight App Review. Apple says to create a group in App Store Connect, add the builds you want tested, and make sure the first build is already approved for TestFlight before you send the invite.&lt;/p&gt;

&lt;p&gt;The minimum package is not just a name and a build number. Apple’s TestFlight help says the beta app description is required, and the feedback email is used by testers in the TestFlight app and as the reply-to address for email invitations. The same help page also says you can choose whether the invite shows approved screenshots and category information from the latest approved version.&lt;/p&gt;

&lt;p&gt;Some apps need more than the basic fields. Apple’s TestFlight test information glossary says this review information can include contact information, demo account credentials, and notes specific to TestFlight App Review. Apple’s beta app review documentation also says App Store Connect validates that the submission includes information such as beta app review details before it goes to the review team.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that missing reviewer access blocks the whole external test. If your app needs sign-in, paywalls, special hardware, location permissions, or a non-obvious setup, reviewers need enough information to reach the core experience. Apple’s review guidelines say beta submissions via TestFlight should comply with App Review Guidelines, and the submission should include necessary metadata and fully functional URLs where relevant.&lt;/p&gt;

&lt;p&gt;A practical setup looks like this: add the build in App Store Connect, open TestFlight, fill in Test Information, and write the beta app description as if a reviewer has never seen your product. If there is a demo account, give one that lands directly in the working path, not on a blank onboarding screen. If there are special steps, write them plainly. That is the difference between a smooth review and a rejection for incomplete access.&lt;/p&gt;

&lt;p&gt;You do not need to wait until the last second to enter the information. Apple says you can add the TestFlight information when you add the app to your account or before you invite external testers, and you can update it later. Changes then show up in TestFlight. That makes the safest process simple: prepare the review info first, submit the build for beta review, then invite external testers after approval.&lt;/p&gt;

&lt;p&gt;If you are running testing through a broader workflow, keep the external TestFlight steps separate from how you recruit people. DevConnect is one place to coordinate testers you already know or can reach through your own network, and it is free to use, but the Apple review requirements still apply before external TestFlight invites go out. The platform does not replace Apple’s review fields or approval flow.&lt;/p&gt;

&lt;p&gt;What gets people stuck is assuming the invite itself is the only step. Apple treats the invite as the last step, not the first. If the beta app description is thin, the feedback email is missing, or the reviewer cannot access the app, the build stops before external testers ever see it. The fix is to prepare the review package once, then reuse it for each build that needs external distribution.&lt;/p&gt;

&lt;p&gt;For a first external TestFlight round, the safe checklist is short: fill in TestFlight test information, make sure the beta app description is complete, provide a feedback email, add any demo login or reviewer notes, submit the build for beta app review, and wait for approval before inviting external testers. That sequence matches Apple’s documented flow and avoids the most common stall points.&lt;/p&gt;

&lt;p&gt;If your app has no login and no special setup, the extra work is still not zero. You still need the TestFlight review information, because Apple requires it for external testing. The only thing that changes is how much access detail you have to provide beyond the required description and contact fields.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does Apple review every TestFlight build before external testers can see it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple says a review is required for the first build of a version before external distribution, and significant updates should be submitted again before they go to testers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What information does TestFlight review usually ask for&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple’s help pages point to a beta app description, feedback email, and, when needed, contact info, demo account credentials, and notes for the reviewer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I invite external testers before approval if the build already works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Apple’s documentation says the first build must be approved for TestFlight before you invite external testers. The invite comes after approval, not before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do internal testers need the same TestFlight review info&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apple separates internal and external testing. The external review step is the part that requires TestFlight App Review information, while internal testing follows a different path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-test-information/" rel="noopener noreferrer"&gt;Provide test information - Test a beta version - App Store Connect - Help - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/glossary/testflight-app-review/" rel="noopener noreferrer"&gt;TestFlight App Review - Glossary - Help - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/help/glossary/testflight-test-information/" rel="noopener noreferrer"&gt;TestFlight test information - Glossary - Help - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/testflight/" rel="noopener noreferrer"&gt;TestFlight - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/appstoreconnectapi/beta-app-review-submissions?changes=_2" rel="noopener noreferrer"&gt;Beta App Review Submissions | Apple Developer Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/app-store/review/guidelines/" rel="noopener noreferrer"&gt;App Review Guidelines - Apple Developer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Counting the 14 days yourself?&lt;/strong&gt;&lt;br&gt;
There is a free tracker for exactly that at&lt;br&gt;
&lt;a href="https://devconnectplatform.com/tools/closed-test-tracker?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com/tools/closed-test-tracker&lt;/a&gt;.&lt;br&gt;
No account, no signup, and the link keeps your progress.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/do-i-need-to-submit-extra-testflight-info-before-inviting-ex?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>testing</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Review Agent PRs Without Missing CI or Workflow Changes</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Mon, 07 Sep 2026 06:15:04 +0000</pubDate>
      <link>https://dev.to/devconnect/review-agent-prs-without-missing-ci-or-workflow-changes-57j0</link>
      <guid>https://dev.to/devconnect/review-agent-prs-without-missing-ci-or-workflow-changes-57j0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Review the diff in three passes: app code, CI files, and workflow logic. Then check the Actions or pipeline view, verify required status checks passed on the latest commit, and re-open anything touching secrets, permissions, or triggers.&lt;/p&gt;

&lt;p&gt;Review the pull request in three passes, not one: application code first, then CI and workflow files, then the run results. Agent-generated changes often look clean in the feature files and still break builds, change permissions, or skip critical jobs. A good review treats &lt;code&gt;.github/workflows&lt;/code&gt;, &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;, and any deployment or test orchestration files as first-class code, not metadata.&lt;/p&gt;

&lt;p&gt;Start with the PR summary, commits, and file list. On GitHub, the Files changed tab shows the full diff, and the Checks tab shows build, test, and deployment status. GitHub documents that status checks help reviewers see whether the pull request is ready to merge, and that failing, timed out, or action-required checks need attention before merge. GitLab uses the merge request Changes and Pipelines areas for the same purpose.&lt;/p&gt;

&lt;p&gt;The part people get wrong is reviewing only the code path they asked the agent to change. A prompt like “update the API client” can still produce edits to test commands, workflow triggers, cache settings, or branch gating. Read the file list as a checklist: workflow files, CI config, Docker or build scripts, package lock changes, deployment manifests, and repository rules. GitHub’s protected branch settings and code owner rules exist because these files change merge behavior, not just runtime behavior.&lt;/p&gt;

&lt;p&gt;Then inspect every CI or workflow file line by line. Look for changes to triggers such as &lt;code&gt;push&lt;/code&gt;, &lt;code&gt;pull_request&lt;/code&gt;, &lt;code&gt;pull_request_target&lt;/code&gt;, &lt;code&gt;workflow_dispatch&lt;/code&gt;, or &lt;code&gt;workflow_run&lt;/code&gt;, because those alter when code is tested and who can influence the run. GitHub warns that &lt;code&gt;pull_request_target&lt;/code&gt; and &lt;code&gt;workflow_run&lt;/code&gt; can expose a repository to security issues when used with untrusted pull requests, and it also recommends explicitly declaring the minimum permissions each workflow needs.&lt;/p&gt;

&lt;p&gt;Check for job-level changes that silently reduce coverage. A workflow can still pass while skipping important work if a job is gated by &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;paths&lt;/code&gt;, &lt;code&gt;paths-ignore&lt;/code&gt;, or a &lt;code&gt;workflow: rules&lt;/code&gt; expression. GitHub notes that a skipped job reports success, so a required check can look green even when the intended work never ran. GitLab’s &lt;code&gt;workflow&lt;/code&gt; keyword is evaluated before jobs, so a pipeline decision there can stop jobs from ever existing.&lt;/p&gt;

&lt;p&gt;Compare the new workflow against the old one with a specific question in mind: did the agent change what runs, when it runs, or with what permissions A single edit to a cache key, artifact path, or condition can make a pipeline faster while hiding broken tests. GitHub’s security guidance also calls out dependency caching and low-trust workflows, where write access to cache should be limited and restore-only patterns are safer. That is the kind of detail a surface skim misses.&lt;/p&gt;

&lt;p&gt;Verify the run that belongs to the latest commit, not an older green check from a previous push. GitHub says new commits update the pull request and re-run automated checks, and protected branches can require the latest checks and reviews before merge. If approvals were dismissed or the branch requires the most recent reviewable push, a stale approval should not count as a clean review.&lt;/p&gt;

&lt;p&gt;Open the logs for the CI jobs that matter most. Look for changed installation commands, different environment variables, altered secrets handling, or a new step that only runs on the agent’s branch. If the workflow touches &lt;code&gt;pull_request_target&lt;/code&gt;, review the checkout step with extra care, because GitHub documents that checking out untrusted code there is a security risk. Treat any workflow that can write, deploy, publish, or comment as sensitive until you have traced every permission and every trigger.&lt;/p&gt;

&lt;p&gt;Use ownership rules so CI changes do not slip past the wrong reviewer. CODEOWNERS can request the right reviewers automatically when files in owned paths change, and branch protection can require code owner approval before merge. That matters for agent-generated PRs because the agent may touch areas that look routine, while the real risk sits in the files that control build, release, or deployment behavior.&lt;/p&gt;

&lt;p&gt;When a PR mixes feature code and workflow edits, split the review in your head even if the branch stays single. First answer, “Does the app change do what it says?” Then answer, “Did the workflow still run the right jobs under the right trust model?” Then answer, “Would I trust this on the default branch?” That sequence catches the common failure mode, where the feature looks correct and the pipeline quietly became easier to pass.&lt;/p&gt;

&lt;p&gt;A concrete example helps. Suppose an agent adds a new test and also changes the GitHub Actions workflow to run only on &lt;code&gt;push&lt;/code&gt;, not &lt;code&gt;pull_request&lt;/code&gt;, because the branch looked noisy. The code may be fine, the check may even be green on the branch, and the PR still ships without PR-time validation. That is a review miss, not a CI miss, because the workflow change removed the safety net. GitHub’s status-check and review docs make clear that reviewers need to look at both the diff and the check context.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that you must read files that feel boring. Workflow YAML, branch rules, cache settings, and permissions are where an agent can create the largest blast radius with the smallest diff. If a PR touches any of those files, pause approval until you have traced the exact effect on triggers, secrets, and required checks. That extra minute is cheaper than merging a change that passes one path and breaks the rest.&lt;/p&gt;

&lt;p&gt;For a repeatable review routine, use this order every time: scan the file list for CI and workflow paths, inspect the diff for triggers and permissions, check the latest pipeline or checks tab, then open the logs for the jobs that guard merge or release. If the repository uses code owners or protected branches, confirm the right reviewers were requested and the required checks are still enforced on the target branch. GitHub and GitLab both document those controls as part of the review process.&lt;/p&gt;

&lt;p&gt;If you want a place to standardize that habit across a team, write it down next to your review checklist and link it from the project docs. DevConnect is free to use and focused on reciprocal testing, so it fits teams that want practical feedback without adding cost or gatekeeping, but the review discipline still has to come from the reviewer. &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What files should I treat as CI or workflow files
&lt;/h3&gt;

&lt;p&gt;Look for &lt;code&gt;.github/workflows/*&lt;/code&gt;, &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;, build scripts, deployment manifests, package manager scripts, and any file that sets triggers, permissions, caches, or secrets handling. Those files can change what runs and who can influence the run.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why can a check be green even when the workflow change is bad
&lt;/h3&gt;

&lt;p&gt;A job can be skipped and still report success on GitHub, so a required check may look healthy even when the intended validation never ran. That is why you review the trigger logic and the check result together.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the highest-risk workflow change to look for first
&lt;/h3&gt;

&lt;p&gt;Changes to &lt;code&gt;pull_request_target&lt;/code&gt;, &lt;code&gt;workflow_run&lt;/code&gt;, checkout steps, and workflow permissions deserve the first pass. GitHub specifically warns that untrusted code in those flows can expose the repository to security problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I approve if the code is fine but the workflow is unclear
&lt;/h3&gt;

&lt;p&gt;No. If the workflow or CI diff changes trust boundaries, required checks, or deployment behavior, the review is incomplete until you understand those effects. Protected branches and code owner approval rules exist to block that kind of partial review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do GitLab and GitHub reviews differ here
&lt;/h3&gt;

&lt;p&gt;The layout differs, but the review problem is the same. GitHub centers the Files changed and Checks tabs, while GitLab uses Changes and Pipelines, and both expect reviewers to inspect diffs and automated validation together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What files should I treat as CI or workflow files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for &lt;code&gt;.github/workflows/*&lt;/code&gt;, &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;, build scripts, deployment manifests, package manager scripts, and any file that sets triggers, permissions, caches, or secrets handling. Those files can change what runs and who can influence the run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why can a check be green even when the workflow change is bad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A job can be skipped and still report success on GitHub, so a required check may look healthy even when the intended validation never ran. That is why you review the trigger logic and the check result together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the highest-risk workflow change to look for first&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Changes to &lt;code&gt;pull_request_target&lt;/code&gt;, &lt;code&gt;workflow_run&lt;/code&gt;, checkout steps, and workflow permissions deserve the first pass. GitHub specifically warns that untrusted code in those flows can expose the repository to security problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should I approve if the code is fine but the workflow is unclear&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. If the workflow or CI diff changes trust boundaries, required checks, or deployment behavior, the review is incomplete until you understand those effects. Protected branches and code owner approval rules exist to block that kind of partial review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do GitLab and GitHub reviews differ here&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The layout differs, but the review problem is the same. GitHub centers the Files changed and Checks tabs, while GitLab uses Changes and Pipelines, and both expect reviewers to inspect diffs and automated validation together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/actions/reference/security" rel="noopener noreferrer"&gt;Security reference - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/actions/reference/security/secure-use?learn=getting_started&amp;amp;learnProduct=actions" rel="noopener noreferrer"&gt;Secure use reference - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/pull-requests/reference/status-checks" rel="noopener noreferrer"&gt;Status checks - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/pull-requests/how-tos/review-pull-requests" rel="noopener noreferrer"&gt;Review pull requests - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches" rel="noopener noreferrer"&gt;About protected branches - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.gitlab.com/tutorials/reviews/" rel="noopener noreferrer"&gt;Tutorial: Review a merge request | GitLab Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/how-do-i-review-agent-generated-pull-requests-without-missin?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Do the 14 Days of Closed Testing Have to Be Continuous?</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 21:15:04 +0000</pubDate>
      <link>https://dev.to/devconnect/do-the-14-days-of-closed-testing-have-to-be-continuous-32c8</link>
      <guid>https://dev.to/devconnect/do-the-14-days-of-closed-testing-have-to-be-continuous-32c8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes. For Google Play production access, the 14 days must be continuous, not split up. If a tester opts out, the clock for that tester stops and earlier days do not carry over.&lt;/p&gt;

&lt;p&gt;Yes. For a new personal Google Play developer account, the closed test must meet the 14 day requirement continuously. Google says the 12 testers must be opted in for the last 14 days continuously, and it also says those 14 days must be consecutive to count toward production access.&lt;/p&gt;

&lt;p&gt;The part people get wrong is simple: 14 days in total is not enough if the days are broken up. If a tester opts in, drops out, and later opts back in, Google does not add those separate periods together for the requirement. The tester needs one uninterrupted stretch.&lt;/p&gt;

&lt;p&gt;Google’s own help page explains the reset clearly. It says testers who opt in, test for less than 14 days, and then opt out are not counted, and even if they opt back in later, those 14 days still have to be consecutive. That is the rule that matters when you are trying to unlock production access.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that the clock is per tester, not just per test track. If you have 12 people on the list but one of them leaves the test, that tester no longer helps you satisfy the requirement until they complete a fresh 14 day continuous run. The rest of the group does not cancel that reset.&lt;/p&gt;

&lt;p&gt;Google also distinguishes between being in the test and being active in the app. The help page says a test may be declined if testers are not engaged with the app during the closed test. In practice, that means a tester who stays opted in but never actually uses the app can still cause problems when you apply.&lt;/p&gt;

&lt;p&gt;A useful way to think about it is this: the 14 day rule is a continuous eligibility window, not a tally sheet. Google is checking whether at least 12 testers stayed opted in through the whole period before you applied. The system is not looking for 14 separate days spread across a longer calendar span.&lt;/p&gt;

&lt;p&gt;If one tester drops out on day 9, that person has to re-enter the test and then stay in for 14 uninterrupted days before counting again. If three testers leave and return, each one resets on their own timeline. The cleanest fix is to keep a buffer of extra testers so one person’s absence does not block the application.&lt;/p&gt;

&lt;p&gt;This is why Google’s guidance and community answers often recommend over-recruiting. Google’s official rule is 12 testers continuously opted in for 14 days, but practical advice from the Play community is to keep more than 12 people active so weekends, device issues, or dropped invites do not break your run. The recommendation to recruit 15 to 20 testers is a buffer, not the rule itself.&lt;/p&gt;

&lt;p&gt;Internal testing is different. Google says internal testing can have up to 100 testers and it does not count toward the closed testing requirement for production access. That means an internal test can help you find bugs, but it does not satisfy the 14 day closed test gate.&lt;/p&gt;

&lt;p&gt;The practical workflow is straightforward. Start the closed test, confirm that at least 12 testers accept and remain opted in, and keep the test open long enough for an uninterrupted 14 day stretch. If someone falls out, replace them early enough that the replacement can complete a full continuous run before you apply.&lt;/p&gt;

&lt;p&gt;If you are building with a small group, the safest move is to treat day one as the start of a deadline, not a soft target. Open the test only when you know the testers can stay in place for two full weeks. That avoids the common mistake of applying on day 14 only to discover one tester had a gap and the whole run no longer qualifies.&lt;/p&gt;

&lt;p&gt;DevConnect exists to help with that part of the process by making tester exchange easier on owned property, and you can read more at &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;. The Google requirement still stays the same: the qualifying closed test uses 12 testers who remain opted in continuously for 14 days.&lt;/p&gt;

&lt;p&gt;One more point that people miss is timing around the application itself. Google says the 12 testers must be opted in for the last 14 days continuously when you apply for production access. Waiting longer does not hurt, but waiting longer with gaps does not fix a broken streak. The streak has to exist at the moment you submit.&lt;/p&gt;

&lt;p&gt;So the direct answer is yes, continuous means continuous. If you need production access on a new personal Google Play account, the 14 day closed test has to be one uninterrupted period for each counted tester, and the safest approach is to keep extra testers in reserve.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What happens if a tester opts out on day 13
&lt;/h3&gt;

&lt;p&gt;That tester stops counting for the requirement. They need a new uninterrupted 14 day period after they rejoin before they count again toward the 12 tester minimum.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does “14 days” mean 14 calendar days or 14 active days inside the app
&lt;/h3&gt;

&lt;p&gt;Google’s help page frames the rule as 14 continuous days opted in to the closed test, and it also warns that testers who are not engaged during the closed test can lead to more testing being required. The safe reading is that both opt-in continuity and real engagement matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use internal testing to satisfy the closed testing requirement
&lt;/h3&gt;

&lt;p&gt;No. Google says internal testing is for up to 100 internal testers, and it does not count toward the closed testing requirement for production access. It can help you debug, but it does not unlock production.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I aim for exactly 12 testers
&lt;/h3&gt;

&lt;p&gt;No. Exactly 12 is enough on paper, but it leaves no room for churn, missed invites, or people who stop responding. Google’s rule is 12 continuous testers, while the practical buffer many developers use is higher so the streak survives real-world dropouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  If I missed the rule once, do I have to start from the very beginning
&lt;/h3&gt;

&lt;p&gt;For the tester who dropped out, yes, that tester’s qualifying streak restarts. For the whole group, the application can still succeed if you still have at least 12 other testers whose 14 day streaks are intact when you apply. Google reviews the current qualifying state at the time of submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Google Play Help, App testing requirements for new personal developer accounts, &lt;a href="https://support.google.com/googleplay/android-developer/answer/14151465?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/14151465?hl=en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Help, Set up an open, closed, or internal test, &lt;a href="https://support.google.com/googleplay/android-developer/answer/9845334?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/9845334?hl=en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Help, Understand your release performance and get recommendations on the Test and release overview, &lt;a href="https://support.google.com/googleplay/android-developer/answer/16387982?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/answer/16387982?hl=en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Developer Community, Closed testing day count, &lt;a href="https://support.google.com/googleplay/android-developer/thread/396877228/closed-testing-day-count?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/thread/396877228/closed-testing-day-count?hl=en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Developer Community, Can closed testing testers start on different days, or must all test 14 days consecutively?, &lt;a href="https://support.google.com/googleplay/android-developer/thread/316506471/can-closed-testing-testers-start-on-different-days-or-must-all-test-14-days-consecutively?hl=en" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/thread/316506471/can-closed-testing-testers-start-on-different-days-or-must-all-test-14-days-consecutively?hl=en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Google Play Developer Community, Everything about the 12 testers requirement, &lt;a href="https://support.google.com/googleplay/android-developer/community-guide/255621488/everything-about-the-20-testers-requirement?hl=en-GB" rel="noopener noreferrer"&gt;https://support.google.com/googleplay/android-developer/community-guide/255621488/everything-about-the-20-testers-requirement?hl=en-GB&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What happens if a tester opts out on day 13&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That tester stops counting for the requirement. They need a new uninterrupted 14 day period after they rejoin before they count again toward the 12 tester minimum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does “14 days” mean 14 calendar days or 14 active days inside the app&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google frames the rule as 14 continuous days opted in to the closed test, and also warns that testers who are not engaged may trigger more testing. Both continuity and engagement matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use internal testing to satisfy the closed testing requirement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Internal testing can help you find bugs, but Google says it does not count toward the closed testing requirement for production access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should I aim for exactly 12 testers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Exactly 12 meets the rule on paper, but it leaves no buffer for dropouts or missed invites. A larger pool is safer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If I missed the rule once, do I have to start from the very beginning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The tester who dropped out starts a new qualifying streak. The group can still qualify if you still have 12 testers with intact continuous 14 day runs when you apply.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/14151465?hl=en" rel="noopener noreferrer"&gt;Google Play Help, App testing requirements for new personal developer accounts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/9845334?hl=en" rel="noopener noreferrer"&gt;Google Play Help, Set up an open, closed, or internal test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/16387982?hl=en" rel="noopener noreferrer"&gt;Google Play Help, Understand your release performance and get recommendations on the Test and release overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/thread/396877228/closed-testing-day-count?hl=en" rel="noopener noreferrer"&gt;Google Play Developer Community, Closed testing day count&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/thread/316506471/can-closed-testing-testers-start-on-different-days-or-must-all-test-14-days-consecutively?hl=en" rel="noopener noreferrer"&gt;Google Play Developer Community, Can closed testing testers start on different days, or must all test 14 days consecutively?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/community-guide/255621488/everything-about-the-20-testers-requirement?hl=en-GB" rel="noopener noreferrer"&gt;Google Play Developer Community, Everything about the 12 testers requirement&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Counting the 14 days yourself?&lt;/strong&gt;&lt;br&gt;
There is a free tracker for exactly that at&lt;br&gt;
&lt;a href="https://devconnectplatform.com/tools/closed-test-tracker?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com/tools/closed-test-tracker&lt;/a&gt;.&lt;br&gt;
No account, no signup, and the link keeps your progress.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/closed-test-14-days-continuous?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>android</category>
      <category>googleplay</category>
      <category>testing</category>
      <category>indiedev</category>
    </item>
    <item>
      <title>Did Google Play change app review times for new submissions?</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 21:15:02 +0000</pubDate>
      <link>https://dev.to/devconnect/did-google-play-change-app-review-times-for-new-submissions-ikj</link>
      <guid>https://dev.to/devconnect/did-google-play-change-app-review-times-for-new-submissions-ikj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes. Google Play says some developer accounts now face longer reviews, with new submissions taking up to seven days or longer in exceptional cases, and a fresh submission can reset the review clock.&lt;/p&gt;

&lt;p&gt;Yes. Google Play now says some developer accounts can face review times of up to seven days or longer in exceptional cases, and a new submission while an app is already under review can reset the clock. That is the part people miss when they expect every upload to move on the same day.&lt;/p&gt;

&lt;p&gt;Google Play’s help page for publishing apps says the review process is not fixed to one short window. For certain developer accounts, Google takes more time to review the app to better protect users. The same page says this can result in review times of up to seven days or longer in exceptional cases. That is an official change in expectation, not a user rumor or a one-off support answer.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that the timer is tied to the submission, not to your hope of a fast publish. Google’s submission activity page says each time you submit a group of changes, a unique submission is created, and it tracks that submission through review. A Play Community answer from June 27, 2026 says that if you submit a new change while review is already in progress, it resets the counter. That means another upload can put you back at the start.&lt;/p&gt;

&lt;p&gt;The part people get wrong is assuming all changes behave the same way. A first release, a policy-sensitive update, and a small metadata edit do not feel different from the outside, but they can still move through the same review system. Google’s publishing help also separates app status, update status, and item status, which is a clue that the console tracks more than one thing at once. When you see “in review,” it means Google is actively evaluating the changes, not that the app is waiting in a passive queue.&lt;/p&gt;

&lt;p&gt;For a team shipping on a deadline, the practical move is to stop stacking submissions unless you need to. Submit the bundle you actually want reviewed, then leave it alone until Google finishes. If you discover another issue after submission, fix it with care, because a fresh submission can restart the review count. If you are trying to coordinate testing before launch, use the tools on your own property and keep the flow clean. For separate tester coordination, DevConnect explains its exchange model on its own site at &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;, but that is about finding testers, not about speeding Google’s review.&lt;/p&gt;

&lt;p&gt;Google also provides pre-review checks in Play Console, which run automatically after you make changes and before review finishes. That does not shorten the review window by itself, but it can catch some issues before they become a rejected submission. In practice, that matters because a rejection is often slower than a clean review, and then you still have to fix the problem and submit again.&lt;/p&gt;

&lt;p&gt;If your app has been waiting longer than you expected, check whether the submission was replaced, canceled, or superseded by another one. Google’s submission activity page now keeps a history of submission states, including when something was sent for review, approved, canceled, or published. That history is useful because a delay is not always a pure review delay, sometimes the newer upload is the reason the older one stopped moving.&lt;/p&gt;

&lt;p&gt;The shortest honest answer is that Google Play did not publish one universal timer that covers every new submission. It did say some accounts can take up to seven days or longer, and it did make clear that new submissions can change the review flow. If you are shipping a new app or a new release, plan for that longer window and do not count on a same-day approval.&lt;/p&gt;

&lt;p&gt;A simple example makes the failure mode obvious. You upload version 1.0 on Monday, then notice a signing or policy issue and upload version 1.0.1 on Tuesday while the first one is still in review. The Tuesday upload becomes the submission Google evaluates, and the earlier counter is no longer the one that matters. If you were planning a launch email or a timed feature flag, that reset is the mistake that breaks the schedule.&lt;/p&gt;

&lt;p&gt;For teams trying to stay on top of this, the useful habit is to treat every submission as a new review event. Check the submission activity page, watch for the in-review state, and avoid replacing a still-reviewing build unless the fix is worth the delay. That is slower in the moment, but it is usually faster than restarting the process because you kept changing the target.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How long does Google Play review a new app submission now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google says some developer accounts can see reviews take up to seven days or longer in exceptional cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does uploading a fix while review is in progress restart the review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. A Play Community answer says a new change submitted during review resets the counter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I see whether my submission is still moving through review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Google’s submission activity page shows submission status history, including in review, published, canceled, and rejected states.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do pre-review checks replace app review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Pre-review checks help catch issues earlier, but they do not replace Google’s review process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/9859751?hl=en" rel="noopener noreferrer"&gt;Publish your app - Play Console Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/17118609?hl=en" rel="noopener noreferrer"&gt;About your submission activity - Play Console Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/9859348?hl=en" rel="noopener noreferrer"&gt;Prepare and roll out a release - Play Console Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/answer/14807773?hl=en" rel="noopener noreferrer"&gt;Detect app issues early with pre-review checks - Play Console Help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.google.com/googleplay/android-developer/thread/445447378/app-review-for-first-application-from-new-organization-developer-account?hl=en" rel="noopener noreferrer"&gt;App review for first application from new organization developer account - Google Play Developer Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/did-google-play-change-app-review-times-for-new-submissions?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Can GitHub Sponsors still fund maintainers directly</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 16:15:09 +0000</pubDate>
      <link>https://dev.to/devconnect/can-github-sponsors-still-fund-maintainers-directly-1de0</link>
      <guid>https://dev.to/devconnect/can-github-sponsors-still-fund-maintainers-directly-1de0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes. GitHub Sponsors still lets sponsors fund eligible open source maintainers and organizations directly on GitHub, and payouts are processed through Stripe, not GitHub.&lt;/p&gt;

&lt;p&gt;Yes. GitHub Sponsors still exists, and it still lets people financially support eligible open source maintainers and organizations directly on GitHub. GitHub describes the program as a way to support the people who design, build, and maintain open source projects, and it points sponsors to maintainer profiles and sponsor buttons on GitHub itself.&lt;/p&gt;

&lt;p&gt;The part people get wrong is thinking Sponsors is only a generic donation button. GitHub treats it as a funding program with profile setup, sponsorship tiers, eligibility rules, tax information, and region support. A maintainer does not just flip on a button and receive money without account setup. The path goes through a sponsored developer profile and Stripe Connect payout setup.&lt;/p&gt;

&lt;p&gt;For a maintainer, the practical question is whether they can receive funds on GitHub now, not whether the product was ever real. GitHub’s current documentation says eligible contributors can become sponsored developers, and its public Sponsors page still shows the product as an active way to fund open source work. If you need the platform context, DevConnect is built around the same general idea of funding and reciprocity for builders, and its site is separate from GitHub’s own sponsorship flow.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that direct funding on GitHub is not available everywhere. GitHub says anyone in any region can sponsor eligible maintainers, but the maintainer must live in a supported region to receive funds. That matters because the sponsor and the recipient do not have the same access rules. A sponsor may be able to pay, while the maintainer may still be blocked by region support.&lt;/p&gt;

&lt;p&gt;Eligibility is also broader than many people assume. GitHub’s documentation says open source contributors can qualify if they provide value to a project, and that value includes more than code. Bug reports, issue triage, documentation, leadership, business development, project management, mentorship, and design are all listed as eligible contributions. That means the program is not limited to core commit authors.&lt;/p&gt;

&lt;p&gt;Payouts are not handled as a hand-to-hand transfer from GitHub to the maintainer. GitHub’s terms say Stripe processes and remits the money to the Sponsored Developer’s Stripe Connect account, and GitHub does not itself transmit the funds. That is useful to know when someone asks where the money actually goes, because the answer is into a Stripe-connected payout setup after the sponsorship is made.&lt;/p&gt;

&lt;p&gt;Taxes are part of the answer too. GitHub says sponsored developers must submit tax information, and U.S. maintainers must provide a W-9 before publishing a Sponsors profile. GitHub also says it does not withhold tax from sponsorship payments, and the sponsored contributor is responsible for evaluating and paying their own taxes. That is the part that is inconvenient, but it is part of the current program.&lt;/p&gt;

&lt;p&gt;Sponsors can also fund projects in a few different ways. GitHub lets maintainers add sponsor buttons to repositories, and it also supports sponsorship of individuals and organizations. In other words, the money can support a named maintainer directly, but it can also be routed through an organization profile where that fits the project structure better.&lt;/p&gt;

&lt;p&gt;One detail that matters for expectations is matching. GitHub’s documentation says the GitHub Sponsors Matching Fund has passed, so people should not assume a current matching pool exists. The product still exists, but the special matching program is no longer something to build a funding plan around.&lt;/p&gt;

&lt;p&gt;If you are deciding whether to use it, the simplest answer is still yes, but with conditions. GitHub Sponsors remains a direct way to fund maintainers on GitHub, provided the maintainer is eligible, lives in a supported region, and completes the tax and payout setup. The sponsor side is straightforward. The maintainer side is where the real constraints live.&lt;/p&gt;

&lt;p&gt;For someone setting this up today, the first step is to check the maintainer’s supported-region status, then complete the sponsored developer profile, then add the payout and tax information GitHub requires. After that, the maintainer can place sponsor buttons on profiles and repositories, and sponsors can fund the work through GitHub’s own sponsorship flow.&lt;/p&gt;

&lt;p&gt;The part people also miss is that GitHub’s language is still specific: the platform is for supporting the people and organizations who maintain open source projects, directly on GitHub. That is not a vague community tip jar. It is an active product with current docs, current rules, and current payout mechanics, and it still serves the direct funding use case people ask about.&lt;/p&gt;

&lt;p&gt;If you want to compare the model with other funding paths, the GitHub approach is more structured than a simple donation link. It is tied to GitHub identity, eligibility, tax reporting, and platform payout handling. That structure is the reason it still works for direct maintainer funding, and also the reason it is not frictionless.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Who can receive GitHub Sponsors payouts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub says eligible open source contributors and organizations in supported regions can receive sponsorship funds after they complete profile, tax, and payout setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub Sponsors pay maintainers directly from GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. GitHub says Stripe processes and remits the money to the maintainer’s Stripe Connect account, and GitHub does not transfer the funds itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do sponsors get a tax deduction automatically&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. GitHub says the sponsored contributor is responsible for telling sponsors whether the sponsorship is tied to a tax-exempt entity and whether it may be tax-deductible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can organizations use GitHub Sponsors too&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. GitHub’s documentation says organizations that contribute to open source and operate in a supported region can be sponsored.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors" rel="noopener noreferrer"&gt;GitHub Sponsors documentation - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/getting-started-with-github-sponsors/about-github-sponsors" rel="noopener noreferrer"&gt;About GitHub Sponsors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sponsors/?locale=en-US" rel="noopener noreferrer"&gt;GitHub Sponsors · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/receiving-sponsorships-through-github-sponsors/about-github-sponsors-for-open-source-contributors" rel="noopener noreferrer"&gt;About GitHub Sponsors for open source contributors - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/sponsors/sponsoring-open-source-contributors/about-sponsorships-fees-and-taxes" rel="noopener noreferrer"&gt;About sponsorships, fees, and taxes - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/site-policy/github-terms/github-sponsors-additional-terms" rel="noopener noreferrer"&gt;GitHub Sponsors Additional Terms - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/can-github-sponsors-still-be-used-to-fund-open-source-mainta?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>programming</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Set Up GitHub License Compliance Checks on PRs</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 16:15:08 +0000</pubDate>
      <link>https://dev.to/devconnect/set-up-github-license-compliance-checks-on-prs-95k</link>
      <guid>https://dev.to/devconnect/set-up-github-license-compliance-checks-on-prs-95k</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Use GitHub’s dependency review license checks, then require that status check in a branch rule or ruleset so pull requests cannot merge when a dependency violates your license policy.&lt;/p&gt;

&lt;p&gt;Use GitHub’s dependency review for pull requests, define the licenses you allow, then require that check in branch protection or a ruleset. When the check fails, the pull request stays unmergeable until the offending dependency is removed or approved. GitHub documents dependency review as the place where license information is surfaced on dependency changes, and its license compliance feature is designed to enforce policy across pull requests.&lt;/p&gt;

&lt;p&gt;Start with the repository side, because the enforcement point lives there. GitHub says dependency review is available for public repositories and for private repositories with GitHub Code Security or GitHub Advanced Security enabled. The review action can compare dependency changes in a pull request and report invalid licenses, so that is the control you wire into CI first.&lt;/p&gt;

&lt;p&gt;Add the dependency review action to your pull request workflow. GitHub’s documentation shows the action configured in GitHub Actions, and the config file can list SPDX-compliant license identifiers or expressions. That is the part people get wrong: they skip the workflow and try to enforce licensing only in policy text, but nothing blocks a merge unless a status check actually runs on the pull request.&lt;/p&gt;

&lt;p&gt;A minimal workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;dependency-review&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
 &lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;contents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
 &lt;span class="na"&gt;pull-requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
 &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Dependency Review&lt;/span&gt;
 &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/dependency-review-action@v4&lt;/span&gt;
 &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="s"&gt;config-file:.github/dependency-review-config.yml&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub’s docs show the same pattern, and the exact action version can change over time, so pin the version you use and update it intentionally. The important part is that the workflow runs on &lt;code&gt;pull_request&lt;/code&gt;, not only on &lt;code&gt;push&lt;/code&gt;, because merge blocking has to happen before code lands on the protected branch.&lt;/p&gt;

&lt;p&gt;Create the license policy file next. GitHub supports SPDX license identifiers and expressions in the dependency review configuration, which is where you define acceptable and unacceptable licenses for new dependencies introduced by a pull request. Keep the policy narrow enough to match your legal review, because a broad allow list is easier to maintain than a vague exception process.&lt;/p&gt;

&lt;p&gt;A practical config file can start simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;license-check&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="na"&gt;deny&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;GPL-3.0-only&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;AGPL-3.0-only&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;LGPL-3.0-only&lt;/span&gt;
 &lt;span class="na"&gt;allow&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;MIT&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Apache-2.0&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;BSD-3-Clause&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the exact license identifiers your team has approved, and keep the file in the repository so changes to policy are reviewed like code. The inconvenient part is that the first version will not be perfect, because some packages ship dual licenses, some transitive dependencies carry different terms, and some ecosystems report license metadata inconsistently. GitHub’s license compliance pages are built around reviewing new dependency introductions, not pretending every license question is simple.&lt;/p&gt;

&lt;p&gt;Protect the default branch with a required check. GitHub’s docs and marketplace listing both point to required status checks before merging, which is the gate that turns a scan into an actual block. Add the dependency review job to the required checks list, and make sure the rule applies to the branch your pull requests merge into, usually &lt;code&gt;main&lt;/code&gt; or &lt;code&gt;trunk&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If your organization uses rulesets, require the dependency compliance result there instead of relying on a loose branch rule. GitHub’s recent license compliance feature is built around a ruleset condition called “Require license compliance check results before merging,” which is the cleanest way to make a license failure stop the merge. That is the enforcement layer you want when multiple repositories need the same policy.&lt;/p&gt;

&lt;p&gt;Test the whole path with a dependency that you know violates policy. Open a pull request that adds or upgrades a package with a denied license, then confirm the status check fails and the merge button is blocked. If the check passes when it should fail, the usual causes are wrong workflow trigger, missing permissions, policy file path mismatch, or the branch rule not requiring the check.&lt;/p&gt;

&lt;p&gt;Handle exceptions through the policy, not through side channels. GitHub’s license compliance flow lets reviewers assess a dependency and approve or reject it through the compliance process, which keeps decisions auditable. If you need an exception for a specific package, record that in the policy or the reviewer workflow, then require a fresh check so the merge gate reflects the current decision.&lt;/p&gt;

&lt;p&gt;Watch the edge cases that usually surprise teams. Dependency review only sees what is introduced in the pull request, so a branch can still contain old noncompliant dependencies until they are touched by a change. Internal packages, private registries, and nested transitive dependencies can also produce license metadata that needs review before you call the system done. GitHub’s own guidance frames dependency review as a diff-based control, which is why baseline cleanup matters.&lt;/p&gt;

&lt;p&gt;A good rollout path is repository by repository. Enable the workflow, add the policy file, require the check, then fix the failures that come back from real pull requests. After that, copy the pattern into your organization template so new repositories start with the control already in place. If you already use DevConnect for testing and release coordination, keep that workflow separate, because license compliance belongs on the repo that owns the code.&lt;/p&gt;

&lt;p&gt;For a smaller team, one maintainer can own the initial license list and the exception review. For a larger org, GitHub’s enterprise license compliance feature is built for centralized policy enforcement, with compliance reviewers handling requests from developers who hit a blocked dependency. That central review path matters because it keeps the legal decision separate from the merge decision.&lt;/p&gt;

&lt;p&gt;If you want the shortest working version, the sequence is this: enable dependency review, define allowed and denied licenses, run it on pull requests, and require the resulting status check before merge. Once that is in place, a noncompliant dependency does not rely on memory, code review discipline, or a manual reminder. The pull request itself carries the block.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can GitHub block merges for license violations without GitHub Actions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub’s license compliance features are tied to dependency review and required merge checks. If you do not use Actions, you still need an enforcement point that produces a required status or compliance result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does dependency review check old dependencies already in the branch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Dependency review is diff-based and focuses on dependency changes in the pull request. Existing noncompliant packages usually need a separate cleanup PR before the policy is clean.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What license format should I use in the policy file&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use SPDX license identifiers or expressions. GitHub’s dependency review configuration documents that format explicitly, so keep the policy in SPDX terms instead of free text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should I do when a package has a dual license&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decide which license your organization accepts, then encode that decision in the allow or deny policy. Dual-licensed packages need a deliberate policy choice, not an ad hoc merge exception.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can this replace legal review for every package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. It blocks known noncompliant changes, but legal and procurement review still decide what your team considers acceptable, especially for exceptions, dual licensing, and vendor-specific terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/dependency-review" rel="noopener noreferrer"&gt;Dependency review - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action" rel="noopener noreferrer"&gt;Configuring the dependency review action - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/open-source-license-compliance" rel="noopener noreferrer"&gt;About open source license compliance - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/marketplace/actions/dependency-review" rel="noopener noreferrer"&gt;Dependency Review - GitHub Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.blog/enterprise-software/governance-and-compliance/how-github-maintains-compliance-for-open-source-dependencies/" rel="noopener noreferrer"&gt;How GitHub maintains compliance for open source dependencies - The GitHub Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.blog/changelog/2026-06-30-open-source-license-compliance-is-in-public-preview/" rel="noopener noreferrer"&gt;Open source license compliance is in public preview - GitHub Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/how-do-i-set-up-license-compliance-checks-so-pull-requests-b?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Virginia Remote Job Postings Must Show Pay Ranges</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 11:15:04 +0000</pubDate>
      <link>https://dev.to/devconnect/virginia-remote-job-postings-must-show-pay-ranges-3h9i</link>
      <guid>https://dev.to/devconnect/virginia-remote-job-postings-must-show-pay-ranges-3h9i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes. In Virginia, job postings and hiring ads must include a wage or salary range, and a remote role posted for a Virginia hiring opportunity is covered too.&lt;/p&gt;

&lt;p&gt;Yes. Virginia’s current rule says job postings and hiring advertisements must include a wage or salary range, and that includes remote roles when they are posted as Virginia hiring opportunities. The rule took effect on July 1, 2026, and the statute applies to public and internal postings for jobs, promotions, transfers, and other employment opportunities.&lt;/p&gt;

&lt;p&gt;The part people get wrong is assuming that “remote” means “outside the rule.” That is not how the Virginia statute is written. It regulates the posting, not the work location. If the employer is advertising a position for Virginia hiring, the posting needs a good-faith wage or salary range, even when the employee works from home.&lt;/p&gt;

&lt;p&gt;The law’s definition of a wage or salary range is the minimum and maximum pay for the position, set in good faith. The statute says employers may use an applicable pay scale, a previously determined range, the actual range paid to equivalent positions, or the budgeted amount available for the role. That matters because a vague phrase like “competitive pay” is not a range.&lt;/p&gt;

&lt;p&gt;The inconvenient part is that the requirement is broader than many employers expect. Virginia’s statute covers each public and internal posting for each job, promotion, transfer, or other employment opportunity. A company cannot fix the problem by only posting the range on external listings and leaving internal or recruiter-facing versions blank.&lt;/p&gt;

&lt;p&gt;Another common mistake is mixing up salary transparency with salary history. Virginia’s wage-range rule is separate from the ban on seeking or using a prospective employee’s wage or salary history. Employers should not ask candidates what they made before and then use that as the basis for the offer. The posted range has to stand on its own.&lt;/p&gt;

&lt;p&gt;For employers, the practical step is simple: review every template used for Virginia roles, including remote listings, recruiter messages that function as advertisements, internal requisitions, and career-page postings. Add a real range before the role goes live. If the role is not actually open to Virginia hiring, keep the posting language consistent with the jurisdictions where the role is being offered.&lt;/p&gt;

&lt;p&gt;If you are a job seeker, check the posting for a minimum and maximum figure, not just a single top-end number. A compliant range should tell you the floor and the ceiling for the position. If a posting says only “up to” one number, or gives a wide band without context, that is the kind of posting worth asking the employer to clarify before you spend time on the process.&lt;/p&gt;

&lt;p&gt;The safest reading is this: remote does not create an exemption, and Virginia now expects pay ranges in the posting itself. Employers that are hiring into Virginia should treat the range as part of the job ad, not as an optional later detail. That is the piece most teams miss when they move quickly on distributed hiring.&lt;/p&gt;

&lt;p&gt;If you are building hiring workflows around this, use one source of truth for pay bands and make the posting pull from it. That avoids mismatches between the recruiter’s draft, the published ad, and the offer letter. DevConnect’s platform page is here if you are using its hiring tools for your own roles: &lt;a href="https://devconnectplatform.com?ref=devto" rel="noopener noreferrer"&gt;https://devconnectplatform.com?ref=devto&lt;/a&gt;. The key point is still the same, the posted range has to be there before applicants see the role.&lt;/p&gt;

&lt;p&gt;One last detail matters for compliance teams: the statute is about disclosure in the posting, not about whether the role is hybrid, on-site, or remote. That means the workflow problem is editorial and legal at the same time. The listing needs the range, and the range needs to be set in good faith before the ad is published.&lt;/p&gt;

&lt;h2&gt;
  
  
  What employers should do next
&lt;/h2&gt;

&lt;p&gt;Audit all job templates used for Virginia hiring, including remote listings.&lt;/p&gt;

&lt;p&gt;Replace phrases like “competitive compensation” with a true minimum and maximum range.&lt;/p&gt;

&lt;p&gt;Keep the same range visible in public ads and internal postings.&lt;/p&gt;

&lt;p&gt;Stop using past salary as a shortcut for setting the offer.&lt;/p&gt;

&lt;p&gt;If a remote role is open to Virginia candidates, treat the posting as covered by Virginia’s wage-range rule.&lt;/p&gt;

&lt;h2&gt;
  
  
  What job seekers should look for
&lt;/h2&gt;

&lt;p&gt;Look for a posted floor and ceiling, not a single aspirational number.&lt;/p&gt;

&lt;p&gt;Check whether the role is remote but still advertised for Virginia hiring.&lt;/p&gt;

&lt;p&gt;If the posting has no range, ask for it before you apply or interview.&lt;/p&gt;

&lt;p&gt;If the employer later changes the range, compare the new version to the version you saw first, because the posting itself is the point of compliance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters in practice
&lt;/h2&gt;

&lt;p&gt;A lot of remote hiring still uses recycled templates from before July 1, 2026. Those templates often say nothing about pay, or they hide it in a later recruiter step. Virginia’s current rule pushes the range into the posting itself, so the first public version of the role has to carry the pay information. That is the version people and search engines see first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources of confusion to avoid
&lt;/h2&gt;

&lt;p&gt;Do not confuse Virginia’s wage-range rule with federal wage laws. Do not confuse remote work with out-of-state hiring. Do not confuse a compensation estimate with a good-faith range. And do not assume that internal postings are exempt, because the statute explicitly includes them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does Virginia’s rule apply to internal job postings too&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. The statute covers each public and internal posting for each job, promotion, transfer, or other employment opportunity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is “competitive pay” enough in a Virginia job ad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Virginia requires a wage or salary range, which means a minimum and maximum set in good faith.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can an employer use my past salary to set the range&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Virginia separately restricts employers from seeking or relying on wage or salary history in the way candidates are paid or considered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If the remote job is based in another state, does Virginia still matter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Virginia matters when the employer is posting the role as a Virginia hiring opportunity or using a posting that falls within Virginia’s covered advertisements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://doli.virginia.gov/2026/07/01/employment-law-updates-new-legislation-protecting-virginia-workers-applies-beginning-july-1-2026/" rel="noopener noreferrer"&gt;DOLI – Virginia Department of Labor and Industry, Employment Law Updates: New Legislation Protecting Virginia Workers Applies Beginning July 1, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://law.lis.virginia.gov/vacodeupdates/title40.1/section40.1-28.7%3A12/" rel="noopener noreferrer"&gt;Code of Virginia, § 40.1-28.7:12 and related definitions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://law.lis.virginia.gov/vacodefull/title40.1/chapter3/article1/" rel="noopener noreferrer"&gt;Code of Virginia, Article 1. General Provisions, Title 40.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lis.virginia.gov/bill-details/20261/HB636?_hsmi=417561974" rel="noopener noreferrer"&gt;LIS bill details, HB636, wage or salary range transparency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dhrm.virginia.gov/jobs-and-careers/jobs-and-salary-structure" rel="noopener noreferrer"&gt;Virginia Department of Human Resource Management, Jobs and Salary Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jobs.virginia.gov/jobs/attorney-remote-hourly-remote-1-alternate" rel="noopener noreferrer"&gt;Virginia jobs posting example with posted salary range&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/do-remote-jobs-in-virginia-now-need-to-show-wage-ranges-in-p?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>career</category>
      <category>hiring</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to review AI coding agent code with Copilot</title>
      <dc:creator>Dev Connect</dc:creator>
      <pubDate>Sun, 06 Sep 2026 11:15:02 +0000</pubDate>
      <link>https://dev.to/devconnect/how-to-review-ai-coding-agent-code-with-copilot-2g2g</link>
      <guid>https://dev.to/devconnect/how-to-review-ai-coding-agent-code-with-copilot-2g2g</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Open the pull request, request Copilot as a reviewer, read each comment like human feedback, apply or reject suggested changes, then ask for a re-review after new pushes.&lt;/p&gt;

&lt;p&gt;Open the pull request on GitHub, request Copilot in the Reviewers panel, then read its comments line by line before you merge. Copilot leaves comment reviews, not approvals, so it helps you inspect the code, it does not replace your judgment.&lt;/p&gt;

&lt;p&gt;The basic flow is simple. Create or open the pull request, find Copilot under Reviewers in the right sidebar, click Request, then wait for the review to finish. GitHub says this usually takes less than 30 seconds, and the review appears as normal PR comments you can reply to, resolve, hide, or react to.&lt;/p&gt;

&lt;p&gt;Treat Copilot’s output like a fast first pass, not like a final gate. Its comments are useful for spotting missed edge cases, unclear code, or refactors that the agent should have made, but the pull request still needs a human to decide whether the change is correct for the repository, the release, and the current issue.&lt;/p&gt;

&lt;p&gt;The part people get wrong is scanning only the summary. The summary can be helpful, but the review lives in the individual comments and suggested edits. Read the exact lines Copilot points to, because that is where the practical work is: naming mismatches, missing tests, weak error handling, and changes that look safe but break a nearby path.&lt;/p&gt;

&lt;p&gt;If Copilot suggests a fix, decide whether the change belongs in the agent’s branch, in your branch, or nowhere. You can apply a single suggestion, group several suggestions into one commit, or use Fix with Copilot if your repository has Copilot cloud agent enabled and you want Copilot to implement the feedback directly. That is useful for small, local corrections.&lt;/p&gt;

&lt;p&gt;When the suggestion is correct but incomplete, add the missing context yourself. A good pattern is to accept the code shape Copilot proposed, then tighten the part it could not infer, such as a product-specific validation rule, a service boundary, or a test that encodes an internal invariant. The AI can speed up the cleanup, but it does not know the whole business rule set unless you tell it.&lt;/p&gt;

&lt;p&gt;When the suggestion is wrong, leave the comment unresolved until you have a reasoned answer. A quick thumbs down helps train the review system, and a written reply helps future readers understand why the suggestion did not fit. GitHub supports reactions, replies, resolve, and hide, so you can keep the discussion attached to the exact line that caused the issue.&lt;/p&gt;

&lt;p&gt;After the agent pushes new changes, request a re-review if you want Copilot to look again. Copilot does not automatically re-review every new push unless automatic review is configured for new pushes, so a stale review can sit there while the code has already changed. That is the inconvenient part, and it is easy to miss in a busy pull request.&lt;/p&gt;

&lt;p&gt;Automatic review is worth enabling when your team wants every pull request checked by default. GitHub lets you configure automatic code review for your own pull requests, a repository, or an organization, and you can also set review behavior for new pushes. Manual review still matters, because automatic review only changes when Copilot runs, not how carefully you read the result.&lt;/p&gt;

&lt;p&gt;Custom instructions are the most useful way to make Copilot review the way your team works. Put repository-wide review guidance in &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;, or add path-specific instructions for special areas like security, migrations, or UI code. GitHub says Copilot reads these instructions from the head branch, so you can test review guidance in the same pull request without merging it first.&lt;/p&gt;

&lt;p&gt;If your repository uses agent skills or MCP servers, Copilot review can use that context too. GitHub says the review is more likely to use those tools when the skill directory is clearly review-focused, when instructions point Copilot at specific context, or when the pull request description references relevant IDs. That means the review can improve, but it also means the review session may depend on repository setup, not just the diff.&lt;/p&gt;

&lt;p&gt;For a practical review, use the same checklist you would use on a human-authored pull request. Check correctness first, then tests, then edge cases, then readability. Look for behavior changes in error paths, missing null checks, overbroad refactors, and suggested edits that make one case better while quietly making another case worse. Copilot is good at obvious cleanup, and less reliable where the code meets product rules.&lt;/p&gt;

&lt;p&gt;A concrete example helps. Suppose an AI coding agent adds a payment validation helper and Copilot flags that the helper assumes every currency uses the same decimal precision. Accepting the suggestion without checking would be a mistake, because the fix is not just “add a test,” it is “confirm the rule for each currency and then encode that rule in the test suite.” That is the kind of review that saves time later.&lt;/p&gt;

&lt;p&gt;If you want to work faster, keep the conversation local to the pull request. Ask Copilot to review the branch, read the line comments, fix the branch, and re-review the same pull request until the discussion is quiet. That keeps the review history attached to the change, which makes it easier for the next human reviewer to see what was already checked and what still needs attention.&lt;/p&gt;

&lt;p&gt;GitHub also exposes this workflow through the REST API by requesting &lt;code&gt;copilot-pull-request-reviewer[bot]&lt;/code&gt; as a reviewer. That matters if you want to automate review requests from your own tooling on GitHub, but it does not change the core rule: someone still has to read the comments and decide whether the code is ready.&lt;/p&gt;

&lt;p&gt;If you are reviewing an AI coding agent’s output, the goal is not to let Copilot “approve” the work for you. The goal is to use Copilot to surface problems quickly, then do the human part well, which is understanding the change in context, checking the behavior that matters, and making the merge decision with the full diff in front of you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does GitHub Copilot approve pull requests on GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Copilot leaves a comment review, not an approval or a request for changes, and it does not count toward required approvals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can Copilot review every new push automatically&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, if you enable automatic code review and the new-push review setting for the repository, organization, or your own pull requests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I make Copilot review code with my team’s rules&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add repository custom instructions in &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;, and add path-specific instructions where you need special review behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should I do when Copilot’s review is wrong&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reply on the pull request, resolve or hide the comment if needed, and give feedback with thumbs down so the review system gets a signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review" rel="noopener noreferrer"&gt;Using GitHub Copilot code review on GitHub - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review" rel="noopener noreferrer"&gt;Configuring automatic code review by GitHub Copilot - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/concepts/agents" rel="noopener noreferrer"&gt;Concepts for GitHub Copilot agents - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/get-started/learning-to-code/getting-feedback-on-your-code-from-github-copilot" rel="noopener noreferrer"&gt;Getting feedback on your code from GitHub Copilot - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review?tool=webui" rel="noopener noreferrer"&gt;Using GitHub Copilot code review - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/pull-requests/concepts/giving-reviews" rel="noopener noreferrer"&gt;Giving reviews - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Originally published at &lt;a href="https://devconnectplatform.com/answers/how-do-i-review-code-from-an-ai-coding-agent-using-github-co?ref=devto" rel="noopener noreferrer"&gt;devconnectplatform.com&lt;/a&gt;, where it is kept up to date.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>codequality</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
