2016-08-22 2 views
0

https://github.com/bkimminich/juice-shop 프로젝트의 경우 Release 이벤트가 GitHub에 의해 실행될 때마다저기서 소스 포지 (https://sourceforge.net/p/juice-shop/files/github_webhook)가 제공하는 웹 훅을 사용하여 릴리스를 만듭니다. 이 webhook은 GitHub의 모든 파일을 가져 와서 Sourceforge에 업로드합니다. 여태까지는 그런대로 잘됐다.릴리스 변경시 GitHub가 다시 실행되지 않음

이제 문제는 CI/CD 프로세스, 즉 Tavis-CI 및 Appveyor에서 빌드 된 사전 패키지 된 배포 아카이브 중에 더 많은 파일을 에 첨부한다는 것입니다. 이것들은 웹 훅이 원래 실행되었을 때이 아직 존재하지 않기 때문에 Sourceforge에 을 만들지 않습니다. GitHub 릴리스에 대한 변경 (즉, 더 많은 파일 첨부)에 대한 웹 훅의 자동 다시 트리거링은 없습니다.

Sourceforge release after manually redelivering

이 문제에 대한 해결 방법은 수동으로 나중에 추가 된 것을 포함하여 모든 파일을 픽업 및 소스 포지에 업로드합니다 마지막으로 webhook 호출을 다시 트리거하는 것입니다. 이 종류의 내 자동화 체인의 마지막 단계를 나누기 때문에

Redeliver button for webhook on GitHub

는하지만이는 수동 프로세스입니다. 이것을 올바르게 자동화 할 수있는 방법이 있습니까?

답변

0

이 첫 번째 옵션으로 갈 명확한 권고 GitHub의 지원 팀의 공식적인 답변은 : 당신이 모든 파일을하기 전에

  • 이 자료를 게시하지 않습니다. 대신 시험판 또는 초안 릴리스을 만든 다음 Travis/Appveyor를 트리거하여 필요한 파일을 만든 다음 릴리스에 파일을 추가하고 마지막으로 출시 버전을 게시하십시오. 웹 훅은 이 게시 될 때 모든 파일 이 게시 될 때 실행됩니다.

  • 릴리스를 추가 파일로 업데이트 한 후 API를 사용하여 해당 파일을 가져 와서 SourceForge에 업로드하십시오. SourceForge가 결국이 작업을 수행하는 데 필요한 API를 제공하는지 확실하지 않으므로 에게 조언을 요청해야합니다.

  • 릴리스를 추가 파일로 업데이트 한 후 릴리스를 게시 취소하고 다시 게시하면됩니다. 그러면 웹 후크 이 다시 트리거되어야하며 API를 통해이 단계를 수행 할 수 있습니다.

+0

불행하게도 GitHub의는 소스 포지가 출시로 시험판 플래그에 또한으로 webhook 트리거 및 소스 포지가 "진짜"릴리스에서 이들을 구분하지 않고 자신의 말에 자료를 생성한다. GitHub 측의 마지막 릴리스에 대한 '재전송'버튼 클릭을 자동화하는 방법이 있습니다. 일반 GET-URL입니다. https://github.com/bkimminich/juice-shop/settings/hooks/ # redeliver- . 유일한 가변 부분은 끝에있는 호출의 해시입니다. 아마도 auth 헤더를 보내야합니다. 그렇지 않으면 큰 CSRF 취약점이됩니다. – bkimminich

+0

초안 상태에서 릴리스를 유지하는 것이 트릭입니다.최소한 AppVeyor는 초안에서 릴리스를 유지할 플래그가 있습니다. Travis-CI에 대해서는 이것이 문서화되어 있지 않기 때문입니다. https://github.com/travis-ci/travis-ci/issues/6132를 참조하십시오. – bkimminich

관련 문제