코모 적분기 로켓.채팅 e 코드

최신 eu precisei 프로필um CI para as nossas lambdas.Sempre fui acostumado a utilizar o Seed.paraessa funão.Mas a empresa emque estou já possui uma conta no Codeship, e isso me veio como um desafio를 실행합니다.Como Utizar o codeship para fazer o deploy de nossas lambdas?Isso foi atérelatimente simples e esse post nãoésobre Isso.
Esse post est á relacionado는 outro 문제입니다.Minha empresa não utiliza o Slack e sim o Rocket.chat para a comunicaão entre os desenvolvedores.O 로켓.chatéum 프로젝트는 1000개의 프로젝트를 포함하고 있습니다.Se vocèchegou atéaqui,ébem provável que vocèjáconheça plataforma.OproblemaentãOé, notificaèes로서comoreceber는 인코딩 로켓이 없습니다.수다가 느슨하지 않습니까?
Eu vou ser bem suscinto na explicaèo.na verdade se vocèler as documentaèes vai ver que nèoéalgo complexo,mesmo assim Eu perdi um bom tempo tendando fazer essas configuraèes e meu objetivoéeconomizar esse seu tempo.

로켓잡담하다


Vocêprecisa ser administrador do Rocket para fazer a configuraço a seguir.
제3그룹 Pontihos na coluna de comandos.Deposis váem Webhooks ou Intregraçes.Se nada aparecer、clique novamente、DEPOSIS clique em Nova integraão>Webhook Entrante.Vocêveráa seguinte tela:

Aqui algumas opões vão aparecer.A primeira opçoépara ativar o webhook,jáative clicando em Sim.Preencha todos os campos que vão aparecer.Na opão Script ativado,deixe em false por enquanto e deposis claique em Salvar alteraçes.O rocket chat tem um bug,ele sómostra a url do webhook deposis que vocèclica em Salvar alteraèes,por isso,clique e logo em seguida,saia da aba integraèes e deposis volte novatemente para aba integraèes e entre O webhook que vocèacabou de criar,ao clicar nele,vocèveráque dois novos campos foram adicionados,webhook url e Token.
Copie a sugestão de Curl no campo abaixo de Example e e faça essa requisiço para verificar se seu webhook estáfuncionando.Se não Funciator,sugiro que revise os passos anteriores.
URL no campo Webhook URL을 복사합니다.Vamos precisar dele para adicionar ao webhook do Codeship.

코드


코드가 없습니다. depois de logado,adicione o seu repositório git a lista de projetos에 코드가 없습니다.Eu não vou me ater a essa adiço pois e bem simples.Depois de adicionado,clique no seu projeto e váatéProject Settings>Notifications.
èbem provável que nesse ponto,as notificaçes por email estejam ativadas,o queébem chato,pois isso quer dizer que a cada deploy vocèreceberáum email com o status do deploy,podendo receber atédois emails por deploy e por projeto.Mas esseéum side problem que nós vamos resolver de tabela,então jádesative aía opão de notificaão por email.
Agora,clique em+Add,algumas opões de integraões võo aparecer,se vocèusar o Slack,seus problemas terminam aqui,éextrememente simples integrar o Codeship com o Slack.Mas nesse ponto,escolha Webhook pois nós queremos Integrator com o Rocket.잡담하다Os campos abaixo dever ão ser preenchidos 회사.

campo Webhook URL이 없습니다. cole a URL que voc êcopiou do Rocket.잡담하다Adicione no campo Branch a Branch na qual vocêdeseja receber as notificaões.configura de notifica de notifica por 지점,logo,para cada branch vocêprecisa configurar o webhook.Vocêpode usar o mesmo webhook do Rocket.단락todas를 지점으로 나누어 이야기하다.Após configurar,clique em Save.
Se vocêainda não tiver configurado o build do seu projeto no codeship,váatéa aba Deploy e clique em Add Branch+.Digite o mesmo nome da branch que vocêadicionou em notifications,daíescolha abaixo nos tipos de deploy o seu deploy preferido,ou Script.Daí,digite o comando de deploy.meu casoéyarn deploy:stagingpoisestou 설정과 분기 저장이 없습니다.
네, atéaquié extremente simples.오, 문제 왔어, 규야.Se nesse ponto vocèfizer um deploy da branch staging,vocènão receberánenhuma notificaão no Rocket.잡담하다이것은 로켓이다.post para o webhook comum payload specifico e o payload que o codeship envie n ão é compat ível.Veja abaixo a diferença:

유효 하중 에스페라토 펠로 로켓.채팅:


