diff --git a/app/blueprints/github/__init__.py b/app/blueprints/github/__init__.py index 1d160a2..7477238 100644 --- a/app/blueprints/github/__init__.py +++ b/app/blueprints/github/__init__.py @@ -18,7 +18,7 @@ from flask import Blueprint bp = Blueprint("github", __name__) -from flask import redirect, url_for, request, flash, abort, render_template, jsonify +from flask import redirect, url_for, request, flash, abort, render_template, jsonify, current_app from flask_user import current_user, login_required from sqlalchemy import func from flask_github import GitHub @@ -35,6 +35,12 @@ from wtforms import SelectField, SubmitField def start(): return github.authorize("", redirect_uri=abs_url_for("github.callback")) +@bp.route("/github/view/") +def view_permissions(): + url = "https://github.com/settings/connections/applications/" + \ + current_app.config["GITHUB_CLIENT_ID"] + return redirect(url) + @bp.route("/github/callback/") @github.authorized_handler def callback(oauth_token): diff --git a/app/flatpages/help/release_webhooks.md b/app/flatpages/help/release_webhooks.md index e9a9f81..2d751a5 100644 --- a/app/flatpages/help/release_webhooks.md +++ b/app/flatpages/help/release_webhooks.md @@ -23,19 +23,20 @@ The process is as follows: ## Setting up -### Github (automatic) +### GitHub (automatic) -1. Go to your package page. +1. Go to your package's page. 2. Make sure that the repository URL is set to a Github repository. Only github.com is supported. -3. Go to "Create a release", and click "Setup webhook" at the top of the page. +3. Go to "Releases" > "+", and click "Setup webhook" at the top of the create release + page. If you do not see this, either the repository isn't using Github or you do not have permission to use webhook releases (ie: you're not a Trusted Member). 4. Grant ContentDB the ability to manage Webhooks. -5. Set the event to either "New tag" or "Push". New tag is highlight recommended. +5. Set the event to either "New tag or Github Release" (highly recommended) or "Push". N.B.: GitHub uses tags to power GitHub Releases, meaning that creating a webhook - on "new tag" will sync GitHub and ContentDB releases. + on "New tag" will sync GitHub and ContentDB releases. ### GitHub (manual) @@ -48,7 +49,7 @@ The process is as follows: 7. Set the events * If you want a rolling release, choose "just the push event". * Or if you want a stable release cycle based on tags, - choose "Let me select" > Branch or tag creation. + choose "Let me select" > Branch or tag creation. ### GitLab (manual) diff --git a/app/templates/github/setup_webhook.html b/app/templates/github/setup_webhook.html index d0012e2..d1a2bc6 100644 --- a/app/templates/github/setup_webhook.html +++ b/app/templates/github/setup_webhook.html @@ -20,4 +20,10 @@ {{ render_submit_field(form.submit) }} + +

+ You will need admin access to the repository. + When setting up hooks on an organisation, + make sure that you have granted access. +

{% endblock %} diff --git a/app/templates/users/profile.html b/app/templates/users/profile.html index d2f5baa..37ee5df 100644 --- a/app/templates/users/profile.html +++ b/app/templates/users/profile.html @@ -64,6 +64,7 @@ | Website {% endif %} + {% if user == current_user %}
@@ -73,6 +74,16 @@ {% endif %} + + {% if user == current_user and user.github_username %} + + Privacy: + + View ContentDB's GitHub Permissions + + + {% endif %} + {% if current_user.is_authenticated and current_user.rank.atLeast(current_user.rank.MODERATOR) %} Admin @@ -115,7 +126,7 @@ {% endif %} - + Password: