diff --git a/.codeclimate.yml b/.codeclimate.yml
deleted file mode 100644
index c84b2ee..0000000
--- a/.codeclimate.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-# This is a sample .codeclimate.yml configured for Engine analysis on Code
-# Climate Platform. For an overview of the Code Climate Platform, see here:
-# http://docs.codeclimate.com/article/300-the-codeclimate-platform
-
-# Under the engines key, you can configure which engines will analyze your repo.
-# Each key is an engine name. For each value, you need to specify enabled: true
-# to enable the engine as well as any other engines-specific configuration.
-
-# For more details, see here:
-# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
-
-# For a list of all available engines, see here:
-# http://docs.codeclimate.com/article/296-engines-available-engines
-
-#engines:
-# to turn on an engine, add it here and set enabled to `true`
-# to turn off an engine, set enabled to `false` or remove it
-# rubocop:
-# enabled: true
-# golint:
-# enabled: true
-# gofmt:
-# enabled: true
-# eslint:
-# enabled: true
-# csslint:
-# enabled: true
-
-# Engines can analyze files and report issues on them, but you can separately
-# decide which files will receive ratings based on those issues. This is
-# specified by path patterns under the ratings key.
-
-# For more details see here:
-# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
-
-# ratings:
-# paths:
-# - app/**
-# - lib/**
-# - "**.rb"
-# - "**.go"
-
-# You can globally exclude files from being analyzed by any engine using the
-# exclude_paths key.
-
-#All maintainability checks are enabled by default with the following configurations.
-#checks,
-# argument-count:
-# config:
-# threshold: 4
-# complex-logic:
-# config:
-# threshold: 4
-# file-lines:
-# config:
-# threshold: 250
-# method-complexity:
-# config:
-# threshold: 5
-# method-count:
-# config:
-# threshold: 20
-# method-lines:
-# config:
-# threshold: 25
-# nested-control-flow:
-# config:
-# threshold: 4
-# return-statements:
-# config:
-# threshold: 4
-# similar-code:
-# config:
-# threshold: # language-specific defaults. an override will affect all languages.
-# identical-code:
-# config:
-# threshold: # language-specific defaults. an override will affect all languages.
-
-engines:
- sonar-java:
- enabled: true
- channel: beta
-
-exclude_paths:
-- "scripts/"
-- ".github/"
-- "gradle/"
-- "**/test/"
\ No newline at end of file
diff --git a/.github/workflows/pr-lint.yml b/.github/workflows/pr-lint.yml
new file mode 100644
index 0000000..2f5232b
--- /dev/null
+++ b/.github/workflows/pr-lint.yml
@@ -0,0 +1,15 @@
+name: Lint PR
+on:
+ pull_request_target:
+ types: [ opened, edited, synchronize, reopened ]
+
+jobs:
+ validate:
+ name: Validate title
+ runs-on: ubuntu-latest
+ steps:
+ - uses: amannn/action-semantic-pull-request@v4
+ with:
+ types: chore docs fix feat test misc
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml
new file mode 100644
index 0000000..9abc8c2
--- /dev/null
+++ b/.github/workflows/test-and-deploy.yml
@@ -0,0 +1,93 @@
+name: Test and Deploy
+on:
+ push:
+ branches: [ '*' ]
+ tags: [ '*' ]
+ pull_request:
+ branches: [ main ]
+ schedule:
+ # Run automatically at 8AM PST Monday-Friday
+ - cron: '0 15 * * 1-5'
+ workflow_dispatch:
+
+jobs:
+ test:
+ name: Test
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ strategy:
+ matrix:
+ java: [ 8, 11, 17 ]
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up Java
+ uses: actions/setup-java@v2
+ with:
+ distribution: 'temurin'
+ java-version: ${{ matrix.java }}
+ cache: 'maven'
+
+ - run: mvn install -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
+ - name: Run Unit Tests
+ run: mvn test -B
+
+ deploy:
+ name: Deploy
+ if: success() && github.ref_type == 'tag'
+ needs: [ test ]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up Sonatype Maven
+ uses: actions/setup-java@v2
+ with:
+ java-version: 8
+ distribution: temurin
+ server-id: ossrh
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
+ gpg-passphrase: GPG_PASSPHRASE
+
+ - name: Install Dependencies
+ run: make install
+
+ - name: Create GitHub Release
+ uses: sendgrid/dx-automator/actions/release@main
+ with:
+ assets: java-http-client.jar
+ footer: '**[Maven](https://mvnrepository.com/artifact/com.sendgrid/java-http-client/${version})**'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Publish to Maven
+ env:
+ MAVEN_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
+ GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
+ run: mvn clean deploy -DskipTests=true -B -U -Prelease
+
+ - name: Submit metric to Datadog
+ uses: sendgrid/dx-automator/actions/datadog-release-metric@main
+ env:
+ DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
+
+ notify-on-failure:
+ name: Slack notify on failure
+ if: failure() && github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref_type == 'tag')
+ needs: [ test, deploy ]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: rtCamp/action-slack-notify@v2
+ env:
+ SLACK_COLOR: failure
+ SLACK_ICON_EMOJI: ':github:'
+ SLACK_MESSAGE: ${{ format('Test *{0}*, Deploy *{1}*, {2}/{3}/actions/runs/{4}', needs.test.result, needs.deploy.result, github.server_url, github.repository, github.run_id) }}
+ SLACK_TITLE: Action Failure - ${{ github.repository }}
+ SLACK_USERNAME: GitHub Actions
+ SLACK_MSG_AUTHOR: twilio-dx
+ SLACK_FOOTER: Posted automatically using GitHub Actions
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
+ MSG_MINIMAL: true
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
new file mode 100644
index 0000000..35ec8ed
--- /dev/null
+++ b/.github/workflows/update-dependencies.yml
@@ -0,0 +1,60 @@
+name: Update dependencies
+on:
+ schedule:
+ # Run automatically at 7AM PST Tuesday
+ - cron: '0 14 * * 2'
+ workflow_dispatch:
+
+jobs:
+ update-dependencies-and-test:
+ name: Update Dependencies & Test
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ strategy:
+ max-parallel: 1
+ matrix:
+ java: [ 8, 11, 17 ]
+
+ steps:
+ - name: Checkout java-http-client
+ uses: actions/checkout@v2
+
+ - name: Set up Java
+ uses: actions/setup-java@v2
+ with:
+ distribution: 'temurin'
+ java-version: ${{ matrix.java }}
+ cache: 'maven'
+
+ - name: Updating semver dependencies
+ run: make update-deps
+
+ - run: mvn install -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
+
+ - name: Add & Commit
+ if: matrix.java == '17'
+ uses: EndBug/add-and-commit@v8.0.2
+ env:
+ GITHUB_TOKEN: ${{ secrets.SG_JAVA_GITHUB_TOKEN }}
+ with:
+ add: 'pom.xml'
+ default_author: 'github_actions'
+ message: 'chore: update java-http-client dependencies'
+
+ notify-on-failure:
+ name: Slack notify on failure
+ if: failure()
+ needs: [ update-dependencies-and-test ]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: rtCamp/action-slack-notify@v2
+ env:
+ SLACK_COLOR: failure
+ SLACK_ICON_EMOJI: ':github:'
+ SLACK_MESSAGE: ${{ format('Update dependencies *{0}*, {1}/{2}/actions/runs/{3}', needs.update-dependencies-and-test.result, github.server_url, github.repository, github.run_id) }}
+ SLACK_TITLE: Action Failure - ${{ github.repository }}
+ SLACK_USERNAME: GitHub Actions
+ SLACK_MSG_AUTHOR: twilio-dx
+ SLACK_FOOTER: Posted automatically using GitHub Actions
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
+ MSG_MINIMAL: true
diff --git a/.maven.xml b/.maven.xml
deleted file mode 100644
index bef1ab6..0000000
--- a/.maven.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- ossrh
- ${env.SONATYPE_USERNAME}
- ${env.SONATYPE_PASSWORD}
-
-
-
-
-
- ossrh
-
- true
-
-
- ${env.GPG_EXECUTABLE}
- ${env.GPG_PASSPHRASE}
-
-
-
-
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6e0de63..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-language: java
-before_install:
- - echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --import --batch || true
-matrix:
- include:
- - jdk: openjdk7
- dist: trusty
- - jdk: openjdk8
- dist: xenial
- - jdk: openjdk11
- dist: xenial
- - jdk: oraclejdk7
- dist: precise
- - jdk: oraclejdk8
- dist: trusty
- - jdk: oraclejdk11
- dist: trusty
- allow_failures:
- - jdk: openjdk7
- - jdk: oraclejdk7
-install:
- - mvn --settings .maven.xml install -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
-after_success:
- - bash <(curl -s https://codecov.io/bash) -t $CODECOV_KEY
-deploy:
- - provider: script
- script: mvn clean deploy --settings .maven.xml -DskipTests=true -B -U -Prelease
- skip_cleanup: true
- on:
- tags: true
- jdk: openjdk8
- branch: master
diff --git a/CHANGELOG.md b/CHANGELOG.md
index eb4658f..e4a94c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,79 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
+[2022-05-18] Version 4.5.1
+--------------------------
+**Library - Docs**
+- [PR #144](https://github.com/sendgrid/java-http-client/pull/144): Update to align with SendGrid Support. Thanks to [@garethpaul](https://github.com/garethpaul)!
+
+**Library - Fix**
+- [PR #143](https://github.com/sendgrid/java-http-client/pull/143): override default gh token. Thanks to [@beebzz](https://github.com/beebzz)!
+
+
+[2022-03-09] Version 4.5.0
+--------------------------
+**Library - Chore**
+- [PR #142](https://github.com/sendgrid/java-http-client/pull/142): push Datadog Release Metric upon deploy success. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
+
+**Library - Feature**
+- [PR #141](https://github.com/sendgrid/java-http-client/pull/141): add GH action to update dependencies. Thanks to [@JenniferMah](https://github.com/JenniferMah)!
+
+
+[2022-02-09] Version 4.4.0
+--------------------------
+**Library - Chore**
+- [PR #139](https://github.com/sendgrid/java-http-client/pull/139): upgrade supported language versions. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
+- [PR #138](https://github.com/sendgrid/java-http-client/pull/138): add gh release to workflow. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
+- [PR #137](https://github.com/sendgrid/java-http-client/pull/137): merge test and deploy workflows. Thanks to [@shwetha-manvinkurke](https://github.com/shwetha-manvinkurke)!
+
+**Library - Feature**
+- [PR #134](https://github.com/sendgrid/java-http-client/pull/134): Support multiple duplicate queryparams. Thanks to [@mjjs](https://github.com/mjjs)!
+
+
+[2022-01-12] Version 4.3.9
+--------------------------
+**Library - Chore**
+- [PR #136](https://github.com/sendgrid/java-http-client/pull/136): update license year. Thanks to [@JenniferMah](https://github.com/JenniferMah)!
+
+
+[2021-12-01] Version 4.3.8
+--------------------------
+**Library - Chore**
+- [PR #135](https://github.com/sendgrid/java-http-client/pull/135): fix pom for release. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
+- [PR #133](https://github.com/sendgrid/java-http-client/pull/133): migrate to github actions. Thanks to [@eshanholtz](https://github.com/eshanholtz)!
+
+
+[2021-05-19] Version 4.3.7
+--------------------------
+**Library - Chore**
+- [PR #131](https://github.com/sendgrid/java-http-client/pull/131): Bump org.apache.httpcomponents.httpclient from 4.5.12 to 4.5.13. Thanks to [@akunzai](https://github.com/akunzai)!
+
+
+[2020-08-19] Version 4.3.6
+--------------------------
+**Library - Chore**
+- [PR #128](https://github.com/sendgrid/java-http-client/pull/128): update GitHub branch references to use HEAD. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
+
+**Library - Docs**
+- [PR #97](https://github.com/sendgrid/java-http-client/pull/97): Correcting *.md files using Grammarly. Thanks to [@pushkyn](https://github.com/pushkyn)!
+- [PR #101](https://github.com/sendgrid/java-http-client/pull/101): Add first timers file. Thanks to [@Varpie](https://github.com/Varpie)!
+
+
+[2020-08-05] Version 4.3.5
+--------------------------
+**Library - Docs**
+- [PR #86](https://github.com/sendgrid/java-http-client/pull/86): Moved usage and enviorment variables to USAGE.md. Thanks to [@rareinator](https://github.com/rareinator)!
+
+
+[2020-07-22] Version 4.3.4
+--------------------------
+**Library - Fix**
+- [PR #109](https://github.com/sendgrid/java-http-client/pull/109): correct the LICENSE.md link in pom.xml. Thanks to [@crweiner](https://github.com/crweiner)!
+
+**Library - Docs**
+- [PR #108](https://github.com/sendgrid/java-http-client/pull/108): Create a Use Cases Directory. Thanks to [@ajloria](https://github.com/ajloria)!
+
+
[2020-03-04] Version 4.3.3
--------------------------
**Library - Chore**
@@ -72,14 +145,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### BREAKING Change
- [Pull #14](https://github.com/sendgrid/java-http-client/pull/14): Make response have private variables
- Fixed [Issue #12](https://github.com/sendgrid/java-http-client/issues/12): The public Response variables should be private
-- The breaking change is that variables that were public are now private and accessable only via getters and setters
+- The breaking change is that variables that were public are now private and accessible only via getters and setters
- BIG thanks to [Diego Camargo](https://github.com/belfazt) for the pull request!
## [3.0.0] - 2016-10-06
### BREAKING Change
- [Pull #15](https://github.com/sendgrid/java-http-client/pull/15): Update the request object with sensible defaults and access methods
- Fixes [Issue #13](https://github.com/sendgrid/java-http-client/issues/13): Update the Request object with sensible defaults and access methods
-- The breaking change is that variables that were public are now private and accessable only via getters and setters
+- The breaking change is that variables that were public are now private and accessible only via getters and setters
- BIG thanks to [Diego Camargo](https://github.com/belfazt) for the pull request!
## [2.3.4] - 2016-08-09
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b0ce38c..ff28f44 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,57 +1,11 @@
-Hello! Thank you for choosing to help contribute to one of the SendGrid open source projects. There are many ways you can contribute and help is always welcome. We simply ask that you follow the following contribution policies.
+Hello! Thank you for choosing to help contribute to one of the SendGrid open source projects. There are many ways you can contribute and help is always welcome. We simply ask that you follow the following contribution policies.
-- [CLAs and CCLAs](#cla)
-- [Roadmap & Milestones](#roadmap)
-- [Feature Request](#feature-request)
-- [Submit a Bug Report](#submit-a-bug-report)
- [Improvements to the Codebase](#improvements-to-the-codebase)
- [Understanding the Code Base](#understanding-the-codebase)
- [Testing](#testing)
- [Style Guidelines & Naming Conventions](#style-guidelines-and-naming-conventions)
- [Creating a Pull Request](#creating-a-pull-request)
-
-
-We use [Milestones](https://github.com/sendgrid/java-http-client/milestones) to help define current roadmaps, please feel free to grab an issue from the current milestone. Please indicate that you have begun work on it to avoid collisions. Once a PR is made, community review, comments, suggestions and additional PRs are welcomed and encouraged.
-
-
-## CLAs and CCLAs
-
-Before you get started, SendGrid requires that a SendGrid Contributor License Agreement (CLA) be filled out by every contributor to a SendGrid open source project.
-
-Our goal with the CLA is to clarify the rights of our contributors and reduce other risks arising from inappropriate contributions. The CLA also clarifies the rights SendGrid holds in each contribution and helps to avoid misunderstandings over what rights each contributor is required to grant to SendGrid when making a contribution. In this way the CLA encourages broad participation by our open source community and helps us build strong open source projects, free from any individual contributor withholding or revoking rights to any contribution.
-
-SendGrid does not merge a pull request made against a SendGrid open source project until that pull request is associated with a signed CLA. Copies of the CLA are available [here](https://gist.github.com/SendGridDX/98b42c0a5d500058357b80278fde3be8#file-sendgrid_cla).
-
-When you create a Pull Request, after a few seconds, a comment will appear with a link to the CLA. Click the link and fill out the brief form and then click the "I agree" button and you are all set. You will not be asked to re-sign the CLA unless we make a change.
-
-There are a few ways to contribute, which we'll enumerate below:
-
-
-## Feature Request
-
-If you'd like to make a feature request, please read this section.
-
-The GitHub issue tracker is the preferred channel for library feature requests, but please respect the following restrictions:
-
-- Please **search for existing issues** in order to ensure we don't have duplicate bugs/feature requests.
-- Please be respectful and considerate of others when commenting on issues
-
-
-## Submit a Bug Report
-
-Note: DO NOT include your credentials in ANY code examples, descriptions, or media you make public.
-
-A software bug is a demonstrable issue in the code base. In order for us to diagnose the issue and respond as quickly as possible, please add as much detail as possible into your bug report.
-
-Before you decide to create a new issue, please try the following:
-
-1. Check the Github issues tab if the identified issue has already been reported, if so, please add a +1 to the existing post.
-2. Update to the latest version of this code and check if issue has already been fixed
-3. Copy and fill in the Bug Report Template we have provided below
-
-### Please use our Bug Report Template
-
-In order to make the process easier, we've included a [sample bug report template](https://github.com/sendgrid/java-http-client/blob/master/ISSUE_TEMPLATE.md) (borrowed from [Ghost](https://github.com/TryGhost/Ghost/)). The template uses [GitHub flavored markdown](https://help.github.com/articles/github-flavored-markdown/) for formatting.
+- [Code Reviews](#code-reviews)
## Improvements to the Codebase
@@ -64,8 +18,8 @@ We welcome direct contributions to the java-http-client code base. Thank you!
##### Prerequisites #####
-- Java version Oracle JDK 8 or OpenJDK 7
-- Please see [build.gradle](https://github.com/sendgrid/java-http-client/blob/master/build.gradle)
+- Java 8 or 11
+- Please see [pom.xml](pom.xml)
##### Initial setup: #####
@@ -76,7 +30,7 @@ cd java-http-client
##### Execute: #####
-See the [examples folder](https://github.com/sendgrid/java-http-client/tree/master/examples) to get started quickly.
+See the [examples folder](examples) to get started quickly.
You will need to setup the following environment to use the SendGrid example:
@@ -120,9 +74,9 @@ Provides a standard interface to an API's response.
All PRs require passing tests before the PR will be reviewed.
-All test files are in [`java-http-client/src/test/java/com/sendgrid`](https://github.com/sendgrid/java-http-client/tree/master/src/test/java/com/sendgrid).
+All test files are in [`java-http-client/src/test/java/com/sendgrid`](src/test/java/com/sendgrid).
-For the purposes of contributing to this repo, please update the [`ClientTest.java`](https://github.com/sendgrid/java-http-client/blob/master/src/test/java/com/sendgrid/ClientTest.java) file with unit tests as you modify the code.
+For the purposes of contributing to this repo, please update the [`ClientTest.java`](src/test/java/com/sendgrid/ClientTest.java) file with unit tests as you modify the code.
Run the tests:
@@ -172,7 +126,7 @@ Please run your code through:
4. Commit your changes in logical chunks. Please adhere to these [git commit
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
- or your code is unlikely be merged into the main project. Use Git's
+ or your code is unlikely to be merged into the main project. Use Git's
[interactive rebase](https://help.github.com/articles/interactive-rebase)
feature to tidy up your commits before making them public.
@@ -183,7 +137,7 @@ Please run your code through:
5. Locally merge (or rebase) the upstream development branch into your topic branch:
```bash
- git pull [--rebase] upstream master
+ git pull [--rebase] upstream main
```
6. Push your topic branch up to your fork:
@@ -193,6 +147,7 @@ Please run your code through:
```
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
- with a clear title and description against the `master` branch. All tests must be passing before we will review the PR.
+ with a clear title and description against the `main` branch. All tests must be passing before we will review the PR.
-If you have any additional questions, please feel free to [email](mailto:dx@sendgrid.com) us or create an issue in this repo.
+## Code Reviews
+If you can, please look at open PRs and review them. Give feedback and help us merge these PRs much faster! If you don't know how, GitHub has some great [information on how to review a Pull Request](https://help.github.com/articles/about-pull-request-reviews/).
diff --git a/FIRST_TIMERS.md b/FIRST_TIMERS.md
new file mode 100644
index 0000000..ab29f04
--- /dev/null
+++ b/FIRST_TIMERS.md
@@ -0,0 +1,53 @@
+# How To Contribute to Twilio SendGrid Repositories via GitHub
+Contributing to the Twilio SendGrid repositories is easy! All you need to do is find an open issue (see the bottom of this page for a list of repositories containing open issues), fix it and submit a pull request. Once you have submitted your pull request, the team can easily review it before it is merged into the repository.
+
+To make a pull request, follow these steps:
+
+1. Log into GitHub. If you do not already have a GitHub account, you will have to create one in order to submit a change. Click the Sign up link in the upper right-hand corner to create an account. Enter your username, password, and email address. If you are an employee of Twilio SendGrid, please use your full name with your GitHub account and enter Twilio SendGrid as your company so we can easily identify you.
+
+
+
+2. __[Fork](https://help.github.com/fork-a-repo/)__ the [java-http-client](https://github.com/sendgrid/java-http-client) repository:
+
+
+
+3. __Clone__ your fork via the following commands:
+
+```bash
+# Clone your fork of the repo into the current directory
+git clone https://github.com/your_username/java-http-client
+# Navigate to the newly cloned directory
+cd java-http-client
+# Assign the original repo to a remote called "upstream"
+git remote add upstream https://github.com/sendgrid/java-http-client
+```
+
+> Don't forget to replace *your_username* in the URL by your real GitHub username.
+
+4. __Create a new topic branch__ (off the main project development branch) to contain your feature, change, or fix:
+
+```bash
+git checkout -b
+```
+
+5. __Commit your changes__ in logical chunks.
+
+Please adhere to these [git commit message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) or your code is unlikely be merged into the main project. Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. Probably you will also have to create tests (if needed) or create or update the example code that demonstrates the functionality of this change to the code.
+
+6. __Locally merge (or rebase)__ the upstream development branch into your topic branch:
+
+```bash
+git pull [--rebase] upstream main
+```
+
+7. __Push__ your topic branch up to your fork:
+
+```bash
+git push origin
+```
+
+8. __[Open a Pull Request](https://help.github.com/articles/creating-a-pull-request/#changing-the-branch-range-and-destination-repository/)__ with a clear title and description against the `main` branch. All tests must be passing before we will review the PR.
+
+## Important notice
+
+Before creating a pull request, make sure that you respect the repository's constraints regarding contributions. You can find them in the [CONTRIBUTING.md](CONTRIBUTING.md) file.
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
deleted file mode 100644
index 86334bd..0000000
--- a/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-### Issue Summary
-A summary of the issue and the environment in which it occurs. If suitable, include the steps required to reproduce the bug. Please feel free to include screenshots, screencasts, or code examples.
-
-### Steps to Reproduce
-1. This is the first step
-2. This is the second step
-3. Further steps, etc.
-
-### Code Snippet
-```java
-# paste code here
-```
-
-### Exception/Log
-```
-# paste exception/log here
-```
-
-### Technical details:
-* java-http-client version:
-* java version:
-
diff --git a/LICENSE.md b/LICENSE
similarity index 94%
rename from LICENSE.md
rename to LICENSE
index 29aba59..3154774 100644
--- a/LICENSE.md
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (C) 2020, Twilio SendGrid, Inc.
+Copyright (C) 2023, Twilio SendGrid, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/Makefile b/Makefile
index dd38561..851986a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: install test test-integration clean
+.PHONY: install package test update-deps test-integration clean
VERSION := $(shell mvn help:evaluate -Dexpression=project.version --batch-mode | grep -e '^[^\[]')
install:
@@ -6,8 +6,15 @@ install:
mvn clean install -DskipTests=true -Dgpg.skip -B
cp target/java-http-client-$(VERSION).jar java-http-client.jar
+package:
+ mvn package -DskipTests=true -Dgpg.skip -B
+ cp target/java-http-client-$(VERSION).jar java-http-client.jar
+
test:
mvn test
+update-deps:
+ mvn versions:use-latest-releases versions:commit -DallowMajorUpdates=false
+
clean:
mvn clean
diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md
index 215059a..bc85492 100644
--- a/PULL_REQUEST_TEMPLATE.md
+++ b/PULL_REQUEST_TEMPLATE.md
@@ -3,7 +3,7 @@ We appreciate the effort for this pull request but before that please make sure
Please format the PR title appropriately based on the type of change:
[!]:
-Where is one of: docs, chore, feat, fix, test.
+Where is one of: docs, chore, feat, fix, test, misc.
Add a '!' after the type for breaking changes (e.g. feat!: new breaking feature).
**All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.**
@@ -19,13 +19,13 @@ Closes #2
A short description of what this PR does.
### Checklist
-- [ ] I acknowledge that all my contributions will be made under the project's license
+- [x] I acknowledge that all my contributions will be made under the project's license
- [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
-- [ ] I have read the [Contribution Guidelines](CONTRIBUTING.md) and my PR follows them
+- [ ] I have read the [Contribution Guidelines](https://github.com/sendgrid/java-http-client/blob/main/CONTRIBUTING.md) and my PR follows them
- [ ] I have titled the PR appropriately
-- [ ] I have updated my branch with the master branch
+- [ ] I have updated my branch with the main branch
- [ ] I have added tests that prove my fix is effective or that my feature works
-- [ ] I have added necessary documentation about the functionality in the appropriate .md file
+- [ ] I have added the necessary documentation about the functionality in the appropriate .md file
- [ ] I have added inline documentation to the code I modified
-If you have questions, please file a [support ticket](https://twilio.com/help/contact), or create a GitHub Issue in this repository.
+If you have questions, please file a [support ticket](https://support.sendgrid.com), or create a GitHub Issue in this repository.
diff --git a/README.md b/README.md
index 5ff18df..0f646b8 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-
+
-[](https://travis-ci.org/sendgrid/java-http-client)
+[](https://github.com/sendgrid/java-http-client/actions/workflows/test-and-deploy.yml)
[](http://mvnrepository.com/artifact/com.sendgrid/java-http-client)
-[](./LICENSE.md)
+[](LICENSE)
[](https://twitter.com/sendgrid)
[](https://github.com/sendgrid/java-http-client/graphs/contributors)
@@ -15,24 +15,23 @@ If you are looking for the SendGrid API client library, please see [this repo](h
* [Announcements](#announcements)
* [Installation](#installation)
* [Quick Start](#quick-start)
-* [Usage](#usage)
-* [Roadmap](#roadmap)
+* [Usage](./USAGE.md)
* [How to Contribute](#contribute)
* [About](#about)
+* [Support](#support)
* [License](#license)
# Announcements
-**NEW:** If you're a software engineer who is passionate about #DeveloperExperience and/or #OpenSource, [this is an incredible opportunity to join our #DX team](https://sendgrid.com/careers/role/1421152/?gh_jid=1421152) as a Developer Experience Engineer and work with [@thinkingserious](https://github.com/thinkingserious) and [@aroach](https://github.com/aroach)! Tell your friends :)
-All updates to this project is documented in our [CHANGELOG](https://github.com/sendgrid/java-http-client/blob/master/CHANGELOG.md).
+All updates to this project are documented in our [CHANGELOG](CHANGELOG.md).
# Installation
## Prerequisites
-- Java version Oracle JDK 8 or OpenJDK 7
+- Java 8, 11, or 17
## Install via Maven w/ Gradle
@@ -40,7 +39,7 @@ All updates to this project is documented in our [CHANGELOG](https://github.com/
...
dependencies {
...
- compile 'com.sendgrid:java-http-client:4.3.3'
+ compile 'com.sendgrid:java-http-client:4.5.1'
}
repositories {
@@ -55,19 +54,15 @@ repositories {
com.sendgrid
java-http-client
- 4.3.3
+ 4.5.1
```
`mvn install`
-## Install via Fat Jar
-
-[sendgrid-java-latest.jar](http://dx.sendgrid.com/downloads/java-http-client/java-http-client-latest.jar)
-
## Dependencies
-- Please see the [build.gradle file](https://github.com/sendgrid/java-http-client/blob/master/build.gradle)
+- Please see the [pom.xml file](pom.xml)
# Quick Start
@@ -101,6 +96,8 @@ try {
request.addHeader("Authorization", "Bearer YOUR_API_KEY");
request.addQueryParam("limit", "100");
request.addQueryParam("offset", "0");
+// Will be parsed to categories=cake&categories=pie&categories=baking
+request.addQueryParam("categories", "cake&pie&baking");
request.setBody("{\"name\": \"My Request Body\"}");
request.setMethod(Method.POST);
String param = "param";
@@ -116,60 +113,29 @@ try {
}
```
-
-# Usage
-
-- [Example Code](https://github.com/sendgrid/java-http-client/tree/master/examples)
-- [Library Usage Documentation](USAGE.md)
-
-
-The example uses SendGrid, you can get your free account [here](https://sendgrid.com/free?source=java-http-client).
-
-First, update your environment with your [SENDGRID_API_KEY](https://app.sendgrid.com/settings/api_keys).
-
-```bash
-echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
-echo "sendgrid.env" >> .gitignore
-source ./sendgrid.env
-```
-
-```bash
-mvn package
-cd examples
-javac -classpath {path_to}/sendgrid-java-http-client-4.0.0-jar.jar:. Example.java && java -classpath {path_to}/sendgrid-java-http-client-4.0.0-jar.jar:. Example
-```
-
-## Environment Variables
-
-You can do the following to create a .env file:
-
-```cp .env_example .env```
-
-Then, just add your API Key into your .env file.
-
-
-# Roadmap
-
-If you are interested in the future direction of this project, please take a look at our [milestones](https://github.com/sendgrid/java-http-client/milestones). We would love to hear your feedback.
-
# How to Contribute
-We encourage contribution to our projects please see our [CONTRIBUTING](https://github.com/sendgrid/java-http-client/blob/master/CONTRIBUTING.md) guide for details.
+We encourage contribution to our projects please see our [CONTRIBUTING](CONTRIBUTING.md) guide for details.
Quick links:
-- [Feature Request](https://github.com/sendgrid/java-http-client/blob/master/CONTRIBUTING.md#feature-request)
-- [Bug Reports](https://github.com/sendgrid/java-http-client/blob/master/CONTRIBUTING.md#submit-a-bug-report)
-- [Sign the CLA to Create a Pull Request](https://github.com/sendgrid/java-http-client/blob/master/CONTRIBUTING.md#cla)
-- [Improvements to the Codebase](https://github.com/sendgrid/java-http-client/blob/master/CONTRIBUTING.md#improvements-to-the-codebase)
+- [Feature Request](CONTRIBUTING.md#feature-request)
+- [Bug Reports](CONTRIBUTING.md#submit-a-bug-report)
+- [Improvements to the Codebase](CONTRIBUTING.md#improvements-to-the-codebase)
+- [Review Pull Requests](CONTRIBUTING.md#Code-Reviews)
# About
-java-http-client is guided and supported by the SendGrid [Developer Experience Team](mailto:dx@sendgrid.com).
+java-http-client is maintained and funded by Twilio SendGrid, Inc. The names and logos for java-http-client are trademarks of Twilio SendGrid, Inc.
+
+
+# Support
+
+If you need help using SendGrid, please check the [Twilio SendGrid Support Help Center](https://support.sendgrid.com).
-java-http-client is maintained and funded by SendGrid, Inc. The names and logos for java-http-client are trademarks of SendGrid, Inc.
+If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
# License
-[The MIT License (MIT)](LICENSE.txt)
+[The MIT License (MIT)](LICENSE)
diff --git a/USAGE.md b/USAGE.md
index 40c3f83..4a01093 100644
--- a/USAGE.md
+++ b/USAGE.md
@@ -1,6 +1,6 @@
# Usage
-- [Example Code](https://github.com/sendgrid/java-http-client/tree/master/examples)
+- [Example Code](examples)
The example uses SendGrid, you can get your free account [here](https://sendgrid.com/free?source=java-http-client).
@@ -16,4 +16,12 @@ source ./sendgrid.env
mvn package
cd examples
javac -classpath {path_to}/sendgrid-java-http-client-4.0.0-jar.jar:. Example.java && java -classpath {path_to}/sendgrid-java-http-client-4.0.0-jar.jar:. Example
-```
\ No newline at end of file
+```
+
+## Environment Variables
+
+You can do the following to create a .env file:
+
+```cp .env_example .env```
+
+Then, just add your API Key into your .env file.
\ No newline at end of file
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 79a5b0b..5e2749f 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,13 +1,13 @@
FROM store/oracle/serverjre:8
-ENV OAI_SPEC_URL="https://raw.githubusercontent.com/sendgrid/sendgrid-oai/master/oai_stoplight.json"
+ENV OAI_SPEC_URL="https://raw.githubusercontent.com/sendgrid/sendgrid-oai/HEAD/oai_stoplight.json"
RUN yum install -y git
WORKDIR /root
# install Prism
-ADD https://raw.githubusercontent.com/stoplightio/prism/master/install.sh install.sh
+ADD https://raw.githubusercontent.com/stoplightio/prism/HEAD/install.sh install.sh
RUN chmod +x ./install.sh && sync && \
./install.sh && \
rm ./install.sh
diff --git a/docker/README.md b/docker/README.md
index 6a7e0cb..fabe4c0 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -1,5 +1,5 @@
# Supported tags and respective `Dockerfile` links
- - `v1.0.0`, `latest` [(Dockerfile)](https://github.com/sendgrid/java-http-client/blob/master/docker/Dockerfile)
+ - `v1.0.0`, `latest` [(Dockerfile)](Dockerfile)
# Quick reference
Due to Oracle's JDK license, you must build this Docker image using the official Oracle image located in the Docker Store. You will need a Docker store account. Once you have an account, you must accept the Oracle license [here](https://store.docker.com/images/oracle-serverjre-8). On the command line, type `docker login` and provide your credentials. You may then build the image using this command `docker build -t sendgrid/java-http-client -f Dockerfile .`
@@ -11,7 +11,7 @@ Due to Oracle's JDK license, you must build this Docker image using the official
https://github.com/sendgrid/java-http-client/issues
- **Where to get more info:**
- [USAGE.md](https://github.com/sendgrid/java-http-client/blob/master/docker/USAGE.md)
+ [USAGE.md](USAGE.md)
- **Maintained by:**
[SendGrid Inc.](https://sendgrid.com)
@@ -26,12 +26,6 @@ Due to Oracle's JDK license, you must build this Docker image using the official
$ docker run -it -v /path/to/cool-java-http-client:/mnt/java-http-client sendgrid/java-http-client
```
-For more detailed information, see [USAGE.md](https://github.com/sendgrid/java-http-client/blob/master/docker/USAGE.md).
+For more detailed information, see [USAGE.md](USAGE.md).
-# About
-
-java-http-client is guided and supported by the SendGrid [Developer Experience Team](mailto:dx@sendgrid.com).
-
-java-http-client is maintained and funded by SendGrid, Inc. The names and logos for java-http-client are trademarks of SendGrid, Inc.
-
-
\ No newline at end of file
+
diff --git a/docker/USAGE.md b/docker/USAGE.md
index 7b4245e..9fbfb81 100644
--- a/docker/USAGE.md
+++ b/docker/USAGE.md
@@ -25,11 +25,4 @@ You can mount repositories in the `/mnt/java-http-client` and `/mnt/java-http-cl
# Testing
Testing is easy! Run the container, `cd sendgrid`, and run `./gradlew test`.
-
-# About
-
-java-http-client is guided and supported by the SendGrid [Developer Experience Team](mailto:dx@sendgrid.com).
-
-java-http-client is maintained and funded by SendGrid, Inc. The names and logos for java-http-client are trademarks of SendGrid, Inc.
-
-
\ No newline at end of file
+
diff --git a/pom.xml b/pom.xml
index ed458ba..efcc8d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,12 +11,12 @@
jar
A simple HTTP client
HTTP REST client, simplified for Java
- 4.3.3
+ 4.5.1
https://github.com/sendgrid/java-http-client
The MIT License (MIT)
- https://github.com/sendgrid/java-http-client/blob/master/LICENSE
+ https://github.com/sendgrid/java-http-client/blob/HEAD/LICENSE
repo
@@ -24,41 +24,9 @@
https://github.com/sendgrid/java-http-client
scm:git:git@github.com:sendgrid/java-http-client.git
scm:git:git@github.com:sendgrid/java-http-client.git
- 4.3.3
+ 4.5.1
-
- gpg
-
- false
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.6
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
- ${gpg.keyname}
- ${gpg.passphrase}
-
- --pinentry-mode
- loopback
-
-
-
-
-
-
release
@@ -116,6 +84,14 @@
sign
+
+ ${gpg.keyname}
+ ${gpg.passphrase}
+
+ --pinentry-mode
+ loopback
+
+
@@ -131,7 +107,7 @@
junit
junit-dep
- 4.10
+ 4.11
test
@@ -143,12 +119,12 @@
org.apache.httpcomponents
httpcore
- 4.4.12
+ 4.4.15
org.apache.httpcomponents
httpclient
- 4.5.10
+ 4.5.13
diff --git a/scripts/generate_upload_policy.php b/scripts/generate_upload_policy.php
deleted file mode 100644
index 18fdf82..0000000
--- a/scripts/generate_upload_policy.php
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env php
-$blocksize)
- $key=pack('H*', $hashfunc($key));
- $key=str_pad($key,$blocksize,chr(0x00));
- $ipad=str_repeat(chr(0x36),$blocksize);
- $opad=str_repeat(chr(0x5c),$blocksize);
- $hmac = pack(
- 'H*',$hashfunc(
- ($key^$opad).pack(
- 'H*',$hashfunc(
- ($key^$ipad).$data
- )
- )
- )
- );
- return bin2hex($hmac);
-}
-
-/*
- * Used to encode a field for Amazon Auth
- * (taken from the Amazon S3 PHP example library)
- */
-function hex2b64($str)
-{
- $raw = '';
- for ($i=0; $i < strlen($str); $i+=2)
- {
- $raw .= chr(hexdec(substr($str, $i, 2)));
- }
- return base64_encode($raw);
-}
-
-if (count($argv) != 3) {
- echo "Usage: " . $argv[0] . " \n";
- exit(1);
-}
-
-$policy = file_get_contents($argv[1]);
-$secret = $argv[2];
-
-/*
- * Base64 encode the Policy Document and then
- * create HMAC SHA-1 signature of the base64 encoded policy
- * using the secret key. Finally, encode it for Amazon Authentication.
- */
-$base64_policy = base64_encode($policy);
-$signature = hex2b64(hmacsha1($secret, $base64_policy));
-echo "S3_POLICY=\"" . $base64_policy . "\"\nS3_SIGNATURE=\"" . $signature . "\"\n"
-?>
diff --git a/scripts/s3policy.json b/scripts/s3policy.json
deleted file mode 100644
index 487f00c..0000000
--- a/scripts/s3policy.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "expiration": "2100-01-01T12:00:00.000Z",
- "conditions": [
- {"acl": "public-read" },
- {"bucket": "sendgrid-open-source" },
- ["starts-with", "$key", "http/"],
- ["content-length-range", 2048, 268435456],
- ["eq", "$Content-Type", "application/zip"]
- ]
-}
\ No newline at end of file
diff --git a/src/main/java/com/sendgrid/Client.java b/src/main/java/com/sendgrid/Client.java
index 340f12c..d0865fd 100644
--- a/src/main/java/com/sendgrid/Client.java
+++ b/src/main/java/com/sendgrid/Client.java
@@ -9,6 +9,8 @@
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
+import java.util.Arrays;
+import java.util.List;
import org.apache.http.Header;
import org.apache.http.HttpMessage;
@@ -129,8 +131,19 @@ public URI buildUri(String baseUri, String endpoint, Map queryPa
builder.setPath(endpoint);
if (queryParams != null) {
+ String multiValueDelimiter = "&";
+
for (Map.Entry entry : queryParams.entrySet()) {
- builder.setParameter(entry.getKey(), entry.getValue());
+ String value = entry.getValue();
+
+ if (value.indexOf(multiValueDelimiter) != -1) {
+ List values = Arrays.asList(value.split(multiValueDelimiter));
+ for (String val : values) {
+ builder.addParameter(entry.getKey(), val);
+ }
+ } else {
+ builder.setParameter(entry.getKey(), entry.getValue());
+ }
}
}
diff --git a/src/test/java/com/sendgrid/ClientTest.java b/src/test/java/com/sendgrid/ClientTest.java
index 9367379..0425199 100644
--- a/src/test/java/com/sendgrid/ClientTest.java
+++ b/src/test/java/com/sendgrid/ClientTest.java
@@ -33,8 +33,10 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -62,6 +64,7 @@ public void testbuildUri() {
Map queryParams = new HashMap();
queryParams.put("test1", "1");
queryParams.put("test2", "2");
+ queryParams.put("test3", "3&4&5");
try {
uri = client.buildUri(baseUri, endpoint, queryParams);
} catch (URISyntaxException ex) {
@@ -70,10 +73,23 @@ public void testbuildUri() {
Assert.assertTrue(errors.toString(), false);
}
- String url = uri.toString();
- System.out.println(url);
- Assert.assertTrue(url.equals("https://api.test.com/endpoint?test2=2&test1=1") ||
- url.equals("https://api.test.com/endpoint?test1=1&test2=2"));
+ URL url = null;
+ try {
+ url = uri.toURL();
+ } catch (MalformedURLException ex) {
+ StringWriter errors = new StringWriter();
+ ex.printStackTrace(new PrintWriter(errors));
+ Assert.assertTrue(errors.toString(), false);
+ }
+
+ Assert.assertTrue(url.getProtocol().equals("https"));
+ Assert.assertTrue(url.getHost().equals("api.test.com"));
+ Assert.assertTrue(url.getPath().equals("/endpoint"));
+ Assert.assertTrue(this.queryParamHasCorrectValue(url, "test1", "1"));
+ Assert.assertTrue(this.queryParamHasCorrectValue(url, "test2", "2"));
+ Assert.assertTrue(this.queryParamHasCorrectValue(url, "test3", "3"));
+ Assert.assertTrue(this.queryParamHasCorrectValue(url, "test3", "4"));
+ Assert.assertTrue(this.queryParamHasCorrectValue(url, "test3", "5"));
}
@Test
@@ -174,4 +190,8 @@ public void testPut() {
public void testDelete() {
testMethod(Method.DELETE, 204);
}
+
+ private boolean queryParamHasCorrectValue(URL url, String key, String value) {
+ return url.getQuery().indexOf(key + "=" + value) != -1;
+ }
}
diff --git a/src/test/java/com/sendgrid/LicenseTest.java b/src/test/java/com/sendgrid/LicenseTest.java
index 493458e..04e4849 100644
--- a/src/test/java/com/sendgrid/LicenseTest.java
+++ b/src/test/java/com/sendgrid/LicenseTest.java
@@ -13,7 +13,7 @@ public class LicenseTest {
@Test
public void testLicenseShouldHaveCorrectYear() throws IOException {
String copyrightText = null;
- try (BufferedReader br = new BufferedReader(new FileReader("./LICENSE.md"))) {
+ try (BufferedReader br = new BufferedReader(new FileReader("./LICENSE"))) {
for (String line; (line = br.readLine()) != null; ) {
if (line.startsWith("Copyright")) {
copyrightText = line;
diff --git a/src/test/java/com/sendgrid/TestRequiredFilesExist.java b/src/test/java/com/sendgrid/TestRequiredFilesExist.java
index 01b43c9..02e3d35 100644
--- a/src/test/java/com/sendgrid/TestRequiredFilesExist.java
+++ b/src/test/java/com/sendgrid/TestRequiredFilesExist.java
@@ -29,15 +29,6 @@ public class TestRequiredFilesExist {
assertTrue(new File("./.gitignore").exists());
}
- // ./.travis.yml
- @Test public void checkTravisExists() {
- assertTrue(new File("./.travis.yml").exists());
- }
-
- // ./.codeclimate.yml
- @Test public void checkCodeClimateExists() {
- assertTrue(new File("./.codeclimate.yml").exists());
- }
// ./CHANGELOG.md
@Test public void checkChangelogExists() {
@@ -54,14 +45,9 @@ public class TestRequiredFilesExist {
assertTrue(new File("./CONTRIBUTING.md").exists());
}
- // ./ISSUE_TEMPLATE.md
- @Test public void checkIssuesTemplateExists() {
- assertTrue(new File("./ISSUE_TEMPLATE.md").exists());
- }
-
- // ./LICENSE.md
+ // ./LICENSE
@Test public void checkLicenseExists() {
- assertTrue(new File("./LICENSE.md").exists());
+ assertTrue(new File("./LICENSE").exists());
}
// ./PULL_REQUEST_TEMPLATE.md
diff --git a/static/img/github-fork.png b/static/img/github-fork.png
new file mode 100644
index 0000000..6503be3
Binary files /dev/null and b/static/img/github-fork.png differ
diff --git a/static/img/github-sign-up.png b/static/img/github-sign-up.png
new file mode 100644
index 0000000..491392b
Binary files /dev/null and b/static/img/github-sign-up.png differ
diff --git a/twilio_sendgrid_logo.png b/twilio_sendgrid_logo.png
new file mode 100644
index 0000000..a4c2223
Binary files /dev/null and b/twilio_sendgrid_logo.png differ
diff --git a/use_cases/README.md b/use_cases/README.md
new file mode 100644
index 0000000..657a022
--- /dev/null
+++ b/use_cases/README.md
@@ -0,0 +1,5 @@
+This documentation provides examples for specific SendGrid v3 API use cases. Please [open an issue](https://github.com/sendgrid/java-http-client/issues) or make a pull request for any email use cases you would like us to document here. Thank you!
+
+# Email Use Cases
+
+# Non-mail Use Cases