Python + Github REST API:更新文件内容请求的问题

2023-12-08

我从以下网站获得 Status 400更新文件内容Github API,即使 400 不在可能的列表中HTTP 响应状态!

我的问题是content密钥需要进行 Base64 编码。但是,当我将内容转换为 base64 时,API 会响应“解析 JSON 时出现问题”错误。

感觉跟这个有一点关系f字符串。如果我删除它们并使用变量名称,请求将失败并出现相同的错误。

我如何成功提交此回复?


def convert_to_base64(md_payload):
    encoded_payload = base64.b64encode(md_payload.encode('utf-8'))
    return encoded_payload

def log_todo(username, repo_name, filename, api_key, sha, encoded_payload):
    response= requests.put(
        f'https://api.github.com/repos/{username}/{repo_name}/contents/{filename}',
        headers = {
            'Accept': 'application/vnd.github+json',
            'Authorization': f'Bearer {api_key}'
        },
        data = {
            "sha": f'{sha}',
            "message": "TEST",
            "committer": {
                "name": "TEST",
                "email": "[email protected]"
            },
            "content": f'{encoded_payload}'
        }
    )
    logging.error(f'##### Was TODO Logged in VCS?: {response.text}')
    return response.status_code

Results:没有关于此消息的信息,也没有状态 400doc_url

{
    "message":"Problems parsing JSON",
    "documentation_url":"https://docs.github.com/rest/reference/repos#create-or-update-file-contents"
}

400

我想到了:

  1. Changed convert_to_base64 function to:
    • 我不知道为什么必须编码为 Base64 然后解码它,但这有效
def convert_to_base64(md_payload):
    encoded_payload = base64.b64encode(md_payload.encode('utf-8'))
    encoded_payload = encoded_payload.decode('utf-8')
    return encoded_payload
  1. 改变了data参数为json
