Настройте плагин bitbucket, чтобы избежать жесткого кодирования безопасной переменной - PullRequest
0 голосов
/ 04 июня 2018

Я разработал плагин Atlasian Bitbucket, который глобально прослушивает push / PR и отправляет сведения о репозитории в базы данных, используя REST API.

Мне нужно настроить REST API URL и credential, чтобы мой плагин мог сделатьвызов API.В настоящее время у меня есть hardcoded REST API URL и credential в моем файле свойств плагина.Что мне не нравится, потому что каждый раз, когда мне нужно создать пакет для своей тестовой среды или производства, я должен измениться.Кроме того, я не люблю хранить учетные данные в исходном коде.

Каков наилучший способ добавить экран конфигурации в плагин bitbucket?Я хотел бы иметь форму для URL, имени пользователя и пароля (после установки плагина) и обновлять хранилище в Bitbucket только один раз.Если мне нужно перезапустить свой битбакет, я не хочу потерять сохраненные данные.

Я попытался найти способ настройки плагина битбакета, однако я не смог найти простой способ.Я вижу несколько подходов, например, чтобы добавить кнопку «Настроить», которая откроет сервлет для ввода данных пользователем.Мне кажется очень загадочным.Кроме того, я вижу так много рекомендаций для шаблона, например, скорость, соя и т. Д., Которые меня сильно смутили.

Поскольку я новичок в разработке плагинов, поэтому не могу исследовать.Нужна помощь.

1 Ответ

0 голосов
/ 22 марта 2019

У меня есть решение для этого случая:

  1. Из pom.xml, пожалуйста, добавьте больше библиотеки:

    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-core</artifactId>
        <version>5.0.0</version>
        <scope>provided</scope>
    </dependency>
    
  2. Создать новый abc-server.properties в папке resources/ со следующим содержимым:

    server.username=YOUR_USERNAME
    server.password=YOUR_PASSWORD
    
  3. Получить значение из abc-server.properties для класса обслуживания следующим образом:

    import com.atlassian.plugin.util.ClassLoaderUtils;

    ...

    final Properties p = new Properties();
    final InputStream is = ClassLoaderUtils.getResourceAsStream("abc-server.properties", this.getClass());
    
    try {
        if (is != null) {
            p.load(is);
    
            String username = p.getProperty("server.username");
            String password = p.getProperty("server.password");
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    

Пожалуйста, попробуйте реализовать это.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...