microsoft_kiota_authentication_oauth 0.2.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fd7cb0497d32fb8c7a4c12ce048b83b3b36074b0d41b1ed66e09f6b014e20b7
4
- data.tar.gz: aee36c10d884a8ee0a21ab7c39fe2d9ea83f2d7ae27f42de3399b19982fdef69
3
+ metadata.gz: 1527ce960c8fd9e79baa76159ad270a878c49c2bb9d09975cdafc360d4d8cda0
4
+ data.tar.gz: 930b0578b7ab8a9889b48cc511e2e450b6cfcc4eca61c38c294fab741a91baa1
5
5
  SHA512:
6
- metadata.gz: 49ede4420390619f15304c914186bbe5f3c30808a3fe067fbcf3cd41e865181f1f5bf9e6f091781b0ec2a02093288cad6b7c54f00a1eebf711849ea18f5d18fa
7
- data.tar.gz: 6663035128fb452ce6057ace1068831c1d334b4a2e05e0efe866390b83281f9eec3d4cc8250279f3fee3480bfbe054f79ee522a76eb1f0d1bc06bc34ed9bbe9e
6
+ metadata.gz: 6a2b94d7d00cf56c082585a1280a2fe2e13c2079f6706ff06509e5f23d106112c536a7536f15fba5d0bd515efad375bb5c224f75d37303b68ec8de99066eba14
7
+ data.tar.gz: 2d34b6075c37108cb3fbf008e7447678513f7f2bea644911efaa36cfd1fb763c4f119e76d5a4be39d13afdfed3ba0928164b3216f0fd49af748713a8f0191acd
@@ -0,0 +1 @@
1
+ * @andrueastman @baywet @darrelmiller @zengin @MichaelMainer @ddyett @peombwa @nikithauc @ramsessanchez @calebkiage @Ndiritu @rkodev @gavinbarron
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
8
+ - package-ecosystem: bundler
9
+ directory: "/"
10
+ schedule:
11
+ interval: daily
12
+ open-pull-requests-limit: 10
@@ -0,0 +1,76 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ "master", main ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ "master" ]
20
+ schedule:
21
+ - cron: '41 2 * * 0'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Use only 'java' to analyze code written in Java, Kotlin or both
38
+ # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
39
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
40
+
41
+ steps:
42
+ - name: Checkout repository
43
+ uses: actions/checkout@v3
44
+
45
+ # Initializes the CodeQL tools for scanning.
46
+ - name: Initialize CodeQL
47
+ uses: github/codeql-action/init@v2
48
+ with:
49
+ languages: ${{ matrix.language }}
50
+ # If you wish to specify custom queries, you can do so here or in a config file.
51
+ # By default, queries listed here will override any specified in a config file.
52
+ # Prefix the list here with "+" to use these queries and those in the config file.
53
+
54
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
55
+ # queries: security-extended,security-and-quality
56
+
57
+
58
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
59
+ # If this step fails, then you should remove it and run the build manually (see below)
60
+ - name: Autobuild
61
+ uses: github/codeql-action/autobuild@v2
62
+
63
+ # ℹ️ Command-line programs to run using the OS shell.
64
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
65
+
66
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
67
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
68
+
69
+ # - run: |
70
+ # echo "Run, Build Application using script"
71
+ # ./location_of_script_within_repo/buildscript.sh
72
+
73
+ - name: Perform CodeQL Analysis
74
+ uses: github/codeql-action/analyze@v2
75
+ with:
76
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,34 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+
3
+ name: PullRequestConflicting
4
+
5
+ # Controls when the action will run. Triggers the workflow on push or pull request
6
+ # events but only for the master branch
7
+ on:
8
+ push:
9
+ branches: [ main ]
10
+ pull_request:
11
+ types: [synchronize]
12
+ branches: [ main ]
13
+
14
+ # A workflow run is made up of one or more jobs that can run sequentially or in parallel
15
+ jobs:
16
+ # This workflow contains a single job called "build"
17
+ build:
18
+ # The type of runner that the job will run on
19
+ runs-on: ubuntu-latest
20
+
21
+ # Steps represent a sequence of tasks that will be executed as part of the job
22
+ steps:
23
+ - name: check if prs are dirty
24
+ uses: eps1lon/actions-label-merge-conflict@releases/2.x
25
+ if: env.LABELING_TOKEN != '' && env.LABELING_TOKEN != null
26
+ id: check
27
+ with:
28
+ dirtyLabel: "conflicting"
29
+ repoToken: "${{ secrets.GITHUB_TOKEN }}"
30
+ continueOnMissingPermissions: true
31
+ commentOnDirty: 'This pull request has conflicting changes, the author must resolve the conflicts before this pull request can be merged.'
32
+ commentOnClean: 'Conflicts have been resolved. A maintainer will take a look shortly.'
33
+ env:
34
+ LABELING_TOKEN: ${{secrets.GITHUB_TOKEN }}
@@ -0,0 +1,81 @@
1
+ # This workflow is used to add new issues to GitHub Projects (Beta)
2
+
3
+ name: Add PR to project
4
+ on:
5
+ issues:
6
+ types: [opened]
7
+ jobs:
8
+ track_issue:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Generate token
12
+ id: generate_token
13
+ uses: tibdex/github-app-token@021a2405c7f990db57f5eae5397423dcc554159c
14
+ with:
15
+ app_id: ${{ secrets.GRAPHBOT_APP_ID }}
16
+ private_key: ${{ secrets.GRAPHBOT_APP_PEM }}
17
+
18
+ - name: Get project data
19
+ env:
20
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
21
+ ORGANIZATION: microsoftgraph
22
+ PROJECT_NUMBER: 38
23
+ run: |
24
+ gh api graphql -f query='
25
+ query($org: String!, $number: Int!) {
26
+ organization(login: $org){
27
+ projectNext(number: $number) {
28
+ id
29
+ fields(first:20) {
30
+ nodes {
31
+ id
32
+ name
33
+ settings
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
39
+
40
+ echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
41
+ echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
42
+ echo 'TRIAGE_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Needs Triage 🔍") |.id' project_data.json) >> $GITHUB_ENV
43
+
44
+ - name: Add Issue to project
45
+ env:
46
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
47
+ ISSUE_ID: ${{ github.event.issue.node_id }}
48
+ run: |
49
+ item_id="$( gh api graphql -f query='
50
+ mutation($project:ID!, $issue:ID!) {
51
+ addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
52
+ projectNextItem {
53
+ id
54
+ }
55
+ }
56
+ }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
57
+
58
+ echo 'ITEM_ID='$item_id >> $GITHUB_ENV
59
+
60
+ - name: Set Triage
61
+ env:
62
+ GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
63
+ run: |
64
+ gh api graphql -f query='
65
+ mutation (
66
+ $project: ID!
67
+ $item: ID!
68
+ $status_field: ID!
69
+ $status_value: String!
70
+ ) {
71
+ set_status: updateProjectNextItemField(input: {
72
+ projectId: $project
73
+ itemId: $item
74
+ fieldId: $status_field
75
+ value: $status_value
76
+ }) {
77
+ projectNextItem {
78
+ id
79
+ }
80
+ }
81
+ }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.TRIAGE_OPTION_ID }} --silent
@@ -0,0 +1,45 @@
1
+ name: Git Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v[0-9]+.[0-9]+.[0-9]+"
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ Git_Release:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - name: Github Release
15
+ uses: anton-yurchenko/git-release@v5.0
16
+ env:
17
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN}}
18
+ DRAFT_RELEASE: "false"
19
+ PRE_RELEASE: "false"
20
+ CHANGELOG_FILE: "CHANGELOG.md"
21
+ ALLOW_EMPTY_CHANGELOG: "true"
22
+
23
+ deploy_prod:
24
+ environment:
25
+ name: production_feeds
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - uses: actions/checkout@v3
29
+ - uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: '3.1'
32
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
33
+ bundler: 'latest'
34
+ cache-version: 1
35
+ - run: bundle exec rake
36
+ - name: Publish to RubyGems
37
+ run: |
38
+ mkdir -p $HOME/.gem
39
+ touch $HOME/.gem/credentials
40
+ chmod 0600 $HOME/.gem/credentials
41
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
42
+ gem build *.gemspec
43
+ gem push *.gem
44
+ env:
45
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,34 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ main ]
7
+ pull_request:
8
+
9
+ jobs:
10
+ build:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ ruby-version: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head]
16
+ runs-on: ${{ matrix.os }}
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: ${{ matrix.ruby-version }}
22
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
23
+ bundler: 'latest'
24
+ cache-version: 1
25
+ - name: Run tests
26
+ run: bundle exec rake
27
+ - name: Upload artifacts for ruby version 3 and ubuntu
28
+ if: ${{ matrix.os == 'ubuntu-latest' && matrix.ruby-version == '3.1'}}
29
+ uses: actions/upload-artifact@v3
30
+ with:
31
+ name: drop
32
+ path: |
33
+ ./Gemfile.lock
34
+ ./README.md
data/.gitignore ADDED
@@ -0,0 +1,58 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ Gemfile.lock
49
+ .ruby-version
50
+ .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
+ # .rubocop-https?--*
57
+
58
+ .rspec_status
data/CHANGELOG.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ ### Changed
13
+
14
+ ## [0.5.0] - 2022-12-30
15
+
16
+ ### Added
17
+
18
+ - Initial public release of the package.
@@ -0,0 +1,9 @@
1
+ # Microsoft Open Source Code of Conduct
2
+
3
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4
+
5
+ Resources:
6
+
7
+ - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8
+ - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9
+ - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in microsoft_kiota_authentication.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # Kiota OAuth authentication provider library for Ruby
2
+
3
+ ![Ruby](https://github.com/microsoft/kiota-authentication-oauth-ruby/actions/workflows/ruby.yml/badge.svg)
4
+
5
+ The Kiota OAuth authentication provider library for Ruby is the authentication provider implementation with [OAuth2](https://rubygems.org/gems/oauth2).
6
+
7
+ A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a authentication provider library to authenticate HTTP requests to an API endpoint.
8
+
9
+ Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).
10
+
11
+ ## Using the OAuth library
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's Gemfile:
16
+
17
+ ```ruby
18
+ gem "microsoft_kiota_authentication_oauth", "0.5.0"
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ ```shell
24
+ bundle install
25
+ ```
26
+
27
+ Or install it yourself as:
28
+
29
+ ```shell
30
+ gem install microsoft_kiota_authentication_oauth --version "0.5.0"
31
+ ```
32
+
33
+ ## Contributing
34
+
35
+ This project welcomes contributions and suggestions. Most contributions require you to agree to a
36
+ Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
37
+ the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
38
+
39
+ When you submit a pull request, a CLA bot will automatically determine whether you need to provide
40
+ a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
41
+ provided by the bot. You will only need to do this once across all repos using our CLA.
42
+
43
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
44
+ For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
45
+ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
46
+
47
+ ## Trademarks
48
+
49
+ This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
50
+ trademarks or logos is subject to and must follow
51
+ [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
52
+ Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
53
+ Any use of third-party trademarks or logos are subject to those third-party's policies.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ task default: :spec
data/SECURITY.md ADDED
@@ -0,0 +1,41 @@
1
+ <!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->
2
+
3
+ ## Security
4
+
5
+ Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6
+
7
+ If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
8
+
9
+ ## Reporting Security Issues
10
+
11
+ **Please do not report security vulnerabilities through public GitHub issues.**
12
+
13
+ Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
14
+
15
+ If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
16
+
17
+ You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
18
+
19
+ Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20
+
21
+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22
+ * Full paths of source file(s) related to the manifestation of the issue
23
+ * The location of the affected source code (tag/branch/commit or direct URL)
24
+ * Any special configuration required to reproduce the issue
25
+ * Step-by-step instructions to reproduce the issue
26
+ * Proof-of-concept or exploit code (if possible)
27
+ * Impact of the issue, including how an attacker might exploit the issue
28
+
29
+ This information will help us triage your report more quickly.
30
+
31
+ If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
32
+
33
+ ## Preferred Languages
34
+
35
+ We prefer all communications to be in English.
36
+
37
+ ## Policy
38
+
39
+ Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
40
+
41
+ <!-- END MICROSOFT SECURITY.MD BLOCK -->
data/SUPPORT.md ADDED
@@ -0,0 +1,25 @@
1
+ # TODO: The maintainer of this repo has not yet edited this file
2
+
3
+ **REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
4
+
5
+ - **No CSS support:** Fill out this template with information about how to file issues and get help.
6
+ - **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps.
7
+ - **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide.
8
+
9
+ *Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
10
+
11
+ # Support
12
+
13
+ ## How to file issues and get help
14
+
15
+ This project uses GitHub Issues to track bugs and feature requests. Please search the existing
16
+ issues before filing new issues to avoid duplicates. For new issues, file your bug or
17
+ feature request as a new Issue.
18
+
19
+ For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
20
+ FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
21
+ CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
22
+
23
+ ## Microsoft Support Policy
24
+
25
+ Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the authorization code grant type.
8
+ class AuthorizationCodeContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :redirect_uri, :additional_params,
10
+ :tenant_id, :client_id, :client_secret, :auth_code, :oauth_provider
11
+ attr_writer :scopes
12
+
13
+ # This is the initializer for AuthorizationCodeContext, the token request context when
14
+ # using the authorization code grant flow.
15
+ # :params
16
+ # tenant_id: a string containing the tenant id
17
+ # client_id: a string containing the client id
18
+ # client_secret: a string containing the client secret
19
+ # redirect_uri: a string containing redirect_uri
20
+ # auth_code: a string containting the auth code; default is nil, can be updated post-initialization
21
+ def initialize(tenant_id, client_id, client_secret, redirect_uri, auth_code = nil)
22
+ raise StandardError, 'redirect_uri cannot be nil/empty' if redirect_uri.nil? || redirect_uri.empty?
23
+
24
+ @tenant_id = tenant_id
25
+ @client_id = client_id
26
+ @client_secret = client_secret
27
+ @auth_code = auth_code
28
+ @redirect_uri = redirect_uri
29
+ @scopes = nil
30
+ @oauth_provider = nil
31
+ @grant_type = 'authorization code'
32
+
33
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @tenant_id.empty? || @client_id.empty? || @client_secret.empty?
34
+ raise StandardError, 'tenant_id, client_id, and client_secret cannot be empty'
35
+ end
36
+ end
37
+
38
+ # setter for auth_code
39
+ def auth_code=(code)
40
+ raise StandardError, 'auth_code cannot be empty/nil.' if code.nil? || code.empty?
41
+
42
+ @auth_code = code
43
+ end
44
+
45
+ # This function generates an authorize URL for obtaining the auth code.
46
+ # :params
47
+ # scopes: an array of stings, where each string is a scope
48
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
49
+ # default is empty hash
50
+ def generate_authorize_url(scopes, additional_params = {})
51
+ @additional_params = additional_params
52
+
53
+ self.initialize_scopes(scopes)
54
+ self.initialize_oauth_provider
55
+
56
+ parameters = { scope: @scopes, redirect_uri: @redirect_uri, access_type: 'offline', prompt: 'consent'}
57
+ parameters = parameters.merge(additional_params)
58
+ @oauth_provider.auth_code.authorize_url(parameters)
59
+ end
60
+
61
+ def get_token
62
+ @oauth_provider.auth_code.get_token(@auth_code, redirect_uri: @redirect_uri)
63
+ end
64
+
65
+ def initialize_oauth_provider
66
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
67
+ site: 'https://login.microsoftonline.com',
68
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
69
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
70
+ end
71
+
72
+ def initialize_scopes(scopes)
73
+ scope_str = ''
74
+ scopes.each { |scope| scope_str += scope + ' '}
75
+ raise StandardError, 'scopes cannot be empty/nil.' if scope_str.empty?
76
+
77
+ scope_str = 'offline_access ' + scope_str
78
+
79
+ @scopes = scope_str
80
+ end
81
+
82
+ private
83
+
84
+ attr_writer :grant_type, :redirect_uri, :additional_params,
85
+ :tenant_id, :client_id, :client_secret, :oauth_provider
86
+ end
87
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the client credential grant type.
8
+ class ClientCredentialContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
10
+ attr_writer :scopes
11
+
12
+ # This is the initializer for ClientCredentialContext, the token request context when
13
+ # using the client credential grant flow.
14
+ # :params
15
+ # tenant_id: a string containing the tenant id
16
+ # client_id: a string containing the client id
17
+ # client_secret: a string containing the client secret
18
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
19
+ # default is empty hash
20
+ def initialize(tenant_id, client_id, client_secret, additional_params = {})
21
+ @tenant_id = tenant_id
22
+ @client_id = client_id
23
+ @client_secret = client_secret
24
+ @additional_params = additional_params
25
+ @scopes = nil
26
+ @oauth_provider = nil
27
+ @grant_type = 'client credential'
28
+
29
+
30
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @tenant_id.empty? || @client_id.empty? || @client_secret.empty?
31
+ raise StandardError, 'tenant_id, client_id and client_secret cannot be empty'
32
+ end
33
+ end
34
+
35
+ def get_token
36
+ @oauth_provider.client_credentials.get_token({ scope: @scopes })
37
+ end
38
+
39
+ def initialize_oauth_provider
40
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
41
+ site: 'https://login.microsoftonline.com',
42
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
43
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
44
+ end
45
+
46
+ # Function to initialize the scope for the client credential context object.
47
+ # This function forces to default since gradual consent is not supported
48
+ # for this flow.
49
+ def initialize_scopes(scopes = [])
50
+ scope_str = 'https://graph.microsoft.com/.default'
51
+ @scopes = scope_str
52
+ end
53
+
54
+
55
+ private
56
+
57
+ attr_writer :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
58
+ end
59
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_custom_flow'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Base class for token request contexs.
8
+ class OAuthContext
9
+ attr_accessor :scopes
10
+ attr_reader :oauth_provider
11
+ include MicrosoftKiotaAuthenticationOAuth::OAuthCustomFlow
12
+
13
+ def get_token
14
+ OAuthCustomFlow.get_token
15
+ end
16
+
17
+ def initialize_scopes(scopes = [])
18
+ @scopes = OAuthCustomFlow.get_scopes
19
+ end
20
+
21
+ def initialize_oauth_provider
22
+ @oauth_provider = OAuthCustomFlow.get_oauth_provider
23
+ end
24
+
25
+ private
26
+
27
+ attr_writer :oauth_provider
28
+
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+
5
+ module MicrosoftKiotaAuthenticationOAuth
6
+ # Module that can be optionally implemented for supporting custom token grant flows.
7
+ # To use a cutsom token grant flow, implement the functions below and
8
+ # use MicrosoftKiotaAuthenticationOAuth::OAuthContext.new as your token_request_context
9
+ # object for the use by the MicrosoftKiotaAuthenticationOAuth::OAuthAccessTokenProvider
10
+ module OAuthCustomFlow
11
+ # Function that returns an oauth client using the oauth2 gem
12
+ def self.get_oauth_provider
13
+ raise NotImplementedError.new
14
+ end
15
+
16
+ # Function that returns a space seperated string of scopes, beginning with
17
+ # the offline_access scope if relevant
18
+ def self.get_scopes
19
+ raise NotImplementedError.new
20
+ end
21
+
22
+ # Function that returns the access token
23
+ def self.get_token
24
+ raise NotImplementedError.new
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+ require_relative './oauth_context'
5
+
6
+ module MicrosoftKiotaAuthenticationOAuth
7
+ # Token request context class for the on behlaf of grant type.
8
+ class OnBehalfOfContext < MicrosoftKiotaAuthenticationOAuth::OAuthContext
9
+ attr_reader :grant_type, :additional_params, :tenant_id, :client_id, :client_secret, :oauth_provider
10
+ attr_writer :scopes
11
+
12
+ # This is the initializer for OnBehalfOfContext, the token request context when
13
+ # using the client credential grant flow.
14
+ # :params
15
+ # tenant_id: a string containing the tenant id
16
+ # client_id: a string containing the client id
17
+ # client_secret: a string containing the client secret
18
+ # assertion: string containing assertion (access token used in the request)
19
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
20
+ # default is empty hash
21
+ def initialize(tenant_id, client_id, client_secret, assertion, additional_params = {})
22
+ raise StandardError, 'assertion cannot be empty' if assertion.nil? || assertion.empty?
23
+
24
+ @tenant_id = tenant_id
25
+ @client_id = client_id
26
+ @client_secret = client_secret
27
+ @assertion = assertion
28
+ @additional_params = additional_params
29
+ @scopes = nil
30
+ @oauth_provider = nil
31
+ @grant_type = 'urn:ietf:params:Oauth:grant-type:jwt-bearer'
32
+
33
+ if @tenant_id.nil? || @client_id.nil? || @client_secret.nil? || @client_secret.empty? || @tenant_id.empty? || @client_id.empty?
34
+ raise StandardError, 'tenant_id, client_secret, and client_id cannot be empty'
35
+ end
36
+ end
37
+
38
+ def get_token
39
+ params = {
40
+ grant_type: @grant_type,
41
+ assertion: @assertion,
42
+ scope: @scopes,
43
+ requested_token_use: 'on_behalf_of'
44
+ }
45
+ @oauth_provider.on_behalf_of.get_token(params)
46
+ end
47
+
48
+ def initialize_oauth_provider
49
+ @oauth_provider = OAuth2::Client.new(@client_id, @client_secret,
50
+ site: 'https://login.microsoftonline.com',
51
+ authorize_url: "/#{@tenant_id}/oauth2/v2.0/authorize",
52
+ token_url: "/#{@tenant_id}/oauth2/v2.0/token")
53
+ end
54
+
55
+ def initialize_scopes(scopes)
56
+ scope_str = ''
57
+ scopes.each { |scope| scope_str += scope + ' '}
58
+
59
+ raise StandardError, 'scopes cannot be empty/nil.' if scope_str.empty?
60
+
61
+ scope_str = 'offline_access ' + scope_str
62
+
63
+ @scopes = scope_str
64
+ end
65
+
66
+ private
67
+
68
+ attr_writer :grant_type, :additional_params, :tenant_id, :client_id,
69
+ :client_secret, :oauth_provider
70
+
71
+ end
72
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'oauth2'
4
+
5
+ # Extension of Oauth2 Library to Include On Behalf Of Grant Type
6
+ module OAuth2
7
+ module Strategy
8
+ class OnBehalfOf < Base
9
+ def get_token(params, response_opts = {})
10
+ @client.get_token(params, response_opts)
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ module OAuth2
17
+ class Client
18
+ def on_behalf_of
19
+ @on_behalf_of ||= OAuth2::Strategy::OnBehalfOf.new(self)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'microsoft_kiota_abstractions'
4
+ require 'oauth2'
5
+ require_relative 'extensions/oauth2_ext'
6
+ require_relative 'contexts/client_credential_context'
7
+ require_relative 'contexts/authorization_code_context'
8
+ require_relative 'contexts/on_behalf_of_context'
9
+ require_relative 'contexts/oauth_context'
10
+ require_relative 'contexts/oauth_custom_flow'
11
+
12
+ module MicrosoftKiotaAuthenticationOAuth
13
+ # Access Token Provider class implementation
14
+ class OAuthAccessTokenProvider
15
+ # This is the initializer for OAuthAccessTokenProvider.
16
+ # :params
17
+ # token_request_context: a instance of one of our token request context or a custom implementation
18
+ # allowed_hosts: an array of strings, where each string is an allowed host, default is empty
19
+ # scopes: an array of strings, where each string is a scope, default is empty array
20
+ def initialize(token_request_context, allowed_hosts = [], scopes = [])
21
+ raise StandardError, 'Parameter token_request_context cannot be nil.' if token_request_context.nil?
22
+
23
+ @token_request_context = token_request_context
24
+
25
+ unless @token_request_context.is_a?(MicrosoftKiotaAuthenticationOAuth::OAuthContext)
26
+ raise StandardError, 'Parameter token_request_context must be an instance of one of our grant flow context classes.'
27
+ end
28
+
29
+ @cached_token = nil
30
+
31
+ @host_validator = if allowed_hosts.nil? || allowed_hosts.size.zero?
32
+ MicrsoftKiotaAbstractions::AllowedHostsValidator.new(['graph.microsoft.com', 'graph.microsoft.us', 'dod-graph.microsoft.us',
33
+ 'graph.microsoft.de', 'microsoftgraph.chinacloudapi.cn',
34
+ 'canary.graph.microsoft.com'])
35
+ else
36
+ MicrosoftKiotaAbstractions::AllowedHostsValidator.new(allowed_hosts)
37
+ end
38
+ @token_request_context.initialize_oauth_provider
39
+ @token_request_context.initialize_scopes(scopes)
40
+ end
41
+
42
+ # This function obtains the authorization token.
43
+ # :params
44
+ # uri: a string containing the uri
45
+ # additional_params: hash of symbols to string values, ie { response_mode: 'fragment', prompt: 'login' }
46
+ # default is empty hash
47
+ def get_authorization_token(uri, additional_properties = {})
48
+ return nil if !uri || !@host_validator.url_host_valid?(uri)
49
+
50
+ parsed_url = URI(uri)
51
+
52
+ raise StandardError, 'Only https is supported' if parsed_url.scheme != 'https'
53
+
54
+ Fiber.new do
55
+ if @cached_token
56
+ token = OAuth2::AccessToken.from_hash(@token_request_context.oauth_provider, @cached_token)
57
+ return token.token if !token.nil? && !token.expired?
58
+
59
+ if token.expired?
60
+ token = token.refresh!
61
+ @cached_token = token.to_hash
62
+ return token.token
63
+ end
64
+ end
65
+
66
+ token = nil
67
+ token = @token_request_context.get_token
68
+
69
+ @cached_token = token.to_hash unless token.nil?
70
+ return token.token unless token.nil?
71
+ end
72
+ end
73
+
74
+ attr_reader :scopes, :host_validator
75
+
76
+ protected
77
+
78
+ attr_writer :host_validator, :token_credential, :scopes, :cached_token
79
+
80
+ end
81
+ end
@@ -0,0 +1,10 @@
1
+ require 'microsoft_kiota_abstractions'
2
+ require_relative './oauth_access_token_provider'
3
+
4
+ module MicrosoftKiotaAuthenticationOAuth
5
+ class OAuthAuthenticationProvider < MicrosoftKiotaAbstractions::BaseBearerTokenAuthenticationProvider
6
+ def initialize(token_request_context, allowed_hosts, scopes)
7
+ super(MicrosoftKiotaAuthenticationOAuth::OAuthAccessTokenProvider.new(token_request_context, allowed_hosts, scopes))
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MicrosoftKiotaAuthenticationOAuth
4
+ VERSION = "0.5.0"
5
+ end
@@ -1,5 +1,14 @@
1
- class Hola
2
- def self.hi
3
- puts "Asm0d3us-PoC"
4
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "microsoft_kiota_authentication_oauth/version"
4
+ require_relative "microsoft_kiota_authentication_oauth/contexts/authorization_code_context"
5
+ require_relative "microsoft_kiota_authentication_oauth/contexts/client_credential_context"
6
+ require_relative "microsoft_kiota_authentication_oauth/contexts/on_behalf_of_context"
7
+ require_relative "microsoft_kiota_authentication_oauth/contexts/oauth_context"
8
+ require_relative "microsoft_kiota_authentication_oauth/contexts/oauth_custom_flow"
9
+ require_relative "microsoft_kiota_authentication_oauth/extensions/oauth2_ext"
10
+ require_relative "microsoft_kiota_authentication_oauth/oauth_access_token_provider"
11
+ require_relative "microsoft_kiota_authentication_oauth/oauth_authentication_provider"
12
+
13
+ module MicrosoftKiotaAuthenticationOAuth
5
14
  end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/microsoft_kiota_authentication_oauth/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "microsoft_kiota_authentication_oauth"
7
+ spec.version = MicrosoftKiotaAuthenticationOAuth::VERSION
8
+ spec.authors = 'Microsoft Corporation'
9
+ spec.email = 'graphsdkpub@microsoft.com'
10
+ spec.description = 'Kiota Authentication implementation with oauth2'
11
+ spec.summary = 'Microsoft Kiota Authentication OAuth - Kiota Ruby Authentication OAuth library'
12
+ spec.homepage = 'https://microsoft.github.io/kiota/'
13
+ spec.license = 'MIT'
14
+ spec.metadata = {
15
+ 'bug_tracker_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby/issues',
16
+ 'changelog_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby/blob/main/CHANGELOG.md',
17
+ 'homepage_uri' => spec.homepage,
18
+ 'source_code_uri' => 'https://github.com/microsoft/kiota-authentication-oauth-ruby',
19
+ 'github_repo' => 'ssh://github.com/microsoft/kiota-authentication-oauth-ruby'
20
+ }
21
+ spec.required_ruby_version = ">= 2.7.0"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
27
+ end
28
+
29
+ spec.bindir = 'bin'
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ['lib']
32
+
33
+ spec.add_runtime_dependency 'microsoft_kiota_abstractions', '~> 0.12.0', '>= 0.12.0'
34
+ spec.add_runtime_dependency 'oauth2', '~> 2.0'
35
+ spec.add_development_dependency 'rake', '~> 13.0'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ spec.add_development_dependency 'rubocop'
38
+ end
metadata CHANGED
@@ -1,26 +1,133 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microsoft_kiota_authentication_oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
- - Devansh Batham
7
+ - Microsoft Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-29 00:00:00.000000000 Z
12
- dependencies: []
13
- description: A simple hello world gem
14
- email: asm0d3us@devansh.xyz
11
+ date: 2023-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: microsoft_kiota_abstractions
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.12.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.12.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.12.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.12.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: oauth2
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '13.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '13.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ description: Kiota Authentication implementation with oauth2
90
+ email: graphsdkpub@microsoft.com
15
91
  executables: []
16
92
  extensions: []
17
93
  extra_rdoc_files: []
18
94
  files:
95
+ - ".github/CODEOWNERS"
96
+ - ".github/dependabot.yml"
97
+ - ".github/workflows/code-ql.yml"
98
+ - ".github/workflows/conflicting-pr-label.yml"
99
+ - ".github/workflows/projectsbot.yml"
100
+ - ".github/workflows/release.yml"
101
+ - ".github/workflows/ruby.yml"
102
+ - ".gitignore"
103
+ - CHANGELOG.md
104
+ - CODE_OF_CONDUCT.md
105
+ - Gemfile
106
+ - LICENSE
107
+ - README.md
108
+ - Rakefile
109
+ - SECURITY.md
110
+ - SUPPORT.md
19
111
  - lib/microsoft_kiota_authentication_oauth.rb
20
- homepage: https://rubygems.org/gems/microsoft_kiota_authentication_oauth
112
+ - lib/microsoft_kiota_authentication_oauth/contexts/authorization_code_context.rb
113
+ - lib/microsoft_kiota_authentication_oauth/contexts/client_credential_context.rb
114
+ - lib/microsoft_kiota_authentication_oauth/contexts/oauth_context.rb
115
+ - lib/microsoft_kiota_authentication_oauth/contexts/oauth_custom_flow.rb
116
+ - lib/microsoft_kiota_authentication_oauth/contexts/on_behalf_of_context.rb
117
+ - lib/microsoft_kiota_authentication_oauth/extensions/oauth2_ext.rb
118
+ - lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb
119
+ - lib/microsoft_kiota_authentication_oauth/oauth_authentication_provider.rb
120
+ - lib/microsoft_kiota_authentication_oauth/version.rb
121
+ - microsoft_kiota_authentication_oauth.gemspec
122
+ homepage: https://microsoft.github.io/kiota/
21
123
  licenses:
22
124
  - MIT
23
- metadata: {}
125
+ metadata:
126
+ bug_tracker_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby/issues
127
+ changelog_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby/blob/main/CHANGELOG.md
128
+ homepage_uri: https://microsoft.github.io/kiota/
129
+ source_code_uri: https://github.com/microsoft/kiota-authentication-oauth-ruby
130
+ github_repo: ssh://github.com/microsoft/kiota-authentication-oauth-ruby
24
131
  post_install_message:
25
132
  rdoc_options: []
26
133
  require_paths:
@@ -29,15 +136,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
29
136
  requirements:
30
137
  - - ">="
31
138
  - !ruby/object:Gem::Version
32
- version: '0'
139
+ version: 2.7.0
33
140
  required_rubygems_version: !ruby/object:Gem::Requirement
34
141
  requirements:
35
142
  - - ">="
36
143
  - !ruby/object:Gem::Version
37
144
  version: '0'
38
145
  requirements: []
39
- rubygems_version: 3.3.5
146
+ rubygems_version: 3.3.26
40
147
  signing_key:
41
148
  specification_version: 4
42
- summary: Hola!
149
+ summary: Microsoft Kiota Authentication OAuth - Kiota Ruby Authentication OAuth library
43
150
  test_files: []