Commit ce663540 authored by Rémy Coutable's avatar Rémy Coutable

Make GH one-off auth the default again for importing GH projects

Advertise the PAT as an alternative unless GH import is not configured.
Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 12aa1f89
...@@ -18,6 +18,7 @@ v 8.10.0 (unreleased) ...@@ -18,6 +18,7 @@ v 8.10.0 (unreleased)
- Exclude email check from the standard health check - Exclude email check from the standard health check
- Fix changing issue state columns in milestone view - Fix changing issue state columns in milestone view
- Add notification settings dropdown for groups - Add notification settings dropdown for groups
- Allow importing from Github using Personal Access Tokens. (Eric K Idema)
- Fix user creation with stronger minimum password requirements !4054 (nathan-pmt) - Fix user creation with stronger minimum password requirements !4054 (nathan-pmt)
- PipelinesFinder uses git cache data - PipelinesFinder uses git cache data
- Check for conflicts with existing Project's wiki path when creating a new project. - Check for conflicts with existing Project's wiki path when creating a new project.
......
class Import::GithubController < Import::BaseController class Import::GithubController < Import::BaseController
before_action :verify_github_import_enabled before_action :verify_github_import_enabled
before_action :github_auth, except: [:callback, :new, :personal_access_token] before_action :github_auth, only: [:status, :jobs, :create]
rescue_from Octokit::Unauthorized, with: :github_unauthorized rescue_from Octokit::Unauthorized, with: :github_unauthorized
......
...@@ -4,29 +4,35 @@ ...@@ -4,29 +4,35 @@
%h3.page-title %h3.page-title
= icon 'github', text: 'Import Projects from GitHub' = icon 'github', text: 'Import Projects from GitHub'
%p.light - if github_import_configured?
To import a project from GitHub, you can use a %p
To import a GitHub project, you first need to authorize GitLab to access
the list of your GitHub repositories:
= link_to 'List Your GitHub Repositories', status_import_github_path, class: 'btn btn-success'
%hr
%p
- if github_import_configured?
Alternatively,
- else
To import a GitHub project,
you can use a
= succeed '.' do
= link_to 'Personal Access Token', 'https://github.com/settings/tokens' = link_to 'Personal Access Token', 'https://github.com/settings/tokens'
to access your GitHub account. When you create your Personal Access Token, When you create your Personal Access Token,
you will need to select the <code>repo</code> scope, so we can display a you will need to select the <code>repo</code> scope, so we can display a
list of your public and private repositories which are available for import. list of your public and private repositories which are available for import.
= form_tag personal_access_token_import_github_path, method: :post, class: 'form-inline' do = form_tag personal_access_token_import_github_path, method: :post, class: 'form-inline' do
.form-group .form-group
= text_field_tag :personal_access_token, '', class: 'form-control', placeholder: "Personal Access Token", size: 40 = text_field_tag :personal_access_token, '', class: 'form-control', placeholder: "Personal Access Token", size: 40
= submit_tag 'List Repositories', class: 'btn btn-create' = submit_tag 'List Your GitHub Repositories', class: 'btn btn-success'
- if github_import_configured? - unless github_import_configured?
- unless logged_in_with_github?
%hr
%p.light
Note: If you go to
= link_to 'your profile', profile_account_path
and connect your account to GitHub, you can import projects without
generating a Personal Access Token.
- else
%hr %hr
%p.light %p
Note: Note:
- if current_user.admin? - if current_user.admin?
As an administrator you may like to configure As an administrator you may like to configure
......
...@@ -26,9 +26,11 @@ Click on the **GitHub** link and, if you are logged in via the GitHub ...@@ -26,9 +26,11 @@ Click on the **GitHub** link and, if you are logged in via the GitHub
integration, you will be redirected to GitHub for permission to access your integration, you will be redirected to GitHub for permission to access your
projects. After accepting, you'll be automatically redirected to the importer. projects. After accepting, you'll be automatically redirected to the importer.
If you are not using the GitHub integration, when you click the **GithHub** link If you are not using the GitHub integration, you can still perform a one-off
you'll be presented with instructions for creating Personal Access Token on authorization with GitHub to access your projects.
GitHub. Once you upload your token, you'll be taken to the importer.
Alternatively, you can also enter a GitHub Personal Access Token. Once you enter
your token, you'll be taken to the importer.
![New project page on GitLab](img/import_projects_from_github_new_project_page.png) ![New project page on GitLab](img/import_projects_from_github_new_project_page.png)
......
...@@ -21,7 +21,7 @@ Background: ...@@ -21,7 +21,7 @@ Background:
Scenario: I should see instructions on how to import from GitHub Scenario: I should see instructions on how to import from GitHub
Given I see "New Project" page Given I see "New Project" page
When I click on "Import project from GitHub" When I click on "Import project from GitHub"
Then I am redirected to the Github import page Then I am redirected to the GitHub import page
@javascript @javascript
Scenario: I should see Google Code import page Scenario: I should see Google Code import page
......
...@@ -28,7 +28,7 @@ class Spinach::Features::NewProject < Spinach::FeatureSteps ...@@ -28,7 +28,7 @@ class Spinach::Features::NewProject < Spinach::FeatureSteps
first('.import_github').click first('.import_github').click
end end
step 'I am redirected to the Github import page' do step 'I am redirected to the GitHub import page' do
expect(current_path).to eq new_import_github_path expect(current_path).to eq new_import_github_path
end end
......
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