Skip to content

Commit 513fa42

Browse files
authored
Merge pull request #118 from packagist/explain-synchronizations
Add more details to Synchronizations page
2 parents 5dc8da6 + fc78ad9 commit 513fa42

File tree

2 files changed

+72
-17
lines changed

2 files changed

+72
-17
lines changed

docs/synchronizations-faq.md

Lines changed: 71 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,79 @@
1-
# Synchronization FAQ
2-
##
1+
# Synchronizations
2+
## Synchronization of users, teams, permissions and repositories
33

4-
Synchronizations allow you to keep packages, teams, their members, and access permissions in sync with your code hosting platform, e.g. GitHub, GitLab or Bitbucket.
4+
To simplify the initial setup and maintenance of a Private Packagist organization, we offer optional synchronization for GitHub organizations,
5+
Bitbucket workspaces and GitLab groups. This synchronization keeps teams, their members, and access permissions in sync.
6+
So you only need to manage users and permissions in a single place.
57

6-
## What happens if you promote a synchronization to a primary synchronization?
8+
Apart from synchronizing teams, users, and permissions, setting up the synchronization will simplify the addition of new packages
9+
to your Composer repository. When you create a **new repository** on GitHub, Bitbucket, or GitLab, it will be **added as a
10+
Composer package automatically** if it contains a _composer.json_ file. If you’d like to add existing repositories as packages,
11+
you can do so with the click of a button on the Packages tab in your organization.
12+
13+
**Update web hooks** notifying Packagist of new code pushes will be installed in the background, and **credentials to access
14+
the package** will be **configured automatically**.
15+
16+
## Getting started
17+
18+
You can log into Private Packagist using an account on GitHub.com, Bitbucket.org, or GitLab.com with the relevant [OAuth integration](integration-github-bitbucket-gitlab.md)
19+
If you already have an account you can connect these services to your existing account on your [profile page](https://packagist.com/profile).
20+
21+
You can then either create a new organization directly synchronized with a GitHub organization, Bitbucket workspace or a GitLab group,
22+
or you can enable synchronization for an existing Organization in _Settings_.
23+
24+
![Synchronization](/Resources/public/img/docs/features/Sync-20241218.png)
25+
26+
## Supported providers
27+
28+
### GitHub
29+
* Synchronization:
30+
* Keeps teams, their members, and access permissions in sync with your GitHub organization
31+
* Code Credentials: GitHub App or GitHub API Token
32+
* Webhooks: Code changes, releases, created repositories, team creation or member changes
33+
34+
### GitHub Enterprise Server
35+
* Synchronization:
36+
* Keeps team members and access permissions in sync with your GitHub Enterprise organizations
37+
* Code Credentials: GitHub API Token
38+
* Webhooks: Code changes, releases, created repositories, team creation or member changes
39+
40+
### Bitbucket Cloud (bitbucket.org)
41+
* Synchronization:
42+
* Keeps groups, their members, and access permissions in sync with your Bitbucket workspace
43+
* Code Credentials: Bitbucket API Key or Bitbucket App Password
44+
* Webhooks: Code changes and releases
45+
46+
### Bitbucket Data Center / Server
47+
* Synchronization:
48+
* Keeps users and access permissions in sync with your Bitbucket Server projects
49+
* Individual collaborators aren't supported
50+
* Code Credentials: personal access token which are available since Bitbucket Server 5.5 or username and password for older versions
51+
* Webhooks: Code changes and releases
52+
53+
#### GitLab
54+
* Synchronization:
55+
* Keeps teams, their members, and access permissions in sync with your GitLab groups
56+
* Individual collaborators aren't supported
57+
* Code Credentials: GitLab API token
58+
* Webhooks: Code changes and releases
59+
60+
#### GitLab Self-Managed
61+
* Synchronization:
62+
* Keeps teams, their members, and access permissions in sync with your GitLab groups
63+
* Individual collaborators aren't yet supported
64+
* Code Credentials: GitLab API Token
65+
* Webhooks: Code changes and releases
66+
67+
## Frequently asked questions
68+
69+
### What happens if you promote a synchronization to a primary synchronization?
770

871
Synchronized Private Packagist organizations automatically have all admins and owners of the remote organization of the primary synchronization assigned to the admins and owners teams in Private Packagist. Admins and owners of additional synchronized remote organizations are not added to the admins or owners teams in Private Packagist.
972

1073
When promoting a synchronization to primary, admins and owners of the corresponding remote organization will now be the sole members of the admins and owners teams on Private Packagist.
1174
So keep in mind that if you switch the primary synchronization to a different service (e.g. from GitHub to Bitbucket), all admins and owners who do not have their user accounts connected to the new service yet (Bitbucket in the example) will lose admin/owner access to the Private Packagist organization. To restore their access, the users have to connect their account to the new service on the profile page.
1275

13-
## How to migrate a synchronization from GitHub to Bitbucket?
76+
### How to migrate a synchronization from GitHub to Bitbucket?
1477

1578
1. Add a new synchronization with your Bitbucket workspace.
1679
2. Delete the packages that were created by the GitHub synchronization. You can filter by the GitHub synchronization on the package list page and then you can delete the packages from that list.
@@ -19,19 +82,19 @@ So keep in mind that if you switch the primary synchronization to a different se
1982

2083
You can follow the same steps above in case you want to migrate from Bitbucket to GitLab or the other way around.
2184

22-
## How to migrate from one organization to another one in GitHub?
85+
### How to migrate from one organization to another one in GitHub?
2386

2487
1. Add a new synchronization with the new GitHub organization.
2588
2. On GitHub, you can transfer the packages from the old organization to the new one.
2689
3. In case the old synchronization was primary, you need to promote the new synchronization to primary otherwise you won't be able to delete the old one. After verifying that the new synchronization successfully ran you can remove the old synchronization with GitHub. Please refer to ["What happens if you promote a synchronization to a primary synchronization?"](#what-happens-if-you-promote-a-synchronization-to-a-primary-synchronization) for more details about promoting a synchronization to primary.
2790

28-
## How to migrate from one workspace to another one in Bitbucket?
91+
### How to migrate from one workspace to another one in Bitbucket?
2992

3093
1. Transfer your repositories in Bitbucket from the old workspace to the new one.
3194
2. Create a new synchronization with the new Bitbucket workspace.
3295
3. In case the old synchronization was primary, you need to promote the new synchronization to primary. Otherwise you won't be able to delete the old synchronization. After verifying that the new synchronization successfully ran, you can remove the old synchronization with Bitbucket. Please refer to ["What happens if you promote a synchronization to a primary synchronization?"](#what-happens-if-you-promote-a-synchronization-to-a-primary-synchronization) for more details about promoting a synchronization to primary.
3396

34-
## How to migrate from one group to another one in GitLab?
97+
### How to migrate from one group to another one in GitLab?
3598

3699
1. Create a new synchronization with the new GitLab workspace.
37100
2. Transfer your repositories in GitLab from the old group to the new one.

features/integration-github-bitbucket-gitlab.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,10 @@
33

44
Composer has broad support for version control systems, code hosting platforms and authentication protocols. As a consequence **Private Packagist is compatible with all the same systems and platforms**, namely Git, Mercurial or Subversion using SSH access, HTTP Basic Auth over SSL, or their native protocols.
55

6-
To simplify the initial setup and maintenance of a Private Packagist account, we offer optional synchronization for GitHub organizations, Bitbucket workspaces and GitLab groups. This **integration keeps teams, their members, and access permissions in sync** with a matching GitHub organization. So you only need to manage users and permissions in a single place.
6+
To simplify the initial setup and maintenance of a Private Packagist account, we offer optional [synchronization](../docs/synchronizations-faq.md) for GitHub organizations, Bitbucket workspaces and GitLab groups.
77

88
You can log into Private Packagist using an account on GitHub.com, Bitbucket.org, or GitLab.com. If you already have an account you can connect these services to your existing account on your [profile page](https://packagist.com/profile).
99

10-
You can then either create a new organization directly synchronized with a GitHub organization, Bitbucket workspace or a GitLab group, or you can enable synchronization for an existing Organization in _Settings_.
11-
12-
![Synchronization](/Resources/public/img/docs/features/Sync-20241218.png)
13-
14-
Apart from synchronizing teams, users, and permissions, setting up the integration will simplify the addition of new packages to your Composer repository. When you create a **new repository** on GitHub, Bitbucket, or GitLab, it will be **added as a Composer package automatically** if it contains a _composer.json_ file. If you’d like to add existing repositories as packages, you can do so with the click of a button on the Packages tab in your organization.
15-
16-
**Update web hooks** notifying Packagist of new code pushes will be installed in the background, and **credentials to access the package** will be **configured automatically**.
17-
1810
## Integrations
1911

2012
Private Packagist integrates with the following systems:

0 commit comments

Comments
 (0)