Giter VIP home page Giter VIP logo

stgitlab's Introduction

StGitlab: SublimeText Gitlab manager

SublimeText 3 plugin to manage Gitlab projects:

  • issues
  • merge-requests
  • pipelines
  • branches
  • snippets

Features

  • Fully customizable fields
  • Create/Show/Edit issues
  • Create/Show/Edit merge-requests
  • Create/Show/Edit snippets
  • Show/Retry/Cancel pipelines
  • Shortcuts panels on every screen for fast access to commands

Screenshots

Project issues list

p1

Issue

p2

Snippet

p3

Install

Package Control

The easiest way to install this is with Package Control.

  • If you just went and installed Package Control, you probably need to restart Sublime Text before doing this next bit.
  • Bring up the Command Palette (Command+Shift+p on OS X, Control+Shift+p on Linux/Windows).
  • Select "Package Control: Install Package" (it'll take a few seconds)
  • Select StGitlab when the list appears.

Package Control will automatically keep StGitlab up to date with the latest version.

Configure

Basic
  • Open plugin settings Preferences: Package Settings > StGitlab > Settings
  • Set the gitlab_url and api_token
  • Configure other options as you want
  • Set the projects_filter for filtering data for your projects only
  • Set the users_group_filter for filtering user groups.
  • Customize columns by options like issue_list_columns, etc.

For editing descriptions, notes for issues, merges, etc. in markdown, plugin MarkdownEditing is recommended.

Example:

{
    "gitlab_url": "URL to your Gitlab",
    "api_token": "Set your Gitlab API token",
    "ssl_verify": true,
    "projects_filter": ["mygroup/MyProject"],
    "users_group_filter": ["mygroup"],
    "list_page_size": 40,
    "show_system_notes": true,
    "syntax_file": "Packages/StGitlab/StGitlab.sublime-syntax",
    "syntax_file_edit": "Packages/MarkdownEditing/Markdown.sublime-syntax",
}

Hints

For auto-completions show, add option to syntax specific settings (markdown):

"auto_complete_triggers": [ {"selector": "text.html.markdown", "characters": "#!@"} ]

External dependencies

Dependencies, supported by Package control

stgitlab's People

Contributors

tosher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

stgitlab's Issues

feature_request(behavior): create → write content → post

1. Summary

It would be nice, if would be possible post issues after creating. Don't post blank issues.

2. Argumentation

I'm not sure, that current creating issues behavior is better.

2.1. History

  1. Extra blank recording in issues history.

2.2. Repositories maintainers

  1. Blank issues distract them.
  2. Maintainers can quickly close blank issue and do not pay attention to issue additions.
  3. They can solve, that StGitlab user is spammer, and block it.

3. Example

3.1. Reproducibility

I reproduce the problem in the newest version of stable portable Sublime Text without plugins and user settings.

3.2. Steps to reproduce

Ctrl+Shift+P (⌘⇧p for Mac) → Gitlab issue: CreateCustom → I pasted Kristinita/kiragitlabdebugging (my GitLab repository for debugging) → I printed issue title Kira Example issue via StGitlabEnter.

3.3. Current behavior

Issue posted.

3.4. Expected behavior

As for GIssues Sublime Text package: create → write content → post.

GIssues

4. Snippets

It would be nice to have the same behavior (create → write content → post) for snippets. Currently, StGitlab post blank snippets (example) as blank issues.

Thanks.

All items under the Tools > StGitlab menu grey

The following is in the console log:

reloading plugin StGitlab.stgitlab
Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 109, in reload_plugin
    m = importlib.import_module(modulename)
  File "./python3.3/importlib/__init__.py", line 90, in import_module
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "stgitlab in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 7, in <module>
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "base in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 4, in <module>
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "base.stg_gitlab_reset in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 6, in <module>
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "base.stg_utils in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 9, in <module>
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "base.stg_gitlab in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 8, in <module>
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 1110, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "libs.gitlab in /Users/u01f/Library/Application Support/Sublime Text 3/Installed Packages/StGitlab.sublime-package", line 29, in <module>
ImportError: No module named 'six'

I'm going to go ahead and admit to python ecosystem ignorance, not a language I use much. I went ahead and tried the first thing I could think of which was:

$ pip install six
Requirement already satisfied: six in /Library/Python/2.7/site-packages

feature_request(conflict): global Python packages

1. Summary

If I use in my plugins:

# [NOTE] Currently, “PYTHONPACKAGES” — “C:\Python37”
site_packages = (os.environ['PYTHONPACKAGES'])
if site_packages not in sys.path:
    sys.path.append(site_packages)

StGitlab doesn't work for me.

It would be nice, if StGitlab works in this case.

2. Argumentation

See section 2 why I use global Python packages, not own Sublime Text environment for my plugins.

I installed 500+ third-party packages → I run Sublime Text → solely for StGitlab I get traceback in Sublime Text console.

3. Data

Part of my plugin AchtungBitLy.py, that shortify selected links, use pyshorteners.

import os
import sublime_plugin
import sys

# PYTHONPACKAGES path:
# https://stackoverflow.com/a/4907053/5951529
# Disable duplicate paths:
# https://stackoverflow.com/a/42656754/5951529
site_packages = (os.environ['PYTHONPACKAGES'])
if site_packages not in sys.path:
    sys.path.append(site_packages)

from pyshorteners import Shortener  # noqa


class TinyUrlCommand(sublime_plugin.TextCommand):

    def run(self, edit):
        # Get selected link
        print('Tiny URL called')
        select = self.view.sel()
        selection_region = select[0]
        selection_text = self.view.substr(selection_region)
        print(selection_text)

        shortener = Shortener('Tinyurl')
        formatted_url = (format(shortener.short(selection_text)))
        print("Short url is {}".format(shortener.short(selection_text)))

        # Replace selected link to Tiny.Url link
        self.view.replace(
            edit, selection_region, formatted_url)

4. Steps to reproduce

I reproduced the problem in a version of Sublime Text without plugins and user settings.

pip install transliterate dimensions terminaltables python-gitlab → I enabled AchtungBitLy.py → I restarted Sublime Text.

5. Expected behavior

If plugin AchtungBitLy.py disabled:

    StGitlab successfully works.

6. Actual behavior

Else enabled:

reloading plugin StGitlab.stgitlab
Traceback (most recent call last):
  File "D:\Sublime Text Build 3176 x64 For Debug\sublime_plugin.py", line 125, in reload_plugin
    m = importlib.import_module(modulename)
  File "./python3.3/importlib/__init__.py", line 90, in import_module
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 584, in _check_name_wrapper
  File "<frozen importlib._bootstrap>", line 1022, in load_module
  File "<frozen importlib._bootstrap>", line 1003, in load_module
  File "<frozen importlib._bootstrap>", line 560, in module_for_loader_wrapper
  File "<frozen importlib._bootstrap>", line 868, in _load_module
  File "<frozen importlib._bootstrap>", line 313, in _call_with_frames_removed
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\stgitlab.py", line 7, in <module>
    from .base import *
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\base\__init__.py", line 4, in <module>
    from .stg_gitlab_reset import StGitlabResetCommand
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\base\stg_gitlab_reset.py", line 6, in <module>
    from . import utils
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\base\utils.py", line 9, in <module>
    from .stg_gitlab import StGitlab
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\base\stg_gitlab.py", line 8, in <module>
    from ..libs import gitlab
  File "D:\Sublime Text Build 3176 x64 For Debug\Data\Packages\StGitlab\libs\gitlab\__init__.py", line 34, in <module>
    from gitlab.v3.objects import *  # noqa
ImportError: No module named 'gitlab.v3'

7. Environment

  • Windows 10 Enterprise LTSB 64-bit EN
  • Python 3.7.4
  • Sublime Text 3.2.1, Build 3207
  • StGitlab 1.0.7

Thanks.

bug(windows): Sublime Text hangs, when I try to create new issue

1. Summary

I can't create any issue via StGitlab. Sublime Text hangs.

2. Expected behavior

Successful issues creating for any GitLab repository. For example, I want to create real issue for https://gitlab.com/gitlab-org/gitlab-ce repository.

It would be nice, if StGitlab will have similar behavior as GIssues Sublime Text package for creating GitHub issues, see my screencasts.

Example for issue creating via GIssues:

Issue creating

3. Steps to reproduce

I reproduce the problem in a version of Sublime Text without another plugins and user settings.

  1. pip install transliterate dimensions terminaltables python-gitlab

  2. I log in in GitLab → https://gitlab.com/profile/personal_access_tokens → I create new personal token:

    StGitlab token

  3. I install StGitlab via Package Control → PreferencesPackage SettingsStGitlab → I create User/StGitlab.sublime-settings file:

    {
        "api_token": "<My Real Token Here>",
        "gitlab_url": "https://gitlab.com"
    }
  4. I restart Sublime Text

  5. Ctrl+Shift+PGitlab issue: Create

  6. Sublime Text hangs; I need restart Sublime Text to continue to work.

4. Environment

  • Windows 10 Enterprise LTSB 64-bit EN
  • Sublime Text Version 3.2.1, Build 3207
  • StGitlab 1.0.7
  • Python 3.7.3
  • dimensions 0.0.2
  • python-gitlab 1.8.0
  • terminaltables 3.1.0
  • transliterate 1.10.2

Thanks.

Unable to perform any action - "Checking your browser before accessing" problem

When I try to perform any GitLab action, nothing happens. Looking in the console reveals the following:

Traceback (most recent call last):
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/base/../libs/gitlab/exceptions.py", line 267, in wrapped_f
    return f(*args, **kwargs)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/base/../libs/gitlab/mixins.py", line 134, in list
    obj = self.gitlab.http_list(path, **data)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/libs/gitlab/__init__.py", line 640, in http_list
    return list(GitlabList(self, url, query_data, **kwargs))
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/libs/gitlab/__init__.py", line 767, in __init__
    self._query(url, query_data, **kwargs)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/libs/gitlab/__init__.py", line 772, in _query
    result = self._gl.http_request("get", url, query_data=query_data, **kwargs)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/libs/gitlab/__init__.py", line 568, in http_request
    response_body=result.content,
gitlab.exceptions.GitlabHttpError: 503: <!DOCTYPE html>
<html>
<head>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
  <title>Checking your Browser - GitLab</title>
  <style>body{color:#666;text-align:center;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;margin:auto;font-size:14px;display:flex;flex-direction:column;align-items:center;justify-content:center}hr{max-width:800px;margin:18px auto;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}img{max-width:40vw}.container{margin:auto 20px}.cferror_details{list-style-type:none}.cf-error-details h1{color:#456;font-size:20px;font-weight:400;line-height:28px}</style>
  <meta http-equiv="refresh" content="12">
  <script type="text/javascript">
    //<![CDATA[
    (function(){
      
      window._cf_chl_opt={
        cvId: "2",
        cType: "non-interactive",
        cNounce: "77512",
        cRay: "628739d12e994b58",
        cHash: "7cd49153c8d582a",
        cFPWv: "g",
        cTTimeMs: "4000",
        cRq: {
          ru: "aHR0cHM6Ly9naXRsYWIuY29tL3VzZXJzL3NpZ25faW4=",
          ra: "cHl0aG9uLWdpdGxhYi8xLjE1LjA=",
          rm: "R0VU",
          d: "RUsgC+khX+n/IEJWuK0VLJpKTQQO3Kr11OhucMYM6G1NxW3p9LDO3nhv0hmKjouEVVEXyN1LOOcLcQ8g2LqqDa7TRbrg8RW2kXjPcTVGO4rfwVZGVQ9iIxpq+sgQzls2fRqk9NWtoh2aNOx+wnwrBTE6LVelhfDBHmwXIRNIxFsqWvIFRvjQ6IDlKccgCMvMUv1POtb4nxHbbVyaxFTCykQP+oPRoRmD6vF5C81idw36/QIvKNRtMhAHiMR/QB3Q2f/0jl7V4NRC6SCJqtan8fE0YqypPKxrLjrG3lvIA5OOB/F65GtGdtBscvKvoB6ceR8mUhlYfyayaaJVmpony6HRQQyE47/w1y/lCDWG2dxj0YdlMmjB2rIxGIsswBFHC/0r1YBdTea3vT8cQKxb3OPli87fHV6DOG8SgkHAwX8CfZBWJZfQanHaQajXsJzXQzTtfQK254yIkm3i6UL2gPcoqQ5qIRbQSOTGdBV6SiBlBdgUdg/Y+Qrk3KUu/OKqb4h2xVdd2KzHp1LucihgZKtDZBT8YweYbDY5zwNuRTimES0s7CyiPZd73uv2i3d2WmH524M/YK+SZxLYhIsa6cl+LzrbkNkiS9aSZWkyuGY=",
          t: "MTYxNDQ4NDY5Mi42NjgwMDA=",
          m: "bobPnQAyyBoTd9f+8EylQ++WsetAuZBGwCMw3RyAl7Y=",
          i1: "BIjavkXMbfr5R8i1GmKUjA==",
          i2: "gAqd+PRwXPD3Y2i9iaihUA==",
          uh: "2vPsMQFT+nU3nE+XTx/+UoSoTLm1e2whyq8ckl/SVgg=",
          hh: "lGQbzypQ55vDVgAzrKu7GNtEf1PrcZK3oqezycJ79vw=",
        }
      }
      window._cf_chl_enter = function(){window._cf_chl_opt.p=1};
      
    })();
    //]]>
  </script>
  
</head>

<body>
  <h1>
    <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCIgdmlld0JveD0iMCAwIDIxMCAyMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTVsMzguNjQtMTE4LjkyMWgtNzcuMjhsMzguNjQgMTE4LjkyMXoiIGZpbGw9IiNlMjQzMjkiLz4KICA8cGF0aCBkPSJNMTA1LjA2MTQgMjAzLjY1NDhsLTM4LjY0LTExOC45MjFoLTU0LjE1M2w5Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTIuMjY4NSA4NC43MzQxbC0xMS43NDIgMzYuMTM5Yy0xLjA3MSAzLjI5Ni4xMDIgNi45MDcgMi45MDYgOC45NDRsMTAxLjYyOSA3My44MzgtOTIuNzkzLTExOC45MjF6IiBmaWxsPSIjZmNhMzI2Ii8+CiAgPHBhdGggZD0iTTEyLjI2ODUgODQuNzM0Mmg1NC4xNTNsLTIzLjI3My03MS42MjVjLTEuMTk3LTMuNjg2LTYuNDExLTMuNjg1LTcuNjA4IDBsLTIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTQ4bDM4LjY0LTExOC45MjFoNTQuMTUzbC05Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTk3Ljg1NDQgODQuNzM0MWwxMS43NDIgMzYuMTM5YzEuMDcxIDMuMjk2LS4xMDIgNi45MDctMi45MDYgOC45NDRsLTEwMS42MjkgNzMuODM4IDkyLjc5My0xMTguOTIxeiIgZmlsbD0iI2ZjYTMyNiIvPgogIDxwYXRoIGQ9Ik0xOTcuODU0NCA4NC43MzQyaC01NC4xNTNsMjMuMjczLTcxLjYyNWMxLjE5Ny0zLjY4NiA2LjQxMS0zLjY4NSA3LjYwOCAwbDIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+Cjwvc3ZnPgo=" alt="GitLab Logo" /><br />
  </h1>
  <div class="container">
    <div class="cf-browser-verification cf-im-under-attack">
  <noscript>
    <h1 data-translate="turn_on_js" style="color:#bd2426;">Please turn JavaScript on and reload the page.</h1>
  </noscript>
  <div id="cf-content" style="display:none">
    
    <div id="cf-bubbles">
      <div class="bubbles"></div>
      <div class="bubbles"></div>
      <div class="bubbles"></div>
    </div>
    <h1><span data-translate="checking_browser">Checking your browser before accessing</span> gitlab.com.</h1>
    
    <div id="no-cookie-warning" class="cookie-warning" data-translate="turn_on_cookies" style="display:none">
      <p data-translate="turn_on_cookies" style="color:#bd2426;">Please enable Cookies and reload the page.</p>
    </div>
    <p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
    <p data-translate="allow_5_secs" id="cf-spinner-allow-5-secs" >Please allow up to 5 seconds&hellip;</p>
    <p data-translate="redirecting" id="cf-spinner-redirecting" style="display:none">Redirecting&hellip;</p>
  </div>
   
  <form class="challenge-form" id="challenge-form" action="/users/sign_in?__cf_chl_jschl_tk__=037cf8d59bba4a1bf75d8eb5088250dcac51a7c7-1614484692-0-Ade7tRkhMRadZRh50pu-nmgql3EesNx6Ktmo-m9C_4ZhD6qLLmUwXtyBIHlACsXZ2Skj_F2MucEdiJT__Ya5lLuxhsty9wMeoe8MUNlkb0PnXS_5sjwqWG_HFGfSDN_FTKg0SW_In_J15XS59rVV1HWNrt93KlHJLX72WwgRJKxiKcHsdZkswe60_SoISfkkL4I9jDiQvvPYbDCOVt57aBCnoIlvcnmWl24tm0OrCGUeTu0od9ZczesHvZHWwQxHvP9colo9fyB7igIFR5goWY3ECSDsGk2DaPKWw_1ZzI6rGOsGnBI1oiDtPsbdvt1-vh5JsHQmHinY2aZZnSmvKrrewu6CMliylfl-wRdoyaUsloqzowtFz8xZoPSk03dqzQ" method="POST" enctype="application/x-www-form-urlencoded">
    <input type="hidden" name="r" value="d38ccac87bae6250a8a69286f9ca9acdaa0ea93f-1614484692-0-AVVLibX9+83pGuzPivKhqLEFx55aJS9JghSck6nudkO9GwSbBxn7WqSnGGl1JdpjBpxHmxGkbIiTKTDpZwoATFe9ldDdKvqXXSU/nNtSZ0SECt8q0UnhAOs8Kz7UNIXzFtHpAD5KohLFFD26BgXzRfcLRhsiNVW/wYqtOLe2xZlKOdckyrplvZz7jRLScbiNf5UD3WHSA1/e+HbGNSWGN1c1KVL84ZPGfRH7nOZ/MmXJicETHXQMfFh4K83ujQQLHWlrr3HarNcZH20w6277k94FkNs8fKuLnwlC/7NVOHlOOHlzHIQbECWZI66vS1bdVQ1tWh9zsPaat2EyUMOCrplOihiGywuOZkZCP5YL1IyG8GYj0Tj6HINdmHGfbvov/59a/E9OhfMG0XpLLLetj8jiVI8sTqNQtik55SCE6IRAAqdbJ+ZcD5q1uE2fnh2oTfr69EtwHHjgr22IbS21v195Y4q6hQzZoV1mKpimDHMEBTGfBeWCKRMwurSrYPdNKJju98OaPKf+lr60hEoBflFX5CS6aIClYi0xeEA+ND4pyLM8EHsRg0otHMVBM4INVwIsC4I/aROPeZsRf5SmTDA/p1bd8OoqfrRgR3TmquRWEjav7O3oCHTINoGwIYz7vV/nB+ENIB402Gh3aTgqwRDYFy5TDcK+6OT6gTSM50Eehi1W0qlcggDlDOQlsucAq0nzbUoLRwXLHfAQ+ySPuf1hjwNPxyOrP6Y0IdNHtbNSlaX4vMcu4cQ1jSZzCaEoXv9npXn7iM5bZs1brvJlKdHY8hXQOnbHyRIzTyn8G51p7Ifya35sJg60jBvGsR0+4hYdfkrBmNsUWKJwBYSjqwK21Csp+E7FZ/McukAuS7SAqfmmN94SL2CW/5gBwkcMbsMjl22lHDzbjklCEJuoK1Wsi2DIRh3kN1Z2Dvm8CsYjYbXmvr1+8voL9UrvV7AeS2sf1kFwJF9gX6OkVslCu/0l4bzIRk3QmFNEKwHpvO8ipFhMsfjUReUorf0LwrfVdcAqUTxmVs1yK/C2U+ZnI6NtmXzrLKmA2CvFHsJS8n+ZOxEWFldB3Kqf7bp5Kin9c90Ti8favA0FoATYU2/zp+rj4Nv5kJiWW4Ayiyz1MncnXNQQgElIqYgVuw9h6z2zsRsVeGB1RcN8DJZp6ipVqtHfIwXNgZBJ0ohh1fTHsVTrM3j4ZUqNS9B1Om01JFmkr3rHNb8IDahv71It29WR9ybq7P+Gfl4Dou7mCO+1yShnnhfQgz+hkP9E3GPvzXeN9NaZ+pfdSJUUmmTSXNJA9vIYMBT0+m7sSpbyA+d8iaOYcXGGWmkz73/aiHWrk8uXgGLkZlkR90eLb/IuB78l460VuLBHVlCNGvlbfoS7GAWajmyOFPQmrC9qJ34eGc8YGD1H6VnHRdkB8FSCV33f2nnizAMD4YX5ZZDapoILcSxGRdb1bg8Ula3C7ZUxlVWkOpyheDCwW8CcDaobnOSTgDhRRPBu3C6eVseBuy2ODAm9sdHJN4y2+1VBAcdpNyZKixoKPXIRLam5wlxFqXtfUik="/>
    <input type="hidden" value="4ec3f3f3c091e840bb5ad89aeedb4d13" id="jschl-vc" name="jschl_vc"/>
    <!-- <input type="hidden" value="" id="jschl-vc" name="jschl_vc"/> -->
    <input type="hidden" name="pass" value="1614484696.668-ig37ytZWQ/"/>
    <input type="hidden" id="jschl-answer" name="jschl_answer"/>
  </form>
     
    <script type="text/javascript">
      //<![CDATA[
      (function(){
          var a = document.getElementById('cf-content');
          a.style.display = 'block';
          var isIE = /(MSIE|Trident\/|Edge\/)/i.test(window.navigator.userAgent);
          var trkjs = isIE ? new Image() : document.createElement('img');
          trkjs.setAttribute("src", "/cdn-cgi/images/trace/jschal/js/transparent.gif?ray=628739d12e994b58");
          trkjs.id = "trk_jschal_js";
          trkjs.setAttribute("alt", "");
          document.body.appendChild(trkjs);
          var cpo=document.createElement('script');
          cpo.type='text/javascript';
          cpo.src="/cdn-cgi/challenge-platform/h/g/orchestrate/jsch/v1";
          document.getElementsByTagName('head')[0].appendChild(cpo);
        }());
      //]]>
    </script>
  

  
  <div id="trk_jschal_nojs" style="background-image:url('/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray=628739d12e994b58')"> </div>
</div>

    <hr />
  </div>
</body>
</html>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/base/stg_project.py", line 39, in get_project
    projects = gitlab.projects(all=True)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/base/stg_gitlab.py", line 127, in projects
    self.cprojects = self.conn.projects.list(**kwargs)
  File "/home/jon/.config/sublime-text-3/Packages/StGitlab/base/../libs/gitlab/exceptions.py", line 269, in wrapped_f
    raise error(e.error_message, e.response_code, e.response_body)
gitlab.exceptions.GitlabListError: 503: <!DOCTYPE html>
<html>
<head>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
  <title>Checking your Browser - GitLab</title>
  <style>body{color:#666;text-align:center;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;margin:auto;font-size:14px;display:flex;flex-direction:column;align-items:center;justify-content:center}hr{max-width:800px;margin:18px auto;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}img{max-width:40vw}.container{margin:auto 20px}.cferror_details{list-style-type:none}.cf-error-details h1{color:#456;font-size:20px;font-weight:400;line-height:28px}</style>
  <meta http-equiv="refresh" content="12">
  <script type="text/javascript">
    //<![CDATA[
    (function(){
      
      window._cf_chl_opt={
        cvId: "2",
        cType: "non-interactive",
        cNounce: "77512",
        cRay: "628739d12e994b58",
        cHash: "7cd49153c8d582a",
        cFPWv: "g",
        cTTimeMs: "4000",
        cRq: {
          ru: "aHR0cHM6Ly9naXRsYWIuY29tL3VzZXJzL3NpZ25faW4=",
          ra: "cHl0aG9uLWdpdGxhYi8xLjE1LjA=",
          rm: "R0VU",
          d: "RUsgC+khX+n/IEJWuK0VLJpKTQQO3Kr11OhucMYM6G1NxW3p9LDO3nhv0hmKjouEVVEXyN1LOOcLcQ8g2LqqDa7TRbrg8RW2kXjPcTVGO4rfwVZGVQ9iIxpq+sgQzls2fRqk9NWtoh2aNOx+wnwrBTE6LVelhfDBHmwXIRNIxFsqWvIFRvjQ6IDlKccgCMvMUv1POtb4nxHbbVyaxFTCykQP+oPRoRmD6vF5C81idw36/QIvKNRtMhAHiMR/QB3Q2f/0jl7V4NRC6SCJqtan8fE0YqypPKxrLjrG3lvIA5OOB/F65GtGdtBscvKvoB6ceR8mUhlYfyayaaJVmpony6HRQQyE47/w1y/lCDWG2dxj0YdlMmjB2rIxGIsswBFHC/0r1YBdTea3vT8cQKxb3OPli87fHV6DOG8SgkHAwX8CfZBWJZfQanHaQajXsJzXQzTtfQK254yIkm3i6UL2gPcoqQ5qIRbQSOTGdBV6SiBlBdgUdg/Y+Qrk3KUu/OKqb4h2xVdd2KzHp1LucihgZKtDZBT8YweYbDY5zwNuRTimES0s7CyiPZd73uv2i3d2WmH524M/YK+SZxLYhIsa6cl+LzrbkNkiS9aSZWkyuGY=",
          t: "MTYxNDQ4NDY5Mi42NjgwMDA=",
          m: "bobPnQAyyBoTd9f+8EylQ++WsetAuZBGwCMw3RyAl7Y=",
          i1: "BIjavkXMbfr5R8i1GmKUjA==",
          i2: "gAqd+PRwXPD3Y2i9iaihUA==",
          uh: "2vPsMQFT+nU3nE+XTx/+UoSoTLm1e2whyq8ckl/SVgg=",
          hh: "lGQbzypQ55vDVgAzrKu7GNtEf1PrcZK3oqezycJ79vw=",
        }
      }
      window._cf_chl_enter = function(){window._cf_chl_opt.p=1};
      
    })();
    //]]>
  </script>
  
</head>

<body>
  <h1>
    <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCIgdmlld0JveD0iMCAwIDIxMCAyMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTVsMzguNjQtMTE4LjkyMWgtNzcuMjhsMzguNjQgMTE4LjkyMXoiIGZpbGw9IiNlMjQzMjkiLz4KICA8cGF0aCBkPSJNMTA1LjA2MTQgMjAzLjY1NDhsLTM4LjY0LTExOC45MjFoLTU0LjE1M2w5Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTIuMjY4NSA4NC43MzQxbC0xMS43NDIgMzYuMTM5Yy0xLjA3MSAzLjI5Ni4xMDIgNi45MDcgMi45MDYgOC45NDRsMTAxLjYyOSA3My44MzgtOTIuNzkzLTExOC45MjF6IiBmaWxsPSIjZmNhMzI2Ii8+CiAgPHBhdGggZD0iTTEyLjI2ODUgODQuNzM0Mmg1NC4xNTNsLTIzLjI3My03MS42MjVjLTEuMTk3LTMuNjg2LTYuNDExLTMuNjg1LTcuNjA4IDBsLTIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+CiAgPHBhdGggZD0iTTEwNS4wNjE0IDIwMy42NTQ4bDM4LjY0LTExOC45MjFoNTQuMTUzbC05Mi43OTMgMTE4LjkyMXoiIGZpbGw9IiNmYzZkMjYiLz4KICA8cGF0aCBkPSJNMTk3Ljg1NDQgODQuNzM0MWwxMS43NDIgMzYuMTM5YzEuMDcxIDMuMjk2LS4xMDIgNi45MDctMi45MDYgOC45NDRsLTEwMS42MjkgNzMuODM4IDkyLjc5My0xMTguOTIxeiIgZmlsbD0iI2ZjYTMyNiIvPgogIDxwYXRoIGQ9Ik0xOTcuODU0NCA4NC43MzQyaC01NC4xNTNsMjMuMjczLTcxLjYyNWMxLjE5Ny0zLjY4NiA2LjQxMS0zLjY4NSA3LjYwOCAwbDIzLjI3MiA3MS42MjV6IiBmaWxsPSIjZTI0MzI5Ii8+Cjwvc3ZnPgo=" alt="GitLab Logo" /><br />
  </h1>
  <div class="container">
    <div class="cf-browser-verification cf-im-under-attack">
  <noscript>
    <h1 data-translate="turn_on_js" style="color:#bd2426;">Please turn JavaScript on and reload the page.</h1>
  </noscript>
  <div id="cf-content" style="display:none">
    
    <div id="cf-bubbles">
      <div class="bubbles"></div>
      <div class="bubbles"></div>
      <div class="bubbles"></div>
    </div>
    <h1><span data-translate="checking_browser">Checking your browser before accessing</span> gitlab.com.</h1>
    
    <div id="no-cookie-warning" class="cookie-warning" data-translate="turn_on_cookies" style="display:none">
      <p data-translate="turn_on_cookies" style="color:#bd2426;">Please enable Cookies and reload the page.</p>
    </div>
    <p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
    <p data-translate="allow_5_secs" id="cf-spinner-allow-5-secs" >Please allow up to 5 seconds&hellip;</p>
    <p data-translate="redirecting" id="cf-spinner-redirecting" style="display:none">Redirecting&hellip;</p>
  </div>
   
  <form class="challenge-form" id="challenge-form" action="/users/sign_in?__cf_chl_jschl_tk__=037cf8d59bba4a1bf75d8eb5088250dcac51a7c7-1614484692-0-Ade7tRkhMRadZRh50pu-nmgql3EesNx6Ktmo-m9C_4ZhD6qLLmUwXtyBIHlACsXZ2Skj_F2MucEdiJT__Ya5lLuxhsty9wMeoe8MUNlkb0PnXS_5sjwqWG_HFGfSDN_FTKg0SW_In_J15XS59rVV1HWNrt93KlHJLX72WwgRJKxiKcHsdZkswe60_SoISfkkL4I9jDiQvvPYbDCOVt57aBCnoIlvcnmWl24tm0OrCGUeTu0od9ZczesHvZHWwQxHvP9colo9fyB7igIFR5goWY3ECSDsGk2DaPKWw_1ZzI6rGOsGnBI1oiDtPsbdvt1-vh5JsHQmHinY2aZZnSmvKrrewu6CMliylfl-wRdoyaUsloqzowtFz8xZoPSk03dqzQ" method="POST" enctype="application/x-www-form-urlencoded">
    <input type="hidden" name="r" value="d38ccac87bae6250a8a69286f9ca9acdaa0ea93f-1614484692-0-AVVLibX9+83pGuzPivKhqLEFx55aJS9JghSck6nudkO9GwSbBxn7WqSnGGl1JdpjBpxHmxGkbIiTKTDpZwoATFe9ldDdKvqXXSU/nNtSZ0SECt8q0UnhAOs8Kz7UNIXzFtHpAD5KohLFFD26BgXzRfcLRhsiNVW/wYqtOLe2xZlKOdckyrplvZz7jRLScbiNf5UD3WHSA1/e+HbGNSWGN1c1KVL84ZPGfRH7nOZ/MmXJicETHXQMfFh4K83ujQQLHWlrr3HarNcZH20w6277k94FkNs8fKuLnwlC/7NVOHlOOHlzHIQbECWZI66vS1bdVQ1tWh9zsPaat2EyUMOCrplOihiGywuOZkZCP5YL1IyG8GYj0Tj6HINdmHGfbvov/59a/E9OhfMG0XpLLLetj8jiVI8sTqNQtik55SCE6IRAAqdbJ+ZcD5q1uE2fnh2oTfr69EtwHHjgr22IbS21v195Y4q6hQzZoV1mKpimDHMEBTGfBeWCKRMwurSrYPdNKJju98OaPKf+lr60hEoBflFX5CS6aIClYi0xeEA+ND4pyLM8EHsRg0otHMVBM4INVwIsC4I/aROPeZsRf5SmTDA/p1bd8OoqfrRgR3TmquRWEjav7O3oCHTINoGwIYz7vV/nB+ENIB402Gh3aTgqwRDYFy5TDcK+6OT6gTSM50Eehi1W0qlcggDlDOQlsucAq0nzbUoLRwXLHfAQ+ySPuf1hjwNPxyOrP6Y0IdNHtbNSlaX4vMcu4cQ1jSZzCaEoXv9npXn7iM5bZs1brvJlKdHY8hXQOnbHyRIzTyn8G51p7Ifya35sJg60jBvGsR0+4hYdfkrBmNsUWKJwBYSjqwK21Csp+E7FZ/McukAuS7SAqfmmN94SL2CW/5gBwkcMbsMjl22lHDzbjklCEJuoK1Wsi2DIRh3kN1Z2Dvm8CsYjYbXmvr1+8voL9UrvV7AeS2sf1kFwJF9gX6OkVslCu/0l4bzIRk3QmFNEKwHpvO8ipFhMsfjUReUorf0LwrfVdcAqUTxmVs1yK/C2U+ZnI6NtmXzrLKmA2CvFHsJS8n+ZOxEWFldB3Kqf7bp5Kin9c90Ti8favA0FoATYU2/zp+rj4Nv5kJiWW4Ayiyz1MncnXNQQgElIqYgVuw9h6z2zsRsVeGB1RcN8DJZp6ipVqtHfIwXNgZBJ0ohh1fTHsVTrM3j4ZUqNS9B1Om01JFmkr3rHNb8IDahv71It29WR9ybq7P+Gfl4Dou7mCO+1yShnnhfQgz+hkP9E3GPvzXeN9NaZ+pfdSJUUmmTSXNJA9vIYMBT0+m7sSpbyA+d8iaOYcXGGWmkz73/aiHWrk8uXgGLkZlkR90eLb/IuB78l460VuLBHVlCNGvlbfoS7GAWajmyOFPQmrC9qJ34eGc8YGD1H6VnHRdkB8FSCV33f2nnizAMD4YX5ZZDapoILcSxGRdb1bg8Ula3C7ZUxlVWkOpyheDCwW8CcDaobnOSTgDhRRPBu3C6eVseBuy2ODAm9sdHJN4y2+1VBAcdpNyZKixoKPXIRLam5wlxFqXtfUik="/>
    <input type="hidden" value="4ec3f3f3c091e840bb5ad89aeedb4d13" id="jschl-vc" name="jschl_vc"/>
    <!-- <input type="hidden" value="" id="jschl-vc" name="jschl_vc"/> -->
    <input type="hidden" name="pass" value="1614484696.668-ig37ytZWQ/"/>
    <input type="hidden" id="jschl-answer" name="jschl_answer"/>
  </form>
     
    <script type="text/javascript">
      //<![CDATA[
      (function(){
          var a = document.getElementById('cf-content');
          a.style.display = 'block';
          var isIE = /(MSIE|Trident\/|Edge\/)/i.test(window.navigator.userAgent);
          var trkjs = isIE ? new Image() : document.createElement('img');
          trkjs.setAttribute("src", "/cdn-cgi/images/trace/jschal/js/transparent.gif?ray=628739d12e994b58");
          trkjs.id = "trk_jschal_js";
          trkjs.setAttribute("alt", "");
          document.body.appendChild(trkjs);
          var cpo=document.createElement('script');
          cpo.type='text/javascript';
          cpo.src="/cdn-cgi/challenge-platform/h/g/orchestrate/jsch/v1";
          document.getElementsByTagName('head')[0].appendChild(cpo);
        }());
      //]]>
    </script>
  

  
  <div id="trk_jschal_nojs" style="background-image:url('/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray=628739d12e994b58')"> </div>
</div>

    <hr />
  </div>
</body>
</html>

ssl error when requesting gitlab

Traceback (most recent call last):
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/connectionpool.py", line 345, in _make_request
    self._validate_conn(conn)
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/connectionpool.py", line 844, in _validate_conn
    conn.connect()
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/util/ssl_.py", line 325, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "./python3.3/ssl.py", line 246, in wrap_socket
  File "./python3.3/ssl.py", line 350, in __init__
  File "./python3.3/ssl.py", line 346, in __init__
  File "./python3.3/ssl.py", line 553, in do_handshake
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/path/to/Sublime Text/Packages/requests/all/requests/adapters.py", line 439, in send
    timeout=timeout
  File "/path/to/Sublime Text/Packages/requests/all/requests/packages/urllib3/connectionpool.py", line 630, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/path/to/Sublime Text/Packages/StGitlab/base/stg_project.py", line 39, in get_project
    projects = gitlab.projects(all=True)
  File "/path/to/Sublime Text/Packages/StGitlab/base/stg_gitlab.py", line 127, in projects
    self.cprojects = self.conn.projects.list(**kwargs)
  File "/path/to/Sublime Text/Packages/StGitlab/base/../libs/gitlab/exceptions.py", line 267, in wrapped_f
    return f(*args, **kwargs)
  File "/path/to/Sublime Text/Packages/StGitlab/base/../libs/gitlab/mixins.py", line 134, in list
    obj = self.gitlab.http_list(path, **data)
  File "/path/to/Sublime Text/Packages/StGitlab/libs/gitlab/__init__.py", line 640, in http_list
    return list(GitlabList(self, url, query_data, **kwargs))
  File "/path/to/Sublime Text/Packages/StGitlab/libs/gitlab/__init__.py", line 767, in __init__
    self._query(url, query_data, **kwargs)
  File "/path/to/Sublime Text/Packages/StGitlab/libs/gitlab/__init__.py", line 772, in _query
    result = self._gl.http_request("get", url, query_data=query_data, **kwargs)
  File "/path/to/Sublime Text/Packages/StGitlab/libs/gitlab/__init__.py", line 531, in http_request
    result = self.session.send(prepped, timeout=timeout, **settings)
  File "/path/to/Sublime Text/Packages/requests/all/requests/sessions.py", line 642, in send
    r = adapter.send(request, **kwargs)
  File "/path/to/Sublime Text/Packages/requests/all/requests/adapters.py", line 513, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:548)

Per-project settings (in .sublime-project)

It would be nice if the package could read settings (in particular project_filter) from ST project file (.sublime-project).

It will make it possible to work with different projects in sublime without listing all of them in global package config and to easily switch between gitlab projects.

Thanks.

feature_request(instances): multiple GitLab domains support

1. Summary

It would be nice, if StGitlab will support creating issues for different GitLab domains.

2. Argumentation

Currently, we can post issue to solely one GitLab instance — value of gitlab_url key.

But developers use self-hosted GitLab with different custom domains. That post issue to another instance, we need every time change values of gitlab_url and api_token keys. It takes users time. It would be nice, if StGitlab users can set these parameters for each GitLab domain once.

3. Example of expected behavior

StGitlab user add to User/StGitlab.sublime-settings these lines:

"default_instance": "gitlab"
"instances": {
    "freedesktop": {
        "api_key": "<API key for gitlab.freedesktop.org>",
        "url": "gitlab.freedesktop.org"
    },
    "gitlab": {
        "api_key": "<API key for gitlab.com>",
        "url": "gitlab.com"
    }
}

Ctrl+Shift+P (⌘⇧p for Mac) → Gitlab issue: Create → user will need to select instance; if user press Enter without instance selection, issue will post to default_instance → user paste/print repository and so on.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.