MacOS, AppleScript и Git - PullRequest
       7

MacOS, AppleScript и Git

0 голосов
/ 24 октября 2019

У меня есть проект, который потребует чтения локального репо и сбора различий из самого последнего коммита и предыдущего. Затем мне нужно проделать дополнительную работу с этими различиями (добавить в существующий файл журнала, сделать доступным для технических авторов редактирование существующих документов API с изменениями - возможно, ослабить их или API в Jira и создать тикет (как этот параметр, когда он выходит)след).

Я могу выполнять работу на уровне йомана в AppleScript, вызывая сценарии оболочки при необходимости, затем анализируя данные и передавая очищенные данные в различные приложения / сайты, которые мне нужны. Но другие, менеетехнические специалисты также будут использовать это приложение, и было бы неплохо дать им простой пользовательский интерфейс для работы.

В любом случае, после долгих поисков в Google, SO и других источниках я смог получить приложение MacOSработает, что может вызвать AppleScript, и теперь я столкнулся со стеной ...

Я могу запустить этот AppleScript из редактора сценариев, и он отлично работает:

set strGitLog to do shell script "cd ~/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx && git log -p -- file1.html"
"commit c39c6bb004d2e104b3f8e15a6125e3d68a5323ef
Author: Steve <xxxxxx@xxxxxx.com>
Date:   Tue Oct 22 15:42:13 2019 -0400

    Added deprecation warning to file1

diff --git a/file1.html b/file1.html
index b7af22b..9fdc781 100644
--- a/file1.html
+++ b/file1.html
@@ -51,6 +51,8 @@
      <h2>Class Description</h2>
      <p style=\"margin-bottom:10px;\">This is the description of the class</p>

+     <p style=\"margin-bottom:10px;\">Warning: This class is scheduled to be deprecated.</p>
+     
      <h3>Arguments:</h3>
      <p style=\"margin-bottom:10px;\">These are the arguments that the class accepts</p>

...

, но, если я помещаю этот скрипт в приложение MacOS:

script gitMessenger

    property parent : class "NSObject"

    to readMessage()
            set strGitLog to do shell script "cd ~/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx && git log -p -- file1.html"
           log strGitLog
    end readMessage

end script

Я получаю это сообщение об ошибке в журнале:

fatal: Unable to read current working directory: Operation not permitted (error 128)

Которое после проверкиng, похоже, ошибка разрешений Git. Если я pwd, я указываю на правильный каталог:

/Users/xxxxxx/Library/Containers/xxxxxx.GitMessenger/Data/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx

, и в этом каталоге запущен git:

enter image description here

и имеет разрешение на чтение / запись каждому. Так что я сейчас немного растерялся, как заставить это работать. Любая помощь или предложения будут оценены.

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