{
  "username": "Codeship",
  "icon_url": "https://i.imgur.com/ErQ2qCT.png",
  "text": "Example message",
  "attachments": [
    {
      "title": "Rocket.Chat",
      "title_link": "https://rocket.chat",
      "text": "Rocket.Chat, the best open source chat",
      "image_url": "/images/integration-attachment-example.png",
      "color": "#764FA5"
    }
  ]
}

유효 하중 enviado pelo Codeship:


{
  "build": {
    "build_url":"https://www.codeship.com/projects/10213/builds/973711",
    "commit_url":"https://github.com/codeship/docs/
                  commit/96943dc5269634c211b6fbb18896ecdcbd40a047",
    "project_id":10213,
    "build_id":973711,
    "status":"initiated",
    # PROJECT_FULL_NAME IS DEPRECATED AND WILL BE REMOVED IN THE FUTURE
    "project_full_name":"codeship/docs",
    "project_name":"codeship/docs",
    "commit_id":"96943dc5269634c211b6fbb18896ecdcbd40a047",
    "short_commit_id":"96943",
    "message":"Merge pull request #34 from codeship/feature/shallow-clone",
    "committer":"beanieboi",
    "branch":"master"
  }
}
aíque entra o pulo do gato.Nas configuraçes do Webhook do Rocket.채팅, nós temosum campo chamado 스크립트.nele que nós vamos trabalhar para deixar fazer as notificaões functionalem.월트오 로켓.채팅, na aba integra ções novate, Encentre o webhook que vocêadicionou e vá atéo campo scripts.Aqui vocêpode escrever código Jasvascript atéa versão ES6.Esse campo scriptéusado exatamente para fazer essas conversões de payloads recebidos pelo webhook.Adicione a esse campo o seguinte código:
/* exported Script */
/* globals console, _, s */

class Script {
  /**
   * @params {object} request
   */
  process_incoming_request({ request }) {
    const build = request.content.build || {}

    const colorEnum = {
      initiated: '#3492eb',
      error: '#e03a02',
      success: '#29d911',
      stopped: '#e03a02',
      waiting: '#3492eb',
      ignored: '#5e615e',
      blocked: '#f7ec4d',
      infrastructure_failure: '#e03a02',
    }

    const content = {
      username: 'Codeship',
      attachments: [{
        color: colorEnum[build.status],
        fields: [
          {
            short: false,
            title: `Build ${build.status}`,
            value: build.message,
          },
          {
            short: true,
            title: 'Branch',
            value: build.branch,
          },
          {
            short: true,
            title: 'Project',
            value: build.project_name,
          },
          {
            short: false,
            title: 'Committer',
            value: build.committer,
          },
          {
            short: false,
            title: 'Commit',
            value: build.commit_url,
          },
          {
            short: false,
            title: 'Build URL',
            value: build.build_url,
          },
        ],
      }]
    }

    return {
      content
    };
  }
}
Quando vocêenvia um payload para o webhook do Rocket.채팅,esse payload chega dentro do objetorequest.content.Perceba que o código acima simplesmente faz uma conversão do que foi enviado pelo Codeship para o payload esperado pelo Rocket.잡담하다EemcolorEnumvocèpode 설정기는 핵심 danotificaèo,baseado no status do build입니다.Esse payload foi formatado levando em conta o formato da intergaço que existe entre o Slack e o Codeship.
Agora váatéo codeship,na lista de projetos,escolha o projeto que vocêconfigurou previamente clique em Restart Build.E Voialáá!!!로켓.채팅, canal que voc è adicionou na configura è o do Webhook a notifica è o deploy, enviada pelo Codeship이 없습니다.
Caso tenha problemas,vocêpode testar fazendo uma requisião usando seguinte Curl:
curl \
  -X POST \
  -H 'Content-Type: application/json' \
  --url <URL DO SEU WEBHOOK> \
  -d '{
    "build": {
      "build_url":"https://www.codeship.com/projects/10213/builds/973711",
      "commit_url":"https://github.com/codeship/docs/commit/96943dc5269634c211b6fbb18896ecdcbd40a047",
      "project_id":10213,
      "build_id":973711,
      "status":"initiated",
      "project_full_name":"codeship/docs",
      "project_name":"codeship/docs",
      "commit_id":"96943dc5269634c211b6fbb18896ecdcbd40a047",
      "short_commit_id":"96943",
      "message":"Merge pull request #34 from codeship/feature/shallow-clone",
      "committer":"beanieboi",
      "branch":"master"
    }
  }'
Espero que a informaçço sejaútil,qualquer adiço,por four informe nos comentários.

참조:

  • Documentação do Rocket.chat sobre o webhook
  • Documentação do Codeship sobre notificações
  • 좋은 웹페이지 즐겨찾기