Il supporto team di Eclipse definisce le API che consentono l'integrazione nei plugin della funzione di un repository di gestione della configurazione e di creazione delle versioni. La funzione fornita da un repository influisce principalmente sul flusso di lavoro dell'utente, in quanto sono presenti ulteriori passi per il recupero dei file, il confronto del contenuto con il contenuto locale, la creazione delle versioni e la restituzione di file aggiornati al repository. L'obiettivo dell'API del plugin di team è quello di essere sufficientemente passiva da consentire ai fornitori di plugin di repository di definire il proprio flusso di lavoro in modo che gli utenti che conoscono bene il prodotto possano utilizzare la piattaforma in modo simile.
Questo obiettivo è realizzato fornendo vari blocchi di generazione:
Un fornitore di repository consente la sincronizzazione delle risorse dello spazio di lavoro con un'ubicazione remota. Come minimo, consente di inserire le risorse dello spazio di lavoro in un'ubicazione remota e di estrarre le risorse da un'ubicazione remota nello spazio di lavoro. Un fornitore di repository è associato ad un progetto e controlla le risorse del progetto, fornendo facoltativamente una classe IFileModificationValidator e una classe IMoveDeleteHook. Esiste un unico fornitore di repository associato a ciascun progetto. Un utente associa un fornitore di repository ad un progetto fornendo una classe IConfigurationWizard. I fornitori di repository possono anche partecipare all'esportazione e all'importazione dei progetti nello spazio di lavoro, mediante la funzione dell'insieme di progetti di team. Per supportare ciò, un fornitore di repository deve implementare una classe ProjectSetCapability.
Consente ad altri plugin di indicare la gestione speciale delle risorse rispetto alle operazioni del team. Il fornitore di repository può contrassegnare le risorse come private di team, nascondendo così le risorse agli altri plugin. Questa operazione viene eseguita mediante il metodo IResource#setTeamPrivateMember e viene in genere effettuata per nascondere all'utente i metafile specifici del fornitore di repository. I generatori, inoltre, contrassegnano spesso l'output di generazione come derivato, il che indica a un fornitore di repository che la risorsa è transitoria e potrebbe essere ignorata dal fornitore di repository. Un fornitore può controllare questo indicatore su una risorsa mediante il metodo IResource#isDerived.
Inoltre, altri plugin possono aggiungere suggerimenti per il fornitore di repository, relativi alle informazioni sul tipo di file, mediante l'estensione org.eclipse.team.core.fileTypes e relativi ai file comuni che devono essere ignorati dal repository, mediante l'estensione org.eclipse.team.core.ignore.
Il supporto di sincronizzazione fornisce classi e interfacce per la gestione di insiemi dinamici di informazioni sulla sincronizzazione (SyncInfo, SyncInfoSet). Questo supporto consente di gestire le informazioni sulle varianti delle risorse dello spazio di lavoro. Ad esempio, con FTP è possibile memorizzare la data/ora dell'ultimo file remoto e la base per la risorsa attualmente caricata. Il supporto di sincronizzazione fornisce le API per consentire la gestione e la durata delle varianti delle risorse e per consentire all'utente di visualizzare lo stato di sincronizzazione.
Anche il supporto UI è strutturato in modo passivo. I segnaposto per le azioni dei fornitori di team, le preferenze e le proprietà vengono definiti dal plugin dell'interfaccia utente di team, anche se è compito del fornitore del plugin di team definire questi elementi UI. Il plugin dell'interfaccia utente di team include anche una semplice procedura guidata estensibile che consente agli utenti di associare i progetti ai repository. I plugin possono fornire il contenuto per tale procedura guidata in modo da consentire all'utente l'inserimento di informazioni specifiche del repository.
All'interno di una piattaforma possono coesistere più fornitori di repository senza che si generino conflitti. In effetti è persino possibile installare implementazioni client differenti per lo stesso repository. Ad esempio, si può installare un client CVS progettato per gli esperti e uno per gli utenti.