def log_todo(username, repo_name, filename, api_key, sha, encoded_payload):
    response= requests.put(
        f'https://api.github.com/repos/{username}/{repo_name}/contents/{filename}',
        headers = {
            'Accept': 'application/vnd.github+json',
            'Authorization': f'Bearer {api_key}'
        },
        json = {                       #<--This is all I changed
            "sha": f'{sha}',
            "message": "TEST",
            "committer": {
                "name": "TEST",
                "email": "[email protected]"
            },
            "content": f'{encoded_payload}'
        }
    )
    logging.error(f'##### Was TODO Logged in VCS?: {response.text}')
    return response.status_code
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python + Github REST API:更新文件内容请求的问题 的相关文章

  • 从 QueryDSL 谓词对象中获取参数

    我使用带有 Spring REST 端点的 QueryDSL 谓词对象来检索和查询参数值 GetMapping subjectId students RolesAllowed Roles PLATFORM ADMIN Roles USER
  • 如何在没有可用行选择器的情况下为 APEX 21.1 REST 数据源设置数据配置文件

    我正在使用 APEX 21 1 并为 Web 服务创建了一个 REST 数据源 该服务以以下格式返回响应 1499040000000 A time stamp 0 01634790 A value etc 1499040000100 A t
  • 为移动应用程序创建 API - 身份验证和授权

    Overview 我正在寻找为我的应用程序创建一个 REST API 最初 主要目的是供移动应用程序 iPhone Android Symbian 等 使用 我一直在研究基于 Web 的 API 的身份验证和授权的不同机制 通过研究其他实现
  • 如何向最终用户隐藏 REST API Url?

    是否可以隐藏我通过 AJAX 用于填充页面数据的 REST URL 我不希望其他人从我的 REST API 获取和使用 但需要使用它在我的网站中显示内容 如何向最终用户隐藏我的 REST API URL 无法在 JavaScript 中向最
  • 当用户在springboot中调用注册休息API时如何获取oAuth2访问令牌?

    目前我正在研究 Springboot 安全性 这对我来说相当新 我跟着youtube视频教程 当我使用以下代码片段时 我成功获取了 oauth2 access token SpringBootApplication public class
  • 在 Hyperledger Composer REST API 上使用 Passport-http

    我想知道是否可以使用passport http来保护由composer rest server生成的Hyperledger Composer的REST API 以及什么是导出 COMPOSER PROVIDERS 配置 这个想法是使用先前生
  • 如何将 REST API 与 FireMonkey 结合使用?

    我需要在 FireMonkey 中实现 REST API 来获取一些信息 但我不确定如何做到这一点 REST API使用OAuth2 我可以访问两个代码 Consumer Key和Consumer Secret 之后 我需要获得一个临时的
  • REST - 获取随机数 GET 还是 POST?

    应该如何在 REST 中正确实现随机数生成器 GET RANDOM or POST RANDOM 服务器每次返回不同的随机数 我可以看到这两种方式的论点 我想说这与返回的包含当前时间的页面相同 其中许多都是使用 GET 完成的 抽象地说 获
  • 使用 Post 以 REST 方式更新值

    我对 REST 很陌生 所以如果这是一个愚蠢的问题 请原谅我 这样 我就有了客户资源 一个客户有很多信用 所以 我想获取客户积分的 URL 是 客户 21 积分 其中 21 是客户 ID 现在 如果我没有全额积分 如何添加积分 例如 客户有
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • 当前用于验证 Http 请求(REST、Xml over Http)的标准是什么?

    该标准应解决以下身份验证挑战 例如 重放攻击 中间的人 明文攻击 字典攻击 暴力攻击 被假冒服务器欺骗 我已经研究过 Amazon Web Services 这是一种可能性 更重要的是 似乎有两种最常见的方法 使用 apiKey 它的编码方
  • 如何列出所有 GitHub 用户?

    我正在开发一个网站 需要从 GitHub 爬取所有用户信息 至少是我们网站上的用户 我搜索了 GitHub API 没有找到答案 那么我有什么办法可以完成这份工作吗 我只有用户的电子邮件 我可以通过将电子邮件哈希值与头像 URL 进行比较来
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下
  • REST Web 服务 WSDL? [复制]

    这个问题在这里已经有答案了 我正在实现一个 Web 服务 并且已经实现了 REST 和 SOAP 版本 看看哪个版本适合我的需求 我决定选择 REST 因为它很简单 而且我可能会开发一个 iPhone 应用程序来使用它 我的问题很简单 是否
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • 使用Retrofit来消费服务器发送的事件

    我正在尝试使用rest api 1 https mesosphere github io marathon docs rest api html get v2 events将服务器发送的事件发送到客户端 我目前正在使用 square 的改造
  • Spring Rest-API - 403 禁止错误响应

    我是 Spring 新手 我正在编写 REST API 我收到 403 删除 放置禁止错误 以下是我正在处理的示例 RequestMapping value noteId method RequestMethod PUT public Re

