Get Assigned Sources of Stock in Multi-source Inventory (MSI) Magento 2.

Retrieves Assigned Sources links that are assigned to specific stocks in Multi-Source Inventory Magento 2.

You can check assigned sources for the stock from admin panel, Stores -> Inventory -> Stock

Edit any stocks from the grid, Go to Sources Tab, You can see a list of assigned sources for a given stock.

You can get all the assigned source using programmatically by GetStockSourceLinksInterface class.

Full Interface Path:
Magento\InventoryApi\Api\GetStockSourceLinksInterface

Code snippet to fetch a list of assigned source for stock,

<?
namespace Jesadiya\AssignedSource\Model;

use Exception;
use Psr\Log\LoggerInterface;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\InventoryApi\Api\GetStockSourceLinksInterface;
use Magento\InventoryApi\Api\Data\StockSourceLinkInterface;

class AssignedSourceList
{
    /**
     * @var SearchCriteriaBuilder
     */
    private $searchCriteriaBuilder;

    /**
     * @var GetStockSourceLinksInterface
     */
    private $getStockSourceLinks;

    /**
     * @var LoggerInterface
     */
    private $logger;

    public function __construct(
        SearchCriteriaBuilder $searchCriteriaBuilder,
        GetStockSourceLinksInterface $getStockSourceLinks,
        LoggerInterface $logger
    ) {
        $this->searchCriteriaBuilder = $searchCriteriaBuilder;
        $this->getStockSourceLinks = $getStockSourceLinks;
        $this->logger = $logger;
    }

    /**
     * Retrieves links that are assigned to $stockId
     *
     * @param int $stockId
     * @return StockSourceLinkInterface[]
     */
    public function getAssignedSource(int $stockId): array
    {
        $searchCriteria = $this->searchCriteriaBuilder
            ->addFilter(StockSourceLinkInterface::STOCK_ID, $stockId)
            ->create();

        $result = [];
        foreach ($this->getStockSourceLinks->execute($searchCriteria)->getItems() as $link) {
            $result[$link->getSourceCode()] = $link;
        }

        return $result;
    }
}

Call function to fetch assigned source result,

$stockId = (int)1;
$result = $this->getAssignedSource($stockId);

foreach ($result as $source) {
    var_dump($source->getData());
}

Output:

'link_id' => string '1' (length=1)
'stock_id' => string '1' (length=1)
'source_code' => string 'default' (length=7)
'priority' => string '1' (length=1)

You can fetch a list of assigned sources for a stock as a resultant array. I have given result for Default Stock of Native Magento.

If Stock has multiple assigned sources, Output will display multiple source results.