mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-06 03:26:44 +03:00
Add GITHUB_EXCLUDED_ORGS support for organization filtering
This commit is contained in:
@@ -70,6 +70,7 @@ services:
|
|||||||
# GitHub/Gitea Mirror Config
|
# GitHub/Gitea Mirror Config
|
||||||
- GITHUB_USERNAME=${GITHUB_USERNAME:-your-github-username}
|
- GITHUB_USERNAME=${GITHUB_USERNAME:-your-github-username}
|
||||||
- GITHUB_TOKEN=${GITHUB_TOKEN:-your-github-token}
|
- GITHUB_TOKEN=${GITHUB_TOKEN:-your-github-token}
|
||||||
|
- GITHUB_EXCLUDED_ORGS=${GITHUB_EXCLUDED_ORGS:-}
|
||||||
- SKIP_FORKS=${SKIP_FORKS:-false}
|
- SKIP_FORKS=${SKIP_FORKS:-false}
|
||||||
- PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false}
|
- PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false}
|
||||||
- MIRROR_ISSUES=${MIRROR_ISSUES:-false}
|
- MIRROR_ISSUES=${MIRROR_ISSUES:-false}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ services:
|
|||||||
# GitHub/Gitea Mirror Config
|
# GitHub/Gitea Mirror Config
|
||||||
- GITHUB_USERNAME=${GITHUB_USERNAME:-}
|
- GITHUB_USERNAME=${GITHUB_USERNAME:-}
|
||||||
- GITHUB_TOKEN=${GITHUB_TOKEN:-}
|
- GITHUB_TOKEN=${GITHUB_TOKEN:-}
|
||||||
|
- GITHUB_EXCLUDED_ORGS=${GITHUB_EXCLUDED_ORGS:-}
|
||||||
- SKIP_FORKS=${SKIP_FORKS:-false}
|
- SKIP_FORKS=${SKIP_FORKS:-false}
|
||||||
- PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false}
|
- PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false}
|
||||||
- MIRROR_ISSUES=${MIRROR_ISSUES:-false}
|
- MIRROR_ISSUES=${MIRROR_ISSUES:-false}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ JWT_SECRET=your-secret-here
|
|||||||
# GitHub Configuration
|
# GitHub Configuration
|
||||||
GITHUB_TOKEN=ghp_...
|
GITHUB_TOKEN=ghp_...
|
||||||
GITHUB_WEBHOOK_SECRET=...
|
GITHUB_WEBHOOK_SECRET=...
|
||||||
|
GITHUB_EXCLUDED_ORGS=org1,org2,org3 # Optional: Comma-separated list of organizations to exclude from sync
|
||||||
|
|
||||||
# Gitea Configuration
|
# Gitea Configuration
|
||||||
GITEA_URL=https://your-gitea.com
|
GITEA_URL=https://your-gitea.com
|
||||||
@@ -202,4 +203,4 @@ Expected build times:
|
|||||||
|
|
||||||
- Configure with [Configuration Guide](./CONFIGURATION.md)
|
- Configure with [Configuration Guide](./CONFIGURATION.md)
|
||||||
- Deploy with [Deployment Guide](./DEPLOYMENT.md)
|
- Deploy with [Deployment Guide](./DEPLOYMENT.md)
|
||||||
- Set up authentication with [SSO Guide](./SSO-OIDC-SETUP.md)
|
- Set up authentication with [SSO Guide](./SSO-OIDC-SETUP.md)
|
||||||
|
|||||||
@@ -172,8 +172,23 @@ export async function getGithubOrganizations({
|
|||||||
per_page: 100,
|
per_page: 100,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Get excluded organizations from environment variable
|
||||||
|
const excludedOrgsEnv = process.env.GITHUB_EXCLUDED_ORGS;
|
||||||
|
const excludedOrgs = excludedOrgsEnv
|
||||||
|
? excludedOrgsEnv.split(',').map(org => org.trim().toLowerCase())
|
||||||
|
: [];
|
||||||
|
|
||||||
|
// Filter out excluded organizations
|
||||||
|
const filteredOrgs = orgs.filter(org => {
|
||||||
|
if (excludedOrgs.includes(org.login.toLowerCase())) {
|
||||||
|
console.log(`Skipping organization ${org.login} - excluded via GITHUB_EXCLUDED_ORGS environment variable`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
const organizations = await Promise.all(
|
const organizations = await Promise.all(
|
||||||
orgs.map(async (org) => {
|
filteredOrgs.map(async (org) => {
|
||||||
const [{ data: orgDetails }, { data: membership }] = await Promise.all([
|
const [{ data: orgDetails }, { data: membership }] = await Promise.all([
|
||||||
octokit.orgs.get({ org: org.login }),
|
octokit.orgs.get({ org: org.login }),
|
||||||
octokit.orgs.getMembershipForAuthenticatedUser({ org: org.login }),
|
octokit.orgs.getMembershipForAuthenticatedUser({ org: org.login }),
|
||||||
|
|||||||
Reference in New Issue
Block a user