Skip to content

Commit

Permalink
Add a blacklist for repositories
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus Kaiser committed May 17, 2022
1 parent 8e64c87 commit d3c4637
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 16 deletions.
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,31 +35,32 @@ Or you can download the source code and install it where ever you need
| --- | --- |
| `github.username` | Your Github Username |
| `github.accesstoken` | Your Github Account's Personal Access Token |
| - | - |
| - | - |
| `gitea.host` | Selfhosted Gitea URL without `/` at the end |
| `gitea.accesstoken` | Your Personal Access Token |
| `gitea.username` | Account User Name |
| `gitea.gist.prefix` | Custom Prefix For Repository When Mirroring Gists |
| `gitea.gist.surfix` | Custom Prefix For Repository When Mirroring Gists |
| - | - |
| `repomap` | Remap A Repository To Diff User |
| `gistsSource` | set to true to mirror all Gists Created By You|
| `gistsStared` | set to true to mirror all Gists Stared By You|
| `repositoryStared` | set to true to mirror all Repository Stared By You |
| `repositorySource` | set to true to mirror all Repository Created By You |
| `repositoryForked` | set to true to mirror all Repository Forked By You |
| - | - |
| `repomap` | Remap A Repository To Diff User |
| `blacklist` | A list of glob-expression on github full repository names to skip |
| `gistsSource` | set to true to mirror all Gists Created By You|
| `gistsStared` | set to true to mirror all Gists Stared By You|
| `repositoryStared` | set to true to mirror all Repository Stared By You |
| `repositorySource` | set to true to mirror all Repository Created By You |
| `repositoryForked` | set to true to mirror all Repository Forked By You |
| - | - |
| `local_cache.enabled` | Set to **true** to store all repostiory slugs from gitea as json |
| `local_cache.file_path` | Custom Path to store json file |

> Local Cache can come handly when running this script via cron
> Local Cache can come handly when running this script via cron
> which reduces api request your selfhosted gitea instance
### Run cmd & Wait

$ python3 mirror.py


## Cron Setup
1. Run `crontab -e`
2. `mkdir $HOME/mirrorLogs -p`
Expand Down
1 change: 1 addition & 0 deletions src/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
}
},
"repomap" : { },
"blacklist" : [ ],
"gistsSource" : true,
"gistsStared" : true,
"repositoryStared" : true,
Expand Down
12 changes: 10 additions & 2 deletions src/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import json
import sys
import os
import fnmatch
from datetime import datetime

giteaGetUserCache = dict()
Expand Down Expand Up @@ -78,9 +79,9 @@ def giteaCreateRepo(data,isPrivate,isRepository):
data["service"] = 'github'
data["wiki"] = True
data["auth_token"] = "{0}".format(config['github']['accesstoken'])





jsonstring = json.dumps(data)
r = session.post(giteaHost('repos/migrate'), data=jsonstring)

Expand Down Expand Up @@ -201,3 +202,10 @@ def giteaGetAllUsersOrgs(type):
loopCount += 1

return results


def isBlacklistedRepository(full_name):
for pattern in config['blacklist']:
if fnmatch.fnmatch(full_name, pattern):
return True
return False
6 changes: 5 additions & 1 deletion src/repositoryForked.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# https://github.com/PyGithub/PyGithub
from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config
from helper import isBlacklistedRepository, log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config
from github import GithubException
from localCacheHelper import giteaExistsRepos,saveLocalCache
import time
Expand All @@ -21,6 +21,10 @@ def repositoryForked():

log('Forked Repository : {0}'.format(repo.full_name))

if isBlacklistedRepository(repo.full_name):
print(" ---> Warning : Repository Matches Blacklist")
continue

if real_repo in repo_map:
gitea_dest_user = repo_map[real_repo]

Expand Down
6 changes: 5 additions & 1 deletion src/repositorySource.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# https://github.com/PyGithub/PyGithub
from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config
from helper import isBlacklistedRepository, log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config
from github import GithubException
from localCacheHelper import giteaExistsRepos,saveLocalCache
import time
Expand All @@ -21,6 +21,10 @@ def repositorySource():

log('Source Repository : {0}'.format(repo.full_name))

if isBlacklistedRepository(repo.full_name):
print(" ---> Warning : Repository Matches Blacklist")
continue

if real_repo in repo_map:
gitea_dest_user = repo_map[real_repo]

Expand Down
6 changes: 5 additions & 1 deletion src/repositoryStared.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# https://github.com/PyGithub/PyGithub
from helper import log,getConfig,giteaSetRepoTopics,giteaSession,giteaSetRepoStar,giteaCreateRepo,ghApi,giteaCreateUserOrOrg,giteaGetUser,config
from helper import isBlacklistedRepository, log,getConfig,giteaSetRepoTopics,giteaSession,giteaSetRepoStar,giteaCreateRepo,ghApi,giteaCreateUserOrOrg,giteaGetUser,config
from github import GithubException
from localCacheHelper import giteaExistsRepos,saveLocalCache
import time
Expand All @@ -20,6 +20,10 @@ def repositoryStared():

log('⭐ Star\'ed Repository : {0}'.format(repo.full_name))

if isBlacklistedRepository(repo.full_name):
print(" ---> Warning : Repository Matches Blacklist")
continue

if real_repo in repo_map:
gitea_dest_user = repo_map[real_repo]

Expand Down

0 comments on commit d3c4637

Please sign in to comment.