* Update README and shipping-releases as they are a bit out of date
* Update year/copyright info
* Update cake.frosting to latest for newest dotnet tooling support, and adjust builds for new configuration parameters
* update xunit packages so codelens works for nested test classes (VS2017 15.3 update is also required)
* Fixup VS version and remove win debugging tools
* First Iteration Need to finish tests and docs
* Mostly Complete
* Fixing tests and adding review comments
* Added tests for reactive client
* Moved Reviews inside fo the Pull request client for better organization and began initial intigration testing
* Fixing bad recursive function breaking tests
* test fixes
* Add paging support to review comments call
* Fixing recursive function
* Addressing comments from PR
* fixing CI break
* Typo build break
* Fixing Convention Tests
* Adding correct nameof() usage in Ensure
* Small consitancy changes
* Trigger build
* Address PR Comments
* Fixup test naming
* Fix sub client ordering and incorrect URL
* Tidy up comments and remove StringEnum wrapper from Request models as it is only for Response models
* Rename GetReview to Get
* tweak debugger display
* Rework integration tests - implement the easy Get/GetAll ones first...
* Implement integration tests for Create method.
Move helpers to create PR/review into SetupHelper class
Fixed up review status enum to contain correct values
Tests for Approve/RequestChanges currently failing as a user cant approve/request changes on their own PR
* Implement secondary account settings for integration tests and a new [DualAccountTest] attribute for discovery when configured
Change integration test to create PR from the 2nd account, so the main test account is able to perform review actions on the PR
* Add integration tests for Delete, Dismiss and Submit methods
Fixed up API client implementation for delete (was looking for incorrect 201 http status)
Removed unnecessary await/async calls from client implementations that dont need to do anything with the result
* Attempting to add comments as part of a review revealed that we cant use the existing PullRequestReviewCommentCreate class as the API throws a validation error due to the CommitId field
These newer review APIs need a DraftPullRequestReviewComment (that doesnt have a commitId) instead
* add second test account user/password to configure-integration-tests script
* Add methods for listing pending organization invites
* Add unit/integration tests
* Add methods for getting all pending invites for a team
* Add unit/integration tests
* 🔥 whitespace 🔥
* Move new enum to it's own correct file and location
* Invite(s) -> Invitation(s)
* Add helper functions for adding invitations and cleaning the invitations up at the end of the test
* Add methods with ApiOptions
* Fix helper methods for adding/removing invitations
* Forgot to actually pass in the ApiOptions to the API call
* Add tests for new ApiOptions methods
* tweak integration tests
* Update outside collaborator tests to use [OrganizationTest] attribute for consistency
* Update test accounts used
* use octokitnet-test2 account now it has 2FA turned on
* Add client for organization outside collaborators
* Add unit/integration tests
* Add methods for removing an outside collaborator
* Add unit/integration tests
* Add new Put method to Connection which accepts a preview header
* Add methods for converting an org member to an outside collaborator
* Fix copy paste errors in new exceptions
* According to API docs, a 403 should be returned if the member is not a member of the org, but a 404 is actually returned
* Add unit/integration tests
* Remove unused using directives
* Got a bit overzealous with my removal of using directives
* Fix integration tests by using the configured Organization and test username rather than henrik's :)
* Remove ApiOptions overloads as it isn't currently supported
* Fix XML doc grammar
* Fix failing unit tests
* Missed a couple of nameof replacements
* Add organization membership preview header
* Add API endpoints to preview a collaborators permission
* Add methods to preview a collaborators permission
* Add methods to the observable repo collaborator client
* Fix convention test failure
* Use correct API endpoint when using repository ID
* Move the helper function pair so they aren't in between another pair
* Use the correct URL for the review permission API endpoint
* Add unit tests
* Add integration tests for review permission methods
* Fix spelling mistake
* Renaming enum as per review
* remove obsolete "Branches" methods from RepositoryClient (all were previuosly moved to RepositoryBranchesClient)
* Remove obsolete DeploymentStatus fields
* Remove obsoleteMergePullRequest.Squash parameter
* Remove obsolete request ctor
* Remove tests
* Not sure how I missed these test references
* Added StringEnum<TEnum>
* Added tests
* Make sure the serializer can work with StringEnum
* Use StringEnum for EventInfo.Event
* Add convention test to assert that all Response models use StringEnum<> to wrap enum properties
* Add Stringnum<> to all response types failing convention test
* Handle StringEnum to Enum conversion when Issue response model populates IssueUpdate request model
* Fix unit test
* Refactor SimpleJsonSerializer to expose the DeserializeEnum strategy so it can be used in StringEnum class
* Need to expose/use SerializeEnum functionality too, so we use the correct string representation of enum values that have custom properties (eg ReactionType Plus1 to "+1")
* fix unit tests, since the string is now the "correct" upstream api value
* Add a couple of tests for the Enum serialize/deserialize when underscores, hyphens and custom property attributes are present
* Compare parsed values for equality
* add convention test to ensure enum members all have Parameter property set
* update test to cover implicit conversions too
* this test should work but fails at the moment due to magic hyphen removal in deserializer causing a one way trip from utf-8 to EncodingType.Utf8 with no way to get back
* (unsuccesfully) expand event info test to try to catch more cases of unknown event types
* fix broken integration test while im here
* Fixed build errors after .NET Core merge
* Value -> StringValue, ParsedValue -> Value
* Don't allow StringValue to be null
* Ignore enums not used in request/response models
* Added ParameterAttribute to almost all enum values
* Ignore Language enum
* Fix failing tests
* Fix milestone sort parameter and tests
* whitespace
* fix milestone unit tests
* Fix StringEnum.Equals ... This could've been embarrassing!
* Change SimpleJsonSerializer Enum handling to only use `[Parameter()]` attributes (no more magic removal of hyphen/underscores from strings)
* Tidy up this integration test while im here
* Only test request/response enums in convention test
* Keep skipping Language
* Remove unused method
* Remove excluded enum types
* Removed unnecessary ParameterAttributes
* Remove unused enum
* Add StringEnum test for string-comparison of two invalid values
* Bring back IssueCommentSort and use it in IssueCommentRequest
This reverts commit 38a4a291d1476ef8c992fe0f76956974b6f32a49.
* Use assembly instead of namespace for Octokit check
* Add failing test to reproduce the issue where only the first enum paramter/value was added to the cache
* Fix deserializer enum cache to include all enum members rather than only the first member encountered
* Use a static SimpleJsonSerializer in StringEnum
* Remove serializer instance in StringEnum
* Add some documentation on StringEnum<TEnum>
* Fix parameter value to resolve failing integration test
* Add Pull Request Review Request API.
* Add Reactive Pull Request Review Request API.
* Add PullRequestReviewRequestClient tests.
* Add ObservablePullRequestReviewRequestClient tests.
* Fix sub-client property naming.
* Remove redundant model and update PullRequest model.
* Add repositoryId based methods and missing Observable documentation.
* Add missing parameter to PullRequest ctor.
* Add integration tests for PullRequestReviewRequest.
* Upgrade PullRequestReviewRequest integration tests.
* Add integration tests for repositoryId methods and fix url bug.
* Add missing unit tests and fix PR issues.
* Add pagination support for PullRequestReviewRequst.GetAll and tests for it.
* Revert changes on `PullRequestReviewCommentsClientTests.cs`
* Small upgrades - remove unused using and compress property to expression body.
* Revert use of expression body in property.
* Add pagination tests for PullRequestReviewRequest.GetAll.
* Change pagination tests to use 2 users.
* Correct class/file name
* Reword the integration test names for consistency
Move the plumbing to create reviews into CreateTheWorld to clean up the actual tests
* Fix DebuggerDisplay of requested reviewers
* fix reviewRequestToCreate parameter to be consistent
* Add BranchProtection.EnforceAdmins object
* Add EnforceAdmin related methods to RepoBranch clients
* Add unit tests
* Add unit tests for Observable client
* Add integration tests for enforce admin methods
* Tweak integration test to ensure that they actually do something
The `CreateRepositoryWithProtectedBranch` helper method currently sets `EnforceAdmins` as true, so delete it before adding.
* add missing docs
* rename tests
* Add missing ctor
* Remove property that is no longer supported
https://developer.github.com/changes/2017-05-02-adoption-of-admin-enforced/
* Fix failing unit tests
* bugfix - PUT should have a payload for Mark as Read (#1579)
* bugfix - PUT should have a payload for Mark as Read
* also fix the Observable client test
* add integration tests for MarkRead methods
* Fixup MarkReadForRepository methods to specify a body in the PUT request
* Fix unit tests for regular and observable client
* helps if the new files are included in the test project :)
* Cloning ApiInfo object should work when some fields are null (#1580)
* Adjust ApiInfo.Clone() to work even if some elements (eg ETag) are null
* Remove c# 6 language feature and do it the old school way
* Add a test for cloning ApiInfo when some fields are null
* The 3 lists can never be null anyway so remove some un-needed statements
* Add test for null RateLimit
* Remove Rx-Main dependency from samples
This resolves#1592 - LINQPad doesn't understand how to restore this unlisted package and it's not actually needed in the samples.
* Adding RemovedFromProject and other missing EventInfoState types. (#1591)
* Adding missing review types to event info.
* Fixing whitespace.
* Reword `BaseRefChanged` comment
* Adding missing event types.
* Change response models 'Url' properties from `Uri` to `string` (#1585)
* Add convention test to ensure 'Url' properties are of type string
Closes#1582
* Change 'Url' properties from Uri to string
Global Find/Replace FTW!
* fix compilation errors in the integration tests project
* Extend 'Url' properties type check to request models
* Stick to convention tests naming convention
* Remove unused using directives in models
Changing from `Uri` to `string` means the `using System;`
directive was not needed anymore in some files
* Update exception message wording
* empty commit to trigger a new build - hopefully Travis passes
* add convention test to ensure request models have Uri 'Url' properties
* make request models 'Url' properties Uri
fix typo in convention test name
* revert some request models 'Url' properties as `string`
see https://github.com/octokit/octokit.net/pull/1585#issuecomment-297186728
* Change test so that all model types must have 'Url' properties of type string
- Filter test input to only get types which have 'Url' properties
- Merge response and request model types tests into one
- Unparameterize the exception since we only check for the string type now
* Fix string.Format tokens
If this PR doesn't get rebased, it'll be my wall of shame FOREVER!
* and then it's even more embarrassing when the commit message says rebased but you really meant squashed
* Remove exclusion of `Release` from request models
* Add convention test to ensure 'Url' properties are of type string
Closes#1582
* Change 'Url' properties from Uri to string
Global Find/Replace FTW!
* fix compilation errors in the integration tests project
* Extend 'Url' properties type check to request models
* Stick to convention tests naming convention
* Remove unused using directives in models
Changing from `Uri` to `string` means the `using System;`
directive was not needed anymore in some files
* Update exception message wording
* empty commit to trigger a new build - hopefully Travis passes
* add convention test to ensure request models have Uri 'Url' properties
* make request models 'Url' properties Uri
fix typo in convention test name
* revert some request models 'Url' properties as `string`
see https://github.com/octokit/octokit.net/pull/1585#issuecomment-297186728
* Change test so that all model types must have 'Url' properties of type string
- Filter test input to only get types which have 'Url' properties
- Merge response and request model types tests into one
- Unparameterize the exception since we only check for the string type now
* Fix string.Format tokens
If this PR doesn't get rebased, it'll be my wall of shame FOREVER!
* and then it's even more embarrassing when the commit message says rebased but you really meant squashed
* Remove exclusion of `Release` from request models
* bugfix - PUT should have a payload for Mark as Read
* also fix the Observable client test
* add integration tests for MarkRead methods
* Fixup MarkReadForRepository methods to specify a body in the PUT request
* Fix unit tests for regular and observable client
* helps if the new files are included in the test project :)
* convert to VS2017
* rework cake.frosting build to latest cake vs2017 "template" example
* fix clean task and version suffix
* add arg to DotNetCorePack so it uses the correct version
* fix appveyor
* is there an easier way to test appveyor?
* ok travis, let's do this
* after reading the travis repo, this seems to be the version we want for vs201/csproj tool support
* msbuild complaining about arguments - we can use defaults anyhow so remove $@ from build.sh script
* add workaround for msbuild/travis, as mentioned on aspnet Mvc repo
* cmon travis
* perhaps tee isnt needed afterall
* travis permission denied when trying to install tools in build script... i feel dirty but need to see if sudo will fix it!
* could it be folder permissions of /build ?
* Try 777 for NuGet.exe permissions rather than 644
* remove windows platform restriction on GitVersion call
* Add a wrapper script for GitVersion on non windows
* fix wrapper script name
* add debug
* let's see if we are running the script at all!
* run mono gitversion direclty from travis.yml, for science
* see if we can run bin/sh and prepend an argument to our shell script
* remove echos from wrapper script
* Ensure full git repo include more than 50 commits and all tags are fetched, as GitVersion was failing on TravisCI
* only build netstandard framework on non windows
* revert overriding the target framework when building the solution
* Unix being case-sensitive, adjust app.config file name in csproj files
* set FrameworkPathOverride to point to different folders on macOS and Linux
* Remove NuGet.exe from the repo.
On Windows, it will be installed by the Frosting bootstrapper script.
On Unix/macOS, cake has smarts to look for mono- and Linux-specific executables
* tidy up GitVersion logic into a GitVersionRunner class
* apply workaround for osx dotnet restore "too many open files" errors
* update test project references to latest official versions
* doesnt seem to be a reason for overriding the implicit reference
* remove extra whitespace and unused namespace
* Add release notes and bump version to 0.24
* run "build FormatCode" to fix up whitespace/formatting issues
* Fix failing Ssh key tests due to "validation exception". This key must be in use on github (under another user, most likely from these tests failing). Changed to a new SSH key and tweaked tests to reduce chance of a key being created and not destroyed
* Assignee and Assignees cant both be specified on NewIssue. We missed this one in the PR. Marked Assignee as [Obsolete] and fixed tests to use Assignees
* Fix a couple of Reactions tests that were calling the wrong client methods
* Fix timeline tests - looks like the response class has changed shape a bit, it now has an Issue object in the payload and Id field isnt present (leaving Id field there in case other timeline events do use it)
* Fix some following tests that require the test user to follow more than 1 other user
* Unskip these Event tests now because apparently they work!
* add breaking changes notes
* Update ApiErrorMessageSafe to return null for empty and whitespace strings (#1540)
* return null if ApiError.Message is empty or whitespace
* Uncomment test, which now passes
* update release notes to include PR1540
* Add "Bot" AccountType, was causing a deserialization exception when running the integration test "SearchForExcludedLanguage" (#1541)
* Update to include PR1541
* add bullets to make release notes easier to read
* markup additional code mentions in notes
* Fix grammar
fields => field
* add Id for PullRequest.cs
added the Id property for PullRequest model
* use long for pull request id
* update comments for PullRequest.Id and Issue.Id
make it more intuitive... a question, issue.Id and comment.Id are int
type. do we have any concern on it?
* plus the one for pullrequest
forgot to check this change.
* update the integration test for Id Property
long will never be null
* [WIP]
* add new method to add assignees for an issue
* added new overloads
* added unit tests
* fixed missed overload calls
* fixed inconsistency in tests
* added integration tests
* fixed errors in tests
* fixed all remarks
* added new overloads
* added unit tests
* added integration tests
* fixed incorrect variable names
* added new overloads
* added unit tests
* added itegration tests
* fixed integration tests
* removed extra empty lines
* fixed errors in unit tests
* added overloads on IObservableReleasesClient and IReleasesClient
* added new unit tests
* added integration tests
* added Task as return value of unit tests
* added Task as return parameter
* added return value ReleasesClientTests
* another try to get tests work
* another one try
* undo prev commit
* fixed errors in tests
* removed extra ThrowsAsync checks
* added new overloads
* added unit tests
* added integration tests
* added integration tests
* Add ApiOptions overloads to IWatchedClient + tests.
* Add ApiOptions overloads to IObservableWatchedClient + tests.
* More tests.
* fixed error in ObservableWatchedClient
* added unit tests
* added integration tests
* added new overloads
* added unit tests
* added integration tests
* renamed "Ensures" methods to deliver more consistency in code
* fixed failed tests
* Add ApiOptions overloads to methods on I(Observable)IssuesLabelsClient (#1329)
* correcting a couple of tests (#1331)
* Add ApiOption overloads to methods on I(Observable)OrganizationsClient (#1324)
* Add ApiOptions overloads to methods on I(Observable)OrganizationMembersClient (#1332)
* fix description
* add new response for IssueAssignees
* add constructor for IssueAssignees
* add debugger display for NewAssignees
* add methods for observable assignees client; new unit tests
* add observable unit tests for add method
* place AddAssignees under IssueClient
* fix description
* [WIP] add generic delete method
* revert add assignees
* add assignees key under issue client
* remove IssueAssignees dependencies
* fix type IssueAssignees
* add remove method for issue assignees; finish generic delete method
* unit tests for remove assignees
* Add Assignees property to NewIssue and UpdateIssue requets
Add Asignees property to Issue response
Removed [SerializeNull] attribute from UpdateIssue.Assignee as this was causing it to remove assignee when none was specified
Add a couple of integration tests to prove Assignees are being deserialised
* rename NewAssignees to AssignessUpdate
* change Assignees key description
* check null Issue.ToUpdate method
* add accept header for IssuesClientTests
* Fix some more unit tests
* add integration test
Check if an assignee was added to an issue
* fix merge conflicts
* resolve conflicts
* implement some hints from @ryangribble
* resolve merge fixes
* clean up
* some more changes
* create new repo
Create a new repo for integrationtest
'CanRetrieveIssuesWithMultipleAssignees()'
* fix merge
* fix conflicts
* fix xml
* change test
* change delete overloads
* Fix tests
* fix xml
* Add helper function RemoveLabel
* Add helper function RemoveAssignee
* Format last commit
* Add integration tests to exercise new Assignees field on IssueUpdate
* GitHub API doesnt allow Assignee and Assignees properties to both be specified - API docs say that Assignee is deprecated so mark it [Obsolete] and dont populate it in Issue.ToUpdate()
* Add Assignees field to PullRequest response object, and integration tests to verify it is populated.
This field is not listed in the API docs but probing the API revealed it is included in payloads
* add a couple of extra tests to verify the IssueUpdate.Labels is working correctly
* Include assignees in ctor for consistency
* fix IssueUpdate test for new Assignees field
* obsolete comment and add ReviewComment
* obsolete PullRequest.Comment and change to ReviewComment
* update ObservablePullRequestClient and interface to use ReviewComment
* fixed formatting issues
have Comment return new ReviewComment
* Update IOrganizationsClient.cs
* Added the Uri for the organizations
Renamed the existing organizations uri to userOrganizations and created a new organizations uri.
* Implementation of the GetAllOrganizations
* Interface modification for the GetAllOrganizations
* Implementation of the GetAllOrganizations
* Created the tests for the two new methods
* remove new line
* Reverted the changes i did to the ApiUrls class to be backward compatible.
Created new client method and marked the old one [Obsolete] to be removed in a futur release.
Created a new request class to support the since attribute.
Updated the Unit Tests
Updated all the csproj to have the proper references.
* Renamed test
* Deprecated the Organizations method to be replaced by the new UserOrganizations method.
* Created 2 new test for the getAll method.
Renamed the existing one to make it clear they test the user organization.
* tweaks to integration tests
* Add response models
* Supress message
* correct spelling Timestamp
* implement traffic client
* add reactive client
* [WIP] unit tests
* add argument check
* finish unit tests
* add integration tests
* Change repositoryId from int to long
Remove GetAll naming of endpoints and add to PaginationTest exclusions
Rename View and Clone classes to be more specific
Add handling of TimeStamp fields being UtcUnix time
Add integration tests for repositoryId methods
* Add get method for required status checks
* Add api urls for required status checks
* change name of apir url for required status checks
* fix xml comment
* add update method for required status checks
* add delete method for required status checks
* fix api url
* fix xml comment
* add api url for required status cehcks contexts
* add get method for required status checks contexts
* add replace method for required status checks contexts
* add add method for required status checks contexts
* add new overload for delete method
* add delete method for required status checks contexts; fix overloads for delete
* add api url for restrictions
* add get method for restrictions
* add delete method for restrictions
* add api url for teams restrictions
* add get method for team restrictions; fix delete method restrictions
* fix overhead for get team restrictions
* fix httpmethod for update required status checks
* add set method for team restrictions
* add add method for team restrictions
* add delete method for team restrictions
* add api url for user restrictions
* add get method for user restrictions
* add set method for user restrictions
* add add method for user restrictions
* add delete method for user restrictions
* Add unit test; fix api urls
* Add ExcludeFromTest class
* add exclude attribute to methods
* Add attribute usage
* Add parameter to interface
* add observable unit tests
* rename excludefromtest
exclude all the tests for the new api endpoints because they broke the
pagination and syncobsverable tests.
* rename excludefromattribute
* refactor observable methods
* [WIP] Add integration tests
* finish integration test
* fix renamed branch protection restrictions
* add team and user collections
* rename set to update
* rename test methods
* optimize integration tests
* made some tidy ups
- fixup comment wording Edit => Replace
- remove spurious characters from description
- remove un-needed exclude attributes
* remove ForOrgRepo tests
* remove unused org contexts
* dispose contexts
* remove obsolete GetRedirect
* add clarifying comment to restriction methods