0.67.1 • Published 6 months ago

tgit-api v0.67.1

Weekly downloads
6
License
MIT
Repository
-
Last release
6 months ago

tgit-api

NPM Version

腾讯工蜂 RESTful API 的 NodeJS 封装,以简化调用方式和提供 Typescript 类型系统。

其中请求库是使用的 axios,重试库使用 async-retry

Install

npm install --save tgit-api

Usage

const tgitApi = require('tgit-api');

const api = tgitApi(token, requestOptions, {
    retries: 5,
    onRetry: (e, attemptNo) => {
        console.log(`
            Tgit API retry: this is the ${attempt} time.
            Error message: ${e.message}
            API url: ${e.config.url}
        `);
    }
}, {
    baseURL: "https://git.code.tencent.com/api/v3"
})

tgitApi.catch = async (err) => {
    const status = err.response && err.response.status;
    if (status === 401) {
        // Unauthorized 
        // Fetch a new token and retry
        tgitApi.token = await getTGitToken();
    }

    throw err;
};

;(async () => {
    const res = await api.projects({
        page: 1,
        per_page: 10,
        order_by: 'create_at',
        sort: 'asc'
    })
})()

// 可以运行时改变 token 的值
api.token = "another_token";
  • token 必填参数,是工蜂提供的票据,可以是 private token,也可以是 OAuth2 的 access_token
  • requestOptions 可选参数,是会透传给 axios 请求库的,相关参数 API 可以在这里查询。其中 urlmethoddata 参数请不要传,仓库内已经适配好,只需按需修改其他参数即可,如 timeout 等。

  • retryOptions 可选参数,如果不传则默认不重试。

    • retries:最大重试次数。默认值为 10
    • factor:指数因子。默认值为 2
    • minTimeout:距第一次重试间隔(毫秒)。默认值为 1000
    • maxTimeout:两次重试间最大时长。默认值为 Infinity
    • randomize:是否在 1 到 2 间随机选择指数因子。默认值为 true
    • onRetry:重试实施后的回调函数,可选。回调函数的第一个参数是上一次尝试失败抛出的错误信息。

0.15.3 升级 0.16.0 及以上

需要在初始化的时候,加上 baseURL 参数:

0.15.3 调用方式

tgitApi(token)

0.16.0 调用方式

tgitApi(token, undefined, undefined, {
    baseURL: "path_to_api"
})

0.65.0 及以上

支持在初始化的时候,传入 axios 实例:

import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';

// 创建 axios 实例,配置太湖网关信息
const axiosInstance: AxiosInstance = axios.create({
    baseURL: 'https://api-s-idc.sgw.woa.com/ebus/gitcode/git_code_api/api/v3',
    // 请求超时时间
    timeout: 10000,
});

// 配置拦截器
axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => {
    const timestamp = Math.ceil(Date.now() / 1000);
    const nonce = String(Math.ceil(Math.random() * 99999999));

    // 添加请求头
    config.headers.common['x-rio-paasid'] = 'your paasid';
    config.headers.common['x-rio-timestamp'] = timestamp;
    config.headers.common['x-rio-nonce'] = nonce;
    config.headers.common['x-rio-signature'] = 'sha256 signature';

    return config;
});

const api = tgitApi(token, null, null, {
    // 优先使用 axiosInstance 配置的 baseURL,所以这里可以传空或者不传
    baseURL: '',
    axiosInstance
});

API