随机推荐

  • delphi 7中如何读取资源文件?

    我已经制作了资源文件 并已将其编译并与我的 delphi 单元链接 但是从该资源文件读取时我遇到了问题 implementation R dfm R stuff res stuff rc procedure TForm1 FormCreat
  • Firebase getDocument(querySnapshot)不起作用

    我面临着 Firebase 快照的问题 我已成功将我的 Fierbase 帐户与我的 Xcode 项目连接起来 我能够更改 Firestore 云中的数据 但我读不懂 这是我的功能 class UserService static func
  • 色彩空间转换

    我正在尝试编写一个程序 在用户输入图像后 他可以看到一些小的图像处理 更具体地说 我想将图像从 RGB 转换为 CMYK 和 YUV 然后在屏幕上仅显示这些颜色空间中的一个分量 即仅来自 CMY 的青色或来自 YUV 的 U 我设法实现了转
  • 在 iPhone 的 Objective-C 中解析 Java 属性文件

    我正在 iPhone SDK 中寻找一种读取属性文件 不是 XML 风格 的方法 例如 a comment a comment a a string b a string with escape sequences t n r space
  • Windows 上的 libgit2 可能存在 Rugged gem 安装问题

    我正在使用 Windows 和我的Gemfile有这一行 gem rugged 当我跑步时bundle install它给了我这个错误 Installing rugged 0 21 0 with native extensions Gem
  • java中的ArrayList打印最后插入的值?

    我有以下java类 package com picvik model import java util Date public class ViewAlbum private Integer albumid private String a
  • 将引号替换为“``”和“''”

    我有一个包含很多内容的文档 标记 但我想将其转换为在 TeX 中使用 TeX 使用 2 个 标记作为开始引号 使用 2 个 标记作为结束引号 我只想在以下情况下对这些进行更改 以偶数出现在单行上 例如 有 2 4 或 6 已上线 例如 Th
  • 有没有办法强制从特定堆栈帧返回后不使用 Rust 原始指针?

    我正在为 主要是 C 风格 C 插件 SDK 编写一个 Rust 包装器 插件主机是一个运行事件循环的图形桌面应用程序 该插件定期作为该事件循环的一部分被调用 每当这种情况发生时 插件就具有控制权并可以调用任意主机函数 我想要包装的一个 C
  • 如何检查 $data 变量是否使用 Codeigniter 设置?

    当我设置像这样的数据时 data say something Hello 并将其发送到视图 this gt load gt view my page data 如何在视图中检查变量 say something 是否已设置 有 Codeign
  • Jackson YAML:使用标志映射正则表达式模式

    在杰克逊 我可以绘制地图YAML 中的字符串 regexField d 2 d 2 to a Pattern类上的字段 final class MappedFromYaml private Pattern regexField access
  • 自动增量,但忽略列中的现有值

    我有一张桌子 create table DB t1 id SERIAL name varchar 255 并插入一些数据 insert into DB t1 name values name1 insert into DB t1 id na
  • 如何从 SQL*Plus 查询中删除空格?

    从 sqlplus 调用的下面的查询在每个值的末尾返回很多空格 我该如何删除它 请参阅下面的示例 我用 x 替换了这些值 x x x x
  • 每个 python 对象一个 int [重复]

    这个问题在这里已经有答案了 可能的重复 类实例的自动递增 ID 我想要类似以下 Python 中的 Java 类 public class MyObject private static int ID 0 private final int
  • 在Python中获取索引的默认值超出范围[重复]

    这个问题在这里已经有答案了 a 123 2 4 b a 4 or sss print b 当列表索引超出范围时 我想获得默认值 此处 sss 我怎样才能做到这一点 本着 请求宽恕 而不是许可 的 Python 精神 这里有一种方法 try
  • Bootstrap 视频大屏幕

    我正在尝试制作一个视频来覆盖 bootstrap Jumbotron 但没有成功 这似乎是一件非常简单的事情 但我尝试的一切似乎都失败了 我已经尝试过发布的解决方案here没有成功 我也尝试过将视频的位置设置为绝对位置 并将所有边设置为 0
  • CSS 渐变动画

    我正在尝试按照所述设置 CSS 渐变动画here但我无法让它工作 作为一个例子 我已经放在一起thisjsfiddle 总的来说 CSS 渐变过渡似乎不起作用 div Machine webkit transition background
  • 在 mongoose + nodeJS 中检测到循环依赖

    我收到如下错误 错误 检测到循环依赖性 在serializeObject F Full Stack course code base meanhotel node modules bson lib bson parser serialize
  • 在多索引数据帧上突出显示最大/最小值 - Pandas

    假设有一个 2 层 MultiIndex 数据框 df pd DataFrame one A 100 3 two A 101 4 three A 102 6 one B 103 6 two B 104 0 three B 105 3 col
  • 子类构造函数中的堆栈溢出错误[重复]

    这个问题在这里已经有答案了 我的超类是 public abstract class MarketProduct private String name public MarketProduct String productName name
  • Python + Github REST API:更新文件内容请求的问题

    我从以下网站获得 Status 400更新文件内容Github API 即使 400 不在可能的列表中HTTP 响应状态 我的问题是content密钥需要进行 Base64 编码 但是 当我将内容转换为 base64 时 API 会响应 解