Compare commits

...

8 commits

Author SHA1 Message Date
6d75659c66
Merge branch 'varunsridharan:main' into main 2022-06-14 21:52:06 -05:00
Varun Sridharan
ceba94f6a8
Merge pull request #5 from mrksr/add-blacklist
Add a blacklist for repositories
2022-06-08 08:31:18 +05:30
Markus Kaiser
9f315504c0 Ensure that an iterable blacklist exists 2022-05-17 15:23:18 +01:00
Markus Kaiser
d3c463782d Add a blacklist for repositories 2022-05-17 15:23:18 +01:00
Varun Sridharan
8e64c87f48
Merge pull request #4 from varunsridharan/revert-3-add-blacklist
Revert "Add a blacklist for repositories"
2022-05-08 07:01:14 +05:30
Varun Sridharan
8462047484
Revert "Add a blacklist for repositories" 2022-05-08 07:00:54 +05:30
Varun Sridharan
925a653a37
Merge pull request #3 from mrksr/add-blacklist
Add a blacklist for repositories
2022-05-04 18:35:44 +05:30
Markus Kaiser
e9b56957b7 Add a blacklist for repositories 2022-05-03 17:10:03 +02:00
6 changed files with 42 additions and 16 deletions

View file

@ -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`

View file

@ -14,6 +14,7 @@
}
},
"repomap" : { },
"blacklist" : [ ],
"gistsSource" : true,
"gistsStared" : true,
"repositoryStared" : true,

View file

@ -5,6 +5,7 @@ import requests
import json
import sys
import os
import fnmatch
from datetime import datetime
giteaGetUserCache = dict()
@ -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)
@ -201,3 +202,14 @@ def giteaGetAllUsersOrgs(type):
loopCount += 1
return results
def isBlacklistedRepository(full_name):
blacklist = config.get('blacklist', [])
if isinstance(blacklist, str):
blacklist = [blacklist]
for pattern in blacklist:
if fnmatch.fnmatch(full_name, pattern):
return True
return False

View file

@ -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
@ -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]

View file

@ -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
@ -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]

View file

@ -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
@ -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]