方法说明
namespaces获取命名空间列表
groups获取项目组列表
groups.add新建项目组
groups.get获取项目组的详细信息以及项目组下所有项目
groups.delete删除项目组
groups.members获取项目组成员列表
groups.members.add增加项目组成员
groups.members.modify修改项目组成员
groups.members.delete移除一个项目组成员
users获取用户信息列表
users.add新增用户
users.get获取某个用户的账号信息
users.fromEmail通过邮箱获取用户信息
users.modify修改用户
users.delete删除用户
users.keys获取某个用户的SSH key
users.keys.add给指定用户创建一个 SSH key
users.keys.delete删除指定用户的 SSH key
users.emails获取指定用户邮箱列表
users.emails.add给指定用户添加邮箱
users.emails.delete删除指定用户的邮箱
users.block锁住用户
users.unblock取消锁住用户
users.identity创建认证方式
self当前认证用户
owned获取用户拥有的项目列表
watched获用户关注项目列表
keys获取当前用户的SSH key
keys.add给当前用户创建一个SSH key
keys.get获取某个指定的 SSH key
keys.delete删除当前用户的 SSH key
emails获取用户邮箱列表
email.add添加邮箱
emails.get获取邮箱信息
emails.delete删除当前用户的邮箱
issues用户创建缺陷列表
projects获取项目列表
projects.owned获取用户拥有的项目列表
projects.public获取所有公有项目列表
projects.innerSource获取内源项目列表
projects.add创建项目
projects.addTo创建属于某个指定用户的项目
projects.get获取项目详细信息
projects.modify编辑项目
projects.delete删除项目
projects.issues项目缺陷列表
projects.issues.add新建缺陷
projects.issues.get查看指定缺陷
projects.issues.modify修改缺陷
projects.issues.subscribe订阅给定项目的某个缺陷
projects.issues.unsubscribe取消订阅给定项目的某个缺陷
projects.issues.isSubscribe判断是否订阅给定项目的某个缺陷
projects.issues.notes获取缺陷评论列表
projects.issues.notes.add在项目的新增缺陷评论
projects.issues.notes.get查询单个缺陷的评论
projects.issues.notes.modify修改项目的缺陷评论
projects.labels获取标签列表
projects.labels.add新增标签
projects.labels.modify修改标签
projects.labels.delete删除标签
projects.milestones返回里程碑列表
projects.milestones.add新增里程碑
projects.milestones.get返回指定里程碑
projects.milestones.modify编辑里程碑
projects.milestones.delete删除里程碑
projects.milestones.issues返回某个里程碑下的所有缺陷
projects.watchers关注者列表
projects.watch关注项目
projects.unwatch取消关注项目
projects.isWatch是否关注给定项目
projects.stars获取标星项目列表
projects.star对指定项目标星
projects.unstar取消对指定项目标星
projects.isStar查看对指定项目是否标星
projects.archive下载存档的项目版本库
projects.archive.add将项目归档
projects.archive.delete将项目取消归档
projects.contributors获取贡献者列表
projects.raw获取原始文件内容
projects.blob获取 blob 原始内容
projects.compare获取差异内容
projects.files获取版本库文件和目录列表
projects.files.add新增文件
projects.files.get获取单个文件内容和信息
projects.files.modify编辑文件
projects.files.delete删除文件
projects.branches分支列表
projects.branches.add创建项目分支
projects.branches.get获取分支详情
projects.branches.delete删除分支
projects.branches.protect将分支变为保护分支
projects.branches.protected_branch_rules将分支变为保护分支(新)-必须指定所在的规则组
projects.branches.unprotect取消保护分支
projects.branches.lifecycle查看分支生命周期
projects.branches.merge_base获取2个分支的Base Commit点
projects.protected.members获取保护分支的成员
projects.protected.members.all获取项目有权限的成员列表
projects.protected.members.add为保护分支添加成员
projects.protected.members.modify编辑保护分支的成员
projects.protected.members.delete删除保护分支的指定用户
projects.tagsTAG列表
projects.tags.add创建TAG
projects.tags.get获取指定TAG
projects.tags.delete删除TAG
projects.commits.statuses新建检测结果
projects.commits.statuses.get查询检测结果
projects.commits.status通过Ref查询组合的检测结果
projects.commits列出项目版本库所有的提交
projects.commits.get取的一个提交
projects.commits.diff取得提交的差异
projects.commits.refs获取某个提交对应的分支和tag
projects.commits.comments取得一个提交的评论
projects.commits.comments.add对一个提交发表评论
projects.members获取项目成员列表
projects.members.add增加项目成员
projects.members.get获取项目内的某个指定成员信息
projects.members.modify修改项目成员
projects.members.delete删除项目成员
projects.events查询项目的事件列表
projects.forkFork 项目
projects.forkFrom将项目 Fork 到另外一个命名空间
projects.fork.delete删除 Fork 关系
projects.hooks查询项目回调钩子列表
projects.hooks.add给项目增加回调钩子
projects.hooks.get查询项目单个回调钩子
projects.hooks.modify编辑项目回调钩子
projects.hooks.delete删除项目回调钩子
projects.merge_requests获取合并请求列表
projects.merge_requests.add新增合并请求
projects.merge_requests.get查询项目合并请求
projects.merge_requests.getByIid根据iid查询项目合并请求
projects.merge_requests.changes查询合并请求详情
projects.merge_requests.merge合并合并请求
projects.merge_requests.modify更新合并请求
projects.merge_requests.subscribe订阅请求合并
projects.merge_requests.unsubscribe取消订阅合并请求
projects.merge_requests.isSubscribe查询是否有订阅请求合并
projects.merge_requests.comments获取合并请求评论列表
projects.merge_requests.comments.add添加合并请求的评论
projects.merge_requests.commits获取项目中某个指定合并请求的提交列表
projects.merge_requests.conflict.merge查询合并请求是否存在冲突
projects.merge_requests.notes查询合并请求的评论列表
projects.merge_requests.notes.add创建合并请求的评论
projects.merge_requests.notes.get查询合并请求的评论列表
projects.merge_requests.notes.modify编辑合并请求的评论
projects.merge_request.create_pre_merge_commit产生MR预合并点
projects.merge_request.revert回退合并请求
projects.merge_requests.review查询评审信息
projects.merge_requests.review.invite邀请评审人
projects.merge_requests.review.dismissals移除评审人
projects.merge_requests.review.cancel取消评审
projects.merge_requests.review.summary发表评审意见
projects.merge_requests.review.reopen重新打开评审
projects.releases获取releases列表
projects.releases.get获取某个指定的release
projects.releases.add新增一个release
projects.releases.modify更新一个release
projects.releases.delete删除releases
projects.releases.attachments.add上传附件
projects.releases.attachments.get下载附件
projects.releases.attachments.delete删除附件
projects.shares.get获取项目的 share group 列表
projects.tloc.daily.count统计功能:按天查询提交次数、提交用户数
projects.tloc.daily.diff统计功能:按天查询提交代码行增量
projects.tloc.user.diff统计功能:查询各用户提交增量
projects.tloc.lang.diff统计功能:查询各语言提交增量
projects.tloc.commit.diff统计功能:查询指定Commit点的提交增量
projects.tloc.file.diff统计功能:查询文件的提交情况
projects.tloc.commit.list统计功能:查询Commit列表
projects.tloc.users.diff统计功能:查询指定用户代码提交增量
projects.tloc.users.lang统计功能:查询指定用户各语言提交增量
projects.reviews日常代码评审:获取项目中所有的Commit评审
projects.reviews.notes日常代码评审:获取某个指定代码评审的评论
projects.review日常代码评审:用iid获取项目中某个具体的Commit评审情况
projects.review.get日常代码评审:用id获取项目中某个具体的Commit评审情况
projects.review.invite日常代码评审:邀请评审人
projects.review.batch_invite日常代码评审:批量邀请评审人
projects.review.dismissals日常代码评审:移除评审人
0.67.0

