Como baixar e usar o jar io.jsonwebtoken
Se você estiver trabalhando com JSON Web Tokens (JWTs) em Java, talvez esteja se perguntando como baixar e usar io.jsonwebtoken jar, uma biblioteca popular para criar e verificar JWTs. Neste artigo, explicaremos o que é o jar io.jsonwebtoken, por que você deve usá-lo, como baixá-lo de diferentes fontes e como usá-lo em seus projetos Java. Ao final deste artigo, você poderá criar e verificar JWTs com facilidade usando o jar io.jsonwebtoken.
download io.jsonwebtoken jar
O que é Jar io.jsonwebtoken?
io.jsonwebtoken jar é uma biblioteca Java que fornece uma API fácil de usar e entender para criar e verificar JWTs na JVM e no Android. Os JWTs são tokens compactos, seguros para URL e independentes que podem ser usados para autenticação, autorização, troca de informações e outras finalidades. Os JWTs consistem em três partes: um cabeçalho, uma carga útil e uma assinatura. O cabeçalho contém metadados sobre o token, como o algoritmo usado para assiná-lo. A carga útil contém os dados ou declarações reais que são codificados no formato JSON. A assinatura é computada pela aplicação de um algoritmo criptográfico (como HMAC ou RSA) ao cabeçalho e carga útil com uma chave secreta ou uma chave pública.
jar io.jsonwebtoken é baseado exclusivamente no Especificações RFC. Ele também oferece suporte a algumas extensões que não fazem parte das especificações, como compactação JWS e aplicação de declarações. É de código aberto sob os termos da licença Apache 2.0.
Por que usar o jar io.jsonwebtoken?
Há muitos benefícios e recursos no uso do jar io.jsonwebtoken para criar e verificar JWTs em Java. Aqui estão alguns deles:
É fácil de usar e entender. Você pode criar e verificar JWTs com apenas algumas linhas de código usando uma API fluente e intuitiva.
É seguro e confiável.Você pode assinar e verificar JWTs com vários algoritmos e chaves, como HMAC, RSA, ECDSA e EdDSA. Você também pode criptografar e descriptografar JWTs com algoritmos AES e RSA. Você também pode impor as declarações esperadas, como emissor, público, expiração e escopo, usando uma sintaxe simples e expressiva.
É flexível e extensível. Você pode personalizar o cabeçalho e a carga de JWTs com quaisquer dados compatíveis com JSON ou declarações personalizadas. Você também pode compactar a carga de JWTs para reduzir seu tamanho e melhorar seu desempenho. Você também pode conectar suas próprias implementações de resolvedores de chave, codecs de compactação, serializadores, desserializadores e provedores de relógio.
É compatível e interoperável. Você pode criar e verificar JWTs em conformidade com as especificações RFC e compatíveis com outras bibliotecas e estruturas que oferecem suporte a JWTs. Você também pode criar e verificar JWTs que usam extensões não padrão, como compactação JWS e aplicação de declarações, desde que as outras partes concordem com elas.
Como baixar o jar io.jsonwebtoken?
Existem diferentes maneiras de baixar o jar io.jsonwebtoken e adicioná-lo ao seu projeto Java. Aqui estão alguns dos mais comuns:
Baixar do GitHub
Se você deseja baixar a versão mais recente do jar io.jsonwebtoken do GitHub, siga estas etapas:
Vou ao .
Clique no Lançamentos aba.
Selecione a versão mais recente (ou qualquer outra versão desejada) na lista.
Faça o download do jjwt-impl-x.y.z.jar, jjwt-api-x.y.z.jar, jjwt-jackson-x.y.z.jar, e jjwt-legacy-x.y.z.jar arquivos (onde x.y.z é o número da versão) do Ativos seção.
Adicione os arquivos jar baixados ao classpath do seu projeto ou ao sistema de gerenciamento de dependências.
Baixe no Maven Central
Se você deseja baixar o jar io.jsonwebtoken do Maven Central usando Maven, Gradle ou outras ferramentas de compilação, siga estas etapas:
Vou ao .
Selecione a versão mais recente (ou qualquer outra versão desejada) na lista.
Copie as informações de dependência para sua ferramenta de construção preferida (como Maven ou Gradle) do Informações de Dependência seção.
Cole as informações de dependência no arquivo de compilação do seu projeto (como pom.xml ou build.gradle).
Execute sua ferramenta de compilação para baixar e instalar o jar io.jsonwebtoken em seu projeto.
Baixar do Java2s
Se você deseja baixar o jar io.jsonwebtoken do site Java2s, siga estas etapas:
Vou ao .
Selecione a versão mais recente (ou qualquer outra versão desejada) na lista.
Clique no Baixar Arquivo JAR link ao lado da versão selecionada.
Adicione o arquivo jar baixado ao classpath do seu projeto ou sistema de gerenciamento de dependência.
Como usar o jar io.jsonwebtoken?
Depois de baixar e instalar o jar io.jsonwebtoken em seu projeto, você pode começar a usá-lo para criar e verificar JWTs em Java. Aqui está um tutorial sobre como usar o jar io.jsonwebtoken para criar e verificar JWTs em Java:
Criar um JWT
Para criar um JWT com jar io.jsonwebtoken, você precisa usar o Jwts.builder() método, que retorna um JwtBuilderGenericName instância. A JwtBuilderGenericName A instância permite que você defina o cabeçalho, a carga útil e a assinatura do JWT usando uma API fluente e intuitiva. Aqui está um exemplo de como criar um JWT com cabeçalho, carga útil e assinatura usando o jar io.jsonwebtoken:
// importa io.jsonwebtoken.*; // importa todas as classes do pacote io.jsonwebtoken // cria uma chave secreta para assinar a chave JWT Key = Keys.secretKeyFor(SignatureAlgorithm.HS256); // ou gere um // crie um JWT com cabeçalho, carga útil e assinatura String jwt = Jwts .builder() .setSubject("Alice") // defina a declaração do assunto .setIssuer("Bob") // defina a declaração do emissor .setAudience("Charlie") // defina a declaração do público .setExpiration(new Date(System.currentTimeMillis() + 3600000)) // defina a declaração de expiração para uma hora a partir now .claim("role", "admin") // defina uma reivindicação personalizada .signWith(key) // assine o JWT com a chave secreta .compact(); // compactar o JWT em uma string segura de URL // imprimir o JWT System.out.println(jwt);
A saída desse código será algo assim:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBbGljZSIsImlzcyI6IkJvYiIsImF1ZCI6IkNoYXJsaWUiLCJleHAiOjE2MjQyMTQ3MDUsInJvbGUiOiJhZG1pbiJ9.3f4o8l7w0a2Qn0xg 5qf7K5yTm8Ls4QKwLm8x2tXgkYw
Este é um JWT válido que pode ser verificado por qualquer pessoa que tenha a chave secreta ou conheça o algoritmo usado para assiná-lo. As partes de cabeçalho, carga útil e assinatura são separadas por pontos e codificadas no formato Base64URL. Você pode decodificar o JWT e ver seu conteúdo usando qualquer ferramenta online, como .
Cabeçalho
O cabeçalho de um JWT contém metadados sobre o token, como o algoritmo usado para assiná-lo. Você pode definir os parâmetros de cabeçalho e reivindicações usando o setHeaderParam() e setHeader() métodos do JwtBuilderGenericName instância. Por exemplo, você pode definir o tipo parâmetro para indicar que o token é um JWT e o criança parâmetro para indicar o ID da chave usado para assiná-lo:
// cria um JWT com parâmetros de cabeçalho String jwt = Jwts .builder() .setHeaderParam("typ", "JWT") // define o parâmetro type como JWT .setHeaderParam("kid", "123456789") // define o parâmetro kid como 123456789 .signWith(key) // assina o JWT com a chave secreta .compact(); // compactar o JWT em uma string segura de URL // imprimir o JWT System.out.println(jwt);
A saída desse código será algo assim:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMzQ1Njc4OSJ9.e30.0c7yHkqWuqRnVlYVrFtB5vOoP8kCnDdOuF7eHlWfN9o
Este é um JWT válido que possui um cabeçalho com três parâmetros: alg, tipo, e criança. O alg O parâmetro é definido automaticamente pelo jar io.jsonwebtoken com base no algoritmo usado para assinar o token. Os outros dois parâmetros são personalizados que definimos manualmente.
Carga útil
A carga útil de um JWT contém os dados ou declarações reais que são codificados no formato JSON. Você pode definir o conteúdo da carga útil e as declarações usando o setPayload(), alegar(), e vários outros métodos de JwtBuilderGenericName instância. Por exemplo, você pode definir o assunto, emissor, público, expiração e outras reivindicações padrão usando seus respectivos métodos:
// cria um JWT com declarações de carga útil String jwt = Jwts .builder() .setSubject("Alice") // define a declaração do assunto .setIssuer("Bob") // define a declaração do emissor .setAudience("Charlie") // define a declaração do público .setExpiration(new Date(System.currentTimeMillis() + 3600000)) // define a declaração de expiração para daqui a uma hora .setIssu edAt(new Date()) // define a declaração emitida em agora .setId("abcdefg") // define a declaração de ID como abcdefg .signWith(key) // assina o JWT com a chave secreta .compact(); // compactar o JWT em uma string segura de URL // imprimir o JWT System.out.println(jwt);
A saída desse código será algo assim:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBbGljZSIsImlz c3MiOiJCb2IiLCJhdWQiOiJDaGFybGllIiwiZXhwIjoxNjI0MjE1MzA1LCJpYXQiOjE2MjQyMTQ3MDUsImp0aSI6ImFiY2 RlZmcifQ.5tZfV4wTn8k9xL4e8T7u7x9gFbX6BvYsUqH5cQvH7Zk
Este é um JWT válido que possui uma carga útil com sete declarações: sub, iss, ouvido, exp, iat, jti, e nbf. Estas são reivindicações padrão que são definidas no . Você também pode definir reivindicações personalizadas usando o alegar() método, como fizemos no exemplo anterior com o método papel alegar.
Assinatura
A assinatura de um JWT é computada pela aplicação de um algoritmo criptográfico (como HMAC ou RSA) ao cabeçalho e carga útil com uma chave secreta ou uma chave pública. A assinatura garante a integridade e autenticidade do JWT, pois evita que alguém adultere ou falsifique o token. Você pode assinar o JWT usando o assinarCom() método do JwtBuilderGenericName instância. Por exemplo, você pode assinar o JWT com uma chave secreta usando o algoritmo HMAC-SHA256:
// cria uma chave secreta para assinar a chave JWT Key = Keys.secretKeyFor(SignatureAlgorithm.HS256); // ou gere um // crie e assine um JWT com a chave secreta String jwt = Jwts .builder() .setSubject("Alice") // defina a reivindicação do assunto .signWith(key) // assine o JWT com a chave secreta .compact(); // compactar o JWT em uma string segura de URL // imprimir o JWT System.out.println(jwt);
A saída desse código será algo assim:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBbGljZSJ9.0c7yHkqWuqRnVlYVrFtB5vOoP8kCnDdOuF7eHlWfN9o
Este é um JWT válido que foi assinado com uma chave secreta usando o algoritmo HMAC-SHA256. A assinatura é a última parte do JWT, após o segundo ponto. Você pode verificar a assinatura usando a mesma chave secreta e algoritmo nas partes de cabeçalho e carga útil.
Ler um JWT
Para ler um JWT e verificar sua assinatura, reivindicações e expiração usando o jar io.jsonwebtoken, você precisa usar o Jwts.parserBuilder() método, que retorna um JwtParserBuilderGenericName instância. A JwtParserBuilderGenericName A instância permite que você especifique uma chave de análise, afirmações de declaração, descompactação e outras opções para ler e verificar o JWT usando uma API fluente e intuitiva. Aqui está um exemplo de como ler um JWT e verificar sua assinatura, reivindicações e expiração usando o jar io.jsonwebtoken:
// importa io.jsonwebtoken.*; // importa todas as classes do pacote io.jsonwebtoken // cria uma chave secreta para verificar a chave JWT Key = Keys.secretKeyFor(SignatureAlgorithm.HS256); // ou use o mesmo de antes // analise e verifique um JWT com a chave secreta Jws jws = Jwts .parserBuilder() .setSigningKey(key) // define a chave de análise para a chave secreta .requireSubject("Alice") // exige que a declaração do assunto seja Alice .requireIssuer("Bob") // exige que a declaração do emissor seja Bob .requireAudience("Charlie") // exige que a declaração do público seja Charlie .requireExpiration() // exige que a declaração de expiração esteja presente .build() // construir o analisador .parseClaimsJws(jwt); // analisa e verifica o JWT // imprime o cabeçalho, corpo e assinatura do JWS System.out.println(jws.getHeader()); System.out.println(jws.getBody()); System.out.println(jws.getSignature());
A saída desse código será algo assim: alg=HS256, typ=JWT, kid=123456789 sub=Alice, iss=Bob, aud=Charlie, exp=1624215305, iat=1624214705, jti=abcdefg 5tZfV4wTn8k9xL4e8T7u7x9gFbX6BvYsUqH5cQ vH7Zk
Este é um JWS válido que foi analisado e verificado com a chave secreta usando o jar io.jsonwebtoken. O JWS consiste em três partes: um cabeçalho, um corpo e uma assinatura. O cabeçalho e o corpo são objetos JSON que contêm os parâmetros de cabeçalho e declarações do JWT. A assinatura é uma matriz de bytes que contém a assinatura do JWT. Você pode acessar o cabeçalho, corpo e assinatura do JWS usando o getHeader(), getBody(), e getAssinatura() métodos do Jws instância. Você também pode lançar o corpo para um Reivindicações instância e acessar as declarações individuais usando o pegar(), getSubject(), getIssuer(), e outros métodos de Reivindicações interface.
Chave de análise
A chave de análise é a chave usada para verificar a assinatura do JWT. Você pode especificar uma chave de análise estática ou dinâmica usando o setSigningKey(), setSigningKeyResolver(), e outros métodos de JwtParserBuilderGenericName instância. Por exemplo, você pode especificar uma chave secreta estática usando o setSigningKey() método, como fizemos no exemplo anterior. Você também pode especificar uma chave pública dinâmica usando o setSigningKeyResolver() método, que leva um SigningKeyResolver instância como um argumento. A SigningKeyResolver A instância permite que você resolva a chave de análise com base no cabeçalho ou declarações do JWT. Por exemplo, você pode resolver a chave de análise com base no criança parâmetro no cabeçalho:
// cria um mapa de IDs de chave e mapa de chaves públicas chaves = new HashMap(); keys.put("123456789", publicKey1); // ou gerar uma keys.put("987654321", publicKey2); // ou gere outro // crie um resolvedor de chave de assinatura que resolva a chave de análise com base no parâmetro kid SigningKeyResolver resolver = new SigningKeyResolverAdapter() @Override public Key resolveSigningKey(JwsHeader header, Claims Claims) String kid = header.getKeyId(); // obtém o parâmetro kid do cabeçalho return keys.get(kid); // obtém a chave pública correspondente do mapa ; // analisa e verifica um JWT com o resolvedor de chave de assinatura Jws jws = Jwts .parserBuilder() .setSigningKeyResolver(resolver) // define o resolvedor de chave de análise .build() // constrói o analisador .parseClaimsJws(jwt); // analisa e verifica o JWT // imprime o cabeçalho, corpo e assinatura do JWS System.out.println(jws.getHeader()); System.out.println(jws.getBody()); System.out.println(jws.getSignature());
A saída desse código será algo assim: alg=RS256, typ=JWT, kid=123456789 sub=Alice, iss=Bob, aud=Charlie, exp=1624215305, iat=1624214705, jti=abcdefg 5tZfV4wTn8k9xL4e8T7u7x9gFbX6BvYsUqH5cQ vH7Zk
Este é um JWS válido que foi analisado e verificado com a chave pública usando o jar io.jsonwebtoken. A chave pública foi resolvida com base na criança parâmetro no cabeçalho, que corresponde a uma das chaves no mapa.Você também pode resolver a chave de análise com base em outros critérios, como o emissor ou declarações de público.
Afirmações de Reivindicação
As asserções de declaração são verificações que verificam se as declarações no JWT correspondem aos valores esperados. Você pode afirmar as declarações esperadas usando o requerer(), requerAssunto(), requireIssuer(), e outros métodos de JwtParserBuilderGenericName instância. Por exemplo, você pode afirmar que a declaração do assunto é Alice, a declaração do emissor é Bob e a declaração do público é Charlie usando seus respectivos métodos:
// analisa e verifica um JWT com afirmações de declaração Jws jws = Jwts .parserBuilder() .setSigningKey(key) // define a chave de análise para a chave secreta .requireSubject("Alice") // exige que a declaração do assunto seja Alice .requireIssuer("Bob") // exige que a declaração do emissor seja Bob .requireAudience("Charlie") // exige que a declaração do público seja Charlie .build() // construa o analisador .parseClaimsJw s(jwt); // analisa e verifica o JWT
Se alguma das declarações de reivindicação falhar, o jar io.jsonwebtoken lançará um JwtException com uma mensagem descritiva. Por exemplo, se a declaração do assunto não for Alice, o jar io.jsonwebtoken lançará um IncorrectClaimException com uma mensagem como esta:
io.jsonwebtoken.IncorrectClaimException: a subdeclaração esperada era: Alice, mas era: Bob.
Você também pode declarar reivindicações personalizadas usando o requerer() método, que usa um nome de declaração e um valor esperado como argumentos. Por exemplo, você pode afirmar que a declaração de função é admin usando este método:
// analisa e verifica um JWT com uma asserção de declaração personalizada Jws jws = Jwts .parserBuilder() .setSigningKey(key) // defina a chave de análise para a chave secreta .require("role", "admin") // requer que a declaração de função seja admin .build() // construa o analisador .parseClaimsJws(jwt); // analisa e verifica o JWT
Descompressão
A descompactação é o processo de restauração da carga útil original de um JWT que foi compactado para reduzir seu tamanho e melhorar seu desempenho.Você pode compactar e descompactar JWTs usando io.jsonwebtoken jar especificando um codec de compactação, como DEFLATE ou GZIP. Você pode especificar um codec de compactação usando o comprimirCom() método do JwtBuilderGenericName instância ao criar um JWT e usar o descompressWith() método do JwtParserBuilderGenericName instância ao ler um JWT. Por exemplo, você pode criar um JWT compactado usando o codec DEFLATE desta forma:
// criar e compactar um JWT com codec DEFLATE String jwt = Jwts .builder() .setSubject("Alice") // definir a reivindicação do assunto .compressWith(CompressionCodecs.DEFLATE) // compactar com codec DEFLATE .signWith(key) // assinar com chave secreta .compact(); // compacta em string segura de URL // imprime o JWT System.out.println(jwt);
A saída desse código será algo assim: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsInppcCI6IkRFRiJ9.eJw9j0FqAjEMhF-l5FwQ7ZAyE4QeQ9t0xDbR2k3bJkWStZv0vru-7nGHGSnGKkRZFEVERfclhBWnLbJKKdtkk2WZ apKm0UoqpbSkVbFKS6mmtJJWJaWUllbSVkpqLUlLpZRSSeGlhFZK6eGlhFZK6eGlhFZK6eGlhFZK6eGlhFZK6Rl4_ZJ3fP8A2s8aYQ.Q0c7eEtxWuqRnVlYVrFtB5vOoP8k CnDdOuF7eHlWfN9o
Este é um JWT válido que foi compactado com o codec DEFLATE. A parte do cabeçalho contém um fecho eclair parâmetro que indica o algoritmo de compressão utilizado. A parte da carga útil contém os dados compactados que podem ser descompactados com o mesmo codec. A parte da assinatura é a mesma de antes.
Você pode ler e descompactar um JWT compactado usando o mesmo codec como este:
// analisa e descompacta um JWT com DEFLATE codec Jws jws = Jwts .parserBuilder() .setSigningKey(key) // define a chave de análise para a chave secreta .decompressWith(CompressionCodecs.DEFLATE) // descompacta com o codec DEFLATE .build() // constrói o analisador .parseClaimsJws(jwt); // analisa e verifica o JWT // imprime o cabeçalho, corpo e assinatura do JWS System.out.println(jws.getHeader()); System.out.println(jws.getBody()); System.out.println(jws.getSignature());
A saída desse código será algo assim:
alg=HS256, type=JWT, zip=DEF sub=Alice 0c7yHkqWuqRnVlYVrFtB5vOoP8kCnDdOuF7eHlWfN9o
Este é um JWS válido que foi analisado e verificado com a chave secreta usando o jar io.jsonwebtoken. A parte do cabeçalho contém os mesmos parâmetros de antes, exceto pelo fecho eclair parâmetro que indica o algoritmo de compressão utilizado. A parte do corpo contém a carga útil original que foi descompactada com o mesmo codec. A parte da assinatura é a mesma de antes.
Conclusão
Neste artigo, aprendemos como baixar e usar io.jsonwebtoken jar, uma biblioteca popular para criar e verificar JWTs em Java. Explicamos o que é o jar io.jsonwebtoken, por que você deve usá-lo, como baixá-lo de diferentes fontes e como usá-lo em seus projetos Java. Também mostramos como criar e verificar JWTs com cabeçalho, carga útil e assinatura usando jar io.jsonwebtoken. Também abordamos como especificar uma chave de análise, afirmar as declarações esperadas e descompactar um JWT compactado usando jar io.jsonwebtoken.
Esperamos que este artigo tenha ajudado você a entender como baixar e usar o jar io.jsonwebtoken para criar e verificar JWTs em Java. Se você tiver alguma dúvida ou feedback, sinta-se à vontade para deixar um comentário abaixo. Obrigado por ler!
perguntas frequentes
Aqui estão algumas perguntas e respostas frequentes sobre o jar io.jsonwebtoken:
Qual é a versão mais recente do jar io.jsonwebtoken?
A versão mais recente do jar io.jsonwebtoken em junho de 2021 é 0.11.2. Você pode verificar a versão mais recente e as notas de lançamento no .
Quais são as dependências do jar io.jsonwebtoken?
As dependências do jar io.jsonwebtoken variam dependendo de quais módulos você usa. O módulo principal (jjwt-api) não possui dependências. O módulo de implementação (jjwt-impl) depende de jjwt-api e slf4j-api. O módulo Jackson (jjwt-jackson) depende de jjwt-api, jjwt-impl, jackson-core, jackson-databind e jackson-annotations.O módulo legado (jjwt-legacy) depende de jjwt-api, jjwt-impl, jjwt-jackson, commons-codec e javax.inject.
Como posso gerar uma chave secreta ou uma chave pública ou uma chave privada para assinar ou verificar JWTs?
Você pode gerar uma chave secreta, uma chave pública ou uma chave privada para assinar ou verificar JWTs usando o jar io.jsonwebtoken ou outras ferramentas. jar io.jsonwebtoken fornece o Chaves classe que tem vários métodos para gerar chaves, como secretKeyFor(), keyPairFor(), e hmacShaKeyFor(). Por exemplo, você pode gerar uma chave secreta para o algoritmo HMAC-SHA256 usando este método:
// importar io.jsonwebtoken.security.*; // importa as classes de segurança do pacote io.jsonwebtoken // gera uma chave secreta para o algoritmo HMAC-SHA256 Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
Você também pode usar outras ferramentas, como , para gerar chaves para diferentes algoritmos, como RSA, ECDSA ou EdDSA. Você pode então importar as chaves para seu projeto Java usando io.jsonwebtoken jar ou outras bibliotecas.
Como posso solucionar erros de jar io.jsonwebtoken?
Se você encontrar erros ou exceções ao usar o jar io.jsonwebtoken, poderá solucioná-los seguindo estas etapas:
Verifique a mensagem de erro e o rastreamento de pilha para obter pistas sobre a causa e o local do erro.
Verifique a documentação e o código-fonte do jar io.jsonwebtoken para obter mais informações sobre os métodos e classes envolvidos no erro.
Verifique as especificações RFC e as ferramentas online, como , para obter mais informações sobre o formato JWT e as regras de validação.
Verifique os problemas do GitHub e as perguntas do Stack Overflow para problemas e soluções semelhantes.
Se nenhuma das etapas acima ajudar, você pode criar um novo problema no GitHub ou fazer uma nova pergunta no Stack Overflow com uma descrição clara do problema, o trecho de código, a mensagem de erro e o comportamento esperado.
Como posso contribuir para o jar io.jsonwebtoken?
Se você deseja contribuir com o jar io.jsonwebtoken, pode fazê-lo seguindo estas etapas:
garfo o .
Clone seu repositório bifurcado para sua máquina local.
Crie uma nova ramificação para seu recurso ou correção de bug.
Faça suas alterações e escreva testes para elas.
Execute os testes e verifique a cobertura e o estilo do código.
Confirme e envie suas alterações para sua ramificação.
Crie uma solicitação pull de sua ramificação para o repositório original.
Aguarde o feedback e a revisão dos mantenedores.
Se aprovado, sua solicitação pull será mesclada na ramificação master.
0517a86e26
Comments