GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

Commit 9fabf2a5 authored by Cecylia Bocovich's avatar Cecylia Bocovich
Browse files

Restored old update_files script

This script had important commands for updating internet archine and
google docs. The github release script has been renamed to
update_github.
parent 5684c4fc
#!/usr/bin/env python3
#pip3 install PyGithub
# Before running, place the authentication token for a user with push access to the repository
# in an environment variable 'GITHUB_AUTH'
from github import Github
import sys
import json
import urllib
import subprocess
import os
REPO_NAME = "TheTorProject/gettorbrowser"
failure = False
failed_uploads = []
def delete_old_releases(repo):
for release in repo.get_releases():
for asset in release.get_assets():
asset.delete_asset()
release.delete_release()
#Download list of tor browser releases and upload them to github
def upload_files(release):
url = urllib.request.urlopen("https://aus1.torproject.org/torbrowser/update_3/release/downloads.json")
data = json.loads(url.read().decode())
for arch in data['downloads']:
for locale in data['downloads'][arch]:
for asset in data['downloads'][arch][locale]:
url = data['downloads'][arch][locale][asset]
filename = url.split('/')[-1]
try:
subprocess.check_call(["/usr/bin/wget", "--quiet", url])
release.upload_asset(filename)
os.remove(filename)
except:
print("Error: failed to update "+url+". Will retry later.")
failed_uploads.append(url)
#Retry failed uploads
for url in failed_uploads:
filename = url.split('/')[-1]
try:
subprocess.check_call(["/usr/bin/wget", "--quiet", url])
release.upload_asset(filename)
os.remove(filename)
except:
print("Error: failed to update "+url+". Please upload this file manually.")
failure = True
def main(token):
#Initialize a new release
g = Github(token)
repo = g.get_repo(REPO_NAME)
delete_old_releases(repo)
#Create a new release
release = repo.create_git_release("torbrowser-release", "Tor Browser releases", "These releases were uploaded to be distributed with gettor.")
upload_files(release)
if failure:
sys.exit(1)
if __name__ == "__main__":
if 'GITHUB_AUTH' not in os.environ:
print("Usage: {}".format(sys.argv[0]), file=sys.stderr)
print("\nThe authentication token for github should be placed in the environment"
"variable 'GITHUB_AUTH'", file=sys.stderr)
sys.exit(1)
token = os.environ['GITHUB_AUTH']
sys.exit(main(token))
#!/bin/bash
#
# This file is part of GetTor, a Tor Browser distribution system.
#
# :authors: hiro <hiro@torproject.org>
# see also AUTHORS file
#
# :copyright: (c) 2008-2019, The Tor Project, Inc.
#
# :license: This is Free Software. See LICENSE for license information.
cd ~/releases
git checkout master
git branch -D torbrowser-releases
git push github --delete torbrowser-releases
git fetch --all --prune
git add .
git commit -am 'Create release branch'
git checkout -b torbrowser-releases
git push -f --follow-tags origin torbrowser-releases
git push -f --follow-tags github torbrowser-releases
for row in $(
curl -s 'https://aus1.torproject.org/torbrowser/update_3/release/downloads.json' |
jq -r '.downloads'
); do
r=$(
echo ${row} |
egrep -o 'https?://[^ ]+' |
tr -d '",'
);
if [[ $r = *[!\ ]* ]]; then
git fetch --all
wget $r
git add .
git commit -m '[dist ci] commit from CI runner - update with new torbrowser downloads'
diffs=$(git diff origin/torbrowser-releases)
if [ -z "$diffs" ]; then
echo "No new releases"
else
git push -f --follow-tags origin torbrowser-releases
fi
diffs=$(git diff github/torbrowser-releases)
if [ -z "$diffs" ]; then
echo "No new releases"
else
git push -f --follow-tags github torbrowser-releases
fi
fi;
done
rclone delete gdrive:releases
for f in $(ls); do
# Update Google Drive
rclone copy $f gdrive:releases
# Update Internet Archive
ia upload ${f} $f --remote-name=$f --metadata="title:${f}" --metadata="mediatype:software" --metadata="collection:open_source_software"
done
#!/usr/bin/env python3
#pip3 install PyGithub
# Before running, place the authentication token for a user with push access to the repository
# in an environment variable 'GITHUB_AUTH'
from github import Github
import sys
import json
import urllib
import subprocess
import os
REPO_NAME = "TheTorProject/gettorbrowser"
failure = False
failed_uploads = []
def delete_old_releases(repo):
for release in repo.get_releases():
for asset in release.get_assets():
asset.delete_asset()
release.delete_release()
#Download list of tor browser releases and upload them to github
def upload_files(release):
url = urllib.request.urlopen("https://aus1.torproject.org/torbrowser/update_3/release/downloads.json")
data = json.loads(url.read().decode())
for arch in data['downloads']:
for locale in data['downloads'][arch]:
for asset in data['downloads'][arch][locale]:
url = data['downloads'][arch][locale][asset]
filename = url.split('/')[-1]
try:
subprocess.check_call(["/usr/bin/wget", "--quiet", url])
release.upload_asset(filename)
os.remove(filename)
except:
print("Error: failed to update "+url+". Will retry later.")
failed_uploads.append(url)
#Retry failed uploads
for url in failed_uploads:
filename = url.split('/')[-1]
try:
subprocess.check_call(["/usr/bin/wget", "--quiet", url])
release.upload_asset(filename)
os.remove(filename)
except:
print("Error: failed to update "+url+". Please upload this file manually.")
failure = True
def main(token):
#Initialize a new release
g = Github(token)
repo = g.get_repo(REPO_NAME)
delete_old_releases(repo)
#Create a new release
release = repo.create_git_release("torbrowser-release", "Tor Browser releases", "These releases were uploaded to be distributed with gettor.")
upload_files(release)
if failure:
sys.exit(1)
if __name__ == "__main__":
if 'GITHUB_AUTH' not in os.environ:
print("Usage: {}".format(sys.argv[0]), file=sys.stderr)
print("\nThe authentication token for github should be placed in the environment"
"variable 'GITHUB_AUTH'", file=sys.stderr)
sys.exit(1)
token = os.environ['GITHUB_AUTH']
sys.exit(main(token))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment