Created
September 7, 2019 03:24
-
-
Save isuruf/b366d2e8aeb1c01b0c472be2aa74ef36 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import github3" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from github3 import login\n", | |
"gh = login('isuruf', password='')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"try_again = []\n", | |
"failures = []\n", | |
"changed = []\n", | |
"\n", | |
"to_run = []" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 151, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import requests\n", | |
"from conda_smithy.utils import tmp_directory, update_conda_forge_config\n", | |
"import subprocess\n", | |
"import os\n", | |
"import git\n", | |
"\n", | |
"author = git.Actor(\"conda-forge-admin\", \"[email protected]\")\n", | |
"\n", | |
"def check_file(repo, f):\n", | |
" resp = requests.get(\"https://raw.githubusercontent.com/conda-forge/{}/master/{}\".format(repo.name, f))\n", | |
" return resp.status_code == 200\n", | |
"\n", | |
"import ruamel.yaml\n", | |
"yaml = ruamel.yaml.YAML(typ=\"rt\")\n", | |
"yaml.allow_duplicate_keys = True\n", | |
"\n", | |
"def process(repo):\n", | |
" if not repo.name.endswith(\"-feedstock\"):\n", | |
" return\n", | |
" if not check_file(repo, \".appveyor.yml\"):\n", | |
" return\n", | |
" if not check_file(repo, \".azure-pipelines/azure-pipelines-win.yml\"):\n", | |
" return\n", | |
" \n", | |
" resp = requests.get(\"https://raw.githubusercontent.com/conda-forge/{}/master/conda-forge.yml\".format(repo.name))\n", | |
" cfg = yaml.load(resp.content)\n", | |
" if \"provider\" in cfg and \"win\" in cfg[\"provider\"] and cfg[\"provider\"][\"win\"] == \"azure\":\n", | |
" return\n", | |
"\n", | |
" with tmp_directory() as f:\n", | |
" subprocess.check_call([\"git\", \"clone\", repo.ssh_url], cwd=f)\n", | |
" d = os.path.join(f, repo.name)\n", | |
" commit_sha = subprocess.check_output([\"git\", \"rev-parse\", \"HEAD\"], cwd=d)\n", | |
" if \"provider\" in cfg and \"win\" in cfg[\"provider\"] and cfg[\"provider\"][\"win\"] == \"azure\":\n", | |
" return\n", | |
" commit = repo.commit(commit_sha.decode()[:-1])\n", | |
" found = False\n", | |
" for check in commit.check_runs():\n", | |
" if check.app.name != 'Azure Pipelines':\n", | |
" continue\n", | |
" t = check.name.split(\" \")\n", | |
" if len(t) != 3:\n", | |
" continue\n", | |
" if t[1] == \"(win\":\n", | |
" if check.conclusion != \"success\":\n", | |
" failures.append(repo)\n", | |
" return\n", | |
" if check.status != \"completed\":\n", | |
" try_again.append(repo)\n", | |
" return\n", | |
" found = True\n", | |
" changed.append(repo)\n", | |
" print(\"changed \"+repo.name)\n", | |
" if not found:\n", | |
" print(\"Error: {}\".format(repo.name))\n", | |
"\n", | |
" with update_conda_forge_config(d) as cfg:\n", | |
" if \"provider\" not in cfg:\n", | |
" cfg[\"provider\"] = {\"win\": \"azure\"}\n", | |
" else:\n", | |
" cfg[\"provider\"][\"win\"] = \"azure\"\n", | |
"\n", | |
" git_repo = git.repo.Repo(d)\n", | |
" git_repo.index.add([\"conda-forge.yml\"])\n", | |
" git_repo.index.commit(\"\"\"[ci skip] ***NO_CI*** Move from appveyor to azure.\n", | |
"\n", | |
"See https://github.com/conda-forge/conda-forge.github.io/issues/857\n", | |
"\"\"\", author=author, committer=author)\n", | |
" subprocess.check_call([\"git\", \"push\"], cwd=d)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 152, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"4934" | |
] | |
}, | |
"execution_count": 152, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"gh.ratelimit_remaining" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 154, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"7693 rb-parallel-feedstock\n", | |
"7694 rb-yell-feedstock\n", | |
"7695 rb-ruby-enum-feedstock\n", | |
"7696 rb-commonmarker-feedstock\n", | |
"7697 rb-jekyll-compose-feedstock\n", | |
"7698 rb-coffee-script-feedstock\n", | |
"7699 rb-execjs-feedstock\n", | |
"7700 rb-coffee-script-source-feedstock\n", | |
"7701 rb-jekyll-commonmark-feedstock\n", | |
"7702 rb-jekyll-commonmark-ghpages-feedstock\n", | |
"7703 cp2k-feedstock\n", | |
"7704 umami-feedstock\n", | |
"7705 pycp2k-feedstock\n", | |
"7706 flask-redis-feedstock\n", | |
"7707 r-sinaplot-feedstock\n", | |
"7708 sos-python-feedstock\n", | |
"7709 sos-r-feedstock\n", | |
"7710 rb-jekyll-coffeescript-feedstock\n", | |
"7711 scramp-feedstock\n", | |
"7712 rb-jekyll-swiss-feedstock\n", | |
"7713 rb-jekyll-theme-primer-feedstock\n", | |
"7714 bash_kernel-feedstock\n", | |
"7715 rb-jekyll-theme-dinky-feedstock\n", | |
"7716 rb-jekyll-theme-hacker-feedstock\n", | |
"7717 rb-jekyll-theme-midnight-feedstock\n", | |
"7718 rb-jekyll-theme-merlot-feedstock\n", | |
"7719 rb-jekyll-theme-cayman-feedstock\n", | |
"7720 rb-jekyll-theme-time-machine-feedstock\n", | |
"7721 rb-jekyll-theme-slate-feedstock\n", | |
"7722 rb-jekyll-theme-tactile-feedstock\n", | |
"7723 rb-jekyll-theme-leap-day-feedstock\n", | |
"7724 rb-jekyll-theme-modernist-feedstock\n", | |
"7725 rb-jekyll-theme-minimal-feedstock\n", | |
"7726 rb-jekyll-theme-architect-feedstock\n", | |
"7727 face-feedstock\n", | |
"7728 pg8000-feedstock\n", | |
"7729 glom-feedstock\n", | |
"7730 rb-github-pages-feedstock\n", | |
"7731 r-minerva-feedstock\n", | |
"changed r-minerva-feedstock\n", | |
"7732 r-graphlayouts-feedstock\n", | |
"changed r-graphlayouts-feedstock\n", | |
"7733 awswrangler-feedstock\n", | |
"7734 compyle-feedstock\n", | |
"changed compyle-feedstock\n", | |
"7735 anndata-feedstock\n", | |
"7736 mo-future-feedstock\n", | |
"7737 moz-sql-parser-feedstock\n", | |
"7738 jupyterlab-transient-display-data-feedstock\n", | |
"7739 mne-bids-feedstock\n", | |
"7740 minikube-feedstock\n", | |
"7741 rb-little-plugger-feedstock\n", | |
"7742 rb-fast_jsonapi-feedstock\n", | |
"7743 rb-bio-feedstock\n", | |
"7744 rb-timerizer-feedstock\n", | |
"7745 rb-multi_json-feedstock\n", | |
"7746 freegenes-feedstock\n", | |
"7747 orange-canvas-core-feedstock\n", | |
"7748 broot-feedstock\n", | |
"changed broot-feedstock\n", | |
"7749 pybv-feedstock\n", | |
"7750 zeroconf-feedstock\n", | |
"7751 point-annotator-feedstock\n", | |
"7752 mbutil-feedstock\n", | |
"7753 ifaddr-feedstock\n", | |
"7754 orange-widget-base-feedstock\n", | |
"7755 msnoise-feedstock\n", | |
"7756 pip2pi-feedstock\n", | |
"7757 rb-json-feedstock\n", | |
"7758 vose-alias-method-feedstock\n", | |
"7759 mapbox-vector-tile-feedstock\n", | |
"7760 flask-graphql-feedstock\n", | |
"7761 dask-geomodeling-feedstock\n", | |
"7762 jamotools-feedstock\n", | |
"7763 testflo-feedstock\n", | |
"7764 openmdao-feedstock\n", | |
"7765 rb-dotenv-feedstock\n", | |
"7766 rb-data_uri-feedstock\n", | |
"7767 rb-logging-feedstock\n", | |
"7768 rb-mimemagic-feedstock\n", | |
"7769 rb-bond-feedstock\n", | |
"7770 ipycanvas-feedstock\n", | |
"7771 tf2onnx-feedstock\n", | |
"7772 sos-bash-feedstock\n", | |
"7773 startables-feedstock\n", | |
"7774 ledger-feedstock\n", | |
"7775 jupyterlab-sos-feedstock\n", | |
"7776 deepsmiles-feedstock\n", | |
"7777 thor-feedstock\n", | |
"7778 rb-thor-feedstock\n", | |
"7779 rb-necromancer-feedstock\n", | |
"7780 rb-msgpack-feedstock\n", | |
"7781 pytest-instafail-feedstock\n", | |
"7782 property-manager-feedstock\n", | |
"7783 anyio-feedstock\n", | |
"7784 exa-feedstock\n", | |
"7785 firefox-feedstock\n", | |
"changed firefox-feedstock\n", | |
"7786 rb-net-ssh-feedstock\n", | |
"7787 rb-gli-feedstock\n", | |
"7788 rb-archive-tar-minitar-feedstock\n", | |
"7789 rb-aws-sdk-core-feedstock\n", | |
"7790 rb-jmespath-feedstock\n", | |
"7791 rb-simple_pid-feedstock\n", | |
"7792 rb-aws-sigv4-feedstock\n", | |
"7793 rb-aws-eventstream-feedstock\n" | |
] | |
} | |
], | |
"source": [ | |
"org = gh.organization(\"conda-forge\")\n", | |
"for i, repo in enumerate(org.repositories()):\n", | |
" print(i, repo.name)\n", | |
" process(repo)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 159, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<ShortRepository [conda-forge/geos-feedstock]>,\n", | |
" <ShortRepository [conda-forge/openjpeg-feedstock]>,\n", | |
" <ShortRepository [conda-forge/expat-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libiconv-feedstock]>,\n", | |
" <ShortRepository [conda-forge/cartopy-feedstock]>,\n", | |
" <ShortRepository [conda-forge/boost-feedstock]>,\n", | |
" <ShortRepository [conda-forge/mpfr-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libmatio-feedstock]>,\n", | |
" <ShortRepository [conda-forge/eigen-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libsodium-feedstock]>,\n", | |
" <ShortRepository [conda-forge/xz-feedstock]>,\n", | |
" <ShortRepository [conda-forge/isl-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libpng-feedstock]>,\n", | |
" <ShortRepository [conda-forge/ipyleaflet-feedstock]>,\n", | |
" <ShortRepository [conda-forge/freetype-feedstock]>,\n", | |
" <ShortRepository [conda-forge/flatbuffers-feedstock]>,\n", | |
" <ShortRepository [conda-forge/lapack-feedstock]>,\n", | |
" <ShortRepository [conda-forge/python-feedstock]>,\n", | |
" <ShortRepository [conda-forge/numpy-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libnetcdf-feedstock]>,\n", | |
" <ShortRepository [conda-forge/python-symengine-feedstock]>,\n", | |
" <ShortRepository [conda-forge/gdcm-feedstock]>,\n", | |
" <ShortRepository [conda-forge/postgresql-feedstock]>,\n", | |
" <ShortRepository [conda-forge/altair-feedstock]>,\n", | |
" <ShortRepository [conda-forge/simbody-feedstock]>,\n", | |
" <ShortRepository [conda-forge/keras-feedstock]>,\n", | |
" <ShortRepository [conda-forge/gtest-feedstock]>,\n", | |
" <ShortRepository [conda-forge/arrow-cpp-feedstock]>,\n", | |
" <ShortRepository [conda-forge/chemfiles-lib-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pyopencl-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libssh2-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pyarrow-feedstock]>,\n", | |
" <ShortRepository [conda-forge/brotli-feedstock]>,\n", | |
" <ShortRepository [conda-forge/sdl2_mixer-feedstock]>,\n", | |
" <ShortRepository [conda-forge/sdl2_image-feedstock]>,\n", | |
" <ShortRepository [conda-forge/mysql-connector-c-feedstock]>,\n", | |
" <ShortRepository [conda-forge/sixs-feedstock]>,\n", | |
" <ShortRepository [conda-forge/m4ri-feedstock]>,\n", | |
" <ShortRepository [conda-forge/lz4-c-feedstock]>,\n", | |
" <ShortRepository [conda-forge/graphite2-feedstock]>,\n", | |
" <ShortRepository [conda-forge/armadillo-feedstock]>,\n", | |
" <ShortRepository [conda-forge/zstd-feedstock]>,\n", | |
" <ShortRepository [conda-forge/climlab-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libitk-feedstock]>,\n", | |
" <ShortRepository [conda-forge/wxpython-feedstock]>,\n", | |
" <ShortRepository [conda-forge/google-cloud-bigquery-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pygmo_plugins_nonfree-feedstock]>,\n", | |
" <ShortRepository [conda-forge/seapy-feedstock]>,\n", | |
" <ShortRepository [conda-forge/clickhouse-driver-feedstock]>,\n", | |
" <ShortRepository [conda-forge/terraform-provider-cobbler-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pivy-feedstock]>,\n", | |
" <ShortRepository [conda-forge/ldc-feedstock]>,\n", | |
" <ShortRepository [conda-forge/czmq-feedstock]>,\n", | |
" <ShortRepository [conda-forge/helics-feedstock]>,\n", | |
" <ShortRepository [conda-forge/binaryen-feedstock]>,\n", | |
" <ShortRepository [conda-forge/z5py-feedstock]>,\n", | |
" <ShortRepository [conda-forge/ldas-tools-cmake-feedstock]>,\n", | |
" <ShortRepository [conda-forge/ezc3d-feedstock]>,\n", | |
" <ShortRepository [conda-forge/glm-feedstock]>,\n", | |
" <ShortRepository [conda-forge/poco-feedstock]>,\n", | |
" <ShortRepository [conda-forge/allensdk-feedstock]>,\n", | |
" <ShortRepository [conda-forge/glfw-feedstock]>,\n", | |
" <ShortRepository [conda-forge/benchmark-feedstock]>,\n", | |
" <ShortRepository [conda-forge/openbabel-feedstock]>,\n", | |
" <ShortRepository [conda-forge/apr-feedstock]>,\n", | |
" <ShortRepository [conda-forge/gsl-lite-feedstock]>,\n", | |
" <ShortRepository [conda-forge/yaml-cpp-feedstock]>,\n", | |
" <ShortRepository [conda-forge/sparsehash-c11-feedstock]>,\n", | |
" <ShortRepository [conda-forge/rbdl-feedstock]>,\n", | |
" <ShortRepository [conda-forge/biorbd-feedstock]>,\n", | |
" <ShortRepository [conda-forge/moderngl-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pymatgen-feedstock]>,\n", | |
" <ShortRepository [conda-forge/libusb-feedstock]>,\n", | |
" <ShortRepository [conda-forge/pymatgen-db-feedstock]>,\n", | |
" <ShortRepository [conda-forge/urlquote-feedstock]>]" | |
] | |
}, | |
"execution_count": 159, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"failures" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 160, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[]" | |
] | |
}, | |
"execution_count": 160, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"try_again" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.7" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment