sec-airgraph / AirGraph

AI and Robot Graphical IDE
GNU General Public License v3.0
5 stars 1 forks source link

Git hubについて #4

Closed ht17a037 closed 5 years ago

ht17a037 commented 5 years ago

シェル上でgitコマンドでパスワードとユーザー名をキャッシュし、githubでリポジトリを作りました。そこにairgraphでコンポーネントをプッシュしたいのですが、このようなエラーをはき上手くいきません {"timestamp":1559027507456,"status":500,"error":"InternalSever Error","exception":"java.lang.NullPointerException","message","NO message available","path":"/main /pushComponent;jsessionid=3849D93AC831009237206F49B5E9B201"} どうすればいいでしょうか?

sec-hirose commented 5 years ago

AirGraphからのPush時にキャッシュされたユーザ名が読めていないのかもしれません。 確認いたしますが、AirGraphからのPush時にはユーザ名・パスワード・コメントを入力していただけますでしょうか。

また、/opt/AirGraph/logs/以下にAirGraphの動作ログがあり、それを確認頂ければエラー箇所が特定できますので、お手数ですがその情報も教えていただければと存じます。

ht17a037 commented 5 years ago

返信遅くなり申し訳ありません。 AirgraphからのPush時にユーザ名・パスワード・コメントを入力し、pushをしても一番上の質問の時と同じエラーをはきます。 以下がairgraph.logの動作ログです。

2019-05-31 14:17:08.329 INFO 3847 --- [nio-8080-exec-3] c.s.airgraph.controller.MainController : Push Component to Local Repository. component[aroha]git[test ]workspace[rts_work9]commitMessage[dd]userName[ht17a037] 2019-05-31 14:17:08.331 ERROR 3847 --- [nio-8080-exec-3] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-05-31 14:17:08.332 ERROR 3847 --- [nio-8080-exec-3] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-05-31 14:17:08.333 INFO 3847 --- [nio-8080-exec-3] c.s.a.service.IdeManagementService : Commit Component. package[work9]gitName[test ]result[Success.] 2019-05-31 14:17:08.334 ERROR 3847 --- [nio-8080-exec-3] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-05-31 14:17:08.335 ERROR 3847 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request proce ssing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null at com.sec.airgraph.service.IdeManagementService.pushComponent(IdeManagementService.java:161) at com.sec.airgraph.service.MainService.pushComponent(MainService.java:496) at com.sec.airgraph.controller.MainController.pushComponent(MainController.java:611) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)

sec-hirose commented 5 years ago

情報ありがとうございます。

恐らくコンポーネント名とGItHubのリポジトリ名が一致していないためかと存じます。 一致しない場合でもエラーとならないように修正いたします。

ht17a037 commented 5 years ago

調査してくださりありがとうございます。

ht17a037 commented 5 years ago

シェル上でgitコマンドでパスワードとユーザー名をキャッシュ、コンポーネント名とGItHubのリポジトリ名を同じにしてGItHubにプッシュしてみたが、うまくいかずに初めにした質問と同じエラーをはきます。また、Airgraphでユーザーネームとパスワードをうってやってみたが、同じくうまくいきません。 どうすればいいのでしょうか?

logはこちらです。

2019-06-04 15:55:16.943 INFO 2139 --- [nio-8080-exec-8] c.s.airgraph.controller.MainController : Push Component to Local Repository. component[test]git[test ]workspace[rts_work9]commitMessage[f]userName[ht17a037] 2019-06-04 15:55:16.944 ERROR 2139 --- [nio-8080-exec-8] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-06-04 15:55:16.945 ERROR 2139 --- [nio-8080-exec-8] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-06-04 15:55:16.946 INFO 2139 --- [nio-8080-exec-8] c.s.a.service.IdeManagementService : Commit Component. package[work9]gitName[test ]result[Success.] 2019-06-04 15:55:16.946 ERROR 2139 --- [nio-8080-exec-8] com.sec.airgraph.util.ProcessUtil : In Function startProcessReturnStringWithWorkingDerectory, 例外発生:java.io.IOException: Cannot run progr am "git" (in directory "/opt/AirGraph/data/rtm_workspace/work9/rtc/test "): error=2, そのようなファイルやディレクトリはありません 2019-06-04 15:55:16.947 ERROR 2139 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request proce ssing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null at com.sec.airgraph.service.IdeManagementService.pushComponent(IdeManagementService.java:161) at com.sec.airgraph.service.MainService.pushComponent(MainService.java:496) at com.sec.airgraph.controller.MainController.pushComponent(MainController.java:611) at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

sec-hirose commented 5 years ago

こちらでは再現できておりませんが、GitHubのリポジトリは正しく設定されていますでしょうか。

/opt/AirGraph/data/rtm_workspace/work9/rtc/testのディレクトリが見つかっていないようですが、 masterブランチでは、”test”の部分をリモートのURLが取得しております(developブランチではコンポーネント名から取得するように修正済みです)。

ここが取得できないとすると、リモートのURLが誤っている可能性もあると思われます。 コンソール上でPushできるか確認いただけますでしょうか。

ht17a037 commented 5 years ago

返信遅れて申し訳ございません。 URLが合っているのに、コンソール上からpushが出来なかったのでうまくキャッシュ出来ていないためにgithubと連結出来ないと思います。 お手数をおかけして申し訳ございません。

sec-hirose commented 5 years ago

コンソール上からのPush自体には、キャッシュなどは関係ないと思われます。

・コンソール上でユーザ名/パスワードを入力してPushなどができる状態であること ・masterブランチであれば、リポジトリ名とコンポーネント名が一致すること

上記を満たしていればAirGraphからGitHubの連携もできるかと思いますので、ご確認ください。 ログを見る感じでは、URLにスペースが混ざっているようにも思われます。

ht17a037 commented 5 years ago

返信遅れて申し訳ございません。 URLを確認したところ間違っており、直してpushするとうまくいきました。

ht17a037 commented 5 years ago

自作のコンポーネントを自分の他のパッケージで使えるようにしたいのですが、その方法がわかりません。GitHubのプライベートリポジトリとコンポーネントを紐づけることはでき、自作のコンポーネントの内容をGitHubへプッシュすることはできました。これをAirGraphの他のパッケージに取り込むには具体的にどのようにすればいいのでしょうか?

sec-hirose commented 5 years ago

https://github.com/sec-airgraph/AirGraph/issues/3 の内容に戻りますが、wasanbonのBINDER機能を利用してください。

BINDERとなるリポジトリを作成し、それにコンポーネントを紐づけることで、コンポーネント一覧に表示されるようになります。 http://wasanbon.org/?page_id=1727

ht17a037 commented 5 years ago

Git Hubからpullをすることは出来ないのでしょうか?

sec-hirose commented 5 years ago

AirGraphにて直接cloneする機能は有しておりません。

なお、コンソール上が利用可能であれば、別パッケージのrtcフォルダに直接cloneしていただくことでBINDERを経由せずに利用することも可能かもしれません。

ht17a037 commented 5 years ago

BINDERとなるリポジトリは作ったのですが、それをコンポーネントをどう紐づけたらいいのでしょうか?

sec-hirose commented 5 years ago

BINDERとなるリポジトリのrtcsフォルダ以下に、コンポーネントが書かれたyamlファイルを作成すれば可能です。

ht17a037 commented 5 years ago

何度もお手数をおかけして申し訳ありません.

wasanbon-admin.pyのコマンドにbinderがあり,ホームディレクトリの.wasanbonの下に関係するファイルがあることがわかりました.しかし,wasanbonのマニュアルには,binderコマンドについての説明が一切ありません. http://wasanbon.org/?page_id=168&lang=ja

sec-hirose commented 5 years ago

wasanbonに関する質問は、間違った回答をしても申し訳ありませんので、wasanbon側で問い合わせいただいた方がよろしいかと思われます。 https://github.com/sugarsweetrobotics/wasanbon

ただ、{path to wasanbon}/core/plugins/admin/environment_plugin/settings/repository.yaml にBinderのリポジトリが設定されていれば、 wasanbon-admin.py binder updateコマンドを実行することで、ホームディレクトリの.wasanbonの下にbinderの内容が反映されると思います。

ht17a037 commented 5 years ago

わかりました。 ありがとうございます。