6 months ago

0.67.1

6 months ago

0.66.0

12 months ago

0.63.0

1 year ago

0.64.0

1 year ago

0.65.1

1 year ago

0.65.0

1 year ago

0.62.0

1 year ago

0.60.0

1 year ago

0.59.0

1 year ago

0.57.0

2 years ago

0.57.1

1 year ago

0.61.1

1 year ago

0.61.0

1 year ago

0.58.0

1 year ago

0.56.1

2 years ago

0.56.2

2 years ago

0.56.0

2 years ago

0.55.0

2 years ago

0.55.1

2 years ago

0.54.0

2 years ago

0.53.2

2 years ago

0.53.0

2 years ago

0.53.1

2 years ago

0.52.0

2 years ago

0.51.0

2 years ago

0.51.1

2 years ago

0.48.0

2 years ago

0.50.1

2 years ago

0.50.2

2 years ago

0.50.0

2 years ago

0.49.0

2 years ago

0.47.0

2 years ago

0.46.0

3 years ago

0.46.1

3 years ago

0.44.0

3 years ago

0.45.1

3 years ago

0.45.0

3 years ago

0.43.0

3 years ago

0.42.0

3 years ago

0.42.1

3 years ago

0.41.1

3 years ago

0.41.2

3 years ago

0.41.3

3 years ago

0.41.0

3 years ago

0.40.2

3 years ago

0.40.1

3 years ago

0.40.0

3 years ago

0.39.0

3 years ago

0.38.0

3 years ago

0.37.0

3 years ago

0.36.1

3 years ago

0.36.0

3 years ago

0.35.2

3 years ago

0.35.1

3 years ago

0.35.0

3 years ago

0.33.2

3 years ago

0.34.0

3 years ago

0.33.1

3 years ago

0.32.5

3 years ago

0.32.4

3 years ago

0.33.0

3 years ago

0.32.3

3 years ago

0.32.2

3 years ago

0.32.1

3 years ago

0.32.0

3 years ago

0.31.0

3 years ago

0.30.0

4 years ago

0.29.1

4 years ago

0.29.0

4 years ago

0.28.0

4 years ago

0.27.2

4 years ago

0.27.1

4 years ago

0.27.0

4 years ago

0.26.2

4 years ago

0.26.1

4 years ago

0.26.0

4 years ago

0.25.1

4 years ago

0.25.0

4 years ago

0.24.0

4 years ago

0.23.0

4 years ago

0.22.0

4 years ago

0.21.0

4 years ago

0.20.2

4 years ago

0.20.1

4 years ago

0.20.0

4 years ago

0.19.0

4 years ago

0.18.4

5 years ago

0.18.3

5 years ago

0.18.2

5 years ago

0.18.1

5 years ago

0.18.0

5 years ago

0.17.2

5 years ago

0.17.1

5 years ago

0.16.12

5 years ago

0.16.11

5 years ago

0.16.10

5 years ago

0.16.9

5 years ago

0.16.6

5 years ago

0.16.2

5 years ago